From f44daa284a054ffa02603c13c7cea1659f85c4ba Mon Sep 17 00:00:00 2001 From: Michael Boehmer Date: Sun, 10 Jul 2022 00:34:42 +0200 Subject: [PATCH] legacy files deleted --- gbe2_ecp3/feeder.vhd | 620 -- gbe2_ecp3/ip_configurator.vhd | 342 - gbe2_ecp3/ipcores/debug_fifo_2kx16.vhd | 1965 ----- gbe2_ecp3/ipcores/fifo_16kx8.vhd | 2711 ------- gbe2_ecp3/ipcores/fifo_2048x8.lpc | 47 - gbe2_ecp3/ipcores/fifo_2048x8.srp | 42 - gbe2_ecp3/ipcores/fifo_2048x8.vhd | 1415 ---- gbe2_ecp3/ipcores/fifo_2048x8_generate.log | 46 - gbe2_ecp3/ipcores/fifo_2048x8_tmpl.vhd | 18 - gbe2_ecp3/ipcores/fifo_32kx16x8_mb.jhd | 949 --- gbe2_ecp3/ipcores/fifo_32kx16x8_mb.lpc | 47 - gbe2_ecp3/ipcores/fifo_32kx16x8_mb.naf | 98 - gbe2_ecp3/ipcores/fifo_32kx16x8_mb.srp | 44 - gbe2_ecp3/ipcores/fifo_32kx16x8_mb.sym | Bin 716 -> 0 bytes gbe2_ecp3/ipcores/fifo_32kx16x8_mb.vhd | 3997 ---------- gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.lpc | 47 - gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.srp | 44 - gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.vhd | 5224 ------------- .../ipcores/fifo_32kx16x8_mb2_generate.log | 48 - gbe2_ecp3/ipcores/fifo_32kx16x8_mb2_tmpl.vhd | 26 - .../ipcores/fifo_32kx16x8_mb_generate.log | 46 - gbe2_ecp3/ipcores/fifo_32kx16x8_mb_tmpl.vhd | 26 - gbe2_ecp3/ipcores/fifo_4096x32.jhd | 479 -- gbe2_ecp3/ipcores/fifo_4096x32.lpc | 47 - gbe2_ecp3/ipcores/fifo_4096x32.naf | 72 - gbe2_ecp3/ipcores/fifo_4096x32.srp | 42 - gbe2_ecp3/ipcores/fifo_4096x32.sym | Bin 436 -> 0 bytes gbe2_ecp3/ipcores/fifo_4096x32.vhd | 1803 ----- gbe2_ecp3/ipcores/fifo_4096x32_generate.log | 46 - gbe2_ecp3/ipcores/fifo_4096x32_tmpl.vhd | 18 - gbe2_ecp3/ipcores/fifo_4096x9.jhd | 487 -- gbe2_ecp3/ipcores/fifo_4096x9.lpc | 47 - gbe2_ecp3/ipcores/fifo_4096x9.naf | 26 - gbe2_ecp3/ipcores/fifo_4096x9.srp | 43 - gbe2_ecp3/ipcores/fifo_4096x9.sym | Bin 432 -> 0 bytes gbe2_ecp3/ipcores/fifo_4096x9.vhd | 1624 ---- gbe2_ecp3/ipcores/fifo_4096x9_generate.log | 46 - gbe2_ecp3/ipcores/fifo_4096x9_tmpl.vhd | 18 - gbe2_ecp3/ipcores/fifo_512x32.lpc | 47 - gbe2_ecp3/ipcores/fifo_512x32.vhd | 1604 ---- gbe2_ecp3/ipcores/fifo_512x64.jhd | 359 - gbe2_ecp3/ipcores/fifo_512x64.lpc | 47 - gbe2_ecp3/ipcores/fifo_512x64.naf | 152 - gbe2_ecp3/ipcores/fifo_512x64.srp | 42 - gbe2_ecp3/ipcores/fifo_512x64.sym | Bin 434 -> 0 bytes gbe2_ecp3/ipcores/fifo_512x64.vhd | 1651 ---- gbe2_ecp3/ipcores/fifo_512x64_generate.log | 46 - gbe2_ecp3/ipcores/fifo_512x64_tmpl.vhd | 18 - gbe2_ecp3/ipcores/fifo_512x72.jhd | 359 - gbe2_ecp3/ipcores/fifo_512x72.lpc | 47 - gbe2_ecp3/ipcores/fifo_512x72.naf | 152 - gbe2_ecp3/ipcores/fifo_512x72.srp | 42 - gbe2_ecp3/ipcores/fifo_512x72.sym | Bin 434 -> 0 bytes gbe2_ecp3/ipcores/fifo_512x72.vhd | 1651 ---- gbe2_ecp3/ipcores/fifo_512x72_generate.log | 46 - gbe2_ecp3/ipcores/fifo_512x72_tmpl.vhd | 18 - gbe2_ecp3/ipcores/fifo_64kx8.jhd | 711 -- gbe2_ecp3/ipcores/fifo_64kx8.lpc | 47 - gbe2_ecp3/ipcores/fifo_64kx8.naf | 24 - gbe2_ecp3/ipcores/fifo_64kx8.srp | 43 - gbe2_ecp3/ipcores/fifo_64kx8.sym | Bin 432 -> 0 bytes gbe2_ecp3/ipcores/fifo_64kx8.vhd | 3355 -------- gbe2_ecp3/ipcores/fifo_64kx8_generate.log | 46 - gbe2_ecp3/ipcores/fifo_64kx8_tmpl.vhd | 18 - gbe2_ecp3/ipcores/fifo_64kx9.lpc | 47 - gbe2_ecp3/ipcores/fifo_64kx9.srp | 43 - gbe2_ecp3/ipcores/fifo_64kx9.vhd | 4582 ----------- gbe2_ecp3/ipcores/fifo_64kx9_generate.log | 48 - gbe2_ecp3/ipcores/fifo_64kx9_tmpl.vhd | 18 - gbe2_ecp3/ipcores/ip_mem.jhd | 9 - gbe2_ecp3/ipcores/ip_mem.lpc | 60 - gbe2_ecp3/ipcores/ip_mem.mem | 277 - gbe2_ecp3/ipcores/ip_mem.mem.bak | 277 - gbe2_ecp3/ipcores/ip_mem.naf | 152 - gbe2_ecp3/ipcores/ip_mem.srp | 29 - gbe2_ecp3/ipcores/ip_mem.vhd | 379 - gbe2_ecp3/ipcores/ip_mem_generate.log | 45 - gbe2_ecp3/ipcores/ip_mem_tmpl.vhd | 23 - gbe2_ecp3/ipcores/macInitDataInvWithMac.mem | 59 - gbe2_ecp3/ipcores/mac_init_mem.lpc | 48 - gbe2_ecp3/ipcores/mac_init_mem.srp | 29 - gbe2_ecp3/ipcores/mac_init_mem.vhd | 262 - gbe2_ecp3/ipcores/mac_init_mem_generate.log | 45 - gbe2_ecp3/ipcores/mac_init_mem_tmpl.vhd | 15 - gbe2_ecp3/ipcores/msg_file.log | 33 - gbe2_ecp3/ipcores/tb_fifo_2048x8_tmpl.vhd | 102 - .../ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd | 115 - gbe2_ecp3/ipcores/tb_fifo_32kx16x8_tmpl.vhd | 106 - gbe2_ecp3/ipcores/tb_fifo_4096x32_tmpl.vhd | 102 - gbe2_ecp3/ipcores/tb_fifo_4096x9_tmpl.vhd | 102 - gbe2_ecp3/ipcores/tb_fifo_512x64_tmpl.vhd | 102 - gbe2_ecp3/ipcores/tb_fifo_512x72_tmpl.vhd | 102 - gbe2_ecp3/ipcores/tb_fifo_64kx8_tmpl.vhd | 102 - gbe2_ecp3/ipcores/tb_ip_mem_tmpl.vhd | 174 - gbe2_ecp3/ipcores/tb_mac_init_mem_tmpl.vhd | 64 - gbe2_ecp3/ipcores_ecp3/debug_fifo_2kx16.vhd | 1965 ----- gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.jhd | 413 - gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.naf | 35 - gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.srp | 42 - gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.sym | Bin 438 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.vhd | 1366 ---- .../ipcores_ecp3/fifo_1024x16x8_generate.log | 48 - .../ipcores_ecp3/fifo_1024x16x8_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_16kx8.vhd | 2711 ------- gbe2_ecp3/ipcores_ecp3/fifo_2048x8.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8.jhd | 429 -- gbe2_ecp3/ipcores_ecp3/fifo_2048x8.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8.naf | 24 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8.srp | 42 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8.sym | Bin 432 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_2048x8.vhd | 1415 ---- .../ipcores_ecp3/fifo_2048x8_generate.log | 48 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.jhd | 413 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.naf | 35 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.srp | 42 - gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.sym | Bin 436 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.vhd | 1367 ---- .../ipcores_ecp3/fifo_2048x8x16_generate.log | 48 - .../ipcores_ecp3/fifo_2048x8x16_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.jhd | 949 --- gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.naf | 98 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.srp | 44 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.sym | Bin 716 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.vhd | 3997 ---------- gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.jhd | 1233 --- gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.naf | 101 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.srp | 44 - gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.sym | Bin 716 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.vhd | 5224 ------------- .../fifo_32kx16x8_mb2_generate.log | 48 - .../ipcores_ecp3/fifo_32kx16x8_mb2_tmpl.vhd | 26 - .../fifo_32kx16x8_mb_generate.log | 48 - .../ipcores_ecp3/fifo_32kx16x8_mb_tmpl.vhd | 26 - gbe2_ecp3/ipcores_ecp3/fifo_32kx9_flags.vhd | 3400 -------- gbe2_ecp3/ipcores_ecp3/fifo_4096x32.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_4096x32.jhd | 479 -- gbe2_ecp3/ipcores_ecp3/fifo_4096x32.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_4096x32.naf | 72 - gbe2_ecp3/ipcores_ecp3/fifo_4096x32.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_4096x32.srp | 42 - gbe2_ecp3/ipcores_ecp3/fifo_4096x32.sym | Bin 436 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_4096x32.vhd | 1803 ----- .../ipcores_ecp3/fifo_4096x32_generate.log | 48 - gbe2_ecp3/ipcores_ecp3/fifo_4096x32_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_4096x9.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_4096x9.jhd | 487 -- gbe2_ecp3/ipcores_ecp3/fifo_4096x9.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_4096x9.naf | 26 - gbe2_ecp3/ipcores_ecp3/fifo_4096x9.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_4096x9.srp | 43 - gbe2_ecp3/ipcores_ecp3/fifo_4096x9.sym | Bin 432 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_4096x9.vhd | 1624 ---- .../ipcores_ecp3/fifo_4096x9_generate.log | 48 - gbe2_ecp3/ipcores_ecp3/fifo_4096x9_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_4kx18x9.vhd | 1573 ---- gbe2_ecp3/ipcores_ecp3/fifo_4kx8_ecp3.vhd | 1559 ---- gbe2_ecp3/ipcores_ecp3/fifo_512x32.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_512x32.jhd | 357 - gbe2_ecp3/ipcores_ecp3/fifo_512x32.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_512x32.naf | 72 - gbe2_ecp3/ipcores_ecp3/fifo_512x32.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_512x32.srp | 42 - gbe2_ecp3/ipcores_ecp3/fifo_512x32.sym | Bin 434 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_512x32.vhd | 1193 --- .../ipcores_ecp3/fifo_512x32_generate.log | 48 - gbe2_ecp3/ipcores_ecp3/fifo_512x32_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_512x32x8.vhd | 1298 ---- gbe2_ecp3/ipcores_ecp3/fifo_512x64.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_512x64.jhd | 359 - gbe2_ecp3/ipcores_ecp3/fifo_512x64.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_512x64.naf | 152 - gbe2_ecp3/ipcores_ecp3/fifo_512x64.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_512x64.srp | 42 - gbe2_ecp3/ipcores_ecp3/fifo_512x64.sym | Bin 434 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_512x64.vhd | 1231 --- .../ipcores_ecp3/fifo_512x64_generate.log | 48 - gbe2_ecp3/ipcores_ecp3/fifo_512x64_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_512x72.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_512x72.jhd | 359 - gbe2_ecp3/ipcores_ecp3/fifo_512x72.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_512x72.naf | 152 - gbe2_ecp3/ipcores_ecp3/fifo_512x72.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_512x72.srp | 42 - gbe2_ecp3/ipcores_ecp3/fifo_512x72.sym | Bin 434 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_512x72.vhd | 1231 --- .../ipcores_ecp3/fifo_512x72_generate.log | 48 - gbe2_ecp3/ipcores_ecp3/fifo_512x72_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_64kx8.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_64kx8.jhd | 711 -- gbe2_ecp3/ipcores_ecp3/fifo_64kx8.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_64kx8.naf | 24 - gbe2_ecp3/ipcores_ecp3/fifo_64kx8.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_64kx8.srp | 43 - gbe2_ecp3/ipcores_ecp3/fifo_64kx8.sym | Bin 432 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_64kx8.vhd | 3355 -------- .../ipcores_ecp3/fifo_64kx8_generate.log | 48 - gbe2_ecp3/ipcores_ecp3/fifo_64kx8_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_64kx9.ipx | 9 - gbe2_ecp3/ipcores_ecp3/fifo_64kx9.jhd | 995 --- gbe2_ecp3/ipcores_ecp3/fifo_64kx9.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_64kx9.naf | 26 - gbe2_ecp3/ipcores_ecp3/fifo_64kx9.sort | 1 - gbe2_ecp3/ipcores_ecp3/fifo_64kx9.srp | 43 - gbe2_ecp3/ipcores_ecp3/fifo_64kx9.sym | Bin 432 -> 0 bytes gbe2_ecp3/ipcores_ecp3/fifo_64kx9.vhd | 4582 ----------- .../ipcores_ecp3/fifo_64kx9_generate.log | 48 - gbe2_ecp3/ipcores_ecp3/fifo_64kx9_tmpl.vhd | 18 - gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.lpc | 47 - gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.vhd | 4493 ----------- gbe2_ecp3/ipcores_ecp3/ip_mem.ipx | 10 - gbe2_ecp3/ipcores_ecp3/ip_mem.jhd | 9 - gbe2_ecp3/ipcores_ecp3/ip_mem.lpc | 60 - gbe2_ecp3/ipcores_ecp3/ip_mem.mem | 277 - gbe2_ecp3/ipcores_ecp3/ip_mem.mem.bak | 277 - gbe2_ecp3/ipcores_ecp3/ip_mem.naf | 152 - gbe2_ecp3/ipcores_ecp3/ip_mem.sort | 1 - gbe2_ecp3/ipcores_ecp3/ip_mem.srp | 29 - gbe2_ecp3/ipcores_ecp3/ip_mem.sym | Bin 588 -> 0 bytes gbe2_ecp3/ipcores_ecp3/ip_mem.vhd | 379 - gbe2_ecp3/ipcores_ecp3/ip_mem_generate.log | 47 - gbe2_ecp3/ipcores_ecp3/ip_mem_tmpl.vhd | 23 - .../ipcores_ecp3/macInitDataInvWithMac.mem | 59 - gbe2_ecp3/ipcores_ecp3/mac_init_mem.ipx | 10 - gbe2_ecp3/ipcores_ecp3/mac_init_mem.jhd | 7 - gbe2_ecp3/ipcores_ecp3/mac_init_mem.lpc | 48 - gbe2_ecp3/ipcores_ecp3/mac_init_mem.naf | 17 - gbe2_ecp3/ipcores_ecp3/mac_init_mem.sort | 1 - gbe2_ecp3/ipcores_ecp3/mac_init_mem.srp | 29 - gbe2_ecp3/ipcores_ecp3/mac_init_mem.sym | Bin 266 -> 0 bytes gbe2_ecp3/ipcores_ecp3/mac_init_mem.vhd | 262 - .../ipcores_ecp3/mac_init_mem_generate.log | 47 - gbe2_ecp3/ipcores_ecp3/mac_init_mem_tmpl.vhd | 15 - gbe2_ecp3/ipcores_ecp3/msg_file.log | 33 - gbe2_ecp3/ipcores_ecp3/serdes/msg_file.log | 13 - .../serdes/serdes_gbe_0_extclock_8b.jhd | 5 - .../serdes/serdes_gbe_0_extclock_8b.lpc | 140 - .../serdes/serdes_gbe_0_extclock_8b.naf | 49 - .../serdes/serdes_gbe_0_extclock_8b.pp | 95 - .../serdes/serdes_gbe_0_extclock_8b.readme | 141 - .../serdes/serdes_gbe_0_extclock_8b.sym | Bin 1626 -> 0 bytes .../serdes/serdes_gbe_0_extclock_8b.tft | 98 - .../serdes/serdes_gbe_0_extclock_8b.txt | 49 - .../serdes/serdes_gbe_0_extclock_8b.vhd | 2182 ------ .../serdes_gbe_0_extclock_8b_generate.log | 26 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.ipx | 11 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.jhd | 7 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.lpc | 258 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.naf | 48 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.pp | 191 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.readme | 141 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.sort | 1 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.sym | Bin 1580 -> 0 bytes gbe2_ecp3/ipcores_ecp3/serdes_ch4.tft | 100 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.txt | 59 - gbe2_ecp3/ipcores_ecp3/serdes_ch4.vhd | 2689 ------- .../ipcores_ecp3/serdes_ch4_generate.log | 29 - .../serdes_gbe_0ch/dummy_sym.sort | 1 - .../ipcores_ecp3/serdes_gbe_0ch/msg_file.log | 14 - .../serdes_gbe_0ch/serdes_gbe_0ch.ipx | 11 - .../serdes_gbe_0ch/serdes_gbe_0ch.jhd | 7 - .../serdes_gbe_0ch/serdes_gbe_0ch.lpc | 258 - .../serdes_gbe_0ch/serdes_gbe_0ch.naf | 48 - .../serdes_gbe_0ch/serdes_gbe_0ch.pp | 195 - .../serdes_gbe_0ch/serdes_gbe_0ch.readme | 141 - .../serdes_gbe_0ch/serdes_gbe_0ch.sort | 1 - .../serdes_gbe_0ch/serdes_gbe_0ch.sym | Bin 1584 -> 0 bytes .../serdes_gbe_0ch/serdes_gbe_0ch.tft | 100 - .../serdes_gbe_0ch/serdes_gbe_0ch.txt | 59 - .../serdes_gbe_0ch/serdes_gbe_0ch.vhd | 2689 ------- .../serdes_gbe_0ch_generate.log | 29 - .../ipcores_ecp3/serdes_intclk/dummy_sym.sort | 1 - .../ipcores_ecp3/serdes_intclk/msg_file.log | 14 - .../serdes_intclk/rx_reset_sm.naf | 7 - .../serdes_gbe_0_intclock_8b.ipx | 11 - .../serdes_gbe_0_intclock_8b.jhd | 7 - .../serdes_gbe_0_intclock_8b.lpc | 258 - .../serdes_gbe_0_intclock_8b.naf | 48 - .../serdes_intclk/serdes_gbe_0_intclock_8b.pp | 195 - .../serdes_gbe_0_intclock_8b.readme | 141 - .../serdes_gbe_0_intclock_8b.sort | 1 - .../serdes_gbe_0_intclock_8b.sym | Bin 1594 -> 0 bytes .../serdes_gbe_0_intclock_8b.tft | 100 - .../serdes_gbe_0_intclock_8b.txt | 59 - .../serdes_gbe_0_intclock_8b.vhd | 2689 ------- .../serdes_gbe_0_intclock_8b_ecp3.ipx | 11 - .../serdes_gbe_0_intclock_8b_ecp3.jhd | 13 - .../serdes_gbe_0_intclock_8b_ecp3.lpc | 258 - .../serdes_gbe_0_intclock_8b_ecp3.naf | 46 - .../serdes_gbe_0_intclock_8b_ecp3.pp | 195 - .../serdes_gbe_0_intclock_8b_ecp3.readme | 137 - .../serdes_gbe_0_intclock_8b_ecp3.sort | 1 - .../serdes_gbe_0_intclock_8b_ecp3.sym | Bin 1506 -> 0 bytes .../serdes_gbe_0_intclock_8b_ecp3.tft | 100 - .../serdes_gbe_0_intclock_8b_ecp3.txt | 59 - .../serdes_gbe_0_intclock_8b_ecp3.vhd | 3117 -------- .../serdes_gbe_0_intclock_8b_ecp3.vhd~ | 3113 -------- ...serdes_gbe_0_intclock_8b_ecp3_generate.log | 29 - .../serdes_gbe_0_intclock_8b_generate.log | 29 - .../serdes_intclk/tx_reset_sm.naf | 5 - .../serdes_intclk_ecp2m50/msg_file.log | 14 - .../serdes_gbe_0_intclock_8b.jhd | 5 - .../serdes_gbe_0_intclock_8b.lpc | 145 - .../serdes_gbe_0_intclock_8b.naf | 48 - .../serdes_gbe_0_intclock_8b.pp | 119 - .../serdes_gbe_0_intclock_8b.readme | 139 - .../serdes_gbe_0_intclock_8b.tft | 98 - .../serdes_gbe_0_intclock_8b.txt | 49 - .../serdes_gbe_0_intclock_8b.vhd | 2202 ------ .../serdes_gbe_0_intclock_8b_generate.log | 27 - .../ipcores_ecp3/sgmii33/rate_resolution.v | 66 - .../sgmii33/register_interface_hb.v | 918 --- .../sgmii33/reset_controller_cdr.v | 219 - .../sgmii33/reset_controller_pcs.v | 226 - .../ipcores_ecp3/sgmii33/sgmii_channel_smi.v | 237 - .../ipcores_ecp3/sgmii_gbe_pcs32/dummy.sty | 1 - .../sgmii_gbe_pcs32/generate_core.tcl | 39 - .../pmi_fifo_dcLEan71301616161010.ngo | Bin 35501 -> 0 bytes .../sgmii_gbe_pcs32/sgmii_gbe_pcs32.cmd | 14 - .../sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc | 26 - .../sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo | Bin 377069 -> 0 bytes .../sgmii_gbe_pcs32/sgmii_gbe_pcs32_bb.v | 127 - .../sgmii_gbe_pcs32/sgmii_gbe_pcs32_beh.v | 5165 ------------- .../sgmii_gbe_pcs32/sgmii_gbe_pcs32_gen.log | 4 - .../sgmii_gbe_pcs32_generate.log | 10 - .../sgmii_gbe_pcs32/sgmii_gbe_pcs32_inst.v | 69 - .../sgmii_gbe_pcs32/sgmii_gbe_pcs32_wrapper.v | 233 - .../sgmii_gbe_pcs32/sgmii_pcs_eval.tar | Bin 1116188 -> 0 bytes .../ipcores_ecp3/sgmii_gbe_pcs32/stdout.log | 42 - .../sgmii_gbe_pcs34/generate_core.tcl | 43 - .../sgmii_gbe_pcs34/sgmii_gbe_pcs34.ipx | 10 - .../sgmii_gbe_pcs34/sgmii_gbe_pcs34.lpc | 26 - .../sgmii_gbe_pcs34/sgmii_gbe_pcs34.ngo | Bin 389472 -> 0 bytes .../sgmii_gbe_pcs34/sgmii_gbe_pcs34_bb.v | 143 - .../sgmii_gbe_pcs34/sgmii_gbe_pcs34_beh.v | 5440 ------------- .../sgmii_gbe_pcs34_filelist.log | 52 - .../sgmii_gbe_pcs34/sgmii_gbe_pcs34_gen.log | 10 - .../sgmii_gbe_pcs34_generate.log | 76 - .../sgmii_gbe_pcs34/sgmii_gbe_pcs34_inst.v | 79 - .../sgmii_gbe_pcs35/generate_core.tcl | 43 - .../sgmii_gbe_pcs35/sgmii_gbe_pcs35.ipx | 10 - .../sgmii_gbe_pcs35/sgmii_gbe_pcs35.lpc | 26 - .../sgmii_gbe_pcs35/sgmii_gbe_pcs35.ngo | Bin 389045 -> 0 bytes .../sgmii_gbe_pcs35/sgmii_gbe_pcs35_bb.v | 143 - .../sgmii_gbe_pcs35/sgmii_gbe_pcs35_beh.v | 3372 -------- .../sgmii_gbe_pcs35_filelist.log | 52 - .../sgmii_gbe_pcs35/sgmii_gbe_pcs35_gen.log | 10 - .../sgmii_gbe_pcs35_generate.log | 76 - .../sgmii_gbe_pcs35/sgmii_gbe_pcs35_inst.v | 79 - gbe2_ecp3/ipcores_ecp3/statts_mem.ipx | 10 - gbe2_ecp3/ipcores_ecp3/statts_mem.jhd | 7 - gbe2_ecp3/ipcores_ecp3/statts_mem.lpc | 53 - gbe2_ecp3/ipcores_ecp3/statts_mem.naf | 64 - gbe2_ecp3/ipcores_ecp3/statts_mem.sort | 1 - gbe2_ecp3/ipcores_ecp3/statts_mem.srp | 28 - gbe2_ecp3/ipcores_ecp3/statts_mem.sym | Bin 442 -> 0 bytes gbe2_ecp3/ipcores_ecp3/statts_mem.vhd | 159 - .../ipcores_ecp3/statts_mem_generate.log | 46 - gbe2_ecp3/ipcores_ecp3/statts_mem_tmpl.vhd | 19 - .../ipcores_ecp3/tb_fifo_1024x16x8_tmpl.vhd | 102 - .../ipcores_ecp3/tb_fifo_2048x8_tmpl.vhd | 102 - .../ipcores_ecp3/tb_fifo_2048x8x16_tmpl.vhd | 102 - .../tb_fifo_32kx16x8_mb2_tmpl.vhd | 115 - .../ipcores_ecp3/tb_fifo_32kx16x8_mb_tmpl.vhd | 115 - .../ipcores_ecp3/tb_fifo_32kx16x8_tmpl.vhd | 106 - .../ipcores_ecp3/tb_fifo_4096x32_tmpl.vhd | 102 - .../ipcores_ecp3/tb_fifo_4096x9_tmpl.vhd | 102 - .../ipcores_ecp3/tb_fifo_512x32_tmpl.vhd | 102 - .../ipcores_ecp3/tb_fifo_512x64_tmpl.vhd | 102 - .../ipcores_ecp3/tb_fifo_512x72_tmpl.vhd | 102 - gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx8_tmpl.vhd | 102 - gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx9_tmpl.vhd | 102 - gbe2_ecp3/ipcores_ecp3/tb_ip_mem_tmpl.vhd | 174 - .../ipcores_ecp3/tb_mac_init_mem_tmpl.vhd | 64 - gbe2_ecp3/ipcores_ecp3/tb_statts_mem_tmpl.vhd | 124 - .../ipcores_ecp3/tsmac3/generate_core.tcl | 39 - gbe2_ecp3/ipcores_ecp3/tsmac3/orcapp_head | 4 - .../pmi_ram_dpEbnonessdn208256208256.ngo | Bin 11279 -> 0 bytes .../tsmac3/pmi_ram_dpEbnonessdn96649664.ngo | Bin 8760 -> 0 bytes gbe2_ecp3/ipcores_ecp3/tsmac3/ts_mac_eval.tar | Bin 368640 -> 0 bytes gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3.lpc | 38 - gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3.ngo | Bin 866982 -> 0 bytes gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3.v | 211 - gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3_bb.v | 145 - gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3_beh.v | 5840 -------------- gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3_gen.log | 8 - .../ipcores_ecp3/tsmac3/tsmac3_generate.log | 10 - gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3_inst.v | 77 - .../ipcores_ecp3/tsmac34/generate_core.tcl | 43 - .../pmi_ram_dpEbnonessdn208256208256.ngo | Bin 11243 -> 0 bytes .../tsmac34/pmi_ram_dpEbnonessdn96649664.ngo | Bin 8808 -> 0 bytes gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.ipx | 12 - gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.lpc | 38 - gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.ngo | Bin 814689 -> 0 bytes gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.v | 211 - gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_bb.v | 145 - gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_beh.v | 5840 -------------- .../ipcores_ecp3/tsmac34/tsmac34_filelist.log | 46 - .../ipcores_ecp3/tsmac34/tsmac34_gen.log | 10 - .../ipcores_ecp3/tsmac34/tsmac34_generate.log | 126 - gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_inst.v | 77 - .../ipcores_ecp3/tsmac35/generate_core.tcl | 43 - .../pmi_ram_dpEbnonessdn208256208256.ngo | Bin 11243 -> 0 bytes .../tsmac35/pmi_ram_dpEbnonessdn96649664.ngo | Bin 8808 -> 0 bytes gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.ipx | 12 - gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.lpc | 38 - gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.ngo | Bin 818583 -> 0 bytes gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.v | 211 - gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35_bb.v | 145 - gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35_beh.v | 5845 -------------- .../ipcores_ecp3/tsmac35/tsmac35_filelist.log | 46 - .../ipcores_ecp3/tsmac35/tsmac35_gen.log | 10 - .../ipcores_ecp3/tsmac35/tsmac35_generate.log | 126 - gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35_inst.v | 77 - gbe2_ecp3/mb_mac_sim.vhd | 331 - gbe2_ecp3/slv_mac_memory.vhd | 178 - gbe2_ecp3/slv_register.vhd | 177 - gbe2_ecp3/tb_feeder.vhd | 300 - gbe2_ecp3/tb_frame_receiver.vhd | 2686 ------- gbe2_ecp3/tb_gbe_buf.vhd | 946 --- gbe2_ecp3/tb_ip_configurator.vhd | 145 - gbe2_ecp3/tb_ipu2gbe.vhd | 428 - gbe2_ecp3/tb_ipu2gbe_NEW.vhd | 428 - gbe2_ecp3/tb_ipu2gbe_OLD.vhd | 428 - gbe2_ecp3/tb_lsm.vhd | 113 - gbe2_ecp3/tb_pc.vhd | 310 - gbe2_ecp3/tb_slv_mac_memory.vhd | 114 - gbe2_ecp3/trb_net16_gbe_buf.vhd | 1617 ---- gbe2_ecp3/trb_net16_gbe_event_constr.vhd | 701 -- gbe2_ecp3/trb_net16_gbe_frame_constr.vhd | 630 -- gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd | 756 -- gbe2_ecp3/trb_net16_gbe_frame_trans.vhd | 226 - .../trb_net16_gbe_ipu2gbe_simple_sender.vhd | 1508 ---- gbe2_ecp3/trb_net16_gbe_ipu_interface.vhd | 878 --- gbe2_ecp3/trb_net16_gbe_mac_control.vhd | 223 - gbe2_ecp3/trb_net16_gbe_main_control.vhd | 957 --- gbe2_ecp3/trb_net16_gbe_packet_constr.vhd | 1088 --- .../trb_net16_gbe_packet_constr_20101006.vhd | 958 --- .../trb_net16_gbe_packet_constr_nologic.vhd | 1099 --- ..._net16_gbe_packet_constr_simple_sender.vhd | 1182 --- .../trb_net16_gbe_protocol_prioritizer.vhd | 87 - gbe2_ecp3/trb_net16_gbe_protocol_selector.vhd | 690 -- gbe2_ecp3/trb_net16_gbe_receive_control.vhd | 256 - ...trb_net16_gbe_response_constructor_ARP.vhd | 418 - ...rb_net16_gbe_response_constructor_DHCP.vhd | 818 -- ...net16_gbe_response_constructor_Forward.vhd | 235 - ...rb_net16_gbe_response_constructor_Ping.vhd | 424 - ...b_net16_gbe_response_constructor_SCTRL.vhd | 820 -- ...rb_net16_gbe_response_constructor_Stat.vhd | 336 - ...rb_net16_gbe_response_constructor_Test.vhd | 235 - ...b_net16_gbe_response_constructor_Test1.vhd | 160 - ...b_net16_gbe_response_constructor_Trash.vhd | 163 - ...16_gbe_response_constructor_TrbNetData.vhd | 600 -- gbe2_ecp3/trb_net16_gbe_setup.vhd | 403 - gbe2_ecp3/trb_net16_gbe_setup_simplified.vhd | 597 -- gbe2_ecp3/trb_net16_gbe_transmit_control.vhd | 135 - gbe2_ecp3/trb_net16_gbe_transmit_control2.vhd | 311 - gbe2_ecp3/trb_net16_gbe_type_validator.vhd | 141 - gbe2_ecp3/trb_net16_ipu2gbe.vhd | 1430 ---- gbe2_ecp3/trb_net16_ipu2gbe_20101006.vhd | 1316 ---- gbe2_ecp3/trb_net16_ipu2gbe_nologic.vhd | 1403 ---- gbe2_ecp3/trb_net16_lsm_sfp_gbe.vhd | 236 - gbe2_ecp3/trb_net16_med_ecp_sfp_gbe_8b.vhd | 890 --- gbe2_ecp3/trb_net_gbe_components.vhd | 1360 ---- gbe2_ecp3/trb_net_gbe_protocols.vhd | 627 -- gbe_ecp2m/feeder.vhd | 620 -- gbe_ecp2m/ip_configurator.vhd | 342 - gbe_ecp2m/ipcores/.cvsignore | 6 - gbe_ecp2m/ipcores/debug_fifo_2kx16.vhd | 1965 ----- gbe_ecp2m/ipcores/fifo_1024x16x8.lpc | 47 - gbe_ecp2m/ipcores/fifo_1024x16x8.vhd | 1366 ---- gbe_ecp2m/ipcores/fifo_1024x16x8_tmpl.vhd | 18 - gbe_ecp2m/ipcores/fifo_16kx8.vhd | 2711 ------- gbe_ecp2m/ipcores/fifo_2048x8.lpc | 47 - gbe_ecp2m/ipcores/fifo_2048x8.vhd | 1913 ----- gbe_ecp2m/ipcores/fifo_2048x8_tmpl.vhd | 18 - gbe_ecp2m/ipcores/fifo_2048x8x16.lpc | 47 - gbe_ecp2m/ipcores/fifo_2048x8x16.vhd | 1367 ---- gbe_ecp2m/ipcores/fifo_2048x8x16_tmpl.vhd | 18 - gbe_ecp2m/ipcores/fifo_32kx16x8_mb.lpc | 47 - gbe_ecp2m/ipcores/fifo_32kx16x8_mb.vhd | 5245 ------------- gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.ipx | 9 - gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.lpc | 50 - gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.srp | 44 - gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.vhd | 6859 ----------------- .../ipcores/fifo_32kx16x8_mb2_generate.log | 48 - gbe_ecp2m/ipcores/fifo_32kx16x8_mb2_tmpl.vhd | 26 - gbe_ecp2m/ipcores/fifo_32kx16x8_mb_tmpl.vhd | 26 - gbe_ecp2m/ipcores/fifo_4096x32.lpc | 47 - gbe_ecp2m/ipcores/fifo_4096x32.vhd | 2415 ------ gbe_ecp2m/ipcores/fifo_4096x32_tmpl.vhd | 18 - gbe_ecp2m/ipcores/fifo_4096x9.lpc | 47 - gbe_ecp2m/ipcores/fifo_4096x9.vhd | 2171 ------ gbe_ecp2m/ipcores/fifo_4096x9_tmpl.vhd | 18 - gbe_ecp2m/ipcores/fifo_512x32.lpc | 47 - gbe_ecp2m/ipcores/fifo_512x32.vhd | 1193 --- gbe_ecp2m/ipcores/fifo_512x32_tmpl.vhd | 18 - gbe_ecp2m/ipcores/fifo_512x64.lpc | 47 - gbe_ecp2m/ipcores/fifo_512x64.vhd | 1231 --- gbe_ecp2m/ipcores/fifo_512x64_tmpl.vhd | 18 - gbe_ecp2m/ipcores/fifo_512x72.lpc | 47 - gbe_ecp2m/ipcores/fifo_512x72.vhd | 1231 --- gbe_ecp2m/ipcores/fifo_512x72_tmpl.vhd | 18 - gbe_ecp2m/ipcores/fifo_64kx8.lpc | 47 - gbe_ecp2m/ipcores/fifo_64kx8.vhd | 4435 ----------- gbe_ecp2m/ipcores/fifo_64kx8_tmpl.vhd | 18 - gbe_ecp2m/ipcores/fifo_64kx9.ipx | 9 - gbe_ecp2m/ipcores/fifo_64kx9.lpc | 50 - gbe_ecp2m/ipcores/fifo_64kx9.srp | 43 - gbe_ecp2m/ipcores/fifo_64kx9.vhd | 6025 --------------- gbe_ecp2m/ipcores/fifo_64kx9_generate.log | 48 - gbe_ecp2m/ipcores/fifo_64kx9_tmpl.vhd | 18 - gbe_ecp2m/ipcores/ip_mem.lpc | 57 - gbe_ecp2m/ipcores/ip_mem.mem | 277 - gbe_ecp2m/ipcores/ip_mem.vhd | 606 -- gbe_ecp2m/ipcores/ip_mem_tmpl.vhd | 23 - gbe_ecp2m/ipcores/macInitDataInvWithMac.mem | 59 - gbe_ecp2m/ipcores/mac_init_mem.lpc | 45 - gbe_ecp2m/ipcores/mac_init_mem.vhd | 413 - gbe_ecp2m/ipcores/mac_init_mem_tmpl.vhd | 15 - gbe_ecp2m/ipcores/serdes/.cvsignore | 9 - .../serdes/serdes_gbe_0_extclock_8b.lpc | 140 - .../serdes/serdes_gbe_0_extclock_8b.txt | 49 - .../serdes/serdes_gbe_0_extclock_8b.vhd | 2182 ------ gbe_ecp2m/ipcores/serdes_ch4.ipx | 11 - gbe_ecp2m/ipcores/serdes_ch4.jhd | 7 - gbe_ecp2m/ipcores/serdes_ch4.lpc | 258 - gbe_ecp2m/ipcores/serdes_ch4.naf | 48 - gbe_ecp2m/ipcores/serdes_ch4.pp | 191 - gbe_ecp2m/ipcores/serdes_ch4.readme | 141 - gbe_ecp2m/ipcores/serdes_ch4.sort | 1 - gbe_ecp2m/ipcores/serdes_ch4.sym | Bin 1580 -> 0 bytes gbe_ecp2m/ipcores/serdes_ch4.tft | 100 - gbe_ecp2m/ipcores/serdes_ch4.txt | 59 - gbe_ecp2m/ipcores/serdes_ch4.vhd | 2689 ------- gbe_ecp2m/ipcores/serdes_ch4_generate.log | 29 - .../serdes_gbe_0_intclock_8b.lpc | 140 - .../serdes_gbe_0_intclock_8b.txt | 49 - .../serdes_gbe_0_intclock_8b.vhd | 2183 ------ .../serdes_gbe_0_intclock_8b.lpc | 145 - .../serdes_gbe_0_intclock_8b.txt | 49 - .../serdes_gbe_0_intclock_8b.vhd | 2202 ------ gbe_ecp2m/ipcores/sgmii_gbe_pcs32/.cvsignore | 11 - .../pmi_fifo_dcLEan71301616161010.ngo | Bin 35501 -> 0 bytes .../sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc | 26 - .../sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo | Bin 377069 -> 0 bytes .../sgmii_gbe_pcs32/sgmii_pcs_eval.tar | Bin 1116160 -> 0 bytes gbe_ecp2m/ipcores/statts_mem.lpc | 53 - gbe_ecp2m/ipcores/statts_mem.vhd | 159 - gbe_ecp2m/ipcores/statts_mem_tmpl.vhd | 19 - gbe_ecp2m/ipcores/tb_fifo_1024x16x8_tmpl.vhd | 102 - gbe_ecp2m/ipcores/tb_fifo_2048x8_tmpl.vhd | 102 - gbe_ecp2m/ipcores/tb_fifo_2048x8x16_tmpl.vhd | 102 - .../ipcores/tb_fifo_32kx16x8_mb2_tmpl.vhd | 119 - .../ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd | 115 - gbe_ecp2m/ipcores/tb_fifo_32kx16x8_tmpl.vhd | 106 - gbe_ecp2m/ipcores/tb_fifo_4096x32_tmpl.vhd | 102 - gbe_ecp2m/ipcores/tb_fifo_4096x9_tmpl.vhd | 102 - gbe_ecp2m/ipcores/tb_fifo_512x32_tmpl.vhd | 102 - gbe_ecp2m/ipcores/tb_fifo_512x64_tmpl.vhd | 102 - gbe_ecp2m/ipcores/tb_fifo_512x72_tmpl.vhd | 102 - gbe_ecp2m/ipcores/tb_fifo_64kx8_tmpl.vhd | 102 - gbe_ecp2m/ipcores/tb_fifo_64kx9_tmpl.vhd | 106 - gbe_ecp2m/ipcores/tb_ip_mem_tmpl.vhd | 174 - gbe_ecp2m/ipcores/tb_mac_init_mem_tmpl.vhd | 64 - gbe_ecp2m/ipcores/tb_statts_mem_tmpl.vhd | 124 - gbe_ecp2m/ipcores/tsmac3/.cvsignore | 9 - .../pmi_ram_dpEbnonessdn208256208256.ngo | Bin 11279 -> 0 bytes .../tsmac3/pmi_ram_dpEbnonessdn96649664.ngo | Bin 8760 -> 0 bytes gbe_ecp2m/ipcores/tsmac3/ts_mac_eval.tar | Bin 368640 -> 0 bytes gbe_ecp2m/ipcores/tsmac3/tsmac3.lpc | 38 - gbe_ecp2m/ipcores/tsmac3/tsmac3.ngo | Bin 866982 -> 0 bytes gbe_ecp2m/mb_mac_sim.vhd | 331 - gbe_ecp2m/slv_mac_memory.vhd | 178 - gbe_ecp2m/slv_register.vhd | 177 - gbe_ecp2m/tb_feeder.vhd | 300 - gbe_ecp2m/tb_gbe_buf.vhd | 561 -- gbe_ecp2m/tb_ip_configurator.vhd | 145 - gbe_ecp2m/tb_ipu2gbe.vhd | 428 - gbe_ecp2m/tb_lsm.vhd | 113 - gbe_ecp2m/tb_pc.vhd | 310 - gbe_ecp2m/tb_slv_mac_memory.vhd | 114 - gbe_ecp2m/trb_net16_gbe_buf.vhd | 1281 --- gbe_ecp2m/trb_net16_gbe_frame_constr.vhd | 562 -- gbe_ecp2m/trb_net16_gbe_frame_trans.vhd | 588 -- gbe_ecp2m/trb_net16_gbe_packet_constr.vhd | 1045 --- gbe_ecp2m/trb_net16_gbe_setup.vhd | 445 -- gbe_ecp2m/trb_net16_ipu2gbe.vhd | 1435 ---- gbe_ecp2m/trb_net16_lsm_sfp_gbe.vhd | 236 - gbe_ecp2m/trb_net16_med_ecp_sfp_gbe_8b.vhd | 457 -- gbe_ecp2m/trb_net_gbe_components.vhd | 309 - gbe_trb/base/trb_net16_gbe_mac_control.vhd | 10 +- gbe_trb_ecp3/base/forwarder.vhd | 82 - gbe_trb_ecp3/base/gather_ports.vhd | 176 - gbe_trb_ecp3/base/gbe_lsm.vhd | 137 - gbe_trb_ecp3/base/gbe_med_fifo.vhd | 39 +- gbe_trb_ecp3/base/gbe_med_raw.vhd | 8 +- gbe_trb_ecp3/base/rx_rb.vhd | 289 - gbe_trb_ecp3/base/scatter_ports.vhd | 97 - gbe_trb_ecp3/base/tx_fifo.vhd | 155 - oldfiles/L12TrigBusInterface.vhd | 213 - oldfiles/bus_handler.vhd | 293 - oldfiles/bus_handler_oepb.vhd | 264 - oldfiles/etrax_interface.vhd | 274 - oldfiles/rom_16x8.vhd | 47 - oldfiles/serdes_sync_0/serdes_sync_0.vhd | 435 -- .../serdes_sync_0/serdes_sync_0_softlogic.v | 2003 ----- oldfiles/serdes_test/ecp2m_link_fifo.vhd | 1992 ----- oldfiles/serdes_test/etrax_interfacev2.vhd | 490 -- oldfiles/serdes_test/f_divider.vhd | 174 - .../serdes_test/flexi_PCS_channel_synch.vhd | 539 -- oldfiles/serdes_test/flexi_PCS_fifo_EBR.vhd | 180 - oldfiles/serdes_test/flexi_PCS_synch.vhd | 90 - oldfiles/serdes_test/hub.vhd | 1076 --- oldfiles/serdes_test/link_test.vhd | 326 - oldfiles/serdes_test/pcs_for_ecp2m.txt | 49 - oldfiles/serdes_test/pcs_for_ecp2m.vhd | 2185 ------ oldfiles/serdes_test/rich.vhd | 350 - oldfiles/serdes_test/serdes_fpga_ref_clk.txt | 61 - oldfiles/serdes_test/up_down_counter.vhd | 44 - oldfiles/sfp_interface.vhd | 544 -- oldfiles/sram_is61.vhd | 169 - oldfiles/timing/api_timing.tex | 210 - oldfiles/timing/timing.mf | 492 -- oldfiles/timing/timing.sty | 309 - oldfiles/timing/timing1.mf | 29 - oldfiles/timing/timing1.pk | Bin 1284 -> 0 bytes oldfiles/timing/timing1.tfm | Bin 716 -> 0 bytes oldfiles/timing/timing1s.mf | 29 - oldfiles/timing/timing1s.pk | Bin 1528 -> 0 bytes oldfiles/timing/timing1s.tfm | Bin 716 -> 0 bytes oldfiles/timing/timing2.mf | 29 - oldfiles/timing/timing2.pk | Bin 1852 -> 0 bytes oldfiles/timing/timing2.tfm | Bin 716 -> 0 bytes oldfiles/timing/timing2s.mf | 29 - oldfiles/timing/timing2s.pk | Bin 2384 -> 0 bytes oldfiles/timing/timing2s.tfm | Bin 716 -> 0 bytes oldfiles/timing/timing_to_figures.sh | 15 - oldfiles/trb_net16_api_active.vhd | 219 - oldfiles/trb_net16_api_passive.vhd | 218 - oldfiles/trb_net16_api_streaming.vhd | 857 -- oldfiles/trb_net16_bram_fifo.vhd | 279 - ...rb_net16_endpoint_1_trg_2_data_1_regio.vhd | 960 --- oldfiles/trb_net16_endpoint_2_trg.vhd | 461 -- oldfiles/trb_net16_endpoint_2_trg_1_api.vhd | 990 --- oldfiles/trb_net16_endpoint_2_trg_2_api.vhd | 1245 --- oldfiles/trb_net16_hub_streaming_port.vhd | 626 -- oldfiles/trb_net16_med_16_CC.vhd | 384 - oldfiles/trb_net16_med_16_IC.vhd | 483 -- oldfiles/trb_net16_med_16_SDR_OS.vhd | 477 -- oldfiles/trb_net16_med_8_DDR_OS.vhd | 491 -- oldfiles/trb_net16_med_8_SDR_OS.vhd | 405 - oldfiles/trb_net16_med_8_SDR_sync.vhd | 456 -- oldfiles/trb_net16_med_tlk.vhd | 573 -- oldfiles/trb_net16_rx_packets.vhd | 440 -- oldfiles/trb_net_18_to_16_converter.vhd | 299 - oldfiles/trb_net_55_to_18_converter.vhd | 229 - oldfiles/trb_net_64_to_18_converter.vhd | 229 - oldfiles/trb_net_active_api.vhd | 203 - oldfiles/trb_net_active_apimbuf.vhd | 467 -- oldfiles/trb_net_apimbuf_fast_lvds.vhd | 512 -- oldfiles/trb_net_base_api.vhd | 722 -- oldfiles/trb_net_endpoint_3ch.vhd | 582 -- oldfiles/trb_net_fanout_hub.vhd | 400 - oldfiles/trb_net_fifo_arch.vhd | 197 - oldfiles/trb_net_ibuf.vhd | 299 - oldfiles/trb_net_io_multiplexer.vhd | 248 - oldfiles/trb_net_iobuf.vhd | 419 - oldfiles/trb_net_med_13bit_slow.vhd | 563 -- oldfiles/trb_net_med_32lvds.vhd | 51 - oldfiles/trb_net_med_8bit_fast.vhd | 567 -- oldfiles/trb_net_med_8bit_slow.vhd | 411 - oldfiles/trb_net_med_tlkx501.vhd | 47 - oldfiles/trb_net_obuf.vhd | 330 - oldfiles/trb_net_old_to_new.vhd | 284 - oldfiles/trb_net_passive_api.vhd | 203 - oldfiles/trb_net_passive_apimbuf.vhd | 479 -- oldfiles/trb_net_priority_encoder_simple.vhd | 40 - oldfiles/trb_net_term.vhd | 257 - oldfiles/trb_net_term_ibuf.vhd | 216 - oldfiles/trb_net_term_mbuf.vhd | 412 - oldfiles/trb_net_trigger_reader.vhd | 291 - oldfiles/trb_net_trigger_sender.vhd | 115 - oldfiles/trbnetendpoint.vhd | 117 - oldfiles/vulom3/beam_ramp.vhd | 259 - oldfiles/vulom3/bus_data_com5.vhd | 766 -- oldfiles/vulom3/clocking.vhd | 168 - oldfiles/vulom3/compile_vulom3.pl | 143 - oldfiles/vulom3/delay.vhd | 60 - oldfiles/vulom3/downscale.vhd | 74 - oldfiles/vulom3/eco_delay.vhd | 51 - oldfiles/vulom3/impact_batch_vulom3.txt | 6 - oldfiles/vulom3/new_downscale_ck.vhd | 128 - oldfiles/vulom3/one_clock_long.vhd | 48 - oldfiles/vulom3/one_clock_long_test.vhd | 96 - oldfiles/vulom3/scaler.vhd | 59 - oldfiles/vulom3/scaler_s.vhd | 68 - oldfiles/vulom3/set_width.vhd | 69 - oldfiles/vulom3/set_width_special.vhd | 83 - oldfiles/vulom3/trig_box1.vhd | 960 --- oldfiles/vulom3/trigger_box1.stapl | 3106 -------- oldfiles/vulom3/ulogic.vhd | 333 - oldfiles/vulom3/vlogic_1.prj | 15 - oldfiles/vulom3/vlogic_1.sdc | 57 - oldfiles/vulom3/vlogic_1.ucf | 249 - oldfiles/vulom3/vlogic_1.vhd | 272 - oldfiles/vulom3/vlogic_1_syn.prj | 76 - oldfiles/vulom3/vmelogic.vhd | 247 - optical_link/compile_hub.pl | 189 - optical_link/f_divider.vhd | 174 - optical_link/flexi_PCS_channel_synch.vhd | 876 --- optical_link/flexi_PCS_fifo_EBR.vhd | 180 - optical_link/flexi_PCS_fifo_LUT.vhd | 1167 --- optical_link/flexi_PCS_synch.vhd | 112 - optical_link/hub.lpf | 541 -- optical_link/hub.vhd | 1027 --- optical_link/hub_1.xcf | 99 - optical_link/hub_syn.prj | 112 - optical_link/hub_tb.vhd | 122 - optical_link/impact_batch_hub.txt | 5 - optical_link/pll_ref.vhd | 167 - optical_link/readme | 14 - optical_link/serdes_fpga_ref_clk.txt | 62 - optical_link/serdes_fpga_ref_clk.vhd | 2437 ------ optical_link/setup_env | 28 - optical_link/simpleupcounter_16bit.vhd | 37 - optical_link/simpleupcounter_32bit.vhd | 37 - optical_link/simpleupcounter_8bit.vhd | 37 - optical_link/trb_hub_interface.vhd | 197 - optical_link/trbv2_tlk_api.vhd | 142 - optical_link/trbv2_tlk_api_fifo.ngc | 3 - optical_link/trbv2_tlk_api_fifo.vhd | 150 - 745 files changed, 26 insertions(+), 305742 deletions(-) delete mode 100755 gbe2_ecp3/feeder.vhd delete mode 100755 gbe2_ecp3/ip_configurator.vhd delete mode 100644 gbe2_ecp3/ipcores/debug_fifo_2kx16.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_16kx8.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_2048x8.lpc delete mode 100755 gbe2_ecp3/ipcores/fifo_2048x8.srp delete mode 100755 gbe2_ecp3/ipcores/fifo_2048x8.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_2048x8_generate.log delete mode 100755 gbe2_ecp3/ipcores/fifo_2048x8_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_32kx16x8_mb.jhd delete mode 100755 gbe2_ecp3/ipcores/fifo_32kx16x8_mb.lpc delete mode 100755 gbe2_ecp3/ipcores/fifo_32kx16x8_mb.naf delete mode 100755 gbe2_ecp3/ipcores/fifo_32kx16x8_mb.srp delete mode 100755 gbe2_ecp3/ipcores/fifo_32kx16x8_mb.sym delete mode 100755 gbe2_ecp3/ipcores/fifo_32kx16x8_mb.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.lpc delete mode 100644 gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.srp delete mode 100644 gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_32kx16x8_mb2_generate.log delete mode 100644 gbe2_ecp3/ipcores/fifo_32kx16x8_mb2_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_32kx16x8_mb_generate.log delete mode 100755 gbe2_ecp3/ipcores/fifo_32kx16x8_mb_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x32.jhd delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x32.lpc delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x32.naf delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x32.srp delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x32.sym delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x32.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x32_generate.log delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x32_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x9.jhd delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x9.lpc delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x9.naf delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x9.srp delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x9.sym delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x9.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x9_generate.log delete mode 100755 gbe2_ecp3/ipcores/fifo_4096x9_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_512x32.lpc delete mode 100644 gbe2_ecp3/ipcores/fifo_512x32.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_512x64.jhd delete mode 100644 gbe2_ecp3/ipcores/fifo_512x64.lpc delete mode 100644 gbe2_ecp3/ipcores/fifo_512x64.naf delete mode 100644 gbe2_ecp3/ipcores/fifo_512x64.srp delete mode 100644 gbe2_ecp3/ipcores/fifo_512x64.sym delete mode 100644 gbe2_ecp3/ipcores/fifo_512x64.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_512x64_generate.log delete mode 100644 gbe2_ecp3/ipcores/fifo_512x64_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_512x72.jhd delete mode 100644 gbe2_ecp3/ipcores/fifo_512x72.lpc delete mode 100644 gbe2_ecp3/ipcores/fifo_512x72.naf delete mode 100644 gbe2_ecp3/ipcores/fifo_512x72.srp delete mode 100644 gbe2_ecp3/ipcores/fifo_512x72.sym delete mode 100644 gbe2_ecp3/ipcores/fifo_512x72.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_512x72_generate.log delete mode 100644 gbe2_ecp3/ipcores/fifo_512x72_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_64kx8.jhd delete mode 100755 gbe2_ecp3/ipcores/fifo_64kx8.lpc delete mode 100755 gbe2_ecp3/ipcores/fifo_64kx8.naf delete mode 100755 gbe2_ecp3/ipcores/fifo_64kx8.srp delete mode 100755 gbe2_ecp3/ipcores/fifo_64kx8.sym delete mode 100755 gbe2_ecp3/ipcores/fifo_64kx8.vhd delete mode 100755 gbe2_ecp3/ipcores/fifo_64kx8_generate.log delete mode 100755 gbe2_ecp3/ipcores/fifo_64kx8_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_64kx9.lpc delete mode 100644 gbe2_ecp3/ipcores/fifo_64kx9.srp delete mode 100644 gbe2_ecp3/ipcores/fifo_64kx9.vhd delete mode 100644 gbe2_ecp3/ipcores/fifo_64kx9_generate.log delete mode 100644 gbe2_ecp3/ipcores/fifo_64kx9_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/ip_mem.jhd delete mode 100755 gbe2_ecp3/ipcores/ip_mem.lpc delete mode 100755 gbe2_ecp3/ipcores/ip_mem.mem delete mode 100755 gbe2_ecp3/ipcores/ip_mem.mem.bak delete mode 100755 gbe2_ecp3/ipcores/ip_mem.naf delete mode 100755 gbe2_ecp3/ipcores/ip_mem.srp delete mode 100755 gbe2_ecp3/ipcores/ip_mem.vhd delete mode 100755 gbe2_ecp3/ipcores/ip_mem_generate.log delete mode 100755 gbe2_ecp3/ipcores/ip_mem_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/macInitDataInvWithMac.mem delete mode 100755 gbe2_ecp3/ipcores/mac_init_mem.lpc delete mode 100755 gbe2_ecp3/ipcores/mac_init_mem.srp delete mode 100755 gbe2_ecp3/ipcores/mac_init_mem.vhd delete mode 100755 gbe2_ecp3/ipcores/mac_init_mem_generate.log delete mode 100755 gbe2_ecp3/ipcores/mac_init_mem_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/msg_file.log delete mode 100755 gbe2_ecp3/ipcores/tb_fifo_2048x8_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/tb_fifo_32kx16x8_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/tb_fifo_4096x32_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/tb_fifo_4096x9_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores/tb_fifo_512x64_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores/tb_fifo_512x72_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/tb_fifo_64kx8_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/tb_ip_mem_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores/tb_mac_init_mem_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/debug_fifo_2kx16.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_16kx8.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8.jhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_2048x8.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8.sort delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_2048x8.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8.sym delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_2048x8.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_2048x8_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_2048x8_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.ipx delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.jhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.lpc delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.sort delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.sym delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_32kx9_flags.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_4096x32.ipx delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x32.jhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x32.lpc delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x32.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_4096x32.sort delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x32.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_4096x32.sym delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x32.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x32_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x32_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_4096x9.ipx delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x9.jhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x9.lpc delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x9.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_4096x9.sort delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x9.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_4096x9.sym delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x9.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x9_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_4096x9_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_4kx18x9.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_4kx8_ecp3.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x32x8.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x64_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_512x72_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx8.ipx delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_64kx8.jhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_64kx8.lpc delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_64kx8.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx8.sort delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_64kx8.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx8.sym delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_64kx8.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_64kx8_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/fifo_64kx8_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_64kx9_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/ip_mem.ipx delete mode 100755 gbe2_ecp3/ipcores_ecp3/ip_mem.jhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/ip_mem.lpc delete mode 100755 gbe2_ecp3/ipcores_ecp3/ip_mem.mem delete mode 100755 gbe2_ecp3/ipcores_ecp3/ip_mem.mem.bak delete mode 100755 gbe2_ecp3/ipcores_ecp3/ip_mem.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/ip_mem.sort delete mode 100755 gbe2_ecp3/ipcores_ecp3/ip_mem.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/ip_mem.sym delete mode 100755 gbe2_ecp3/ipcores_ecp3/ip_mem.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/ip_mem_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/ip_mem_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/macInitDataInvWithMac.mem delete mode 100644 gbe2_ecp3/ipcores_ecp3/mac_init_mem.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/mac_init_mem.jhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/mac_init_mem.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/mac_init_mem.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/mac_init_mem.sort delete mode 100755 gbe2_ecp3/ipcores_ecp3/mac_init_mem.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/mac_init_mem.sym delete mode 100755 gbe2_ecp3/ipcores_ecp3/mac_init_mem.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/mac_init_mem_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/mac_init_mem_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/msg_file.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/msg_file.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.jhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.lpc delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.naf delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.pp delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.readme delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.sym delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.tft delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.txt delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.pp delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.readme delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.tft delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.txt delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_ch4_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/dummy_sym.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/msg_file.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.pp delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.readme delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.tft delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.txt delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/dummy_sym.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/msg_file.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/rx_reset_sm.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.pp delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.readme delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.tft delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.txt delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.pp delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.readme delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.tft delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.txt delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.vhd~ delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk/tx_reset_sm.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/msg_file.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.pp delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.readme delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.tft delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.txt delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii33/rate_resolution.v delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii33/register_interface_hb.v delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii33/reset_controller_cdr.v delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii33/reset_controller_pcs.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii33/sgmii_channel_smi.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/dummy.sty delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/generate_core.tcl delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.cmd delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_bb.v delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_beh.v delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_gen.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_inst.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_wrapper.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_pcs_eval.tar delete mode 100755 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/stdout.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/generate_core.tcl delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_bb.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_beh.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_filelist.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_gen.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_inst.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/generate_core.tcl delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_bb.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_beh.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_filelist.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_gen.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_inst.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem.jhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem.naf delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem.sort delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem.srp delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem.sym delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/statts_mem_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/tb_fifo_1024x16x8_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/tb_fifo_2048x8_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/tb_fifo_2048x8x16_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_mb2_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_mb_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/tb_fifo_4096x32_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/tb_fifo_4096x9_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/tb_fifo_512x32_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/tb_fifo_512x64_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/tb_fifo_512x72_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx8_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx9_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/tb_ip_mem_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/tb_mac_init_mem_tmpl.vhd delete mode 100644 gbe2_ecp3/ipcores_ecp3/tb_statts_mem_tmpl.vhd delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/generate_core.tcl delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac3/orcapp_head delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/pmi_ram_dpEbnonessdn96649664.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac3/ts_mac_eval.tar delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3.lpc delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3.ngo delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3.v delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3_bb.v delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3_beh.v delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3_gen.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3_generate.log delete mode 100755 gbe2_ecp3/ipcores_ecp3/tsmac3/tsmac3_inst.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/generate_core.tcl delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/pmi_ram_dpEbnonessdn208256208256.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/pmi_ram_dpEbnonessdn96649664.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_bb.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_beh.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_filelist.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_gen.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_inst.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/generate_core.tcl delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/pmi_ram_dpEbnonessdn208256208256.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/pmi_ram_dpEbnonessdn96649664.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.ipx delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.lpc delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.ngo delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35_bb.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35_beh.v delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35_filelist.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35_gen.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35_generate.log delete mode 100644 gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35_inst.v delete mode 100755 gbe2_ecp3/mb_mac_sim.vhd delete mode 100755 gbe2_ecp3/slv_mac_memory.vhd delete mode 100755 gbe2_ecp3/slv_register.vhd delete mode 100755 gbe2_ecp3/tb_feeder.vhd delete mode 100644 gbe2_ecp3/tb_frame_receiver.vhd delete mode 100755 gbe2_ecp3/tb_gbe_buf.vhd delete mode 100755 gbe2_ecp3/tb_ip_configurator.vhd delete mode 100755 gbe2_ecp3/tb_ipu2gbe.vhd delete mode 100755 gbe2_ecp3/tb_ipu2gbe_NEW.vhd delete mode 100755 gbe2_ecp3/tb_ipu2gbe_OLD.vhd delete mode 100755 gbe2_ecp3/tb_lsm.vhd delete mode 100755 gbe2_ecp3/tb_pc.vhd delete mode 100755 gbe2_ecp3/tb_slv_mac_memory.vhd delete mode 100755 gbe2_ecp3/trb_net16_gbe_buf.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_event_constr.vhd delete mode 100755 gbe2_ecp3/trb_net16_gbe_frame_constr.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd delete mode 100755 gbe2_ecp3/trb_net16_gbe_frame_trans.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_ipu2gbe_simple_sender.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_ipu_interface.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_mac_control.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_main_control.vhd delete mode 100755 gbe2_ecp3/trb_net16_gbe_packet_constr.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_packet_constr_20101006.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_packet_constr_nologic.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_packet_constr_simple_sender.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_protocol_prioritizer.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_protocol_selector.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_receive_control.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_ARP.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_DHCP.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_Forward.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_Ping.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_SCTRL.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_Stat.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_Test.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_Test1.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_Trash.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_response_constructor_TrbNetData.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_setup.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_setup_simplified.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_transmit_control.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_transmit_control2.vhd delete mode 100644 gbe2_ecp3/trb_net16_gbe_type_validator.vhd delete mode 100755 gbe2_ecp3/trb_net16_ipu2gbe.vhd delete mode 100644 gbe2_ecp3/trb_net16_ipu2gbe_20101006.vhd delete mode 100644 gbe2_ecp3/trb_net16_ipu2gbe_nologic.vhd delete mode 100755 gbe2_ecp3/trb_net16_lsm_sfp_gbe.vhd delete mode 100755 gbe2_ecp3/trb_net16_med_ecp_sfp_gbe_8b.vhd delete mode 100644 gbe2_ecp3/trb_net_gbe_components.vhd delete mode 100644 gbe2_ecp3/trb_net_gbe_protocols.vhd delete mode 100755 gbe_ecp2m/feeder.vhd delete mode 100755 gbe_ecp2m/ip_configurator.vhd delete mode 100644 gbe_ecp2m/ipcores/.cvsignore delete mode 100644 gbe_ecp2m/ipcores/debug_fifo_2kx16.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_1024x16x8.lpc delete mode 100644 gbe_ecp2m/ipcores/fifo_1024x16x8.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_1024x16x8_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_16kx8.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_2048x8.lpc delete mode 100755 gbe_ecp2m/ipcores/fifo_2048x8.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_2048x8_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_2048x8x16.lpc delete mode 100644 gbe_ecp2m/ipcores/fifo_2048x8x16.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_2048x8x16_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_32kx16x8_mb.lpc delete mode 100755 gbe_ecp2m/ipcores/fifo_32kx16x8_mb.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.ipx delete mode 100644 gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.lpc delete mode 100644 gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.srp delete mode 100644 gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_32kx16x8_mb2_generate.log delete mode 100644 gbe_ecp2m/ipcores/fifo_32kx16x8_mb2_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_32kx16x8_mb_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_4096x32.lpc delete mode 100755 gbe_ecp2m/ipcores/fifo_4096x32.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_4096x32_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_4096x9.lpc delete mode 100755 gbe_ecp2m/ipcores/fifo_4096x9.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_4096x9_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_512x32.lpc delete mode 100644 gbe_ecp2m/ipcores/fifo_512x32.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_512x32_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_512x64.lpc delete mode 100644 gbe_ecp2m/ipcores/fifo_512x64.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_512x64_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_512x72.lpc delete mode 100644 gbe_ecp2m/ipcores/fifo_512x72.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_512x72_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_64kx8.lpc delete mode 100755 gbe_ecp2m/ipcores/fifo_64kx8.vhd delete mode 100755 gbe_ecp2m/ipcores/fifo_64kx8_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_64kx9.ipx delete mode 100644 gbe_ecp2m/ipcores/fifo_64kx9.lpc delete mode 100644 gbe_ecp2m/ipcores/fifo_64kx9.srp delete mode 100644 gbe_ecp2m/ipcores/fifo_64kx9.vhd delete mode 100644 gbe_ecp2m/ipcores/fifo_64kx9_generate.log delete mode 100644 gbe_ecp2m/ipcores/fifo_64kx9_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/ip_mem.lpc delete mode 100755 gbe_ecp2m/ipcores/ip_mem.mem delete mode 100755 gbe_ecp2m/ipcores/ip_mem.vhd delete mode 100755 gbe_ecp2m/ipcores/ip_mem_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/macInitDataInvWithMac.mem delete mode 100755 gbe_ecp2m/ipcores/mac_init_mem.lpc delete mode 100755 gbe_ecp2m/ipcores/mac_init_mem.vhd delete mode 100755 gbe_ecp2m/ipcores/mac_init_mem_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/serdes/.cvsignore delete mode 100755 gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.lpc delete mode 100755 gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.txt delete mode 100755 gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.vhd delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.ipx delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.jhd delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.lpc delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.naf delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.pp delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.readme delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.sort delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.sym delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.tft delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.txt delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4.vhd delete mode 100644 gbe_ecp2m/ipcores/serdes_ch4_generate.log delete mode 100644 gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.lpc delete mode 100644 gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.txt delete mode 100644 gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.vhd delete mode 100644 gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.lpc delete mode 100644 gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.txt delete mode 100644 gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.vhd delete mode 100644 gbe_ecp2m/ipcores/sgmii_gbe_pcs32/.cvsignore delete mode 100755 gbe_ecp2m/ipcores/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo delete mode 100755 gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc delete mode 100755 gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo delete mode 100644 gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_pcs_eval.tar delete mode 100644 gbe_ecp2m/ipcores/statts_mem.lpc delete mode 100644 gbe_ecp2m/ipcores/statts_mem.vhd delete mode 100644 gbe_ecp2m/ipcores/statts_mem_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/tb_fifo_1024x16x8_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/tb_fifo_2048x8_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/tb_fifo_2048x8x16_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb2_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/tb_fifo_32kx16x8_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/tb_fifo_4096x32_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/tb_fifo_4096x9_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/tb_fifo_512x32_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/tb_fifo_512x64_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/tb_fifo_512x72_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/tb_fifo_64kx8_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/tb_fifo_64kx9_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/tb_ip_mem_tmpl.vhd delete mode 100755 gbe_ecp2m/ipcores/tb_mac_init_mem_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/tb_statts_mem_tmpl.vhd delete mode 100644 gbe_ecp2m/ipcores/tsmac3/.cvsignore delete mode 100755 gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo delete mode 100755 gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn96649664.ngo delete mode 100644 gbe_ecp2m/ipcores/tsmac3/ts_mac_eval.tar delete mode 100755 gbe_ecp2m/ipcores/tsmac3/tsmac3.lpc delete mode 100755 gbe_ecp2m/ipcores/tsmac3/tsmac3.ngo delete mode 100755 gbe_ecp2m/mb_mac_sim.vhd delete mode 100644 gbe_ecp2m/slv_mac_memory.vhd delete mode 100755 gbe_ecp2m/slv_register.vhd delete mode 100755 gbe_ecp2m/tb_feeder.vhd delete mode 100755 gbe_ecp2m/tb_gbe_buf.vhd delete mode 100755 gbe_ecp2m/tb_ip_configurator.vhd delete mode 100755 gbe_ecp2m/tb_ipu2gbe.vhd delete mode 100755 gbe_ecp2m/tb_lsm.vhd delete mode 100755 gbe_ecp2m/tb_pc.vhd delete mode 100755 gbe_ecp2m/tb_slv_mac_memory.vhd delete mode 100755 gbe_ecp2m/trb_net16_gbe_buf.vhd delete mode 100755 gbe_ecp2m/trb_net16_gbe_frame_constr.vhd delete mode 100755 gbe_ecp2m/trb_net16_gbe_frame_trans.vhd delete mode 100755 gbe_ecp2m/trb_net16_gbe_packet_constr.vhd delete mode 100644 gbe_ecp2m/trb_net16_gbe_setup.vhd delete mode 100755 gbe_ecp2m/trb_net16_ipu2gbe.vhd delete mode 100755 gbe_ecp2m/trb_net16_lsm_sfp_gbe.vhd delete mode 100755 gbe_ecp2m/trb_net16_med_ecp_sfp_gbe_8b.vhd delete mode 100644 gbe_ecp2m/trb_net_gbe_components.vhd delete mode 100644 gbe_trb_ecp3/base/forwarder.vhd delete mode 100644 gbe_trb_ecp3/base/gather_ports.vhd delete mode 100644 gbe_trb_ecp3/base/gbe_lsm.vhd delete mode 100644 gbe_trb_ecp3/base/rx_rb.vhd delete mode 100644 gbe_trb_ecp3/base/scatter_ports.vhd delete mode 100644 gbe_trb_ecp3/base/tx_fifo.vhd delete mode 100644 oldfiles/L12TrigBusInterface.vhd delete mode 100644 oldfiles/bus_handler.vhd delete mode 100644 oldfiles/bus_handler_oepb.vhd delete mode 100644 oldfiles/etrax_interface.vhd delete mode 100644 oldfiles/rom_16x8.vhd delete mode 100644 oldfiles/serdes_sync_0/serdes_sync_0.vhd delete mode 100644 oldfiles/serdes_sync_0/serdes_sync_0_softlogic.v delete mode 100644 oldfiles/serdes_test/ecp2m_link_fifo.vhd delete mode 100644 oldfiles/serdes_test/etrax_interfacev2.vhd delete mode 100644 oldfiles/serdes_test/f_divider.vhd delete mode 100644 oldfiles/serdes_test/flexi_PCS_channel_synch.vhd delete mode 100644 oldfiles/serdes_test/flexi_PCS_fifo_EBR.vhd delete mode 100644 oldfiles/serdes_test/flexi_PCS_synch.vhd delete mode 100644 oldfiles/serdes_test/hub.vhd delete mode 100644 oldfiles/serdes_test/link_test.vhd delete mode 100644 oldfiles/serdes_test/pcs_for_ecp2m.txt delete mode 100644 oldfiles/serdes_test/pcs_for_ecp2m.vhd delete mode 100644 oldfiles/serdes_test/rich.vhd delete mode 100644 oldfiles/serdes_test/serdes_fpga_ref_clk.txt delete mode 100644 oldfiles/serdes_test/up_down_counter.vhd delete mode 100644 oldfiles/sfp_interface.vhd delete mode 100644 oldfiles/sram_is61.vhd delete mode 100644 oldfiles/timing/api_timing.tex delete mode 100644 oldfiles/timing/timing.mf delete mode 100644 oldfiles/timing/timing.sty delete mode 100644 oldfiles/timing/timing1.mf delete mode 100644 oldfiles/timing/timing1.pk delete mode 100644 oldfiles/timing/timing1.tfm delete mode 100644 oldfiles/timing/timing1s.mf delete mode 100644 oldfiles/timing/timing1s.pk delete mode 100644 oldfiles/timing/timing1s.tfm delete mode 100644 oldfiles/timing/timing2.mf delete mode 100644 oldfiles/timing/timing2.pk delete mode 100644 oldfiles/timing/timing2.tfm delete mode 100644 oldfiles/timing/timing2s.mf delete mode 100644 oldfiles/timing/timing2s.pk delete mode 100644 oldfiles/timing/timing2s.tfm delete mode 100755 oldfiles/timing/timing_to_figures.sh delete mode 100644 oldfiles/trb_net16_api_active.vhd delete mode 100644 oldfiles/trb_net16_api_passive.vhd delete mode 100644 oldfiles/trb_net16_api_streaming.vhd delete mode 100644 oldfiles/trb_net16_bram_fifo.vhd delete mode 100644 oldfiles/trb_net16_endpoint_1_trg_2_data_1_regio.vhd delete mode 100644 oldfiles/trb_net16_endpoint_2_trg.vhd delete mode 100644 oldfiles/trb_net16_endpoint_2_trg_1_api.vhd delete mode 100644 oldfiles/trb_net16_endpoint_2_trg_2_api.vhd delete mode 100644 oldfiles/trb_net16_hub_streaming_port.vhd delete mode 100644 oldfiles/trb_net16_med_16_CC.vhd delete mode 100644 oldfiles/trb_net16_med_16_IC.vhd delete mode 100644 oldfiles/trb_net16_med_16_SDR_OS.vhd delete mode 100644 oldfiles/trb_net16_med_8_DDR_OS.vhd delete mode 100644 oldfiles/trb_net16_med_8_SDR_OS.vhd delete mode 100644 oldfiles/trb_net16_med_8_SDR_sync.vhd delete mode 100644 oldfiles/trb_net16_med_tlk.vhd delete mode 100755 oldfiles/trb_net16_rx_packets.vhd delete mode 100644 oldfiles/trb_net_18_to_16_converter.vhd delete mode 100644 oldfiles/trb_net_55_to_18_converter.vhd delete mode 100644 oldfiles/trb_net_64_to_18_converter.vhd delete mode 100644 oldfiles/trb_net_active_api.vhd delete mode 100644 oldfiles/trb_net_active_apimbuf.vhd delete mode 100644 oldfiles/trb_net_apimbuf_fast_lvds.vhd delete mode 100644 oldfiles/trb_net_base_api.vhd delete mode 100644 oldfiles/trb_net_endpoint_3ch.vhd delete mode 100644 oldfiles/trb_net_fanout_hub.vhd delete mode 100644 oldfiles/trb_net_fifo_arch.vhd delete mode 100644 oldfiles/trb_net_ibuf.vhd delete mode 100644 oldfiles/trb_net_io_multiplexer.vhd delete mode 100644 oldfiles/trb_net_iobuf.vhd delete mode 100755 oldfiles/trb_net_med_13bit_slow.vhd delete mode 100644 oldfiles/trb_net_med_32lvds.vhd delete mode 100644 oldfiles/trb_net_med_8bit_fast.vhd delete mode 100644 oldfiles/trb_net_med_8bit_slow.vhd delete mode 100644 oldfiles/trb_net_med_tlkx501.vhd delete mode 100644 oldfiles/trb_net_obuf.vhd delete mode 100644 oldfiles/trb_net_old_to_new.vhd delete mode 100644 oldfiles/trb_net_passive_api.vhd delete mode 100644 oldfiles/trb_net_passive_apimbuf.vhd delete mode 100644 oldfiles/trb_net_priority_encoder_simple.vhd delete mode 100644 oldfiles/trb_net_term.vhd delete mode 100644 oldfiles/trb_net_term_ibuf.vhd delete mode 100644 oldfiles/trb_net_term_mbuf.vhd delete mode 100644 oldfiles/trb_net_trigger_reader.vhd delete mode 100644 oldfiles/trb_net_trigger_sender.vhd delete mode 100644 oldfiles/trbnetendpoint.vhd delete mode 100644 oldfiles/vulom3/beam_ramp.vhd delete mode 100644 oldfiles/vulom3/bus_data_com5.vhd delete mode 100644 oldfiles/vulom3/clocking.vhd delete mode 100755 oldfiles/vulom3/compile_vulom3.pl delete mode 100644 oldfiles/vulom3/delay.vhd delete mode 100644 oldfiles/vulom3/downscale.vhd delete mode 100644 oldfiles/vulom3/eco_delay.vhd delete mode 100644 oldfiles/vulom3/impact_batch_vulom3.txt delete mode 100644 oldfiles/vulom3/new_downscale_ck.vhd delete mode 100644 oldfiles/vulom3/one_clock_long.vhd delete mode 100644 oldfiles/vulom3/one_clock_long_test.vhd delete mode 100644 oldfiles/vulom3/scaler.vhd delete mode 100644 oldfiles/vulom3/scaler_s.vhd delete mode 100644 oldfiles/vulom3/set_width.vhd delete mode 100644 oldfiles/vulom3/set_width_special.vhd delete mode 100644 oldfiles/vulom3/trig_box1.vhd delete mode 100644 oldfiles/vulom3/trigger_box1.stapl delete mode 100644 oldfiles/vulom3/ulogic.vhd delete mode 100644 oldfiles/vulom3/vlogic_1.prj delete mode 100644 oldfiles/vulom3/vlogic_1.sdc delete mode 100644 oldfiles/vulom3/vlogic_1.ucf delete mode 100644 oldfiles/vulom3/vlogic_1.vhd delete mode 100644 oldfiles/vulom3/vlogic_1_syn.prj delete mode 100644 oldfiles/vulom3/vmelogic.vhd delete mode 100755 optical_link/compile_hub.pl delete mode 100644 optical_link/f_divider.vhd delete mode 100644 optical_link/flexi_PCS_channel_synch.vhd delete mode 100644 optical_link/flexi_PCS_fifo_EBR.vhd delete mode 100644 optical_link/flexi_PCS_fifo_LUT.vhd delete mode 100644 optical_link/flexi_PCS_synch.vhd delete mode 100644 optical_link/hub.lpf delete mode 100644 optical_link/hub.vhd delete mode 100644 optical_link/hub_1.xcf delete mode 100644 optical_link/hub_syn.prj delete mode 100644 optical_link/hub_tb.vhd delete mode 100644 optical_link/impact_batch_hub.txt delete mode 100644 optical_link/pll_ref.vhd delete mode 100644 optical_link/readme delete mode 100644 optical_link/serdes_fpga_ref_clk.txt delete mode 100644 optical_link/serdes_fpga_ref_clk.vhd delete mode 100755 optical_link/setup_env delete mode 100644 optical_link/simpleupcounter_16bit.vhd delete mode 100644 optical_link/simpleupcounter_32bit.vhd delete mode 100644 optical_link/simpleupcounter_8bit.vhd delete mode 100644 optical_link/trb_hub_interface.vhd delete mode 100644 optical_link/trbv2_tlk_api.vhd delete mode 100644 optical_link/trbv2_tlk_api_fifo.ngc delete mode 100644 optical_link/trbv2_tlk_api_fifo.vhd diff --git a/gbe2_ecp3/feeder.vhd b/gbe2_ecp3/feeder.vhd deleted file mode 100755 index 57fb2c2..0000000 --- a/gbe2_ecp3/feeder.vhd +++ /dev/null @@ -1,620 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; - -entity feeder is -port( CLK : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- PacketConstructor interface - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOD_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_PADDING_OUT : out std_logic; - -- Debug - BSM_SAVE_OUT : out std_logic_vector(3 downto 0); - BSM_LOAD_OUT : out std_logic_vector(3 downto 0); - DBG_REM_CTR_OUT : out std_logic_vector(3 downto 0); - DBG_CTS_CTR_OUT : out std_logic_vector(2 downto 0); - DBG_SF_WCNT_OUT : out std_logic_vector(15 downto 0); - DBG_SF_RCNT_OUT : out std_logic_vector(16 downto 0); - DBG_SF_DATA_OUT : out std_logic_vector(15 downto 0); - DBG_SF_RD_EN_OUT : out std_logic; - DBG_SF_WR_EN_OUT : out std_logic; - DBG_SF_EMPTY_OUT : out std_logic; - DBG_SF_FULL_OUT : out std_logic; - DBG_SF_AFULL_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end entity; - -architecture feeder of feeder is - -component fifo_32kx16x8_mb -port( Data : in std_logic_vector(15 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(7 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); - Empty : out std_logic; - Full : out std_logic; - AlmostFull : out std_logic - ); -end component; - -type saveStates is (SIDLE, WAIT_FOR_DATA, SAVE_DATA, TERMINATE, SCLOSE); -signal saveCurrentState, saveNextState : saveStates; -signal state : std_logic_vector(3 downto 0); -signal data_req_comb : std_logic; -signal data_req : std_logic; -- request data signal, will be used for fee_read generation -signal rst_saved_ctr_comb : std_logic; -signal rst_saved_ctr : std_logic; - -signal fee_read_comb : std_logic; -signal fee_read : std_logic; -- fee_read signal -signal saved_ctr : std_logic_vector(16 downto 0); -signal ce_saved_ctr : std_logic; - --- header data -signal cts_rnd : std_logic_vector(15 downto 0); -signal cts_rnd_saved : std_logic; -signal cts_trg : std_logic_vector(15 downto 0); -signal cts_trg_saved : std_logic; -signal cts_len : std_logic_vector(16 downto 0); -signal cts_len_saved : std_logic; - --- CTS interface -signal cts_error_pattern : std_logic_vector(31 downto 0); -signal cts_length : std_logic_vector(15 downto 0); -signal cts_readout_finished : std_logic; -signal cts_dataready : std_logic; -signal cts_data : std_logic_vector(31 downto 0); - --- Split FIFO signals -signal sf_data : std_logic_vector(15 downto 0); -signal sf_wr_en_comb : std_logic; -signal sf_wr_en : std_logic; -- write signal for FIFO -signal sf_rd_en : std_logic; -signal sf_wcnt : std_logic_vector(15 downto 0); -signal sf_rcnt : std_logic_vector(16 downto 0); -signal sf_empty : std_logic; -signal sf_full : std_logic; -signal sf_afull : std_logic; - -------------------------------------------------------------------- -type loadStates is (LIDLE, INIT, REMOVE, CALCA, CALCB, LOAD, PAD0, PAD1, PAD2, PAD3, WAIT_PC, CLOSE); -signal loadCurrentState, loadNextState : loadStates; -signal state2 : std_logic_vector(3 downto 0); - -signal rem_ctr : std_logic_vector(3 downto 0); -- counter for stripping / storing header data -signal rst_rem_ctr_comb : std_logic; -signal rst_rem_ctr : std_logic; -signal rst_regs_comb : std_logic; -signal rst_regs : std_logic; -signal ce_rem_ctr_comb : std_logic; -signal ce_rem_ctr : std_logic; -signal remove_done_comb : std_logic; -signal remove_done : std_logic; -- end of header stripping process -signal load_done_comb : std_logic; -signal load_done : std_logic; -- end of data transfer into PC -signal calc_pad_comb : std_logic; -signal calc_pad : std_logic; -- add padding bytes, if needed -signal read_data_comb : std_logic; -signal read_data : std_logic; -- fetch data from split fifo -signal data_phase_comb : std_logic; -signal data_phase : std_logic; -- data transport phase from split fifo to PC -signal pc_sos_comb : std_logic; -signal pc_sos : std_logic; -- start of data signal -signal pc_eod_comb : std_logic; -signal pc_eod : std_logic; -- end of data signal -signal pad_data_comb : std_logic; -signal pad_data : std_logic; -- insert padding bytes - -signal pc_data : std_logic_vector(7 downto 0); -signal pc_data_q : std_logic_vector(7 downto 0); -signal pc_trig_nr : std_logic_vector(15 downto 0); -signal pc_sub_size : std_logic_vector(17 downto 0); -signal read_size : std_logic_vector(17 downto 0); -- number of byte to be read from split fifo -signal padding_needed : std_logic; -signal pc_wr_en_q : std_logic; -signal pc_wr_en_qq : std_logic; -signal pc_eod_q : std_logic; - -signal debug : std_logic_vector(31 downto 0); - -begin - --- CTS interface signals -cts_error_pattern <= (others => '0'); -- FAKE -cts_dataready <= '1'; -- FAKE - -cts_length <= x"0000"; -- length of data payload is always 0 -cts_data <= b"0001" & cts_rnd(11 downto 0) & cts_trg; -- reserved bits = '0', pack bit = '1' - -cts_readout_finished <= '1' when (saveCurrentState = SCLOSE) else '0'; - - --- Sync all critical pathes -THE_SYNC_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - sf_data <= FEE_DATA_IN; - sf_wr_en <= sf_wr_en_comb; - fee_read <= fee_read_comb; - load_done <= load_done_comb; - pc_eod_q <= pc_eod; - pc_wr_en_qq <= pc_wr_en_q; - pc_wr_en_q <= data_phase; - end if; -end process THE_SYNC_PROC; - --- combinatorial read signal for the FEE data interface, DO NOT USE DIRECTLY -fee_read_comb <= '1' when ( (sf_afull = '0') and (data_req = '1') ) - else '0'; - --- combinatorial write signal for the split FIFO, DO NOT USE DIRECTLY -sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') ) - else '0'; - --- Counter for header word storage -THE_CTS_SAVED_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - saved_ctr <= (others => '0'); - elsif( ce_saved_ctr = '1' ) then - saved_ctr <= saved_ctr + 1; - end if; - end if; -end process THE_CTS_SAVED_CTR; - -ce_saved_ctr <= sf_wr_en; - --- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO -saveMachineProc: process( CLK ) -begin - if rising_edge(CLK) then - if RESET = '1' then - saveCurrentState <= SIDLE; - data_req <= '0'; - rst_saved_ctr <= '0'; - else - saveCurrentState <= saveNextState; - data_req <= data_req_comb; - rst_saved_ctr <= rst_saved_ctr_comb; - end if; - end if; -end process saveMachineProc; - -saveMachine: process( saveCurrentState, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN ) -begin - saveNextState <= SIDLE; - data_req_comb <= '0'; - rst_saved_ctr_comb <= '0'; - case saveCurrentState is - when SIDLE => - state <= x"0"; - if (CTS_START_READOUT_IN = '1') then - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - rst_saved_ctr_comb <= '1'; - else - saveNextState <= SIDLE; - end if; - when WAIT_FOR_DATA => - state <= x"1"; - if (FEE_BUSY_IN = '1') then - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - else - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - end if; - when SAVE_DATA => - state <= x"2"; - if (FEE_BUSY_IN = '0') then - saveNextState <= TERMINATE; - else - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - end if; - when TERMINATE => - state <= x"3"; - if (CTS_READ_IN = '1') then - saveNextState <= SCLOSE; - else - saveNextState <= TERMINATE; - end if; - when SCLOSE => - state <= x"4"; - if (CTS_START_READOUT_IN = '0') then - saveNextState <= SIDLE; - else - saveNextState <= SCLOSE; - end if; - when others => - state <= x"f"; - saveNextState <= SIDLE; - end case; -end process saveMachine; - --- save triggerRnd from incoming data for cts response -CTS_RND_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_rnd <= (others => '0'); - cts_rnd_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"000") and (sf_wr_en = '1') and (cts_rnd_saved = '0') ) then - cts_rnd <= sf_data; - cts_rnd_saved <= '1'; - end if; - end if; -end process CTS_RND_PROC; - --- save triggerNr from incoming data for cts response -CTS_TRG_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_trg <= (others => '0'); - cts_trg_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"001") and (sf_wr_en = '1') and (cts_trg_saved = '0') ) then - cts_trg <= sf_data; - cts_trg_saved <= '1'; - end if; - end if; -end process CTS_TRG_PROC; - --- save size from incoming data for cts response (future) and to get rid of padding -CTS_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_len <= (others => '0'); - cts_len_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"010") and (sf_wr_en = '1') and (cts_len_saved = '0') ) then - cts_len(16 downto 1) <= sf_data; -- change from 32b words to 16b words - elsif( (saved_ctr(2 downto 0) = b"011") and (cts_len_saved = '0') ) then - cts_len <= cts_len + x"4"; - cts_len_saved <= '1'; - end if; - end if; -end process CTS_SIZE_PROC; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Split FIFO -THE_SPLIT_FIFO: fifo_32kx16x8_mb -port map( Data => sf_data, - WrClock => CLK, - RdClock => CLK, - WrEn => sf_wr_en, - RdEn => sf_rd_en, - Reset => RESET, - RPReset => RESET, - AmFullThresh => b"111_1111_1110_1111", -- 0x7fef = 32751 - Q => pc_data, --open, - WCNT => sf_wcnt, - RCNT => sf_rcnt, - Empty => sf_empty, - Full => sf_full, - AlmostFull => sf_afull - ); - -sf_rd_en <= read_data; ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- FIFO data delay process (also forces padding bytes to known value) -THE_DATA_DELAY_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if( pad_data = '1' ) then - pc_data_q <= x"ee"; - else - pc_data_q <= pc_data; - end if; - end if; -end process THE_DATA_DELAY_PROC; - --- Statemachine for reading the data payload from the SPLIT_FIFO and feeding --- it into the packet constructor -loadMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if RESET = '1' then - loadCurrentState <= LIDLE; - rst_regs <= '0'; - rst_rem_ctr <= '0'; - ce_rem_ctr <= '0'; - calc_pad <= '0'; - read_data <= '0'; - data_phase <= '0'; - pc_sos <= '0'; - pc_eod <= '0'; - pad_data <= '0'; - else - loadCurrentState <= loadNextState; - rst_regs <= rst_regs_comb; - rst_rem_ctr <= rst_rem_ctr_comb; - ce_rem_ctr <= ce_rem_ctr_comb; - calc_pad <= calc_pad_comb; - read_data <= read_data_comb; - data_phase <= data_phase_comb; - pc_sos <= pc_sos_comb; - pc_eod <= pc_eod_comb; - pad_data <= pad_data_comb; - end if; - end if; -end process loadMachineProc; - -loadMachine : process( loadCurrentState, sf_empty, remove_done, load_done, padding_needed, PC_READY_IN ) -begin - loadNextState <= LIDLE; - rst_regs_comb <= '0'; - rst_rem_ctr_comb <= '0'; - ce_rem_ctr_comb <= '0'; - calc_pad_comb <= '0'; - read_data_comb <= '0'; - data_phase_comb <= '0'; - pc_sos_comb <= '0'; - pc_eod_comb <= '0'; - pad_data_comb <= '0'; - case loadCurrentState is - when LIDLE => - state2 <= x"0"; - if( (sf_empty = '0') and (PC_READY_IN = '1') ) then - loadNextState <= INIT; - rst_regs_comb <= '1'; - rst_rem_ctr_comb <= '1'; - else - loadNextState <= LIDLE; - end if; - when INIT => - state2 <= x"1"; - loadNextState <= REMOVE; - ce_rem_ctr_comb <= '1'; - read_data_comb <= '1'; - when REMOVE => - state2 <= x"2"; - if( remove_done = '1' ) then - loadNextState <= CALCA; - calc_pad_comb <= '1'; - else - loadNextState <= REMOVE; - ce_rem_ctr_comb <= '1'; - read_data_comb <= '1'; - end if; - when CALCA => - state2 <= x"3"; - loadNextState <= CALCB; - when CALCB => - -- we need a branch in case of length "0"!!!! - state2 <= x"4"; - loadNextState <= LOAD; - read_data_comb <= '1'; - data_phase_comb <= '1'; - pc_sos_comb <= '1'; - when LOAD => - state2 <= x"5"; - if ( (load_done = '1') and (padding_needed = '0') ) then - loadNextState <= CLOSE; - elsif( (load_done = '1') and (padding_needed = '1') ) then - loadNextState <= PAD0; - data_phase_comb <= '1'; - else - loadNextState <= LOAD; - read_data_comb <= '1'; - data_phase_comb <= '1'; - end if; - when PAD0 => - state2 <= x"5"; - loadNextState <= PAD1; - data_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD1 => - state2 <= x"6"; - loadNextState <= PAD2; - data_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD2 => - state2 <= x"7"; - loadNextState <= PAD3; - data_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD3 => - state2 <= x"8"; - loadNextState <= CLOSE; - pad_data_comb <= '1'; - when CLOSE => - state2 <= x"9"; - loadNextState <= WAIT_PC; - pc_eod_comb <= '1'; - when WAIT_PC => - state2 <= x"a"; - if( PC_READY_IN = '1' ) then - loadNextState <= LIDLE; - rst_rem_ctr_comb <= '1'; - rst_regs_comb <= '1'; - else - loadNextState <= WAIT_PC; - end if; - when others => - state2 <= x"f"; - loadNextState <= LIDLE; - end case; -end process loadMachine; - --- Counter for stripping the unneeded parts of the data stream, and saving the important parts -THE_REMOVE_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - rem_ctr <= (others => '0'); - elsif( ce_rem_ctr = '1' ) then - rem_ctr <= rem_ctr + 1; - end if; - end if; -end process THE_REMOVE_CTR; - -remove_done_comb <= '1' when ( rem_ctr = x"6" ) else '0'; - -THE_REM_DONE_SYNC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - remove_done <= '0'; - else - remove_done <= remove_done_comb; - end if; - end if; -end process THE_REM_DONE_SYNC; - --- extract the trigger number from splitfifo data -THE_TRG_NR_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_trig_nr <= (others => '0'); - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"3") ) then - pc_trig_nr(7 downto 0) <= pc_data; - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"4") ) then - pc_trig_nr(15 downto 8) <= pc_data; - end if; - end if; -end process THE_TRG_NR_PROC; - --- check for padding -THE_PADDING_NEEDED_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - padding_needed <= '0'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '1') ) then - padding_needed <= '1'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '0') ) then - padding_needed <= '0'; - end if; - end if; -end process THE_PADDING_NEEDED_PROC; - --- extract the subevent size from the splitfifo data, convert it from 32b to 8b units, --- and in case of padding needed increase it accordingly -THE_SUB_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_sub_size <= (others => '0'); - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"5") ) then - pc_sub_size(9 downto 2) <= pc_data; - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"6") ) then - pc_sub_size(17 downto 10) <= pc_data; - elsif( (calc_pad = '1') and (padding_needed = '1') ) then - pc_sub_size <= pc_sub_size + 4; - end if; - end if; -end process THE_SUB_SIZE_PROC; - --- number of bytes to read from split fifo -THE_READ_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - read_size <= (others => '0'); - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"5") ) then - read_size(9 downto 2) <= pc_data; - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"6") ) then - read_size(17 downto 10) <= pc_data; - elsif( ((calc_pad = '1') and (load_done = '0')) ) then - read_size <= read_size - 2; - elsif( ((read_data = '1') and (data_phase = '1')) ) then - read_size <= read_size - 1; - end if; - end if; -end process THE_READ_SIZE_PROC; - -load_done_comb <= '1' when (read_size = 0) else '0'; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Debug signals -debug(31) <= remove_done; -debug(30) <= load_done; -debug(29) <= ce_rem_ctr; -debug(28) <= rst_rem_ctr; -debug(27) <= rst_regs; -debug(26) <= data_phase; -debug(25) <= read_data; -debug(24) <= pad_data; -debug(23 downto 18) <= (others => '0'); -debug(17 downto 0) <= read_size; - --- Outputs -FEE_READ_OUT <= fee_read; -CTS_ERROR_PATTERN_OUT <= cts_error_pattern; -CTS_DATA_OUT <= cts_data; -CTS_DATAREADY_OUT <= cts_dataready; -CTS_READOUT_FINISHED_OUT <= cts_readout_finished; -CTS_LENGTH_OUT <= cts_length; - -PC_SOS_OUT <= pc_sos; -PC_EOD_OUT <= pc_eod_q; -PC_DATA_OUT <= pc_data_q; -PC_WR_EN_OUT <= pc_wr_en_qq; -PC_TRIG_NR_OUT <= x"0000" & pc_trig_nr; -PC_SUB_SIZE_OUT <= b"0000_0000_0000_00" & pc_sub_size; -PC_PADDING_OUT <= padding_needed; - -BSM_SAVE_OUT <= state; -BSM_LOAD_OUT <= state2; -DBG_CTS_CTR_OUT <= saved_ctr(2 downto 0); -DBG_REM_CTR_OUT <= rem_ctr; -DBG_SF_DATA_OUT <= sf_data; -DBG_SF_WCNT_OUT <= sf_wcnt; -DBG_SF_RCNT_OUT <= sf_rcnt; -DBG_SF_RD_EN_OUT <= sf_rd_en; -DBG_SF_WR_EN_OUT <= sf_wr_en; -DBG_SF_EMPTY_OUT <= sf_empty; -DBG_SF_FULL_OUT <= sf_full; -DBG_SF_AFULL_OUT <= sf_afull; - -DEBUG_OUT <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe2_ecp3/ip_configurator.vhd b/gbe2_ecp3/ip_configurator.vhd deleted file mode 100755 index d6b0778..0000000 --- a/gbe2_ecp3/ip_configurator.vhd +++ /dev/null @@ -1,342 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; - -entity ip_configurator is -port( - CLK : in std_logic; - RESET : in std_logic; - -- configuration interface - START_CONFIG_IN : in std_logic; -- start configuration run - BANK_SELECT_IN : in std_logic_vector(3 downto 0); -- selects config bank - CONFIG_DONE_OUT : out std_logic; -- configuration run ended, new values can be used - MEM_ADDR_OUT : out std_logic_vector(7 downto 0); -- address for - MEM_DATA_IN : in std_logic_vector(31 downto 0); -- data from IP memory - MEM_CLK_OUT : out std_logic; -- clock for BlockRAM - -- information for IP cores - DEST_MAC_OUT : out std_logic_vector(47 downto 0); -- destination MAC address - DEST_IP_OUT : out std_logic_vector(31 downto 0); -- destination IP address - DEST_UDP_OUT : out std_logic_vector(15 downto 0); -- destination port - SRC_MAC_OUT : out std_logic_vector(47 downto 0); -- source MAC address - SRC_IP_OUT : out std_logic_vector(31 downto 0); -- source IP address - SRC_UDP_OUT : out std_logic_vector(15 downto 0); -- source port - MTU_OUT : out std_logic_vector(15 downto 0); -- MTU size (max frame size) - -- Debug - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end entity; - -architecture ip_configurator of ip_configurator is - --- -- Placer Directives --- attribute HGROUP : string; --- -- for whole architecture --- attribute HGROUP of ip_configurator : architecture is "GBE_conf_group"; - -type STATES is (IDLE, LOAD_REG, DELAY0, DELAY1, DELAY2, LOAD_DONE); -signal CURRENT_STATE, NEXT_STATE : STATES; -signal bsm : std_logic_vector(3 downto 0); -signal ce_ctr_comb : std_logic; -signal ce_ctr : std_logic; -signal rst_ctr_comb : std_logic; -signal rst_ctr : std_logic; -signal cfg_done_comb : std_logic; -signal cfg_done : std_logic; - -signal ctr_done_comb : std_logic; -signal ctr_done : std_logic; - -signal wr_select_comb : std_logic_vector(15 downto 0); -signal wr_select : std_logic_vector(15 downto 0); -signal wr_select_q : std_logic_vector(15 downto 0); - -signal addr_ctr : std_logic_vector(3 downto 0); -signal dest_mac : std_logic_vector(47 downto 0); -signal dest_ip : std_logic_vector(31 downto 0); -signal dest_udp : std_logic_vector(15 downto 0); -signal src_mac : std_logic_vector(47 downto 0); -signal src_ip : std_logic_vector(31 downto 0); -signal src_udp : std_logic_vector(15 downto 0); -signal mtu : std_logic_vector(15 downto 0); - -signal debug : std_logic_vector(31 downto 0); - -begin - - --- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO -STATE_MACHINE_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if RESET = '1' then - CURRENT_STATE <= IDLE; - ce_ctr <= '0'; - rst_ctr <= '0'; - cfg_done <= '0'; - else - CURRENT_STATE <= NEXT_STATE; - ce_ctr <= ce_ctr_comb; - rst_ctr <= rst_ctr_comb; - cfg_done <= cfg_done_comb; - end if; - end if; -end process STATE_MACHINE_PROC; - -STATE_MACHINE_TRANS: process( CURRENT_STATE, START_CONFIG_IN, ctr_done ) -begin - NEXT_STATE <= IDLE; - ce_ctr_comb <= '0'; - rst_ctr_comb <= '0'; - cfg_done_comb <= '0'; - case CURRENT_STATE is - when IDLE => - bsm <= x"0"; - if( START_CONFIG_IN = '1' ) then - NEXT_STATE <= LOAD_REG; - ce_ctr_comb <= '1'; - else - NEXT_STATE <= IDLE; - end if; - when LOAD_REG => - bsm <= x"1"; - if( ctr_done = '1' ) then - NEXT_STATE <= DELAY0; - rst_ctr_comb <= '1'; - else - NEXT_STATE <= LOAD_REG; - ce_ctr_comb <= '1'; - end if; - when DELAY0 => - bsm <= x"2"; - NEXT_STATE <= DELAY1; - when DELAY1 => - bsm <= x"3"; - NEXT_STATE <= DELAY2; - when DELAY2 => - bsm <= x"4"; - NEXT_STATE <= LOAD_DONE; - cfg_done_comb <= '1'; - when LOAD_DONE => - bsm <= x"2"; - if( START_CONFIG_IN = '0' ) then - NEXT_STATE <= IDLE; - else - NEXT_STATE <= LOAD_DONE; - cfg_done_comb <= '1'; - end if; - when others => - bsm <= x"f"; - NEXT_STATE <= IDLE; - end case; -end process STATE_MACHINE_TRANS; - --- address counter -THE_ADDR_CTR_PROC: process( CLK ) -begin - if ( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_ctr = '1') ) then - addr_ctr <= (others => '0'); - elsif( ce_ctr = '1' ) then - addr_ctr <= addr_ctr + 1; - end if; - end if; -end process THE_ADDR_CTR_PROC; - -ctr_done_comb <= '1' when (addr_ctr = x"e") else '0'; - -THE_SYNC_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - ctr_done <= ctr_done_comb; - wr_select_q <= wr_select; - wr_select <= wr_select_comb; - end if; -end process THE_SYNC_PROC; - --- generate combinatorial write select signals, register and delay the (output registers in EBR!) -wr_select_comb(0) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"0") ) else '0'; -- dest MAC low -wr_select_comb(1) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"1") ) else '0'; -- dest MAC high -wr_select_comb(2) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"2") ) else '0'; -- dest IP -wr_select_comb(3) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"3") ) else '0'; -- dest port -wr_select_comb(4) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"4") ) else '0'; -- src MAC low -wr_select_comb(5) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"5") ) else '0'; -- src MAC high -wr_select_comb(6) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"6") ) else '0'; -- src IP -wr_select_comb(7) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"7") ) else '0'; -- src port -wr_select_comb(8) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"8") ) else '0'; -- MTU -wr_select_comb(9) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"9") ) else '0'; -wr_select_comb(10) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"a") ) else '0'; -wr_select_comb(11) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"b") ) else '0'; -wr_select_comb(12) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"c") ) else '0'; -wr_select_comb(13) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"d") ) else '0'; -wr_select_comb(14) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"e") ) else '0'; -wr_select_comb(15) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"f") ) else '0'; - --- destination MAC low register -THE_D_MAC_LOW_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - dest_mac(31 downto 0) <= (others => '0'); - elsif( wr_select_q(0) = '1') then - dest_mac(31 downto 0) <= mem_data_in; - end if; - end if; -end process THE_D_MAC_LOW_PROC; - --- destination MAC high register -THE_D_MAC_HIGH_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - dest_mac(47 downto 32) <= (others => '0'); - elsif( wr_select_q(1) = '1') then - dest_mac(47 downto 32) <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_D_MAC_HIGH_PROC; - --- destination IP register -THE_D_IP_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - dest_ip <= (others => '0'); - elsif( wr_select_q(2) = '1') then - dest_ip <= mem_data_in; - end if; - end if; -end process THE_D_IP_PROC; - --- destination PORT register -THE_D_PORT_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - dest_udp <= (others => '0'); - elsif( wr_select_q(3) = '1') then - dest_udp <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_D_PORT_PROC; - --- source MAC low register -THE_S_MAC_LOW_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - src_mac(31 downto 0) <= (others => '0'); - elsif( wr_select_q(4) = '1') then - src_mac(31 downto 0) <= mem_data_in; - end if; - end if; -end process THE_S_MAC_LOW_PROC; - --- source MAC high register -THE_S_MAC_HIGH_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - src_mac(47 downto 32) <= (others => '0'); - elsif( wr_select_q(5) = '1') then - src_mac(47 downto 32) <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_S_MAC_HIGH_PROC; - --- source IP register -THE_S_IP_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - src_ip <= (others => '0'); - elsif( wr_select_q(6) = '1') then - src_ip <= mem_data_in; - end if; - end if; -end process THE_S_IP_PROC; - --- source PORT register -THE_S_PORT_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - src_udp <= (others => '0'); - elsif( wr_select_q(7) = '1') then - src_udp <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_S_PORT_PROC; - --- MTU size register -THE_MTU_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - mtu <= (others => '0'); - elsif( wr_select_q(8) = '1') then - mtu <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_MTU_PROC; - - --- Debug signals -debug(31 downto 12) <= (others => '0'); -debug(11 downto 8) <= addr_ctr; -debug(7) <= '0'; -debug(6) <= ctr_done; -debug(5) <= ce_ctr; -debug(4) <= rst_ctr; -debug(3 downto 0) <= bsm; --- Outputs -MEM_ADDR_OUT(7 downto 4) <= BANK_SELECT_IN; -MEM_ADDR_OUT(3 downto 0) <= addr_ctr; -MEM_CLK_OUT <= CLK; -CONFIG_DONE_OUT <= cfg_done; - --- destination MAC address - swap for user convinience -DEST_MAC_OUT(47 downto 40) <= dest_mac(7 downto 0); -DEST_MAC_OUT(39 downto 32) <= dest_mac(15 downto 8); -DEST_MAC_OUT(31 downto 24) <= dest_mac(23 downto 16); -DEST_MAC_OUT(23 downto 16) <= dest_mac(31 downto 24); -DEST_MAC_OUT(15 downto 8) <= dest_mac(39 downto 32); -DEST_MAC_OUT(7 downto 0) <= dest_mac(47 downto 40); - --- destination IP address - swap for user convinience -DEST_IP_OUT(31 downto 24) <= dest_ip(7 downto 0); -DEST_IP_OUT(23 downto 16) <= dest_ip(15 downto 8); -DEST_IP_OUT(15 downto 8) <= dest_ip(23 downto 16); -DEST_IP_OUT(7 downto 0) <= dest_ip(31 downto 24); - --- destination port address - swap for user convinience -DEST_UDP_OUT(15 downto 8) <= dest_udp(7 downto 0); -DEST_UDP_OUT(7 downto 0) <= dest_udp(15 downto 8); - --- source MAC address - swap for user convinience -SRC_MAC_OUT(47 downto 40) <= src_mac(7 downto 0); -SRC_MAC_OUT(39 downto 32) <= src_mac(15 downto 8); -SRC_MAC_OUT(31 downto 24) <= src_mac(23 downto 16); -SRC_MAC_OUT(23 downto 16) <= src_mac(31 downto 24); -SRC_MAC_OUT(15 downto 8) <= src_mac(39 downto 32); -SRC_MAC_OUT(7 downto 0) <= src_mac(47 downto 40); - --- source IP address - swap for user convinience -SRC_IP_OUT(31 downto 24) <= src_ip(7 downto 0); -SRC_IP_OUT(23 downto 16) <= src_ip(15 downto 8); -SRC_IP_OUT(15 downto 8) <= src_ip(23 downto 16); -SRC_IP_OUT(7 downto 0) <= src_ip(31 downto 24); - --- source port address - swap for user convinience -SRC_UDP_OUT(15 downto 8) <= src_udp(7 downto 0); -SRC_UDP_OUT(7 downto 0) <= src_udp(15 downto 8); - --- DO NOT SWAP! -MTU_OUT <= mtu; - -DEBUG_OUT <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe2_ecp3/ipcores/debug_fifo_2kx16.vhd b/gbe2_ecp3/ipcores/debug_fifo_2kx16.vhd deleted file mode 100644 index e10ee86..0000000 --- a/gbe2_ecp3/ipcores/debug_fifo_2kx16.vhd +++ /dev/null @@ -1,1965 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.2 ---/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 2048 -width 16 -depth 2048 -rdata_width 16 -no_enable -pe -1 -pf -1 -e - --- Wed Jul 21 14:35:10 2010 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity debug_fifo_2kx16 is - port ( - Data: in std_logic_vector(15 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(15 downto 0); - Empty: out std_logic; - Full: out std_logic); -end debug_fifo_2kx16; - -architecture Structure of debug_fifo_2kx16 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co5: std_logic; - signal wcount_11: std_logic; - signal co4: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co5_1: std_logic; - signal rcount_11: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_10: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_10: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "debug_fifo_2kx16.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_1 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_1 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_1 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_1 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_0_1 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_0_1_0 : label is "debug_fifo_2kx16.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_0 : label is ""; - attribute CSDECODE_B of pdp_ram_0_1_0 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_1_0 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_1_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_1_0 : label is "NORMAL"; - attribute GSR of pdp_ram_0_1_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_1_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_1_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_1_0 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_1_0 : label is "9"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t24: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t23: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t22: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t21: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t20: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t19: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t18: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t17: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t16: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t15: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t14: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t13: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t12: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t11: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t9: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t8: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t7: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t6: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t5: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t4: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t3: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t2: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t1: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t0: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_0); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_2); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_2); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), - DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>Q(4), DOB5=>Q(5), - DOB6=>Q(6), DOB7=>Q(7), DOB8=>Q(8), DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_1_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(9), DIA1=>Data(10), DIA2=>Data(11), - DIA3=>Data(12), DIA4=>Data(13), DIA5=>Data(14), - DIA6=>Data(15), DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>scuba_vlo, - ADA3=>wptr_0, ADA4=>wptr_1, ADA5=>wptr_2, ADA6=>wptr_3, - ADA7=>wptr_4, ADA8=>wptr_5, ADA9=>wptr_6, ADA10=>wptr_7, - ADA11=>wptr_8, ADA12=>wptr_9, ADA13=>wptr_10, CEA=>wren_i, - CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(9), - DOB1=>Q(10), DOB2=>Q(11), DOB3=>Q(12), DOB4=>Q(13), - DOB5=>Q(14), DOB6=>Q(15), DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_121: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_106: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_85: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_57: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_53: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_52: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_51: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_50: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r10, - B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w10, - B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of debug_fifo_2kx16 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_16kx8.vhd b/gbe2_ecp3/ipcores/fifo_16kx8.vhd deleted file mode 100644 index 12a3160..0000000 --- a/gbe2_ecp3/ipcores/fifo_16kx8.vhd +++ /dev/null @@ -1,2711 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v8.0_PROD_Build (41) --- Module Version: 5.4 ---/opt/lattice/ispLEVER8.0/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 16384 -width 8 -depth 16384 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - --- Mon Dec 6 19:08:10 2010 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_16kx8 is - port ( - Data: in std_logic_vector(7 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_16kx8; - -architecture Structure of fifo_16kx8 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal co7: std_logic; - signal wcount_14: std_logic; - signal co6: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal co7_1: std_logic; - signal rcount_14: std_logic; - signal co6_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal wcount_r12: std_logic; - signal wcount_r13: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal rcount_w12: std_logic; - signal rcount_w13: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_41 : label is "0x6996"; - attribute initval of LUT4_40 : label is "0x6996"; - attribute initval of LUT4_39 : label is "0x6996"; - attribute initval of LUT4_38 : label is "0x6996"; - attribute initval of LUT4_37 : label is "0x6996"; - attribute initval of LUT4_36 : label is "0x6996"; - attribute initval of LUT4_35 : label is "0x6996"; - attribute initval of LUT4_34 : label is "0x6996"; - attribute initval of LUT4_33 : label is "0x6996"; - attribute initval of LUT4_32 : label is "0x6996"; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_7 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_7 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_7 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_7 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_7 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_7 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_7 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_7 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_7 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_7 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_7 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_0_7 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_1_6 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_6 : label is ""; - attribute CSDECODE_B of pdp_ram_0_1_6 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_1_6 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_1_6 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_1_6 : label is "NORMAL"; - attribute GSR of pdp_ram_0_1_6 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_6 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_1_6 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_1_6 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_1_6 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_1_6 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_2_5 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_5 : label is ""; - attribute CSDECODE_B of pdp_ram_0_2_5 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_2_5 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_2_5 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_2_5 : label is "NORMAL"; - attribute GSR of pdp_ram_0_2_5 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_2_5 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_2_5 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_2_5 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_2_5 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_2_5 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_3_4 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_4 : label is ""; - attribute CSDECODE_B of pdp_ram_0_3_4 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_3_4 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_3_4 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_3_4 : label is "NORMAL"; - attribute GSR of pdp_ram_0_3_4 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_3_4 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_3_4 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_3_4 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_3_4 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_3_4 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_4_3 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_3 : label is ""; - attribute CSDECODE_B of pdp_ram_0_4_3 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_4_3 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_4_3 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_4_3 : label is "NORMAL"; - attribute GSR of pdp_ram_0_4_3 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_4_3 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_4_3 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_4_3 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_4_3 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_4_3 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_5_2 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_2 : label is ""; - attribute CSDECODE_B of pdp_ram_0_5_2 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_5_2 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_5_2 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_5_2 : label is "NORMAL"; - attribute GSR of pdp_ram_0_5_2 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_5_2 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_5_2 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_5_2 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_5_2 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_5_2 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_6_1 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_1 : label is ""; - attribute CSDECODE_B of pdp_ram_0_6_1 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_6_1 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_6_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_6_1 : label is "NORMAL"; - attribute GSR of pdp_ram_0_6_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_6_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_6_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_6_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_6_1 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_6_1 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_7_0 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_0 : label is ""; - attribute CSDECODE_B of pdp_ram_0_7_0 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_7_0 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_7_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_7_0 : label is "NORMAL"; - attribute GSR of pdp_ram_0_7_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_7_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_7_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_7_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_7_0 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_7_0 : label is "1"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t30: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t29: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t28: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t27: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t26: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t25: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t24: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t23: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t22: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t21: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t20: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t19: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t18: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t17: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t16: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t15: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t14: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t13: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t12: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t11: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t10: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t9: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t8: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t7: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t6: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t5: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t4: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t3: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t2: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t1: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t0: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - LUT4_41: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>w_gcount_r214, - DO0=>w_g2b_xor_cluster_0); - - LUT4_40: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>w_gcount_r210, - DO0=>w_g2b_xor_cluster_1); - - LUT4_39: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_gcount_r26, - DO0=>w_g2b_xor_cluster_2); - - LUT4_38: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_37: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>scuba_vlo, DO0=>wcount_r12); - - LUT4_36: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_35: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>wcount_r12, DO0=>wcount_r9); - - LUT4_34: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r8); - - LUT4_33: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_32: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>scuba_vlo, DO0=>wcount_r6); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r25, AD0=>w_gcount_r26, DO0=>wcount_r5); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r22, DO0=>wcount_r2); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r1); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_1); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r0); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>r_gcount_w214, - DO0=>r_g2b_xor_cluster_0); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>r_gcount_w210, - DO0=>r_g2b_xor_cluster_1); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_gcount_w26, - DO0=>r_g2b_xor_cluster_2); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w13); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>scuba_vlo, DO0=>rcount_w12); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>rcount_w13, DO0=>rcount_w10); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>rcount_w12, DO0=>rcount_w9); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w8); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w26, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w25, AD0=>r_gcount_w26, DO0=>rcount_w5); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w22, DO0=>rcount_w2); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_14, AD2=>rcount_14, AD1=>w_gcount_r214, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_14, AD2=>rcount_14, AD1=>w_gcount_r214, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_14, AD2=>wcount_14, AD1=>r_gcount_w214, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_14, AD2=>wcount_14, AD1=>r_gcount_w214, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_7: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(0), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_1_6: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(1), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_2_5: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(2), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_3_4: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(3), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_4_3: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(4), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_5_2: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(5), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_6_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(6), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_7_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(7), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - FF_151: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_150: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_149: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_148: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_147: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_146: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_145: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_144: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_143: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_142: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_141: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_140: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_139: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_138: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_137: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_136: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_135: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_134: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_133: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_132: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_131: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_130: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_129: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_128: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_127: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_126: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_125: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_124: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_123: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_122: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_121: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_106: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_61: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_60: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_59: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_58: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_57: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_56: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_55: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_54: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>scuba_vlo, CO=>co7, - NC0=>iwcount_14, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>scuba_vlo, CO=>co7_1, - NC0=>ircount_14, NC1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>w_g2b_xor_cluster_0, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, - B1=>wcount_r13, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co6_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>r_g2b_xor_cluster_0, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, - B1=>rcount_w13, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co6_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_16kx8 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_2048x8.lpc b/gbe2_ecp3/ipcores/fifo_2048x8.lpc deleted file mode 100755 index 7c0b6de..0000000 --- a/gbe2_ecp3/ipcores/fifo_2048x8.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_2048x8 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:23:58 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=2048 -Width=8 -RDepth=2048 -RWidth=8 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_2048x8.srp b/gbe2_ecp3/ipcores/fifo_2048x8.srp deleted file mode 100755 index 4cbac58..0000000 --- a/gbe2_ecp3/ipcores/fifo_2048x8.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version ispLever_v72_SP2_Build (23) -Sat Dec 26 00:12:59 2009 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n fifo_2048x8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 11 -data_width 8 -num_words 2048 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_2048x8 - Module type : ebfifo - Module Version : 5.2 - Ports : - Inputs : Data[7:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[7:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_2048x8.vhd - VHDL template : fifo_2048x8_tmpl.vhd - VHDL testbench : tb_fifo_2048x8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_2048x8.srp - Element Usage : - AGEB2 : 12 - AND2 : 2 - CU2 : 12 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 70 - FD1S3BX : 1 - FD1S3DX : 49 - INV : 2 - OR2 : 1 - ROM16X1 : 32 - XOR2 : 22 - DP16KB : 1 - Estimated Resource Usage: - LUT : 117 - EBR : 1 - Reg : 122 diff --git a/gbe2_ecp3/ipcores/fifo_2048x8.vhd b/gbe2_ecp3/ipcores/fifo_2048x8.vhd deleted file mode 100755 index 82dac9a..0000000 --- a/gbe2_ecp3/ipcores/fifo_2048x8.vhd +++ /dev/null @@ -1,1415 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 2048 -width 8 -depth 2048 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:23:58 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_2048x8 is - port ( - Data: in std_logic_vector(7 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_2048x8; - -architecture Structure of fifo_2048x8 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co5: std_logic; - signal wcount_11: std_logic; - signal co4: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co5_1: std_logic; - signal rcount_11: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_10: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_10: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_2048x8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute RESETMODE of pdp_ram_0_0_0 : label is "SYNC"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t24: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t23: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t22: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t21: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t20: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t19: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t18: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t17: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t16: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t15: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t14: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t13: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t12: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t11: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t9: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t8: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t7: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t6: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t5: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t4: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t3: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t2: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t1: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t0: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_2); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>scuba_vlo, DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>scuba_vlo, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>Q(0), DOB1=>Q(1), DOB2=>Q(2), - DOB3=>Q(3), DOB4=>Q(4), DOB5=>Q(5), DOB6=>Q(6), DOB7=>Q(7), - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_121: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_120: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_119: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_118: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_117: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_116: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_115: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_114: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_113: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_112: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_111: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_110: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_109: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_108: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_107: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_106: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_105: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_104: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_103: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_102: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_101: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_100: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_99: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_98: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_97: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_96: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_95: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_94: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_93: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_92: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_91: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_90: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_89: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_88: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_87: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_86: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_85: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_84: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_83: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_82: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_81: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_80: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_79: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_78: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_77: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_76: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_75: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_74: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_73: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_72: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_71: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_70: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_69: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_68: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_67: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_66: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_65: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_64: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_63: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_62: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_61: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_60: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_59: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_58: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_57: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_56: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_55: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_54: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_53: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_52: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_51: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_50: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_49: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_48: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_47: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_46: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_45: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_44: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_43: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_42: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_41: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_40: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_39: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_38: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_37: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_36: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_35: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_34: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_33: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_32: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_31: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_30: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_29: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_28: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_27: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_26: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_25: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_24: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_23: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_22: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_21: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_20: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_19: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_18: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_17: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_16: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_15: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_14: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_13: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_12: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_11: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_10: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_9: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_8: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_7: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_6: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_5: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_4: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_3: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_2: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r10, - B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w10, - B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_2048x8 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_2048x8_generate.log b/gbe2_ecp3/ipcores/fifo_2048x8_generate.log deleted file mode 100755 index a00a11d..0000000 --- a/gbe2_ecp3/ipcores/fifo_2048x8_generate.log +++ /dev/null @@ -1,46 +0,0 @@ -Starting process: - -SCUBA, Version ispLever_v72_SP2_Build (23) -Sat Dec 26 00:12:59 2009 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n fifo_2048x8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 11 -data_width 8 -num_words 2048 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_2048x8 - Module type : ebfifo - Module Version : 5.2 - Ports : - Inputs : Data[7:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[7:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_2048x8.vhd - VHDL template : fifo_2048x8_tmpl.vhd - VHDL testbench : tb_fifo_2048x8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_2048x8.srp - Estimated Resource Usage: - LUT : 117 - EBR : 1 - Reg : 122 - -END SCUBA Module Synthesis - -File: fifo_2048x8.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/fifo_2048x8_tmpl.vhd b/gbe2_ecp3/ipcores/fifo_2048x8_tmpl.vhd deleted file mode 100755 index 1a3333f..0000000 --- a/gbe2_ecp3/ipcores/fifo_2048x8_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:23:58 2011 - --- parameterized module component declaration -component fifo_2048x8 - port (Data: in std_logic_vector(7 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_2048x8 - port map (Data(7 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(7 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.jhd b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.jhd deleted file mode 100755 index 4503e3e..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.jhd +++ /dev/null @@ -1,949 +0,0 @@ -MODULE fifo_32kx16x8_mb DEFIN fifo_32kx16x8_mb.vhd - SUBMODULE FADD2B - INSTANCE a3 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE af_d_cmp_7 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_6 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_5 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_4 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_3 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_2 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_1 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_0 - SUBMODULE FADD2B - INSTANCE af_d_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a2 - SUBMODULE AGEB2 - INSTANCE ae_cmp_8 - SUBMODULE AGEB2 - INSTANCE ae_cmp_7 - SUBMODULE AGEB2 - INSTANCE ae_cmp_6 - SUBMODULE AGEB2 - INSTANCE ae_cmp_5 - SUBMODULE AGEB2 - INSTANCE ae_cmp_4 - SUBMODULE AGEB2 - INSTANCE ae_cmp_3 - SUBMODULE AGEB2 - INSTANCE ae_cmp_2 - SUBMODULE AGEB2 - INSTANCE ae_cmp_1 - SUBMODULE AGEB2 - INSTANCE ae_cmp_0 - SUBMODULE FADD2B - INSTANCE ae_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE AGEB2 - INSTANCE full_cmp_7 - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_8 - SUBMODULE AGEB2 - INSTANCE empty_cmp_7 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE FADD2B - INSTANCE rfilld - SUBMODULE FSUB2B - INSTANCE rfill_8 - SUBMODULE FSUB2B - INSTANCE rfill_7 - SUBMODULE FSUB2B - INSTANCE rfill_6 - SUBMODULE FSUB2B - INSTANCE rfill_5 - SUBMODULE FSUB2B - INSTANCE rfill_4 - SUBMODULE FSUB2B - INSTANCE rfill_3 - SUBMODULE FSUB2B - INSTANCE rfill_2 - SUBMODULE FSUB2B - INSTANCE rfill_1 - SUBMODULE FSUB2B - INSTANCE rfill_0 - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE FSUB2B - INSTANCE wfill_8 - SUBMODULE FSUB2B - INSTANCE wfill_7 - SUBMODULE FSUB2B - INSTANCE wfill_6 - SUBMODULE FSUB2B - INSTANCE wfill_5 - SUBMODULE FSUB2B - INSTANCE wfill_4 - SUBMODULE FSUB2B - INSTANCE wfill_3 - SUBMODULE FSUB2B - INSTANCE wfill_2 - SUBMODULE FSUB2B - INSTANCE wfill_1 - SUBMODULE FSUB2B - INSTANCE wfill_0 - SUBMODULE FADD2B - INSTANCE rcntd - SUBMODULE FSUB2B - INSTANCE rcnt_8 - SUBMODULE FSUB2B - INSTANCE rcnt_7 - SUBMODULE FSUB2B - INSTANCE rcnt_6 - SUBMODULE FSUB2B - INSTANCE rcnt_5 - SUBMODULE FSUB2B - INSTANCE rcnt_4 - SUBMODULE FSUB2B - INSTANCE rcnt_3 - SUBMODULE FSUB2B - INSTANCE rcnt_2 - SUBMODULE FSUB2B - INSTANCE rcnt_1 - SUBMODULE FSUB2B - INSTANCE rcnt_0 - SUBMODULE FSUB2B - INSTANCE wcnt_8 - SUBMODULE FSUB2B - INSTANCE wcnt_7 - SUBMODULE FSUB2B - INSTANCE wcnt_6 - SUBMODULE FSUB2B - INSTANCE wcnt_5 - SUBMODULE FSUB2B - INSTANCE wcnt_4 - SUBMODULE FSUB2B - INSTANCE wcnt_3 - SUBMODULE FSUB2B - INSTANCE wcnt_2 - SUBMODULE FSUB2B - INSTANCE wcnt_1 - SUBMODULE FSUB2B - INSTANCE wcnt_0 - SUBMODULE MUX41 - INSTANCE mux_0 - SUBMODULE MUX41 - INSTANCE mux_1 - SUBMODULE MUX41 - INSTANCE mux_2 - SUBMODULE MUX41 - INSTANCE mux_3 - SUBMODULE MUX41 - INSTANCE mux_4 - SUBMODULE MUX41 - INSTANCE mux_5 - SUBMODULE MUX41 - INSTANCE mux_6 - SUBMODULE MUX41 - INSTANCE mux_7 - SUBMODULE CU2 - INSTANCE r_gctr_8 - SUBMODULE CU2 - INSTANCE r_gctr_7 - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE CU2 - INSTANCE w_gctr_7 - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3BX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1S3DX - INSTANCE FF_54 - SUBMODULE FD1S3DX - INSTANCE FF_55 - SUBMODULE FD1S3DX - INSTANCE FF_56 - SUBMODULE FD1S3DX - INSTANCE FF_57 - SUBMODULE FD1S3DX - INSTANCE FF_58 - SUBMODULE FD1S3DX - INSTANCE FF_59 - SUBMODULE FD1S3DX - INSTANCE FF_60 - SUBMODULE FD1S3DX - INSTANCE FF_61 - SUBMODULE FD1S3DX - INSTANCE FF_62 - SUBMODULE FD1S3DX - INSTANCE FF_63 - SUBMODULE FD1S3DX - INSTANCE FF_64 - SUBMODULE FD1S3DX - INSTANCE FF_65 - SUBMODULE FD1S3DX - INSTANCE FF_66 - SUBMODULE FD1S3DX - INSTANCE FF_67 - SUBMODULE FD1S3DX - INSTANCE FF_68 - SUBMODULE FD1S3DX - INSTANCE FF_69 - SUBMODULE FD1S3DX - INSTANCE FF_70 - SUBMODULE FD1S3DX - INSTANCE FF_71 - SUBMODULE FD1S3DX - INSTANCE FF_72 - SUBMODULE FD1S3DX - INSTANCE FF_73 - SUBMODULE FD1S3DX - INSTANCE FF_74 - SUBMODULE FD1S3DX - INSTANCE FF_75 - SUBMODULE FD1S3DX - INSTANCE FF_76 - SUBMODULE FD1S3DX - INSTANCE FF_77 - SUBMODULE FD1S3DX - INSTANCE FF_78 - SUBMODULE FD1S3DX - INSTANCE FF_79 - SUBMODULE FD1S3DX - INSTANCE FF_80 - SUBMODULE FD1S3DX - INSTANCE FF_81 - SUBMODULE FD1S3DX - INSTANCE FF_82 - SUBMODULE FD1S3DX - INSTANCE FF_83 - SUBMODULE FD1S3DX - INSTANCE FF_84 - SUBMODULE FD1S3DX - INSTANCE FF_85 - SUBMODULE FD1S3DX - INSTANCE FF_86 - SUBMODULE FD1S3DX - INSTANCE FF_87 - SUBMODULE FD1S3DX - INSTANCE FF_88 - SUBMODULE FD1S3DX - INSTANCE FF_89 - SUBMODULE FD1S3DX - INSTANCE FF_90 - SUBMODULE FD1S3DX - INSTANCE FF_91 - SUBMODULE FD1S3DX - INSTANCE FF_92 - SUBMODULE FD1S3DX - INSTANCE FF_93 - SUBMODULE FD1S3DX - INSTANCE FF_94 - SUBMODULE FD1S3DX - INSTANCE FF_95 - SUBMODULE FD1S3DX - INSTANCE FF_96 - SUBMODULE FD1S3DX - INSTANCE FF_97 - SUBMODULE FD1S3DX - INSTANCE FF_98 - SUBMODULE FD1S3DX - INSTANCE FF_99 - SUBMODULE FD1S3DX - INSTANCE FF_100 - SUBMODULE FD1S3DX - INSTANCE FF_101 - SUBMODULE FD1S3DX - INSTANCE FF_102 - SUBMODULE FD1S3DX - INSTANCE FF_103 - SUBMODULE FD1S3DX - INSTANCE FF_104 - SUBMODULE FD1S3DX - INSTANCE FF_105 - SUBMODULE FD1S3DX - INSTANCE FF_106 - SUBMODULE FD1S3DX - INSTANCE FF_107 - SUBMODULE FD1S3DX - INSTANCE FF_108 - SUBMODULE FD1S3DX - INSTANCE FF_109 - SUBMODULE FD1S3DX - INSTANCE FF_110 - SUBMODULE FD1S3DX - INSTANCE FF_111 - SUBMODULE FD1S3DX - INSTANCE FF_112 - SUBMODULE FD1S3DX - INSTANCE FF_113 - SUBMODULE FD1S3DX - INSTANCE FF_114 - SUBMODULE FD1S3DX - INSTANCE FF_115 - SUBMODULE FD1S3DX - INSTANCE FF_116 - SUBMODULE FD1S3DX - INSTANCE FF_117 - SUBMODULE FD1S3DX - INSTANCE FF_118 - SUBMODULE FD1S3DX - INSTANCE FF_119 - SUBMODULE FD1S3DX - INSTANCE FF_120 - SUBMODULE FD1S3DX - INSTANCE FF_121 - SUBMODULE FD1S3DX - INSTANCE FF_122 - SUBMODULE FD1S3DX - INSTANCE FF_123 - SUBMODULE FD1S3DX - INSTANCE FF_124 - SUBMODULE FD1S3DX - INSTANCE FF_125 - SUBMODULE FD1S3DX - INSTANCE FF_126 - SUBMODULE FD1S3DX - INSTANCE FF_127 - SUBMODULE FD1S3DX - INSTANCE FF_128 - SUBMODULE FD1S3DX - INSTANCE FF_129 - SUBMODULE FD1S3DX - INSTANCE FF_130 - SUBMODULE FD1S3DX - INSTANCE FF_131 - SUBMODULE FD1S3DX - INSTANCE FF_132 - SUBMODULE FD1S3DX - INSTANCE FF_133 - SUBMODULE FD1S3DX - INSTANCE FF_134 - SUBMODULE FD1S3DX - INSTANCE FF_135 - SUBMODULE FD1P3DX - INSTANCE FF_136 - SUBMODULE FD1P3DX - INSTANCE FF_137 - SUBMODULE FD1P3DX - INSTANCE FF_138 - SUBMODULE FD1P3DX - INSTANCE FF_139 - SUBMODULE FD1P3DX - INSTANCE FF_140 - SUBMODULE FD1P3DX - INSTANCE FF_141 - SUBMODULE FD1P3DX - INSTANCE FF_142 - SUBMODULE FD1P3DX - INSTANCE FF_143 - SUBMODULE FD1P3DX - INSTANCE FF_144 - SUBMODULE FD1P3DX - INSTANCE FF_145 - SUBMODULE FD1P3DX - INSTANCE FF_146 - SUBMODULE FD1P3DX - INSTANCE FF_147 - SUBMODULE FD1P3DX - INSTANCE FF_148 - SUBMODULE FD1P3DX - INSTANCE FF_149 - SUBMODULE FD1P3DX - INSTANCE FF_150 - SUBMODULE FD1P3DX - INSTANCE FF_151 - SUBMODULE FD1P3DX - INSTANCE FF_152 - SUBMODULE FD1P3DX - INSTANCE FF_153 - SUBMODULE FD1P3DX - INSTANCE FF_154 - SUBMODULE FD1P3DX - INSTANCE FF_155 - SUBMODULE FD1P3DX - INSTANCE FF_156 - SUBMODULE FD1P3DX - INSTANCE FF_157 - SUBMODULE FD1P3DX - INSTANCE FF_158 - SUBMODULE FD1P3DX - INSTANCE FF_159 - SUBMODULE FD1P3DX - INSTANCE FF_160 - SUBMODULE FD1P3DX - INSTANCE FF_161 - SUBMODULE FD1P3DX - INSTANCE FF_162 - SUBMODULE FD1P3DX - INSTANCE FF_163 - SUBMODULE FD1P3DX - INSTANCE FF_164 - SUBMODULE FD1P3DX - INSTANCE FF_165 - SUBMODULE FD1P3DX - INSTANCE FF_166 - SUBMODULE FD1P3DX - INSTANCE FF_167 - SUBMODULE FD1P3DX - INSTANCE FF_168 - SUBMODULE FD1P3DX - INSTANCE FF_169 - SUBMODULE FD1P3DX - INSTANCE FF_170 - SUBMODULE FD1P3DX - INSTANCE FF_171 - SUBMODULE FD1P3DX - INSTANCE FF_172 - SUBMODULE FD1P3DX - INSTANCE FF_173 - SUBMODULE FD1P3DX - INSTANCE FF_174 - SUBMODULE FD1P3DX - INSTANCE FF_175 - SUBMODULE FD1P3DX - INSTANCE FF_176 - SUBMODULE FD1P3DX - INSTANCE FF_177 - SUBMODULE FD1P3DX - INSTANCE FF_178 - SUBMODULE FD1P3DX - INSTANCE FF_179 - SUBMODULE FD1P3DX - INSTANCE FF_180 - SUBMODULE FD1P3DX - INSTANCE FF_181 - SUBMODULE FD1P3DX - INSTANCE FF_182 - SUBMODULE FD1P3DX - INSTANCE FF_183 - SUBMODULE FD1P3DX - INSTANCE FF_184 - SUBMODULE FD1P3DX - INSTANCE FF_185 - SUBMODULE FD1P3DX - INSTANCE FF_186 - SUBMODULE FD1P3DX - INSTANCE FF_187 - SUBMODULE FD1P3BX - INSTANCE FF_188 - SUBMODULE FD1P3DX - INSTANCE FF_189 - SUBMODULE FD1P3DX - INSTANCE FF_190 - SUBMODULE FD1P3DX - INSTANCE FF_191 - SUBMODULE FD1P3DX - INSTANCE FF_192 - SUBMODULE FD1P3DX - INSTANCE FF_193 - SUBMODULE FD1P3DX - INSTANCE FF_194 - SUBMODULE FD1P3DX - INSTANCE FF_195 - SUBMODULE FD1P3DX - INSTANCE FF_196 - SUBMODULE FD1P3DX - INSTANCE FF_197 - SUBMODULE FD1P3DX - INSTANCE FF_198 - SUBMODULE FD1P3DX - INSTANCE FF_199 - SUBMODULE FD1P3DX - INSTANCE FF_200 - SUBMODULE FD1P3DX - INSTANCE FF_201 - SUBMODULE FD1P3DX - INSTANCE FF_202 - SUBMODULE FD1P3DX - INSTANCE FF_203 - SUBMODULE FD1P3DX - INSTANCE FF_204 - SUBMODULE FD1P3DX - INSTANCE FF_205 - SUBMODULE FD1P3DX - INSTANCE FF_206 - SUBMODULE FD1P3DX - INSTANCE FF_207 - SUBMODULE FD1P3DX - INSTANCE FF_208 - SUBMODULE FD1P3DX - INSTANCE FF_209 - SUBMODULE FD1P3DX - INSTANCE FF_210 - SUBMODULE FD1P3DX - INSTANCE FF_211 - SUBMODULE FD1P3DX - INSTANCE FF_212 - SUBMODULE FD1P3DX - INSTANCE FF_213 - SUBMODULE FD1P3DX - INSTANCE FF_214 - SUBMODULE FD1P3DX - INSTANCE FF_215 - SUBMODULE FD1P3DX - INSTANCE FF_216 - SUBMODULE FD1P3DX - INSTANCE FF_217 - SUBMODULE FD1P3DX - INSTANCE FF_218 - SUBMODULE FD1P3DX - INSTANCE FF_219 - SUBMODULE FD1P3DX - INSTANCE FF_220 - SUBMODULE FD1P3DX - INSTANCE FF_221 - SUBMODULE FD1P3DX - INSTANCE FF_222 - SUBMODULE FD1P3DX - INSTANCE FF_223 - SUBMODULE FD1P3DX - INSTANCE FF_224 - SUBMODULE FD1P3DX - INSTANCE FF_225 - SUBMODULE FD1P3DX - INSTANCE FF_226 - SUBMODULE FD1P3DX - INSTANCE FF_227 - SUBMODULE FD1P3DX - INSTANCE FF_228 - SUBMODULE FD1P3DX - INSTANCE FF_229 - SUBMODULE FD1P3DX - INSTANCE FF_230 - SUBMODULE FD1P3DX - INSTANCE FF_231 - SUBMODULE FD1P3DX - INSTANCE FF_232 - SUBMODULE FD1P3DX - INSTANCE FF_233 - SUBMODULE FD1P3DX - INSTANCE FF_234 - SUBMODULE FD1P3DX - INSTANCE FF_235 - SUBMODULE FD1P3BX - INSTANCE FF_236 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_7_0 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_6_1 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_5_2 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_4_3 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_3_4 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_2_5 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_1_6 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_0_7 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_7_8 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_6_9 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_5_10 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_4_11 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_3_12 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_2_13 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_1_14 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_0_15 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_7_16 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_6_17 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_5_18 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_4_19 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_3_20 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_2_21 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_1_22 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_0_23 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_7_24 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_6_25 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_5_26 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_4_27 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_3_28 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_2_29 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_1_30 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_0_31 - SUBMODULE AND2 - INSTANCE AND2_t0 - SUBMODULE AND2 - INSTANCE AND2_t1 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE ROM16X1 - INSTANCE LUT4_0 - SUBMODULE ROM16X1 - INSTANCE LUT4_1 - SUBMODULE ROM16X1 - INSTANCE LUT4_2 - SUBMODULE ROM16X1 - INSTANCE LUT4_3 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE ROM16X1 - INSTANCE LUT4_4 - SUBMODULE ROM16X1 - INSTANCE LUT4_5 - SUBMODULE ROM16X1 - INSTANCE LUT4_6 - SUBMODULE ROM16X1 - INSTANCE LUT4_7 - SUBMODULE ROM16X1 - INSTANCE LUT4_8 - SUBMODULE ROM16X1 - INSTANCE LUT4_9 - SUBMODULE ROM16X1 - INSTANCE LUT4_10 - SUBMODULE ROM16X1 - INSTANCE LUT4_11 - SUBMODULE ROM16X1 - INSTANCE LUT4_12 - SUBMODULE ROM16X1 - INSTANCE LUT4_13 - SUBMODULE ROM16X1 - INSTANCE LUT4_14 - SUBMODULE ROM16X1 - INSTANCE LUT4_15 - SUBMODULE ROM16X1 - INSTANCE LUT4_16 - SUBMODULE ROM16X1 - INSTANCE LUT4_17 - SUBMODULE ROM16X1 - INSTANCE LUT4_18 - SUBMODULE ROM16X1 - INSTANCE LUT4_19 - SUBMODULE ROM16X1 - INSTANCE LUT4_20 - SUBMODULE ROM16X1 - INSTANCE LUT4_21 - SUBMODULE ROM16X1 - INSTANCE LUT4_22 - SUBMODULE ROM16X1 - INSTANCE LUT4_23 - SUBMODULE ROM16X1 - INSTANCE LUT4_24 - SUBMODULE ROM16X1 - INSTANCE LUT4_25 - SUBMODULE ROM16X1 - INSTANCE LUT4_26 - SUBMODULE ROM16X1 - INSTANCE LUT4_27 - SUBMODULE ROM16X1 - INSTANCE LUT4_28 - SUBMODULE ROM16X1 - INSTANCE LUT4_29 - SUBMODULE ROM16X1 - INSTANCE LUT4_30 - SUBMODULE ROM16X1 - INSTANCE LUT4_31 - SUBMODULE ROM16X1 - INSTANCE LUT4_32 - SUBMODULE ROM16X1 - INSTANCE LUT4_33 - SUBMODULE ROM16X1 - INSTANCE LUT4_34 - SUBMODULE ROM16X1 - INSTANCE LUT4_35 - SUBMODULE ROM16X1 - INSTANCE LUT4_36 - SUBMODULE ROM16X1 - INSTANCE LUT4_37 - SUBMODULE ROM16X1 - INSTANCE LUT4_38 - SUBMODULE ROM16X1 - INSTANCE LUT4_39 - SUBMODULE ROM16X1 - INSTANCE LUT4_40 - SUBMODULE ROM16X1 - INSTANCE LUT4_41 - SUBMODULE ROM16X1 - INSTANCE LUT4_42 - SUBMODULE ROM16X1 - INSTANCE LUT4_43 - SUBMODULE ROM16X1 - INSTANCE LUT4_44 - SUBMODULE ROM16X1 - INSTANCE LUT4_45 - SUBMODULE ROM16X1 - INSTANCE LUT4_46 - SUBMODULE ROM16X1 - INSTANCE LUT4_47 - SUBMODULE ROM16X1 - INSTANCE LUT4_48 - SUBMODULE ROM16X1 - INSTANCE LUT4_49 - SUBMODULE ROM16X1 - INSTANCE LUT4_50 - SUBMODULE ROM16X1 - INSTANCE LUT4_51 - SUBMODULE ROM16X1 - INSTANCE LUT4_52 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE XOR2 - INSTANCE XOR2_t24 - SUBMODULE XOR2 - INSTANCE XOR2_t25 - SUBMODULE XOR2 - INSTANCE XOR2_t26 - SUBMODULE XOR2 - INSTANCE XOR2_t27 - SUBMODULE XOR2 - INSTANCE XOR2_t28 - SUBMODULE XOR2 - INSTANCE XOR2_t29 - SUBMODULE XOR2 - INSTANCE XOR2_t30 - SUBMODULE XOR2 - INSTANCE XOR2_t31 - SUBMODULE XOR2 - INSTANCE XOR2_t32 - SUBMODULE XOR2 - INSTANCE XOR2_t33 - SUBMODULE XOR2 - INSTANCE XOR2_t34 - SUBMODULE XOR2 - INSTANCE XOR2_t35 - SUBMODULE XOR2 - INSTANCE XOR2_t36 - SUBMODULE OR2 - INSTANCE OR2_t37 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t38 - SUBMODULE INV - INSTANCE INV_2 - SUBMODULE AND2 - INSTANCE AND2_t39 diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.lpc b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.lpc deleted file mode 100755 index aa233bb..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_32kx16x8_mb -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:22:35 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=32768 -Width=16 -RDepth=65536 -RWidth=8 -regout=0 -CtrlByRdEn=0 -EmpFlg=1 -PeMode=Dynamic - Single Threshold -PeAssert=16 -PeDeassert=12 -FullFlg=1 -PfMode=Dynamic - Single Threshold -PfAssert=32752 -PfDeassert=506 -RDataCount=1 -WDataCount=1 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.naf b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.naf deleted file mode 100755 index e20b82d..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.naf +++ /dev/null @@ -1,98 +0,0 @@ -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -AmEmptyThresh[15] i -AmEmptyThresh[14] i -AmEmptyThresh[13] i -AmEmptyThresh[12] i -AmEmptyThresh[11] i -AmEmptyThresh[10] i -AmEmptyThresh[9] i -AmEmptyThresh[8] i -AmEmptyThresh[7] i -AmEmptyThresh[6] i -AmEmptyThresh[5] i -AmEmptyThresh[4] i -AmEmptyThresh[3] i -AmEmptyThresh[2] i -AmEmptyThresh[1] i -AmEmptyThresh[0] i -AmFullThresh[14] i -AmFullThresh[13] i -AmFullThresh[12] i -AmFullThresh[11] i -AmFullThresh[10] i -AmFullThresh[9] i -AmFullThresh[8] i -AmFullThresh[7] i -AmFullThresh[6] i -AmFullThresh[5] i -AmFullThresh[4] i -AmFullThresh[3] i -AmFullThresh[2] i -AmFullThresh[1] i -AmFullThresh[0] i -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -WCNT[15] o -WCNT[14] o -WCNT[13] o -WCNT[12] o -WCNT[11] o -WCNT[10] o -WCNT[9] o -WCNT[8] o -WCNT[7] o -WCNT[6] o -WCNT[5] o -WCNT[4] o -WCNT[3] o -WCNT[2] o -WCNT[1] o -WCNT[0] o -RCNT[16] o -RCNT[15] o -RCNT[14] o -RCNT[13] o -RCNT[12] o -RCNT[11] o -RCNT[10] o -RCNT[9] o -RCNT[8] o -RCNT[7] o -RCNT[6] o -RCNT[5] o -RCNT[4] o -RCNT[3] o -RCNT[2] o -RCNT[1] o -RCNT[0] o -Empty o -Full o -AlmostEmpty o -AlmostFull o diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.srp b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.srp deleted file mode 100755 index f08c3a0..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.srp +++ /dev/null @@ -1,44 +0,0 @@ -SCUBA, Version ispLever_v8.0_PROD_Build (41) -Fri Feb 05 16:48:12 2010 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2009 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : X:\Programme\ispTOOLS_80\ispfpga\bin\nt\scuba.exe -w -n fifo_32kx16x8_mb -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 15 -data_width 16 -num_words 32768 -rdata_width 8 -no_enable -pe 0 -pf 0 -rfill -fill -e - Circuit name : fifo_32kx16x8_mb - Module type : ebfifo - Module Version : 5.3 - Ports : - Inputs : Data[15:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[7:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_32kx16x8_mb.vhd - VHDL template : fifo_32kx16x8_mb_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb.srp - Element Usage : - AGEB2 : 34 - AND2 : 4 - CU2 : 17 - FADD2B : 12 - FSUB2B : 36 - FD1P3BX : 2 - FD1P3DX : 99 - FD1S3BX : 2 - FD1S3DX : 134 - INV : 3 - MUX41 : 8 - OR2 : 1 - ROM16X1 : 53 - XOR2 : 35 - DP16KB : 32 - Estimated Resource Usage: - LUT : 299 - EBR : 32 - Reg : 237 diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.sym b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.sym deleted file mode 100755 index 62ba01e11303a90f050cc8a31d719391101c79b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmY+CKS&#K9L3-FE~c0|99D``$&jHqUHZpLaY(8Wky6uek|Bz*O@hTcb0jImr35L( zNiv92DH$C)9OBTSL+H@SAvj8hjGanwa_G=^zh6?w!QFj$@BQ9=e|PsaAN}-a+5~WE zM0n+4b|sF1zyPl01%;H%A+b!jm-aHA-#Bn~YvuZGA^G&Vy@e8umb}!7>9n`<-gQTT zCt&~|!Vc`~L~MDdu`^tX6FO}iY3EL^wB%Ob?%|AT4_~wz$(1tuz;|i`oNH|&SFV>E zxT0ps&(Z3vR)16V@oT8&Yr69<)c`lc&U`KGd>}Bh5|zZteZk$d>s9LwwLfOXT;FiG zbC|w7WMV-O(}{3@3=9*SOjxqUgd><3U)`iWj0rB}ouy<W$MQ=`^z zbo=Pg4fx#L(krKsoF7YY0JDQ1Ok6RMR|)kw{!a$XSe18`>h|MDd(Gs0b79+i1KdhW z0?9Dd5(^obG6a2t^KqZEinHXbBoy0ZTWrM^*^)(LlKDQL-p8uqj+(?#TqGA!B!~TR zp045)IVDZ@gkLPq^P}Pc_@|+*xJT~cv*Lgp;7oCw+{T4spX{TnJIN{b#drs2>dHTi CNQVLd diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.vhd b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.vhd deleted file mode 100755 index a24a3e6..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb.vhd +++ /dev/null @@ -1,3997 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 32768 -width 16 -depth 32768 -rdata_width 8 -no_enable -pe 0 -pf 0 -rfill -fill -e - --- Thu Sep 22 11:22:35 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_32kx16x8_mb is - port ( - Data: in std_logic_vector(15 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(7 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end fifo_32kx16x8_mb; - -architecture Structure of fifo_32kx16x8_mb is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal rcount_w0: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal rcnt_reg_15_inv: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal wptr_15: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_16: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal rcnt_reg_16: std_logic; - signal empty_i: std_logic; - signal full_i: std_logic; - signal rRst: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co7: std_logic; - signal wcount_15: std_logic; - signal co6: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8: std_logic; - signal rcount_16: std_logic; - signal co7_1: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal wcnt_sub_0: std_logic; - signal wcnt_sub_1: std_logic; - signal wcnt_sub_2: std_logic; - signal co0_2: std_logic; - signal wcnt_sub_3: std_logic; - signal wcnt_sub_4: std_logic; - signal co1_2: std_logic; - signal wcnt_sub_5: std_logic; - signal wcnt_sub_6: std_logic; - signal co2_2: std_logic; - signal wcnt_sub_7: std_logic; - signal wcnt_sub_8: std_logic; - signal co3_2: std_logic; - signal wcnt_sub_9: std_logic; - signal wcnt_sub_10: std_logic; - signal co4_2: std_logic; - signal wcnt_sub_11: std_logic; - signal wcnt_sub_12: std_logic; - signal co5_2: std_logic; - signal wcnt_sub_13: std_logic; - signal wcnt_sub_14: std_logic; - signal co6_2: std_logic; - signal wcnt_sub_15: std_logic; - signal co7_2: std_logic; - signal wcnt_sub_msb: std_logic; - signal rcnt_sub_0: std_logic; - signal rcnt_sub_1: std_logic; - signal rcnt_sub_2: std_logic; - signal co0_3: std_logic; - signal rcnt_sub_3: std_logic; - signal rcnt_sub_4: std_logic; - signal co1_3: std_logic; - signal rcnt_sub_5: std_logic; - signal rcnt_sub_6: std_logic; - signal co2_3: std_logic; - signal rcnt_sub_7: std_logic; - signal rcnt_sub_8: std_logic; - signal co3_3: std_logic; - signal rcnt_sub_9: std_logic; - signal rcnt_sub_10: std_logic; - signal co4_3: std_logic; - signal rcnt_sub_11: std_logic; - signal rcnt_sub_12: std_logic; - signal co5_3: std_logic; - signal rcnt_sub_13: std_logic; - signal rcnt_sub_14: std_logic; - signal co6_3: std_logic; - signal rcnt_sub_15: std_logic; - signal rcnt_sub_16: std_logic; - signal co7_3: std_logic; - signal rcnt_sub_msb: std_logic; - signal co8_1d: std_logic; - signal co8_1: std_logic; - signal wfill_sub_0: std_logic; - signal wptr_0: std_logic; - signal wfill_sub_1: std_logic; - signal wfill_sub_2: std_logic; - signal co0_4: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wfill_sub_3: std_logic; - signal wfill_sub_4: std_logic; - signal co1_4: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wfill_sub_5: std_logic; - signal wfill_sub_6: std_logic; - signal co2_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wfill_sub_7: std_logic; - signal wfill_sub_8: std_logic; - signal co3_4: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wfill_sub_9: std_logic; - signal wfill_sub_10: std_logic; - signal co4_4: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wfill_sub_11: std_logic; - signal wfill_sub_12: std_logic; - signal co5_4: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wfill_sub_13: std_logic; - signal wfill_sub_14: std_logic; - signal co6_4: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wfill_sub_15: std_logic; - signal co7_4: std_logic; - signal wfill_sub_msb: std_logic; - signal rfill_sub_0: std_logic; - signal rptr_0: std_logic; - signal scuba_vhi: std_logic; - signal rfill_sub_1: std_logic; - signal rfill_sub_2: std_logic; - signal co0_5: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rfill_sub_3: std_logic; - signal rfill_sub_4: std_logic; - signal co1_5: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rfill_sub_5: std_logic; - signal rfill_sub_6: std_logic; - signal co2_5: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rfill_sub_7: std_logic; - signal rfill_sub_8: std_logic; - signal co3_5: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rfill_sub_9: std_logic; - signal rfill_sub_10: std_logic; - signal co4_5: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rfill_sub_11: std_logic; - signal rfill_sub_12: std_logic; - signal co5_5: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rfill_sub_13: std_logic; - signal rfill_sub_14: std_logic; - signal co6_5: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal rfill_sub_15: std_logic; - signal rfill_sub_16: std_logic; - signal co7_5: std_logic; - signal rptr_15: std_logic; - signal rfill_sub_msb: std_logic; - signal co8_2d: std_logic; - signal co8_2: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_6: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_6: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_6: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_6: std_logic; - signal wcount_r7: std_logic; - signal wcount_r8: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_6: std_logic; - signal wcount_r9: std_logic; - signal wcount_r10: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_6: std_logic; - signal wcount_r11: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_6: std_logic; - signal wcount_r13: std_logic; - signal wcount_r14: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_6: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_7: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_7: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_7: std_logic; - signal rcount_w7: std_logic; - signal rcount_w8: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_7: std_logic; - signal rcount_w9: std_logic; - signal rcount_w10: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_7: std_logic; - signal rcount_w11: std_logic; - signal rcount_w12: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_7: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w14: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_7: std_logic; - signal rcount_w15: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_14: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal rden_i: std_logic; - signal cmp_ci_2: std_logic; - signal rcnt_reg_0: std_logic; - signal rcnt_reg_1: std_logic; - signal co0_8: std_logic; - signal rcnt_reg_2: std_logic; - signal rcnt_reg_3: std_logic; - signal co1_8: std_logic; - signal rcnt_reg_4: std_logic; - signal rcnt_reg_5: std_logic; - signal co2_8: std_logic; - signal rcnt_reg_6: std_logic; - signal rcnt_reg_7: std_logic; - signal co3_8: std_logic; - signal rcnt_reg_8: std_logic; - signal rcnt_reg_9: std_logic; - signal co4_8: std_logic; - signal rcnt_reg_10: std_logic; - signal rcnt_reg_11: std_logic; - signal co5_8: std_logic; - signal rcnt_reg_12: std_logic; - signal rcnt_reg_13: std_logic; - signal co6_8: std_logic; - signal rcnt_reg_14: std_logic; - signal rcnt_reg_15: std_logic; - signal co7_7: std_logic; - signal ae_clrsig: std_logic; - signal ae_setsig: std_logic; - signal ae_d: std_logic; - signal ae_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_3: std_logic; - signal wcnt_reg_0: std_logic; - signal wcnt_reg_1: std_logic; - signal co0_9: std_logic; - signal wcnt_reg_2: std_logic; - signal wcnt_reg_3: std_logic; - signal co1_9: std_logic; - signal wcnt_reg_4: std_logic; - signal wcnt_reg_5: std_logic; - signal co2_9: std_logic; - signal wcnt_reg_6: std_logic; - signal wcnt_reg_7: std_logic; - signal co3_9: std_logic; - signal wcnt_reg_8: std_logic; - signal wcnt_reg_9: std_logic; - signal co4_9: std_logic; - signal wcnt_reg_10: std_logic; - signal wcnt_reg_11: std_logic; - signal co5_9: std_logic; - signal wcnt_reg_12: std_logic; - signal wcnt_reg_13: std_logic; - signal co6_9: std_logic; - signal wcnt_reg_14: std_logic; - signal wcnt_reg_15: std_logic; - signal af_d: std_logic; - signal af_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FSUB2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; BI: in std_logic; BOUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX41 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; SD1: in std_logic; SD2: in std_logic; - Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute RESETMODE of pdp_ram_0_0_31 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_1_30 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_30 : label is ""; - attribute RESETMODE of pdp_ram_0_1_30 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_2_29 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_29 : label is ""; - attribute RESETMODE of pdp_ram_0_2_29 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_3_28 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_28 : label is ""; - attribute RESETMODE of pdp_ram_0_3_28 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_4_27 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_27 : label is ""; - attribute RESETMODE of pdp_ram_0_4_27 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_5_26 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_26 : label is ""; - attribute RESETMODE of pdp_ram_0_5_26 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_6_25 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_25 : label is ""; - attribute RESETMODE of pdp_ram_0_6_25 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_7_24 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_24 : label is ""; - attribute RESETMODE of pdp_ram_0_7_24 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_0_23 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_23 : label is ""; - attribute RESETMODE of pdp_ram_1_0_23 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_1_22 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_1_22 : label is ""; - attribute RESETMODE of pdp_ram_1_1_22 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_2_21 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_2_21 : label is ""; - attribute RESETMODE of pdp_ram_1_2_21 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_3_20 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_3_20 : label is ""; - attribute RESETMODE of pdp_ram_1_3_20 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_4_19 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_4_19 : label is ""; - attribute RESETMODE of pdp_ram_1_4_19 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_5_18 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_5_18 : label is ""; - attribute RESETMODE of pdp_ram_1_5_18 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_6_17 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_6_17 : label is ""; - attribute RESETMODE of pdp_ram_1_6_17 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_7_16 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_7_16 : label is ""; - attribute RESETMODE of pdp_ram_1_7_16 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_0_15 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_15 : label is ""; - attribute RESETMODE of pdp_ram_2_0_15 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_1_14 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_1_14 : label is ""; - attribute RESETMODE of pdp_ram_2_1_14 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_2_13 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_2_13 : label is ""; - attribute RESETMODE of pdp_ram_2_2_13 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_3_12 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_3_12 : label is ""; - attribute RESETMODE of pdp_ram_2_3_12 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_4_11 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_4_11 : label is ""; - attribute RESETMODE of pdp_ram_2_4_11 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_5_10 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_5_10 : label is ""; - attribute RESETMODE of pdp_ram_2_5_10 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_6_9 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_6_9 : label is ""; - attribute RESETMODE of pdp_ram_2_6_9 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_7_8 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_7_8 : label is ""; - attribute RESETMODE of pdp_ram_2_7_8 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_0_7 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_7 : label is ""; - attribute RESETMODE of pdp_ram_3_0_7 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_1_6 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_1_6 : label is ""; - attribute RESETMODE of pdp_ram_3_1_6 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_2_5 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_2_5 : label is ""; - attribute RESETMODE of pdp_ram_3_2_5 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_3_4 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_3_4 : label is ""; - attribute RESETMODE of pdp_ram_3_3_4 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_4_3 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_4_3 : label is ""; - attribute RESETMODE of pdp_ram_3_4_3 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_5_2 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_5_2 : label is ""; - attribute RESETMODE of pdp_ram_3_5_2 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_6_1 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_6_1 : label is ""; - attribute RESETMODE of pdp_ram_3_6_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_7_0 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_7_0 : label is ""; - attribute RESETMODE of pdp_ram_3_7_0 : label is "SYNC"; - attribute GSR of FF_236 : label is "ENABLED"; - attribute GSR of FF_235 : label is "ENABLED"; - attribute GSR of FF_234 : label is "ENABLED"; - attribute GSR of FF_233 : label is "ENABLED"; - attribute GSR of FF_232 : label is "ENABLED"; - attribute GSR of FF_231 : label is "ENABLED"; - attribute GSR of FF_230 : label is "ENABLED"; - attribute GSR of FF_229 : label is "ENABLED"; - attribute GSR of FF_228 : label is "ENABLED"; - attribute GSR of FF_227 : label is "ENABLED"; - attribute GSR of FF_226 : label is "ENABLED"; - attribute GSR of FF_225 : label is "ENABLED"; - attribute GSR of FF_224 : label is "ENABLED"; - attribute GSR of FF_223 : label is "ENABLED"; - attribute GSR of FF_222 : label is "ENABLED"; - attribute GSR of FF_221 : label is "ENABLED"; - attribute GSR of FF_220 : label is "ENABLED"; - attribute GSR of FF_219 : label is "ENABLED"; - attribute GSR of FF_218 : label is "ENABLED"; - attribute GSR of FF_217 : label is "ENABLED"; - attribute GSR of FF_216 : label is "ENABLED"; - attribute GSR of FF_215 : label is "ENABLED"; - attribute GSR of FF_214 : label is "ENABLED"; - attribute GSR of FF_213 : label is "ENABLED"; - attribute GSR of FF_212 : label is "ENABLED"; - attribute GSR of FF_211 : label is "ENABLED"; - attribute GSR of FF_210 : label is "ENABLED"; - attribute GSR of FF_209 : label is "ENABLED"; - attribute GSR of FF_208 : label is "ENABLED"; - attribute GSR of FF_207 : label is "ENABLED"; - attribute GSR of FF_206 : label is "ENABLED"; - attribute GSR of FF_205 : label is "ENABLED"; - attribute GSR of FF_204 : label is "ENABLED"; - attribute GSR of FF_203 : label is "ENABLED"; - attribute GSR of FF_202 : label is "ENABLED"; - attribute GSR of FF_201 : label is "ENABLED"; - attribute GSR of FF_200 : label is "ENABLED"; - attribute GSR of FF_199 : label is "ENABLED"; - attribute GSR of FF_198 : label is "ENABLED"; - attribute GSR of FF_197 : label is "ENABLED"; - attribute GSR of FF_196 : label is "ENABLED"; - attribute GSR of FF_195 : label is "ENABLED"; - attribute GSR of FF_194 : label is "ENABLED"; - attribute GSR of FF_193 : label is "ENABLED"; - attribute GSR of FF_192 : label is "ENABLED"; - attribute GSR of FF_191 : label is "ENABLED"; - attribute GSR of FF_190 : label is "ENABLED"; - attribute GSR of FF_189 : label is "ENABLED"; - attribute GSR of FF_188 : label is "ENABLED"; - attribute GSR of FF_187 : label is "ENABLED"; - attribute GSR of FF_186 : label is "ENABLED"; - attribute GSR of FF_185 : label is "ENABLED"; - attribute GSR of FF_184 : label is "ENABLED"; - attribute GSR of FF_183 : label is "ENABLED"; - attribute GSR of FF_182 : label is "ENABLED"; - attribute GSR of FF_181 : label is "ENABLED"; - attribute GSR of FF_180 : label is "ENABLED"; - attribute GSR of FF_179 : label is "ENABLED"; - attribute GSR of FF_178 : label is "ENABLED"; - attribute GSR of FF_177 : label is "ENABLED"; - attribute GSR of FF_176 : label is "ENABLED"; - attribute GSR of FF_175 : label is "ENABLED"; - attribute GSR of FF_174 : label is "ENABLED"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t39: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_2: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t38: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_1: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t37: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t36: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t35: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t34: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t33: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t32: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t31: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t30: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t29: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t28: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t27: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t26: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t25: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t24: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t23: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t22: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t21: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t20: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t19: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t18: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t17: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t16: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t15: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t14: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t13: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t12: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t11: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t9: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t8: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t7: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t6: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - LUT4_52: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, - DO0=>w_g2b_xor_cluster_0); - - LUT4_51: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_1); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_2); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_3); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r9); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>wcount_r6); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r23, DO0=>wcount_r3); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r2); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r1); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_1); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_2); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - XOR2_t5: XOR2 - port map (A=>wcount_15, B=>r_gcount_w216, Z=>wcnt_sub_msb); - - XOR2_t4: XOR2 - port map (A=>w_gcount_r215, B=>rcount_16, Z=>rcnt_sub_msb); - - XOR2_t3: XOR2 - port map (A=>wptr_15, B=>r_gcount_w216, Z=>wfill_sub_msb); - - XOR2_t2: XOR2 - port map (A=>w_gcount_r215, B=>rptr_16, Z=>rfill_sub_msb); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - INV_0: INV - port map (A=>rcnt_reg_15, Z=>rcnt_reg_15_inv); - - AND2_t1: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15_inv, Z=>ae_clrsig); - - AND2_t0: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15, Z=>ae_setsig); - - pdp_ram_0_0_31: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_1_30: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_2_29: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_3_28: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_4_27: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_5_26: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_6_25: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_7_24: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_23: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_1_22: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_2_21: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_3_20: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_4_19: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_5_18: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_6_17: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_7_16: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_15: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_1_14: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_2_13: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_3_12: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_4_11: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_5_10: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_6_9: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_7_8: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_7: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_1_6: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_2_5: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_3_4: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_4_3: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_5_2: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_6_1: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_7_0: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_236: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_235: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_234: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_233: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_232: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_231: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_230: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_229: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_228: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_227: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_226: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_225: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_224: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_223: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_222: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_221: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_220: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_219: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_218: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_217: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_216: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_215: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_214: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_213: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_212: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_211: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_210: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_209: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_208: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_207: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_206: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_205: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_204: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_203: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_202: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_201: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_200: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_199: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_198: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_197: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_196: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_195: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_194: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_193: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_192: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_191: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_190: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_189: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_188: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_187: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_186: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_185: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_184: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_183: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_182: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_181: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_180: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_179: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_178: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_177: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_176: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_175: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_174: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_173: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_172: FD1P3DX - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_171: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_170: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_169: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_168: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_167: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_166: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_165: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_164: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_163: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_162: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_161: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_160: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_159: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_158: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_157: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_156: FD1P3DX - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_155: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_154: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_153: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_152: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_151: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_150: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_149: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_148: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_147: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_146: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_145: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_144: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_143: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_142: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_141: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_140: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_139: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_138: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_137: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_136: FD1P3DX - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_135: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_134: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_133: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_132: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_131: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_130: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_129: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_128: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_127: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_126: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_125: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_124: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_123: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_122: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_121: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_120: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_119: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_118: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_117: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_116: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_115: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_114: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_113: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_112: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_111: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_110: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_109: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_108: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_107: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_106: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_105: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_104: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_103: FD1S3DX - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_102: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_101: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_100: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_99: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_98: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_97: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_96: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_95: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_94: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_93: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_92: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_91: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_90: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_89: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_88: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_87: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_86: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_85: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_84: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_83: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_82: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_81: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_80: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_79: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_78: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_77: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_76: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_75: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_74: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_73: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_72: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_71: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_70: FD1S3DX - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_69: FD1S3DX - port map (D=>wcnt_sub_0, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_0); - - FF_68: FD1S3DX - port map (D=>wcnt_sub_1, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_1); - - FF_67: FD1S3DX - port map (D=>wcnt_sub_2, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_2); - - FF_66: FD1S3DX - port map (D=>wcnt_sub_3, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_3); - - FF_65: FD1S3DX - port map (D=>wcnt_sub_4, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_4); - - FF_64: FD1S3DX - port map (D=>wcnt_sub_5, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_5); - - FF_63: FD1S3DX - port map (D=>wcnt_sub_6, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_6); - - FF_62: FD1S3DX - port map (D=>wcnt_sub_7, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_7); - - FF_61: FD1S3DX - port map (D=>wcnt_sub_8, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_8); - - FF_60: FD1S3DX - port map (D=>wcnt_sub_9, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_9); - - FF_59: FD1S3DX - port map (D=>wcnt_sub_10, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_10); - - FF_58: FD1S3DX - port map (D=>wcnt_sub_11, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_11); - - FF_57: FD1S3DX - port map (D=>wcnt_sub_12, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_12); - - FF_56: FD1S3DX - port map (D=>wcnt_sub_13, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_13); - - FF_55: FD1S3DX - port map (D=>wcnt_sub_14, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_14); - - FF_54: FD1S3DX - port map (D=>wcnt_sub_15, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_15); - - FF_53: FD1S3DX - port map (D=>rcnt_sub_0, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_0); - - FF_52: FD1S3DX - port map (D=>rcnt_sub_1, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_1); - - FF_51: FD1S3DX - port map (D=>rcnt_sub_2, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_2); - - FF_50: FD1S3DX - port map (D=>rcnt_sub_3, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_3); - - FF_49: FD1S3DX - port map (D=>rcnt_sub_4, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_4); - - FF_48: FD1S3DX - port map (D=>rcnt_sub_5, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_5); - - FF_47: FD1S3DX - port map (D=>rcnt_sub_6, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_6); - - FF_46: FD1S3DX - port map (D=>rcnt_sub_7, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_7); - - FF_45: FD1S3DX - port map (D=>rcnt_sub_8, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_8); - - FF_44: FD1S3DX - port map (D=>rcnt_sub_9, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_9); - - FF_43: FD1S3DX - port map (D=>rcnt_sub_10, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_10); - - FF_42: FD1S3DX - port map (D=>rcnt_sub_11, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_11); - - FF_41: FD1S3DX - port map (D=>rcnt_sub_12, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_12); - - FF_40: FD1S3DX - port map (D=>rcnt_sub_13, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_13); - - FF_39: FD1S3DX - port map (D=>rcnt_sub_14, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_14); - - FF_38: FD1S3DX - port map (D=>rcnt_sub_15, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_15); - - FF_37: FD1S3DX - port map (D=>rcnt_sub_16, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_16); - - FF_36: FD1S3DX - port map (D=>wfill_sub_0, CK=>WrClock, CD=>Reset, Q=>WCNT(0)); - - FF_35: FD1S3DX - port map (D=>wfill_sub_1, CK=>WrClock, CD=>Reset, Q=>WCNT(1)); - - FF_34: FD1S3DX - port map (D=>wfill_sub_2, CK=>WrClock, CD=>Reset, Q=>WCNT(2)); - - FF_33: FD1S3DX - port map (D=>wfill_sub_3, CK=>WrClock, CD=>Reset, Q=>WCNT(3)); - - FF_32: FD1S3DX - port map (D=>wfill_sub_4, CK=>WrClock, CD=>Reset, Q=>WCNT(4)); - - FF_31: FD1S3DX - port map (D=>wfill_sub_5, CK=>WrClock, CD=>Reset, Q=>WCNT(5)); - - FF_30: FD1S3DX - port map (D=>wfill_sub_6, CK=>WrClock, CD=>Reset, Q=>WCNT(6)); - - FF_29: FD1S3DX - port map (D=>wfill_sub_7, CK=>WrClock, CD=>Reset, Q=>WCNT(7)); - - FF_28: FD1S3DX - port map (D=>wfill_sub_8, CK=>WrClock, CD=>Reset, Q=>WCNT(8)); - - FF_27: FD1S3DX - port map (D=>wfill_sub_9, CK=>WrClock, CD=>Reset, Q=>WCNT(9)); - - FF_26: FD1S3DX - port map (D=>wfill_sub_10, CK=>WrClock, CD=>Reset, Q=>WCNT(10)); - - FF_25: FD1S3DX - port map (D=>wfill_sub_11, CK=>WrClock, CD=>Reset, Q=>WCNT(11)); - - FF_24: FD1S3DX - port map (D=>wfill_sub_12, CK=>WrClock, CD=>Reset, Q=>WCNT(12)); - - FF_23: FD1S3DX - port map (D=>wfill_sub_13, CK=>WrClock, CD=>Reset, Q=>WCNT(13)); - - FF_22: FD1S3DX - port map (D=>wfill_sub_14, CK=>WrClock, CD=>Reset, Q=>WCNT(14)); - - FF_21: FD1S3DX - port map (D=>wfill_sub_15, CK=>WrClock, CD=>Reset, Q=>WCNT(15)); - - FF_20: FD1S3DX - port map (D=>rfill_sub_0, CK=>RdClock, CD=>rRst, Q=>RCNT(0)); - - FF_19: FD1S3DX - port map (D=>rfill_sub_1, CK=>RdClock, CD=>rRst, Q=>RCNT(1)); - - FF_18: FD1S3DX - port map (D=>rfill_sub_2, CK=>RdClock, CD=>rRst, Q=>RCNT(2)); - - FF_17: FD1S3DX - port map (D=>rfill_sub_3, CK=>RdClock, CD=>rRst, Q=>RCNT(3)); - - FF_16: FD1S3DX - port map (D=>rfill_sub_4, CK=>RdClock, CD=>rRst, Q=>RCNT(4)); - - FF_15: FD1S3DX - port map (D=>rfill_sub_5, CK=>RdClock, CD=>rRst, Q=>RCNT(5)); - - FF_14: FD1S3DX - port map (D=>rfill_sub_6, CK=>RdClock, CD=>rRst, Q=>RCNT(6)); - - FF_13: FD1S3DX - port map (D=>rfill_sub_7, CK=>RdClock, CD=>rRst, Q=>RCNT(7)); - - FF_12: FD1S3DX - port map (D=>rfill_sub_8, CK=>RdClock, CD=>rRst, Q=>RCNT(8)); - - FF_11: FD1S3DX - port map (D=>rfill_sub_9, CK=>RdClock, CD=>rRst, Q=>RCNT(9)); - - FF_10: FD1S3DX - port map (D=>rfill_sub_10, CK=>RdClock, CD=>rRst, Q=>RCNT(10)); - - FF_9: FD1S3DX - port map (D=>rfill_sub_11, CK=>RdClock, CD=>rRst, Q=>RCNT(11)); - - FF_8: FD1S3DX - port map (D=>rfill_sub_12, CK=>RdClock, CD=>rRst, Q=>RCNT(12)); - - FF_7: FD1S3DX - port map (D=>rfill_sub_13, CK=>RdClock, CD=>rRst, Q=>RCNT(13)); - - FF_6: FD1S3DX - port map (D=>rfill_sub_14, CK=>RdClock, CD=>rRst, Q=>RCNT(14)); - - FF_5: FD1S3DX - port map (D=>rfill_sub_15, CK=>RdClock, CD=>rRst, Q=>RCNT(15)); - - FF_4: FD1S3DX - port map (D=>rfill_sub_16, CK=>RdClock, CD=>rRst, Q=>RCNT(16)); - - FF_3: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_2: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - FF_1: FD1S3BX - port map (D=>ae_d, CK=>RdClock, PD=>rRst, Q=>AlmostEmpty); - - FF_0: FD1S3DX - port map (D=>af_d, CK=>WrClock, CD=>Reset, Q=>AlmostFull); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>ircount_16, NC1=>open); - - mux_7: MUX41 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(0)); - - mux_6: MUX41 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(1)); - - mux_5: MUX41 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(2)); - - mux_4: MUX41 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(3)); - - mux_3: MUX41 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(4)); - - mux_2: MUX41 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(5)); - - mux_1: MUX41 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(6)); - - mux_0: MUX41 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(7)); - - wcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wcount_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_2, S0=>open, - S1=>wcnt_sub_0); - - wcnt_1: FSUB2B - port map (A0=>wcount_1, A1=>wcount_2, B0=>rcount_w2, - B1=>rcount_w3, BI=>co0_2, BOUT=>co1_2, S0=>wcnt_sub_1, - S1=>wcnt_sub_2); - - wcnt_2: FSUB2B - port map (A0=>wcount_3, A1=>wcount_4, B0=>rcount_w4, - B1=>rcount_w5, BI=>co1_2, BOUT=>co2_2, S0=>wcnt_sub_3, - S1=>wcnt_sub_4); - - wcnt_3: FSUB2B - port map (A0=>wcount_5, A1=>wcount_6, B0=>rcount_w6, - B1=>rcount_w7, BI=>co2_2, BOUT=>co3_2, S0=>wcnt_sub_5, - S1=>wcnt_sub_6); - - wcnt_4: FSUB2B - port map (A0=>wcount_7, A1=>wcount_8, B0=>rcount_w8, - B1=>rcount_w9, BI=>co3_2, BOUT=>co4_2, S0=>wcnt_sub_7, - S1=>wcnt_sub_8); - - wcnt_5: FSUB2B - port map (A0=>wcount_9, A1=>wcount_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_2, BOUT=>co5_2, S0=>wcnt_sub_9, - S1=>wcnt_sub_10); - - wcnt_6: FSUB2B - port map (A0=>wcount_11, A1=>wcount_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_2, BOUT=>co6_2, - S0=>wcnt_sub_11, S1=>wcnt_sub_12); - - wcnt_7: FSUB2B - port map (A0=>wcount_13, A1=>wcount_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_2, BOUT=>co7_2, S0=>wcnt_sub_13, - S1=>wcnt_sub_14); - - wcnt_8: FSUB2B - port map (A0=>wcnt_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_2, BOUT=>open, S0=>wcnt_sub_15, - S1=>open); - - rcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rcount_0, BI=>scuba_vlo, BOUT=>co0_3, S0=>open, - S1=>rcnt_sub_0); - - rcnt_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rcount_1, - B1=>rcount_2, BI=>co0_3, BOUT=>co1_3, S0=>rcnt_sub_1, - S1=>rcnt_sub_2); - - rcnt_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rcount_3, - B1=>rcount_4, BI=>co1_3, BOUT=>co2_3, S0=>rcnt_sub_3, - S1=>rcnt_sub_4); - - rcnt_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rcount_5, - B1=>rcount_6, BI=>co2_3, BOUT=>co3_3, S0=>rcnt_sub_5, - S1=>rcnt_sub_6); - - rcnt_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rcount_7, - B1=>rcount_8, BI=>co3_3, BOUT=>co4_3, S0=>rcnt_sub_7, - S1=>rcnt_sub_8); - - rcnt_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rcount_9, - B1=>rcount_10, BI=>co4_3, BOUT=>co5_3, S0=>rcnt_sub_9, - S1=>rcnt_sub_10); - - rcnt_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rcount_11, - B1=>rcount_12, BI=>co5_3, BOUT=>co6_3, S0=>rcnt_sub_11, - S1=>rcnt_sub_12); - - rcnt_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rcount_13, - B1=>rcount_14, BI=>co6_3, BOUT=>co7_3, S0=>rcnt_sub_13, - S1=>rcnt_sub_14); - - rcnt_8: FSUB2B - port map (A0=>wcount_r14, A1=>rcnt_sub_msb, B0=>rcount_15, - B1=>scuba_vlo, BI=>co7_3, BOUT=>co8_1, S0=>rcnt_sub_15, - S1=>rcnt_sub_16); - - rcntd: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_1, COUT=>open, S0=>co8_1d, S1=>open); - - wfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wptr_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_4, S0=>open, - S1=>wfill_sub_0); - - wfill_1: FSUB2B - port map (A0=>wptr_1, A1=>wptr_2, B0=>rcount_w2, B1=>rcount_w3, - BI=>co0_4, BOUT=>co1_4, S0=>wfill_sub_1, S1=>wfill_sub_2); - - wfill_2: FSUB2B - port map (A0=>wptr_3, A1=>wptr_4, B0=>rcount_w4, B1=>rcount_w5, - BI=>co1_4, BOUT=>co2_4, S0=>wfill_sub_3, S1=>wfill_sub_4); - - wfill_3: FSUB2B - port map (A0=>wptr_5, A1=>wptr_6, B0=>rcount_w6, B1=>rcount_w7, - BI=>co2_4, BOUT=>co3_4, S0=>wfill_sub_5, S1=>wfill_sub_6); - - wfill_4: FSUB2B - port map (A0=>wptr_7, A1=>wptr_8, B0=>rcount_w8, B1=>rcount_w9, - BI=>co3_4, BOUT=>co4_4, S0=>wfill_sub_7, S1=>wfill_sub_8); - - wfill_5: FSUB2B - port map (A0=>wptr_9, A1=>wptr_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_4, BOUT=>co5_4, S0=>wfill_sub_9, - S1=>wfill_sub_10); - - wfill_6: FSUB2B - port map (A0=>wptr_11, A1=>wptr_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_4, BOUT=>co6_4, - S0=>wfill_sub_11, S1=>wfill_sub_12); - - wfill_7: FSUB2B - port map (A0=>wptr_13, A1=>wptr_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_4, BOUT=>co7_4, S0=>wfill_sub_13, - S1=>wfill_sub_14); - - wfill_8: FSUB2B - port map (A0=>wfill_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_4, BOUT=>open, S0=>wfill_sub_15, - S1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - rfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rptr_0, BI=>scuba_vlo, BOUT=>co0_5, S0=>open, - S1=>rfill_sub_0); - - rfill_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rptr_1, B1=>rptr_2, - BI=>co0_5, BOUT=>co1_5, S0=>rfill_sub_1, S1=>rfill_sub_2); - - rfill_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rptr_3, B1=>rptr_4, - BI=>co1_5, BOUT=>co2_5, S0=>rfill_sub_3, S1=>rfill_sub_4); - - rfill_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rptr_5, B1=>rptr_6, - BI=>co2_5, BOUT=>co3_5, S0=>rfill_sub_5, S1=>rfill_sub_6); - - rfill_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rptr_7, B1=>rptr_8, - BI=>co3_5, BOUT=>co4_5, S0=>rfill_sub_7, S1=>rfill_sub_8); - - rfill_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rptr_9, B1=>rptr_10, - BI=>co4_5, BOUT=>co5_5, S0=>rfill_sub_9, S1=>rfill_sub_10); - - rfill_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rptr_11, - B1=>rptr_12, BI=>co5_5, BOUT=>co6_5, S0=>rfill_sub_11, - S1=>rfill_sub_12); - - rfill_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rptr_13, - B1=>rptr_14, BI=>co6_5, BOUT=>co7_5, S0=>rfill_sub_13, - S1=>rfill_sub_14); - - rfill_8: FSUB2B - port map (A0=>wcount_r14, A1=>rfill_sub_msb, B0=>rptr_15, - B1=>scuba_vlo, BI=>co7_5, BOUT=>co8_2, S0=>rfill_sub_15, - S1=>rfill_sub_16); - - rfilld: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_2, COUT=>open, S0=>co8_2d, S1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_6); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_6, GE=>co1_6); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_6, GE=>co2_6); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_6, GE=>co3_6); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r7, - B1=>wcount_r8, CI=>co3_6, GE=>co4_6); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r9, - B1=>wcount_r10, CI=>co4_6, GE=>co5_6); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r11, - B1=>w_g2b_xor_cluster_0, CI=>co5_6, GE=>co6_6); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r13, - B1=>wcount_r14, CI=>co6_6, GE=>co7_6); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_6, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_7); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_7, GE=>co1_7); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_7, GE=>co2_7); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>rcount_w8, CI=>co2_7, GE=>co3_7); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, - B1=>rcount_w10, CI=>co3_7, GE=>co4_7); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w11, - B1=>rcount_w12, CI=>co4_7, GE=>co5_7); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w14, CI=>co5_7, GE=>co6_7); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>full_cmp_set, B0=>rcount_w15, - B1=>full_cmp_clr, CI=>co6_7, GE=>full_d_c); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - ae_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci_2, S0=>open, S1=>open); - - ae_cmp_0: AGEB2 - port map (A0=>AmEmptyThresh(0), A1=>AmEmptyThresh(1), - B0=>rcnt_reg_0, B1=>rcnt_reg_1, CI=>cmp_ci_2, GE=>co0_8); - - ae_cmp_1: AGEB2 - port map (A0=>AmEmptyThresh(2), A1=>AmEmptyThresh(3), - B0=>rcnt_reg_2, B1=>rcnt_reg_3, CI=>co0_8, GE=>co1_8); - - ae_cmp_2: AGEB2 - port map (A0=>AmEmptyThresh(4), A1=>AmEmptyThresh(5), - B0=>rcnt_reg_4, B1=>rcnt_reg_5, CI=>co1_8, GE=>co2_8); - - ae_cmp_3: AGEB2 - port map (A0=>AmEmptyThresh(6), A1=>AmEmptyThresh(7), - B0=>rcnt_reg_6, B1=>rcnt_reg_7, CI=>co2_8, GE=>co3_8); - - ae_cmp_4: AGEB2 - port map (A0=>AmEmptyThresh(8), A1=>AmEmptyThresh(9), - B0=>rcnt_reg_8, B1=>rcnt_reg_9, CI=>co3_8, GE=>co4_8); - - ae_cmp_5: AGEB2 - port map (A0=>AmEmptyThresh(10), A1=>AmEmptyThresh(11), - B0=>rcnt_reg_10, B1=>rcnt_reg_11, CI=>co4_8, GE=>co5_8); - - ae_cmp_6: AGEB2 - port map (A0=>AmEmptyThresh(12), A1=>AmEmptyThresh(13), - B0=>rcnt_reg_12, B1=>rcnt_reg_13, CI=>co5_8, GE=>co6_8); - - ae_cmp_7: AGEB2 - port map (A0=>AmEmptyThresh(14), A1=>AmEmptyThresh(15), - B0=>rcnt_reg_14, B1=>rcnt_reg_15, CI=>co6_8, GE=>co7_7); - - ae_cmp_8: AGEB2 - port map (A0=>ae_setsig, A1=>scuba_vlo, B0=>ae_clrsig, - B1=>scuba_vlo, CI=>co7_7, GE=>ae_d_c); - - a2: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>ae_d_c, COUT=>open, S0=>ae_d, S1=>open); - - af_d_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_3, S0=>open, S1=>open); - - af_d_cmp_0: AGEB2 - port map (A0=>wcnt_reg_0, A1=>wcnt_reg_1, B0=>AmFullThresh(0), - B1=>AmFullThresh(1), CI=>cmp_ci_3, GE=>co0_9); - - af_d_cmp_1: AGEB2 - port map (A0=>wcnt_reg_2, A1=>wcnt_reg_3, B0=>AmFullThresh(2), - B1=>AmFullThresh(3), CI=>co0_9, GE=>co1_9); - - af_d_cmp_2: AGEB2 - port map (A0=>wcnt_reg_4, A1=>wcnt_reg_5, B0=>AmFullThresh(4), - B1=>AmFullThresh(5), CI=>co1_9, GE=>co2_9); - - af_d_cmp_3: AGEB2 - port map (A0=>wcnt_reg_6, A1=>wcnt_reg_7, B0=>AmFullThresh(6), - B1=>AmFullThresh(7), CI=>co2_9, GE=>co3_9); - - af_d_cmp_4: AGEB2 - port map (A0=>wcnt_reg_8, A1=>wcnt_reg_9, B0=>AmFullThresh(8), - B1=>AmFullThresh(9), CI=>co3_9, GE=>co4_9); - - af_d_cmp_5: AGEB2 - port map (A0=>wcnt_reg_10, A1=>wcnt_reg_11, B0=>AmFullThresh(10), - B1=>AmFullThresh(11), CI=>co4_9, GE=>co5_9); - - af_d_cmp_6: AGEB2 - port map (A0=>wcnt_reg_12, A1=>wcnt_reg_13, B0=>AmFullThresh(12), - B1=>AmFullThresh(13), CI=>co5_9, GE=>co6_9); - - af_d_cmp_7: AGEB2 - port map (A0=>wcnt_reg_14, A1=>wcnt_reg_15, B0=>AmFullThresh(14), - B1=>scuba_vlo, CI=>co6_9, GE=>af_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a3: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>af_d_c, COUT=>open, S0=>af_d, S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_32kx16x8_mb is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FSUB2B use entity ecp3.FSUB2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX41 use entity ecp3.MUX41(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.lpc b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.lpc deleted file mode 100644 index 4ac80c1..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_32kx16x8_mb2 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:22:54 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=32768 -Width=18 -RDepth=65536 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=1 -PeMode=Dynamic - Single Threshold -PeAssert=16 -PeDeassert=12 -FullFlg=1 -PfMode=Dynamic - Single Threshold -PfAssert=32752 -PfDeassert=506 -RDataCount=1 -WDataCount=1 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.srp b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.srp deleted file mode 100644 index 2b6645f..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.srp +++ /dev/null @@ -1,44 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:22:54 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_32kx16x8_mb2 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 15 -data_width 18 -num_words 32768 -rdata_width 9 -no_enable -pe 0 -pf 0 -rfill -fill -e - Circuit name : fifo_32kx16x8_mb2 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[17:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[8:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_32kx16x8_mb2.vhd - VHDL template : fifo_32kx16x8_mb2_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb2_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb2.srp - Element Usage : - AGEB2 : 34 - AND2 : 4 - CU2 : 17 - FADD2B : 12 - FSUB2B : 36 - FD1P3BX : 2 - FD1P3DX : 102 - FD1S3BX : 2 - FD1S3DX : 134 - INV : 13 - MUX321 : 9 - OR2 : 1 - ROM16X1A : 181 - XOR2 : 35 - DP16KC : 32 - Estimated Resource Usage: - LUT : 491 - EBR : 32 - Reg : 240 diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.vhd b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.vhd deleted file mode 100644 index fef0b67..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2.vhd +++ /dev/null @@ -1,5224 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 32768 -width 18 -depth 32768 -rdata_width 9 -no_enable -pe 0 -pf 0 -rfill -fill -e - --- Thu Sep 22 11:22:54 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_32kx16x8_mb2 is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(8 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end fifo_32kx16x8_mb2; - -architecture Structure of fifo_32kx16x8_mb2 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal func_and_inet: std_logic; - signal func_and_inet_1: std_logic; - signal func_and_inet_2: std_logic; - signal func_and_inet_3: std_logic; - signal func_and_inet_4: std_logic; - signal func_and_inet_5: std_logic; - signal func_and_inet_6: std_logic; - signal func_and_inet_7: std_logic; - signal func_and_inet_8: std_logic; - signal func_and_inet_9: std_logic; - signal func_and_inet_10: std_logic; - signal func_and_inet_11: std_logic; - signal func_and_inet_12: std_logic; - signal func_and_inet_13: std_logic; - signal func_and_inet_14: std_logic; - signal func_and_inet_15: std_logic; - signal func_and_inet_16: std_logic; - signal func_and_inet_17: std_logic; - signal func_and_inet_18: std_logic; - signal func_and_inet_19: std_logic; - signal func_and_inet_20: std_logic; - signal func_and_inet_21: std_logic; - signal func_and_inet_22: std_logic; - signal func_and_inet_23: std_logic; - signal func_and_inet_24: std_logic; - signal func_and_inet_25: std_logic; - signal func_and_inet_26: std_logic; - signal func_and_inet_27: std_logic; - signal func_and_inet_28: std_logic; - signal func_and_inet_29: std_logic; - signal wptr_14_inv: std_logic; - signal func_and_inet_30: std_logic; - signal rptr_15_inv: std_logic; - signal func_and_inet_31: std_logic; - signal func_and_inet_32: std_logic; - signal func_and_inet_33: std_logic; - signal func_and_inet_34: std_logic; - signal func_and_inet_35: std_logic; - signal func_and_inet_36: std_logic; - signal func_and_inet_37: std_logic; - signal func_and_inet_38: std_logic; - signal func_and_inet_39: std_logic; - signal func_and_inet_40: std_logic; - signal func_and_inet_41: std_logic; - signal func_and_inet_42: std_logic; - signal func_and_inet_43: std_logic; - signal func_and_inet_44: std_logic; - signal func_and_inet_45: std_logic; - signal wptr_13_inv: std_logic; - signal func_and_inet_46: std_logic; - signal rptr_14_inv: std_logic; - signal func_and_inet_47: std_logic; - signal func_and_inet_48: std_logic; - signal func_and_inet_49: std_logic; - signal func_and_inet_50: std_logic; - signal func_and_inet_51: std_logic; - signal func_and_inet_52: std_logic; - signal func_and_inet_53: std_logic; - signal wptr_12_inv: std_logic; - signal func_and_inet_54: std_logic; - signal rptr_13_inv: std_logic; - signal func_and_inet_55: std_logic; - signal func_and_inet_56: std_logic; - signal func_and_inet_57: std_logic; - signal wptr_11_inv: std_logic; - signal func_and_inet_58: std_logic; - signal rptr_12_inv: std_logic; - signal func_and_inet_59: std_logic; - signal wptr_10_inv: std_logic; - signal func_and_inet_60: std_logic; - signal rptr_11_inv: std_logic; - signal func_and_inet_61: std_logic; - signal func_and_inet_62: std_logic; - signal func_and_inet_63: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal rcount_w0: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal rcnt_reg_15_inv: std_logic; - signal dec1_r10: std_logic; - signal dec0_p00: std_logic; - signal dec3_r11: std_logic; - signal dec2_p01: std_logic; - signal dec5_r12: std_logic; - signal dec4_p02: std_logic; - signal dec7_r13: std_logic; - signal dec6_p03: std_logic; - signal dec9_r14: std_logic; - signal dec8_p04: std_logic; - signal dec11_r15: std_logic; - signal dec10_p05: std_logic; - signal dec13_r16: std_logic; - signal dec12_p06: std_logic; - signal dec15_r17: std_logic; - signal dec14_p07: std_logic; - signal dec17_r18: std_logic; - signal dec16_p08: std_logic; - signal dec19_r19: std_logic; - signal dec18_p09: std_logic; - signal dec21_r110: std_logic; - signal dec20_p010: std_logic; - signal dec23_r111: std_logic; - signal dec22_p011: std_logic; - signal dec25_r112: std_logic; - signal dec24_p012: std_logic; - signal dec27_r113: std_logic; - signal dec26_p013: std_logic; - signal dec29_r114: std_logic; - signal dec28_p014: std_logic; - signal dec31_r115: std_logic; - signal dec30_p015: std_logic; - signal dec33_r116: std_logic; - signal dec32_p016: std_logic; - signal dec35_r117: std_logic; - signal dec34_p017: std_logic; - signal dec37_r118: std_logic; - signal dec36_p018: std_logic; - signal dec39_r119: std_logic; - signal dec38_p019: std_logic; - signal dec41_r120: std_logic; - signal dec40_p020: std_logic; - signal dec43_r121: std_logic; - signal dec42_p021: std_logic; - signal dec45_r122: std_logic; - signal dec44_p022: std_logic; - signal dec47_r123: std_logic; - signal dec46_p023: std_logic; - signal dec49_r124: std_logic; - signal dec48_p024: std_logic; - signal dec51_r125: std_logic; - signal dec50_p025: std_logic; - signal dec53_r126: std_logic; - signal dec52_p026: std_logic; - signal dec55_r127: std_logic; - signal dec54_p027: std_logic; - signal dec57_r128: std_logic; - signal dec56_p028: std_logic; - signal dec59_r129: std_logic; - signal dec58_p029: std_logic; - signal dec61_r130: std_logic; - signal dec60_p030: std_logic; - signal dec63_r131: std_logic; - signal dec62_p031: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal wptr_15: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_16: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal rcnt_reg_16: std_logic; - signal empty_i: std_logic; - signal full_i: std_logic; - signal rRst: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co7: std_logic; - signal wcount_15: std_logic; - signal co6: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8: std_logic; - signal rcount_16: std_logic; - signal co7_1: std_logic; - signal mdout1_31_0: std_logic; - signal mdout1_30_0: std_logic; - signal mdout1_29_0: std_logic; - signal mdout1_28_0: std_logic; - signal mdout1_27_0: std_logic; - signal mdout1_26_0: std_logic; - signal mdout1_25_0: std_logic; - signal mdout1_24_0: std_logic; - signal mdout1_23_0: std_logic; - signal mdout1_22_0: std_logic; - signal mdout1_21_0: std_logic; - signal mdout1_20_0: std_logic; - signal mdout1_19_0: std_logic; - signal mdout1_18_0: std_logic; - signal mdout1_17_0: std_logic; - signal mdout1_16_0: std_logic; - signal mdout1_15_0: std_logic; - signal mdout1_14_0: std_logic; - signal mdout1_13_0: std_logic; - signal mdout1_12_0: std_logic; - signal mdout1_11_0: std_logic; - signal mdout1_10_0: std_logic; - signal mdout1_9_0: std_logic; - signal mdout1_8_0: std_logic; - signal mdout1_7_0: std_logic; - signal mdout1_6_0: std_logic; - signal mdout1_5_0: std_logic; - signal mdout1_4_0: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_31_1: std_logic; - signal mdout1_30_1: std_logic; - signal mdout1_29_1: std_logic; - signal mdout1_28_1: std_logic; - signal mdout1_27_1: std_logic; - signal mdout1_26_1: std_logic; - signal mdout1_25_1: std_logic; - signal mdout1_24_1: std_logic; - signal mdout1_23_1: std_logic; - signal mdout1_22_1: std_logic; - signal mdout1_21_1: std_logic; - signal mdout1_20_1: std_logic; - signal mdout1_19_1: std_logic; - signal mdout1_18_1: std_logic; - signal mdout1_17_1: std_logic; - signal mdout1_16_1: std_logic; - signal mdout1_15_1: std_logic; - signal mdout1_14_1: std_logic; - signal mdout1_13_1: std_logic; - signal mdout1_12_1: std_logic; - signal mdout1_11_1: std_logic; - signal mdout1_10_1: std_logic; - signal mdout1_9_1: std_logic; - signal mdout1_8_1: std_logic; - signal mdout1_7_1: std_logic; - signal mdout1_6_1: std_logic; - signal mdout1_5_1: std_logic; - signal mdout1_4_1: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_31_2: std_logic; - signal mdout1_30_2: std_logic; - signal mdout1_29_2: std_logic; - signal mdout1_28_2: std_logic; - signal mdout1_27_2: std_logic; - signal mdout1_26_2: std_logic; - signal mdout1_25_2: std_logic; - signal mdout1_24_2: std_logic; - signal mdout1_23_2: std_logic; - signal mdout1_22_2: std_logic; - signal mdout1_21_2: std_logic; - signal mdout1_20_2: std_logic; - signal mdout1_19_2: std_logic; - signal mdout1_18_2: std_logic; - signal mdout1_17_2: std_logic; - signal mdout1_16_2: std_logic; - signal mdout1_15_2: std_logic; - signal mdout1_14_2: std_logic; - signal mdout1_13_2: std_logic; - signal mdout1_12_2: std_logic; - signal mdout1_11_2: std_logic; - signal mdout1_10_2: std_logic; - signal mdout1_9_2: std_logic; - signal mdout1_8_2: std_logic; - signal mdout1_7_2: std_logic; - signal mdout1_6_2: std_logic; - signal mdout1_5_2: std_logic; - signal mdout1_4_2: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_31_3: std_logic; - signal mdout1_30_3: std_logic; - signal mdout1_29_3: std_logic; - signal mdout1_28_3: std_logic; - signal mdout1_27_3: std_logic; - signal mdout1_26_3: std_logic; - signal mdout1_25_3: std_logic; - signal mdout1_24_3: std_logic; - signal mdout1_23_3: std_logic; - signal mdout1_22_3: std_logic; - signal mdout1_21_3: std_logic; - signal mdout1_20_3: std_logic; - signal mdout1_19_3: std_logic; - signal mdout1_18_3: std_logic; - signal mdout1_17_3: std_logic; - signal mdout1_16_3: std_logic; - signal mdout1_15_3: std_logic; - signal mdout1_14_3: std_logic; - signal mdout1_13_3: std_logic; - signal mdout1_12_3: std_logic; - signal mdout1_11_3: std_logic; - signal mdout1_10_3: std_logic; - signal mdout1_9_3: std_logic; - signal mdout1_8_3: std_logic; - signal mdout1_7_3: std_logic; - signal mdout1_6_3: std_logic; - signal mdout1_5_3: std_logic; - signal mdout1_4_3: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_31_4: std_logic; - signal mdout1_30_4: std_logic; - signal mdout1_29_4: std_logic; - signal mdout1_28_4: std_logic; - signal mdout1_27_4: std_logic; - signal mdout1_26_4: std_logic; - signal mdout1_25_4: std_logic; - signal mdout1_24_4: std_logic; - signal mdout1_23_4: std_logic; - signal mdout1_22_4: std_logic; - signal mdout1_21_4: std_logic; - signal mdout1_20_4: std_logic; - signal mdout1_19_4: std_logic; - signal mdout1_18_4: std_logic; - signal mdout1_17_4: std_logic; - signal mdout1_16_4: std_logic; - signal mdout1_15_4: std_logic; - signal mdout1_14_4: std_logic; - signal mdout1_13_4: std_logic; - signal mdout1_12_4: std_logic; - signal mdout1_11_4: std_logic; - signal mdout1_10_4: std_logic; - signal mdout1_9_4: std_logic; - signal mdout1_8_4: std_logic; - signal mdout1_7_4: std_logic; - signal mdout1_6_4: std_logic; - signal mdout1_5_4: std_logic; - signal mdout1_4_4: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_31_5: std_logic; - signal mdout1_30_5: std_logic; - signal mdout1_29_5: std_logic; - signal mdout1_28_5: std_logic; - signal mdout1_27_5: std_logic; - signal mdout1_26_5: std_logic; - signal mdout1_25_5: std_logic; - signal mdout1_24_5: std_logic; - signal mdout1_23_5: std_logic; - signal mdout1_22_5: std_logic; - signal mdout1_21_5: std_logic; - signal mdout1_20_5: std_logic; - signal mdout1_19_5: std_logic; - signal mdout1_18_5: std_logic; - signal mdout1_17_5: std_logic; - signal mdout1_16_5: std_logic; - signal mdout1_15_5: std_logic; - signal mdout1_14_5: std_logic; - signal mdout1_13_5: std_logic; - signal mdout1_12_5: std_logic; - signal mdout1_11_5: std_logic; - signal mdout1_10_5: std_logic; - signal mdout1_9_5: std_logic; - signal mdout1_8_5: std_logic; - signal mdout1_7_5: std_logic; - signal mdout1_6_5: std_logic; - signal mdout1_5_5: std_logic; - signal mdout1_4_5: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_31_6: std_logic; - signal mdout1_30_6: std_logic; - signal mdout1_29_6: std_logic; - signal mdout1_28_6: std_logic; - signal mdout1_27_6: std_logic; - signal mdout1_26_6: std_logic; - signal mdout1_25_6: std_logic; - signal mdout1_24_6: std_logic; - signal mdout1_23_6: std_logic; - signal mdout1_22_6: std_logic; - signal mdout1_21_6: std_logic; - signal mdout1_20_6: std_logic; - signal mdout1_19_6: std_logic; - signal mdout1_18_6: std_logic; - signal mdout1_17_6: std_logic; - signal mdout1_16_6: std_logic; - signal mdout1_15_6: std_logic; - signal mdout1_14_6: std_logic; - signal mdout1_13_6: std_logic; - signal mdout1_12_6: std_logic; - signal mdout1_11_6: std_logic; - signal mdout1_10_6: std_logic; - signal mdout1_9_6: std_logic; - signal mdout1_8_6: std_logic; - signal mdout1_7_6: std_logic; - signal mdout1_6_6: std_logic; - signal mdout1_5_6: std_logic; - signal mdout1_4_6: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_31_7: std_logic; - signal mdout1_30_7: std_logic; - signal mdout1_29_7: std_logic; - signal mdout1_28_7: std_logic; - signal mdout1_27_7: std_logic; - signal mdout1_26_7: std_logic; - signal mdout1_25_7: std_logic; - signal mdout1_24_7: std_logic; - signal mdout1_23_7: std_logic; - signal mdout1_22_7: std_logic; - signal mdout1_21_7: std_logic; - signal mdout1_20_7: std_logic; - signal mdout1_19_7: std_logic; - signal mdout1_18_7: std_logic; - signal mdout1_17_7: std_logic; - signal mdout1_16_7: std_logic; - signal mdout1_15_7: std_logic; - signal mdout1_14_7: std_logic; - signal mdout1_13_7: std_logic; - signal mdout1_12_7: std_logic; - signal mdout1_11_7: std_logic; - signal mdout1_10_7: std_logic; - signal mdout1_9_7: std_logic; - signal mdout1_8_7: std_logic; - signal mdout1_7_7: std_logic; - signal mdout1_6_7: std_logic; - signal mdout1_5_7: std_logic; - signal mdout1_4_7: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal rptr_13_ff: std_logic; - signal rptr_12_ff: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_31_8: std_logic; - signal mdout1_30_8: std_logic; - signal mdout1_29_8: std_logic; - signal mdout1_28_8: std_logic; - signal mdout1_27_8: std_logic; - signal mdout1_26_8: std_logic; - signal mdout1_25_8: std_logic; - signal mdout1_24_8: std_logic; - signal mdout1_23_8: std_logic; - signal mdout1_22_8: std_logic; - signal mdout1_21_8: std_logic; - signal mdout1_20_8: std_logic; - signal mdout1_19_8: std_logic; - signal mdout1_18_8: std_logic; - signal mdout1_17_8: std_logic; - signal mdout1_16_8: std_logic; - signal mdout1_15_8: std_logic; - signal mdout1_14_8: std_logic; - signal mdout1_13_8: std_logic; - signal mdout1_12_8: std_logic; - signal mdout1_11_8: std_logic; - signal mdout1_10_8: std_logic; - signal mdout1_9_8: std_logic; - signal mdout1_8_8: std_logic; - signal mdout1_7_8: std_logic; - signal mdout1_6_8: std_logic; - signal mdout1_5_8: std_logic; - signal mdout1_4_8: std_logic; - signal mdout1_3_8: std_logic; - signal mdout1_2_8: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal wcnt_sub_0: std_logic; - signal wcnt_sub_1: std_logic; - signal wcnt_sub_2: std_logic; - signal co0_2: std_logic; - signal wcnt_sub_3: std_logic; - signal wcnt_sub_4: std_logic; - signal co1_2: std_logic; - signal wcnt_sub_5: std_logic; - signal wcnt_sub_6: std_logic; - signal co2_2: std_logic; - signal wcnt_sub_7: std_logic; - signal wcnt_sub_8: std_logic; - signal co3_2: std_logic; - signal wcnt_sub_9: std_logic; - signal wcnt_sub_10: std_logic; - signal co4_2: std_logic; - signal wcnt_sub_11: std_logic; - signal wcnt_sub_12: std_logic; - signal co5_2: std_logic; - signal wcnt_sub_13: std_logic; - signal wcnt_sub_14: std_logic; - signal co6_2: std_logic; - signal wcnt_sub_15: std_logic; - signal co7_2: std_logic; - signal wcnt_sub_msb: std_logic; - signal rcnt_sub_0: std_logic; - signal rcnt_sub_1: std_logic; - signal rcnt_sub_2: std_logic; - signal co0_3: std_logic; - signal rcnt_sub_3: std_logic; - signal rcnt_sub_4: std_logic; - signal co1_3: std_logic; - signal rcnt_sub_5: std_logic; - signal rcnt_sub_6: std_logic; - signal co2_3: std_logic; - signal rcnt_sub_7: std_logic; - signal rcnt_sub_8: std_logic; - signal co3_3: std_logic; - signal rcnt_sub_9: std_logic; - signal rcnt_sub_10: std_logic; - signal co4_3: std_logic; - signal rcnt_sub_11: std_logic; - signal rcnt_sub_12: std_logic; - signal co5_3: std_logic; - signal rcnt_sub_13: std_logic; - signal rcnt_sub_14: std_logic; - signal co6_3: std_logic; - signal rcnt_sub_15: std_logic; - signal rcnt_sub_16: std_logic; - signal co7_3: std_logic; - signal rcnt_sub_msb: std_logic; - signal co8_1d: std_logic; - signal co8_1: std_logic; - signal wfill_sub_0: std_logic; - signal wptr_0: std_logic; - signal wfill_sub_1: std_logic; - signal wfill_sub_2: std_logic; - signal co0_4: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wfill_sub_3: std_logic; - signal wfill_sub_4: std_logic; - signal co1_4: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wfill_sub_5: std_logic; - signal wfill_sub_6: std_logic; - signal co2_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wfill_sub_7: std_logic; - signal wfill_sub_8: std_logic; - signal co3_4: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wfill_sub_9: std_logic; - signal wfill_sub_10: std_logic; - signal co4_4: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wfill_sub_11: std_logic; - signal wfill_sub_12: std_logic; - signal co5_4: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wfill_sub_13: std_logic; - signal wfill_sub_14: std_logic; - signal co6_4: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wfill_sub_15: std_logic; - signal co7_4: std_logic; - signal wfill_sub_msb: std_logic; - signal rfill_sub_0: std_logic; - signal rptr_0: std_logic; - signal scuba_vhi: std_logic; - signal rfill_sub_1: std_logic; - signal rfill_sub_2: std_logic; - signal co0_5: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rfill_sub_3: std_logic; - signal rfill_sub_4: std_logic; - signal co1_5: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rfill_sub_5: std_logic; - signal rfill_sub_6: std_logic; - signal co2_5: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rfill_sub_7: std_logic; - signal rfill_sub_8: std_logic; - signal co3_5: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rfill_sub_9: std_logic; - signal rfill_sub_10: std_logic; - signal co4_5: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rfill_sub_11: std_logic; - signal rfill_sub_12: std_logic; - signal co5_5: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rfill_sub_13: std_logic; - signal rfill_sub_14: std_logic; - signal co6_5: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal rfill_sub_15: std_logic; - signal rfill_sub_16: std_logic; - signal co7_5: std_logic; - signal rptr_15: std_logic; - signal rfill_sub_msb: std_logic; - signal co8_2d: std_logic; - signal co8_2: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_6: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_6: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_6: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_6: std_logic; - signal wcount_r7: std_logic; - signal wcount_r8: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_6: std_logic; - signal wcount_r9: std_logic; - signal wcount_r10: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_6: std_logic; - signal wcount_r11: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_6: std_logic; - signal wcount_r13: std_logic; - signal wcount_r14: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_6: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_7: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_7: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_7: std_logic; - signal rcount_w7: std_logic; - signal rcount_w8: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_7: std_logic; - signal rcount_w9: std_logic; - signal rcount_w10: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_7: std_logic; - signal rcount_w11: std_logic; - signal rcount_w12: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_7: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w14: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_7: std_logic; - signal rcount_w15: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_14: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal rden_i: std_logic; - signal cmp_ci_2: std_logic; - signal rcnt_reg_0: std_logic; - signal rcnt_reg_1: std_logic; - signal co0_8: std_logic; - signal rcnt_reg_2: std_logic; - signal rcnt_reg_3: std_logic; - signal co1_8: std_logic; - signal rcnt_reg_4: std_logic; - signal rcnt_reg_5: std_logic; - signal co2_8: std_logic; - signal rcnt_reg_6: std_logic; - signal rcnt_reg_7: std_logic; - signal co3_8: std_logic; - signal rcnt_reg_8: std_logic; - signal rcnt_reg_9: std_logic; - signal co4_8: std_logic; - signal rcnt_reg_10: std_logic; - signal rcnt_reg_11: std_logic; - signal co5_8: std_logic; - signal rcnt_reg_12: std_logic; - signal rcnt_reg_13: std_logic; - signal co6_8: std_logic; - signal rcnt_reg_14: std_logic; - signal rcnt_reg_15: std_logic; - signal co7_7: std_logic; - signal ae_clrsig: std_logic; - signal ae_setsig: std_logic; - signal ae_d: std_logic; - signal ae_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_3: std_logic; - signal wcnt_reg_0: std_logic; - signal wcnt_reg_1: std_logic; - signal co0_9: std_logic; - signal wcnt_reg_2: std_logic; - signal wcnt_reg_3: std_logic; - signal co1_9: std_logic; - signal wcnt_reg_4: std_logic; - signal wcnt_reg_5: std_logic; - signal co2_9: std_logic; - signal wcnt_reg_6: std_logic; - signal wcnt_reg_7: std_logic; - signal co3_9: std_logic; - signal wcnt_reg_8: std_logic; - signal wcnt_reg_9: std_logic; - signal co4_9: std_logic; - signal wcnt_reg_10: std_logic; - signal wcnt_reg_11: std_logic; - signal co5_9: std_logic; - signal wcnt_reg_12: std_logic; - signal wcnt_reg_13: std_logic; - signal co6_9: std_logic; - signal wcnt_reg_14: std_logic; - signal wcnt_reg_15: std_logic; - signal af_d: std_logic; - signal af_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FSUB2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; BI: in std_logic; BOUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX321 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; D4: in std_logic; D5: in std_logic; - D6: in std_logic; D7: in std_logic; D8: in std_logic; - D9: in std_logic; D10: in std_logic; D11: in std_logic; - D12: in std_logic; D13: in std_logic; D14: in std_logic; - D15: in std_logic; D16: in std_logic; D17: in std_logic; - D18: in std_logic; D19: in std_logic; D20: in std_logic; - D21: in std_logic; D22: in std_logic; D23: in std_logic; - D24: in std_logic; D25: in std_logic; D26: in std_logic; - D27: in std_logic; D28: in std_logic; D29: in std_logic; - D30: in std_logic; D31: in std_logic; SD1: in std_logic; - SD2: in std_logic; SD3: in std_logic; SD4: in std_logic; - SD5: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute RESETMODE of pdp_ram_0_0_31 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_0_30 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_30 : label is ""; - attribute RESETMODE of pdp_ram_1_0_30 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_0_29 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_29 : label is ""; - attribute RESETMODE of pdp_ram_2_0_29 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_0_28 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_28 : label is ""; - attribute RESETMODE of pdp_ram_3_0_28 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_4_0_27 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_4_0_27 : label is ""; - attribute RESETMODE of pdp_ram_4_0_27 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_5_0_26 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_5_0_26 : label is ""; - attribute RESETMODE of pdp_ram_5_0_26 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_6_0_25 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_6_0_25 : label is ""; - attribute RESETMODE of pdp_ram_6_0_25 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_7_0_24 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_7_0_24 : label is ""; - attribute RESETMODE of pdp_ram_7_0_24 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_8_0_23 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_8_0_23 : label is ""; - attribute RESETMODE of pdp_ram_8_0_23 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_9_0_22 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_9_0_22 : label is ""; - attribute RESETMODE of pdp_ram_9_0_22 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_10_0_21 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_10_0_21 : label is ""; - attribute RESETMODE of pdp_ram_10_0_21 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_11_0_20 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_11_0_20 : label is ""; - attribute RESETMODE of pdp_ram_11_0_20 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_12_0_19 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_12_0_19 : label is ""; - attribute RESETMODE of pdp_ram_12_0_19 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_13_0_18 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_13_0_18 : label is ""; - attribute RESETMODE of pdp_ram_13_0_18 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_14_0_17 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_14_0_17 : label is ""; - attribute RESETMODE of pdp_ram_14_0_17 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_15_0_16 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_15_0_16 : label is ""; - attribute RESETMODE of pdp_ram_15_0_16 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_16_0_15 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_16_0_15 : label is ""; - attribute RESETMODE of pdp_ram_16_0_15 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_17_0_14 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_17_0_14 : label is ""; - attribute RESETMODE of pdp_ram_17_0_14 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_18_0_13 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_18_0_13 : label is ""; - attribute RESETMODE of pdp_ram_18_0_13 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_19_0_12 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_19_0_12 : label is ""; - attribute RESETMODE of pdp_ram_19_0_12 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_20_0_11 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_20_0_11 : label is ""; - attribute RESETMODE of pdp_ram_20_0_11 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_21_0_10 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_21_0_10 : label is ""; - attribute RESETMODE of pdp_ram_21_0_10 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_22_0_9 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_22_0_9 : label is ""; - attribute RESETMODE of pdp_ram_22_0_9 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_23_0_8 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_23_0_8 : label is ""; - attribute RESETMODE of pdp_ram_23_0_8 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_24_0_7 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_24_0_7 : label is ""; - attribute RESETMODE of pdp_ram_24_0_7 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_25_0_6 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_25_0_6 : label is ""; - attribute RESETMODE of pdp_ram_25_0_6 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_26_0_5 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_26_0_5 : label is ""; - attribute RESETMODE of pdp_ram_26_0_5 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_27_0_4 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_27_0_4 : label is ""; - attribute RESETMODE of pdp_ram_27_0_4 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_28_0_3 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_28_0_3 : label is ""; - attribute RESETMODE of pdp_ram_28_0_3 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_29_0_2 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_29_0_2 : label is ""; - attribute RESETMODE of pdp_ram_29_0_2 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_30_0_1 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_30_0_1 : label is ""; - attribute RESETMODE of pdp_ram_30_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_31_0_0 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_31_0_0 : label is ""; - attribute RESETMODE of pdp_ram_31_0_0 : label is "SYNC"; - attribute GSR of FF_239 : label is "ENABLED"; - attribute GSR of FF_238 : label is "ENABLED"; - attribute GSR of FF_237 : label is "ENABLED"; - attribute GSR of FF_236 : label is "ENABLED"; - attribute GSR of FF_235 : label is "ENABLED"; - attribute GSR of FF_234 : label is "ENABLED"; - attribute GSR of FF_233 : label is "ENABLED"; - attribute GSR of FF_232 : label is "ENABLED"; - attribute GSR of FF_231 : label is "ENABLED"; - attribute GSR of FF_230 : label is "ENABLED"; - attribute GSR of FF_229 : label is "ENABLED"; - attribute GSR of FF_228 : label is "ENABLED"; - attribute GSR of FF_227 : label is "ENABLED"; - attribute GSR of FF_226 : label is "ENABLED"; - attribute GSR of FF_225 : label is "ENABLED"; - attribute GSR of FF_224 : label is "ENABLED"; - attribute GSR of FF_223 : label is "ENABLED"; - attribute GSR of FF_222 : label is "ENABLED"; - attribute GSR of FF_221 : label is "ENABLED"; - attribute GSR of FF_220 : label is "ENABLED"; - attribute GSR of FF_219 : label is "ENABLED"; - attribute GSR of FF_218 : label is "ENABLED"; - attribute GSR of FF_217 : label is "ENABLED"; - attribute GSR of FF_216 : label is "ENABLED"; - attribute GSR of FF_215 : label is "ENABLED"; - attribute GSR of FF_214 : label is "ENABLED"; - attribute GSR of FF_213 : label is "ENABLED"; - attribute GSR of FF_212 : label is "ENABLED"; - attribute GSR of FF_211 : label is "ENABLED"; - attribute GSR of FF_210 : label is "ENABLED"; - attribute GSR of FF_209 : label is "ENABLED"; - attribute GSR of FF_208 : label is "ENABLED"; - attribute GSR of FF_207 : label is "ENABLED"; - attribute GSR of FF_206 : label is "ENABLED"; - attribute GSR of FF_205 : label is "ENABLED"; - attribute GSR of FF_204 : label is "ENABLED"; - attribute GSR of FF_203 : label is "ENABLED"; - attribute GSR of FF_202 : label is "ENABLED"; - attribute GSR of FF_201 : label is "ENABLED"; - attribute GSR of FF_200 : label is "ENABLED"; - attribute GSR of FF_199 : label is "ENABLED"; - attribute GSR of FF_198 : label is "ENABLED"; - attribute GSR of FF_197 : label is "ENABLED"; - attribute GSR of FF_196 : label is "ENABLED"; - attribute GSR of FF_195 : label is "ENABLED"; - attribute GSR of FF_194 : label is "ENABLED"; - attribute GSR of FF_193 : label is "ENABLED"; - attribute GSR of FF_192 : label is "ENABLED"; - attribute GSR of FF_191 : label is "ENABLED"; - attribute GSR of FF_190 : label is "ENABLED"; - attribute GSR of FF_189 : label is "ENABLED"; - attribute GSR of FF_188 : label is "ENABLED"; - attribute GSR of FF_187 : label is "ENABLED"; - attribute GSR of FF_186 : label is "ENABLED"; - attribute GSR of FF_185 : label is "ENABLED"; - attribute GSR of FF_184 : label is "ENABLED"; - attribute GSR of FF_183 : label is "ENABLED"; - attribute GSR of FF_182 : label is "ENABLED"; - attribute GSR of FF_181 : label is "ENABLED"; - attribute GSR of FF_180 : label is "ENABLED"; - attribute GSR of FF_179 : label is "ENABLED"; - attribute GSR of FF_178 : label is "ENABLED"; - attribute GSR of FF_177 : label is "ENABLED"; - attribute GSR of FF_176 : label is "ENABLED"; - attribute GSR of FF_175 : label is "ENABLED"; - attribute GSR of FF_174 : label is "ENABLED"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t39: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_12: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t38: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_11: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t37: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t36: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t35: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t34: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t33: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t32: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t31: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t30: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t29: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t28: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t27: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t26: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t25: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t24: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t23: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t22: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t21: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t20: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t19: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t18: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t17: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t16: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t15: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t14: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t13: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t12: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t11: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t9: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t8: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t7: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t6: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - INV_10: INV - port map (A=>wptr_10, Z=>wptr_10_inv); - - INV_9: INV - port map (A=>wptr_11, Z=>wptr_11_inv); - - INV_8: INV - port map (A=>wptr_12, Z=>wptr_12_inv); - - INV_7: INV - port map (A=>wptr_13, Z=>wptr_13_inv); - - INV_6: INV - port map (A=>wptr_14, Z=>wptr_14_inv); - - LUT4_180: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet); - - LUT4_179: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec0_p00); - - INV_5: INV - port map (A=>rptr_11, Z=>rptr_11_inv); - - INV_4: INV - port map (A=>rptr_12, Z=>rptr_12_inv); - - INV_3: INV - port map (A=>rptr_13, Z=>rptr_13_inv); - - INV_2: INV - port map (A=>rptr_14, Z=>rptr_14_inv); - - INV_1: INV - port map (A=>rptr_15, Z=>rptr_15_inv); - - LUT4_178: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_1); - - LUT4_177: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_1, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec1_r10); - - LUT4_176: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_2); - - LUT4_175: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_2, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec2_p01); - - LUT4_174: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_3); - - LUT4_173: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_3, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec3_r11); - - LUT4_172: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_4); - - LUT4_171: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_4, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec4_p02); - - LUT4_170: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_5); - - LUT4_169: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_5, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec5_r12); - - LUT4_168: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_6); - - LUT4_167: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_6, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec6_p03); - - LUT4_166: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_7); - - LUT4_165: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_7, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec7_r13); - - LUT4_164: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_8); - - LUT4_163: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_8, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec8_p04); - - LUT4_162: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_9); - - LUT4_161: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_9, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec9_r14); - - LUT4_160: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_10); - - LUT4_159: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_10, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec10_p05); - - LUT4_158: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_11); - - LUT4_157: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_11, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec11_r15); - - LUT4_156: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_12); - - LUT4_155: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_12, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec12_p06); - - LUT4_154: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_13); - - LUT4_153: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_13, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec13_r16); - - LUT4_152: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_14); - - LUT4_151: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_14, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec14_p07); - - LUT4_150: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_15); - - LUT4_149: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_15, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec15_r17); - - LUT4_148: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_16); - - LUT4_147: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_16, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec16_p08); - - LUT4_146: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_17); - - LUT4_145: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_17, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec17_r18); - - LUT4_144: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_18); - - LUT4_143: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_18, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec18_p09); - - LUT4_142: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_19); - - LUT4_141: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_19, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec19_r19); - - LUT4_140: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_20); - - LUT4_139: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_20, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec20_p010); - - LUT4_138: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_21); - - LUT4_137: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_21, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec21_r110); - - LUT4_136: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_22); - - LUT4_135: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_22, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec22_p011); - - LUT4_134: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_23); - - LUT4_133: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_23, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec23_r111); - - LUT4_132: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_24); - - LUT4_131: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_24, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec24_p012); - - LUT4_130: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_25); - - LUT4_129: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_25, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec25_r112); - - LUT4_128: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_26); - - LUT4_127: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_26, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec26_p013); - - LUT4_126: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_27); - - LUT4_125: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_27, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec27_r113); - - LUT4_124: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_28); - - LUT4_123: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_28, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec28_p014); - - LUT4_122: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_29); - - LUT4_121: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_29, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec29_r114); - - LUT4_120: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, AD0=>wptr_13, - DO0=>func_and_inet_30); - - LUT4_119: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_30, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec30_p015); - - LUT4_118: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_31); - - LUT4_117: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_31, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec31_r115); - - LUT4_116: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_32); - - LUT4_115: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_32, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec32_p016); - - LUT4_114: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_33); - - LUT4_113: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_33, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec33_r116); - - LUT4_112: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_34); - - LUT4_111: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_34, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec34_p017); - - LUT4_110: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_35); - - LUT4_109: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_35, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec35_r117); - - LUT4_108: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_36); - - LUT4_107: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_36, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec36_p018); - - LUT4_106: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_37); - - LUT4_105: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_37, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec37_r118); - - LUT4_104: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_38); - - LUT4_103: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_38, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec38_p019); - - LUT4_102: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_39); - - LUT4_101: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_39, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec39_r119); - - LUT4_100: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_40); - - LUT4_99: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_40, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec40_p020); - - LUT4_98: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_41); - - LUT4_97: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_41, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec41_r120); - - LUT4_96: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_42); - - LUT4_95: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_42, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec42_p021); - - LUT4_94: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_43); - - LUT4_93: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_43, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec43_r121); - - LUT4_92: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_44); - - LUT4_91: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_44, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec44_p022); - - LUT4_90: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_45); - - LUT4_89: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_45, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec45_r122); - - LUT4_88: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_46); - - LUT4_87: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_46, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec46_p023); - - LUT4_86: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_47); - - LUT4_85: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_47, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec47_r123); - - LUT4_84: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_48); - - LUT4_83: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_48, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec48_p024); - - LUT4_82: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_49); - - LUT4_81: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_49, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec49_r124); - - LUT4_80: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_50); - - LUT4_79: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_50, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec50_p025); - - LUT4_78: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_51); - - LUT4_77: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_51, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec51_r125); - - LUT4_76: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_52); - - LUT4_75: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_52, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec52_p026); - - LUT4_74: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_53); - - LUT4_73: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_53, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec53_r126); - - LUT4_72: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_54); - - LUT4_71: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_54, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec54_p027); - - LUT4_70: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_55); - - LUT4_69: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_55, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec55_r127); - - LUT4_68: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_56); - - LUT4_67: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_56, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec56_p028); - - LUT4_66: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_57); - - LUT4_65: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_57, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec57_r128); - - LUT4_64: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_58); - - LUT4_63: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_58, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec58_p029); - - LUT4_62: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_59); - - LUT4_61: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_59, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec59_r129); - - LUT4_60: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_60); - - LUT4_59: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_60, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec60_p030); - - LUT4_58: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_61); - - LUT4_57: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_61, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec61_r130); - - LUT4_56: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, AD0=>wptr_13, - DO0=>func_and_inet_62); - - LUT4_55: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_62, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec62_p031); - - LUT4_54: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_63); - - LUT4_53: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_63, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec63_r131); - - LUT4_52: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, - DO0=>w_g2b_xor_cluster_0); - - LUT4_51: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_1); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_2); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_3); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r9); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>wcount_r6); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r23, DO0=>wcount_r3); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r2); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r1); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_1); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_2); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - XOR2_t5: XOR2 - port map (A=>wcount_15, B=>r_gcount_w216, Z=>wcnt_sub_msb); - - XOR2_t4: XOR2 - port map (A=>w_gcount_r215, B=>rcount_16, Z=>rcnt_sub_msb); - - XOR2_t3: XOR2 - port map (A=>wptr_15, B=>r_gcount_w216, Z=>wfill_sub_msb); - - XOR2_t2: XOR2 - port map (A=>w_gcount_r215, B=>rptr_16, Z=>rfill_sub_msb); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - INV_0: INV - port map (A=>rcnt_reg_15, Z=>rcnt_reg_15_inv); - - AND2_t1: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15_inv, Z=>ae_clrsig); - - AND2_t0: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15, Z=>ae_setsig); - - pdp_ram_0_0_31: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec0_p00, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec1_r10, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_0_0, DOB1=>mdout1_0_1, - DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, DOB4=>mdout1_0_4, - DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, DOB7=>mdout1_0_7, - DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_30: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec2_p01, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec3_r11, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_1_0, DOB1=>mdout1_1_1, - DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, DOB4=>mdout1_1_4, - DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, DOB7=>mdout1_1_7, - DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_29: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec4_p02, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec5_r12, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_2_0, DOB1=>mdout1_2_1, - DOB2=>mdout1_2_2, DOB3=>mdout1_2_3, DOB4=>mdout1_2_4, - DOB5=>mdout1_2_5, DOB6=>mdout1_2_6, DOB7=>mdout1_2_7, - DOB8=>mdout1_2_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_28: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec6_p03, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec7_r13, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_3_0, DOB1=>mdout1_3_1, - DOB2=>mdout1_3_2, DOB3=>mdout1_3_3, DOB4=>mdout1_3_4, - DOB5=>mdout1_3_5, DOB6=>mdout1_3_6, DOB7=>mdout1_3_7, - DOB8=>mdout1_3_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_4_0_27: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec8_p04, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec9_r14, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_4_0, DOB1=>mdout1_4_1, - DOB2=>mdout1_4_2, DOB3=>mdout1_4_3, DOB4=>mdout1_4_4, - DOB5=>mdout1_4_5, DOB6=>mdout1_4_6, DOB7=>mdout1_4_7, - DOB8=>mdout1_4_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_5_0_26: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec10_p05, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec11_r15, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_5_0, DOB1=>mdout1_5_1, - DOB2=>mdout1_5_2, DOB3=>mdout1_5_3, DOB4=>mdout1_5_4, - DOB5=>mdout1_5_5, DOB6=>mdout1_5_6, DOB7=>mdout1_5_7, - DOB8=>mdout1_5_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_6_0_25: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec12_p06, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec13_r16, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_6_0, DOB1=>mdout1_6_1, - DOB2=>mdout1_6_2, DOB3=>mdout1_6_3, DOB4=>mdout1_6_4, - DOB5=>mdout1_6_5, DOB6=>mdout1_6_6, DOB7=>mdout1_6_7, - DOB8=>mdout1_6_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_7_0_24: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec14_p07, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec15_r17, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_7_0, DOB1=>mdout1_7_1, - DOB2=>mdout1_7_2, DOB3=>mdout1_7_3, DOB4=>mdout1_7_4, - DOB5=>mdout1_7_5, DOB6=>mdout1_7_6, DOB7=>mdout1_7_7, - DOB8=>mdout1_7_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_8_0_23: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec16_p08, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec17_r18, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_8_0, DOB1=>mdout1_8_1, - DOB2=>mdout1_8_2, DOB3=>mdout1_8_3, DOB4=>mdout1_8_4, - DOB5=>mdout1_8_5, DOB6=>mdout1_8_6, DOB7=>mdout1_8_7, - DOB8=>mdout1_8_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_9_0_22: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec18_p09, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec19_r19, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_9_0, DOB1=>mdout1_9_1, - DOB2=>mdout1_9_2, DOB3=>mdout1_9_3, DOB4=>mdout1_9_4, - DOB5=>mdout1_9_5, DOB6=>mdout1_9_6, DOB7=>mdout1_9_7, - DOB8=>mdout1_9_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_10_0_21: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec20_p010, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec21_r110, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_10_0, DOB1=>mdout1_10_1, - DOB2=>mdout1_10_2, DOB3=>mdout1_10_3, DOB4=>mdout1_10_4, - DOB5=>mdout1_10_5, DOB6=>mdout1_10_6, DOB7=>mdout1_10_7, - DOB8=>mdout1_10_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_11_0_20: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec22_p011, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec23_r111, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_11_0, DOB1=>mdout1_11_1, - DOB2=>mdout1_11_2, DOB3=>mdout1_11_3, DOB4=>mdout1_11_4, - DOB5=>mdout1_11_5, DOB6=>mdout1_11_6, DOB7=>mdout1_11_7, - DOB8=>mdout1_11_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_12_0_19: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec24_p012, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec25_r112, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_12_0, DOB1=>mdout1_12_1, - DOB2=>mdout1_12_2, DOB3=>mdout1_12_3, DOB4=>mdout1_12_4, - DOB5=>mdout1_12_5, DOB6=>mdout1_12_6, DOB7=>mdout1_12_7, - DOB8=>mdout1_12_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_13_0_18: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec26_p013, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec27_r113, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_13_0, DOB1=>mdout1_13_1, - DOB2=>mdout1_13_2, DOB3=>mdout1_13_3, DOB4=>mdout1_13_4, - DOB5=>mdout1_13_5, DOB6=>mdout1_13_6, DOB7=>mdout1_13_7, - DOB8=>mdout1_13_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_14_0_17: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec28_p014, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec29_r114, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_14_0, DOB1=>mdout1_14_1, - DOB2=>mdout1_14_2, DOB3=>mdout1_14_3, DOB4=>mdout1_14_4, - DOB5=>mdout1_14_5, DOB6=>mdout1_14_6, DOB7=>mdout1_14_7, - DOB8=>mdout1_14_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_15_0_16: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec30_p015, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec31_r115, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_15_0, DOB1=>mdout1_15_1, - DOB2=>mdout1_15_2, DOB3=>mdout1_15_3, DOB4=>mdout1_15_4, - DOB5=>mdout1_15_5, DOB6=>mdout1_15_6, DOB7=>mdout1_15_7, - DOB8=>mdout1_15_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_16_0_15: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec32_p016, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec33_r116, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_16_0, DOB1=>mdout1_16_1, - DOB2=>mdout1_16_2, DOB3=>mdout1_16_3, DOB4=>mdout1_16_4, - DOB5=>mdout1_16_5, DOB6=>mdout1_16_6, DOB7=>mdout1_16_7, - DOB8=>mdout1_16_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_17_0_14: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec34_p017, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec35_r117, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_17_0, DOB1=>mdout1_17_1, - DOB2=>mdout1_17_2, DOB3=>mdout1_17_3, DOB4=>mdout1_17_4, - DOB5=>mdout1_17_5, DOB6=>mdout1_17_6, DOB7=>mdout1_17_7, - DOB8=>mdout1_17_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_18_0_13: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec36_p018, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec37_r118, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_18_0, DOB1=>mdout1_18_1, - DOB2=>mdout1_18_2, DOB3=>mdout1_18_3, DOB4=>mdout1_18_4, - DOB5=>mdout1_18_5, DOB6=>mdout1_18_6, DOB7=>mdout1_18_7, - DOB8=>mdout1_18_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_19_0_12: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec38_p019, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec39_r119, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_19_0, DOB1=>mdout1_19_1, - DOB2=>mdout1_19_2, DOB3=>mdout1_19_3, DOB4=>mdout1_19_4, - DOB5=>mdout1_19_5, DOB6=>mdout1_19_6, DOB7=>mdout1_19_7, - DOB8=>mdout1_19_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_20_0_11: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec40_p020, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec41_r120, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_20_0, DOB1=>mdout1_20_1, - DOB2=>mdout1_20_2, DOB3=>mdout1_20_3, DOB4=>mdout1_20_4, - DOB5=>mdout1_20_5, DOB6=>mdout1_20_6, DOB7=>mdout1_20_7, - DOB8=>mdout1_20_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_21_0_10: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec42_p021, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec43_r121, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_21_0, DOB1=>mdout1_21_1, - DOB2=>mdout1_21_2, DOB3=>mdout1_21_3, DOB4=>mdout1_21_4, - DOB5=>mdout1_21_5, DOB6=>mdout1_21_6, DOB7=>mdout1_21_7, - DOB8=>mdout1_21_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_22_0_9: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec44_p022, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec45_r122, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_22_0, DOB1=>mdout1_22_1, - DOB2=>mdout1_22_2, DOB3=>mdout1_22_3, DOB4=>mdout1_22_4, - DOB5=>mdout1_22_5, DOB6=>mdout1_22_6, DOB7=>mdout1_22_7, - DOB8=>mdout1_22_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_23_0_8: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec46_p023, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec47_r123, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_23_0, DOB1=>mdout1_23_1, - DOB2=>mdout1_23_2, DOB3=>mdout1_23_3, DOB4=>mdout1_23_4, - DOB5=>mdout1_23_5, DOB6=>mdout1_23_6, DOB7=>mdout1_23_7, - DOB8=>mdout1_23_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_24_0_7: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec48_p024, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec49_r124, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_24_0, DOB1=>mdout1_24_1, - DOB2=>mdout1_24_2, DOB3=>mdout1_24_3, DOB4=>mdout1_24_4, - DOB5=>mdout1_24_5, DOB6=>mdout1_24_6, DOB7=>mdout1_24_7, - DOB8=>mdout1_24_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_25_0_6: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec50_p025, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec51_r125, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_25_0, DOB1=>mdout1_25_1, - DOB2=>mdout1_25_2, DOB3=>mdout1_25_3, DOB4=>mdout1_25_4, - DOB5=>mdout1_25_5, DOB6=>mdout1_25_6, DOB7=>mdout1_25_7, - DOB8=>mdout1_25_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_26_0_5: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec52_p026, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec53_r126, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_26_0, DOB1=>mdout1_26_1, - DOB2=>mdout1_26_2, DOB3=>mdout1_26_3, DOB4=>mdout1_26_4, - DOB5=>mdout1_26_5, DOB6=>mdout1_26_6, DOB7=>mdout1_26_7, - DOB8=>mdout1_26_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_27_0_4: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec54_p027, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec55_r127, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_27_0, DOB1=>mdout1_27_1, - DOB2=>mdout1_27_2, DOB3=>mdout1_27_3, DOB4=>mdout1_27_4, - DOB5=>mdout1_27_5, DOB6=>mdout1_27_6, DOB7=>mdout1_27_7, - DOB8=>mdout1_27_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_28_0_3: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec56_p028, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec57_r128, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_28_0, DOB1=>mdout1_28_1, - DOB2=>mdout1_28_2, DOB3=>mdout1_28_3, DOB4=>mdout1_28_4, - DOB5=>mdout1_28_5, DOB6=>mdout1_28_6, DOB7=>mdout1_28_7, - DOB8=>mdout1_28_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_29_0_2: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec58_p029, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec59_r129, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_29_0, DOB1=>mdout1_29_1, - DOB2=>mdout1_29_2, DOB3=>mdout1_29_3, DOB4=>mdout1_29_4, - DOB5=>mdout1_29_5, DOB6=>mdout1_29_6, DOB7=>mdout1_29_7, - DOB8=>mdout1_29_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_30_0_1: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec60_p030, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec61_r130, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_30_0, DOB1=>mdout1_30_1, - DOB2=>mdout1_30_2, DOB3=>mdout1_30_3, DOB4=>mdout1_30_4, - DOB5=>mdout1_30_5, DOB6=>mdout1_30_6, DOB7=>mdout1_30_7, - DOB8=>mdout1_30_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_31_0_0: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec62_p031, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec63_r131, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_31_0, DOB1=>mdout1_31_1, - DOB2=>mdout1_31_2, DOB3=>mdout1_31_3, DOB4=>mdout1_31_4, - DOB5=>mdout1_31_5, DOB6=>mdout1_31_6, DOB7=>mdout1_31_7, - DOB8=>mdout1_31_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_239: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_238: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_237: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_236: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_235: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_234: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_233: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_232: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_231: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_230: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_229: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_228: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_227: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_226: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_225: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_224: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_223: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_222: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_221: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_220: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_219: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_218: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_217: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_216: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_215: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_214: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_213: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_212: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_211: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_210: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_209: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_208: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_207: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_206: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_205: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_204: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_203: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_202: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_201: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_200: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_199: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_198: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_197: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_196: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_195: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_194: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_193: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_192: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_191: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_190: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_189: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_188: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_187: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_186: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_185: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_184: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_183: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_182: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_181: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_180: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_179: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_178: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_177: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_176: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_175: FD1P3DX - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_174: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_173: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_172: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_171: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_170: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_169: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_168: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_167: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_166: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_165: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_164: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_163: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_162: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_161: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_160: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_159: FD1P3DX - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_158: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_157: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_156: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_155: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_154: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_153: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_152: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_151: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_150: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_149: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_148: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_147: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_146: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_145: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_144: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_143: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_142: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_141: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_140: FD1P3DX - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_139: FD1P3DX - port map (D=>rptr_12, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_12_ff); - - FF_138: FD1P3DX - port map (D=>rptr_13, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_13_ff); - - FF_137: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_136: FD1P3DX - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_135: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_134: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_133: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_132: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_131: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_130: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_129: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_128: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_127: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_126: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_125: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_124: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_123: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_122: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_121: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_120: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_119: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_118: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_117: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_116: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_115: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_114: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_113: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_112: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_111: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_110: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_109: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_108: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_107: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_106: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_105: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_104: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_103: FD1S3DX - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_102: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_101: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_100: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_99: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_98: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_97: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_96: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_95: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_94: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_93: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_92: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_91: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_90: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_89: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_88: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_87: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_86: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_85: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_84: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_83: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_82: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_81: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_80: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_79: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_78: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_77: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_76: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_75: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_74: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_73: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_72: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_71: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_70: FD1S3DX - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_69: FD1S3DX - port map (D=>wcnt_sub_0, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_0); - - FF_68: FD1S3DX - port map (D=>wcnt_sub_1, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_1); - - FF_67: FD1S3DX - port map (D=>wcnt_sub_2, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_2); - - FF_66: FD1S3DX - port map (D=>wcnt_sub_3, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_3); - - FF_65: FD1S3DX - port map (D=>wcnt_sub_4, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_4); - - FF_64: FD1S3DX - port map (D=>wcnt_sub_5, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_5); - - FF_63: FD1S3DX - port map (D=>wcnt_sub_6, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_6); - - FF_62: FD1S3DX - port map (D=>wcnt_sub_7, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_7); - - FF_61: FD1S3DX - port map (D=>wcnt_sub_8, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_8); - - FF_60: FD1S3DX - port map (D=>wcnt_sub_9, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_9); - - FF_59: FD1S3DX - port map (D=>wcnt_sub_10, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_10); - - FF_58: FD1S3DX - port map (D=>wcnt_sub_11, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_11); - - FF_57: FD1S3DX - port map (D=>wcnt_sub_12, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_12); - - FF_56: FD1S3DX - port map (D=>wcnt_sub_13, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_13); - - FF_55: FD1S3DX - port map (D=>wcnt_sub_14, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_14); - - FF_54: FD1S3DX - port map (D=>wcnt_sub_15, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_15); - - FF_53: FD1S3DX - port map (D=>rcnt_sub_0, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_0); - - FF_52: FD1S3DX - port map (D=>rcnt_sub_1, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_1); - - FF_51: FD1S3DX - port map (D=>rcnt_sub_2, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_2); - - FF_50: FD1S3DX - port map (D=>rcnt_sub_3, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_3); - - FF_49: FD1S3DX - port map (D=>rcnt_sub_4, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_4); - - FF_48: FD1S3DX - port map (D=>rcnt_sub_5, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_5); - - FF_47: FD1S3DX - port map (D=>rcnt_sub_6, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_6); - - FF_46: FD1S3DX - port map (D=>rcnt_sub_7, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_7); - - FF_45: FD1S3DX - port map (D=>rcnt_sub_8, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_8); - - FF_44: FD1S3DX - port map (D=>rcnt_sub_9, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_9); - - FF_43: FD1S3DX - port map (D=>rcnt_sub_10, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_10); - - FF_42: FD1S3DX - port map (D=>rcnt_sub_11, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_11); - - FF_41: FD1S3DX - port map (D=>rcnt_sub_12, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_12); - - FF_40: FD1S3DX - port map (D=>rcnt_sub_13, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_13); - - FF_39: FD1S3DX - port map (D=>rcnt_sub_14, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_14); - - FF_38: FD1S3DX - port map (D=>rcnt_sub_15, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_15); - - FF_37: FD1S3DX - port map (D=>rcnt_sub_16, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_16); - - FF_36: FD1S3DX - port map (D=>wfill_sub_0, CK=>WrClock, CD=>Reset, Q=>WCNT(0)); - - FF_35: FD1S3DX - port map (D=>wfill_sub_1, CK=>WrClock, CD=>Reset, Q=>WCNT(1)); - - FF_34: FD1S3DX - port map (D=>wfill_sub_2, CK=>WrClock, CD=>Reset, Q=>WCNT(2)); - - FF_33: FD1S3DX - port map (D=>wfill_sub_3, CK=>WrClock, CD=>Reset, Q=>WCNT(3)); - - FF_32: FD1S3DX - port map (D=>wfill_sub_4, CK=>WrClock, CD=>Reset, Q=>WCNT(4)); - - FF_31: FD1S3DX - port map (D=>wfill_sub_5, CK=>WrClock, CD=>Reset, Q=>WCNT(5)); - - FF_30: FD1S3DX - port map (D=>wfill_sub_6, CK=>WrClock, CD=>Reset, Q=>WCNT(6)); - - FF_29: FD1S3DX - port map (D=>wfill_sub_7, CK=>WrClock, CD=>Reset, Q=>WCNT(7)); - - FF_28: FD1S3DX - port map (D=>wfill_sub_8, CK=>WrClock, CD=>Reset, Q=>WCNT(8)); - - FF_27: FD1S3DX - port map (D=>wfill_sub_9, CK=>WrClock, CD=>Reset, Q=>WCNT(9)); - - FF_26: FD1S3DX - port map (D=>wfill_sub_10, CK=>WrClock, CD=>Reset, Q=>WCNT(10)); - - FF_25: FD1S3DX - port map (D=>wfill_sub_11, CK=>WrClock, CD=>Reset, Q=>WCNT(11)); - - FF_24: FD1S3DX - port map (D=>wfill_sub_12, CK=>WrClock, CD=>Reset, Q=>WCNT(12)); - - FF_23: FD1S3DX - port map (D=>wfill_sub_13, CK=>WrClock, CD=>Reset, Q=>WCNT(13)); - - FF_22: FD1S3DX - port map (D=>wfill_sub_14, CK=>WrClock, CD=>Reset, Q=>WCNT(14)); - - FF_21: FD1S3DX - port map (D=>wfill_sub_15, CK=>WrClock, CD=>Reset, Q=>WCNT(15)); - - FF_20: FD1S3DX - port map (D=>rfill_sub_0, CK=>RdClock, CD=>rRst, Q=>RCNT(0)); - - FF_19: FD1S3DX - port map (D=>rfill_sub_1, CK=>RdClock, CD=>rRst, Q=>RCNT(1)); - - FF_18: FD1S3DX - port map (D=>rfill_sub_2, CK=>RdClock, CD=>rRst, Q=>RCNT(2)); - - FF_17: FD1S3DX - port map (D=>rfill_sub_3, CK=>RdClock, CD=>rRst, Q=>RCNT(3)); - - FF_16: FD1S3DX - port map (D=>rfill_sub_4, CK=>RdClock, CD=>rRst, Q=>RCNT(4)); - - FF_15: FD1S3DX - port map (D=>rfill_sub_5, CK=>RdClock, CD=>rRst, Q=>RCNT(5)); - - FF_14: FD1S3DX - port map (D=>rfill_sub_6, CK=>RdClock, CD=>rRst, Q=>RCNT(6)); - - FF_13: FD1S3DX - port map (D=>rfill_sub_7, CK=>RdClock, CD=>rRst, Q=>RCNT(7)); - - FF_12: FD1S3DX - port map (D=>rfill_sub_8, CK=>RdClock, CD=>rRst, Q=>RCNT(8)); - - FF_11: FD1S3DX - port map (D=>rfill_sub_9, CK=>RdClock, CD=>rRst, Q=>RCNT(9)); - - FF_10: FD1S3DX - port map (D=>rfill_sub_10, CK=>RdClock, CD=>rRst, Q=>RCNT(10)); - - FF_9: FD1S3DX - port map (D=>rfill_sub_11, CK=>RdClock, CD=>rRst, Q=>RCNT(11)); - - FF_8: FD1S3DX - port map (D=>rfill_sub_12, CK=>RdClock, CD=>rRst, Q=>RCNT(12)); - - FF_7: FD1S3DX - port map (D=>rfill_sub_13, CK=>RdClock, CD=>rRst, Q=>RCNT(13)); - - FF_6: FD1S3DX - port map (D=>rfill_sub_14, CK=>RdClock, CD=>rRst, Q=>RCNT(14)); - - FF_5: FD1S3DX - port map (D=>rfill_sub_15, CK=>RdClock, CD=>rRst, Q=>RCNT(15)); - - FF_4: FD1S3DX - port map (D=>rfill_sub_16, CK=>RdClock, CD=>rRst, Q=>RCNT(16)); - - FF_3: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_2: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - FF_1: FD1S3BX - port map (D=>ae_d, CK=>RdClock, PD=>rRst, Q=>AlmostEmpty); - - FF_0: FD1S3DX - port map (D=>af_d, CK=>WrClock, CD=>Reset, Q=>AlmostFull); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>ircount_16, NC1=>open); - - mux_8: MUX321 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, D4=>mdout1_4_0, D5=>mdout1_5_0, - D6=>mdout1_6_0, D7=>mdout1_7_0, D8=>mdout1_8_0, - D9=>mdout1_9_0, D10=>mdout1_10_0, D11=>mdout1_11_0, - D12=>mdout1_12_0, D13=>mdout1_13_0, D14=>mdout1_14_0, - D15=>mdout1_15_0, D16=>mdout1_16_0, D17=>mdout1_17_0, - D18=>mdout1_18_0, D19=>mdout1_19_0, D20=>mdout1_20_0, - D21=>mdout1_21_0, D22=>mdout1_22_0, D23=>mdout1_23_0, - D24=>mdout1_24_0, D25=>mdout1_25_0, D26=>mdout1_26_0, - D27=>mdout1_27_0, D28=>mdout1_28_0, D29=>mdout1_29_0, - D30=>mdout1_30_0, D31=>mdout1_31_0, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(0)); - - mux_7: MUX321 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, D4=>mdout1_4_1, D5=>mdout1_5_1, - D6=>mdout1_6_1, D7=>mdout1_7_1, D8=>mdout1_8_1, - D9=>mdout1_9_1, D10=>mdout1_10_1, D11=>mdout1_11_1, - D12=>mdout1_12_1, D13=>mdout1_13_1, D14=>mdout1_14_1, - D15=>mdout1_15_1, D16=>mdout1_16_1, D17=>mdout1_17_1, - D18=>mdout1_18_1, D19=>mdout1_19_1, D20=>mdout1_20_1, - D21=>mdout1_21_1, D22=>mdout1_22_1, D23=>mdout1_23_1, - D24=>mdout1_24_1, D25=>mdout1_25_1, D26=>mdout1_26_1, - D27=>mdout1_27_1, D28=>mdout1_28_1, D29=>mdout1_29_1, - D30=>mdout1_30_1, D31=>mdout1_31_1, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(1)); - - mux_6: MUX321 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, D4=>mdout1_4_2, D5=>mdout1_5_2, - D6=>mdout1_6_2, D7=>mdout1_7_2, D8=>mdout1_8_2, - D9=>mdout1_9_2, D10=>mdout1_10_2, D11=>mdout1_11_2, - D12=>mdout1_12_2, D13=>mdout1_13_2, D14=>mdout1_14_2, - D15=>mdout1_15_2, D16=>mdout1_16_2, D17=>mdout1_17_2, - D18=>mdout1_18_2, D19=>mdout1_19_2, D20=>mdout1_20_2, - D21=>mdout1_21_2, D22=>mdout1_22_2, D23=>mdout1_23_2, - D24=>mdout1_24_2, D25=>mdout1_25_2, D26=>mdout1_26_2, - D27=>mdout1_27_2, D28=>mdout1_28_2, D29=>mdout1_29_2, - D30=>mdout1_30_2, D31=>mdout1_31_2, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(2)); - - mux_5: MUX321 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, D4=>mdout1_4_3, D5=>mdout1_5_3, - D6=>mdout1_6_3, D7=>mdout1_7_3, D8=>mdout1_8_3, - D9=>mdout1_9_3, D10=>mdout1_10_3, D11=>mdout1_11_3, - D12=>mdout1_12_3, D13=>mdout1_13_3, D14=>mdout1_14_3, - D15=>mdout1_15_3, D16=>mdout1_16_3, D17=>mdout1_17_3, - D18=>mdout1_18_3, D19=>mdout1_19_3, D20=>mdout1_20_3, - D21=>mdout1_21_3, D22=>mdout1_22_3, D23=>mdout1_23_3, - D24=>mdout1_24_3, D25=>mdout1_25_3, D26=>mdout1_26_3, - D27=>mdout1_27_3, D28=>mdout1_28_3, D29=>mdout1_29_3, - D30=>mdout1_30_3, D31=>mdout1_31_3, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(3)); - - mux_4: MUX321 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, D4=>mdout1_4_4, D5=>mdout1_5_4, - D6=>mdout1_6_4, D7=>mdout1_7_4, D8=>mdout1_8_4, - D9=>mdout1_9_4, D10=>mdout1_10_4, D11=>mdout1_11_4, - D12=>mdout1_12_4, D13=>mdout1_13_4, D14=>mdout1_14_4, - D15=>mdout1_15_4, D16=>mdout1_16_4, D17=>mdout1_17_4, - D18=>mdout1_18_4, D19=>mdout1_19_4, D20=>mdout1_20_4, - D21=>mdout1_21_4, D22=>mdout1_22_4, D23=>mdout1_23_4, - D24=>mdout1_24_4, D25=>mdout1_25_4, D26=>mdout1_26_4, - D27=>mdout1_27_4, D28=>mdout1_28_4, D29=>mdout1_29_4, - D30=>mdout1_30_4, D31=>mdout1_31_4, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(4)); - - mux_3: MUX321 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, D4=>mdout1_4_5, D5=>mdout1_5_5, - D6=>mdout1_6_5, D7=>mdout1_7_5, D8=>mdout1_8_5, - D9=>mdout1_9_5, D10=>mdout1_10_5, D11=>mdout1_11_5, - D12=>mdout1_12_5, D13=>mdout1_13_5, D14=>mdout1_14_5, - D15=>mdout1_15_5, D16=>mdout1_16_5, D17=>mdout1_17_5, - D18=>mdout1_18_5, D19=>mdout1_19_5, D20=>mdout1_20_5, - D21=>mdout1_21_5, D22=>mdout1_22_5, D23=>mdout1_23_5, - D24=>mdout1_24_5, D25=>mdout1_25_5, D26=>mdout1_26_5, - D27=>mdout1_27_5, D28=>mdout1_28_5, D29=>mdout1_29_5, - D30=>mdout1_30_5, D31=>mdout1_31_5, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(5)); - - mux_2: MUX321 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, D4=>mdout1_4_6, D5=>mdout1_5_6, - D6=>mdout1_6_6, D7=>mdout1_7_6, D8=>mdout1_8_6, - D9=>mdout1_9_6, D10=>mdout1_10_6, D11=>mdout1_11_6, - D12=>mdout1_12_6, D13=>mdout1_13_6, D14=>mdout1_14_6, - D15=>mdout1_15_6, D16=>mdout1_16_6, D17=>mdout1_17_6, - D18=>mdout1_18_6, D19=>mdout1_19_6, D20=>mdout1_20_6, - D21=>mdout1_21_6, D22=>mdout1_22_6, D23=>mdout1_23_6, - D24=>mdout1_24_6, D25=>mdout1_25_6, D26=>mdout1_26_6, - D27=>mdout1_27_6, D28=>mdout1_28_6, D29=>mdout1_29_6, - D30=>mdout1_30_6, D31=>mdout1_31_6, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(6)); - - mux_1: MUX321 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, D4=>mdout1_4_7, D5=>mdout1_5_7, - D6=>mdout1_6_7, D7=>mdout1_7_7, D8=>mdout1_8_7, - D9=>mdout1_9_7, D10=>mdout1_10_7, D11=>mdout1_11_7, - D12=>mdout1_12_7, D13=>mdout1_13_7, D14=>mdout1_14_7, - D15=>mdout1_15_7, D16=>mdout1_16_7, D17=>mdout1_17_7, - D18=>mdout1_18_7, D19=>mdout1_19_7, D20=>mdout1_20_7, - D21=>mdout1_21_7, D22=>mdout1_22_7, D23=>mdout1_23_7, - D24=>mdout1_24_7, D25=>mdout1_25_7, D26=>mdout1_26_7, - D27=>mdout1_27_7, D28=>mdout1_28_7, D29=>mdout1_29_7, - D30=>mdout1_30_7, D31=>mdout1_31_7, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(7)); - - mux_0: MUX321 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, D2=>mdout1_2_8, - D3=>mdout1_3_8, D4=>mdout1_4_8, D5=>mdout1_5_8, - D6=>mdout1_6_8, D7=>mdout1_7_8, D8=>mdout1_8_8, - D9=>mdout1_9_8, D10=>mdout1_10_8, D11=>mdout1_11_8, - D12=>mdout1_12_8, D13=>mdout1_13_8, D14=>mdout1_14_8, - D15=>mdout1_15_8, D16=>mdout1_16_8, D17=>mdout1_17_8, - D18=>mdout1_18_8, D19=>mdout1_19_8, D20=>mdout1_20_8, - D21=>mdout1_21_8, D22=>mdout1_22_8, D23=>mdout1_23_8, - D24=>mdout1_24_8, D25=>mdout1_25_8, D26=>mdout1_26_8, - D27=>mdout1_27_8, D28=>mdout1_28_8, D29=>mdout1_29_8, - D30=>mdout1_30_8, D31=>mdout1_31_8, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(8)); - - wcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wcount_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_2, S0=>open, - S1=>wcnt_sub_0); - - wcnt_1: FSUB2B - port map (A0=>wcount_1, A1=>wcount_2, B0=>rcount_w2, - B1=>rcount_w3, BI=>co0_2, BOUT=>co1_2, S0=>wcnt_sub_1, - S1=>wcnt_sub_2); - - wcnt_2: FSUB2B - port map (A0=>wcount_3, A1=>wcount_4, B0=>rcount_w4, - B1=>rcount_w5, BI=>co1_2, BOUT=>co2_2, S0=>wcnt_sub_3, - S1=>wcnt_sub_4); - - wcnt_3: FSUB2B - port map (A0=>wcount_5, A1=>wcount_6, B0=>rcount_w6, - B1=>rcount_w7, BI=>co2_2, BOUT=>co3_2, S0=>wcnt_sub_5, - S1=>wcnt_sub_6); - - wcnt_4: FSUB2B - port map (A0=>wcount_7, A1=>wcount_8, B0=>rcount_w8, - B1=>rcount_w9, BI=>co3_2, BOUT=>co4_2, S0=>wcnt_sub_7, - S1=>wcnt_sub_8); - - wcnt_5: FSUB2B - port map (A0=>wcount_9, A1=>wcount_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_2, BOUT=>co5_2, S0=>wcnt_sub_9, - S1=>wcnt_sub_10); - - wcnt_6: FSUB2B - port map (A0=>wcount_11, A1=>wcount_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_2, BOUT=>co6_2, - S0=>wcnt_sub_11, S1=>wcnt_sub_12); - - wcnt_7: FSUB2B - port map (A0=>wcount_13, A1=>wcount_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_2, BOUT=>co7_2, S0=>wcnt_sub_13, - S1=>wcnt_sub_14); - - wcnt_8: FSUB2B - port map (A0=>wcnt_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_2, BOUT=>open, S0=>wcnt_sub_15, - S1=>open); - - rcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rcount_0, BI=>scuba_vlo, BOUT=>co0_3, S0=>open, - S1=>rcnt_sub_0); - - rcnt_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rcount_1, - B1=>rcount_2, BI=>co0_3, BOUT=>co1_3, S0=>rcnt_sub_1, - S1=>rcnt_sub_2); - - rcnt_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rcount_3, - B1=>rcount_4, BI=>co1_3, BOUT=>co2_3, S0=>rcnt_sub_3, - S1=>rcnt_sub_4); - - rcnt_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rcount_5, - B1=>rcount_6, BI=>co2_3, BOUT=>co3_3, S0=>rcnt_sub_5, - S1=>rcnt_sub_6); - - rcnt_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rcount_7, - B1=>rcount_8, BI=>co3_3, BOUT=>co4_3, S0=>rcnt_sub_7, - S1=>rcnt_sub_8); - - rcnt_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rcount_9, - B1=>rcount_10, BI=>co4_3, BOUT=>co5_3, S0=>rcnt_sub_9, - S1=>rcnt_sub_10); - - rcnt_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rcount_11, - B1=>rcount_12, BI=>co5_3, BOUT=>co6_3, S0=>rcnt_sub_11, - S1=>rcnt_sub_12); - - rcnt_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rcount_13, - B1=>rcount_14, BI=>co6_3, BOUT=>co7_3, S0=>rcnt_sub_13, - S1=>rcnt_sub_14); - - rcnt_8: FSUB2B - port map (A0=>wcount_r14, A1=>rcnt_sub_msb, B0=>rcount_15, - B1=>scuba_vlo, BI=>co7_3, BOUT=>co8_1, S0=>rcnt_sub_15, - S1=>rcnt_sub_16); - - rcntd: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_1, COUT=>open, S0=>co8_1d, S1=>open); - - wfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wptr_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_4, S0=>open, - S1=>wfill_sub_0); - - wfill_1: FSUB2B - port map (A0=>wptr_1, A1=>wptr_2, B0=>rcount_w2, B1=>rcount_w3, - BI=>co0_4, BOUT=>co1_4, S0=>wfill_sub_1, S1=>wfill_sub_2); - - wfill_2: FSUB2B - port map (A0=>wptr_3, A1=>wptr_4, B0=>rcount_w4, B1=>rcount_w5, - BI=>co1_4, BOUT=>co2_4, S0=>wfill_sub_3, S1=>wfill_sub_4); - - wfill_3: FSUB2B - port map (A0=>wptr_5, A1=>wptr_6, B0=>rcount_w6, B1=>rcount_w7, - BI=>co2_4, BOUT=>co3_4, S0=>wfill_sub_5, S1=>wfill_sub_6); - - wfill_4: FSUB2B - port map (A0=>wptr_7, A1=>wptr_8, B0=>rcount_w8, B1=>rcount_w9, - BI=>co3_4, BOUT=>co4_4, S0=>wfill_sub_7, S1=>wfill_sub_8); - - wfill_5: FSUB2B - port map (A0=>wptr_9, A1=>wptr_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_4, BOUT=>co5_4, S0=>wfill_sub_9, - S1=>wfill_sub_10); - - wfill_6: FSUB2B - port map (A0=>wptr_11, A1=>wptr_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_4, BOUT=>co6_4, - S0=>wfill_sub_11, S1=>wfill_sub_12); - - wfill_7: FSUB2B - port map (A0=>wptr_13, A1=>wptr_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_4, BOUT=>co7_4, S0=>wfill_sub_13, - S1=>wfill_sub_14); - - wfill_8: FSUB2B - port map (A0=>wfill_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_4, BOUT=>open, S0=>wfill_sub_15, - S1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - rfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rptr_0, BI=>scuba_vlo, BOUT=>co0_5, S0=>open, - S1=>rfill_sub_0); - - rfill_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rptr_1, B1=>rptr_2, - BI=>co0_5, BOUT=>co1_5, S0=>rfill_sub_1, S1=>rfill_sub_2); - - rfill_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rptr_3, B1=>rptr_4, - BI=>co1_5, BOUT=>co2_5, S0=>rfill_sub_3, S1=>rfill_sub_4); - - rfill_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rptr_5, B1=>rptr_6, - BI=>co2_5, BOUT=>co3_5, S0=>rfill_sub_5, S1=>rfill_sub_6); - - rfill_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rptr_7, B1=>rptr_8, - BI=>co3_5, BOUT=>co4_5, S0=>rfill_sub_7, S1=>rfill_sub_8); - - rfill_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rptr_9, B1=>rptr_10, - BI=>co4_5, BOUT=>co5_5, S0=>rfill_sub_9, S1=>rfill_sub_10); - - rfill_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rptr_11, - B1=>rptr_12, BI=>co5_5, BOUT=>co6_5, S0=>rfill_sub_11, - S1=>rfill_sub_12); - - rfill_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rptr_13, - B1=>rptr_14, BI=>co6_5, BOUT=>co7_5, S0=>rfill_sub_13, - S1=>rfill_sub_14); - - rfill_8: FSUB2B - port map (A0=>wcount_r14, A1=>rfill_sub_msb, B0=>rptr_15, - B1=>scuba_vlo, BI=>co7_5, BOUT=>co8_2, S0=>rfill_sub_15, - S1=>rfill_sub_16); - - rfilld: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_2, COUT=>open, S0=>co8_2d, S1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_6); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_6, GE=>co1_6); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_6, GE=>co2_6); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_6, GE=>co3_6); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r7, - B1=>wcount_r8, CI=>co3_6, GE=>co4_6); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r9, - B1=>wcount_r10, CI=>co4_6, GE=>co5_6); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r11, - B1=>w_g2b_xor_cluster_0, CI=>co5_6, GE=>co6_6); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r13, - B1=>wcount_r14, CI=>co6_6, GE=>co7_6); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_6, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_7); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_7, GE=>co1_7); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_7, GE=>co2_7); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>rcount_w8, CI=>co2_7, GE=>co3_7); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, - B1=>rcount_w10, CI=>co3_7, GE=>co4_7); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w11, - B1=>rcount_w12, CI=>co4_7, GE=>co5_7); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w14, CI=>co5_7, GE=>co6_7); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>full_cmp_set, B0=>rcount_w15, - B1=>full_cmp_clr, CI=>co6_7, GE=>full_d_c); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - ae_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci_2, S0=>open, S1=>open); - - ae_cmp_0: AGEB2 - port map (A0=>AmEmptyThresh(0), A1=>AmEmptyThresh(1), - B0=>rcnt_reg_0, B1=>rcnt_reg_1, CI=>cmp_ci_2, GE=>co0_8); - - ae_cmp_1: AGEB2 - port map (A0=>AmEmptyThresh(2), A1=>AmEmptyThresh(3), - B0=>rcnt_reg_2, B1=>rcnt_reg_3, CI=>co0_8, GE=>co1_8); - - ae_cmp_2: AGEB2 - port map (A0=>AmEmptyThresh(4), A1=>AmEmptyThresh(5), - B0=>rcnt_reg_4, B1=>rcnt_reg_5, CI=>co1_8, GE=>co2_8); - - ae_cmp_3: AGEB2 - port map (A0=>AmEmptyThresh(6), A1=>AmEmptyThresh(7), - B0=>rcnt_reg_6, B1=>rcnt_reg_7, CI=>co2_8, GE=>co3_8); - - ae_cmp_4: AGEB2 - port map (A0=>AmEmptyThresh(8), A1=>AmEmptyThresh(9), - B0=>rcnt_reg_8, B1=>rcnt_reg_9, CI=>co3_8, GE=>co4_8); - - ae_cmp_5: AGEB2 - port map (A0=>AmEmptyThresh(10), A1=>AmEmptyThresh(11), - B0=>rcnt_reg_10, B1=>rcnt_reg_11, CI=>co4_8, GE=>co5_8); - - ae_cmp_6: AGEB2 - port map (A0=>AmEmptyThresh(12), A1=>AmEmptyThresh(13), - B0=>rcnt_reg_12, B1=>rcnt_reg_13, CI=>co5_8, GE=>co6_8); - - ae_cmp_7: AGEB2 - port map (A0=>AmEmptyThresh(14), A1=>AmEmptyThresh(15), - B0=>rcnt_reg_14, B1=>rcnt_reg_15, CI=>co6_8, GE=>co7_7); - - ae_cmp_8: AGEB2 - port map (A0=>ae_setsig, A1=>scuba_vlo, B0=>ae_clrsig, - B1=>scuba_vlo, CI=>co7_7, GE=>ae_d_c); - - a2: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>ae_d_c, COUT=>open, S0=>ae_d, S1=>open); - - af_d_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_3, S0=>open, S1=>open); - - af_d_cmp_0: AGEB2 - port map (A0=>wcnt_reg_0, A1=>wcnt_reg_1, B0=>AmFullThresh(0), - B1=>AmFullThresh(1), CI=>cmp_ci_3, GE=>co0_9); - - af_d_cmp_1: AGEB2 - port map (A0=>wcnt_reg_2, A1=>wcnt_reg_3, B0=>AmFullThresh(2), - B1=>AmFullThresh(3), CI=>co0_9, GE=>co1_9); - - af_d_cmp_2: AGEB2 - port map (A0=>wcnt_reg_4, A1=>wcnt_reg_5, B0=>AmFullThresh(4), - B1=>AmFullThresh(5), CI=>co1_9, GE=>co2_9); - - af_d_cmp_3: AGEB2 - port map (A0=>wcnt_reg_6, A1=>wcnt_reg_7, B0=>AmFullThresh(6), - B1=>AmFullThresh(7), CI=>co2_9, GE=>co3_9); - - af_d_cmp_4: AGEB2 - port map (A0=>wcnt_reg_8, A1=>wcnt_reg_9, B0=>AmFullThresh(8), - B1=>AmFullThresh(9), CI=>co3_9, GE=>co4_9); - - af_d_cmp_5: AGEB2 - port map (A0=>wcnt_reg_10, A1=>wcnt_reg_11, B0=>AmFullThresh(10), - B1=>AmFullThresh(11), CI=>co4_9, GE=>co5_9); - - af_d_cmp_6: AGEB2 - port map (A0=>wcnt_reg_12, A1=>wcnt_reg_13, B0=>AmFullThresh(12), - B1=>AmFullThresh(13), CI=>co5_9, GE=>co6_9); - - af_d_cmp_7: AGEB2 - port map (A0=>wcnt_reg_14, A1=>wcnt_reg_15, B0=>AmFullThresh(14), - B1=>scuba_vlo, CI=>co6_9, GE=>af_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a3: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>af_d_c, COUT=>open, S0=>af_d, S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_32kx16x8_mb2 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FSUB2B use entity ecp3.FSUB2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX321 use entity ecp3.MUX321(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2_generate.log b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2_generate.log deleted file mode 100644 index eceede3..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:22:54 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_32kx16x8_mb2 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 15 -data_width 18 -num_words 32768 -rdata_width 9 -no_enable -pe 0 -pf 0 -rfill -fill -e - Circuit name : fifo_32kx16x8_mb2 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[17:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[8:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_32kx16x8_mb2.vhd - VHDL template : fifo_32kx16x8_mb2_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb2_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb2.srp - Estimated Resource Usage: - LUT : 491 - EBR : 32 - Reg : 240 - -END SCUBA Module Synthesis - -File: fifo_32kx16x8_mb2.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2_tmpl.vhd b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2_tmpl.vhd deleted file mode 100644 index 041890c..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb2_tmpl.vhd +++ /dev/null @@ -1,26 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:22:54 2011 - --- parameterized module component declaration -component fifo_32kx16x8_mb2 - port (Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(8 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_32kx16x8_mb2 - port map (Data(17 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, AmEmptyThresh(15 downto 0)=>__, - AmFullThresh(14 downto 0)=>__, Q(8 downto 0)=>__, WCNT(15 downto 0)=>__, - RCNT(16 downto 0)=>__, Empty=>__, Full=>__, AlmostEmpty=>__, - AlmostFull=>__); diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb_generate.log b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb_generate.log deleted file mode 100755 index 4dfc957..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb_generate.log +++ /dev/null @@ -1,46 +0,0 @@ -Starting process: - -SCUBA, Version ispLever_v8.0_PROD_Build (41) -Fri Feb 05 16:48:12 2010 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2009 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : X:\Programme\ispTOOLS_80\ispfpga\bin\nt\scuba.exe -w -n fifo_32kx16x8_mb -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 15 -data_width 16 -num_words 32768 -rdata_width 8 -no_enable -pe 0 -pf 0 -rfill -fill -e - Circuit name : fifo_32kx16x8_mb - Module type : ebfifo - Module Version : 5.3 - Ports : - Inputs : Data[15:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[7:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_32kx16x8_mb.vhd - VHDL template : fifo_32kx16x8_mb_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb.srp - Estimated Resource Usage: - LUT : 299 - EBR : 32 - Reg : 237 - -END SCUBA Module Synthesis - -File: .\ipexpress\fifo_32kx16x8_mb\fifo_32kx16x8_mb.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb_tmpl.vhd b/gbe2_ecp3/ipcores/fifo_32kx16x8_mb_tmpl.vhd deleted file mode 100755 index a84a110..0000000 --- a/gbe2_ecp3/ipcores/fifo_32kx16x8_mb_tmpl.vhd +++ /dev/null @@ -1,26 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:22:35 2011 - --- parameterized module component declaration -component fifo_32kx16x8_mb - port (Data: in std_logic_vector(15 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(7 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_32kx16x8_mb - port map (Data(15 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, AmEmptyThresh(15 downto 0)=>__, - AmFullThresh(14 downto 0)=>__, Q(7 downto 0)=>__, WCNT(15 downto 0)=>__, - RCNT(16 downto 0)=>__, Empty=>__, Full=>__, AlmostEmpty=>__, - AlmostFull=>__); diff --git a/gbe2_ecp3/ipcores/fifo_4096x32.jhd b/gbe2_ecp3/ipcores/fifo_4096x32.jhd deleted file mode 100755 index d87350d..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x32.jhd +++ /dev/null @@ -1,479 +0,0 @@ -MODULE fifo_4096x32 DEFIN fifo_4096x32.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3BX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3DX - INSTANCE FF_116 - SUBMODULE FD1P3DX - INSTANCE FF_117 - SUBMODULE FD1P3DX - INSTANCE FF_118 - SUBMODULE FD1P3DX - INSTANCE FF_119 - SUBMODULE FD1P3DX - INSTANCE FF_120 - SUBMODULE FD1P3DX - INSTANCE FF_121 - SUBMODULE FD1P3DX - INSTANCE FF_122 - SUBMODULE FD1P3DX - INSTANCE FF_123 - SUBMODULE FD1P3DX - INSTANCE FF_124 - SUBMODULE FD1P3DX - INSTANCE FF_125 - SUBMODULE FD1P3DX - INSTANCE FF_126 - SUBMODULE FD1P3DX - INSTANCE FF_127 - SUBMODULE FD1P3DX - INSTANCE FF_128 - SUBMODULE FD1P3DX - INSTANCE FF_129 - SUBMODULE FD1P3DX - INSTANCE FF_130 - SUBMODULE FD1P3BX - INSTANCE FF_131 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_7_0 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_6_1 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_5_2 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_4_3 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_3_4 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_2_5 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_1_6 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_0_7 - SUBMODULE ROM16X1 - INSTANCE LUT4_0 - SUBMODULE ROM16X1 - INSTANCE LUT4_1 - SUBMODULE ROM16X1 - INSTANCE LUT4_2 - SUBMODULE ROM16X1 - INSTANCE LUT4_3 - SUBMODULE ROM16X1 - INSTANCE LUT4_4 - SUBMODULE ROM16X1 - INSTANCE LUT4_5 - SUBMODULE ROM16X1 - INSTANCE LUT4_6 - SUBMODULE ROM16X1 - INSTANCE LUT4_7 - SUBMODULE ROM16X1 - INSTANCE LUT4_8 - SUBMODULE ROM16X1 - INSTANCE LUT4_9 - SUBMODULE ROM16X1 - INSTANCE LUT4_10 - SUBMODULE ROM16X1 - INSTANCE LUT4_11 - SUBMODULE ROM16X1 - INSTANCE LUT4_12 - SUBMODULE ROM16X1 - INSTANCE LUT4_13 - SUBMODULE ROM16X1 - INSTANCE LUT4_14 - SUBMODULE ROM16X1 - INSTANCE LUT4_15 - SUBMODULE ROM16X1 - INSTANCE LUT4_16 - SUBMODULE ROM16X1 - INSTANCE LUT4_17 - SUBMODULE ROM16X1 - INSTANCE LUT4_18 - SUBMODULE ROM16X1 - INSTANCE LUT4_19 - SUBMODULE ROM16X1 - INSTANCE LUT4_20 - SUBMODULE ROM16X1 - INSTANCE LUT4_21 - SUBMODULE ROM16X1 - INSTANCE LUT4_22 - SUBMODULE ROM16X1 - INSTANCE LUT4_23 - SUBMODULE ROM16X1 - INSTANCE LUT4_24 - SUBMODULE ROM16X1 - INSTANCE LUT4_25 - SUBMODULE ROM16X1 - INSTANCE LUT4_26 - SUBMODULE ROM16X1 - INSTANCE LUT4_27 - SUBMODULE ROM16X1 - INSTANCE LUT4_28 - SUBMODULE ROM16X1 - INSTANCE LUT4_29 - SUBMODULE ROM16X1 - INSTANCE LUT4_30 - SUBMODULE ROM16X1 - INSTANCE LUT4_31 - SUBMODULE ROM16X1 - INSTANCE LUT4_32 - SUBMODULE ROM16X1 - INSTANCE LUT4_33 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE OR2 - INSTANCE OR2_t24 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t25 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t26 diff --git a/gbe2_ecp3/ipcores/fifo_4096x32.lpc b/gbe2_ecp3/ipcores/fifo_4096x32.lpc deleted file mode 100755 index 39ae0d7..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x32.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_4096x32 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:24:15 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=4096 -Width=32 -RDepth=4096 -RWidth=32 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_4096x32.naf b/gbe2_ecp3/ipcores/fifo_4096x32.naf deleted file mode 100755 index 7174bad..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x32.naf +++ /dev/null @@ -1,72 +0,0 @@ -Data[31] i -Data[30] i -Data[29] i -Data[28] i -Data[27] i -Data[26] i -Data[25] i -Data[24] i -Data[23] i -Data[22] i -Data[21] i -Data[20] i -Data[19] i -Data[18] i -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[31] o -Q[30] o -Q[29] o -Q[28] o -Q[27] o -Q[26] o -Q[25] o -Q[24] o -Q[23] o -Q[22] o -Q[21] o -Q[20] o -Q[19] o -Q[18] o -Q[17] o -Q[16] o -Q[15] o -Q[14] o -Q[13] o -Q[12] o -Q[11] o -Q[10] o -Q[9] o -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores/fifo_4096x32.srp b/gbe2_ecp3/ipcores/fifo_4096x32.srp deleted file mode 100755 index 5b60728..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x32.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version ispLever_v8.0_PROD_Build (41) -Fri Dec 18 03:02:30 2009 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2009 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/ispLEVER8.0/isptools/ispfpga/bin/lin/scuba -w -n fifo_4096x32 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 12 -data_width 32 -num_words 4096 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_4096x32 - Module type : ebfifo - Module Version : 5.3 - Ports : - Inputs : Data[31:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[31:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_4096x32.vhd - VHDL template : fifo_4096x32_tmpl.vhd - VHDL testbench : tb_fifo_4096x32_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_4096x32.srp - Element Usage : - AGEB2 : 14 - AND2 : 2 - CU2 : 14 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 76 - FD1S3BX : 1 - FD1S3DX : 53 - INV : 2 - OR2 : 1 - ROM16X1 : 34 - XOR2 : 24 - DP16KB : 8 - Estimated Resource Usage: - LUT : 129 - EBR : 8 - Reg : 132 diff --git a/gbe2_ecp3/ipcores/fifo_4096x32.sym b/gbe2_ecp3/ipcores/fifo_4096x32.sym deleted file mode 100755 index aa8beace15d07f89e24426d73654238c0a890d76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmX|-u}i~17{%X5Q;Q;!!9O5F2XTs41dBt#q_`PFrJ#rw(}I|`p+=}%DbAA7!NI}7 zK_r8NZpGOlgR^vW?Cj*rrFFQw$M4;}@B8k#?&$6J9DrBRxC0}phyg=P0hXjpQo$;U z7R7?q2pdPGwX%5(I0O-_%qh6uj^91IfJd6(Fr%95*&U!yHbEz2dAE7l3~@`Q%W(GE z$><|#fV(NJ_p;14(ikt(%z7`){9>OmK2WTF0(rX~gx9~&?i{OFjX@y;-W7SDb z=E(;t{ggbN&fxNup1@#NeWerX1UE{@)G;EZBkBnEN(a;do|u{bzQM)M=Ly!R$R7qf BQi}ip diff --git a/gbe2_ecp3/ipcores/fifo_4096x32.vhd b/gbe2_ecp3/ipcores/fifo_4096x32.vhd deleted file mode 100755 index 2f52ee4..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x32.vhd +++ /dev/null @@ -1,1803 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 4096 -width 32 -depth 4096 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:24:15 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_4096x32 is - port ( - Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_4096x32; - -architecture Structure of fifo_4096x32 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal co6: std_logic; - signal wcount_12: std_logic; - signal co5: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal co6_1: std_logic; - signal rcount_12: std_logic; - signal co5_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_7 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_7 : label is ""; - attribute RESETMODE of pdp_ram_0_0_7 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_1_6 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_6 : label is ""; - attribute RESETMODE of pdp_ram_0_1_6 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_2_5 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_5 : label is ""; - attribute RESETMODE of pdp_ram_0_2_5 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_3_4 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_4 : label is ""; - attribute RESETMODE of pdp_ram_0_3_4 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_4_3 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_3 : label is ""; - attribute RESETMODE of pdp_ram_0_4_3 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_5_2 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_2 : label is ""; - attribute RESETMODE of pdp_ram_0_5_2 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_6_1 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_1 : label is ""; - attribute RESETMODE of pdp_ram_0_6_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_7_0 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_0 : label is ""; - attribute RESETMODE of pdp_ram_0_7_0 : label is "SYNC"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t26: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t25: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t24: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t23: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t22: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t21: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t20: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t19: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t18: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t17: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t16: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t15: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t14: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t13: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t12: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t11: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t10: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t9: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t8: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t7: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t6: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t5: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t4: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t3: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t2: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t1: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t0: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_0); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_1); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_2); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r11); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>wcount_r11, DO0=>wcount_r8); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r6); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r24, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, DO0=>wcount_r3); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r20, DO0=>wcount_r0); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_1); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w11); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_7: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), - DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>open, DOB5=>open, - DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_1_6: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(4), DIA1=>Data(5), DIA2=>Data(6), - DIA3=>Data(7), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(4), - DOB1=>Q(5), DOB2=>Q(6), DOB3=>Q(7), DOB4=>open, DOB5=>open, - DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_2_5: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(8), DIA1=>Data(9), DIA2=>Data(10), - DIA3=>Data(11), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(8), - DOB1=>Q(9), DOB2=>Q(10), DOB3=>Q(11), DOB4=>open, DOB5=>open, - DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_3_4: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(12), DIA1=>Data(13), DIA2=>Data(14), - DIA3=>Data(15), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(12), - DOB1=>Q(13), DOB2=>Q(14), DOB3=>Q(15), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_4_3: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(16), DIA1=>Data(17), DIA2=>Data(18), - DIA3=>Data(19), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(16), - DOB1=>Q(17), DOB2=>Q(18), DOB3=>Q(19), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_5_2: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(20), DIA1=>Data(21), DIA2=>Data(22), - DIA3=>Data(23), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(20), - DOB1=>Q(21), DOB2=>Q(22), DOB3=>Q(23), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_6_1: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(24), DIA1=>Data(25), DIA2=>Data(26), - DIA3=>Data(27), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(24), - DOB1=>Q(25), DOB2=>Q(26), DOB3=>Q(27), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_7_0: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(28), DIA1=>Data(29), DIA2=>Data(30), - DIA3=>Data(31), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(28), - DOB1=>Q(29), DOB2=>Q(30), DOB3=>Q(31), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_131: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_130: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_129: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_128: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_127: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_126: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_125: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_124: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_123: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_122: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_121: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_120: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_119: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_118: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_117: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_116: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_115: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_114: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_113: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_112: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_111: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_110: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_109: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_108: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_107: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_106: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_105: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_104: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_103: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_102: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_101: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_100: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_99: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_98: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_97: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_96: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_95: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_94: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_93: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_92: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_91: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_90: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_89: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_88: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_87: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_86: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_85: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_84: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_83: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_82: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_81: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_80: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_79: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_78: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_77: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_76: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_75: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_74: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_73: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_72: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_71: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_70: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_69: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_68: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_67: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_66: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_65: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_64: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_63: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_62: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_61: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_60: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_59: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_58: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_57: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_56: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_55: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_54: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_53: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_52: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_51: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_50: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_49: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_48: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_47: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_46: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_45: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_44: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_43: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_42: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_41: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_40: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_39: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_38: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_37: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_36: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_35: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_34: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_33: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_32: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_31: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_30: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_29: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_28: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_27: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_26: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_25: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_24: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_23: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_22: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_21: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_20: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_19: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_18: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_17: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_16: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_15: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_14: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_13: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_12: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_11: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_10: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_9: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_8: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_7: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_6: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_5: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_4: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_3: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_2: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>scuba_vlo, CO=>co6, - NC0=>iwcount_12, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6_1, - NC0=>ircount_12, NC1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>r_g2b_xor_cluster_0, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co5_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_4096x32 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_4096x32_generate.log b/gbe2_ecp3/ipcores/fifo_4096x32_generate.log deleted file mode 100755 index ad8aeeb..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x32_generate.log +++ /dev/null @@ -1,46 +0,0 @@ -Starting process: - -SCUBA, Version ispLever_v8.0_PROD_Build (41) -Fri Dec 18 03:02:30 2009 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2009 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/ispLEVER8.0/isptools/ispfpga/bin/lin/scuba -w -n fifo_4096x32 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 12 -data_width 32 -num_words 4096 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_4096x32 - Module type : ebfifo - Module Version : 5.3 - Ports : - Inputs : Data[31:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[31:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_4096x32.vhd - VHDL template : fifo_4096x32_tmpl.vhd - VHDL testbench : tb_fifo_4096x32_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_4096x32.srp - Estimated Resource Usage: - LUT : 129 - EBR : 8 - Reg : 132 - -END SCUBA Module Synthesis - -File: fifo_4096x32.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/fifo_4096x32_tmpl.vhd b/gbe2_ecp3/ipcores/fifo_4096x32_tmpl.vhd deleted file mode 100755 index f26714f..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x32_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:24:15 2011 - --- parameterized module component declaration -component fifo_4096x32 - port (Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_4096x32 - port map (Data(31 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(31 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores/fifo_4096x9.jhd b/gbe2_ecp3/ipcores/fifo_4096x9.jhd deleted file mode 100755 index f8c1e39..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x9.jhd +++ /dev/null @@ -1,487 +0,0 @@ -MODULE fifo_4096x9 DEFIN fifo_4096x9.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE MUX21 - INSTANCE mux_0 - SUBMODULE MUX21 - INSTANCE mux_1 - SUBMODULE MUX21 - INSTANCE mux_2 - SUBMODULE MUX21 - INSTANCE mux_3 - SUBMODULE MUX21 - INSTANCE mux_4 - SUBMODULE MUX21 - INSTANCE mux_5 - SUBMODULE MUX21 - INSTANCE mux_6 - SUBMODULE MUX21 - INSTANCE mux_7 - SUBMODULE MUX21 - INSTANCE mux_8 - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3BX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3DX - INSTANCE FF_116 - SUBMODULE FD1P3DX - INSTANCE FF_117 - SUBMODULE FD1P3DX - INSTANCE FF_118 - SUBMODULE FD1P3DX - INSTANCE FF_119 - SUBMODULE FD1P3DX - INSTANCE FF_120 - SUBMODULE FD1P3DX - INSTANCE FF_121 - SUBMODULE FD1P3DX - INSTANCE FF_122 - SUBMODULE FD1P3DX - INSTANCE FF_123 - SUBMODULE FD1P3DX - INSTANCE FF_124 - SUBMODULE FD1P3DX - INSTANCE FF_125 - SUBMODULE FD1P3DX - INSTANCE FF_126 - SUBMODULE FD1P3DX - INSTANCE FF_127 - SUBMODULE FD1P3DX - INSTANCE FF_128 - SUBMODULE FD1P3DX - INSTANCE FF_129 - SUBMODULE FD1P3DX - INSTANCE FF_130 - SUBMODULE FD1P3DX - INSTANCE FF_131 - SUBMODULE FD1P3BX - INSTANCE FF_132 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_0_0 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_0_1 - SUBMODULE ROM16X1 - INSTANCE LUT4_0 - SUBMODULE ROM16X1 - INSTANCE LUT4_1 - SUBMODULE ROM16X1 - INSTANCE LUT4_2 - SUBMODULE ROM16X1 - INSTANCE LUT4_3 - SUBMODULE ROM16X1 - INSTANCE LUT4_4 - SUBMODULE ROM16X1 - INSTANCE LUT4_5 - SUBMODULE ROM16X1 - INSTANCE LUT4_6 - SUBMODULE ROM16X1 - INSTANCE LUT4_7 - SUBMODULE ROM16X1 - INSTANCE LUT4_8 - SUBMODULE ROM16X1 - INSTANCE LUT4_9 - SUBMODULE ROM16X1 - INSTANCE LUT4_10 - SUBMODULE ROM16X1 - INSTANCE LUT4_11 - SUBMODULE ROM16X1 - INSTANCE LUT4_12 - SUBMODULE ROM16X1 - INSTANCE LUT4_13 - SUBMODULE ROM16X1 - INSTANCE LUT4_14 - SUBMODULE ROM16X1 - INSTANCE LUT4_15 - SUBMODULE ROM16X1 - INSTANCE LUT4_16 - SUBMODULE ROM16X1 - INSTANCE LUT4_17 - SUBMODULE ROM16X1 - INSTANCE LUT4_18 - SUBMODULE ROM16X1 - INSTANCE LUT4_19 - SUBMODULE ROM16X1 - INSTANCE LUT4_20 - SUBMODULE ROM16X1 - INSTANCE LUT4_21 - SUBMODULE ROM16X1 - INSTANCE LUT4_22 - SUBMODULE ROM16X1 - INSTANCE LUT4_23 - SUBMODULE ROM16X1 - INSTANCE LUT4_24 - SUBMODULE ROM16X1 - INSTANCE LUT4_25 - SUBMODULE ROM16X1 - INSTANCE LUT4_26 - SUBMODULE ROM16X1 - INSTANCE LUT4_27 - SUBMODULE ROM16X1 - INSTANCE LUT4_28 - SUBMODULE ROM16X1 - INSTANCE LUT4_29 - SUBMODULE ROM16X1 - INSTANCE LUT4_30 - SUBMODULE ROM16X1 - INSTANCE LUT4_31 - SUBMODULE ROM16X1 - INSTANCE LUT4_32 - SUBMODULE ROM16X1 - INSTANCE LUT4_33 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE OR2 - INSTANCE OR2_t24 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t25 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t26 diff --git a/gbe2_ecp3/ipcores/fifo_4096x9.lpc b/gbe2_ecp3/ipcores/fifo_4096x9.lpc deleted file mode 100755 index 6e382a8..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x9.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_4096x9 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:24:06 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=4096 -Width=9 -RDepth=4096 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_4096x9.naf b/gbe2_ecp3/ipcores/fifo_4096x9.naf deleted file mode 100755 index cc69a7a..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x9.naf +++ /dev/null @@ -1,26 +0,0 @@ -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores/fifo_4096x9.srp b/gbe2_ecp3/ipcores/fifo_4096x9.srp deleted file mode 100755 index 932dbf1..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x9.srp +++ /dev/null @@ -1,43 +0,0 @@ -SCUBA, Version ispLever_v72_SP2_Build (23) -Tue Jan 5 23:44:15 2010 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n fifo_4096x9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 12 -data_width 9 -num_words 4096 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_4096x9 - Module type : ebfifo - Module Version : 5.2 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_4096x9.vhd - VHDL template : fifo_4096x9_tmpl.vhd - VHDL testbench : tb_fifo_4096x9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_4096x9.srp - Element Usage : - AGEB2 : 14 - AND2 : 2 - CU2 : 14 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 77 - FD1S3BX : 1 - FD1S3DX : 53 - INV : 2 - MUX21 : 9 - OR2 : 1 - ROM16X1 : 34 - XOR2 : 24 - DP16KB : 2 - Estimated Resource Usage: - LUT : 138 - EBR : 2 - Reg : 133 diff --git a/gbe2_ecp3/ipcores/fifo_4096x9.sym b/gbe2_ecp3/ipcores/fifo_4096x9.sym deleted file mode 100755 index 2c39ee8f834b81731bf9e0c4b59d764d2cb3b1c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmYk2Axy(S7=_=@I>-PqfkaeP5kv(c9jbwL62<~42@o>a76^qkqY!YlBokExNeFVH z1~eMgpwY;s63OeeB#3Lje(%4RyNg53$M580&?fX?HjL!O1y}X;bVKR%>_NOW=ksgI~C6yLZ(KF`}zW^tZcJ*k{@R z52f{nMdurBf^pgD4fD=Vo-)BZjOGVWbuWVOj#EL_Lyr`|kra)1|h=6_!20%rLJ_u29b-%?P> diff --git a/gbe2_ecp3/ipcores/fifo_4096x9.vhd b/gbe2_ecp3/ipcores/fifo_4096x9.vhd deleted file mode 100755 index 75ae6c9..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x9.vhd +++ /dev/null @@ -1,1624 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 4096 -width 9 -depth 4096 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:24:06 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_4096x9 is - port ( - Data: in std_logic_vector(8 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_4096x9; - -architecture Structure of fifo_4096x9 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_12: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal co6: std_logic; - signal wcount_12: std_logic; - signal co5: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal co6_1: std_logic; - signal rcount_12: std_logic; - signal co5_1: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX21 - port (D0: in std_logic; D1: in std_logic; SD: in std_logic; - Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "fifo_4096x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute RESETMODE of pdp_ram_0_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_0_0 : label is "fifo_4096x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_0 : label is ""; - attribute RESETMODE of pdp_ram_1_0_0 : label is "SYNC"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t26: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t25: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t24: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t23: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t22: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t21: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t20: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t19: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t18: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t17: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t16: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t15: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t14: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t13: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t12: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t11: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t10: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t9: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t8: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t7: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t6: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t5: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t4: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t3: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t2: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t1: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t0: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_0); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_1); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_2); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r11); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>wcount_r11, DO0=>wcount_r8); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r6); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r24, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, DO0=>wcount_r3); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r20, DO0=>wcount_r0); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_1); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w11); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>wptr_11, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_11, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, DOB1=>mdout1_0_1, - DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, DOB4=>mdout1_0_4, - DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, DOB7=>mdout1_0_7, - DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_0: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>wptr_11, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_11, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, DOB1=>mdout1_1_1, - DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, DOB4=>mdout1_1_4, - DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, DOB7=>mdout1_1_7, - DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_132: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_131: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_130: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_129: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_128: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_127: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_126: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_125: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_124: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_123: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_122: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_121: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_120: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_119: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_118: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_117: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_116: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_115: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_114: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_113: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_112: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_111: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_110: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_109: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_108: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_107: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_106: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_105: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_104: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_103: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_102: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_101: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_100: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_99: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_98: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_97: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_96: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_95: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_94: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_93: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_92: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_91: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_90: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_89: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_88: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_87: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_86: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_85: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_84: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_83: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_82: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_81: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_80: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_79: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_78: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_77: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_76: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_75: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_74: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_73: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_72: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_71: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_70: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_69: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_68: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_67: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_66: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_65: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_64: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_63: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_62: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_61: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_60: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_59: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_58: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_57: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_56: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_55: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_54: FD1P3DX - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_53: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_52: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_51: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_50: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_49: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_48: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_47: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_46: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_45: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_44: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_43: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_42: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_41: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_40: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_39: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_38: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_37: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_36: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_35: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_34: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_33: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_32: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_31: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_30: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_29: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_28: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_27: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_26: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_25: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_24: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_23: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_22: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_21: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_20: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_19: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_18: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_17: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_16: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_15: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_14: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_13: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_12: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_11: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_10: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_9: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_8: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_7: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_6: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_5: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_4: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_3: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_2: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>scuba_vlo, CO=>co6, - NC0=>iwcount_12, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6_1, - NC0=>ircount_12, NC1=>open); - - mux_8: MUX21 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, SD=>rptr_11_ff, - Z=>Q(0)); - - mux_7: MUX21 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, SD=>rptr_11_ff, - Z=>Q(1)); - - mux_6: MUX21 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, SD=>rptr_11_ff, - Z=>Q(2)); - - mux_5: MUX21 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, SD=>rptr_11_ff, - Z=>Q(3)); - - mux_4: MUX21 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, SD=>rptr_11_ff, - Z=>Q(4)); - - mux_3: MUX21 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, SD=>rptr_11_ff, - Z=>Q(5)); - - mux_2: MUX21 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, SD=>rptr_11_ff, - Z=>Q(6)); - - mux_1: MUX21 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, SD=>rptr_11_ff, - Z=>Q(7)); - - mux_0: MUX21 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, SD=>rptr_11_ff, - Z=>Q(8)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>r_g2b_xor_cluster_0, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co5_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_4096x9 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX21 use entity ecp3.MUX21(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_4096x9_generate.log b/gbe2_ecp3/ipcores/fifo_4096x9_generate.log deleted file mode 100755 index 9df407a..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x9_generate.log +++ /dev/null @@ -1,46 +0,0 @@ -Starting process: - -SCUBA, Version ispLever_v72_SP2_Build (23) -Tue Jan 5 23:44:15 2010 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n fifo_4096x9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 12 -data_width 9 -num_words 4096 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_4096x9 - Module type : ebfifo - Module Version : 5.2 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_4096x9.vhd - VHDL template : fifo_4096x9_tmpl.vhd - VHDL testbench : tb_fifo_4096x9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_4096x9.srp - Estimated Resource Usage: - LUT : 138 - EBR : 2 - Reg : 133 - -END SCUBA Module Synthesis - -File: fifo_4096x9.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/fifo_4096x9_tmpl.vhd b/gbe2_ecp3/ipcores/fifo_4096x9_tmpl.vhd deleted file mode 100755 index 8b69bd4..0000000 --- a/gbe2_ecp3/ipcores/fifo_4096x9_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:24:06 2011 - --- parameterized module component declaration -component fifo_4096x9 - port (Data: in std_logic_vector(8 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_4096x9 - port map (Data(8 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(8 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores/fifo_512x32.lpc b/gbe2_ecp3/ipcores/fifo_512x32.lpc deleted file mode 100644 index 78c1782..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x32.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_512x32 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=05/26/2011 -Time=17:17:59 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=512 -Width=32 -RDepth=512 -RWidth=32 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_512x32.vhd b/gbe2_ecp3/ipcores/fifo_512x32.vhd deleted file mode 100644 index 583f135..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x32.vhd +++ /dev/null @@ -1,1604 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.1_Production (517) --- Module Version: 5.4 ---/opt/lattice/diamond/1.1/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 512 -width 32 -depth 512 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - --- Thu May 26 17:17:59 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_512x32 is - port ( - Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_512x32; - -architecture Structure of fifo_512x32 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co4: std_logic; - signal wcount_9: std_logic; - signal co3: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co4_1: std_logic; - signal rcount_9: std_logic; - signal co3_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_8: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_8: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component PDPW16KB - -- synopsys translate_off - generic (CSDECODE_R : in std_logic_vector(2 downto 0); - CSDECODE_W : in std_logic_vector(2 downto 0); - GSR : in String; RESETMODE : in String; - REGMODE : in String; DATA_WIDTH_R : in Integer; - DATA_WIDTH_W : in Integer); - -- synopsys translate_on - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_R : string; - attribute CSDECODE_W : string; - attribute RESETMODE : string; - attribute REGMODE : string; - attribute DATA_WIDTH_R : string; - attribute DATA_WIDTH_W : string; - attribute GSR : string; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_512x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute CSDECODE_R of pdp_ram_0_0_0 : label is "0b000"; - attribute CSDECODE_W of pdp_ram_0_0_0 : label is "0b001"; - attribute GSR of pdp_ram_0_0_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_0 : label is "ASYNC"; - attribute REGMODE of pdp_ram_0_0_0 : label is "NOREG"; - attribute DATA_WIDTH_R of pdp_ram_0_0_0 : label is "36"; - attribute DATA_WIDTH_W of pdp_ram_0_0_0 : label is "36"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t20: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: PDPW16KB - -- synopsys translate_off - generic map (CSDECODE_R=> "000", CSDECODE_W=> "001", GSR=> "DISABLED", - RESETMODE=> "ASYNC", REGMODE=> "NOREG", DATA_WIDTH_R=> 36, - DATA_WIDTH_W=> 36) - -- synopsys translate_on - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>Data(18), DI19=>Data(19), DI20=>Data(20), - DI21=>Data(21), DI22=>Data(22), DI23=>Data(23), - DI24=>Data(24), DI25=>Data(25), DI26=>Data(26), - DI27=>Data(27), DI28=>Data(28), DI29=>Data(29), - DI30=>Data(30), DI31=>Data(31), DI32=>scuba_vlo, - DI33=>scuba_vlo, DI34=>scuba_vlo, DI35=>scuba_vlo, - ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, - ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, - ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>Q(18), DO1=>Q(19), DO2=>Q(20), DO3=>Q(21), - DO4=>Q(22), DO5=>Q(23), DO6=>Q(24), DO7=>Q(25), DO8=>Q(26), - DO9=>Q(27), DO10=>Q(28), DO11=>Q(29), DO12=>Q(30), - DO13=>Q(31), DO14=>open, DO15=>open, DO16=>open, DO17=>open, - DO18=>Q(0), DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), DO22=>Q(4), - DO23=>Q(5), DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), DO27=>Q(9), - DO28=>Q(10), DO29=>Q(11), DO30=>Q(12), DO31=>Q(13), - DO32=>Q(14), DO33=>Q(15), DO34=>Q(16), DO35=>Q(17)); - - FF_101: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_71: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_57: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_53: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_52: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_51: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_50: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_49: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_48: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_47: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_46: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_45: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_44: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_43: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_42: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_512x32 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:PDPW16KB use entity ecp2m.PDPW16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_512x64.jhd b/gbe2_ecp3/ipcores/fifo_512x64.jhd deleted file mode 100644 index fbe81ea..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x64.jhd +++ /dev/null @@ -1,359 +0,0 @@ -MODULE fifo_512x64 DEFIN fifo_512x64.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1P3DX - INSTANCE FF_42 - SUBMODULE FD1P3DX - INSTANCE FF_43 - SUBMODULE FD1P3DX - INSTANCE FF_44 - SUBMODULE FD1P3DX - INSTANCE FF_45 - SUBMODULE FD1P3DX - INSTANCE FF_46 - SUBMODULE FD1P3DX - INSTANCE FF_47 - SUBMODULE FD1P3DX - INSTANCE FF_48 - SUBMODULE FD1P3DX - INSTANCE FF_49 - SUBMODULE FD1P3DX - INSTANCE FF_50 - SUBMODULE FD1P3DX - INSTANCE FF_51 - SUBMODULE FD1P3DX - INSTANCE FF_52 - SUBMODULE FD1P3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3BX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3BX - INSTANCE FF_101 - SUBMODULE PDPW16KB - INSTANCE pdp_ram_0_1_0 - SUBMODULE PDPW16KB - INSTANCE pdp_ram_0_0_1 - SUBMODULE ROM16X1 - INSTANCE LUT4_0 - SUBMODULE ROM16X1 - INSTANCE LUT4_1 - SUBMODULE ROM16X1 - INSTANCE LUT4_2 - SUBMODULE ROM16X1 - INSTANCE LUT4_3 - SUBMODULE ROM16X1 - INSTANCE LUT4_4 - SUBMODULE ROM16X1 - INSTANCE LUT4_5 - SUBMODULE ROM16X1 - INSTANCE LUT4_6 - SUBMODULE ROM16X1 - INSTANCE LUT4_7 - SUBMODULE ROM16X1 - INSTANCE LUT4_8 - SUBMODULE ROM16X1 - INSTANCE LUT4_9 - SUBMODULE ROM16X1 - INSTANCE LUT4_10 - SUBMODULE ROM16X1 - INSTANCE LUT4_11 - SUBMODULE ROM16X1 - INSTANCE LUT4_12 - SUBMODULE ROM16X1 - INSTANCE LUT4_13 - SUBMODULE ROM16X1 - INSTANCE LUT4_14 - SUBMODULE ROM16X1 - INSTANCE LUT4_15 - SUBMODULE ROM16X1 - INSTANCE LUT4_16 - SUBMODULE ROM16X1 - INSTANCE LUT4_17 - SUBMODULE ROM16X1 - INSTANCE LUT4_18 - SUBMODULE ROM16X1 - INSTANCE LUT4_19 - SUBMODULE ROM16X1 - INSTANCE LUT4_20 - SUBMODULE ROM16X1 - INSTANCE LUT4_21 - SUBMODULE ROM16X1 - INSTANCE LUT4_22 - SUBMODULE ROM16X1 - INSTANCE LUT4_23 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE OR2 - INSTANCE OR2_t18 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t19 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t20 diff --git a/gbe2_ecp3/ipcores/fifo_512x64.lpc b/gbe2_ecp3/ipcores/fifo_512x64.lpc deleted file mode 100644 index f7b5a40..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x64.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_512x64 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=06/01/2011 -Time=17:13:21 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=512 -Width=72 -RDepth=512 -RWidth=72 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_512x64.naf b/gbe2_ecp3/ipcores/fifo_512x64.naf deleted file mode 100644 index 8a50577..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x64.naf +++ /dev/null @@ -1,152 +0,0 @@ -Data[71] i -Data[70] i -Data[69] i -Data[68] i -Data[67] i -Data[66] i -Data[65] i -Data[64] i -Data[63] i -Data[62] i -Data[61] i -Data[60] i -Data[59] i -Data[58] i -Data[57] i -Data[56] i -Data[55] i -Data[54] i -Data[53] i -Data[52] i -Data[51] i -Data[50] i -Data[49] i -Data[48] i -Data[47] i -Data[46] i -Data[45] i -Data[44] i -Data[43] i -Data[42] i -Data[41] i -Data[40] i -Data[39] i -Data[38] i -Data[37] i -Data[36] i -Data[35] i -Data[34] i -Data[33] i -Data[32] i -Data[31] i -Data[30] i -Data[29] i -Data[28] i -Data[27] i -Data[26] i -Data[25] i -Data[24] i -Data[23] i -Data[22] i -Data[21] i -Data[20] i -Data[19] i -Data[18] i -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[71] o -Q[70] o -Q[69] o -Q[68] o -Q[67] o -Q[66] o -Q[65] o -Q[64] o -Q[63] o -Q[62] o -Q[61] o -Q[60] o -Q[59] o -Q[58] o -Q[57] o -Q[56] o -Q[55] o -Q[54] o -Q[53] o -Q[52] o -Q[51] o -Q[50] o -Q[49] o -Q[48] o -Q[47] o -Q[46] o -Q[45] o -Q[44] o -Q[43] o -Q[42] o -Q[41] o -Q[40] o -Q[39] o -Q[38] o -Q[37] o -Q[36] o -Q[35] o -Q[34] o -Q[33] o -Q[32] o -Q[31] o -Q[30] o -Q[29] o -Q[28] o -Q[27] o -Q[26] o -Q[25] o -Q[24] o -Q[23] o -Q[22] o -Q[21] o -Q[20] o -Q[19] o -Q[18] o -Q[17] o -Q[16] o -Q[15] o -Q[14] o -Q[13] o -Q[12] o -Q[11] o -Q[10] o -Q[9] o -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores/fifo_512x64.srp b/gbe2_ecp3/ipcores/fifo_512x64.srp deleted file mode 100644 index 28cbb90..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x64.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version ispLever_v8.1_PROD_Build (20) -Wed Jun 1 17:13:21 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2010 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/ispLEVER8.1/isptools/ispfpga/bin/lin/scuba -w -n fifo_512x64 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 9 -data_width 72 -num_words 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x64 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[71:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[71:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x64.vhd - VHDL template : fifo_512x64_tmpl.vhd - VHDL testbench : tb_fifo_512x64_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x64.srp - Element Usage : - AGEB2 : 10 - AND2 : 2 - CU2 : 10 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 58 - FD1S3BX : 1 - FD1S3DX : 41 - INV : 2 - OR2 : 1 - ROM16X1 : 24 - XOR2 : 18 - PDPW16KB : 2 - Estimated Resource Usage: - LUT : 97 - EBR : 2 - Reg : 102 diff --git a/gbe2_ecp3/ipcores/fifo_512x64.sym b/gbe2_ecp3/ipcores/fifo_512x64.sym deleted file mode 100644 index acb66e1b6154b37fd474e194124f9abcdce27c55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmX|-ze~eV6ot>Ftwjat;4B%6gM+l<59m}d$!ZKrK~X8D1vR#zMrpUwKcHk3CkJs+ zBse)1XNL^V($US%PM*A^4)5jTyLso``<`o0y&o$B;8n8Rfss^2!;-8DupkwhDppX` z33GbguODueE2SgAq6nZTmAvh2yY15pIJ6NC5}UOhqXl&7CTJxtXE&}IK8AD!8B9-G ziG85;aGTm%C&_%H4e^p@);e+KC;JTXj-vSi*JTT89{z`I?R7{alU!hY@ckD*SeeQSe7wLV(|1B1sGBh!9BC%d{c3#`mkk| zzOS;6>Eqcnu5-l`Xzb}maYT+VP#ls&3>63D0C$Q#vWG`z#&552@#*;m@2JWj-WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: PDPW16KB - -- synopsys translate_off - generic map (CSDECODE_R=> "000", CSDECODE_W=> "001", GSR=> "DISABLED", - RESETMODE=> "ASYNC", REGMODE=> "NOREG", DATA_WIDTH_R=> 36, - DATA_WIDTH_W=> 36) - -- synopsys translate_on - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>Data(18), DI19=>Data(19), DI20=>Data(20), - DI21=>Data(21), DI22=>Data(22), DI23=>Data(23), - DI24=>Data(24), DI25=>Data(25), DI26=>Data(26), - DI27=>Data(27), DI28=>Data(28), DI29=>Data(29), - DI30=>Data(30), DI31=>Data(31), DI32=>Data(32), - DI33=>Data(33), DI34=>Data(34), DI35=>Data(35), ADW0=>wptr_0, - ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, ADW4=>wptr_4, - ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, ADW8=>wptr_8, - BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>Q(18), DO1=>Q(19), DO2=>Q(20), DO3=>Q(21), - DO4=>Q(22), DO5=>Q(23), DO6=>Q(24), DO7=>Q(25), DO8=>Q(26), - DO9=>Q(27), DO10=>Q(28), DO11=>Q(29), DO12=>Q(30), - DO13=>Q(31), DO14=>Q(32), DO15=>Q(33), DO16=>Q(34), - DO17=>Q(35), DO18=>Q(0), DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), - DO22=>Q(4), DO23=>Q(5), DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), - DO27=>Q(9), DO28=>Q(10), DO29=>Q(11), DO30=>Q(12), - DO31=>Q(13), DO32=>Q(14), DO33=>Q(15), DO34=>Q(16), - DO35=>Q(17)); - - pdp_ram_0_1_0: PDPW16KB - -- synopsys translate_off - generic map (CSDECODE_R=> "000", CSDECODE_W=> "001", GSR=> "DISABLED", - RESETMODE=> "ASYNC", REGMODE=> "NOREG", DATA_WIDTH_R=> 36, - DATA_WIDTH_W=> 36) - -- synopsys translate_on - port map (DI0=>Data(36), DI1=>Data(37), DI2=>Data(38), - DI3=>Data(39), DI4=>Data(40), DI5=>Data(41), DI6=>Data(42), - DI7=>Data(43), DI8=>Data(44), DI9=>Data(45), DI10=>Data(46), - DI11=>Data(47), DI12=>Data(48), DI13=>Data(49), - DI14=>Data(50), DI15=>Data(51), DI16=>Data(52), - DI17=>Data(53), DI18=>Data(54), DI19=>Data(55), - DI20=>Data(56), DI21=>Data(57), DI22=>Data(58), - DI23=>Data(59), DI24=>Data(60), DI25=>Data(61), - DI26=>Data(62), DI27=>Data(63), DI28=>Data(64), - DI29=>Data(65), DI30=>Data(66), DI31=>Data(67), - DI32=>Data(68), DI33=>Data(69), DI34=>Data(70), - DI35=>Data(71), ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, - ADW3=>wptr_3, ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, - ADW7=>wptr_7, ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, - BE2=>scuba_vhi, BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, - CSW0=>scuba_vhi, CSW1=>scuba_vlo, CSW2=>scuba_vlo, - ADR0=>scuba_vlo, ADR1=>scuba_vlo, ADR2=>scuba_vlo, - ADR3=>scuba_vlo, ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, - ADR7=>rptr_2, ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, - ADR11=>rptr_6, ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, - CLKR=>RdClock, CSR0=>scuba_vlo, CSR1=>scuba_vlo, - CSR2=>scuba_vlo, RST=>Reset, DO0=>Q(54), DO1=>Q(55), - DO2=>Q(56), DO3=>Q(57), DO4=>Q(58), DO5=>Q(59), DO6=>Q(60), - DO7=>Q(61), DO8=>Q(62), DO9=>Q(63), DO10=>Q(64), DO11=>Q(65), - DO12=>Q(66), DO13=>Q(67), DO14=>Q(68), DO15=>Q(69), - DO16=>Q(70), DO17=>Q(71), DO18=>Q(36), DO19=>Q(37), - DO20=>Q(38), DO21=>Q(39), DO22=>Q(40), DO23=>Q(41), - DO24=>Q(42), DO25=>Q(43), DO26=>Q(44), DO27=>Q(45), - DO28=>Q(46), DO29=>Q(47), DO30=>Q(48), DO31=>Q(49), - DO32=>Q(50), DO33=>Q(51), DO34=>Q(52), DO35=>Q(53)); - - FF_101: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_71: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_57: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_53: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_52: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_51: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_50: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_49: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_48: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_47: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_46: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_45: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_44: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_43: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_42: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_512x64 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:PDPW16KB use entity ecp2m.PDPW16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_512x64_generate.log b/gbe2_ecp3/ipcores/fifo_512x64_generate.log deleted file mode 100644 index d5d2a1f..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x64_generate.log +++ /dev/null @@ -1,46 +0,0 @@ -Starting process: - -SCUBA, Version ispLever_v8.1_PROD_Build (20) -Wed Jun 1 17:13:21 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2010 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/ispLEVER8.1/isptools/ispfpga/bin/lin/scuba -w -n fifo_512x64 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 9 -data_width 72 -num_words 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x64 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[71:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[71:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x64.vhd - VHDL template : fifo_512x64_tmpl.vhd - VHDL testbench : tb_fifo_512x64_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x64.srp - Estimated Resource Usage: - LUT : 97 - EBR : 2 - Reg : 102 - -END SCUBA Module Synthesis - -File: fifo_512x64.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/fifo_512x64_tmpl.vhd b/gbe2_ecp3/ipcores/fifo_512x64_tmpl.vhd deleted file mode 100644 index e0d6ffc..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x64_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA ispLever_v8.1_PROD_Build (20) --- Module Version: 5.4 --- Wed Jun 1 17:13:21 2011 - --- parameterized module component declaration -component fifo_512x64 - port (Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_512x64 - port map (Data(71 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(71 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores/fifo_512x72.jhd b/gbe2_ecp3/ipcores/fifo_512x72.jhd deleted file mode 100644 index c02a40f..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x72.jhd +++ /dev/null @@ -1,359 +0,0 @@ -MODULE fifo_512x72 DEFIN fifo_512x72.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1P3DX - INSTANCE FF_42 - SUBMODULE FD1P3DX - INSTANCE FF_43 - SUBMODULE FD1P3DX - INSTANCE FF_44 - SUBMODULE FD1P3DX - INSTANCE FF_45 - SUBMODULE FD1P3DX - INSTANCE FF_46 - SUBMODULE FD1P3DX - INSTANCE FF_47 - SUBMODULE FD1P3DX - INSTANCE FF_48 - SUBMODULE FD1P3DX - INSTANCE FF_49 - SUBMODULE FD1P3DX - INSTANCE FF_50 - SUBMODULE FD1P3DX - INSTANCE FF_51 - SUBMODULE FD1P3DX - INSTANCE FF_52 - SUBMODULE FD1P3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3BX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3BX - INSTANCE FF_101 - SUBMODULE PDPW16KB - INSTANCE pdp_ram_0_1_0 - SUBMODULE PDPW16KB - INSTANCE pdp_ram_0_0_1 - SUBMODULE ROM16X1 - INSTANCE LUT4_0 - SUBMODULE ROM16X1 - INSTANCE LUT4_1 - SUBMODULE ROM16X1 - INSTANCE LUT4_2 - SUBMODULE ROM16X1 - INSTANCE LUT4_3 - SUBMODULE ROM16X1 - INSTANCE LUT4_4 - SUBMODULE ROM16X1 - INSTANCE LUT4_5 - SUBMODULE ROM16X1 - INSTANCE LUT4_6 - SUBMODULE ROM16X1 - INSTANCE LUT4_7 - SUBMODULE ROM16X1 - INSTANCE LUT4_8 - SUBMODULE ROM16X1 - INSTANCE LUT4_9 - SUBMODULE ROM16X1 - INSTANCE LUT4_10 - SUBMODULE ROM16X1 - INSTANCE LUT4_11 - SUBMODULE ROM16X1 - INSTANCE LUT4_12 - SUBMODULE ROM16X1 - INSTANCE LUT4_13 - SUBMODULE ROM16X1 - INSTANCE LUT4_14 - SUBMODULE ROM16X1 - INSTANCE LUT4_15 - SUBMODULE ROM16X1 - INSTANCE LUT4_16 - SUBMODULE ROM16X1 - INSTANCE LUT4_17 - SUBMODULE ROM16X1 - INSTANCE LUT4_18 - SUBMODULE ROM16X1 - INSTANCE LUT4_19 - SUBMODULE ROM16X1 - INSTANCE LUT4_20 - SUBMODULE ROM16X1 - INSTANCE LUT4_21 - SUBMODULE ROM16X1 - INSTANCE LUT4_22 - SUBMODULE ROM16X1 - INSTANCE LUT4_23 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE OR2 - INSTANCE OR2_t18 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t19 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t20 diff --git a/gbe2_ecp3/ipcores/fifo_512x72.lpc b/gbe2_ecp3/ipcores/fifo_512x72.lpc deleted file mode 100644 index 195818a..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x72.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_512x72 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=06/01/2011 -Time=17:14:00 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=512 -Width=72 -RDepth=512 -RWidth=72 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_512x72.naf b/gbe2_ecp3/ipcores/fifo_512x72.naf deleted file mode 100644 index 8a50577..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x72.naf +++ /dev/null @@ -1,152 +0,0 @@ -Data[71] i -Data[70] i -Data[69] i -Data[68] i -Data[67] i -Data[66] i -Data[65] i -Data[64] i -Data[63] i -Data[62] i -Data[61] i -Data[60] i -Data[59] i -Data[58] i -Data[57] i -Data[56] i -Data[55] i -Data[54] i -Data[53] i -Data[52] i -Data[51] i -Data[50] i -Data[49] i -Data[48] i -Data[47] i -Data[46] i -Data[45] i -Data[44] i -Data[43] i -Data[42] i -Data[41] i -Data[40] i -Data[39] i -Data[38] i -Data[37] i -Data[36] i -Data[35] i -Data[34] i -Data[33] i -Data[32] i -Data[31] i -Data[30] i -Data[29] i -Data[28] i -Data[27] i -Data[26] i -Data[25] i -Data[24] i -Data[23] i -Data[22] i -Data[21] i -Data[20] i -Data[19] i -Data[18] i -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[71] o -Q[70] o -Q[69] o -Q[68] o -Q[67] o -Q[66] o -Q[65] o -Q[64] o -Q[63] o -Q[62] o -Q[61] o -Q[60] o -Q[59] o -Q[58] o -Q[57] o -Q[56] o -Q[55] o -Q[54] o -Q[53] o -Q[52] o -Q[51] o -Q[50] o -Q[49] o -Q[48] o -Q[47] o -Q[46] o -Q[45] o -Q[44] o -Q[43] o -Q[42] o -Q[41] o -Q[40] o -Q[39] o -Q[38] o -Q[37] o -Q[36] o -Q[35] o -Q[34] o -Q[33] o -Q[32] o -Q[31] o -Q[30] o -Q[29] o -Q[28] o -Q[27] o -Q[26] o -Q[25] o -Q[24] o -Q[23] o -Q[22] o -Q[21] o -Q[20] o -Q[19] o -Q[18] o -Q[17] o -Q[16] o -Q[15] o -Q[14] o -Q[13] o -Q[12] o -Q[11] o -Q[10] o -Q[9] o -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores/fifo_512x72.srp b/gbe2_ecp3/ipcores/fifo_512x72.srp deleted file mode 100644 index 17b4826..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x72.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version ispLever_v8.1_PROD_Build (20) -Wed Jun 1 17:14:00 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2010 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/ispLEVER8.1/isptools/ispfpga/bin/lin/scuba -w -n fifo_512x72 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 9 -data_width 72 -num_words 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x72 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[71:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[71:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x72.vhd - VHDL template : fifo_512x72_tmpl.vhd - VHDL testbench : tb_fifo_512x72_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x72.srp - Element Usage : - AGEB2 : 10 - AND2 : 2 - CU2 : 10 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 58 - FD1S3BX : 1 - FD1S3DX : 41 - INV : 2 - OR2 : 1 - ROM16X1 : 24 - XOR2 : 18 - PDPW16KB : 2 - Estimated Resource Usage: - LUT : 97 - EBR : 2 - Reg : 102 diff --git a/gbe2_ecp3/ipcores/fifo_512x72.sym b/gbe2_ecp3/ipcores/fifo_512x72.sym deleted file mode 100644 index 26a0ded4597432a0727a6c2ca2b8e04a6dd2a275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmX|-F-yZx6ot>Ftwjat;4B%6gM+jMDRc_hWHkmQpr{nnf?C^9qqJM;4=5drlY=;k z1SiMf?2y4(I=b1}$&;7V;k|r(H}AZA-?I}Aeyj|DSIKe*LeWLThHMM4CN&xzTPW5E zEA@uoIIfm!r4zuSn4q3i^0vF%?w()4rHycu*sSdu9iUG)M<;PPyLr>}F{UfXXmQ#~ z>?5s*X=_6=ms+jg6! zv=+}d#4l@0g8cqsnE&efYU`raJ=-Z)`qc_HWrmU%JUv4JhSWsx!0b5RR2-;2Y+0rs ys_awxcs7meQt=!bd%9B`kt2*02jl=_#S`)b_liBThbLynZ?AFj>G=ik(B%&Tf>SX7 diff --git a/gbe2_ecp3/ipcores/fifo_512x72.vhd b/gbe2_ecp3/ipcores/fifo_512x72.vhd deleted file mode 100644 index 0c53486..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x72.vhd +++ /dev/null @@ -1,1651 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v8.1_PROD_Build (20) --- Module Version: 5.4 ---/opt/lattice/ispLEVER8.1/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 512 -width 72 -depth 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - --- Wed Jun 1 17:14:00 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_512x72 is - port ( - Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_512x72; - -architecture Structure of fifo_512x72 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co4: std_logic; - signal wcount_9: std_logic; - signal co3: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co4_1: std_logic; - signal rcount_9: std_logic; - signal co3_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_8: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_8: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component PDPW16KB - -- synopsys translate_off - generic (CSDECODE_R : in std_logic_vector(2 downto 0); - CSDECODE_W : in std_logic_vector(2 downto 0); - GSR : in String; RESETMODE : in String; - REGMODE : in String; DATA_WIDTH_R : in Integer; - DATA_WIDTH_W : in Integer); - -- synopsys translate_on - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_R : string; - attribute CSDECODE_W : string; - attribute RESETMODE : string; - attribute REGMODE : string; - attribute DATA_WIDTH_R : string; - attribute DATA_WIDTH_W : string; - attribute GSR : string; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "fifo_512x72.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute CSDECODE_R of pdp_ram_0_0_1 : label is "0b000"; - attribute CSDECODE_W of pdp_ram_0_0_1 : label is "0b001"; - attribute GSR of pdp_ram_0_0_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_1 : label is "ASYNC"; - attribute REGMODE of pdp_ram_0_0_1 : label is "NOREG"; - attribute DATA_WIDTH_R of pdp_ram_0_0_1 : label is "36"; - attribute DATA_WIDTH_W of pdp_ram_0_0_1 : label is "36"; - attribute MEM_LPC_FILE of pdp_ram_0_1_0 : label is "fifo_512x72.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_0 : label is ""; - attribute CSDECODE_R of pdp_ram_0_1_0 : label is "0b000"; - attribute CSDECODE_W of pdp_ram_0_1_0 : label is "0b001"; - attribute GSR of pdp_ram_0_1_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_0 : label is "ASYNC"; - attribute REGMODE of pdp_ram_0_1_0 : label is "NOREG"; - attribute DATA_WIDTH_R of pdp_ram_0_1_0 : label is "36"; - attribute DATA_WIDTH_W of pdp_ram_0_1_0 : label is "36"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t20: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: PDPW16KB - -- synopsys translate_off - generic map (CSDECODE_R=> "000", CSDECODE_W=> "001", GSR=> "DISABLED", - RESETMODE=> "ASYNC", REGMODE=> "NOREG", DATA_WIDTH_R=> 36, - DATA_WIDTH_W=> 36) - -- synopsys translate_on - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>Data(18), DI19=>Data(19), DI20=>Data(20), - DI21=>Data(21), DI22=>Data(22), DI23=>Data(23), - DI24=>Data(24), DI25=>Data(25), DI26=>Data(26), - DI27=>Data(27), DI28=>Data(28), DI29=>Data(29), - DI30=>Data(30), DI31=>Data(31), DI32=>Data(32), - DI33=>Data(33), DI34=>Data(34), DI35=>Data(35), ADW0=>wptr_0, - ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, ADW4=>wptr_4, - ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, ADW8=>wptr_8, - BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>Q(18), DO1=>Q(19), DO2=>Q(20), DO3=>Q(21), - DO4=>Q(22), DO5=>Q(23), DO6=>Q(24), DO7=>Q(25), DO8=>Q(26), - DO9=>Q(27), DO10=>Q(28), DO11=>Q(29), DO12=>Q(30), - DO13=>Q(31), DO14=>Q(32), DO15=>Q(33), DO16=>Q(34), - DO17=>Q(35), DO18=>Q(0), DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), - DO22=>Q(4), DO23=>Q(5), DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), - DO27=>Q(9), DO28=>Q(10), DO29=>Q(11), DO30=>Q(12), - DO31=>Q(13), DO32=>Q(14), DO33=>Q(15), DO34=>Q(16), - DO35=>Q(17)); - - pdp_ram_0_1_0: PDPW16KB - -- synopsys translate_off - generic map (CSDECODE_R=> "000", CSDECODE_W=> "001", GSR=> "DISABLED", - RESETMODE=> "ASYNC", REGMODE=> "NOREG", DATA_WIDTH_R=> 36, - DATA_WIDTH_W=> 36) - -- synopsys translate_on - port map (DI0=>Data(36), DI1=>Data(37), DI2=>Data(38), - DI3=>Data(39), DI4=>Data(40), DI5=>Data(41), DI6=>Data(42), - DI7=>Data(43), DI8=>Data(44), DI9=>Data(45), DI10=>Data(46), - DI11=>Data(47), DI12=>Data(48), DI13=>Data(49), - DI14=>Data(50), DI15=>Data(51), DI16=>Data(52), - DI17=>Data(53), DI18=>Data(54), DI19=>Data(55), - DI20=>Data(56), DI21=>Data(57), DI22=>Data(58), - DI23=>Data(59), DI24=>Data(60), DI25=>Data(61), - DI26=>Data(62), DI27=>Data(63), DI28=>Data(64), - DI29=>Data(65), DI30=>Data(66), DI31=>Data(67), - DI32=>Data(68), DI33=>Data(69), DI34=>Data(70), - DI35=>Data(71), ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, - ADW3=>wptr_3, ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, - ADW7=>wptr_7, ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, - BE2=>scuba_vhi, BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, - CSW0=>scuba_vhi, CSW1=>scuba_vlo, CSW2=>scuba_vlo, - ADR0=>scuba_vlo, ADR1=>scuba_vlo, ADR2=>scuba_vlo, - ADR3=>scuba_vlo, ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, - ADR7=>rptr_2, ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, - ADR11=>rptr_6, ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, - CLKR=>RdClock, CSR0=>scuba_vlo, CSR1=>scuba_vlo, - CSR2=>scuba_vlo, RST=>Reset, DO0=>Q(54), DO1=>Q(55), - DO2=>Q(56), DO3=>Q(57), DO4=>Q(58), DO5=>Q(59), DO6=>Q(60), - DO7=>Q(61), DO8=>Q(62), DO9=>Q(63), DO10=>Q(64), DO11=>Q(65), - DO12=>Q(66), DO13=>Q(67), DO14=>Q(68), DO15=>Q(69), - DO16=>Q(70), DO17=>Q(71), DO18=>Q(36), DO19=>Q(37), - DO20=>Q(38), DO21=>Q(39), DO22=>Q(40), DO23=>Q(41), - DO24=>Q(42), DO25=>Q(43), DO26=>Q(44), DO27=>Q(45), - DO28=>Q(46), DO29=>Q(47), DO30=>Q(48), DO31=>Q(49), - DO32=>Q(50), DO33=>Q(51), DO34=>Q(52), DO35=>Q(53)); - - FF_101: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_71: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_57: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_53: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_52: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_51: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_50: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_49: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_48: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_47: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_46: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_45: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_44: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_43: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_42: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_512x72 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:PDPW16KB use entity ecp2m.PDPW16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_512x72_generate.log b/gbe2_ecp3/ipcores/fifo_512x72_generate.log deleted file mode 100644 index c53ba2c..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x72_generate.log +++ /dev/null @@ -1,46 +0,0 @@ -Starting process: - -SCUBA, Version ispLever_v8.1_PROD_Build (20) -Wed Jun 1 17:14:00 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2010 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/ispLEVER8.1/isptools/ispfpga/bin/lin/scuba -w -n fifo_512x72 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 9 -data_width 72 -num_words 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x72 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[71:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[71:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x72.vhd - VHDL template : fifo_512x72_tmpl.vhd - VHDL testbench : tb_fifo_512x72_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x72.srp - Estimated Resource Usage: - LUT : 97 - EBR : 2 - Reg : 102 - -END SCUBA Module Synthesis - -File: fifo_512x72.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/fifo_512x72_tmpl.vhd b/gbe2_ecp3/ipcores/fifo_512x72_tmpl.vhd deleted file mode 100644 index f77cba8..0000000 --- a/gbe2_ecp3/ipcores/fifo_512x72_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA ispLever_v8.1_PROD_Build (20) --- Module Version: 5.4 --- Wed Jun 1 17:14:00 2011 - --- parameterized module component declaration -component fifo_512x72 - port (Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_512x72 - port map (Data(71 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(71 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores/fifo_64kx8.jhd b/gbe2_ecp3/ipcores/fifo_64kx8.jhd deleted file mode 100755 index 4128450..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx8.jhd +++ /dev/null @@ -1,711 +0,0 @@ -MODULE fifo_64kx8 DEFIN fifo_64kx8.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_8 - SUBMODULE AGEB2 - INSTANCE full_cmp_7 - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_8 - SUBMODULE AGEB2 - INSTANCE empty_cmp_7 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE MUX41 - INSTANCE mux_0 - SUBMODULE MUX41 - INSTANCE mux_1 - SUBMODULE MUX41 - INSTANCE mux_2 - SUBMODULE MUX41 - INSTANCE mux_3 - SUBMODULE MUX41 - INSTANCE mux_4 - SUBMODULE MUX41 - INSTANCE mux_5 - SUBMODULE MUX41 - INSTANCE mux_6 - SUBMODULE MUX41 - INSTANCE mux_7 - SUBMODULE CU2 - INSTANCE r_gctr_8 - SUBMODULE CU2 - INSTANCE r_gctr_7 - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_8 - SUBMODULE CU2 - INSTANCE w_gctr_7 - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1S3DX - INSTANCE FF_54 - SUBMODULE FD1S3DX - INSTANCE FF_55 - SUBMODULE FD1S3DX - INSTANCE FF_56 - SUBMODULE FD1S3DX - INSTANCE FF_57 - SUBMODULE FD1S3DX - INSTANCE FF_58 - SUBMODULE FD1S3DX - INSTANCE FF_59 - SUBMODULE FD1S3DX - INSTANCE FF_60 - SUBMODULE FD1S3DX - INSTANCE FF_61 - SUBMODULE FD1S3DX - INSTANCE FF_62 - SUBMODULE FD1S3DX - INSTANCE FF_63 - SUBMODULE FD1S3DX - INSTANCE FF_64 - SUBMODULE FD1S3DX - INSTANCE FF_65 - SUBMODULE FD1S3DX - INSTANCE FF_66 - SUBMODULE FD1S3DX - INSTANCE FF_67 - SUBMODULE FD1S3DX - INSTANCE FF_68 - SUBMODULE FD1S3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3DX - INSTANCE FF_116 - SUBMODULE FD1P3DX - INSTANCE FF_117 - SUBMODULE FD1P3DX - INSTANCE FF_118 - SUBMODULE FD1P3DX - INSTANCE FF_119 - SUBMODULE FD1P3DX - INSTANCE FF_120 - SUBMODULE FD1P3DX - INSTANCE FF_121 - SUBMODULE FD1P3BX - INSTANCE FF_122 - SUBMODULE FD1P3DX - INSTANCE FF_123 - SUBMODULE FD1P3DX - INSTANCE FF_124 - SUBMODULE FD1P3DX - INSTANCE FF_125 - SUBMODULE FD1P3DX - INSTANCE FF_126 - SUBMODULE FD1P3DX - INSTANCE FF_127 - SUBMODULE FD1P3DX - INSTANCE FF_128 - SUBMODULE FD1P3DX - INSTANCE FF_129 - SUBMODULE FD1P3DX - INSTANCE FF_130 - SUBMODULE FD1P3DX - INSTANCE FF_131 - SUBMODULE FD1P3DX - INSTANCE FF_132 - SUBMODULE FD1P3DX - INSTANCE FF_133 - SUBMODULE FD1P3DX - INSTANCE FF_134 - SUBMODULE FD1P3DX - INSTANCE FF_135 - SUBMODULE FD1P3DX - INSTANCE FF_136 - SUBMODULE FD1P3DX - INSTANCE FF_137 - SUBMODULE FD1P3DX - INSTANCE FF_138 - SUBMODULE FD1P3DX - INSTANCE FF_139 - SUBMODULE FD1P3DX - INSTANCE FF_140 - SUBMODULE FD1P3DX - INSTANCE FF_141 - SUBMODULE FD1P3DX - INSTANCE FF_142 - SUBMODULE FD1P3DX - INSTANCE FF_143 - SUBMODULE FD1P3DX - INSTANCE FF_144 - SUBMODULE FD1P3DX - INSTANCE FF_145 - SUBMODULE FD1P3DX - INSTANCE FF_146 - SUBMODULE FD1P3DX - INSTANCE FF_147 - SUBMODULE FD1P3DX - INSTANCE FF_148 - SUBMODULE FD1P3DX - INSTANCE FF_149 - SUBMODULE FD1P3DX - INSTANCE FF_150 - SUBMODULE FD1P3DX - INSTANCE FF_151 - SUBMODULE FD1P3DX - INSTANCE FF_152 - SUBMODULE FD1P3DX - INSTANCE FF_153 - SUBMODULE FD1P3DX - INSTANCE FF_154 - SUBMODULE FD1P3DX - INSTANCE FF_155 - SUBMODULE FD1P3DX - INSTANCE FF_156 - SUBMODULE FD1P3DX - INSTANCE FF_157 - SUBMODULE FD1P3DX - INSTANCE FF_158 - SUBMODULE FD1P3DX - INSTANCE FF_159 - SUBMODULE FD1P3DX - INSTANCE FF_160 - SUBMODULE FD1P3DX - INSTANCE FF_161 - SUBMODULE FD1P3DX - INSTANCE FF_162 - SUBMODULE FD1P3DX - INSTANCE FF_163 - SUBMODULE FD1P3DX - INSTANCE FF_164 - SUBMODULE FD1P3DX - INSTANCE FF_165 - SUBMODULE FD1P3DX - INSTANCE FF_166 - SUBMODULE FD1P3DX - INSTANCE FF_167 - SUBMODULE FD1P3DX - INSTANCE FF_168 - SUBMODULE FD1P3DX - INSTANCE FF_169 - SUBMODULE FD1P3DX - INSTANCE FF_170 - SUBMODULE FD1P3DX - INSTANCE FF_171 - SUBMODULE FD1P3DX - INSTANCE FF_172 - SUBMODULE FD1P3BX - INSTANCE FF_173 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_7_0 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_6_1 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_5_2 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_4_3 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_3_4 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_2_5 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_1_6 - SUBMODULE DP16KB - INSTANCE pdp_ram_3_0_7 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_7_8 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_6_9 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_5_10 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_4_11 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_3_12 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_2_13 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_1_14 - SUBMODULE DP16KB - INSTANCE pdp_ram_2_0_15 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_7_16 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_6_17 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_5_18 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_4_19 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_3_20 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_2_21 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_1_22 - SUBMODULE DP16KB - INSTANCE pdp_ram_1_0_23 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_7_24 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_6_25 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_5_26 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_4_27 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_3_28 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_2_29 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_1_30 - SUBMODULE DP16KB - INSTANCE pdp_ram_0_0_31 - SUBMODULE ROM16X1 - INSTANCE LUT4_0 - SUBMODULE ROM16X1 - INSTANCE LUT4_1 - SUBMODULE ROM16X1 - INSTANCE LUT4_2 - SUBMODULE ROM16X1 - INSTANCE LUT4_3 - SUBMODULE ROM16X1 - INSTANCE LUT4_4 - SUBMODULE ROM16X1 - INSTANCE LUT4_5 - SUBMODULE ROM16X1 - INSTANCE LUT4_6 - SUBMODULE ROM16X1 - INSTANCE LUT4_7 - SUBMODULE ROM16X1 - INSTANCE LUT4_8 - SUBMODULE ROM16X1 - INSTANCE LUT4_9 - SUBMODULE ROM16X1 - INSTANCE LUT4_10 - SUBMODULE ROM16X1 - INSTANCE LUT4_11 - SUBMODULE ROM16X1 - INSTANCE LUT4_12 - SUBMODULE ROM16X1 - INSTANCE LUT4_13 - SUBMODULE ROM16X1 - INSTANCE LUT4_14 - SUBMODULE ROM16X1 - INSTANCE LUT4_15 - SUBMODULE ROM16X1 - INSTANCE LUT4_16 - SUBMODULE ROM16X1 - INSTANCE LUT4_17 - SUBMODULE ROM16X1 - INSTANCE LUT4_18 - SUBMODULE ROM16X1 - INSTANCE LUT4_19 - SUBMODULE ROM16X1 - INSTANCE LUT4_20 - SUBMODULE ROM16X1 - INSTANCE LUT4_21 - SUBMODULE ROM16X1 - INSTANCE LUT4_22 - SUBMODULE ROM16X1 - INSTANCE LUT4_23 - SUBMODULE ROM16X1 - INSTANCE LUT4_24 - SUBMODULE ROM16X1 - INSTANCE LUT4_25 - SUBMODULE ROM16X1 - INSTANCE LUT4_26 - SUBMODULE ROM16X1 - INSTANCE LUT4_27 - SUBMODULE ROM16X1 - INSTANCE LUT4_28 - SUBMODULE ROM16X1 - INSTANCE LUT4_29 - SUBMODULE ROM16X1 - INSTANCE LUT4_30 - SUBMODULE ROM16X1 - INSTANCE LUT4_31 - SUBMODULE ROM16X1 - INSTANCE LUT4_32 - SUBMODULE ROM16X1 - INSTANCE LUT4_33 - SUBMODULE ROM16X1 - INSTANCE LUT4_34 - SUBMODULE ROM16X1 - INSTANCE LUT4_35 - SUBMODULE ROM16X1 - INSTANCE LUT4_36 - SUBMODULE ROM16X1 - INSTANCE LUT4_37 - SUBMODULE ROM16X1 - INSTANCE LUT4_38 - SUBMODULE ROM16X1 - INSTANCE LUT4_39 - SUBMODULE ROM16X1 - INSTANCE LUT4_40 - SUBMODULE ROM16X1 - INSTANCE LUT4_41 - SUBMODULE ROM16X1 - INSTANCE LUT4_42 - SUBMODULE ROM16X1 - INSTANCE LUT4_43 - SUBMODULE ROM16X1 - INSTANCE LUT4_44 - SUBMODULE ROM16X1 - INSTANCE LUT4_45 - SUBMODULE ROM16X1 - INSTANCE LUT4_46 - SUBMODULE ROM16X1 - INSTANCE LUT4_47 - SUBMODULE ROM16X1 - INSTANCE LUT4_48 - SUBMODULE ROM16X1 - INSTANCE LUT4_49 - SUBMODULE ROM16X1 - INSTANCE LUT4_50 - SUBMODULE ROM16X1 - INSTANCE LUT4_51 - SUBMODULE ROM16X1 - INSTANCE LUT4_52 - SUBMODULE ROM16X1 - INSTANCE LUT4_53 - SUBMODULE ROM16X1 - INSTANCE LUT4_54 - SUBMODULE ROM16X1 - INSTANCE LUT4_55 - SUBMODULE ROM16X1 - INSTANCE LUT4_56 - SUBMODULE ROM16X1 - INSTANCE LUT4_57 - SUBMODULE ROM16X1 - INSTANCE LUT4_58 - SUBMODULE ROM16X1 - INSTANCE LUT4_59 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE XOR2 - INSTANCE XOR2_t24 - SUBMODULE XOR2 - INSTANCE XOR2_t25 - SUBMODULE XOR2 - INSTANCE XOR2_t26 - SUBMODULE XOR2 - INSTANCE XOR2_t27 - SUBMODULE XOR2 - INSTANCE XOR2_t28 - SUBMODULE XOR2 - INSTANCE XOR2_t29 - SUBMODULE XOR2 - INSTANCE XOR2_t30 - SUBMODULE XOR2 - INSTANCE XOR2_t31 - SUBMODULE OR2 - INSTANCE OR2_t32 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t33 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t34 diff --git a/gbe2_ecp3/ipcores/fifo_64kx8.lpc b/gbe2_ecp3/ipcores/fifo_64kx8.lpc deleted file mode 100755 index badffb2..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx8.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_64kx8 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:23:03 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=65536 -Width=8 -RDepth=65536 -RWidth=8 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_64kx8.naf b/gbe2_ecp3/ipcores/fifo_64kx8.naf deleted file mode 100755 index 9da2be9..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx8.naf +++ /dev/null @@ -1,24 +0,0 @@ -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores/fifo_64kx8.srp b/gbe2_ecp3/ipcores/fifo_64kx8.srp deleted file mode 100755 index 56a2b66..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx8.srp +++ /dev/null @@ -1,43 +0,0 @@ -SCUBA, Version ispLever_v72_SP2_Build (23) -Sat Dec 26 00:12:05 2009 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n fifo_64kx8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 16 -data_width 8 -num_words 65536 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_64kx8 - Module type : ebfifo - Module Version : 5.2 - Ports : - Inputs : Data[7:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[7:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_64kx8.vhd - VHDL template : fifo_64kx8_tmpl.vhd - VHDL testbench : tb_fifo_64kx8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx8.srp - Element Usage : - AGEB2 : 18 - AND2 : 2 - CU2 : 18 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 102 - FD1S3BX : 1 - FD1S3DX : 69 - INV : 2 - MUX41 : 8 - OR2 : 1 - ROM16X1 : 60 - XOR2 : 32 - DP16KB : 32 - Estimated Resource Usage: - LUT : 187 - EBR : 32 - Reg : 174 diff --git a/gbe2_ecp3/ipcores/fifo_64kx8.sym b/gbe2_ecp3/ipcores/fifo_64kx8.sym deleted file mode 100755 index b2811a4caeb65eb7be00c6bcbdae9eba63ace513..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmYk2F-XHe7=_DeBgQG)+OybZ%v^WJ#I%*9{1Qn^aMQOC5M$s*UV~0-SDB{@R zCP8p;b_&kUZc0W+UoH_GF8T7kyT|>R_&3jAFC_p<3_gK-vBkukEC?_o4H_HsupC0g zX-Dnd<(2wA*7-TcYVN1K&RQ@y>f?|$!A@=suj8HpmvkwD+?BoVc{jp{t|sx{=~iwZ zXhYl<)*t4bPqYe?qSGH{o$tJ*!Yi!i8&Gyn!|0m3q_nZUg>PmFKA3$1M)M*F7!_GI zU5p=QhG1$lALU;WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t33: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t32: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t31: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t30: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t29: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t28: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t27: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t26: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t25: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t24: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t23: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t22: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t21: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t20: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t19: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t18: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t17: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t16: XOR2 - port map (A=>wcount_15, B=>wcount_16, Z=>w_gdata_15); - - XOR2_t15: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t14: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t13: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t12: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t11: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t10: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t9: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t8: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t7: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t6: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t5: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t4: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t3: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t2: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t1: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t0: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - LUT4_59: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>w_gcount_r216, - DO0=>w_g2b_xor_cluster_0); - - LUT4_58: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_1); - - LUT4_57: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_2); - - LUT4_56: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_3); - - LUT4_55: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r215, AD2=>w_gcount_r216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r15); - - LUT4_54: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, - AD1=>w_gcount_r216, AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_53: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>wcount_r15, DO0=>wcount_r12); - - LUT4_52: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_51: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>w_g2b_xor_cluster_0, - DO0=>wcount_r10); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r28, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, DO0=>wcount_r7); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r6); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r24, DO0=>wcount_r4); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r3); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r2); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r1); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>func_xor_inet); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>func_xor_inet_1); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, DO0=>func_xor_inet_2); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, DO0=>func_xor_inet_3); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet_6); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_7); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_8); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_9); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_10); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_6, AD2=>func_xor_inet_7, - AD1=>func_xor_inet_8, AD0=>func_xor_inet_9, - DO0=>func_xor_inet_11); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_11, AD2=>func_xor_inet_10, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_31: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_1_30: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_2_29: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_3_28: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_4_27: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_5_26: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_6_25: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_7_24: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_23: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_1_22: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_2_21: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_3_20: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_4_19: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_5_18: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_6_17: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_7_16: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_15: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_1_14: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_2_13: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_3_12: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_4_11: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_5_10: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_6_9: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_7_8: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_7: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_1_6: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_2_5: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_3_4: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_4_3: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_5_2: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_6_1: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_7_0: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_173: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_172: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_171: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_170: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_169: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_168: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_167: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_166: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_165: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_164: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_163: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_162: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_161: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_160: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_159: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_158: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_157: FD1P3DX - port map (D=>iwcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_16); - - FF_156: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_155: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_154: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_153: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_152: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_151: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_150: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_149: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_148: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_147: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_146: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_145: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_144: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_143: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_142: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_141: FD1P3DX - port map (D=>w_gdata_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_140: FD1P3DX - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_16); - - FF_139: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_138: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_137: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_136: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_135: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_134: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_133: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_132: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_131: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_130: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_129: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_128: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_127: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_126: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_125: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_124: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_123: FD1P3DX - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_16); - - FF_122: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_121: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_120: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_119: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_118: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_117: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_116: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_115: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_114: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_113: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_112: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_111: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_110: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_109: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_108: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_107: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_106: FD1P3DX - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_105: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_104: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_103: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_102: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_101: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_100: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_99: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_98: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_97: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_96: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_95: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_94: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_93: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_92: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_91: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_90: FD1P3DX - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_89: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_88: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_87: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_86: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_85: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_84: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_83: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_82: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_81: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_80: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_79: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_78: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_77: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_76: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_75: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_74: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_73: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_72: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_71: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_70: FD1P3DX - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_69: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_68: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_67: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_66: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_65: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_64: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_63: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_62: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_61: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_60: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_59: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_58: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_57: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_56: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_55: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_54: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_53: FD1S3DX - port map (D=>w_gcount_16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r16); - - FF_52: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_51: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_50: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_49: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_48: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_47: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_46: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_45: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_44: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_43: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_42: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_41: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_40: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_39: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_38: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_37: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_36: FD1S3DX - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_35: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_34: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_33: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_32: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_31: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_30: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_29: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_28: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_27: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_26: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_25: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_24: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_23: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_22: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_21: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_20: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_19: FD1S3DX - port map (D=>w_gcount_r16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r216); - - FF_18: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_17: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_16: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_15: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_14: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_13: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_12: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_11: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_10: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_9: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_8: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_7: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_6: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_5: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_4: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_3: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_2: FD1S3DX - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - w_gctr_8: CU2 - port map (CI=>co7, PC0=>wcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>iwcount_16, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8_1, - NC0=>ircount_16, NC1=>open); - - mux_7: MUX41 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(0)); - - mux_6: MUX41 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(1)); - - mux_5: MUX41 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(2)); - - mux_4: MUX41 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(3)); - - mux_3: MUX41 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(4)); - - mux_2: MUX41 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(5)); - - mux_1: MUX41 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(6)); - - mux_0: MUX41 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(7)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, - B1=>w_g2b_xor_cluster_0, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r14, - B1=>wcount_r15, CI=>co6_2, GE=>co7_2); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>wcount_15, B0=>rcount_w14, - B1=>rcount_w15, CI=>co6_3, GE=>co7_3); - - full_cmp_8: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co7_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_64kx8 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX41 use entity ecp3.MUX41(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_64kx8_generate.log b/gbe2_ecp3/ipcores/fifo_64kx8_generate.log deleted file mode 100755 index 87e2dad..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx8_generate.log +++ /dev/null @@ -1,46 +0,0 @@ -Starting process: - -SCUBA, Version ispLever_v72_SP2_Build (23) -Sat Dec 26 00:12:05 2009 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n fifo_64kx8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 16 -data_width 8 -num_words 65536 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_64kx8 - Module type : ebfifo - Module Version : 5.2 - Ports : - Inputs : Data[7:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[7:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_64kx8.vhd - VHDL template : fifo_64kx8_tmpl.vhd - VHDL testbench : tb_fifo_64kx8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx8.srp - Estimated Resource Usage: - LUT : 187 - EBR : 32 - Reg : 174 - -END SCUBA Module Synthesis - -File: fifo_64kx8.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/fifo_64kx8_tmpl.vhd b/gbe2_ecp3/ipcores/fifo_64kx8_tmpl.vhd deleted file mode 100755 index 9aba2ac..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx8_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:23:03 2011 - --- parameterized module component declaration -component fifo_64kx8 - port (Data: in std_logic_vector(7 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_64kx8 - port map (Data(7 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(7 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores/fifo_64kx9.lpc b/gbe2_ecp3/ipcores/fifo_64kx9.lpc deleted file mode 100644 index a9ca96b..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx9.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_64kx9 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:23:21 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=65536 -Width=9 -RDepth=65536 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores/fifo_64kx9.srp b/gbe2_ecp3/ipcores/fifo_64kx9.srp deleted file mode 100644 index 3f23449..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx9.srp +++ /dev/null @@ -1,43 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:21 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_64kx9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 16 -data_width 9 -num_words 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_64kx9 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_64kx9.vhd - VHDL template : fifo_64kx9_tmpl.vhd - VHDL testbench : tb_fifo_64kx9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx9.srp - Element Usage : - AGEB2 : 18 - AND2 : 2 - CU2 : 18 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 105 - FD1S3BX : 1 - FD1S3DX : 69 - INV : 12 - MUX321 : 9 - OR2 : 1 - ROM16X1A : 188 - XOR2 : 32 - DP16KC : 32 - Estimated Resource Usage: - LUT : 379 - EBR : 32 - Reg : 177 diff --git a/gbe2_ecp3/ipcores/fifo_64kx9.vhd b/gbe2_ecp3/ipcores/fifo_64kx9.vhd deleted file mode 100644 index 9ad1f19..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx9.vhd +++ /dev/null @@ -1,4582 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 65536 -width 9 -depth 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:23:21 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_64kx9 is - port ( - Data: in std_logic_vector(8 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_64kx9; - -architecture Structure of fifo_64kx9 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal func_and_inet: std_logic; - signal func_and_inet_1: std_logic; - signal func_and_inet_2: std_logic; - signal func_and_inet_3: std_logic; - signal func_and_inet_4: std_logic; - signal func_and_inet_5: std_logic; - signal func_and_inet_6: std_logic; - signal func_and_inet_7: std_logic; - signal func_and_inet_8: std_logic; - signal func_and_inet_9: std_logic; - signal func_and_inet_10: std_logic; - signal func_and_inet_11: std_logic; - signal func_and_inet_12: std_logic; - signal func_and_inet_13: std_logic; - signal func_and_inet_14: std_logic; - signal func_and_inet_15: std_logic; - signal func_and_inet_16: std_logic; - signal func_and_inet_17: std_logic; - signal func_and_inet_18: std_logic; - signal func_and_inet_19: std_logic; - signal func_and_inet_20: std_logic; - signal func_and_inet_21: std_logic; - signal func_and_inet_22: std_logic; - signal func_and_inet_23: std_logic; - signal func_and_inet_24: std_logic; - signal func_and_inet_25: std_logic; - signal func_and_inet_26: std_logic; - signal func_and_inet_27: std_logic; - signal func_and_inet_28: std_logic; - signal func_and_inet_29: std_logic; - signal wptr_15_inv: std_logic; - signal func_and_inet_30: std_logic; - signal rptr_15_inv: std_logic; - signal func_and_inet_31: std_logic; - signal func_and_inet_32: std_logic; - signal func_and_inet_33: std_logic; - signal func_and_inet_34: std_logic; - signal func_and_inet_35: std_logic; - signal func_and_inet_36: std_logic; - signal func_and_inet_37: std_logic; - signal func_and_inet_38: std_logic; - signal func_and_inet_39: std_logic; - signal func_and_inet_40: std_logic; - signal func_and_inet_41: std_logic; - signal func_and_inet_42: std_logic; - signal func_and_inet_43: std_logic; - signal func_and_inet_44: std_logic; - signal func_and_inet_45: std_logic; - signal wptr_14_inv: std_logic; - signal func_and_inet_46: std_logic; - signal rptr_14_inv: std_logic; - signal func_and_inet_47: std_logic; - signal func_and_inet_48: std_logic; - signal func_and_inet_49: std_logic; - signal func_and_inet_50: std_logic; - signal func_and_inet_51: std_logic; - signal func_and_inet_52: std_logic; - signal func_and_inet_53: std_logic; - signal wptr_13_inv: std_logic; - signal func_and_inet_54: std_logic; - signal rptr_13_inv: std_logic; - signal func_and_inet_55: std_logic; - signal func_and_inet_56: std_logic; - signal func_and_inet_57: std_logic; - signal wptr_12_inv: std_logic; - signal func_and_inet_58: std_logic; - signal rptr_12_inv: std_logic; - signal func_and_inet_59: std_logic; - signal wptr_11_inv: std_logic; - signal func_and_inet_60: std_logic; - signal rptr_11_inv: std_logic; - signal func_and_inet_61: std_logic; - signal func_and_inet_62: std_logic; - signal func_and_inet_63: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_9: std_logic; - signal func_xor_inet_8: std_logic; - signal func_xor_inet_7: std_logic; - signal func_xor_inet_6: std_logic; - signal func_xor_inet_10: std_logic; - signal func_xor_inet_11: std_logic; - signal dec1_r10: std_logic; - signal dec0_p00: std_logic; - signal dec3_r11: std_logic; - signal dec2_p01: std_logic; - signal dec5_r12: std_logic; - signal dec4_p02: std_logic; - signal dec7_r13: std_logic; - signal dec6_p03: std_logic; - signal dec9_r14: std_logic; - signal dec8_p04: std_logic; - signal dec11_r15: std_logic; - signal dec10_p05: std_logic; - signal dec13_r16: std_logic; - signal dec12_p06: std_logic; - signal dec15_r17: std_logic; - signal dec14_p07: std_logic; - signal dec17_r18: std_logic; - signal dec16_p08: std_logic; - signal dec19_r19: std_logic; - signal dec18_p09: std_logic; - signal dec21_r110: std_logic; - signal dec20_p010: std_logic; - signal dec23_r111: std_logic; - signal dec22_p011: std_logic; - signal dec25_r112: std_logic; - signal dec24_p012: std_logic; - signal dec27_r113: std_logic; - signal dec26_p013: std_logic; - signal dec29_r114: std_logic; - signal dec28_p014: std_logic; - signal dec31_r115: std_logic; - signal dec30_p015: std_logic; - signal dec33_r116: std_logic; - signal dec32_p016: std_logic; - signal dec35_r117: std_logic; - signal dec34_p017: std_logic; - signal dec37_r118: std_logic; - signal dec36_p018: std_logic; - signal dec39_r119: std_logic; - signal dec38_p019: std_logic; - signal dec41_r120: std_logic; - signal dec40_p020: std_logic; - signal dec43_r121: std_logic; - signal dec42_p021: std_logic; - signal dec45_r122: std_logic; - signal dec44_p022: std_logic; - signal dec47_r123: std_logic; - signal dec46_p023: std_logic; - signal dec49_r124: std_logic; - signal dec48_p024: std_logic; - signal dec51_r125: std_logic; - signal dec50_p025: std_logic; - signal dec53_r126: std_logic; - signal dec52_p026: std_logic; - signal dec55_r127: std_logic; - signal dec54_p027: std_logic; - signal dec57_r128: std_logic; - signal dec56_p028: std_logic; - signal dec59_r129: std_logic; - signal dec58_p029: std_logic; - signal dec61_r130: std_logic; - signal dec60_p030: std_logic; - signal dec63_r131: std_logic; - signal dec62_p031: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal w_gdata_15: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wptr_15: std_logic; - signal wptr_16: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_16: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal rptr_15: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal w_gcount_16: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal w_gcount_r216: std_logic; - signal w_gcount_r16: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co6: std_logic; - signal iwcount_16: std_logic; - signal co8: std_logic; - signal wcount_16: std_logic; - signal co7: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8_1: std_logic; - signal rcount_16: std_logic; - signal co7_1: std_logic; - signal mdout1_31_0: std_logic; - signal mdout1_30_0: std_logic; - signal mdout1_29_0: std_logic; - signal mdout1_28_0: std_logic; - signal mdout1_27_0: std_logic; - signal mdout1_26_0: std_logic; - signal mdout1_25_0: std_logic; - signal mdout1_24_0: std_logic; - signal mdout1_23_0: std_logic; - signal mdout1_22_0: std_logic; - signal mdout1_21_0: std_logic; - signal mdout1_20_0: std_logic; - signal mdout1_19_0: std_logic; - signal mdout1_18_0: std_logic; - signal mdout1_17_0: std_logic; - signal mdout1_16_0: std_logic; - signal mdout1_15_0: std_logic; - signal mdout1_14_0: std_logic; - signal mdout1_13_0: std_logic; - signal mdout1_12_0: std_logic; - signal mdout1_11_0: std_logic; - signal mdout1_10_0: std_logic; - signal mdout1_9_0: std_logic; - signal mdout1_8_0: std_logic; - signal mdout1_7_0: std_logic; - signal mdout1_6_0: std_logic; - signal mdout1_5_0: std_logic; - signal mdout1_4_0: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_31_1: std_logic; - signal mdout1_30_1: std_logic; - signal mdout1_29_1: std_logic; - signal mdout1_28_1: std_logic; - signal mdout1_27_1: std_logic; - signal mdout1_26_1: std_logic; - signal mdout1_25_1: std_logic; - signal mdout1_24_1: std_logic; - signal mdout1_23_1: std_logic; - signal mdout1_22_1: std_logic; - signal mdout1_21_1: std_logic; - signal mdout1_20_1: std_logic; - signal mdout1_19_1: std_logic; - signal mdout1_18_1: std_logic; - signal mdout1_17_1: std_logic; - signal mdout1_16_1: std_logic; - signal mdout1_15_1: std_logic; - signal mdout1_14_1: std_logic; - signal mdout1_13_1: std_logic; - signal mdout1_12_1: std_logic; - signal mdout1_11_1: std_logic; - signal mdout1_10_1: std_logic; - signal mdout1_9_1: std_logic; - signal mdout1_8_1: std_logic; - signal mdout1_7_1: std_logic; - signal mdout1_6_1: std_logic; - signal mdout1_5_1: std_logic; - signal mdout1_4_1: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_31_2: std_logic; - signal mdout1_30_2: std_logic; - signal mdout1_29_2: std_logic; - signal mdout1_28_2: std_logic; - signal mdout1_27_2: std_logic; - signal mdout1_26_2: std_logic; - signal mdout1_25_2: std_logic; - signal mdout1_24_2: std_logic; - signal mdout1_23_2: std_logic; - signal mdout1_22_2: std_logic; - signal mdout1_21_2: std_logic; - signal mdout1_20_2: std_logic; - signal mdout1_19_2: std_logic; - signal mdout1_18_2: std_logic; - signal mdout1_17_2: std_logic; - signal mdout1_16_2: std_logic; - signal mdout1_15_2: std_logic; - signal mdout1_14_2: std_logic; - signal mdout1_13_2: std_logic; - signal mdout1_12_2: std_logic; - signal mdout1_11_2: std_logic; - signal mdout1_10_2: std_logic; - signal mdout1_9_2: std_logic; - signal mdout1_8_2: std_logic; - signal mdout1_7_2: std_logic; - signal mdout1_6_2: std_logic; - signal mdout1_5_2: std_logic; - signal mdout1_4_2: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_31_3: std_logic; - signal mdout1_30_3: std_logic; - signal mdout1_29_3: std_logic; - signal mdout1_28_3: std_logic; - signal mdout1_27_3: std_logic; - signal mdout1_26_3: std_logic; - signal mdout1_25_3: std_logic; - signal mdout1_24_3: std_logic; - signal mdout1_23_3: std_logic; - signal mdout1_22_3: std_logic; - signal mdout1_21_3: std_logic; - signal mdout1_20_3: std_logic; - signal mdout1_19_3: std_logic; - signal mdout1_18_3: std_logic; - signal mdout1_17_3: std_logic; - signal mdout1_16_3: std_logic; - signal mdout1_15_3: std_logic; - signal mdout1_14_3: std_logic; - signal mdout1_13_3: std_logic; - signal mdout1_12_3: std_logic; - signal mdout1_11_3: std_logic; - signal mdout1_10_3: std_logic; - signal mdout1_9_3: std_logic; - signal mdout1_8_3: std_logic; - signal mdout1_7_3: std_logic; - signal mdout1_6_3: std_logic; - signal mdout1_5_3: std_logic; - signal mdout1_4_3: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_31_4: std_logic; - signal mdout1_30_4: std_logic; - signal mdout1_29_4: std_logic; - signal mdout1_28_4: std_logic; - signal mdout1_27_4: std_logic; - signal mdout1_26_4: std_logic; - signal mdout1_25_4: std_logic; - signal mdout1_24_4: std_logic; - signal mdout1_23_4: std_logic; - signal mdout1_22_4: std_logic; - signal mdout1_21_4: std_logic; - signal mdout1_20_4: std_logic; - signal mdout1_19_4: std_logic; - signal mdout1_18_4: std_logic; - signal mdout1_17_4: std_logic; - signal mdout1_16_4: std_logic; - signal mdout1_15_4: std_logic; - signal mdout1_14_4: std_logic; - signal mdout1_13_4: std_logic; - signal mdout1_12_4: std_logic; - signal mdout1_11_4: std_logic; - signal mdout1_10_4: std_logic; - signal mdout1_9_4: std_logic; - signal mdout1_8_4: std_logic; - signal mdout1_7_4: std_logic; - signal mdout1_6_4: std_logic; - signal mdout1_5_4: std_logic; - signal mdout1_4_4: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_31_5: std_logic; - signal mdout1_30_5: std_logic; - signal mdout1_29_5: std_logic; - signal mdout1_28_5: std_logic; - signal mdout1_27_5: std_logic; - signal mdout1_26_5: std_logic; - signal mdout1_25_5: std_logic; - signal mdout1_24_5: std_logic; - signal mdout1_23_5: std_logic; - signal mdout1_22_5: std_logic; - signal mdout1_21_5: std_logic; - signal mdout1_20_5: std_logic; - signal mdout1_19_5: std_logic; - signal mdout1_18_5: std_logic; - signal mdout1_17_5: std_logic; - signal mdout1_16_5: std_logic; - signal mdout1_15_5: std_logic; - signal mdout1_14_5: std_logic; - signal mdout1_13_5: std_logic; - signal mdout1_12_5: std_logic; - signal mdout1_11_5: std_logic; - signal mdout1_10_5: std_logic; - signal mdout1_9_5: std_logic; - signal mdout1_8_5: std_logic; - signal mdout1_7_5: std_logic; - signal mdout1_6_5: std_logic; - signal mdout1_5_5: std_logic; - signal mdout1_4_5: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_31_6: std_logic; - signal mdout1_30_6: std_logic; - signal mdout1_29_6: std_logic; - signal mdout1_28_6: std_logic; - signal mdout1_27_6: std_logic; - signal mdout1_26_6: std_logic; - signal mdout1_25_6: std_logic; - signal mdout1_24_6: std_logic; - signal mdout1_23_6: std_logic; - signal mdout1_22_6: std_logic; - signal mdout1_21_6: std_logic; - signal mdout1_20_6: std_logic; - signal mdout1_19_6: std_logic; - signal mdout1_18_6: std_logic; - signal mdout1_17_6: std_logic; - signal mdout1_16_6: std_logic; - signal mdout1_15_6: std_logic; - signal mdout1_14_6: std_logic; - signal mdout1_13_6: std_logic; - signal mdout1_12_6: std_logic; - signal mdout1_11_6: std_logic; - signal mdout1_10_6: std_logic; - signal mdout1_9_6: std_logic; - signal mdout1_8_6: std_logic; - signal mdout1_7_6: std_logic; - signal mdout1_6_6: std_logic; - signal mdout1_5_6: std_logic; - signal mdout1_4_6: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_31_7: std_logic; - signal mdout1_30_7: std_logic; - signal mdout1_29_7: std_logic; - signal mdout1_28_7: std_logic; - signal mdout1_27_7: std_logic; - signal mdout1_26_7: std_logic; - signal mdout1_25_7: std_logic; - signal mdout1_24_7: std_logic; - signal mdout1_23_7: std_logic; - signal mdout1_22_7: std_logic; - signal mdout1_21_7: std_logic; - signal mdout1_20_7: std_logic; - signal mdout1_19_7: std_logic; - signal mdout1_18_7: std_logic; - signal mdout1_17_7: std_logic; - signal mdout1_16_7: std_logic; - signal mdout1_15_7: std_logic; - signal mdout1_14_7: std_logic; - signal mdout1_13_7: std_logic; - signal mdout1_12_7: std_logic; - signal mdout1_11_7: std_logic; - signal mdout1_10_7: std_logic; - signal mdout1_9_7: std_logic; - signal mdout1_8_7: std_logic; - signal mdout1_7_7: std_logic; - signal mdout1_6_7: std_logic; - signal mdout1_5_7: std_logic; - signal mdout1_4_7: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal rptr_13_ff: std_logic; - signal rptr_12_ff: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_31_8: std_logic; - signal mdout1_30_8: std_logic; - signal mdout1_29_8: std_logic; - signal mdout1_28_8: std_logic; - signal mdout1_27_8: std_logic; - signal mdout1_26_8: std_logic; - signal mdout1_25_8: std_logic; - signal mdout1_24_8: std_logic; - signal mdout1_23_8: std_logic; - signal mdout1_22_8: std_logic; - signal mdout1_21_8: std_logic; - signal mdout1_20_8: std_logic; - signal mdout1_19_8: std_logic; - signal mdout1_18_8: std_logic; - signal mdout1_17_8: std_logic; - signal mdout1_16_8: std_logic; - signal mdout1_15_8: std_logic; - signal mdout1_14_8: std_logic; - signal mdout1_13_8: std_logic; - signal mdout1_12_8: std_logic; - signal mdout1_11_8: std_logic; - signal mdout1_10_8: std_logic; - signal mdout1_9_8: std_logic; - signal mdout1_8_8: std_logic; - signal mdout1_7_8: std_logic; - signal mdout1_6_8: std_logic; - signal mdout1_5_8: std_logic; - signal mdout1_4_8: std_logic; - signal mdout1_3_8: std_logic; - signal mdout1_2_8: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal wcount_r12: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_2: std_logic; - signal wcount_r14: std_logic; - signal wcount_r15: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal rcount_w12: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_3: std_logic; - signal rcount_w14: std_logic; - signal rcount_w15: std_logic; - signal wcount_14: std_logic; - signal wcount_15: std_logic; - signal co7_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX321 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; D4: in std_logic; D5: in std_logic; - D6: in std_logic; D7: in std_logic; D8: in std_logic; - D9: in std_logic; D10: in std_logic; D11: in std_logic; - D12: in std_logic; D13: in std_logic; D14: in std_logic; - D15: in std_logic; D16: in std_logic; D17: in std_logic; - D18: in std_logic; D19: in std_logic; D20: in std_logic; - D21: in std_logic; D22: in std_logic; D23: in std_logic; - D24: in std_logic; D25: in std_logic; D26: in std_logic; - D27: in std_logic; D28: in std_logic; D29: in std_logic; - D30: in std_logic; D31: in std_logic; SD1: in std_logic; - SD2: in std_logic; SD3: in std_logic; SD4: in std_logic; - SD5: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute RESETMODE of pdp_ram_0_0_31 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_0_30 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_30 : label is ""; - attribute RESETMODE of pdp_ram_1_0_30 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_0_29 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_29 : label is ""; - attribute RESETMODE of pdp_ram_2_0_29 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_0_28 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_28 : label is ""; - attribute RESETMODE of pdp_ram_3_0_28 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_4_0_27 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_4_0_27 : label is ""; - attribute RESETMODE of pdp_ram_4_0_27 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_5_0_26 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_5_0_26 : label is ""; - attribute RESETMODE of pdp_ram_5_0_26 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_6_0_25 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_6_0_25 : label is ""; - attribute RESETMODE of pdp_ram_6_0_25 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_7_0_24 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_7_0_24 : label is ""; - attribute RESETMODE of pdp_ram_7_0_24 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_8_0_23 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_8_0_23 : label is ""; - attribute RESETMODE of pdp_ram_8_0_23 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_9_0_22 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_9_0_22 : label is ""; - attribute RESETMODE of pdp_ram_9_0_22 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_10_0_21 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_10_0_21 : label is ""; - attribute RESETMODE of pdp_ram_10_0_21 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_11_0_20 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_11_0_20 : label is ""; - attribute RESETMODE of pdp_ram_11_0_20 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_12_0_19 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_12_0_19 : label is ""; - attribute RESETMODE of pdp_ram_12_0_19 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_13_0_18 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_13_0_18 : label is ""; - attribute RESETMODE of pdp_ram_13_0_18 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_14_0_17 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_14_0_17 : label is ""; - attribute RESETMODE of pdp_ram_14_0_17 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_15_0_16 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_15_0_16 : label is ""; - attribute RESETMODE of pdp_ram_15_0_16 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_16_0_15 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_16_0_15 : label is ""; - attribute RESETMODE of pdp_ram_16_0_15 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_17_0_14 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_17_0_14 : label is ""; - attribute RESETMODE of pdp_ram_17_0_14 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_18_0_13 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_18_0_13 : label is ""; - attribute RESETMODE of pdp_ram_18_0_13 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_19_0_12 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_19_0_12 : label is ""; - attribute RESETMODE of pdp_ram_19_0_12 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_20_0_11 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_20_0_11 : label is ""; - attribute RESETMODE of pdp_ram_20_0_11 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_21_0_10 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_21_0_10 : label is ""; - attribute RESETMODE of pdp_ram_21_0_10 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_22_0_9 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_22_0_9 : label is ""; - attribute RESETMODE of pdp_ram_22_0_9 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_23_0_8 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_23_0_8 : label is ""; - attribute RESETMODE of pdp_ram_23_0_8 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_24_0_7 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_24_0_7 : label is ""; - attribute RESETMODE of pdp_ram_24_0_7 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_25_0_6 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_25_0_6 : label is ""; - attribute RESETMODE of pdp_ram_25_0_6 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_26_0_5 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_26_0_5 : label is ""; - attribute RESETMODE of pdp_ram_26_0_5 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_27_0_4 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_27_0_4 : label is ""; - attribute RESETMODE of pdp_ram_27_0_4 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_28_0_3 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_28_0_3 : label is ""; - attribute RESETMODE of pdp_ram_28_0_3 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_29_0_2 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_29_0_2 : label is ""; - attribute RESETMODE of pdp_ram_29_0_2 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_30_0_1 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_30_0_1 : label is ""; - attribute RESETMODE of pdp_ram_30_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_31_0_0 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_31_0_0 : label is ""; - attribute RESETMODE of pdp_ram_31_0_0 : label is "SYNC"; - attribute GSR of FF_176 : label is "ENABLED"; - attribute GSR of FF_175 : label is "ENABLED"; - attribute GSR of FF_174 : label is "ENABLED"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t34: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_11: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t33: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_10: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t32: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t31: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t30: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t29: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t28: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t27: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t26: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t25: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t24: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t23: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t22: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t21: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t20: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t19: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t18: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t17: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t16: XOR2 - port map (A=>wcount_15, B=>wcount_16, Z=>w_gdata_15); - - XOR2_t15: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t14: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t13: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t12: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t11: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t10: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t9: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t8: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t7: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t6: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t5: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t4: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t3: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t2: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t1: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t0: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - INV_9: INV - port map (A=>wptr_11, Z=>wptr_11_inv); - - INV_8: INV - port map (A=>wptr_12, Z=>wptr_12_inv); - - INV_7: INV - port map (A=>wptr_13, Z=>wptr_13_inv); - - INV_6: INV - port map (A=>wptr_14, Z=>wptr_14_inv); - - INV_5: INV - port map (A=>wptr_15, Z=>wptr_15_inv); - - LUT4_187: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet); - - LUT4_186: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec0_p00); - - INV_4: INV - port map (A=>rptr_11, Z=>rptr_11_inv); - - INV_3: INV - port map (A=>rptr_12, Z=>rptr_12_inv); - - INV_2: INV - port map (A=>rptr_13, Z=>rptr_13_inv); - - INV_1: INV - port map (A=>rptr_14, Z=>rptr_14_inv); - - INV_0: INV - port map (A=>rptr_15, Z=>rptr_15_inv); - - LUT4_185: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_1); - - LUT4_184: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_1, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec1_r10); - - LUT4_183: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_2); - - LUT4_182: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_2, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec2_p01); - - LUT4_181: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_3); - - LUT4_180: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_3, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec3_r11); - - LUT4_179: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_4); - - LUT4_178: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_4, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec4_p02); - - LUT4_177: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_5); - - LUT4_176: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_5, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec5_r12); - - LUT4_175: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_6); - - LUT4_174: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_6, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec6_p03); - - LUT4_173: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_7); - - LUT4_172: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_7, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec7_r13); - - LUT4_171: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_8); - - LUT4_170: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_8, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec8_p04); - - LUT4_169: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_9); - - LUT4_168: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_9, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec9_r14); - - LUT4_167: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_10); - - LUT4_166: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_10, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec10_p05); - - LUT4_165: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_11); - - LUT4_164: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_11, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec11_r15); - - LUT4_163: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_12); - - LUT4_162: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_12, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec12_p06); - - LUT4_161: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_13); - - LUT4_160: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_13, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec13_r16); - - LUT4_159: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_14); - - LUT4_158: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_14, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec14_p07); - - LUT4_157: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_15); - - LUT4_156: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_15, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec15_r17); - - LUT4_155: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_16); - - LUT4_154: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_16, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec16_p08); - - LUT4_153: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_17); - - LUT4_152: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_17, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec17_r18); - - LUT4_151: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_18); - - LUT4_150: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_18, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec18_p09); - - LUT4_149: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_19); - - LUT4_148: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_19, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec19_r19); - - LUT4_147: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_20); - - LUT4_146: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_20, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec20_p010); - - LUT4_145: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_21); - - LUT4_144: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_21, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec21_r110); - - LUT4_143: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_22); - - LUT4_142: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_22, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec22_p011); - - LUT4_141: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_23); - - LUT4_140: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_23, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec23_r111); - - LUT4_139: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_24); - - LUT4_138: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_24, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec24_p012); - - LUT4_137: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_25); - - LUT4_136: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_25, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec25_r112); - - LUT4_135: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_26); - - LUT4_134: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_26, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec26_p013); - - LUT4_133: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_27); - - LUT4_132: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_27, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec27_r113); - - LUT4_131: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_28); - - LUT4_130: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_28, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec28_p014); - - LUT4_129: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_29); - - LUT4_128: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_29, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec29_r114); - - LUT4_127: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, AD0=>wptr_14, - DO0=>func_and_inet_30); - - LUT4_126: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_30, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec30_p015); - - LUT4_125: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_31); - - LUT4_124: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_31, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec31_r115); - - LUT4_123: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_32); - - LUT4_122: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_32, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec32_p016); - - LUT4_121: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_33); - - LUT4_120: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_33, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec33_r116); - - LUT4_119: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_34); - - LUT4_118: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_34, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec34_p017); - - LUT4_117: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_35); - - LUT4_116: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_35, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec35_r117); - - LUT4_115: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_36); - - LUT4_114: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_36, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec36_p018); - - LUT4_113: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_37); - - LUT4_112: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_37, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec37_r118); - - LUT4_111: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_38); - - LUT4_110: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_38, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec38_p019); - - LUT4_109: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_39); - - LUT4_108: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_39, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec39_r119); - - LUT4_107: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_40); - - LUT4_106: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_40, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec40_p020); - - LUT4_105: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_41); - - LUT4_104: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_41, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec41_r120); - - LUT4_103: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_42); - - LUT4_102: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_42, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec42_p021); - - LUT4_101: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_43); - - LUT4_100: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_43, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec43_r121); - - LUT4_99: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_44); - - LUT4_98: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_44, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec44_p022); - - LUT4_97: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_45); - - LUT4_96: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_45, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec45_r122); - - LUT4_95: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_46); - - LUT4_94: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_46, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec46_p023); - - LUT4_93: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_47); - - LUT4_92: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_47, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec47_r123); - - LUT4_91: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_48); - - LUT4_90: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_48, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec48_p024); - - LUT4_89: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_49); - - LUT4_88: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_49, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec49_r124); - - LUT4_87: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_50); - - LUT4_86: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_50, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec50_p025); - - LUT4_85: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_51); - - LUT4_84: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_51, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec51_r125); - - LUT4_83: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_52); - - LUT4_82: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_52, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec52_p026); - - LUT4_81: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_53); - - LUT4_80: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_53, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec53_r126); - - LUT4_79: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_54); - - LUT4_78: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_54, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec54_p027); - - LUT4_77: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_55); - - LUT4_76: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_55, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec55_r127); - - LUT4_75: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_56); - - LUT4_74: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_56, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec56_p028); - - LUT4_73: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_57); - - LUT4_72: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_57, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec57_r128); - - LUT4_71: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_58); - - LUT4_70: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_58, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec58_p029); - - LUT4_69: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_59); - - LUT4_68: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_59, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec59_r129); - - LUT4_67: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_60); - - LUT4_66: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_60, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec60_p030); - - LUT4_65: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_61); - - LUT4_64: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_61, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec61_r130); - - LUT4_63: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, AD0=>wptr_14, - DO0=>func_and_inet_62); - - LUT4_62: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_62, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec62_p031); - - LUT4_61: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_63); - - LUT4_60: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_63, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec63_r131); - - LUT4_59: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>w_gcount_r216, - DO0=>w_g2b_xor_cluster_0); - - LUT4_58: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_1); - - LUT4_57: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_2); - - LUT4_56: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_3); - - LUT4_55: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r215, AD2=>w_gcount_r216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r15); - - LUT4_54: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, - AD1=>w_gcount_r216, AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_53: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>wcount_r15, DO0=>wcount_r12); - - LUT4_52: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_51: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>w_g2b_xor_cluster_0, - DO0=>wcount_r10); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r28, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, DO0=>wcount_r7); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r6); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r24, DO0=>wcount_r4); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r3); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r2); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r1); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>func_xor_inet); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>func_xor_inet_1); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, DO0=>func_xor_inet_2); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, DO0=>func_xor_inet_3); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet_6); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_7); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_8); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_9); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_10); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_6, AD2=>func_xor_inet_7, - AD1=>func_xor_inet_8, AD0=>func_xor_inet_9, - DO0=>func_xor_inet_11); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_11, AD2=>func_xor_inet_10, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_31: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec0_p00, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec1_r10, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, DOB1=>mdout1_0_1, - DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, DOB4=>mdout1_0_4, - DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, DOB7=>mdout1_0_7, - DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_30: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec2_p01, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec3_r11, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, DOB1=>mdout1_1_1, - DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, DOB4=>mdout1_1_4, - DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, DOB7=>mdout1_1_7, - DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_29: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec4_p02, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec5_r12, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_0, DOB1=>mdout1_2_1, - DOB2=>mdout1_2_2, DOB3=>mdout1_2_3, DOB4=>mdout1_2_4, - DOB5=>mdout1_2_5, DOB6=>mdout1_2_6, DOB7=>mdout1_2_7, - DOB8=>mdout1_2_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_28: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec6_p03, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec7_r13, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_0, DOB1=>mdout1_3_1, - DOB2=>mdout1_3_2, DOB3=>mdout1_3_3, DOB4=>mdout1_3_4, - DOB5=>mdout1_3_5, DOB6=>mdout1_3_6, DOB7=>mdout1_3_7, - DOB8=>mdout1_3_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_4_0_27: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec8_p04, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec9_r14, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_4_0, DOB1=>mdout1_4_1, - DOB2=>mdout1_4_2, DOB3=>mdout1_4_3, DOB4=>mdout1_4_4, - DOB5=>mdout1_4_5, DOB6=>mdout1_4_6, DOB7=>mdout1_4_7, - DOB8=>mdout1_4_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_5_0_26: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec10_p05, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec11_r15, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_5_0, DOB1=>mdout1_5_1, - DOB2=>mdout1_5_2, DOB3=>mdout1_5_3, DOB4=>mdout1_5_4, - DOB5=>mdout1_5_5, DOB6=>mdout1_5_6, DOB7=>mdout1_5_7, - DOB8=>mdout1_5_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_6_0_25: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec12_p06, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec13_r16, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_6_0, DOB1=>mdout1_6_1, - DOB2=>mdout1_6_2, DOB3=>mdout1_6_3, DOB4=>mdout1_6_4, - DOB5=>mdout1_6_5, DOB6=>mdout1_6_6, DOB7=>mdout1_6_7, - DOB8=>mdout1_6_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_7_0_24: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec14_p07, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec15_r17, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_7_0, DOB1=>mdout1_7_1, - DOB2=>mdout1_7_2, DOB3=>mdout1_7_3, DOB4=>mdout1_7_4, - DOB5=>mdout1_7_5, DOB6=>mdout1_7_6, DOB7=>mdout1_7_7, - DOB8=>mdout1_7_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_8_0_23: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec16_p08, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec17_r18, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_8_0, DOB1=>mdout1_8_1, - DOB2=>mdout1_8_2, DOB3=>mdout1_8_3, DOB4=>mdout1_8_4, - DOB5=>mdout1_8_5, DOB6=>mdout1_8_6, DOB7=>mdout1_8_7, - DOB8=>mdout1_8_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_9_0_22: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec18_p09, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec19_r19, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_9_0, DOB1=>mdout1_9_1, - DOB2=>mdout1_9_2, DOB3=>mdout1_9_3, DOB4=>mdout1_9_4, - DOB5=>mdout1_9_5, DOB6=>mdout1_9_6, DOB7=>mdout1_9_7, - DOB8=>mdout1_9_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_10_0_21: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec20_p010, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec21_r110, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_10_0, - DOB1=>mdout1_10_1, DOB2=>mdout1_10_2, DOB3=>mdout1_10_3, - DOB4=>mdout1_10_4, DOB5=>mdout1_10_5, DOB6=>mdout1_10_6, - DOB7=>mdout1_10_7, DOB8=>mdout1_10_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_11_0_20: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec22_p011, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec23_r111, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_11_0, - DOB1=>mdout1_11_1, DOB2=>mdout1_11_2, DOB3=>mdout1_11_3, - DOB4=>mdout1_11_4, DOB5=>mdout1_11_5, DOB6=>mdout1_11_6, - DOB7=>mdout1_11_7, DOB8=>mdout1_11_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_12_0_19: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec24_p012, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec25_r112, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_12_0, - DOB1=>mdout1_12_1, DOB2=>mdout1_12_2, DOB3=>mdout1_12_3, - DOB4=>mdout1_12_4, DOB5=>mdout1_12_5, DOB6=>mdout1_12_6, - DOB7=>mdout1_12_7, DOB8=>mdout1_12_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_13_0_18: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec26_p013, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec27_r113, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_13_0, - DOB1=>mdout1_13_1, DOB2=>mdout1_13_2, DOB3=>mdout1_13_3, - DOB4=>mdout1_13_4, DOB5=>mdout1_13_5, DOB6=>mdout1_13_6, - DOB7=>mdout1_13_7, DOB8=>mdout1_13_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_14_0_17: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec28_p014, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec29_r114, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_14_0, - DOB1=>mdout1_14_1, DOB2=>mdout1_14_2, DOB3=>mdout1_14_3, - DOB4=>mdout1_14_4, DOB5=>mdout1_14_5, DOB6=>mdout1_14_6, - DOB7=>mdout1_14_7, DOB8=>mdout1_14_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_15_0_16: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec30_p015, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec31_r115, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_15_0, - DOB1=>mdout1_15_1, DOB2=>mdout1_15_2, DOB3=>mdout1_15_3, - DOB4=>mdout1_15_4, DOB5=>mdout1_15_5, DOB6=>mdout1_15_6, - DOB7=>mdout1_15_7, DOB8=>mdout1_15_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_16_0_15: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec32_p016, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec33_r116, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_16_0, - DOB1=>mdout1_16_1, DOB2=>mdout1_16_2, DOB3=>mdout1_16_3, - DOB4=>mdout1_16_4, DOB5=>mdout1_16_5, DOB6=>mdout1_16_6, - DOB7=>mdout1_16_7, DOB8=>mdout1_16_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_17_0_14: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec34_p017, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec35_r117, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_17_0, - DOB1=>mdout1_17_1, DOB2=>mdout1_17_2, DOB3=>mdout1_17_3, - DOB4=>mdout1_17_4, DOB5=>mdout1_17_5, DOB6=>mdout1_17_6, - DOB7=>mdout1_17_7, DOB8=>mdout1_17_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_18_0_13: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec36_p018, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec37_r118, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_18_0, - DOB1=>mdout1_18_1, DOB2=>mdout1_18_2, DOB3=>mdout1_18_3, - DOB4=>mdout1_18_4, DOB5=>mdout1_18_5, DOB6=>mdout1_18_6, - DOB7=>mdout1_18_7, DOB8=>mdout1_18_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_19_0_12: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec38_p019, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec39_r119, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_19_0, - DOB1=>mdout1_19_1, DOB2=>mdout1_19_2, DOB3=>mdout1_19_3, - DOB4=>mdout1_19_4, DOB5=>mdout1_19_5, DOB6=>mdout1_19_6, - DOB7=>mdout1_19_7, DOB8=>mdout1_19_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_20_0_11: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec40_p020, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec41_r120, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_20_0, - DOB1=>mdout1_20_1, DOB2=>mdout1_20_2, DOB3=>mdout1_20_3, - DOB4=>mdout1_20_4, DOB5=>mdout1_20_5, DOB6=>mdout1_20_6, - DOB7=>mdout1_20_7, DOB8=>mdout1_20_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_21_0_10: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec42_p021, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec43_r121, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_21_0, - DOB1=>mdout1_21_1, DOB2=>mdout1_21_2, DOB3=>mdout1_21_3, - DOB4=>mdout1_21_4, DOB5=>mdout1_21_5, DOB6=>mdout1_21_6, - DOB7=>mdout1_21_7, DOB8=>mdout1_21_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_22_0_9: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec44_p022, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec45_r122, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_22_0, - DOB1=>mdout1_22_1, DOB2=>mdout1_22_2, DOB3=>mdout1_22_3, - DOB4=>mdout1_22_4, DOB5=>mdout1_22_5, DOB6=>mdout1_22_6, - DOB7=>mdout1_22_7, DOB8=>mdout1_22_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_23_0_8: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec46_p023, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec47_r123, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_23_0, - DOB1=>mdout1_23_1, DOB2=>mdout1_23_2, DOB3=>mdout1_23_3, - DOB4=>mdout1_23_4, DOB5=>mdout1_23_5, DOB6=>mdout1_23_6, - DOB7=>mdout1_23_7, DOB8=>mdout1_23_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_24_0_7: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec48_p024, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec49_r124, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_24_0, - DOB1=>mdout1_24_1, DOB2=>mdout1_24_2, DOB3=>mdout1_24_3, - DOB4=>mdout1_24_4, DOB5=>mdout1_24_5, DOB6=>mdout1_24_6, - DOB7=>mdout1_24_7, DOB8=>mdout1_24_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_25_0_6: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec50_p025, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec51_r125, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_25_0, - DOB1=>mdout1_25_1, DOB2=>mdout1_25_2, DOB3=>mdout1_25_3, - DOB4=>mdout1_25_4, DOB5=>mdout1_25_5, DOB6=>mdout1_25_6, - DOB7=>mdout1_25_7, DOB8=>mdout1_25_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_26_0_5: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec52_p026, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec53_r126, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_26_0, - DOB1=>mdout1_26_1, DOB2=>mdout1_26_2, DOB3=>mdout1_26_3, - DOB4=>mdout1_26_4, DOB5=>mdout1_26_5, DOB6=>mdout1_26_6, - DOB7=>mdout1_26_7, DOB8=>mdout1_26_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_27_0_4: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec54_p027, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec55_r127, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_27_0, - DOB1=>mdout1_27_1, DOB2=>mdout1_27_2, DOB3=>mdout1_27_3, - DOB4=>mdout1_27_4, DOB5=>mdout1_27_5, DOB6=>mdout1_27_6, - DOB7=>mdout1_27_7, DOB8=>mdout1_27_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_28_0_3: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec56_p028, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec57_r128, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_28_0, - DOB1=>mdout1_28_1, DOB2=>mdout1_28_2, DOB3=>mdout1_28_3, - DOB4=>mdout1_28_4, DOB5=>mdout1_28_5, DOB6=>mdout1_28_6, - DOB7=>mdout1_28_7, DOB8=>mdout1_28_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_29_0_2: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec58_p029, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec59_r129, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_29_0, - DOB1=>mdout1_29_1, DOB2=>mdout1_29_2, DOB3=>mdout1_29_3, - DOB4=>mdout1_29_4, DOB5=>mdout1_29_5, DOB6=>mdout1_29_6, - DOB7=>mdout1_29_7, DOB8=>mdout1_29_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_30_0_1: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec60_p030, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec61_r130, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_30_0, - DOB1=>mdout1_30_1, DOB2=>mdout1_30_2, DOB3=>mdout1_30_3, - DOB4=>mdout1_30_4, DOB5=>mdout1_30_5, DOB6=>mdout1_30_6, - DOB7=>mdout1_30_7, DOB8=>mdout1_30_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_31_0_0: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec62_p031, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec63_r131, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_31_0, - DOB1=>mdout1_31_1, DOB2=>mdout1_31_2, DOB3=>mdout1_31_3, - DOB4=>mdout1_31_4, DOB5=>mdout1_31_5, DOB6=>mdout1_31_6, - DOB7=>mdout1_31_7, DOB8=>mdout1_31_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_176: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_175: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_174: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_173: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_172: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_171: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_170: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_169: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_168: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_167: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_166: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_165: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_164: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_163: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_162: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_161: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_160: FD1P3DX - port map (D=>iwcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_16); - - FF_159: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_158: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_157: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_156: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_155: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_154: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_153: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_152: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_151: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_150: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_149: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_148: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_147: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_146: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_145: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_144: FD1P3DX - port map (D=>w_gdata_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_143: FD1P3DX - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_16); - - FF_142: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_141: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_140: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_139: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_138: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_137: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_136: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_135: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_134: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_133: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_132: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_131: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_130: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_129: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_128: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_127: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_126: FD1P3DX - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_16); - - FF_125: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_124: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_123: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_122: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_121: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_120: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_119: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_118: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_117: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_116: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_115: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_114: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_113: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_112: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_111: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_110: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_109: FD1P3DX - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_108: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_107: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_106: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_105: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_104: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_103: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_102: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_101: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_100: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_99: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_98: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_97: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_96: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_95: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_94: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_93: FD1P3DX - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_92: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_91: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_90: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_89: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_88: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_87: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_86: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_85: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_84: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_83: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_82: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_81: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_80: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_79: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_78: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_77: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_76: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_75: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_74: FD1P3DX - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_73: FD1P3DX - port map (D=>rptr_12, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_12_ff); - - FF_72: FD1P3DX - port map (D=>rptr_13, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_13_ff); - - FF_71: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_70: FD1P3DX - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_69: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_68: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_67: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_66: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_65: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_64: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_63: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_62: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_61: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_60: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_59: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_58: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_57: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_56: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_55: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_54: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_53: FD1S3DX - port map (D=>w_gcount_16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r16); - - FF_52: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_51: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_50: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_49: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_48: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_47: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_46: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_45: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_44: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_43: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_42: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_41: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_40: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_39: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_38: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_37: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_36: FD1S3DX - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_35: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_34: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_33: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_32: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_31: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_30: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_29: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_28: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_27: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_26: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_25: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_24: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_23: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_22: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_21: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_20: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_19: FD1S3DX - port map (D=>w_gcount_r16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r216); - - FF_18: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_17: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_16: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_15: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_14: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_13: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_12: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_11: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_10: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_9: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_8: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_7: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_6: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_5: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_4: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_3: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_2: FD1S3DX - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - w_gctr_8: CU2 - port map (CI=>co7, PC0=>wcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>iwcount_16, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8_1, - NC0=>ircount_16, NC1=>open); - - mux_8: MUX321 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, D4=>mdout1_4_0, D5=>mdout1_5_0, - D6=>mdout1_6_0, D7=>mdout1_7_0, D8=>mdout1_8_0, - D9=>mdout1_9_0, D10=>mdout1_10_0, D11=>mdout1_11_0, - D12=>mdout1_12_0, D13=>mdout1_13_0, D14=>mdout1_14_0, - D15=>mdout1_15_0, D16=>mdout1_16_0, D17=>mdout1_17_0, - D18=>mdout1_18_0, D19=>mdout1_19_0, D20=>mdout1_20_0, - D21=>mdout1_21_0, D22=>mdout1_22_0, D23=>mdout1_23_0, - D24=>mdout1_24_0, D25=>mdout1_25_0, D26=>mdout1_26_0, - D27=>mdout1_27_0, D28=>mdout1_28_0, D29=>mdout1_29_0, - D30=>mdout1_30_0, D31=>mdout1_31_0, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(0)); - - mux_7: MUX321 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, D4=>mdout1_4_1, D5=>mdout1_5_1, - D6=>mdout1_6_1, D7=>mdout1_7_1, D8=>mdout1_8_1, - D9=>mdout1_9_1, D10=>mdout1_10_1, D11=>mdout1_11_1, - D12=>mdout1_12_1, D13=>mdout1_13_1, D14=>mdout1_14_1, - D15=>mdout1_15_1, D16=>mdout1_16_1, D17=>mdout1_17_1, - D18=>mdout1_18_1, D19=>mdout1_19_1, D20=>mdout1_20_1, - D21=>mdout1_21_1, D22=>mdout1_22_1, D23=>mdout1_23_1, - D24=>mdout1_24_1, D25=>mdout1_25_1, D26=>mdout1_26_1, - D27=>mdout1_27_1, D28=>mdout1_28_1, D29=>mdout1_29_1, - D30=>mdout1_30_1, D31=>mdout1_31_1, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(1)); - - mux_6: MUX321 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, D4=>mdout1_4_2, D5=>mdout1_5_2, - D6=>mdout1_6_2, D7=>mdout1_7_2, D8=>mdout1_8_2, - D9=>mdout1_9_2, D10=>mdout1_10_2, D11=>mdout1_11_2, - D12=>mdout1_12_2, D13=>mdout1_13_2, D14=>mdout1_14_2, - D15=>mdout1_15_2, D16=>mdout1_16_2, D17=>mdout1_17_2, - D18=>mdout1_18_2, D19=>mdout1_19_2, D20=>mdout1_20_2, - D21=>mdout1_21_2, D22=>mdout1_22_2, D23=>mdout1_23_2, - D24=>mdout1_24_2, D25=>mdout1_25_2, D26=>mdout1_26_2, - D27=>mdout1_27_2, D28=>mdout1_28_2, D29=>mdout1_29_2, - D30=>mdout1_30_2, D31=>mdout1_31_2, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(2)); - - mux_5: MUX321 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, D4=>mdout1_4_3, D5=>mdout1_5_3, - D6=>mdout1_6_3, D7=>mdout1_7_3, D8=>mdout1_8_3, - D9=>mdout1_9_3, D10=>mdout1_10_3, D11=>mdout1_11_3, - D12=>mdout1_12_3, D13=>mdout1_13_3, D14=>mdout1_14_3, - D15=>mdout1_15_3, D16=>mdout1_16_3, D17=>mdout1_17_3, - D18=>mdout1_18_3, D19=>mdout1_19_3, D20=>mdout1_20_3, - D21=>mdout1_21_3, D22=>mdout1_22_3, D23=>mdout1_23_3, - D24=>mdout1_24_3, D25=>mdout1_25_3, D26=>mdout1_26_3, - D27=>mdout1_27_3, D28=>mdout1_28_3, D29=>mdout1_29_3, - D30=>mdout1_30_3, D31=>mdout1_31_3, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(3)); - - mux_4: MUX321 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, D4=>mdout1_4_4, D5=>mdout1_5_4, - D6=>mdout1_6_4, D7=>mdout1_7_4, D8=>mdout1_8_4, - D9=>mdout1_9_4, D10=>mdout1_10_4, D11=>mdout1_11_4, - D12=>mdout1_12_4, D13=>mdout1_13_4, D14=>mdout1_14_4, - D15=>mdout1_15_4, D16=>mdout1_16_4, D17=>mdout1_17_4, - D18=>mdout1_18_4, D19=>mdout1_19_4, D20=>mdout1_20_4, - D21=>mdout1_21_4, D22=>mdout1_22_4, D23=>mdout1_23_4, - D24=>mdout1_24_4, D25=>mdout1_25_4, D26=>mdout1_26_4, - D27=>mdout1_27_4, D28=>mdout1_28_4, D29=>mdout1_29_4, - D30=>mdout1_30_4, D31=>mdout1_31_4, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(4)); - - mux_3: MUX321 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, D4=>mdout1_4_5, D5=>mdout1_5_5, - D6=>mdout1_6_5, D7=>mdout1_7_5, D8=>mdout1_8_5, - D9=>mdout1_9_5, D10=>mdout1_10_5, D11=>mdout1_11_5, - D12=>mdout1_12_5, D13=>mdout1_13_5, D14=>mdout1_14_5, - D15=>mdout1_15_5, D16=>mdout1_16_5, D17=>mdout1_17_5, - D18=>mdout1_18_5, D19=>mdout1_19_5, D20=>mdout1_20_5, - D21=>mdout1_21_5, D22=>mdout1_22_5, D23=>mdout1_23_5, - D24=>mdout1_24_5, D25=>mdout1_25_5, D26=>mdout1_26_5, - D27=>mdout1_27_5, D28=>mdout1_28_5, D29=>mdout1_29_5, - D30=>mdout1_30_5, D31=>mdout1_31_5, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(5)); - - mux_2: MUX321 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, D4=>mdout1_4_6, D5=>mdout1_5_6, - D6=>mdout1_6_6, D7=>mdout1_7_6, D8=>mdout1_8_6, - D9=>mdout1_9_6, D10=>mdout1_10_6, D11=>mdout1_11_6, - D12=>mdout1_12_6, D13=>mdout1_13_6, D14=>mdout1_14_6, - D15=>mdout1_15_6, D16=>mdout1_16_6, D17=>mdout1_17_6, - D18=>mdout1_18_6, D19=>mdout1_19_6, D20=>mdout1_20_6, - D21=>mdout1_21_6, D22=>mdout1_22_6, D23=>mdout1_23_6, - D24=>mdout1_24_6, D25=>mdout1_25_6, D26=>mdout1_26_6, - D27=>mdout1_27_6, D28=>mdout1_28_6, D29=>mdout1_29_6, - D30=>mdout1_30_6, D31=>mdout1_31_6, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(6)); - - mux_1: MUX321 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, D4=>mdout1_4_7, D5=>mdout1_5_7, - D6=>mdout1_6_7, D7=>mdout1_7_7, D8=>mdout1_8_7, - D9=>mdout1_9_7, D10=>mdout1_10_7, D11=>mdout1_11_7, - D12=>mdout1_12_7, D13=>mdout1_13_7, D14=>mdout1_14_7, - D15=>mdout1_15_7, D16=>mdout1_16_7, D17=>mdout1_17_7, - D18=>mdout1_18_7, D19=>mdout1_19_7, D20=>mdout1_20_7, - D21=>mdout1_21_7, D22=>mdout1_22_7, D23=>mdout1_23_7, - D24=>mdout1_24_7, D25=>mdout1_25_7, D26=>mdout1_26_7, - D27=>mdout1_27_7, D28=>mdout1_28_7, D29=>mdout1_29_7, - D30=>mdout1_30_7, D31=>mdout1_31_7, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(7)); - - mux_0: MUX321 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, D2=>mdout1_2_8, - D3=>mdout1_3_8, D4=>mdout1_4_8, D5=>mdout1_5_8, - D6=>mdout1_6_8, D7=>mdout1_7_8, D8=>mdout1_8_8, - D9=>mdout1_9_8, D10=>mdout1_10_8, D11=>mdout1_11_8, - D12=>mdout1_12_8, D13=>mdout1_13_8, D14=>mdout1_14_8, - D15=>mdout1_15_8, D16=>mdout1_16_8, D17=>mdout1_17_8, - D18=>mdout1_18_8, D19=>mdout1_19_8, D20=>mdout1_20_8, - D21=>mdout1_21_8, D22=>mdout1_22_8, D23=>mdout1_23_8, - D24=>mdout1_24_8, D25=>mdout1_25_8, D26=>mdout1_26_8, - D27=>mdout1_27_8, D28=>mdout1_28_8, D29=>mdout1_29_8, - D30=>mdout1_30_8, D31=>mdout1_31_8, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(8)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, - B1=>w_g2b_xor_cluster_0, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r14, - B1=>wcount_r15, CI=>co6_2, GE=>co7_2); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>wcount_15, B0=>rcount_w14, - B1=>rcount_w15, CI=>co6_3, GE=>co7_3); - - full_cmp_8: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co7_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_64kx9 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX321 use entity ecp3.MUX321(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/fifo_64kx9_generate.log b/gbe2_ecp3/ipcores/fifo_64kx9_generate.log deleted file mode 100644 index 6860ef8..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx9_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:21 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_64kx9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 16 -data_width 9 -num_words 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_64kx9 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_64kx9.vhd - VHDL template : fifo_64kx9_tmpl.vhd - VHDL testbench : tb_fifo_64kx9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx9.srp - Estimated Resource Usage: - LUT : 379 - EBR : 32 - Reg : 177 - -END SCUBA Module Synthesis - -File: fifo_64kx9.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/fifo_64kx9_tmpl.vhd b/gbe2_ecp3/ipcores/fifo_64kx9_tmpl.vhd deleted file mode 100644 index a9d000b..0000000 --- a/gbe2_ecp3/ipcores/fifo_64kx9_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:23:21 2011 - --- parameterized module component declaration -component fifo_64kx9 - port (Data: in std_logic_vector(8 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_64kx9 - port map (Data(8 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(8 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores/ip_mem.jhd b/gbe2_ecp3/ipcores/ip_mem.jhd deleted file mode 100755 index 3ba907d..0000000 --- a/gbe2_ecp3/ipcores/ip_mem.jhd +++ /dev/null @@ -1,9 +0,0 @@ -MODULE ip_mem DEFIN ip_mem.vhd - SUBMODULE DP16KB - INSTANCE ip_mem_0_1_0 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE DP16KB - INSTANCE ip_mem_0_0_1 diff --git a/gbe2_ecp3/ipcores/ip_mem.lpc b/gbe2_ecp3/ipcores/ip_mem.lpc deleted file mode 100755 index 4c9ab25..0000000 --- a/gbe2_ecp3/ipcores/ip_mem.lpc +++ /dev/null @@ -1,60 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=RAM_DP_TRUE -CoreRevision=7.1 -ModuleName=ip_mem -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:24:37 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -AAddress=256 -BAddress=256 -AData=32 -BData=32 -enByte=0 -ByteSize=9 -AadPipeline=0 -BadPipeline=0 -AinPipeline=0 -BinPipeline=0 -AoutPipeline=0 -BoutPipeline=1 -AMOR=0 -BMOR=0 -AInData=Registered -BInData=Registered -AAdControl=Registered -BAdControl=Registered -MemFile=ip_mem.mem -MemFormat=orca -Reset=Sync -GSR=Enabled -WriteA=Normal -WriteB=Normal -Pad=0 -EnECC=0 -Optimization=Speed -Pipeline=0 - -[FilesGenerated] -ip_mem.mem=mem diff --git a/gbe2_ecp3/ipcores/ip_mem.mem b/gbe2_ecp3/ipcores/ip_mem.mem deleted file mode 100755 index 836ca91..0000000 --- a/gbe2_ecp3/ipcores/ip_mem.mem +++ /dev/null @@ -1,277 +0,0 @@ -#Format=Address-Hex -#Depth=256 -#DataWidth=32 -#AddrRadix=3 -#DataRadix=3 - -00: 214397e9 -01: 0000001b -02: c0a80002 -03: 0000c350 -04: 023bdc00 -05: 00000013 -06: c0a80005 -07: 0000c350 -08: 00000578 -09: 00000000 -0a: 00000000 -0b: 00000000 -0c: 00000000 -0d: 00000000 -0e: 00000000 -0f: 00000000 - -10: 214397e9 -11: 0000001b -12: c0a80002 -13: 0000c351 -14: 023bdc01 -15: 00000013 -16: c0a80006 -17: 0000c350 -18: 00000578 -19: 00000000 -1a: 00000000 -1b: 00000000 -1c: 00000000 -1d: 00000000 -1e: 00000000 -1f: 00000000 - -20: 214397e9 -21: 0000001b -22: c0a80002 -23: 0000c352 -24: 023bdc02 -25: 00000013 -26: c0a80007 -27: 0000c350 -28: 00000578 -29: 00000000 -2a: 00000000 -2b: 00000000 -2c: 00000000 -2d: 00000000 -2e: 00000000 -2f: 00000000 - -30: 214397e9 -31: 0000001b -32: c0a80002 -33: 0000c353 -34: 023bdc03 -35: 00000013 -36: c0a80008 -37: 0000c350 -38: 00000578 -39: 00000000 -3a: 00000000 -3b: 00000000 -3c: 00000000 -3d: 00000000 -3e: 00000000 -3f: 00000000 - -40: 00000000 -41: 00000000 -42: 00000000 -43: 00000000 -44: 00000000 -45: 00000000 -46: 00000000 -47: 00000000 -48: 00000578 -49: 00000000 -4a: 00000000 -4b: 00000000 -4c: 00000000 -4d: 00000000 -4e: 00000000 -4f: 00000000 - -50: 00000000 -51: 00000000 -52: 00000000 -53: 00000000 -54: 00000000 -55: 00000000 -56: 00000000 -57: 00000000 -58: 00000578 -59: 00000000 -5a: 00000000 -5b: 00000000 -5c: 00000000 -5d: 00000000 -5e: 00000000 -5f: 00000000 - -60: 00000000 -61: 00000000 -62: 00000000 -63: 00000000 -64: 00000000 -65: 00000000 -66: 00000000 -67: 00000000 -68: 00000578 -69: 00000000 -6a: 00000000 -6b: 00000000 -6c: 00000000 -6d: 00000000 -6e: 00000000 -6f: 00000000 - -70: 00000000 -71: 00000000 -72: 00000000 -73: 00000000 -74: 00000000 -75: 00000000 -76: 00000000 -77: 00000000 -78: 00000578 -79: 00000000 -7a: 00000000 -7b: 00000000 -7c: 00000000 -7d: 00000000 -7e: 00000000 -7f: 00000000 - -80: 00000000 -81: 00000000 -82: 00000000 -83: 00000000 -84: 00000000 -85: 00000000 -86: 00000000 -87: 00000000 -88: 00000578 -89: 00000000 -8a: 00000000 -8b: 00000000 -8c: 00000000 -8d: 00000000 -8e: 00000000 -8f: 00000000 - -90: 00000000 -91: 00000000 -92: 00000000 -93: 00000000 -94: 00000000 -95: 00000000 -96: 00000000 -97: 00000000 -98: 00000578 -99: 00000000 -9a: 00000000 -9b: 00000000 -9c: 00000000 -9d: 00000000 -9e: 00000000 -9f: 00000000 - -a0: 00000000 -a1: 00000000 -a2: 00000000 -a3: 00000000 -a4: 00000000 -a5: 00000000 -a6: 00000000 -a7: 00000000 -a8: 00000578 -a9: 00000000 -aa: 00000000 -ab: 00000000 -ac: 00000000 -ad: 00000000 -ae: 00000000 -af: 00000000 - -b0: 00000000 -b1: 00000000 -b2: 00000000 -b3: 00000000 -b4: 00000000 -b5: 00000000 -b6: 00000000 -b7: 00000000 -b8: 00000578 -b9: 00000000 -ba: 00000000 -bb: 00000000 -bc: 00000000 -bd: 00000000 -be: 00000000 -bf: 00000000 - -c0: 00000000 -c1: 00000000 -c2: 00000000 -c3: 00000000 -c4: 00000000 -c5: 00000000 -c6: 00000000 -c7: 00000000 -c8: 00000578 -c9: 00000000 -ca: 00000000 -cb: 00000000 -cc: 00000000 -cd: 00000000 -ce: 00000000 -cf: 00000000 - -d0: 00000000 -d1: 00000000 -d2: 00000000 -d3: 00000000 -d4: 00000000 -d5: 00000000 -d6: 00000000 -d7: 00000000 -d8: 00000578 -d9: 00000000 -da: 00000000 -db: 00000000 -dc: 00000000 -dd: 00000000 -de: 00000000 -df: 00000000 - -e0: 00000000 -e1: 00000000 -e2: 00000000 -e3: 00000000 -e4: 00000000 -e5: 00000000 -e6: 00000000 -e7: 00000000 -e8: 00000578 -e9: 00000000 -ea: 00000000 -eb: 00000000 -ec: 00000000 -ed: 00000000 -ee: 00000000 -ef: 00000000 - -f0: 00000000 -f1: 00000000 -f2: 00000000 -f3: 00000000 -f4: 00000000 -f5: 00000000 -f6: 00000000 -f7: 00000000 -f8: 00000578 -f9: 00000000 -fa: 00000000 -fb: 00000000 -fc: 00000000 -fd: 00000000 -fe: 00000000 -ff: 00000000 diff --git a/gbe2_ecp3/ipcores/ip_mem.mem.bak b/gbe2_ecp3/ipcores/ip_mem.mem.bak deleted file mode 100755 index 9810f31..0000000 --- a/gbe2_ecp3/ipcores/ip_mem.mem.bak +++ /dev/null @@ -1,277 +0,0 @@ -#Format=Address-Hex -#Depth=256 -#DataWidth=32 -#AddrRadix=3 -#DataRadix=3 - -00: 00006cf0 -01: 4902d745 -02: c0a80002 -03: 0000c350 -04: 0000eeee -05: eeeeeeee -06: c0a80005 -07: 0000c350 -08: 00000578 -09: 00000000 -0a: 00000000 -0b: 00000000 -0c: 00000000 -0d: 00000000 -0e: 00000000 -0f: 00000000 - -10: 00000000 -11: 00000000 -12: 00000000 -13: 00000000 -14: 00000000 -15: 00000000 -16: 00000000 -17: 00000000 -18: 00000578 -19: 00000000 -1a: 00000000 -1b: 00000000 -1c: 00000000 -1d: 00000000 -1e: 00000000 -1f: 00000000 - -20: 00000000 -21: 00000000 -22: 00000000 -23: 00000000 -24: 00000000 -25: 00000000 -26: 00000000 -27: 00000000 -28: 00000578 -29: 00000000 -2a: 00000000 -2b: 00000000 -2c: 00000000 -2d: 00000000 -2e: 00000000 -2f: 00000000 - -30: 00000000 -31: 00000000 -32: 00000000 -33: 00000000 -34: 00000000 -35: 00000000 -36: 00000000 -37: 00000000 -38: 00000578 -39: 00000000 -3a: 00000000 -3b: 00000000 -3c: 00000000 -3d: 00000000 -3e: 00000000 -3f: 00000000 - -40: 00000000 -41: 00000000 -42: 00000000 -43: 00000000 -44: 00000000 -45: 00000000 -46: 00000000 -47: 00000000 -48: 00000578 -49: 00000000 -4a: 00000000 -4b: 00000000 -4c: 00000000 -4d: 00000000 -4e: 00000000 -4f: 00000000 - -50: 00000000 -51: 00000000 -52: 00000000 -53: 00000000 -54: 00000000 -55: 00000000 -56: 00000000 -57: 00000000 -58: 00000578 -59: 00000000 -5a: 00000000 -5b: 00000000 -5c: 00000000 -5d: 00000000 -5e: 00000000 -5f: 00000000 - -60: 00000000 -61: 00000000 -62: 00000000 -63: 00000000 -64: 00000000 -65: 00000000 -66: 00000000 -67: 00000000 -68: 00000578 -69: 00000000 -6a: 00000000 -6b: 00000000 -6c: 00000000 -6d: 00000000 -6e: 00000000 -6f: 00000000 - -70: 00000000 -71: 00000000 -72: 00000000 -73: 00000000 -74: 00000000 -75: 00000000 -76: 00000000 -77: 00000000 -78: 00000578 -79: 00000000 -7a: 00000000 -7b: 00000000 -7c: 00000000 -7d: 00000000 -7e: 00000000 -7f: 00000000 - -80: 00000000 -81: 00000000 -82: 00000000 -83: 00000000 -84: 00000000 -85: 00000000 -86: 00000000 -87: 00000000 -88: 00000578 -89: 00000000 -8a: 00000000 -8b: 00000000 -8c: 00000000 -8d: 00000000 -8e: 00000000 -8f: 00000000 - -90: 00000000 -91: 00000000 -92: 00000000 -93: 00000000 -94: 00000000 -95: 00000000 -96: 00000000 -97: 00000000 -98: 00000578 -99: 00000000 -9a: 00000000 -9b: 00000000 -9c: 00000000 -9d: 00000000 -9e: 00000000 -9f: 00000000 - -a0: 00000000 -a1: 00000000 -a2: 00000000 -a3: 00000000 -a4: 00000000 -a5: 00000000 -a6: 00000000 -a7: 00000000 -a8: 00000578 -a9: 00000000 -aa: 00000000 -ab: 00000000 -ac: 00000000 -ad: 00000000 -ae: 00000000 -af: 00000000 - -b0: 00000000 -b1: 00000000 -b2: 00000000 -b3: 00000000 -b4: 00000000 -b5: 00000000 -b6: 00000000 -b7: 00000000 -b8: 00000578 -b9: 00000000 -ba: 00000000 -bb: 00000000 -bc: 00000000 -bd: 00000000 -be: 00000000 -bf: 00000000 - -c0: 00000000 -c1: 00000000 -c2: 00000000 -c3: 00000000 -c4: 00000000 -c5: 00000000 -c6: 00000000 -c7: 00000000 -c8: 00000578 -c9: 00000000 -ca: 00000000 -cb: 00000000 -cc: 00000000 -cd: 00000000 -ce: 00000000 -cf: 00000000 - -d0: 00000000 -d1: 00000000 -d2: 00000000 -d3: 00000000 -d4: 00000000 -d5: 00000000 -d6: 00000000 -d7: 00000000 -d8: 00000578 -d9: 00000000 -da: 00000000 -db: 00000000 -dc: 00000000 -dd: 00000000 -de: 00000000 -df: 00000000 - -e0: 00000000 -e1: 00000000 -e2: 00000000 -e3: 00000000 -e4: 00000000 -e5: 00000000 -e6: 00000000 -e7: 00000000 -e8: 00000578 -e9: 00000000 -ea: 00000000 -eb: 00000000 -ec: 00000000 -ed: 00000000 -ee: 00000000 -ef: 00000000 - -f0: 00000000 -f1: 00000000 -f2: 00000000 -f3: 00000000 -f4: 00000000 -f5: 00000000 -f6: 00000000 -f7: 00000000 -f8: 00000578 -f9: 00000000 -fa: 00000000 -fb: 00000000 -fc: 00000000 -fd: 00000000 -fe: 00000000 -ff: 00000000 diff --git a/gbe2_ecp3/ipcores/ip_mem.naf b/gbe2_ecp3/ipcores/ip_mem.naf deleted file mode 100755 index 11b52d7..0000000 --- a/gbe2_ecp3/ipcores/ip_mem.naf +++ /dev/null @@ -1,152 +0,0 @@ -DataInA[31] i -DataInA[30] i -DataInA[29] i -DataInA[28] i -DataInA[27] i -DataInA[26] i -DataInA[25] i -DataInA[24] i -DataInA[23] i -DataInA[22] i -DataInA[21] i -DataInA[20] i -DataInA[19] i -DataInA[18] i -DataInA[17] i -DataInA[16] i -DataInA[15] i -DataInA[14] i -DataInA[13] i -DataInA[12] i -DataInA[11] i -DataInA[10] i -DataInA[9] i -DataInA[8] i -DataInA[7] i -DataInA[6] i -DataInA[5] i -DataInA[4] i -DataInA[3] i -DataInA[2] i -DataInA[1] i -DataInA[0] i -DataInB[31] i -DataInB[30] i -DataInB[29] i -DataInB[28] i -DataInB[27] i -DataInB[26] i -DataInB[25] i -DataInB[24] i -DataInB[23] i -DataInB[22] i -DataInB[21] i -DataInB[20] i -DataInB[19] i -DataInB[18] i -DataInB[17] i -DataInB[16] i -DataInB[15] i -DataInB[14] i -DataInB[13] i -DataInB[12] i -DataInB[11] i -DataInB[10] i -DataInB[9] i -DataInB[8] i -DataInB[7] i -DataInB[6] i -DataInB[5] i -DataInB[4] i -DataInB[3] i -DataInB[2] i -DataInB[1] i -DataInB[0] i -AddressA[7] i -AddressA[6] i -AddressA[5] i -AddressA[4] i -AddressA[3] i -AddressA[2] i -AddressA[1] i -AddressA[0] i -AddressB[7] i -AddressB[6] i -AddressB[5] i -AddressB[4] i -AddressB[3] i -AddressB[2] i -AddressB[1] i -AddressB[0] i -ClockA i -ClockB i -ClockEnA i -ClockEnB i -WrA i -WrB i -ResetA i -ResetB i -QA[31] o -QA[30] o -QA[29] o -QA[28] o -QA[27] o -QA[26] o -QA[25] o -QA[24] o -QA[23] o -QA[22] o -QA[21] o -QA[20] o -QA[19] o -QA[18] o -QA[17] o -QA[16] o -QA[15] o -QA[14] o -QA[13] o -QA[12] o -QA[11] o -QA[10] o -QA[9] o -QA[8] o -QA[7] o -QA[6] o -QA[5] o -QA[4] o -QA[3] o -QA[2] o -QA[1] o -QA[0] o -QB[31] o -QB[30] o -QB[29] o -QB[28] o -QB[27] o -QB[26] o -QB[25] o -QB[24] o -QB[23] o -QB[22] o -QB[21] o -QB[20] o -QB[19] o -QB[18] o -QB[17] o -QB[16] o -QB[15] o -QB[14] o -QB[13] o -QB[12] o -QB[11] o -QB[10] o -QB[9] o -QB[8] o -QB[7] o -QB[6] o -QB[5] o -QB[4] o -QB[3] o -QB[2] o -QB[1] o -QB[0] o diff --git a/gbe2_ecp3/ipcores/ip_mem.srp b/gbe2_ecp3/ipcores/ip_mem.srp deleted file mode 100755 index e9b1af8..0000000 --- a/gbe2_ecp3/ipcores/ip_mem.srp +++ /dev/null @@ -1,29 +0,0 @@ -SCUBA, Version ispLever_v72_SP2_Build (23) -Mon Mar 29 21:52:49 2010 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n ip_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ramdp -device LFE2M100E -aaddr_width 8 -widtha 32 -baddr_width 8 -widthb 32 -anum_words 256 -bnum_words 256 -outdataB REGISTERED -writemodeA NORMAL -writemodeB NORMAL -resetmode SYNC -memfile /home/greg/projects/HubGen3/NewHub3/hub2/ipexpress/ip_mem/ip_mem.mem -memformat orca -cascade -1 -e - Circuit name : ip_mem - Module type : RAM_DP_TRUE - Module Version : 7.1 - Ports : - Inputs : DataInA[31:0], DataInB[31:0], AddressA[7:0], AddressB[7:0], ClockA, ClockB, ClockEnA, ClockEnB, WrA, WrB, ResetA, ResetB - Outputs : QA[31:0], QB[31:0] - I/O buffer : not inserted - Memory file : /home/greg/projects/HubGen3/NewHub3/hub2/ipexpress/ip_mem/ip_mem.mem - EDIF output : suppressed - VHDL output : ip_mem.vhd - VHDL template : ip_mem_tmpl.vhd - VHDL testbench : tb_ip_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : ip_mem.srp - Element Usage : - DP16KB : 2 - Estimated Resource Usage: - EBR : 2 diff --git a/gbe2_ecp3/ipcores/ip_mem.vhd b/gbe2_ecp3/ipcores/ip_mem.vhd deleted file mode 100755 index 5b2e06e..0000000 --- a/gbe2_ecp3/ipcores/ip_mem.vhd +++ /dev/null @@ -1,379 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 7.1 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type bram -wp 11 -rp 1010 -data_width 32 -rdata_width 32 -num_rows 256 -outdataB REGISTERED -writemodeA NORMAL -writemodeB NORMAL -memfile ip_mem.mem -memformat orca -cascade -1 -e - --- Thu Sep 22 11:24:37 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity ip_mem is - port ( - DataInA: in std_logic_vector(31 downto 0); - DataInB: in std_logic_vector(31 downto 0); - AddressA: in std_logic_vector(7 downto 0); - AddressB: in std_logic_vector(7 downto 0); - ClockA: in std_logic; - ClockB: in std_logic; - ClockEnA: in std_logic; - ClockEnB: in std_logic; - WrA: in std_logic; - WrB: in std_logic; - ResetA: in std_logic; - ResetB: in std_logic; - QA: out std_logic_vector(31 downto 0); - QB: out std_logic_vector(31 downto 0)); -end ip_mem; - -architecture Structure of ip_mem is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component DP16KC - generic (INITVAL_3F : in String; INITVAL_3E : in String; - INITVAL_3D : in String; INITVAL_3C : in String; - INITVAL_3B : in String; INITVAL_3A : in String; - INITVAL_39 : in String; INITVAL_38 : in String; - INITVAL_37 : in String; INITVAL_36 : in String; - INITVAL_35 : in String; INITVAL_34 : in String; - INITVAL_33 : in String; INITVAL_32 : in String; - INITVAL_31 : in String; INITVAL_30 : in String; - INITVAL_2F : in String; INITVAL_2E : in String; - INITVAL_2D : in String; INITVAL_2C : in String; - INITVAL_2B : in String; INITVAL_2A : in String; - INITVAL_29 : in String; INITVAL_28 : in String; - INITVAL_27 : in String; INITVAL_26 : in String; - INITVAL_25 : in String; INITVAL_24 : in String; - INITVAL_23 : in String; INITVAL_22 : in String; - INITVAL_21 : in String; INITVAL_20 : in String; - INITVAL_1F : in String; INITVAL_1E : in String; - INITVAL_1D : in String; INITVAL_1C : in String; - INITVAL_1B : in String; INITVAL_1A : in String; - INITVAL_19 : in String; INITVAL_18 : in String; - INITVAL_17 : in String; INITVAL_16 : in String; - INITVAL_15 : in String; INITVAL_14 : in String; - INITVAL_13 : in String; INITVAL_12 : in String; - INITVAL_11 : in String; INITVAL_10 : in String; - INITVAL_0F : in String; INITVAL_0E : in String; - INITVAL_0D : in String; INITVAL_0C : in String; - INITVAL_0B : in String; INITVAL_0A : in String; - INITVAL_09 : in String; INITVAL_08 : in String; - INITVAL_07 : in String; INITVAL_06 : in String; - INITVAL_05 : in String; INITVAL_04 : in String; - INITVAL_03 : in String; INITVAL_02 : in String; - INITVAL_01 : in String; INITVAL_00 : in String; - GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute MEM_LPC_FILE of ip_mem_0_0_1 : label is "ip_mem.lpc"; - attribute MEM_INIT_FILE of ip_mem_0_0_1 : label is "ip_mem.mem"; - attribute RESETMODE of ip_mem_0_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of ip_mem_0_1_0 : label is "ip_mem.lpc"; - attribute MEM_INIT_FILE of ip_mem_0_1_0 : label is "ip_mem.mem"; - attribute RESETMODE of ip_mem_0_1_0 : label is "SYNC"; - -begin - -- component instantiation statements - ip_mem_0_0_1: DP16KC - generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0F=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0E=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0D=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0C=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0B=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0A=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_09=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_08=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_07=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_06=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_05=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_04=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_03=> "0x00000000000000000000000000000000000005780C35000008000133DC030C353000020001B397E9", - INITVAL_02=> "0x00000000000000000000000000000000000005780C35000007000133DC020C352000020001B397E9", - INITVAL_01=> "0x00000000000000000000000000000000000005780C35000006000133DC010C351000020001B397E9", - INITVAL_00=> "0x00000000000000000000000000000000000005780C35000005000133DC000C350000020001B397E9", - CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", REGMODE_B=> "OUTREG", - REGMODE_A=> "NOREG", DATA_WIDTH_B=> 18, DATA_WIDTH_A=> 18) - port map (DIA0=>DataInA(0), DIA1=>DataInA(1), DIA2=>DataInA(2), - DIA3=>DataInA(3), DIA4=>DataInA(4), DIA5=>DataInA(5), - DIA6=>DataInA(6), DIA7=>DataInA(7), DIA8=>DataInA(8), - DIA9=>DataInA(9), DIA10=>DataInA(10), DIA11=>DataInA(11), - DIA12=>DataInA(12), DIA13=>DataInA(13), DIA14=>DataInA(14), - DIA15=>DataInA(15), DIA16=>DataInA(16), DIA17=>DataInA(17), - ADA0=>scuba_vhi, ADA1=>scuba_vhi, ADA2=>scuba_vlo, - ADA3=>scuba_vlo, ADA4=>AddressA(0), ADA5=>AddressA(1), - ADA6=>AddressA(2), ADA7=>AddressA(3), ADA8=>AddressA(4), - ADA9=>AddressA(5), ADA10=>AddressA(6), ADA11=>AddressA(7), - ADA12=>scuba_vlo, ADA13=>scuba_vlo, CEA=>ClockEnA, - CLKA=>ClockA, OCEA=>ClockEnA, WEA=>WrA, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>ResetA, - DIB0=>DataInB(0), DIB1=>DataInB(1), DIB2=>DataInB(2), - DIB3=>DataInB(3), DIB4=>DataInB(4), DIB5=>DataInB(5), - DIB6=>DataInB(6), DIB7=>DataInB(7), DIB8=>DataInB(8), - DIB9=>DataInB(9), DIB10=>DataInB(10), DIB11=>DataInB(11), - DIB12=>DataInB(12), DIB13=>DataInB(13), DIB14=>DataInB(14), - DIB15=>DataInB(15), DIB16=>DataInB(16), DIB17=>DataInB(17), - ADB0=>scuba_vhi, ADB1=>scuba_vhi, ADB2=>scuba_vlo, - ADB3=>scuba_vlo, ADB4=>AddressB(0), ADB5=>AddressB(1), - ADB6=>AddressB(2), ADB7=>AddressB(3), ADB8=>AddressB(4), - ADB9=>AddressB(5), ADB10=>AddressB(6), ADB11=>AddressB(7), - ADB12=>scuba_vlo, ADB13=>scuba_vlo, CEB=>ClockEnB, - CLKB=>ClockB, OCEB=>ClockEnB, WEB=>WrB, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>ResetB, DOA0=>QA(0), - DOA1=>QA(1), DOA2=>QA(2), DOA3=>QA(3), DOA4=>QA(4), - DOA5=>QA(5), DOA6=>QA(6), DOA7=>QA(7), DOA8=>QA(8), - DOA9=>QA(9), DOA10=>QA(10), DOA11=>QA(11), DOA12=>QA(12), - DOA13=>QA(13), DOA14=>QA(14), DOA15=>QA(15), DOA16=>QA(16), - DOA17=>QA(17), DOB0=>QB(0), DOB1=>QB(1), DOB2=>QB(2), - DOB3=>QB(3), DOB4=>QB(4), DOB5=>QB(5), DOB6=>QB(6), - DOB7=>QB(7), DOB8=>QB(8), DOB9=>QB(9), DOB10=>QB(10), - DOB11=>QB(11), DOB12=>QB(12), DOB13=>QB(13), DOB14=>QB(14), - DOB15=>QB(15), DOB16=>QB(16), DOB17=>QB(17)); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - ip_mem_0_1_0: DP16KC - generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_09=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_08=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_07=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_06=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_05=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_04=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_03=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - INITVAL_02=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - INITVAL_01=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - INITVAL_00=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", REGMODE_B=> "OUTREG", - REGMODE_A=> "NOREG", DATA_WIDTH_B=> 18, DATA_WIDTH_A=> 18) - port map (DIA0=>DataInA(18), DIA1=>DataInA(19), - DIA2=>DataInA(20), DIA3=>DataInA(21), DIA4=>DataInA(22), - DIA5=>DataInA(23), DIA6=>DataInA(24), DIA7=>DataInA(25), - DIA8=>DataInA(26), DIA9=>DataInA(27), DIA10=>DataInA(28), - DIA11=>DataInA(29), DIA12=>DataInA(30), DIA13=>DataInA(31), - DIA14=>scuba_vlo, DIA15=>scuba_vlo, DIA16=>scuba_vlo, - DIA17=>scuba_vlo, ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>AddressA(0), - ADA5=>AddressA(1), ADA6=>AddressA(2), ADA7=>AddressA(3), - ADA8=>AddressA(4), ADA9=>AddressA(5), ADA10=>AddressA(6), - ADA11=>AddressA(7), ADA12=>scuba_vlo, ADA13=>scuba_vlo, - CEA=>ClockEnA, CLKA=>ClockA, OCEA=>ClockEnA, WEA=>WrA, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>ResetA, DIB0=>DataInB(18), DIB1=>DataInB(19), - DIB2=>DataInB(20), DIB3=>DataInB(21), DIB4=>DataInB(22), - DIB5=>DataInB(23), DIB6=>DataInB(24), DIB7=>DataInB(25), - DIB8=>DataInB(26), DIB9=>DataInB(27), DIB10=>DataInB(28), - DIB11=>DataInB(29), DIB12=>DataInB(30), DIB13=>DataInB(31), - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vhi, ADB1=>scuba_vhi, - ADB2=>scuba_vlo, ADB3=>scuba_vlo, ADB4=>AddressB(0), - ADB5=>AddressB(1), ADB6=>AddressB(2), ADB7=>AddressB(3), - ADB8=>AddressB(4), ADB9=>AddressB(5), ADB10=>AddressB(6), - ADB11=>AddressB(7), ADB12=>scuba_vlo, ADB13=>scuba_vlo, - CEB=>ClockEnB, CLKB=>ClockB, OCEB=>ClockEnB, WEB=>WrB, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>ResetB, DOA0=>QA(18), DOA1=>QA(19), DOA2=>QA(20), - DOA3=>QA(21), DOA4=>QA(22), DOA5=>QA(23), DOA6=>QA(24), - DOA7=>QA(25), DOA8=>QA(26), DOA9=>QA(27), DOA10=>QA(28), - DOA11=>QA(29), DOA12=>QA(30), DOA13=>QA(31), DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>QB(18), - DOB1=>QB(19), DOB2=>QB(20), DOB3=>QB(21), DOB4=>QB(22), - DOB5=>QB(23), DOB6=>QB(24), DOB7=>QB(25), DOB8=>QB(26), - DOB9=>QB(27), DOB10=>QB(28), DOB11=>QB(29), DOB12=>QB(30), - DOB13=>QB(31), DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of ip_mem is - for Structure - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/ip_mem_generate.log b/gbe2_ecp3/ipcores/ip_mem_generate.log deleted file mode 100755 index 4a57089..0000000 --- a/gbe2_ecp3/ipcores/ip_mem_generate.log +++ /dev/null @@ -1,45 +0,0 @@ -Starting process: - -SCUBA, Version ispLever_v72_SP2_Build (23) -Mon Mar 29 21:52:49 2010 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n ip_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ramdp -device LFE2M100E -aaddr_width 8 -widtha 32 -baddr_width 8 -widthb 32 -anum_words 256 -bnum_words 256 -outdataB REGISTERED -writemodeA NORMAL -writemodeB NORMAL -resetmode SYNC -memfile /home/greg/projects/HubGen3/NewHub3/hub2/ipexpress/ip_mem/ip_mem.mem -memformat orca -cascade -1 -e - Circuit name : ip_mem - Module type : RAM_DP_TRUE - Module Version : 7.1 - Ports : - Inputs : DataInA[31:0], DataInB[31:0], AddressA[7:0], AddressB[7:0], ClockA, ClockB, ClockEnA, ClockEnB, WrA, WrB, ResetA, ResetB - Outputs : QA[31:0], QB[31:0] - I/O buffer : not inserted - Memory file : /home/greg/projects/HubGen3/NewHub3/hub2/ipexpress/ip_mem/ip_mem.mem - EDIF output : suppressed - VHDL output : ip_mem.vhd - VHDL template : ip_mem_tmpl.vhd - VHDL testbench : tb_ip_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : ip_mem.srp - Estimated Resource Usage: - EBR : 2 - -END SCUBA Module Synthesis - -File: ip_mem.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/ip_mem_tmpl.vhd b/gbe2_ecp3/ipcores/ip_mem_tmpl.vhd deleted file mode 100755 index d516b11..0000000 --- a/gbe2_ecp3/ipcores/ip_mem_tmpl.vhd +++ /dev/null @@ -1,23 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 7.1 --- Thu Sep 22 11:24:37 2011 - --- parameterized module component declaration -component ip_mem - port (DataInA: in std_logic_vector(31 downto 0); - DataInB: in std_logic_vector(31 downto 0); - AddressA: in std_logic_vector(7 downto 0); - AddressB: in std_logic_vector(7 downto 0); - ClockA: in std_logic; ClockB: in std_logic; - ClockEnA: in std_logic; ClockEnB: in std_logic; - WrA: in std_logic; WrB: in std_logic; ResetA: in std_logic; - ResetB: in std_logic; QA: out std_logic_vector(31 downto 0); - QB: out std_logic_vector(31 downto 0)); -end component; - --- parameterized module component instance -__ : ip_mem - port map (DataInA(31 downto 0)=>__, DataInB(31 downto 0)=>__, - AddressA(7 downto 0)=>__, AddressB(7 downto 0)=>__, ClockA=>__, - ClockB=>__, ClockEnA=>__, ClockEnB=>__, WrA=>__, WrB=>__, ResetA=>__, - ResetB=>__, QA(31 downto 0)=>__, QB(31 downto 0)=>__); diff --git a/gbe2_ecp3/ipcores/macInitDataInvWithMac.mem b/gbe2_ecp3/ipcores/macInitDataInvWithMac.mem deleted file mode 100755 index c93b822..0000000 --- a/gbe2_ecp3/ipcores/macInitDataInvWithMac.mem +++ /dev/null @@ -1,59 +0,0 @@ -#Format=Bin -#Depth=54 -#Width=8 -#AddrRadix=3 -#DataRadix=3 -#Data -00001111 -00001111 -10011001 -00000001 -11101110 -00000101 -00000000 -00000000 -00001100 -00000000 -00110100 -00010010 -01111000 -01010110 -10111100 -10011010 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -10000000 diff --git a/gbe2_ecp3/ipcores/mac_init_mem.lpc b/gbe2_ecp3/ipcores/mac_init_mem.lpc deleted file mode 100755 index 42f57b0..0000000 --- a/gbe2_ecp3/ipcores/mac_init_mem.lpc +++ /dev/null @@ -1,48 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=ROM -CoreRevision=5.0 -ModuleName=mac_init_mem -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:24:53 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -Address=54 -Data=8 -adPipeline=0 -inPipeline=0 -outPipeline=1 -MOR=0 -InData=Registered -AdControl=Registered -MemFile=macInitDataInvWithMac.mem -MemFormat=bin -Reset=Sync -Pad=0 -GSR=Enabled -EnECC=0 -Optimization=Speed -Pipeline=0 - -[FilesGenerated] -macInitDataInvWithMac.mem=mem diff --git a/gbe2_ecp3/ipcores/mac_init_mem.srp b/gbe2_ecp3/ipcores/mac_init_mem.srp deleted file mode 100755 index 37bdeb7..0000000 --- a/gbe2_ecp3/ipcores/mac_init_mem.srp +++ /dev/null @@ -1,29 +0,0 @@ -SCUBA, Version ispLever_v72_SP2_Build (23) -Thu Aug 20 16:00:49 2009 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n mac_init_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type romblk -device LFE2M100E -addr_width 6 -data_width 8 -num_words 54 -outdata REGISTERED -resetmode SYNC -memfile /home/greg/NewHub2/hub2/ipexpress/mac_init_mem/macInitDataInvWithMac.mem -memformat bin -cascade -1 -e - Circuit name : mac_init_mem - Module type : EBR_ROM - Module Version : 5.0 - Ports : - Inputs : Address[5:0], OutClock, OutClockEn, Reset - Outputs : Q[7:0] - I/O buffer : not inserted - Memory file : /home/greg/NewHub2/hub2/ipexpress/mac_init_mem/macInitDataInvWithMac.mem - EDIF output : suppressed - VHDL output : mac_init_mem.vhd - VHDL template : mac_init_mem_tmpl.vhd - VHDL testbench : tb_mac_init_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : mac_init_mem.srp - Element Usage : - DP16KB : 1 - Estimated Resource Usage: - EBR : 1 diff --git a/gbe2_ecp3/ipcores/mac_init_mem.vhd b/gbe2_ecp3/ipcores/mac_init_mem.vhd deleted file mode 100755 index 3934a61..0000000 --- a/gbe2_ecp3/ipcores/mac_init_mem.vhd +++ /dev/null @@ -1,262 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.0 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type bram -wp 00 -rp 1100 -addr_width 6 -data_width 8 -num_rows 54 -outdata REGISTERED -memfile macInitDataInvWithMac.mem -memformat bin -cascade -1 -e - --- Thu Sep 22 11:24:53 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity mac_init_mem is - port ( - Address: in std_logic_vector(5 downto 0); - OutClock: in std_logic; - OutClockEn: in std_logic; - Reset: in std_logic; - Q: out std_logic_vector(7 downto 0)); -end mac_init_mem; - -architecture Structure of mac_init_mem is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component DP16KC - generic (INITVAL_3F : in String; INITVAL_3E : in String; - INITVAL_3D : in String; INITVAL_3C : in String; - INITVAL_3B : in String; INITVAL_3A : in String; - INITVAL_39 : in String; INITVAL_38 : in String; - INITVAL_37 : in String; INITVAL_36 : in String; - INITVAL_35 : in String; INITVAL_34 : in String; - INITVAL_33 : in String; INITVAL_32 : in String; - INITVAL_31 : in String; INITVAL_30 : in String; - INITVAL_2F : in String; INITVAL_2E : in String; - INITVAL_2D : in String; INITVAL_2C : in String; - INITVAL_2B : in String; INITVAL_2A : in String; - INITVAL_29 : in String; INITVAL_28 : in String; - INITVAL_27 : in String; INITVAL_26 : in String; - INITVAL_25 : in String; INITVAL_24 : in String; - INITVAL_23 : in String; INITVAL_22 : in String; - INITVAL_21 : in String; INITVAL_20 : in String; - INITVAL_1F : in String; INITVAL_1E : in String; - INITVAL_1D : in String; INITVAL_1C : in String; - INITVAL_1B : in String; INITVAL_1A : in String; - INITVAL_19 : in String; INITVAL_18 : in String; - INITVAL_17 : in String; INITVAL_16 : in String; - INITVAL_15 : in String; INITVAL_14 : in String; - INITVAL_13 : in String; INITVAL_12 : in String; - INITVAL_11 : in String; INITVAL_10 : in String; - INITVAL_0F : in String; INITVAL_0E : in String; - INITVAL_0D : in String; INITVAL_0C : in String; - INITVAL_0B : in String; INITVAL_0A : in String; - INITVAL_09 : in String; INITVAL_08 : in String; - INITVAL_07 : in String; INITVAL_06 : in String; - INITVAL_05 : in String; INITVAL_04 : in String; - INITVAL_03 : in String; INITVAL_02 : in String; - INITVAL_01 : in String; INITVAL_00 : in String; - GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute MEM_LPC_FILE of mac_init_mem_0_0_0 : label is "mac_init_mem.lpc"; - attribute MEM_INIT_FILE of mac_init_mem_0_0_0 : label is "macInitDataInvWithMac.mem"; - attribute RESETMODE of mac_init_mem_0_0_0 : label is "SYNC"; - -begin - -- component instantiation statements - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - mac_init_mem_0_0_0: DP16KC - generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_09=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_08=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_07=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_06=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_05=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_04=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_03=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_02=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_01=> "0x00000000000000000000000000008000000000000000000000000000000000000000000000000000", - INITVAL_00=> "0x0000000000000000000000000000000000000000134BC0AC78024340000C0000000AEE0029901E0F", - CSDECODE_B=> "0b111", CSDECODE_A=> "0b000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", REGMODE_B=> "NOREG", - REGMODE_A=> "OUTREG", DATA_WIDTH_B=> 9, DATA_WIDTH_A=> 9) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>scuba_vlo, - ADA3=>Address(0), ADA4=>Address(1), ADA5=>Address(2), - ADA6=>Address(3), ADA7=>Address(4), ADA8=>Address(5), - ADA9=>scuba_vlo, ADA10=>scuba_vlo, ADA11=>scuba_vlo, - ADA12=>scuba_vlo, ADA13=>scuba_vlo, CEA=>OutClockEn, - CLKA=>OutClock, OCEA=>OutClockEn, WEA=>scuba_vlo, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>scuba_vlo, ADB4=>scuba_vlo, - ADB5=>scuba_vlo, ADB6=>scuba_vlo, ADB7=>scuba_vlo, - ADB8=>scuba_vlo, ADB9=>scuba_vlo, ADB10=>scuba_vlo, - ADB11=>scuba_vlo, ADB12=>scuba_vlo, ADB13=>scuba_vlo, - CEB=>scuba_vhi, CLKB=>scuba_vlo, OCEB=>scuba_vhi, - WEB=>scuba_vlo, CSB0=>scuba_vlo, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>scuba_vlo, DOA0=>Q(0), DOA1=>Q(1), - DOA2=>Q(2), DOA3=>Q(3), DOA4=>Q(4), DOA5=>Q(5), DOA6=>Q(6), - DOA7=>Q(7), DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>open, DOB1=>open, DOB2=>open, - DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of mac_init_mem is - for Structure - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores/mac_init_mem_generate.log b/gbe2_ecp3/ipcores/mac_init_mem_generate.log deleted file mode 100755 index a58303d..0000000 --- a/gbe2_ecp3/ipcores/mac_init_mem_generate.log +++ /dev/null @@ -1,45 +0,0 @@ -Starting process: - -SCUBA, Version ispLever_v72_SP2_Build (23) -Thu Aug 20 16:00:49 2009 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2008 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -n mac_init_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type romblk -device LFE2M100E -addr_width 6 -data_width 8 -num_words 54 -outdata REGISTERED -resetmode SYNC -memfile /home/greg/NewHub2/hub2/ipexpress/mac_init_mem/macInitDataInvWithMac.mem -memformat bin -cascade -1 -e - Circuit name : mac_init_mem - Module type : EBR_ROM - Module Version : 5.0 - Ports : - Inputs : Address[5:0], OutClock, OutClockEn, Reset - Outputs : Q[7:0] - I/O buffer : not inserted - Memory file : /home/greg/NewHub2/hub2/ipexpress/mac_init_mem/macInitDataInvWithMac.mem - EDIF output : suppressed - VHDL output : mac_init_mem.vhd - VHDL template : mac_init_mem_tmpl.vhd - VHDL testbench : tb_mac_init_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : mac_init_mem.srp - Estimated Resource Usage: - EBR : 1 - -END SCUBA Module Synthesis - -File: mac_init_mem.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores/mac_init_mem_tmpl.vhd b/gbe2_ecp3/ipcores/mac_init_mem_tmpl.vhd deleted file mode 100755 index 853efd2..0000000 --- a/gbe2_ecp3/ipcores/mac_init_mem_tmpl.vhd +++ /dev/null @@ -1,15 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.0 --- Thu Sep 22 11:24:53 2011 - --- parameterized module component declaration -component mac_init_mem - port (Address: in std_logic_vector(5 downto 0); - OutClock: in std_logic; OutClockEn: in std_logic; - Reset: in std_logic; Q: out std_logic_vector(7 downto 0)); -end component; - --- parameterized module component instance -__ : mac_init_mem - port map (Address(5 downto 0)=>__, OutClock=>__, OutClockEn=>__, - Reset=>__, Q(7 downto 0)=>__); diff --git a/gbe2_ecp3/ipcores/msg_file.log b/gbe2_ecp3/ipcores/msg_file.log deleted file mode 100755 index ecd2f32..0000000 --- a/gbe2_ecp3/ipcores/msg_file.log +++ /dev/null @@ -1,33 +0,0 @@ -SCUBA, Version ispLever_v8.1_PROD_Build (20) -Wed Jun 1 17:14:00 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2010 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/ispLEVER8.1/isptools/ispfpga/bin/lin/scuba -w -n fifo_512x72 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 9 -data_width 72 -num_words 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x72 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[71:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[71:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x72.vhd - VHDL template : fifo_512x72_tmpl.vhd - VHDL testbench : tb_fifo_512x72_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x72.srp - Estimated Resource Usage: - LUT : 97 - EBR : 2 - Reg : 102 - -END SCUBA Module Synthesis - diff --git a/gbe2_ecp3/ipcores/tb_fifo_2048x8_tmpl.vhd b/gbe2_ecp3/ipcores/tb_fifo_2048x8_tmpl.vhd deleted file mode 100755 index 343af71..0000000 --- a/gbe2_ecp3/ipcores/tb_fifo_2048x8_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_2048x8 - port (Data : in std_logic_vector(7 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(7 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_2048x8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 2051 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd b/gbe2_ecp3/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd deleted file mode 100755 index 1ad6e7d..0000000 --- a/gbe2_ecp3/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd +++ /dev/null @@ -1,115 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_32kx16x8_mb - port (Data : in std_logic_vector(15 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(7 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic - ); - end component; - - signal Data : std_logic_vector(15 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal AmEmptyThresh : std_logic_vector(15 downto 0) := (others => '0'); - signal AmFullThresh : std_logic_vector(14 downto 0) := (others => '0'); - signal Q : std_logic_vector(7 downto 0); - signal WCNT : std_logic_vector(15 downto 0); - signal RCNT : std_logic_vector(16 downto 0); - signal Empty: std_logic; - signal Full: std_logic; - signal AlmostEmpty: std_logic; - signal AlmostFull: std_logic; -begin - u1 : fifo_32kx16x8_mb - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - AmEmptyThresh => AmEmptyThresh, AmFullThresh => AmFullThresh, - Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full, - AlmostEmpty => AlmostEmpty, AlmostFull => AlmostFull - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 32771 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores/tb_fifo_32kx16x8_tmpl.vhd b/gbe2_ecp3/ipcores/tb_fifo_32kx16x8_tmpl.vhd deleted file mode 100755 index 3bbafb6..0000000 --- a/gbe2_ecp3/ipcores/tb_fifo_32kx16x8_tmpl.vhd +++ /dev/null @@ -1,106 +0,0 @@ --- VHDL testbench template generated by SCUBA ispLever_v8.0_PROD_Build (41) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_32kx16x8 - port (Data : in std_logic_vector(15 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(7 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(15 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); - signal WCNT : std_logic_vector(15 downto 0); - signal RCNT : std_logic_vector(16 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_32kx16x8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 32771 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores/tb_fifo_4096x32_tmpl.vhd b/gbe2_ecp3/ipcores/tb_fifo_4096x32_tmpl.vhd deleted file mode 100755 index 0559dd7..0000000 --- a/gbe2_ecp3/ipcores/tb_fifo_4096x32_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_4096x32 - port (Data : in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(31 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(31 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(31 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_4096x32 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 4099 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores/tb_fifo_4096x9_tmpl.vhd b/gbe2_ecp3/ipcores/tb_fifo_4096x9_tmpl.vhd deleted file mode 100755 index 9352be8..0000000 --- a/gbe2_ecp3/ipcores/tb_fifo_4096x9_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_4096x9 - port (Data : in std_logic_vector(8 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(8 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(8 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_4096x9 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 4099 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores/tb_fifo_512x64_tmpl.vhd b/gbe2_ecp3/ipcores/tb_fifo_512x64_tmpl.vhd deleted file mode 100644 index 7276404..0000000 --- a/gbe2_ecp3/ipcores/tb_fifo_512x64_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA ispLever_v8.1_PROD_Build (20) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_512x64 - port (Data : in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(71 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(71 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(71 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_512x64 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 515 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores/tb_fifo_512x72_tmpl.vhd b/gbe2_ecp3/ipcores/tb_fifo_512x72_tmpl.vhd deleted file mode 100644 index 0e16359..0000000 --- a/gbe2_ecp3/ipcores/tb_fifo_512x72_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA ispLever_v8.1_PROD_Build (20) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_512x72 - port (Data : in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(71 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(71 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(71 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_512x72 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 515 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores/tb_fifo_64kx8_tmpl.vhd b/gbe2_ecp3/ipcores/tb_fifo_64kx8_tmpl.vhd deleted file mode 100755 index 2096041..0000000 --- a/gbe2_ecp3/ipcores/tb_fifo_64kx8_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_64kx8 - port (Data : in std_logic_vector(7 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(7 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_64kx8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 65539 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores/tb_ip_mem_tmpl.vhd b/gbe2_ecp3/ipcores/tb_ip_mem_tmpl.vhd deleted file mode 100755 index 862c84d..0000000 --- a/gbe2_ecp3/ipcores/tb_ip_mem_tmpl.vhd +++ /dev/null @@ -1,174 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component ip_mem - port (DataInA : in std_logic_vector(31 downto 0); - DataInB : in std_logic_vector(31 downto 0); - AddressA : in std_logic_vector(7 downto 0); - AddressB : in std_logic_vector(7 downto 0); ClockA: in std_logic; - ClockB: in std_logic; ClockEnA: in std_logic; - ClockEnB: in std_logic; WrA: in std_logic; WrB: in std_logic; - ResetA: in std_logic; ResetB: in std_logic; - QA : out std_logic_vector(31 downto 0); - QB : out std_logic_vector(31 downto 0) - ); - end component; - - signal DataInA : std_logic_vector(31 downto 0) := (others => '0'); - signal DataInB : std_logic_vector(31 downto 0) := (others => '0'); - signal AddressA : std_logic_vector(7 downto 0) := (others => '0'); - signal AddressB : std_logic_vector(7 downto 0) := (others => '0'); - signal ClockA: std_logic := '0'; - signal ClockB: std_logic := '0'; - signal ClockEnA: std_logic := '0'; - signal ClockEnB: std_logic := '0'; - signal WrA: std_logic := '0'; - signal WrB: std_logic := '0'; - signal ResetA: std_logic := '0'; - signal ResetB: std_logic := '0'; - signal QA : std_logic_vector(31 downto 0); - signal QB : std_logic_vector(31 downto 0); -begin - u1 : ip_mem - port map (DataInA => DataInA, DataInB => DataInB, AddressA => AddressA, - AddressB => AddressB, ClockA => ClockA, ClockB => ClockB, - ClockEnA => ClockEnA, ClockEnB => ClockEnB, WrA => WrA, WrB => WrB, - ResetA => ResetA, ResetB => ResetB, QA => QA, QB => QB - ); - - process - - begin - DataInA <= (others => '0') ; - wait for 100 ns; - wait until ResetA = '0'; - for i in 0 to 259 loop - wait until ClockA'event and ClockA = '1'; - DataInA <= DataInA + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - DataInB <= (others => '0') ; - wait for 100 ns; - wait until ResetB = '0'; - wait until WrB = '1'; - for i in 0 to 259 loop - wait until ClockB'event and ClockB = '1'; - DataInB <= DataInB + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - AddressA <= (others => '0') ; - wait for 100 ns; - wait until ResetA = '0'; - for i in 0 to 518 loop - wait until ClockA'event and ClockA = '1'; - AddressA <= AddressA + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - AddressB <= (others => '0') ; - wait for 100 ns; - wait until ResetB = '0'; - wait until WrB = '1'; - for i in 0 to 518 loop - wait until ClockB'event and ClockB = '1'; - AddressB <= AddressB + '1' after 1 ns; - end loop; - wait; - end process; - - ClockA <= not ClockA after 5.00 ns; - - ClockB <= not ClockB after 5.00 ns; - - process - - begin - ClockEnA <= '0' ; - wait for 100 ns; - wait until ResetA = '0'; - ClockEnA <= '1' ; - wait; - end process; - - process - - begin - ClockEnB <= '0' ; - wait for 100 ns; - wait until ResetB = '0'; - ClockEnB <= '1' ; - wait; - end process; - - process - - begin - WrA <= '0' ; - wait until ResetA = '0'; - for i in 0 to 259 loop - wait until ClockA'event and ClockA = '1'; - WrA <= '1' after 1 ns; - end loop; - WrA <= '0' ; - wait; - end process; - - process - - begin - WrB <= '0' ; - wait until ResetB = '0'; - wait until WrA = '1'; - wait until WrA = '0'; - for i in 0 to 259 loop - wait until ClockA'event and ClockA = '1'; - end loop; - for i in 0 to 259 loop - wait until ClockB'event and ClockB = '1'; - WrB <= '1' after 1 ns; - end loop; - WrB <= '0' ; - wait; - end process; - - process - - begin - ResetA <= '1' ; - wait for 100 ns; - ResetA <= '0' ; - wait; - end process; - - process - - begin - ResetB <= '1' ; - wait for 100 ns; - ResetB <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores/tb_mac_init_mem_tmpl.vhd b/gbe2_ecp3/ipcores/tb_mac_init_mem_tmpl.vhd deleted file mode 100755 index 701eaf3..0000000 --- a/gbe2_ecp3/ipcores/tb_mac_init_mem_tmpl.vhd +++ /dev/null @@ -1,64 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component mac_init_mem - port (Address : in std_logic_vector(5 downto 0); - OutClock: in std_logic; OutClockEn: in std_logic; - Reset: in std_logic; Q : out std_logic_vector(7 downto 0) - ); - end component; - - signal Address : std_logic_vector(5 downto 0) := (others => '0'); - signal OutClock: std_logic := '0'; - signal OutClockEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); -begin - u1 : mac_init_mem - port map (Address => Address, OutClock => OutClock, OutClockEn => OutClockEn, - Reset => Reset, Q => Q - ); - - process - - begin - Address <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 57 loop - wait until OutClock'event and OutClock = '1'; - Address <= Address + '1' after 1 ns; - end loop; - wait; - end process; - - OutClock <= not OutClock after 5.00 ns; - - process - - begin - OutClockEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - OutClockEn <= '1' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/debug_fifo_2kx16.vhd b/gbe2_ecp3/ipcores_ecp3/debug_fifo_2kx16.vhd deleted file mode 100644 index e10ee86..0000000 --- a/gbe2_ecp3/ipcores_ecp3/debug_fifo_2kx16.vhd +++ /dev/null @@ -1,1965 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.2 ---/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 2048 -width 16 -depth 2048 -rdata_width 16 -no_enable -pe -1 -pf -1 -e - --- Wed Jul 21 14:35:10 2010 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity debug_fifo_2kx16 is - port ( - Data: in std_logic_vector(15 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(15 downto 0); - Empty: out std_logic; - Full: out std_logic); -end debug_fifo_2kx16; - -architecture Structure of debug_fifo_2kx16 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co5: std_logic; - signal wcount_11: std_logic; - signal co4: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co5_1: std_logic; - signal rcount_11: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_10: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_10: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "debug_fifo_2kx16.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_1 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_1 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_1 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_1 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_0_1 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_0_1_0 : label is "debug_fifo_2kx16.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_0 : label is ""; - attribute CSDECODE_B of pdp_ram_0_1_0 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_1_0 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_1_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_1_0 : label is "NORMAL"; - attribute GSR of pdp_ram_0_1_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_1_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_1_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_1_0 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_1_0 : label is "9"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t24: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t23: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t22: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t21: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t20: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t19: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t18: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t17: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t16: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t15: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t14: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t13: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t12: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t11: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t9: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t8: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t7: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t6: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t5: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t4: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t3: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t2: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t1: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t0: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_0); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_2); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_2); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), - DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>Q(4), DOB5=>Q(5), - DOB6=>Q(6), DOB7=>Q(7), DOB8=>Q(8), DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_1_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(9), DIA1=>Data(10), DIA2=>Data(11), - DIA3=>Data(12), DIA4=>Data(13), DIA5=>Data(14), - DIA6=>Data(15), DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>scuba_vlo, - ADA3=>wptr_0, ADA4=>wptr_1, ADA5=>wptr_2, ADA6=>wptr_3, - ADA7=>wptr_4, ADA8=>wptr_5, ADA9=>wptr_6, ADA10=>wptr_7, - ADA11=>wptr_8, ADA12=>wptr_9, ADA13=>wptr_10, CEA=>wren_i, - CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(9), - DOB1=>Q(10), DOB2=>Q(11), DOB3=>Q(12), DOB4=>Q(13), - DOB5=>Q(14), DOB6=>Q(15), DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_121: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_106: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_85: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_57: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_53: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_52: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_51: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_50: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r10, - B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w10, - B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of debug_fifo_2kx16 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.ipx deleted file mode 100644 index 1fb1491..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.jhd deleted file mode 100644 index 77bc2dd..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.jhd +++ /dev/null @@ -1,413 +0,0 @@ -MODULE fifo_1024x16x8 DEFIN fifo_1024x16x8.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1P3DX - INSTANCE FF_48 - SUBMODULE FD1P3DX - INSTANCE FF_49 - SUBMODULE FD1P3DX - INSTANCE FF_50 - SUBMODULE FD1P3DX - INSTANCE FF_51 - SUBMODULE FD1P3DX - INSTANCE FF_52 - SUBMODULE FD1P3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3BX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3BX - INSTANCE FF_116 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_0_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE ROM16X1A - INSTANCE LUT4_24 - SUBMODULE ROM16X1A - INSTANCE LUT4_25 - SUBMODULE ROM16X1A - INSTANCE LUT4_26 - SUBMODULE ROM16X1A - INSTANCE LUT4_27 - SUBMODULE ROM16X1A - INSTANCE LUT4_28 - SUBMODULE ROM16X1A - INSTANCE LUT4_29 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE OR2 - INSTANCE OR2_t21 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t22 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t23 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.lpc deleted file mode 100644 index 0bcc570..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_1024x16x8 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=12/05/2011 -Time=18:27:25 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=1024 -Width=18 -RDepth=2048 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.naf b/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.naf deleted file mode 100644 index 0e4fd42..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.naf +++ /dev/null @@ -1,35 +0,0 @@ -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.sort b/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.sort deleted file mode 100644 index 30a8b78..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_1024x16x8.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.srp b/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.srp deleted file mode 100644 index b624152..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Mon Dec 5 18:27:25 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_1024x16x8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 10 -data_width 18 -num_words 1024 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_1024x16x8 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[17:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_1024x16x8.vhd - VHDL template : fifo_1024x16x8_tmpl.vhd - VHDL testbench : tb_fifo_1024x16x8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_1024x16x8.srp - Element Usage : - AGEB2 : 12 - AND2 : 2 - CU2 : 12 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 67 - FD1S3BX : 1 - FD1S3DX : 47 - INV : 2 - OR2 : 1 - ROM16X1A : 30 - XOR2 : 21 - DP16KC : 1 - Estimated Resource Usage: - LUT : 114 - EBR : 1 - Reg : 117 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.sym b/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8.sym deleted file mode 100644 index 55d306865949b8f98690c6b8212d4544764b5b1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmYL_F-yZx6ot>FX+?+9!5UhgmJSjy>EL25YQQ2=O$%adLyb_Kii4vBCns@m z5|K>eSezX)I7>&z&Q6}ZR1945@!jOSd*8DIJ{i`lXbEC0rs!CbiU4`3(U>TqXb~2y zcF=AatF`hz(4YumrJcE^yYBUmPTWrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t22: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t21: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t20: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t19: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t18: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t17: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t16: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t15: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t14: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t13: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t12: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t11: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t10: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t9: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t8: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t7: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t6: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t5: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t4: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t3: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t2: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t1: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t0: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>w_gcount_r210, - DO0=>w_g2b_xor_cluster_0); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_gcount_r26, - DO0=>w_g2b_xor_cluster_1); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r4); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>w_gcount_r22, DO0=>wcount_r1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_2); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_2); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r210, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r210, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_10, AD2=>wcount_10, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_10, AD2=>wcount_10, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(0), DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), - DOB4=>Q(4), DOB5=>Q(5), DOB6=>Q(6), DOB7=>Q(7), DOB8=>Q(8), - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - FF_116: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_115: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_114: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_113: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_112: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_111: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_110: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_109: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_108: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_107: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_106: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_105: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_104: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_103: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_102: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_101: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_100: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_99: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_98: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_97: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_96: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_95: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_94: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_93: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_92: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_91: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_90: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_89: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_88: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_87: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_86: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_85: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_84: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_83: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_82: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_81: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_80: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_79: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_78: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_77: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_76: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_75: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_74: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_73: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_72: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_71: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_70: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_69: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_68: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_67: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_66: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_65: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_64: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_63: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_62: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_61: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_60: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_59: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_58: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_57: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_56: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_55: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_54: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_53: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_52: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_51: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_50: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_49: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_48: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_47: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_46: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_45: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_44: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_43: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_42: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_41: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_40: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_39: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_38: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_37: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_36: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_35: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_34: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_33: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_32: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_31: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_30: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_29: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_28: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_27: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_26: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_25: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_24: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_23: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_22: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_21: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_20: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_19: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_18: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_17: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_16: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_15: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_14: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_13: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_12: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_11: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_10: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_9: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_8: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_7: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_6: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_5: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_4: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_3: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_2: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>scuba_vlo, CO=>co5, - NC0=>iwcount_10, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r8, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r9, - B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>r_g2b_xor_cluster_0, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, - B1=>rcount_w10, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_1024x16x8 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8_generate.log deleted file mode 100644 index fa619dd..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Mon Dec 5 18:27:25 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_1024x16x8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 10 -data_width 18 -num_words 1024 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_1024x16x8 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[17:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_1024x16x8.vhd - VHDL template : fifo_1024x16x8_tmpl.vhd - VHDL testbench : tb_fifo_1024x16x8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_1024x16x8.srp - Estimated Resource Usage: - LUT : 114 - EBR : 1 - Reg : 117 - -END SCUBA Module Synthesis - -File: fifo_1024x16x8.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8_tmpl.vhd deleted file mode 100644 index d7608a4..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_1024x16x8_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Mon Dec 5 18:27:25 2011 - --- parameterized module component declaration -component fifo_1024x16x8 - port (Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_1024x16x8 - port map (Data(17 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(8 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_16kx8.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_16kx8.vhd deleted file mode 100644 index 12a3160..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_16kx8.vhd +++ /dev/null @@ -1,2711 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v8.0_PROD_Build (41) --- Module Version: 5.4 ---/opt/lattice/ispLEVER8.0/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 16384 -width 8 -depth 16384 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - --- Mon Dec 6 19:08:10 2010 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_16kx8 is - port ( - Data: in std_logic_vector(7 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_16kx8; - -architecture Structure of fifo_16kx8 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal co7: std_logic; - signal wcount_14: std_logic; - signal co6: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal co7_1: std_logic; - signal rcount_14: std_logic; - signal co6_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal wcount_r12: std_logic; - signal wcount_r13: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal rcount_w12: std_logic; - signal rcount_w13: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_41 : label is "0x6996"; - attribute initval of LUT4_40 : label is "0x6996"; - attribute initval of LUT4_39 : label is "0x6996"; - attribute initval of LUT4_38 : label is "0x6996"; - attribute initval of LUT4_37 : label is "0x6996"; - attribute initval of LUT4_36 : label is "0x6996"; - attribute initval of LUT4_35 : label is "0x6996"; - attribute initval of LUT4_34 : label is "0x6996"; - attribute initval of LUT4_33 : label is "0x6996"; - attribute initval of LUT4_32 : label is "0x6996"; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_7 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_7 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_7 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_7 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_7 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_7 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_7 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_7 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_7 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_7 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_7 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_0_7 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_1_6 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_6 : label is ""; - attribute CSDECODE_B of pdp_ram_0_1_6 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_1_6 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_1_6 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_1_6 : label is "NORMAL"; - attribute GSR of pdp_ram_0_1_6 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_6 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_1_6 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_1_6 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_1_6 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_1_6 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_2_5 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_5 : label is ""; - attribute CSDECODE_B of pdp_ram_0_2_5 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_2_5 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_2_5 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_2_5 : label is "NORMAL"; - attribute GSR of pdp_ram_0_2_5 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_2_5 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_2_5 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_2_5 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_2_5 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_2_5 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_3_4 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_4 : label is ""; - attribute CSDECODE_B of pdp_ram_0_3_4 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_3_4 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_3_4 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_3_4 : label is "NORMAL"; - attribute GSR of pdp_ram_0_3_4 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_3_4 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_3_4 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_3_4 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_3_4 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_3_4 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_4_3 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_3 : label is ""; - attribute CSDECODE_B of pdp_ram_0_4_3 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_4_3 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_4_3 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_4_3 : label is "NORMAL"; - attribute GSR of pdp_ram_0_4_3 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_4_3 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_4_3 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_4_3 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_4_3 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_4_3 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_5_2 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_2 : label is ""; - attribute CSDECODE_B of pdp_ram_0_5_2 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_5_2 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_5_2 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_5_2 : label is "NORMAL"; - attribute GSR of pdp_ram_0_5_2 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_5_2 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_5_2 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_5_2 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_5_2 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_5_2 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_6_1 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_1 : label is ""; - attribute CSDECODE_B of pdp_ram_0_6_1 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_6_1 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_6_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_6_1 : label is "NORMAL"; - attribute GSR of pdp_ram_0_6_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_6_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_6_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_6_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_6_1 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_6_1 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_7_0 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_0 : label is ""; - attribute CSDECODE_B of pdp_ram_0_7_0 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_7_0 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_7_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_7_0 : label is "NORMAL"; - attribute GSR of pdp_ram_0_7_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_7_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_7_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_7_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_7_0 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_7_0 : label is "1"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t30: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t29: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t28: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t27: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t26: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t25: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t24: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t23: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t22: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t21: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t20: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t19: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t18: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t17: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t16: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t15: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t14: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t13: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t12: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t11: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t10: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t9: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t8: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t7: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t6: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t5: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t4: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t3: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t2: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t1: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t0: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - LUT4_41: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>w_gcount_r214, - DO0=>w_g2b_xor_cluster_0); - - LUT4_40: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>w_gcount_r210, - DO0=>w_g2b_xor_cluster_1); - - LUT4_39: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_gcount_r26, - DO0=>w_g2b_xor_cluster_2); - - LUT4_38: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_37: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>scuba_vlo, DO0=>wcount_r12); - - LUT4_36: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_35: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>wcount_r12, DO0=>wcount_r9); - - LUT4_34: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r8); - - LUT4_33: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_32: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>scuba_vlo, DO0=>wcount_r6); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r25, AD0=>w_gcount_r26, DO0=>wcount_r5); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r22, DO0=>wcount_r2); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r1); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_1); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r0); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>r_gcount_w214, - DO0=>r_g2b_xor_cluster_0); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>r_gcount_w210, - DO0=>r_g2b_xor_cluster_1); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_gcount_w26, - DO0=>r_g2b_xor_cluster_2); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w13); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>scuba_vlo, DO0=>rcount_w12); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>rcount_w13, DO0=>rcount_w10); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>rcount_w12, DO0=>rcount_w9); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w8); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w26, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w25, AD0=>r_gcount_w26, DO0=>rcount_w5); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w22, DO0=>rcount_w2); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_14, AD2=>rcount_14, AD1=>w_gcount_r214, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_14, AD2=>rcount_14, AD1=>w_gcount_r214, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_14, AD2=>wcount_14, AD1=>r_gcount_w214, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_14, AD2=>wcount_14, AD1=>r_gcount_w214, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_7: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(0), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_1_6: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(1), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_2_5: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(2), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_3_4: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(3), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_4_3: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(4), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_5_2: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(5), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_6_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(6), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_7_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(7), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - FF_151: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_150: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_149: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_148: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_147: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_146: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_145: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_144: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_143: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_142: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_141: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_140: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_139: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_138: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_137: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_136: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_135: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_134: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_133: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_132: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_131: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_130: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_129: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_128: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_127: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_126: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_125: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_124: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_123: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_122: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_121: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_106: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_61: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_60: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_59: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_58: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_57: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_56: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_55: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_54: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>scuba_vlo, CO=>co7, - NC0=>iwcount_14, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>scuba_vlo, CO=>co7_1, - NC0=>ircount_14, NC1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>w_g2b_xor_cluster_0, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, - B1=>wcount_r13, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co6_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>r_g2b_xor_cluster_0, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, - B1=>rcount_w13, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co6_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_16kx8 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.ipx deleted file mode 100644 index baa4545..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.jhd deleted file mode 100644 index 9cd0750..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.jhd +++ /dev/null @@ -1,429 +0,0 @@ -MODULE fifo_2048x8 DEFIN fifo_2048x8.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1P3DX - INSTANCE FF_50 - SUBMODULE FD1P3DX - INSTANCE FF_51 - SUBMODULE FD1P3DX - INSTANCE FF_52 - SUBMODULE FD1P3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3BX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3DX - INSTANCE FF_116 - SUBMODULE FD1P3DX - INSTANCE FF_117 - SUBMODULE FD1P3DX - INSTANCE FF_118 - SUBMODULE FD1P3DX - INSTANCE FF_119 - SUBMODULE FD1P3DX - INSTANCE FF_120 - SUBMODULE FD1P3BX - INSTANCE FF_121 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_0_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE ROM16X1A - INSTANCE LUT4_24 - SUBMODULE ROM16X1A - INSTANCE LUT4_25 - SUBMODULE ROM16X1A - INSTANCE LUT4_26 - SUBMODULE ROM16X1A - INSTANCE LUT4_27 - SUBMODULE ROM16X1A - INSTANCE LUT4_28 - SUBMODULE ROM16X1A - INSTANCE LUT4_29 - SUBMODULE ROM16X1A - INSTANCE LUT4_30 - SUBMODULE ROM16X1A - INSTANCE LUT4_31 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE OR2 - INSTANCE OR2_t22 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t23 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t24 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.lpc deleted file mode 100755 index 7c0b6de..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_2048x8 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:23:58 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=2048 -Width=8 -RDepth=2048 -RWidth=8 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.naf b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.naf deleted file mode 100644 index 6378b4d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.naf +++ /dev/null @@ -1,24 +0,0 @@ -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.sort b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.sort deleted file mode 100644 index f965b2d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_2048x8.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.srp b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.srp deleted file mode 100755 index fb3f623..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:58 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_2048x8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 11 -data_width 8 -num_words 2048 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_2048x8 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[7:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[7:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_2048x8.vhd - VHDL template : fifo_2048x8_tmpl.vhd - VHDL testbench : tb_fifo_2048x8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_2048x8.srp - Element Usage : - AGEB2 : 12 - AND2 : 2 - CU2 : 12 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 70 - FD1S3BX : 1 - FD1S3DX : 49 - INV : 2 - OR2 : 1 - ROM16X1A : 32 - XOR2 : 22 - DP16KC : 1 - Estimated Resource Usage: - LUT : 117 - EBR : 1 - Reg : 122 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.sym b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.sym deleted file mode 100644 index 20d963c4ef1d929c1cb93f3f73c368c370b15957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmYk2u}i~17{%X5Q>E(A!OnxXUC2pBh&#hC)1vD<+m?MSulyXk0AA@(2yDlXMQ( zH|%3<^E1O{>1TuPRx~)f#3^logVGv7*S`kt=%$EDR}XqOy#!;rrlfzn+ogS`jqy;~ za9DP}(&m^{o#9Y*e(;nz-e9%ffx3ScCnHWtZD)TE-^>bpGW!CI)@>9qsxo!E6hF)i z!OU)Xm4E5teE*_9I9avVoO=frdu;KU7ihv4M+7OI>i0C~`W$U((5Jflh+f^z}vOteVNmImVhZa)w9EF*(KyJJp{zxqvyo!F{g$0y3~pk^lez diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.vhd deleted file mode 100755 index 82dac9a..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8.vhd +++ /dev/null @@ -1,1415 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 2048 -width 8 -depth 2048 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:23:58 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_2048x8 is - port ( - Data: in std_logic_vector(7 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_2048x8; - -architecture Structure of fifo_2048x8 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co5: std_logic; - signal wcount_11: std_logic; - signal co4: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co5_1: std_logic; - signal rcount_11: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_10: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_10: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_2048x8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute RESETMODE of pdp_ram_0_0_0 : label is "SYNC"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t24: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t23: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t22: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t21: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t20: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t19: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t18: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t17: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t16: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t15: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t14: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t13: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t12: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t11: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t9: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t8: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t7: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t6: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t5: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t4: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t3: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t2: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t1: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t0: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_2); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>scuba_vlo, DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>scuba_vlo, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>Q(0), DOB1=>Q(1), DOB2=>Q(2), - DOB3=>Q(3), DOB4=>Q(4), DOB5=>Q(5), DOB6=>Q(6), DOB7=>Q(7), - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_121: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_120: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_119: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_118: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_117: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_116: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_115: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_114: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_113: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_112: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_111: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_110: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_109: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_108: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_107: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_106: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_105: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_104: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_103: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_102: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_101: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_100: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_99: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_98: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_97: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_96: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_95: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_94: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_93: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_92: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_91: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_90: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_89: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_88: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_87: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_86: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_85: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_84: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_83: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_82: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_81: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_80: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_79: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_78: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_77: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_76: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_75: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_74: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_73: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_72: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_71: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_70: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_69: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_68: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_67: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_66: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_65: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_64: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_63: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_62: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_61: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_60: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_59: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_58: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_57: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_56: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_55: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_54: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_53: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_52: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_51: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_50: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_49: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_48: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_47: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_46: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_45: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_44: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_43: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_42: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_41: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_40: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_39: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_38: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_37: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_36: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_35: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_34: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_33: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_32: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_31: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_30: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_29: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_28: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_27: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_26: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_25: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_24: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_23: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_22: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_21: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_20: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_19: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_18: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_17: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_16: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_15: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_14: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_13: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_12: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_11: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_10: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_9: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_8: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_7: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_6: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_5: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_4: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_3: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_2: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r10, - B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w10, - B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_2048x8 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8_generate.log deleted file mode 100755 index 27952a3..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:58 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_2048x8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 11 -data_width 8 -num_words 2048 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_2048x8 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[7:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[7:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_2048x8.vhd - VHDL template : fifo_2048x8_tmpl.vhd - VHDL testbench : tb_fifo_2048x8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_2048x8.srp - Estimated Resource Usage: - LUT : 117 - EBR : 1 - Reg : 122 - -END SCUBA Module Synthesis - -File: fifo_2048x8.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8_tmpl.vhd deleted file mode 100755 index 1a3333f..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:23:58 2011 - --- parameterized module component declaration -component fifo_2048x8 - port (Data: in std_logic_vector(7 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_2048x8 - port map (Data(7 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(7 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.ipx deleted file mode 100644 index 263f9c7..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.jhd deleted file mode 100644 index a2a5854..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.jhd +++ /dev/null @@ -1,413 +0,0 @@ -MODULE fifo_2048x8x16 DEFIN fifo_2048x8x16.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1P3DX - INSTANCE FF_48 - SUBMODULE FD1P3DX - INSTANCE FF_49 - SUBMODULE FD1P3DX - INSTANCE FF_50 - SUBMODULE FD1P3DX - INSTANCE FF_51 - SUBMODULE FD1P3DX - INSTANCE FF_52 - SUBMODULE FD1P3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3BX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3BX - INSTANCE FF_116 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_0_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE ROM16X1A - INSTANCE LUT4_24 - SUBMODULE ROM16X1A - INSTANCE LUT4_25 - SUBMODULE ROM16X1A - INSTANCE LUT4_26 - SUBMODULE ROM16X1A - INSTANCE LUT4_27 - SUBMODULE ROM16X1A - INSTANCE LUT4_28 - SUBMODULE ROM16X1A - INSTANCE LUT4_29 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE OR2 - INSTANCE OR2_t21 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t22 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t23 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.lpc deleted file mode 100644 index 4f4da58..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_2048x8x16 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=12/05/2011 -Time=18:26:53 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=2048 -Width=9 -RDepth=1024 -RWidth=18 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.naf b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.naf deleted file mode 100644 index 30207e3..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.naf +++ /dev/null @@ -1,35 +0,0 @@ -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[17] o -Q[16] o -Q[15] o -Q[14] o -Q[13] o -Q[12] o -Q[11] o -Q[10] o -Q[9] o -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.sort b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.sort deleted file mode 100644 index e1406db..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_2048x8x16.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.srp b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.srp deleted file mode 100644 index ee6e782..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Mon Dec 5 18:26:53 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_2048x8x16 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 11 -data_width 9 -num_words 2048 -rdata_width 18 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_2048x8x16 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[17:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_2048x8x16.vhd - VHDL template : fifo_2048x8x16_tmpl.vhd - VHDL testbench : tb_fifo_2048x8x16_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_2048x8x16.srp - Element Usage : - AGEB2 : 12 - AND2 : 2 - CU2 : 12 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 67 - FD1S3BX : 1 - FD1S3DX : 47 - INV : 2 - OR2 : 1 - ROM16X1A : 30 - XOR2 : 21 - DP16KC : 1 - Estimated Resource Usage: - LUT : 114 - EBR : 1 - Reg : 117 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.sym b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.sym deleted file mode 100644 index c0322467bc1d366b175acb1110bbb5f931d78c40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmYL_ze~eV6ot>FDWxLP!9O5F2XRV8G>Ajcra1W{R4NqFYFiMa4Yf+TWpH%JuM3@4k25yP34Wr@(p+TH-(?MqSw3Xjc`X-k?3#tZf2io z1Kj7fHOw+!X%kHH%+^q4e(;tF-cW7414Z{D7>&6~3OoBve6yG0lf5s%Xk7a~TX|1S z7vYCJLr~gl*H+am|K0hy{#k!;v}7&Yp&iy%fCXk*;&M%j3S3ziK}4s{*wUQnyELUt yAL;yKdNrTP@--cR2E diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.vhd deleted file mode 100644 index 4486567..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16.vhd +++ /dev/null @@ -1,1367 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 2048 -width 9 -depth 2048 -rdata_width 18 -no_enable -pe -1 -pf -1 -e - --- Mon Dec 5 18:26:53 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_2048x8x16 is - port ( - Data: in std_logic_vector(8 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(17 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_2048x8x16; - -architecture Structure of fifo_2048x8x16 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal wcount_r0: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co5: std_logic; - signal wcount_11: std_logic; - signal co4: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal co5_1: std_logic; - signal rcount_10: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r7: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r9: std_logic; - signal wcount_r10: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w8: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w9: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_10: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_2048x8x16.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute RESETMODE of pdp_ram_0_0_0 : label is "SYNC"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t23: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t22: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t21: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t20: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t19: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t18: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t17: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t16: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t15: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t14: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t13: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t12: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t11: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t10: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t9: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t8: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t7: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t6: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t5: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t4: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t3: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t2: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t1: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t0: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_0); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_1); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_2); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>r_gcount_w210, - DO0=>r_g2b_xor_cluster_0); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_gcount_w26, - DO0=>r_g2b_xor_cluster_1); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>r_gcount_w22, DO0=>rcount_w1); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_2); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_10, AD2=>rcount_10, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_10, AD2=>rcount_10, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w210, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w210, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 18, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>scuba_vlo, - ADB4=>rptr_0, ADB5=>rptr_1, ADB6=>rptr_2, ADB7=>rptr_3, - ADB8=>rptr_4, ADB9=>rptr_5, ADB10=>rptr_6, ADB11=>rptr_7, - ADB12=>rptr_8, ADB13=>rptr_9, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), - DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>Q(4), DOB5=>Q(5), - DOB6=>Q(6), DOB7=>Q(7), DOB8=>Q(8), DOB9=>Q(9), DOB10=>Q(10), - DOB11=>Q(11), DOB12=>Q(12), DOB13=>Q(13), DOB14=>Q(14), - DOB15=>Q(15), DOB16=>Q(16), DOB17=>Q(17)); - - FF_116: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_115: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_114: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_113: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_112: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_111: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_110: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_109: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_108: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_107: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_106: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_105: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_104: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_103: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_102: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_101: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_100: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_99: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_98: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_97: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_96: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_95: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_94: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_93: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_92: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_91: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_90: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_89: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_88: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_87: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_86: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_85: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_84: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_83: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_82: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_81: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_80: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_79: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_78: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_77: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_76: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_75: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_74: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_73: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_72: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_71: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_70: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_69: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_68: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_67: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_66: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_65: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_64: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_63: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_62: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_61: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_60: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_59: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_58: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_57: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_56: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_55: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_54: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_53: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_52: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_51: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_50: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_49: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_48: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_47: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_46: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_45: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_44: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_43: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_42: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_41: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_40: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_39: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_38: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_37: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_36: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_35: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_34: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_33: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_32: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_31: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_30: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_29: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_28: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_27: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_26: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_25: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_24: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_23: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_22: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_21: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_20: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_19: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_18: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_17: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_16: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_15: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_14: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_13: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_12: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_11: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_10: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_9: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_8: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_7: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_6: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_5: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_4: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_3: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_2: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>scuba_vlo, CO=>co5_1, - NC0=>ircount_10, NC1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r1, - B1=>wcount_r2, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r3, - B1=>wcount_r4, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r5, - B1=>wcount_r6, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r7, - B1=>w_g2b_xor_cluster_0, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r9, - B1=>wcount_r10, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>scuba_vlo, - B1=>rcount_w0, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w1, - B1=>rcount_w2, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w3, - B1=>rcount_w4, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w5, - B1=>rcount_w6, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w8, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w9, - B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_2048x8x16 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16_generate.log deleted file mode 100644 index df4f889..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Mon Dec 5 18:26:53 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_2048x8x16 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 11 -data_width 9 -num_words 2048 -rdata_width 18 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_2048x8x16 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[17:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_2048x8x16.vhd - VHDL template : fifo_2048x8x16_tmpl.vhd - VHDL testbench : tb_fifo_2048x8x16_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_2048x8x16.srp - Estimated Resource Usage: - LUT : 114 - EBR : 1 - Reg : 117 - -END SCUBA Module Synthesis - -File: fifo_2048x8x16.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16_tmpl.vhd deleted file mode 100644 index e3db862..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_2048x8x16_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Mon Dec 5 18:26:53 2011 - --- parameterized module component declaration -component fifo_2048x8x16 - port (Data: in std_logic_vector(8 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(17 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_2048x8x16 - port map (Data(8 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(17 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.ipx deleted file mode 100644 index e457f75..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.jhd deleted file mode 100755 index 0f484db..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.jhd +++ /dev/null @@ -1,949 +0,0 @@ -MODULE fifo_32kx16x8_mb DEFIN fifo_32kx16x8_mb.vhd - SUBMODULE FADD2B - INSTANCE a3 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE af_d_cmp_7 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_6 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_5 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_4 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_3 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_2 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_1 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_0 - SUBMODULE FADD2B - INSTANCE af_d_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a2 - SUBMODULE AGEB2 - INSTANCE ae_cmp_8 - SUBMODULE AGEB2 - INSTANCE ae_cmp_7 - SUBMODULE AGEB2 - INSTANCE ae_cmp_6 - SUBMODULE AGEB2 - INSTANCE ae_cmp_5 - SUBMODULE AGEB2 - INSTANCE ae_cmp_4 - SUBMODULE AGEB2 - INSTANCE ae_cmp_3 - SUBMODULE AGEB2 - INSTANCE ae_cmp_2 - SUBMODULE AGEB2 - INSTANCE ae_cmp_1 - SUBMODULE AGEB2 - INSTANCE ae_cmp_0 - SUBMODULE FADD2B - INSTANCE ae_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE AGEB2 - INSTANCE full_cmp_7 - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_8 - SUBMODULE AGEB2 - INSTANCE empty_cmp_7 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE FADD2B - INSTANCE rfilld - SUBMODULE FSUB2B - INSTANCE rfill_8 - SUBMODULE FSUB2B - INSTANCE rfill_7 - SUBMODULE FSUB2B - INSTANCE rfill_6 - SUBMODULE FSUB2B - INSTANCE rfill_5 - SUBMODULE FSUB2B - INSTANCE rfill_4 - SUBMODULE FSUB2B - INSTANCE rfill_3 - SUBMODULE FSUB2B - INSTANCE rfill_2 - SUBMODULE FSUB2B - INSTANCE rfill_1 - SUBMODULE FSUB2B - INSTANCE rfill_0 - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE FSUB2B - INSTANCE wfill_8 - SUBMODULE FSUB2B - INSTANCE wfill_7 - SUBMODULE FSUB2B - INSTANCE wfill_6 - SUBMODULE FSUB2B - INSTANCE wfill_5 - SUBMODULE FSUB2B - INSTANCE wfill_4 - SUBMODULE FSUB2B - INSTANCE wfill_3 - SUBMODULE FSUB2B - INSTANCE wfill_2 - SUBMODULE FSUB2B - INSTANCE wfill_1 - SUBMODULE FSUB2B - INSTANCE wfill_0 - SUBMODULE FADD2B - INSTANCE rcntd - SUBMODULE FSUB2B - INSTANCE rcnt_8 - SUBMODULE FSUB2B - INSTANCE rcnt_7 - SUBMODULE FSUB2B - INSTANCE rcnt_6 - SUBMODULE FSUB2B - INSTANCE rcnt_5 - SUBMODULE FSUB2B - INSTANCE rcnt_4 - SUBMODULE FSUB2B - INSTANCE rcnt_3 - SUBMODULE FSUB2B - INSTANCE rcnt_2 - SUBMODULE FSUB2B - INSTANCE rcnt_1 - SUBMODULE FSUB2B - INSTANCE rcnt_0 - SUBMODULE FSUB2B - INSTANCE wcnt_8 - SUBMODULE FSUB2B - INSTANCE wcnt_7 - SUBMODULE FSUB2B - INSTANCE wcnt_6 - SUBMODULE FSUB2B - INSTANCE wcnt_5 - SUBMODULE FSUB2B - INSTANCE wcnt_4 - SUBMODULE FSUB2B - INSTANCE wcnt_3 - SUBMODULE FSUB2B - INSTANCE wcnt_2 - SUBMODULE FSUB2B - INSTANCE wcnt_1 - SUBMODULE FSUB2B - INSTANCE wcnt_0 - SUBMODULE MUX41 - INSTANCE mux_0 - SUBMODULE MUX41 - INSTANCE mux_1 - SUBMODULE MUX41 - INSTANCE mux_2 - SUBMODULE MUX41 - INSTANCE mux_3 - SUBMODULE MUX41 - INSTANCE mux_4 - SUBMODULE MUX41 - INSTANCE mux_5 - SUBMODULE MUX41 - INSTANCE mux_6 - SUBMODULE MUX41 - INSTANCE mux_7 - SUBMODULE CU2 - INSTANCE r_gctr_8 - SUBMODULE CU2 - INSTANCE r_gctr_7 - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE CU2 - INSTANCE w_gctr_7 - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3BX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1S3DX - INSTANCE FF_54 - SUBMODULE FD1S3DX - INSTANCE FF_55 - SUBMODULE FD1S3DX - INSTANCE FF_56 - SUBMODULE FD1S3DX - INSTANCE FF_57 - SUBMODULE FD1S3DX - INSTANCE FF_58 - SUBMODULE FD1S3DX - INSTANCE FF_59 - SUBMODULE FD1S3DX - INSTANCE FF_60 - SUBMODULE FD1S3DX - INSTANCE FF_61 - SUBMODULE FD1S3DX - INSTANCE FF_62 - SUBMODULE FD1S3DX - INSTANCE FF_63 - SUBMODULE FD1S3DX - INSTANCE FF_64 - SUBMODULE FD1S3DX - INSTANCE FF_65 - SUBMODULE FD1S3DX - INSTANCE FF_66 - SUBMODULE FD1S3DX - INSTANCE FF_67 - SUBMODULE FD1S3DX - INSTANCE FF_68 - SUBMODULE FD1S3DX - INSTANCE FF_69 - SUBMODULE FD1S3DX - INSTANCE FF_70 - SUBMODULE FD1S3DX - INSTANCE FF_71 - SUBMODULE FD1S3DX - INSTANCE FF_72 - SUBMODULE FD1S3DX - INSTANCE FF_73 - SUBMODULE FD1S3DX - INSTANCE FF_74 - SUBMODULE FD1S3DX - INSTANCE FF_75 - SUBMODULE FD1S3DX - INSTANCE FF_76 - SUBMODULE FD1S3DX - INSTANCE FF_77 - SUBMODULE FD1S3DX - INSTANCE FF_78 - SUBMODULE FD1S3DX - INSTANCE FF_79 - SUBMODULE FD1S3DX - INSTANCE FF_80 - SUBMODULE FD1S3DX - INSTANCE FF_81 - SUBMODULE FD1S3DX - INSTANCE FF_82 - SUBMODULE FD1S3DX - INSTANCE FF_83 - SUBMODULE FD1S3DX - INSTANCE FF_84 - SUBMODULE FD1S3DX - INSTANCE FF_85 - SUBMODULE FD1S3DX - INSTANCE FF_86 - SUBMODULE FD1S3DX - INSTANCE FF_87 - SUBMODULE FD1S3DX - INSTANCE FF_88 - SUBMODULE FD1S3DX - INSTANCE FF_89 - SUBMODULE FD1S3DX - INSTANCE FF_90 - SUBMODULE FD1S3DX - INSTANCE FF_91 - SUBMODULE FD1S3DX - INSTANCE FF_92 - SUBMODULE FD1S3DX - INSTANCE FF_93 - SUBMODULE FD1S3DX - INSTANCE FF_94 - SUBMODULE FD1S3DX - INSTANCE FF_95 - SUBMODULE FD1S3DX - INSTANCE FF_96 - SUBMODULE FD1S3DX - INSTANCE FF_97 - SUBMODULE FD1S3DX - INSTANCE FF_98 - SUBMODULE FD1S3DX - INSTANCE FF_99 - SUBMODULE FD1S3DX - INSTANCE FF_100 - SUBMODULE FD1S3DX - INSTANCE FF_101 - SUBMODULE FD1S3DX - INSTANCE FF_102 - SUBMODULE FD1S3DX - INSTANCE FF_103 - SUBMODULE FD1S3DX - INSTANCE FF_104 - SUBMODULE FD1S3DX - INSTANCE FF_105 - SUBMODULE FD1S3DX - INSTANCE FF_106 - SUBMODULE FD1S3DX - INSTANCE FF_107 - SUBMODULE FD1S3DX - INSTANCE FF_108 - SUBMODULE FD1S3DX - INSTANCE FF_109 - SUBMODULE FD1S3DX - INSTANCE FF_110 - SUBMODULE FD1S3DX - INSTANCE FF_111 - SUBMODULE FD1S3DX - INSTANCE FF_112 - SUBMODULE FD1S3DX - INSTANCE FF_113 - SUBMODULE FD1S3DX - INSTANCE FF_114 - SUBMODULE FD1S3DX - INSTANCE FF_115 - SUBMODULE FD1S3DX - INSTANCE FF_116 - SUBMODULE FD1S3DX - INSTANCE FF_117 - SUBMODULE FD1S3DX - INSTANCE FF_118 - SUBMODULE FD1S3DX - INSTANCE FF_119 - SUBMODULE FD1S3DX - INSTANCE FF_120 - SUBMODULE FD1S3DX - INSTANCE FF_121 - SUBMODULE FD1S3DX - INSTANCE FF_122 - SUBMODULE FD1S3DX - INSTANCE FF_123 - SUBMODULE FD1S3DX - INSTANCE FF_124 - SUBMODULE FD1S3DX - INSTANCE FF_125 - SUBMODULE FD1S3DX - INSTANCE FF_126 - SUBMODULE FD1S3DX - INSTANCE FF_127 - SUBMODULE FD1S3DX - INSTANCE FF_128 - SUBMODULE FD1S3DX - INSTANCE FF_129 - SUBMODULE FD1S3DX - INSTANCE FF_130 - SUBMODULE FD1S3DX - INSTANCE FF_131 - SUBMODULE FD1S3DX - INSTANCE FF_132 - SUBMODULE FD1S3DX - INSTANCE FF_133 - SUBMODULE FD1S3DX - INSTANCE FF_134 - SUBMODULE FD1S3DX - INSTANCE FF_135 - SUBMODULE FD1P3DX - INSTANCE FF_136 - SUBMODULE FD1P3DX - INSTANCE FF_137 - SUBMODULE FD1P3DX - INSTANCE FF_138 - SUBMODULE FD1P3DX - INSTANCE FF_139 - SUBMODULE FD1P3DX - INSTANCE FF_140 - SUBMODULE FD1P3DX - INSTANCE FF_141 - SUBMODULE FD1P3DX - INSTANCE FF_142 - SUBMODULE FD1P3DX - INSTANCE FF_143 - SUBMODULE FD1P3DX - INSTANCE FF_144 - SUBMODULE FD1P3DX - INSTANCE FF_145 - SUBMODULE FD1P3DX - INSTANCE FF_146 - SUBMODULE FD1P3DX - INSTANCE FF_147 - SUBMODULE FD1P3DX - INSTANCE FF_148 - SUBMODULE FD1P3DX - INSTANCE FF_149 - SUBMODULE FD1P3DX - INSTANCE FF_150 - SUBMODULE FD1P3DX - INSTANCE FF_151 - SUBMODULE FD1P3DX - INSTANCE FF_152 - SUBMODULE FD1P3DX - INSTANCE FF_153 - SUBMODULE FD1P3DX - INSTANCE FF_154 - SUBMODULE FD1P3DX - INSTANCE FF_155 - SUBMODULE FD1P3DX - INSTANCE FF_156 - SUBMODULE FD1P3DX - INSTANCE FF_157 - SUBMODULE FD1P3DX - INSTANCE FF_158 - SUBMODULE FD1P3DX - INSTANCE FF_159 - SUBMODULE FD1P3DX - INSTANCE FF_160 - SUBMODULE FD1P3DX - INSTANCE FF_161 - SUBMODULE FD1P3DX - INSTANCE FF_162 - SUBMODULE FD1P3DX - INSTANCE FF_163 - SUBMODULE FD1P3DX - INSTANCE FF_164 - SUBMODULE FD1P3DX - INSTANCE FF_165 - SUBMODULE FD1P3DX - INSTANCE FF_166 - SUBMODULE FD1P3DX - INSTANCE FF_167 - SUBMODULE FD1P3DX - INSTANCE FF_168 - SUBMODULE FD1P3DX - INSTANCE FF_169 - SUBMODULE FD1P3DX - INSTANCE FF_170 - SUBMODULE FD1P3DX - INSTANCE FF_171 - SUBMODULE FD1P3DX - INSTANCE FF_172 - SUBMODULE FD1P3DX - INSTANCE FF_173 - SUBMODULE FD1P3DX - INSTANCE FF_174 - SUBMODULE FD1P3DX - INSTANCE FF_175 - SUBMODULE FD1P3DX - INSTANCE FF_176 - SUBMODULE FD1P3DX - INSTANCE FF_177 - SUBMODULE FD1P3DX - INSTANCE FF_178 - SUBMODULE FD1P3DX - INSTANCE FF_179 - SUBMODULE FD1P3DX - INSTANCE FF_180 - SUBMODULE FD1P3DX - INSTANCE FF_181 - SUBMODULE FD1P3DX - INSTANCE FF_182 - SUBMODULE FD1P3DX - INSTANCE FF_183 - SUBMODULE FD1P3DX - INSTANCE FF_184 - SUBMODULE FD1P3DX - INSTANCE FF_185 - SUBMODULE FD1P3DX - INSTANCE FF_186 - SUBMODULE FD1P3DX - INSTANCE FF_187 - SUBMODULE FD1P3BX - INSTANCE FF_188 - SUBMODULE FD1P3DX - INSTANCE FF_189 - SUBMODULE FD1P3DX - INSTANCE FF_190 - SUBMODULE FD1P3DX - INSTANCE FF_191 - SUBMODULE FD1P3DX - INSTANCE FF_192 - SUBMODULE FD1P3DX - INSTANCE FF_193 - SUBMODULE FD1P3DX - INSTANCE FF_194 - SUBMODULE FD1P3DX - INSTANCE FF_195 - SUBMODULE FD1P3DX - INSTANCE FF_196 - SUBMODULE FD1P3DX - INSTANCE FF_197 - SUBMODULE FD1P3DX - INSTANCE FF_198 - SUBMODULE FD1P3DX - INSTANCE FF_199 - SUBMODULE FD1P3DX - INSTANCE FF_200 - SUBMODULE FD1P3DX - INSTANCE FF_201 - SUBMODULE FD1P3DX - INSTANCE FF_202 - SUBMODULE FD1P3DX - INSTANCE FF_203 - SUBMODULE FD1P3DX - INSTANCE FF_204 - SUBMODULE FD1P3DX - INSTANCE FF_205 - SUBMODULE FD1P3DX - INSTANCE FF_206 - SUBMODULE FD1P3DX - INSTANCE FF_207 - SUBMODULE FD1P3DX - INSTANCE FF_208 - SUBMODULE FD1P3DX - INSTANCE FF_209 - SUBMODULE FD1P3DX - INSTANCE FF_210 - SUBMODULE FD1P3DX - INSTANCE FF_211 - SUBMODULE FD1P3DX - INSTANCE FF_212 - SUBMODULE FD1P3DX - INSTANCE FF_213 - SUBMODULE FD1P3DX - INSTANCE FF_214 - SUBMODULE FD1P3DX - INSTANCE FF_215 - SUBMODULE FD1P3DX - INSTANCE FF_216 - SUBMODULE FD1P3DX - INSTANCE FF_217 - SUBMODULE FD1P3DX - INSTANCE FF_218 - SUBMODULE FD1P3DX - INSTANCE FF_219 - SUBMODULE FD1P3DX - INSTANCE FF_220 - SUBMODULE FD1P3DX - INSTANCE FF_221 - SUBMODULE FD1P3DX - INSTANCE FF_222 - SUBMODULE FD1P3DX - INSTANCE FF_223 - SUBMODULE FD1P3DX - INSTANCE FF_224 - SUBMODULE FD1P3DX - INSTANCE FF_225 - SUBMODULE FD1P3DX - INSTANCE FF_226 - SUBMODULE FD1P3DX - INSTANCE FF_227 - SUBMODULE FD1P3DX - INSTANCE FF_228 - SUBMODULE FD1P3DX - INSTANCE FF_229 - SUBMODULE FD1P3DX - INSTANCE FF_230 - SUBMODULE FD1P3DX - INSTANCE FF_231 - SUBMODULE FD1P3DX - INSTANCE FF_232 - SUBMODULE FD1P3DX - INSTANCE FF_233 - SUBMODULE FD1P3DX - INSTANCE FF_234 - SUBMODULE FD1P3DX - INSTANCE FF_235 - SUBMODULE FD1P3BX - INSTANCE FF_236 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_7_0 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_6_1 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_5_2 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_4_3 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_3_4 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_2_5 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_1_6 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_0_7 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_7_8 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_6_9 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_5_10 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_4_11 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_3_12 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_2_13 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_1_14 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_0_15 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_7_16 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_6_17 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_5_18 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_4_19 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_3_20 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_2_21 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_1_22 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_0_23 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_7_24 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_6_25 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_5_26 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_4_27 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_3_28 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_2_29 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_1_30 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_0_31 - SUBMODULE AND2 - INSTANCE AND2_t0 - SUBMODULE AND2 - INSTANCE AND2_t1 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE ROM16X1A - INSTANCE LUT4_24 - SUBMODULE ROM16X1A - INSTANCE LUT4_25 - SUBMODULE ROM16X1A - INSTANCE LUT4_26 - SUBMODULE ROM16X1A - INSTANCE LUT4_27 - SUBMODULE ROM16X1A - INSTANCE LUT4_28 - SUBMODULE ROM16X1A - INSTANCE LUT4_29 - SUBMODULE ROM16X1A - INSTANCE LUT4_30 - SUBMODULE ROM16X1A - INSTANCE LUT4_31 - SUBMODULE ROM16X1A - INSTANCE LUT4_32 - SUBMODULE ROM16X1A - INSTANCE LUT4_33 - SUBMODULE ROM16X1A - INSTANCE LUT4_34 - SUBMODULE ROM16X1A - INSTANCE LUT4_35 - SUBMODULE ROM16X1A - INSTANCE LUT4_36 - SUBMODULE ROM16X1A - INSTANCE LUT4_37 - SUBMODULE ROM16X1A - INSTANCE LUT4_38 - SUBMODULE ROM16X1A - INSTANCE LUT4_39 - SUBMODULE ROM16X1A - INSTANCE LUT4_40 - SUBMODULE ROM16X1A - INSTANCE LUT4_41 - SUBMODULE ROM16X1A - INSTANCE LUT4_42 - SUBMODULE ROM16X1A - INSTANCE LUT4_43 - SUBMODULE ROM16X1A - INSTANCE LUT4_44 - SUBMODULE ROM16X1A - INSTANCE LUT4_45 - SUBMODULE ROM16X1A - INSTANCE LUT4_46 - SUBMODULE ROM16X1A - INSTANCE LUT4_47 - SUBMODULE ROM16X1A - INSTANCE LUT4_48 - SUBMODULE ROM16X1A - INSTANCE LUT4_49 - SUBMODULE ROM16X1A - INSTANCE LUT4_50 - SUBMODULE ROM16X1A - INSTANCE LUT4_51 - SUBMODULE ROM16X1A - INSTANCE LUT4_52 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE XOR2 - INSTANCE XOR2_t24 - SUBMODULE XOR2 - INSTANCE XOR2_t25 - SUBMODULE XOR2 - INSTANCE XOR2_t26 - SUBMODULE XOR2 - INSTANCE XOR2_t27 - SUBMODULE XOR2 - INSTANCE XOR2_t28 - SUBMODULE XOR2 - INSTANCE XOR2_t29 - SUBMODULE XOR2 - INSTANCE XOR2_t30 - SUBMODULE XOR2 - INSTANCE XOR2_t31 - SUBMODULE XOR2 - INSTANCE XOR2_t32 - SUBMODULE XOR2 - INSTANCE XOR2_t33 - SUBMODULE XOR2 - INSTANCE XOR2_t34 - SUBMODULE XOR2 - INSTANCE XOR2_t35 - SUBMODULE XOR2 - INSTANCE XOR2_t36 - SUBMODULE OR2 - INSTANCE OR2_t37 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t38 - SUBMODULE INV - INSTANCE INV_2 - SUBMODULE AND2 - INSTANCE AND2_t39 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.lpc deleted file mode 100755 index aa233bb..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_32kx16x8_mb -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:22:35 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=32768 -Width=16 -RDepth=65536 -RWidth=8 -regout=0 -CtrlByRdEn=0 -EmpFlg=1 -PeMode=Dynamic - Single Threshold -PeAssert=16 -PeDeassert=12 -FullFlg=1 -PfMode=Dynamic - Single Threshold -PfAssert=32752 -PfDeassert=506 -RDataCount=1 -WDataCount=1 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.naf b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.naf deleted file mode 100755 index dc502f3..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.naf +++ /dev/null @@ -1,98 +0,0 @@ -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -AmEmptyThresh[15] i -AmEmptyThresh[14] i -AmEmptyThresh[13] i -AmEmptyThresh[12] i -AmEmptyThresh[11] i -AmEmptyThresh[10] i -AmEmptyThresh[9] i -AmEmptyThresh[8] i -AmEmptyThresh[7] i -AmEmptyThresh[6] i -AmEmptyThresh[5] i -AmEmptyThresh[4] i -AmEmptyThresh[3] i -AmEmptyThresh[2] i -AmEmptyThresh[1] i -AmEmptyThresh[0] i -AmFullThresh[14] i -AmFullThresh[13] i -AmFullThresh[12] i -AmFullThresh[11] i -AmFullThresh[10] i -AmFullThresh[9] i -AmFullThresh[8] i -AmFullThresh[7] i -AmFullThresh[6] i -AmFullThresh[5] i -AmFullThresh[4] i -AmFullThresh[3] i -AmFullThresh[2] i -AmFullThresh[1] i -AmFullThresh[0] i -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -WCNT[15] o -WCNT[14] o -WCNT[13] o -WCNT[12] o -WCNT[11] o -WCNT[10] o -WCNT[9] o -WCNT[8] o -WCNT[7] o -WCNT[6] o -WCNT[5] o -WCNT[4] o -WCNT[3] o -WCNT[2] o -WCNT[1] o -WCNT[0] o -RCNT[16] o -RCNT[15] o -RCNT[14] o -RCNT[13] o -RCNT[12] o -RCNT[11] o -RCNT[10] o -RCNT[9] o -RCNT[8] o -RCNT[7] o -RCNT[6] o -RCNT[5] o -RCNT[4] o -RCNT[3] o -RCNT[2] o -RCNT[1] o -RCNT[0] o -Empty o -Full o -AlmostEmpty o -AlmostFull o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.sort b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.sort deleted file mode 100644 index db451c2..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_32kx16x8_mb.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.srp b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.srp deleted file mode 100755 index 1b81d02..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.srp +++ /dev/null @@ -1,44 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:22:35 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_32kx16x8_mb -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 15 -data_width 16 -num_words 32768 -rdata_width 8 -no_enable -pe 0 -pf 0 -rfill -fill -e - Circuit name : fifo_32kx16x8_mb - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[15:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[7:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_32kx16x8_mb.vhd - VHDL template : fifo_32kx16x8_mb_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb.srp - Element Usage : - AGEB2 : 34 - AND2 : 4 - CU2 : 17 - FADD2B : 12 - FSUB2B : 36 - FD1P3BX : 2 - FD1P3DX : 99 - FD1S3BX : 2 - FD1S3DX : 134 - INV : 3 - MUX41 : 8 - OR2 : 1 - ROM16X1A : 53 - XOR2 : 35 - DP16KC : 32 - Estimated Resource Usage: - LUT : 299 - EBR : 32 - Reg : 237 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.sym b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.sym deleted file mode 100644 index 0c68ec94b111666ce5a3ae8f74e9301a7c69834a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmY+CKS&#K9L3-FE-H;3jL&fdSme3WcQ1BECj=obuA1-#BtAwNky3Pb|K)w@{?flD9hXDCMmmy6z~j5C(7@ zcHlrKqH8;io#9q|q0`1E?M!8ht8VqYigEU zj&^6X`j@JYKSMQF)1CjQ2Dlw|=4xT*Gl7|rNr|sN6-=jGuUc=Y^D!&t`wtFJ4%3(C zOe_ncIuV|afnj2k2}|BE;Rq(icQ@(TQl{q%BIEnM(ktME-eN_W&SQ<-k0JDP&Ca#&tsf2nR_mcrntnyyDx;;O)-%Knum$$uL;7(c+NSdjZ zSV+r5L(n%kAI~|XI77}zT(M2I#a3*QEqP@;V7|}0_wibBM@`}=E|3c-ki-5Mm#a8Q yPD+zK;Twx_ohlxHUmDtqd*mLzDGta1&J?%FZTwQ~lYMk`CppQ!DF4Bky7C`BEQNLe diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.vhd deleted file mode 100755 index a24a3e6..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb.vhd +++ /dev/null @@ -1,3997 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 32768 -width 16 -depth 32768 -rdata_width 8 -no_enable -pe 0 -pf 0 -rfill -fill -e - --- Thu Sep 22 11:22:35 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_32kx16x8_mb is - port ( - Data: in std_logic_vector(15 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(7 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end fifo_32kx16x8_mb; - -architecture Structure of fifo_32kx16x8_mb is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal rcount_w0: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal rcnt_reg_15_inv: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal wptr_15: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_16: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal rcnt_reg_16: std_logic; - signal empty_i: std_logic; - signal full_i: std_logic; - signal rRst: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co7: std_logic; - signal wcount_15: std_logic; - signal co6: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8: std_logic; - signal rcount_16: std_logic; - signal co7_1: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal wcnt_sub_0: std_logic; - signal wcnt_sub_1: std_logic; - signal wcnt_sub_2: std_logic; - signal co0_2: std_logic; - signal wcnt_sub_3: std_logic; - signal wcnt_sub_4: std_logic; - signal co1_2: std_logic; - signal wcnt_sub_5: std_logic; - signal wcnt_sub_6: std_logic; - signal co2_2: std_logic; - signal wcnt_sub_7: std_logic; - signal wcnt_sub_8: std_logic; - signal co3_2: std_logic; - signal wcnt_sub_9: std_logic; - signal wcnt_sub_10: std_logic; - signal co4_2: std_logic; - signal wcnt_sub_11: std_logic; - signal wcnt_sub_12: std_logic; - signal co5_2: std_logic; - signal wcnt_sub_13: std_logic; - signal wcnt_sub_14: std_logic; - signal co6_2: std_logic; - signal wcnt_sub_15: std_logic; - signal co7_2: std_logic; - signal wcnt_sub_msb: std_logic; - signal rcnt_sub_0: std_logic; - signal rcnt_sub_1: std_logic; - signal rcnt_sub_2: std_logic; - signal co0_3: std_logic; - signal rcnt_sub_3: std_logic; - signal rcnt_sub_4: std_logic; - signal co1_3: std_logic; - signal rcnt_sub_5: std_logic; - signal rcnt_sub_6: std_logic; - signal co2_3: std_logic; - signal rcnt_sub_7: std_logic; - signal rcnt_sub_8: std_logic; - signal co3_3: std_logic; - signal rcnt_sub_9: std_logic; - signal rcnt_sub_10: std_logic; - signal co4_3: std_logic; - signal rcnt_sub_11: std_logic; - signal rcnt_sub_12: std_logic; - signal co5_3: std_logic; - signal rcnt_sub_13: std_logic; - signal rcnt_sub_14: std_logic; - signal co6_3: std_logic; - signal rcnt_sub_15: std_logic; - signal rcnt_sub_16: std_logic; - signal co7_3: std_logic; - signal rcnt_sub_msb: std_logic; - signal co8_1d: std_logic; - signal co8_1: std_logic; - signal wfill_sub_0: std_logic; - signal wptr_0: std_logic; - signal wfill_sub_1: std_logic; - signal wfill_sub_2: std_logic; - signal co0_4: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wfill_sub_3: std_logic; - signal wfill_sub_4: std_logic; - signal co1_4: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wfill_sub_5: std_logic; - signal wfill_sub_6: std_logic; - signal co2_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wfill_sub_7: std_logic; - signal wfill_sub_8: std_logic; - signal co3_4: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wfill_sub_9: std_logic; - signal wfill_sub_10: std_logic; - signal co4_4: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wfill_sub_11: std_logic; - signal wfill_sub_12: std_logic; - signal co5_4: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wfill_sub_13: std_logic; - signal wfill_sub_14: std_logic; - signal co6_4: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wfill_sub_15: std_logic; - signal co7_4: std_logic; - signal wfill_sub_msb: std_logic; - signal rfill_sub_0: std_logic; - signal rptr_0: std_logic; - signal scuba_vhi: std_logic; - signal rfill_sub_1: std_logic; - signal rfill_sub_2: std_logic; - signal co0_5: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rfill_sub_3: std_logic; - signal rfill_sub_4: std_logic; - signal co1_5: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rfill_sub_5: std_logic; - signal rfill_sub_6: std_logic; - signal co2_5: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rfill_sub_7: std_logic; - signal rfill_sub_8: std_logic; - signal co3_5: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rfill_sub_9: std_logic; - signal rfill_sub_10: std_logic; - signal co4_5: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rfill_sub_11: std_logic; - signal rfill_sub_12: std_logic; - signal co5_5: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rfill_sub_13: std_logic; - signal rfill_sub_14: std_logic; - signal co6_5: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal rfill_sub_15: std_logic; - signal rfill_sub_16: std_logic; - signal co7_5: std_logic; - signal rptr_15: std_logic; - signal rfill_sub_msb: std_logic; - signal co8_2d: std_logic; - signal co8_2: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_6: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_6: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_6: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_6: std_logic; - signal wcount_r7: std_logic; - signal wcount_r8: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_6: std_logic; - signal wcount_r9: std_logic; - signal wcount_r10: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_6: std_logic; - signal wcount_r11: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_6: std_logic; - signal wcount_r13: std_logic; - signal wcount_r14: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_6: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_7: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_7: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_7: std_logic; - signal rcount_w7: std_logic; - signal rcount_w8: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_7: std_logic; - signal rcount_w9: std_logic; - signal rcount_w10: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_7: std_logic; - signal rcount_w11: std_logic; - signal rcount_w12: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_7: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w14: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_7: std_logic; - signal rcount_w15: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_14: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal rden_i: std_logic; - signal cmp_ci_2: std_logic; - signal rcnt_reg_0: std_logic; - signal rcnt_reg_1: std_logic; - signal co0_8: std_logic; - signal rcnt_reg_2: std_logic; - signal rcnt_reg_3: std_logic; - signal co1_8: std_logic; - signal rcnt_reg_4: std_logic; - signal rcnt_reg_5: std_logic; - signal co2_8: std_logic; - signal rcnt_reg_6: std_logic; - signal rcnt_reg_7: std_logic; - signal co3_8: std_logic; - signal rcnt_reg_8: std_logic; - signal rcnt_reg_9: std_logic; - signal co4_8: std_logic; - signal rcnt_reg_10: std_logic; - signal rcnt_reg_11: std_logic; - signal co5_8: std_logic; - signal rcnt_reg_12: std_logic; - signal rcnt_reg_13: std_logic; - signal co6_8: std_logic; - signal rcnt_reg_14: std_logic; - signal rcnt_reg_15: std_logic; - signal co7_7: std_logic; - signal ae_clrsig: std_logic; - signal ae_setsig: std_logic; - signal ae_d: std_logic; - signal ae_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_3: std_logic; - signal wcnt_reg_0: std_logic; - signal wcnt_reg_1: std_logic; - signal co0_9: std_logic; - signal wcnt_reg_2: std_logic; - signal wcnt_reg_3: std_logic; - signal co1_9: std_logic; - signal wcnt_reg_4: std_logic; - signal wcnt_reg_5: std_logic; - signal co2_9: std_logic; - signal wcnt_reg_6: std_logic; - signal wcnt_reg_7: std_logic; - signal co3_9: std_logic; - signal wcnt_reg_8: std_logic; - signal wcnt_reg_9: std_logic; - signal co4_9: std_logic; - signal wcnt_reg_10: std_logic; - signal wcnt_reg_11: std_logic; - signal co5_9: std_logic; - signal wcnt_reg_12: std_logic; - signal wcnt_reg_13: std_logic; - signal co6_9: std_logic; - signal wcnt_reg_14: std_logic; - signal wcnt_reg_15: std_logic; - signal af_d: std_logic; - signal af_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FSUB2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; BI: in std_logic; BOUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX41 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; SD1: in std_logic; SD2: in std_logic; - Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute RESETMODE of pdp_ram_0_0_31 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_1_30 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_30 : label is ""; - attribute RESETMODE of pdp_ram_0_1_30 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_2_29 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_29 : label is ""; - attribute RESETMODE of pdp_ram_0_2_29 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_3_28 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_28 : label is ""; - attribute RESETMODE of pdp_ram_0_3_28 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_4_27 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_27 : label is ""; - attribute RESETMODE of pdp_ram_0_4_27 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_5_26 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_26 : label is ""; - attribute RESETMODE of pdp_ram_0_5_26 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_6_25 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_25 : label is ""; - attribute RESETMODE of pdp_ram_0_6_25 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_7_24 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_24 : label is ""; - attribute RESETMODE of pdp_ram_0_7_24 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_0_23 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_23 : label is ""; - attribute RESETMODE of pdp_ram_1_0_23 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_1_22 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_1_22 : label is ""; - attribute RESETMODE of pdp_ram_1_1_22 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_2_21 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_2_21 : label is ""; - attribute RESETMODE of pdp_ram_1_2_21 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_3_20 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_3_20 : label is ""; - attribute RESETMODE of pdp_ram_1_3_20 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_4_19 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_4_19 : label is ""; - attribute RESETMODE of pdp_ram_1_4_19 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_5_18 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_5_18 : label is ""; - attribute RESETMODE of pdp_ram_1_5_18 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_6_17 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_6_17 : label is ""; - attribute RESETMODE of pdp_ram_1_6_17 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_7_16 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_7_16 : label is ""; - attribute RESETMODE of pdp_ram_1_7_16 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_0_15 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_15 : label is ""; - attribute RESETMODE of pdp_ram_2_0_15 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_1_14 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_1_14 : label is ""; - attribute RESETMODE of pdp_ram_2_1_14 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_2_13 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_2_13 : label is ""; - attribute RESETMODE of pdp_ram_2_2_13 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_3_12 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_3_12 : label is ""; - attribute RESETMODE of pdp_ram_2_3_12 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_4_11 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_4_11 : label is ""; - attribute RESETMODE of pdp_ram_2_4_11 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_5_10 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_5_10 : label is ""; - attribute RESETMODE of pdp_ram_2_5_10 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_6_9 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_6_9 : label is ""; - attribute RESETMODE of pdp_ram_2_6_9 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_7_8 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_7_8 : label is ""; - attribute RESETMODE of pdp_ram_2_7_8 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_0_7 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_7 : label is ""; - attribute RESETMODE of pdp_ram_3_0_7 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_1_6 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_1_6 : label is ""; - attribute RESETMODE of pdp_ram_3_1_6 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_2_5 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_2_5 : label is ""; - attribute RESETMODE of pdp_ram_3_2_5 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_3_4 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_3_4 : label is ""; - attribute RESETMODE of pdp_ram_3_3_4 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_4_3 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_4_3 : label is ""; - attribute RESETMODE of pdp_ram_3_4_3 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_5_2 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_5_2 : label is ""; - attribute RESETMODE of pdp_ram_3_5_2 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_6_1 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_6_1 : label is ""; - attribute RESETMODE of pdp_ram_3_6_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_7_0 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_7_0 : label is ""; - attribute RESETMODE of pdp_ram_3_7_0 : label is "SYNC"; - attribute GSR of FF_236 : label is "ENABLED"; - attribute GSR of FF_235 : label is "ENABLED"; - attribute GSR of FF_234 : label is "ENABLED"; - attribute GSR of FF_233 : label is "ENABLED"; - attribute GSR of FF_232 : label is "ENABLED"; - attribute GSR of FF_231 : label is "ENABLED"; - attribute GSR of FF_230 : label is "ENABLED"; - attribute GSR of FF_229 : label is "ENABLED"; - attribute GSR of FF_228 : label is "ENABLED"; - attribute GSR of FF_227 : label is "ENABLED"; - attribute GSR of FF_226 : label is "ENABLED"; - attribute GSR of FF_225 : label is "ENABLED"; - attribute GSR of FF_224 : label is "ENABLED"; - attribute GSR of FF_223 : label is "ENABLED"; - attribute GSR of FF_222 : label is "ENABLED"; - attribute GSR of FF_221 : label is "ENABLED"; - attribute GSR of FF_220 : label is "ENABLED"; - attribute GSR of FF_219 : label is "ENABLED"; - attribute GSR of FF_218 : label is "ENABLED"; - attribute GSR of FF_217 : label is "ENABLED"; - attribute GSR of FF_216 : label is "ENABLED"; - attribute GSR of FF_215 : label is "ENABLED"; - attribute GSR of FF_214 : label is "ENABLED"; - attribute GSR of FF_213 : label is "ENABLED"; - attribute GSR of FF_212 : label is "ENABLED"; - attribute GSR of FF_211 : label is "ENABLED"; - attribute GSR of FF_210 : label is "ENABLED"; - attribute GSR of FF_209 : label is "ENABLED"; - attribute GSR of FF_208 : label is "ENABLED"; - attribute GSR of FF_207 : label is "ENABLED"; - attribute GSR of FF_206 : label is "ENABLED"; - attribute GSR of FF_205 : label is "ENABLED"; - attribute GSR of FF_204 : label is "ENABLED"; - attribute GSR of FF_203 : label is "ENABLED"; - attribute GSR of FF_202 : label is "ENABLED"; - attribute GSR of FF_201 : label is "ENABLED"; - attribute GSR of FF_200 : label is "ENABLED"; - attribute GSR of FF_199 : label is "ENABLED"; - attribute GSR of FF_198 : label is "ENABLED"; - attribute GSR of FF_197 : label is "ENABLED"; - attribute GSR of FF_196 : label is "ENABLED"; - attribute GSR of FF_195 : label is "ENABLED"; - attribute GSR of FF_194 : label is "ENABLED"; - attribute GSR of FF_193 : label is "ENABLED"; - attribute GSR of FF_192 : label is "ENABLED"; - attribute GSR of FF_191 : label is "ENABLED"; - attribute GSR of FF_190 : label is "ENABLED"; - attribute GSR of FF_189 : label is "ENABLED"; - attribute GSR of FF_188 : label is "ENABLED"; - attribute GSR of FF_187 : label is "ENABLED"; - attribute GSR of FF_186 : label is "ENABLED"; - attribute GSR of FF_185 : label is "ENABLED"; - attribute GSR of FF_184 : label is "ENABLED"; - attribute GSR of FF_183 : label is "ENABLED"; - attribute GSR of FF_182 : label is "ENABLED"; - attribute GSR of FF_181 : label is "ENABLED"; - attribute GSR of FF_180 : label is "ENABLED"; - attribute GSR of FF_179 : label is "ENABLED"; - attribute GSR of FF_178 : label is "ENABLED"; - attribute GSR of FF_177 : label is "ENABLED"; - attribute GSR of FF_176 : label is "ENABLED"; - attribute GSR of FF_175 : label is "ENABLED"; - attribute GSR of FF_174 : label is "ENABLED"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t39: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_2: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t38: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_1: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t37: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t36: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t35: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t34: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t33: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t32: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t31: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t30: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t29: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t28: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t27: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t26: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t25: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t24: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t23: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t22: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t21: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t20: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t19: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t18: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t17: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t16: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t15: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t14: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t13: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t12: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t11: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t9: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t8: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t7: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t6: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - LUT4_52: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, - DO0=>w_g2b_xor_cluster_0); - - LUT4_51: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_1); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_2); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_3); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r9); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>wcount_r6); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r23, DO0=>wcount_r3); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r2); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r1); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_1); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_2); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - XOR2_t5: XOR2 - port map (A=>wcount_15, B=>r_gcount_w216, Z=>wcnt_sub_msb); - - XOR2_t4: XOR2 - port map (A=>w_gcount_r215, B=>rcount_16, Z=>rcnt_sub_msb); - - XOR2_t3: XOR2 - port map (A=>wptr_15, B=>r_gcount_w216, Z=>wfill_sub_msb); - - XOR2_t2: XOR2 - port map (A=>w_gcount_r215, B=>rptr_16, Z=>rfill_sub_msb); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - INV_0: INV - port map (A=>rcnt_reg_15, Z=>rcnt_reg_15_inv); - - AND2_t1: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15_inv, Z=>ae_clrsig); - - AND2_t0: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15, Z=>ae_setsig); - - pdp_ram_0_0_31: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_1_30: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_2_29: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_3_28: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_4_27: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_5_26: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_6_25: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_7_24: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_23: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_1_22: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_2_21: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_3_20: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_4_19: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_5_18: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_6_17: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_7_16: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_15: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_1_14: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_2_13: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_3_12: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_4_11: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_5_10: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_6_9: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_7_8: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_7: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_1_6: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_2_5: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_3_4: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_4_3: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_5_2: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_6_1: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_7_0: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_236: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_235: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_234: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_233: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_232: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_231: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_230: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_229: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_228: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_227: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_226: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_225: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_224: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_223: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_222: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_221: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_220: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_219: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_218: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_217: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_216: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_215: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_214: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_213: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_212: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_211: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_210: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_209: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_208: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_207: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_206: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_205: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_204: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_203: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_202: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_201: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_200: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_199: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_198: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_197: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_196: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_195: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_194: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_193: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_192: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_191: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_190: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_189: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_188: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_187: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_186: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_185: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_184: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_183: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_182: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_181: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_180: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_179: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_178: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_177: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_176: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_175: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_174: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_173: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_172: FD1P3DX - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_171: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_170: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_169: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_168: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_167: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_166: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_165: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_164: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_163: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_162: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_161: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_160: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_159: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_158: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_157: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_156: FD1P3DX - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_155: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_154: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_153: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_152: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_151: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_150: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_149: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_148: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_147: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_146: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_145: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_144: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_143: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_142: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_141: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_140: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_139: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_138: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_137: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_136: FD1P3DX - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_135: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_134: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_133: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_132: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_131: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_130: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_129: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_128: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_127: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_126: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_125: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_124: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_123: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_122: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_121: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_120: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_119: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_118: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_117: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_116: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_115: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_114: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_113: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_112: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_111: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_110: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_109: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_108: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_107: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_106: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_105: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_104: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_103: FD1S3DX - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_102: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_101: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_100: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_99: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_98: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_97: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_96: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_95: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_94: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_93: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_92: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_91: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_90: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_89: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_88: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_87: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_86: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_85: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_84: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_83: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_82: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_81: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_80: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_79: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_78: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_77: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_76: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_75: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_74: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_73: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_72: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_71: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_70: FD1S3DX - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_69: FD1S3DX - port map (D=>wcnt_sub_0, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_0); - - FF_68: FD1S3DX - port map (D=>wcnt_sub_1, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_1); - - FF_67: FD1S3DX - port map (D=>wcnt_sub_2, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_2); - - FF_66: FD1S3DX - port map (D=>wcnt_sub_3, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_3); - - FF_65: FD1S3DX - port map (D=>wcnt_sub_4, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_4); - - FF_64: FD1S3DX - port map (D=>wcnt_sub_5, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_5); - - FF_63: FD1S3DX - port map (D=>wcnt_sub_6, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_6); - - FF_62: FD1S3DX - port map (D=>wcnt_sub_7, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_7); - - FF_61: FD1S3DX - port map (D=>wcnt_sub_8, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_8); - - FF_60: FD1S3DX - port map (D=>wcnt_sub_9, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_9); - - FF_59: FD1S3DX - port map (D=>wcnt_sub_10, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_10); - - FF_58: FD1S3DX - port map (D=>wcnt_sub_11, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_11); - - FF_57: FD1S3DX - port map (D=>wcnt_sub_12, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_12); - - FF_56: FD1S3DX - port map (D=>wcnt_sub_13, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_13); - - FF_55: FD1S3DX - port map (D=>wcnt_sub_14, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_14); - - FF_54: FD1S3DX - port map (D=>wcnt_sub_15, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_15); - - FF_53: FD1S3DX - port map (D=>rcnt_sub_0, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_0); - - FF_52: FD1S3DX - port map (D=>rcnt_sub_1, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_1); - - FF_51: FD1S3DX - port map (D=>rcnt_sub_2, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_2); - - FF_50: FD1S3DX - port map (D=>rcnt_sub_3, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_3); - - FF_49: FD1S3DX - port map (D=>rcnt_sub_4, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_4); - - FF_48: FD1S3DX - port map (D=>rcnt_sub_5, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_5); - - FF_47: FD1S3DX - port map (D=>rcnt_sub_6, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_6); - - FF_46: FD1S3DX - port map (D=>rcnt_sub_7, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_7); - - FF_45: FD1S3DX - port map (D=>rcnt_sub_8, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_8); - - FF_44: FD1S3DX - port map (D=>rcnt_sub_9, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_9); - - FF_43: FD1S3DX - port map (D=>rcnt_sub_10, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_10); - - FF_42: FD1S3DX - port map (D=>rcnt_sub_11, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_11); - - FF_41: FD1S3DX - port map (D=>rcnt_sub_12, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_12); - - FF_40: FD1S3DX - port map (D=>rcnt_sub_13, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_13); - - FF_39: FD1S3DX - port map (D=>rcnt_sub_14, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_14); - - FF_38: FD1S3DX - port map (D=>rcnt_sub_15, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_15); - - FF_37: FD1S3DX - port map (D=>rcnt_sub_16, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_16); - - FF_36: FD1S3DX - port map (D=>wfill_sub_0, CK=>WrClock, CD=>Reset, Q=>WCNT(0)); - - FF_35: FD1S3DX - port map (D=>wfill_sub_1, CK=>WrClock, CD=>Reset, Q=>WCNT(1)); - - FF_34: FD1S3DX - port map (D=>wfill_sub_2, CK=>WrClock, CD=>Reset, Q=>WCNT(2)); - - FF_33: FD1S3DX - port map (D=>wfill_sub_3, CK=>WrClock, CD=>Reset, Q=>WCNT(3)); - - FF_32: FD1S3DX - port map (D=>wfill_sub_4, CK=>WrClock, CD=>Reset, Q=>WCNT(4)); - - FF_31: FD1S3DX - port map (D=>wfill_sub_5, CK=>WrClock, CD=>Reset, Q=>WCNT(5)); - - FF_30: FD1S3DX - port map (D=>wfill_sub_6, CK=>WrClock, CD=>Reset, Q=>WCNT(6)); - - FF_29: FD1S3DX - port map (D=>wfill_sub_7, CK=>WrClock, CD=>Reset, Q=>WCNT(7)); - - FF_28: FD1S3DX - port map (D=>wfill_sub_8, CK=>WrClock, CD=>Reset, Q=>WCNT(8)); - - FF_27: FD1S3DX - port map (D=>wfill_sub_9, CK=>WrClock, CD=>Reset, Q=>WCNT(9)); - - FF_26: FD1S3DX - port map (D=>wfill_sub_10, CK=>WrClock, CD=>Reset, Q=>WCNT(10)); - - FF_25: FD1S3DX - port map (D=>wfill_sub_11, CK=>WrClock, CD=>Reset, Q=>WCNT(11)); - - FF_24: FD1S3DX - port map (D=>wfill_sub_12, CK=>WrClock, CD=>Reset, Q=>WCNT(12)); - - FF_23: FD1S3DX - port map (D=>wfill_sub_13, CK=>WrClock, CD=>Reset, Q=>WCNT(13)); - - FF_22: FD1S3DX - port map (D=>wfill_sub_14, CK=>WrClock, CD=>Reset, Q=>WCNT(14)); - - FF_21: FD1S3DX - port map (D=>wfill_sub_15, CK=>WrClock, CD=>Reset, Q=>WCNT(15)); - - FF_20: FD1S3DX - port map (D=>rfill_sub_0, CK=>RdClock, CD=>rRst, Q=>RCNT(0)); - - FF_19: FD1S3DX - port map (D=>rfill_sub_1, CK=>RdClock, CD=>rRst, Q=>RCNT(1)); - - FF_18: FD1S3DX - port map (D=>rfill_sub_2, CK=>RdClock, CD=>rRst, Q=>RCNT(2)); - - FF_17: FD1S3DX - port map (D=>rfill_sub_3, CK=>RdClock, CD=>rRst, Q=>RCNT(3)); - - FF_16: FD1S3DX - port map (D=>rfill_sub_4, CK=>RdClock, CD=>rRst, Q=>RCNT(4)); - - FF_15: FD1S3DX - port map (D=>rfill_sub_5, CK=>RdClock, CD=>rRst, Q=>RCNT(5)); - - FF_14: FD1S3DX - port map (D=>rfill_sub_6, CK=>RdClock, CD=>rRst, Q=>RCNT(6)); - - FF_13: FD1S3DX - port map (D=>rfill_sub_7, CK=>RdClock, CD=>rRst, Q=>RCNT(7)); - - FF_12: FD1S3DX - port map (D=>rfill_sub_8, CK=>RdClock, CD=>rRst, Q=>RCNT(8)); - - FF_11: FD1S3DX - port map (D=>rfill_sub_9, CK=>RdClock, CD=>rRst, Q=>RCNT(9)); - - FF_10: FD1S3DX - port map (D=>rfill_sub_10, CK=>RdClock, CD=>rRst, Q=>RCNT(10)); - - FF_9: FD1S3DX - port map (D=>rfill_sub_11, CK=>RdClock, CD=>rRst, Q=>RCNT(11)); - - FF_8: FD1S3DX - port map (D=>rfill_sub_12, CK=>RdClock, CD=>rRst, Q=>RCNT(12)); - - FF_7: FD1S3DX - port map (D=>rfill_sub_13, CK=>RdClock, CD=>rRst, Q=>RCNT(13)); - - FF_6: FD1S3DX - port map (D=>rfill_sub_14, CK=>RdClock, CD=>rRst, Q=>RCNT(14)); - - FF_5: FD1S3DX - port map (D=>rfill_sub_15, CK=>RdClock, CD=>rRst, Q=>RCNT(15)); - - FF_4: FD1S3DX - port map (D=>rfill_sub_16, CK=>RdClock, CD=>rRst, Q=>RCNT(16)); - - FF_3: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_2: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - FF_1: FD1S3BX - port map (D=>ae_d, CK=>RdClock, PD=>rRst, Q=>AlmostEmpty); - - FF_0: FD1S3DX - port map (D=>af_d, CK=>WrClock, CD=>Reset, Q=>AlmostFull); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>ircount_16, NC1=>open); - - mux_7: MUX41 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(0)); - - mux_6: MUX41 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(1)); - - mux_5: MUX41 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(2)); - - mux_4: MUX41 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(3)); - - mux_3: MUX41 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(4)); - - mux_2: MUX41 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(5)); - - mux_1: MUX41 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(6)); - - mux_0: MUX41 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(7)); - - wcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wcount_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_2, S0=>open, - S1=>wcnt_sub_0); - - wcnt_1: FSUB2B - port map (A0=>wcount_1, A1=>wcount_2, B0=>rcount_w2, - B1=>rcount_w3, BI=>co0_2, BOUT=>co1_2, S0=>wcnt_sub_1, - S1=>wcnt_sub_2); - - wcnt_2: FSUB2B - port map (A0=>wcount_3, A1=>wcount_4, B0=>rcount_w4, - B1=>rcount_w5, BI=>co1_2, BOUT=>co2_2, S0=>wcnt_sub_3, - S1=>wcnt_sub_4); - - wcnt_3: FSUB2B - port map (A0=>wcount_5, A1=>wcount_6, B0=>rcount_w6, - B1=>rcount_w7, BI=>co2_2, BOUT=>co3_2, S0=>wcnt_sub_5, - S1=>wcnt_sub_6); - - wcnt_4: FSUB2B - port map (A0=>wcount_7, A1=>wcount_8, B0=>rcount_w8, - B1=>rcount_w9, BI=>co3_2, BOUT=>co4_2, S0=>wcnt_sub_7, - S1=>wcnt_sub_8); - - wcnt_5: FSUB2B - port map (A0=>wcount_9, A1=>wcount_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_2, BOUT=>co5_2, S0=>wcnt_sub_9, - S1=>wcnt_sub_10); - - wcnt_6: FSUB2B - port map (A0=>wcount_11, A1=>wcount_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_2, BOUT=>co6_2, - S0=>wcnt_sub_11, S1=>wcnt_sub_12); - - wcnt_7: FSUB2B - port map (A0=>wcount_13, A1=>wcount_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_2, BOUT=>co7_2, S0=>wcnt_sub_13, - S1=>wcnt_sub_14); - - wcnt_8: FSUB2B - port map (A0=>wcnt_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_2, BOUT=>open, S0=>wcnt_sub_15, - S1=>open); - - rcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rcount_0, BI=>scuba_vlo, BOUT=>co0_3, S0=>open, - S1=>rcnt_sub_0); - - rcnt_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rcount_1, - B1=>rcount_2, BI=>co0_3, BOUT=>co1_3, S0=>rcnt_sub_1, - S1=>rcnt_sub_2); - - rcnt_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rcount_3, - B1=>rcount_4, BI=>co1_3, BOUT=>co2_3, S0=>rcnt_sub_3, - S1=>rcnt_sub_4); - - rcnt_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rcount_5, - B1=>rcount_6, BI=>co2_3, BOUT=>co3_3, S0=>rcnt_sub_5, - S1=>rcnt_sub_6); - - rcnt_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rcount_7, - B1=>rcount_8, BI=>co3_3, BOUT=>co4_3, S0=>rcnt_sub_7, - S1=>rcnt_sub_8); - - rcnt_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rcount_9, - B1=>rcount_10, BI=>co4_3, BOUT=>co5_3, S0=>rcnt_sub_9, - S1=>rcnt_sub_10); - - rcnt_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rcount_11, - B1=>rcount_12, BI=>co5_3, BOUT=>co6_3, S0=>rcnt_sub_11, - S1=>rcnt_sub_12); - - rcnt_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rcount_13, - B1=>rcount_14, BI=>co6_3, BOUT=>co7_3, S0=>rcnt_sub_13, - S1=>rcnt_sub_14); - - rcnt_8: FSUB2B - port map (A0=>wcount_r14, A1=>rcnt_sub_msb, B0=>rcount_15, - B1=>scuba_vlo, BI=>co7_3, BOUT=>co8_1, S0=>rcnt_sub_15, - S1=>rcnt_sub_16); - - rcntd: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_1, COUT=>open, S0=>co8_1d, S1=>open); - - wfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wptr_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_4, S0=>open, - S1=>wfill_sub_0); - - wfill_1: FSUB2B - port map (A0=>wptr_1, A1=>wptr_2, B0=>rcount_w2, B1=>rcount_w3, - BI=>co0_4, BOUT=>co1_4, S0=>wfill_sub_1, S1=>wfill_sub_2); - - wfill_2: FSUB2B - port map (A0=>wptr_3, A1=>wptr_4, B0=>rcount_w4, B1=>rcount_w5, - BI=>co1_4, BOUT=>co2_4, S0=>wfill_sub_3, S1=>wfill_sub_4); - - wfill_3: FSUB2B - port map (A0=>wptr_5, A1=>wptr_6, B0=>rcount_w6, B1=>rcount_w7, - BI=>co2_4, BOUT=>co3_4, S0=>wfill_sub_5, S1=>wfill_sub_6); - - wfill_4: FSUB2B - port map (A0=>wptr_7, A1=>wptr_8, B0=>rcount_w8, B1=>rcount_w9, - BI=>co3_4, BOUT=>co4_4, S0=>wfill_sub_7, S1=>wfill_sub_8); - - wfill_5: FSUB2B - port map (A0=>wptr_9, A1=>wptr_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_4, BOUT=>co5_4, S0=>wfill_sub_9, - S1=>wfill_sub_10); - - wfill_6: FSUB2B - port map (A0=>wptr_11, A1=>wptr_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_4, BOUT=>co6_4, - S0=>wfill_sub_11, S1=>wfill_sub_12); - - wfill_7: FSUB2B - port map (A0=>wptr_13, A1=>wptr_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_4, BOUT=>co7_4, S0=>wfill_sub_13, - S1=>wfill_sub_14); - - wfill_8: FSUB2B - port map (A0=>wfill_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_4, BOUT=>open, S0=>wfill_sub_15, - S1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - rfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rptr_0, BI=>scuba_vlo, BOUT=>co0_5, S0=>open, - S1=>rfill_sub_0); - - rfill_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rptr_1, B1=>rptr_2, - BI=>co0_5, BOUT=>co1_5, S0=>rfill_sub_1, S1=>rfill_sub_2); - - rfill_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rptr_3, B1=>rptr_4, - BI=>co1_5, BOUT=>co2_5, S0=>rfill_sub_3, S1=>rfill_sub_4); - - rfill_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rptr_5, B1=>rptr_6, - BI=>co2_5, BOUT=>co3_5, S0=>rfill_sub_5, S1=>rfill_sub_6); - - rfill_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rptr_7, B1=>rptr_8, - BI=>co3_5, BOUT=>co4_5, S0=>rfill_sub_7, S1=>rfill_sub_8); - - rfill_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rptr_9, B1=>rptr_10, - BI=>co4_5, BOUT=>co5_5, S0=>rfill_sub_9, S1=>rfill_sub_10); - - rfill_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rptr_11, - B1=>rptr_12, BI=>co5_5, BOUT=>co6_5, S0=>rfill_sub_11, - S1=>rfill_sub_12); - - rfill_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rptr_13, - B1=>rptr_14, BI=>co6_5, BOUT=>co7_5, S0=>rfill_sub_13, - S1=>rfill_sub_14); - - rfill_8: FSUB2B - port map (A0=>wcount_r14, A1=>rfill_sub_msb, B0=>rptr_15, - B1=>scuba_vlo, BI=>co7_5, BOUT=>co8_2, S0=>rfill_sub_15, - S1=>rfill_sub_16); - - rfilld: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_2, COUT=>open, S0=>co8_2d, S1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_6); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_6, GE=>co1_6); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_6, GE=>co2_6); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_6, GE=>co3_6); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r7, - B1=>wcount_r8, CI=>co3_6, GE=>co4_6); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r9, - B1=>wcount_r10, CI=>co4_6, GE=>co5_6); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r11, - B1=>w_g2b_xor_cluster_0, CI=>co5_6, GE=>co6_6); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r13, - B1=>wcount_r14, CI=>co6_6, GE=>co7_6); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_6, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_7); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_7, GE=>co1_7); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_7, GE=>co2_7); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>rcount_w8, CI=>co2_7, GE=>co3_7); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, - B1=>rcount_w10, CI=>co3_7, GE=>co4_7); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w11, - B1=>rcount_w12, CI=>co4_7, GE=>co5_7); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w14, CI=>co5_7, GE=>co6_7); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>full_cmp_set, B0=>rcount_w15, - B1=>full_cmp_clr, CI=>co6_7, GE=>full_d_c); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - ae_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci_2, S0=>open, S1=>open); - - ae_cmp_0: AGEB2 - port map (A0=>AmEmptyThresh(0), A1=>AmEmptyThresh(1), - B0=>rcnt_reg_0, B1=>rcnt_reg_1, CI=>cmp_ci_2, GE=>co0_8); - - ae_cmp_1: AGEB2 - port map (A0=>AmEmptyThresh(2), A1=>AmEmptyThresh(3), - B0=>rcnt_reg_2, B1=>rcnt_reg_3, CI=>co0_8, GE=>co1_8); - - ae_cmp_2: AGEB2 - port map (A0=>AmEmptyThresh(4), A1=>AmEmptyThresh(5), - B0=>rcnt_reg_4, B1=>rcnt_reg_5, CI=>co1_8, GE=>co2_8); - - ae_cmp_3: AGEB2 - port map (A0=>AmEmptyThresh(6), A1=>AmEmptyThresh(7), - B0=>rcnt_reg_6, B1=>rcnt_reg_7, CI=>co2_8, GE=>co3_8); - - ae_cmp_4: AGEB2 - port map (A0=>AmEmptyThresh(8), A1=>AmEmptyThresh(9), - B0=>rcnt_reg_8, B1=>rcnt_reg_9, CI=>co3_8, GE=>co4_8); - - ae_cmp_5: AGEB2 - port map (A0=>AmEmptyThresh(10), A1=>AmEmptyThresh(11), - B0=>rcnt_reg_10, B1=>rcnt_reg_11, CI=>co4_8, GE=>co5_8); - - ae_cmp_6: AGEB2 - port map (A0=>AmEmptyThresh(12), A1=>AmEmptyThresh(13), - B0=>rcnt_reg_12, B1=>rcnt_reg_13, CI=>co5_8, GE=>co6_8); - - ae_cmp_7: AGEB2 - port map (A0=>AmEmptyThresh(14), A1=>AmEmptyThresh(15), - B0=>rcnt_reg_14, B1=>rcnt_reg_15, CI=>co6_8, GE=>co7_7); - - ae_cmp_8: AGEB2 - port map (A0=>ae_setsig, A1=>scuba_vlo, B0=>ae_clrsig, - B1=>scuba_vlo, CI=>co7_7, GE=>ae_d_c); - - a2: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>ae_d_c, COUT=>open, S0=>ae_d, S1=>open); - - af_d_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_3, S0=>open, S1=>open); - - af_d_cmp_0: AGEB2 - port map (A0=>wcnt_reg_0, A1=>wcnt_reg_1, B0=>AmFullThresh(0), - B1=>AmFullThresh(1), CI=>cmp_ci_3, GE=>co0_9); - - af_d_cmp_1: AGEB2 - port map (A0=>wcnt_reg_2, A1=>wcnt_reg_3, B0=>AmFullThresh(2), - B1=>AmFullThresh(3), CI=>co0_9, GE=>co1_9); - - af_d_cmp_2: AGEB2 - port map (A0=>wcnt_reg_4, A1=>wcnt_reg_5, B0=>AmFullThresh(4), - B1=>AmFullThresh(5), CI=>co1_9, GE=>co2_9); - - af_d_cmp_3: AGEB2 - port map (A0=>wcnt_reg_6, A1=>wcnt_reg_7, B0=>AmFullThresh(6), - B1=>AmFullThresh(7), CI=>co2_9, GE=>co3_9); - - af_d_cmp_4: AGEB2 - port map (A0=>wcnt_reg_8, A1=>wcnt_reg_9, B0=>AmFullThresh(8), - B1=>AmFullThresh(9), CI=>co3_9, GE=>co4_9); - - af_d_cmp_5: AGEB2 - port map (A0=>wcnt_reg_10, A1=>wcnt_reg_11, B0=>AmFullThresh(10), - B1=>AmFullThresh(11), CI=>co4_9, GE=>co5_9); - - af_d_cmp_6: AGEB2 - port map (A0=>wcnt_reg_12, A1=>wcnt_reg_13, B0=>AmFullThresh(12), - B1=>AmFullThresh(13), CI=>co5_9, GE=>co6_9); - - af_d_cmp_7: AGEB2 - port map (A0=>wcnt_reg_14, A1=>wcnt_reg_15, B0=>AmFullThresh(14), - B1=>scuba_vlo, CI=>co6_9, GE=>af_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a3: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>af_d_c, COUT=>open, S0=>af_d, S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_32kx16x8_mb is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FSUB2B use entity ecp3.FSUB2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX41 use entity ecp3.MUX41(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.ipx deleted file mode 100644 index ed7a28f..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.jhd deleted file mode 100644 index 2528505..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.jhd +++ /dev/null @@ -1,1233 +0,0 @@ -MODULE fifo_32kx16x8_mb2 DEFIN fifo_32kx16x8_mb2.vhd - SUBMODULE FADD2B - INSTANCE a3 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE af_d_cmp_7 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_6 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_5 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_4 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_3 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_2 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_1 - SUBMODULE AGEB2 - INSTANCE af_d_cmp_0 - SUBMODULE FADD2B - INSTANCE af_d_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a2 - SUBMODULE AGEB2 - INSTANCE ae_cmp_8 - SUBMODULE AGEB2 - INSTANCE ae_cmp_7 - SUBMODULE AGEB2 - INSTANCE ae_cmp_6 - SUBMODULE AGEB2 - INSTANCE ae_cmp_5 - SUBMODULE AGEB2 - INSTANCE ae_cmp_4 - SUBMODULE AGEB2 - INSTANCE ae_cmp_3 - SUBMODULE AGEB2 - INSTANCE ae_cmp_2 - SUBMODULE AGEB2 - INSTANCE ae_cmp_1 - SUBMODULE AGEB2 - INSTANCE ae_cmp_0 - SUBMODULE FADD2B - INSTANCE ae_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE AGEB2 - INSTANCE full_cmp_7 - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_8 - SUBMODULE AGEB2 - INSTANCE empty_cmp_7 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE FADD2B - INSTANCE rfilld - SUBMODULE FSUB2B - INSTANCE rfill_8 - SUBMODULE FSUB2B - INSTANCE rfill_7 - SUBMODULE FSUB2B - INSTANCE rfill_6 - SUBMODULE FSUB2B - INSTANCE rfill_5 - SUBMODULE FSUB2B - INSTANCE rfill_4 - SUBMODULE FSUB2B - INSTANCE rfill_3 - SUBMODULE FSUB2B - INSTANCE rfill_2 - SUBMODULE FSUB2B - INSTANCE rfill_1 - SUBMODULE FSUB2B - INSTANCE rfill_0 - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE FSUB2B - INSTANCE wfill_8 - SUBMODULE FSUB2B - INSTANCE wfill_7 - SUBMODULE FSUB2B - INSTANCE wfill_6 - SUBMODULE FSUB2B - INSTANCE wfill_5 - SUBMODULE FSUB2B - INSTANCE wfill_4 - SUBMODULE FSUB2B - INSTANCE wfill_3 - SUBMODULE FSUB2B - INSTANCE wfill_2 - SUBMODULE FSUB2B - INSTANCE wfill_1 - SUBMODULE FSUB2B - INSTANCE wfill_0 - SUBMODULE FADD2B - INSTANCE rcntd - SUBMODULE FSUB2B - INSTANCE rcnt_8 - SUBMODULE FSUB2B - INSTANCE rcnt_7 - SUBMODULE FSUB2B - INSTANCE rcnt_6 - SUBMODULE FSUB2B - INSTANCE rcnt_5 - SUBMODULE FSUB2B - INSTANCE rcnt_4 - SUBMODULE FSUB2B - INSTANCE rcnt_3 - SUBMODULE FSUB2B - INSTANCE rcnt_2 - SUBMODULE FSUB2B - INSTANCE rcnt_1 - SUBMODULE FSUB2B - INSTANCE rcnt_0 - SUBMODULE FSUB2B - INSTANCE wcnt_8 - SUBMODULE FSUB2B - INSTANCE wcnt_7 - SUBMODULE FSUB2B - INSTANCE wcnt_6 - SUBMODULE FSUB2B - INSTANCE wcnt_5 - SUBMODULE FSUB2B - INSTANCE wcnt_4 - SUBMODULE FSUB2B - INSTANCE wcnt_3 - SUBMODULE FSUB2B - INSTANCE wcnt_2 - SUBMODULE FSUB2B - INSTANCE wcnt_1 - SUBMODULE FSUB2B - INSTANCE wcnt_0 - SUBMODULE MUX321 - INSTANCE mux_0 - SUBMODULE MUX321 - INSTANCE mux_1 - SUBMODULE MUX321 - INSTANCE mux_2 - SUBMODULE MUX321 - INSTANCE mux_3 - SUBMODULE MUX321 - INSTANCE mux_4 - SUBMODULE MUX321 - INSTANCE mux_5 - SUBMODULE MUX321 - INSTANCE mux_6 - SUBMODULE MUX321 - INSTANCE mux_7 - SUBMODULE MUX321 - INSTANCE mux_8 - SUBMODULE CU2 - INSTANCE r_gctr_8 - SUBMODULE CU2 - INSTANCE r_gctr_7 - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE CU2 - INSTANCE w_gctr_7 - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3BX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1S3DX - INSTANCE FF_54 - SUBMODULE FD1S3DX - INSTANCE FF_55 - SUBMODULE FD1S3DX - INSTANCE FF_56 - SUBMODULE FD1S3DX - INSTANCE FF_57 - SUBMODULE FD1S3DX - INSTANCE FF_58 - SUBMODULE FD1S3DX - INSTANCE FF_59 - SUBMODULE FD1S3DX - INSTANCE FF_60 - SUBMODULE FD1S3DX - INSTANCE FF_61 - SUBMODULE FD1S3DX - INSTANCE FF_62 - SUBMODULE FD1S3DX - INSTANCE FF_63 - SUBMODULE FD1S3DX - INSTANCE FF_64 - SUBMODULE FD1S3DX - INSTANCE FF_65 - SUBMODULE FD1S3DX - INSTANCE FF_66 - SUBMODULE FD1S3DX - INSTANCE FF_67 - SUBMODULE FD1S3DX - INSTANCE FF_68 - SUBMODULE FD1S3DX - INSTANCE FF_69 - SUBMODULE FD1S3DX - INSTANCE FF_70 - SUBMODULE FD1S3DX - INSTANCE FF_71 - SUBMODULE FD1S3DX - INSTANCE FF_72 - SUBMODULE FD1S3DX - INSTANCE FF_73 - SUBMODULE FD1S3DX - INSTANCE FF_74 - SUBMODULE FD1S3DX - INSTANCE FF_75 - SUBMODULE FD1S3DX - INSTANCE FF_76 - SUBMODULE FD1S3DX - INSTANCE FF_77 - SUBMODULE FD1S3DX - INSTANCE FF_78 - SUBMODULE FD1S3DX - INSTANCE FF_79 - SUBMODULE FD1S3DX - INSTANCE FF_80 - SUBMODULE FD1S3DX - INSTANCE FF_81 - SUBMODULE FD1S3DX - INSTANCE FF_82 - SUBMODULE FD1S3DX - INSTANCE FF_83 - SUBMODULE FD1S3DX - INSTANCE FF_84 - SUBMODULE FD1S3DX - INSTANCE FF_85 - SUBMODULE FD1S3DX - INSTANCE FF_86 - SUBMODULE FD1S3DX - INSTANCE FF_87 - SUBMODULE FD1S3DX - INSTANCE FF_88 - SUBMODULE FD1S3DX - INSTANCE FF_89 - SUBMODULE FD1S3DX - INSTANCE FF_90 - SUBMODULE FD1S3DX - INSTANCE FF_91 - SUBMODULE FD1S3DX - INSTANCE FF_92 - SUBMODULE FD1S3DX - INSTANCE FF_93 - SUBMODULE FD1S3DX - INSTANCE FF_94 - SUBMODULE FD1S3DX - INSTANCE FF_95 - SUBMODULE FD1S3DX - INSTANCE FF_96 - SUBMODULE FD1S3DX - INSTANCE FF_97 - SUBMODULE FD1S3DX - INSTANCE FF_98 - SUBMODULE FD1S3DX - INSTANCE FF_99 - SUBMODULE FD1S3DX - INSTANCE FF_100 - SUBMODULE FD1S3DX - INSTANCE FF_101 - SUBMODULE FD1S3DX - INSTANCE FF_102 - SUBMODULE FD1S3DX - INSTANCE FF_103 - SUBMODULE FD1S3DX - INSTANCE FF_104 - SUBMODULE FD1S3DX - INSTANCE FF_105 - SUBMODULE FD1S3DX - INSTANCE FF_106 - SUBMODULE FD1S3DX - INSTANCE FF_107 - SUBMODULE FD1S3DX - INSTANCE FF_108 - SUBMODULE FD1S3DX - INSTANCE FF_109 - SUBMODULE FD1S3DX - INSTANCE FF_110 - SUBMODULE FD1S3DX - INSTANCE FF_111 - SUBMODULE FD1S3DX - INSTANCE FF_112 - SUBMODULE FD1S3DX - INSTANCE FF_113 - SUBMODULE FD1S3DX - INSTANCE FF_114 - SUBMODULE FD1S3DX - INSTANCE FF_115 - SUBMODULE FD1S3DX - INSTANCE FF_116 - SUBMODULE FD1S3DX - INSTANCE FF_117 - SUBMODULE FD1S3DX - INSTANCE FF_118 - SUBMODULE FD1S3DX - INSTANCE FF_119 - SUBMODULE FD1S3DX - INSTANCE FF_120 - SUBMODULE FD1S3DX - INSTANCE FF_121 - SUBMODULE FD1S3DX - INSTANCE FF_122 - SUBMODULE FD1S3DX - INSTANCE FF_123 - SUBMODULE FD1S3DX - INSTANCE FF_124 - SUBMODULE FD1S3DX - INSTANCE FF_125 - SUBMODULE FD1S3DX - INSTANCE FF_126 - SUBMODULE FD1S3DX - INSTANCE FF_127 - SUBMODULE FD1S3DX - INSTANCE FF_128 - SUBMODULE FD1S3DX - INSTANCE FF_129 - SUBMODULE FD1S3DX - INSTANCE FF_130 - SUBMODULE FD1S3DX - INSTANCE FF_131 - SUBMODULE FD1S3DX - INSTANCE FF_132 - SUBMODULE FD1S3DX - INSTANCE FF_133 - SUBMODULE FD1S3DX - INSTANCE FF_134 - SUBMODULE FD1S3DX - INSTANCE FF_135 - SUBMODULE FD1P3DX - INSTANCE FF_136 - SUBMODULE FD1P3DX - INSTANCE FF_137 - SUBMODULE FD1P3DX - INSTANCE FF_138 - SUBMODULE FD1P3DX - INSTANCE FF_139 - SUBMODULE FD1P3DX - INSTANCE FF_140 - SUBMODULE FD1P3DX - INSTANCE FF_141 - SUBMODULE FD1P3DX - INSTANCE FF_142 - SUBMODULE FD1P3DX - INSTANCE FF_143 - SUBMODULE FD1P3DX - INSTANCE FF_144 - SUBMODULE FD1P3DX - INSTANCE FF_145 - SUBMODULE FD1P3DX - INSTANCE FF_146 - SUBMODULE FD1P3DX - INSTANCE FF_147 - SUBMODULE FD1P3DX - INSTANCE FF_148 - SUBMODULE FD1P3DX - INSTANCE FF_149 - SUBMODULE FD1P3DX - INSTANCE FF_150 - SUBMODULE FD1P3DX - INSTANCE FF_151 - SUBMODULE FD1P3DX - INSTANCE FF_152 - SUBMODULE FD1P3DX - INSTANCE FF_153 - SUBMODULE FD1P3DX - INSTANCE FF_154 - SUBMODULE FD1P3DX - INSTANCE FF_155 - SUBMODULE FD1P3DX - INSTANCE FF_156 - SUBMODULE FD1P3DX - INSTANCE FF_157 - SUBMODULE FD1P3DX - INSTANCE FF_158 - SUBMODULE FD1P3DX - INSTANCE FF_159 - SUBMODULE FD1P3DX - INSTANCE FF_160 - SUBMODULE FD1P3DX - INSTANCE FF_161 - SUBMODULE FD1P3DX - INSTANCE FF_162 - SUBMODULE FD1P3DX - INSTANCE FF_163 - SUBMODULE FD1P3DX - INSTANCE FF_164 - SUBMODULE FD1P3DX - INSTANCE FF_165 - SUBMODULE FD1P3DX - INSTANCE FF_166 - SUBMODULE FD1P3DX - INSTANCE FF_167 - SUBMODULE FD1P3DX - INSTANCE FF_168 - SUBMODULE FD1P3DX - INSTANCE FF_169 - SUBMODULE FD1P3DX - INSTANCE FF_170 - SUBMODULE FD1P3DX - INSTANCE FF_171 - SUBMODULE FD1P3DX - INSTANCE FF_172 - SUBMODULE FD1P3DX - INSTANCE FF_173 - SUBMODULE FD1P3DX - INSTANCE FF_174 - SUBMODULE FD1P3DX - INSTANCE FF_175 - SUBMODULE FD1P3DX - INSTANCE FF_176 - SUBMODULE FD1P3DX - INSTANCE FF_177 - SUBMODULE FD1P3DX - INSTANCE FF_178 - SUBMODULE FD1P3DX - INSTANCE FF_179 - SUBMODULE FD1P3DX - INSTANCE FF_180 - SUBMODULE FD1P3DX - INSTANCE FF_181 - SUBMODULE FD1P3DX - INSTANCE FF_182 - SUBMODULE FD1P3DX - INSTANCE FF_183 - SUBMODULE FD1P3DX - INSTANCE FF_184 - SUBMODULE FD1P3DX - INSTANCE FF_185 - SUBMODULE FD1P3DX - INSTANCE FF_186 - SUBMODULE FD1P3DX - INSTANCE FF_187 - SUBMODULE FD1P3DX - INSTANCE FF_188 - SUBMODULE FD1P3DX - INSTANCE FF_189 - SUBMODULE FD1P3DX - INSTANCE FF_190 - SUBMODULE FD1P3BX - INSTANCE FF_191 - SUBMODULE FD1P3DX - INSTANCE FF_192 - SUBMODULE FD1P3DX - INSTANCE FF_193 - SUBMODULE FD1P3DX - INSTANCE FF_194 - SUBMODULE FD1P3DX - INSTANCE FF_195 - SUBMODULE FD1P3DX - INSTANCE FF_196 - SUBMODULE FD1P3DX - INSTANCE FF_197 - SUBMODULE FD1P3DX - INSTANCE FF_198 - SUBMODULE FD1P3DX - INSTANCE FF_199 - SUBMODULE FD1P3DX - INSTANCE FF_200 - SUBMODULE FD1P3DX - INSTANCE FF_201 - SUBMODULE FD1P3DX - INSTANCE FF_202 - SUBMODULE FD1P3DX - INSTANCE FF_203 - SUBMODULE FD1P3DX - INSTANCE FF_204 - SUBMODULE FD1P3DX - INSTANCE FF_205 - SUBMODULE FD1P3DX - INSTANCE FF_206 - SUBMODULE FD1P3DX - INSTANCE FF_207 - SUBMODULE FD1P3DX - INSTANCE FF_208 - SUBMODULE FD1P3DX - INSTANCE FF_209 - SUBMODULE FD1P3DX - INSTANCE FF_210 - SUBMODULE FD1P3DX - INSTANCE FF_211 - SUBMODULE FD1P3DX - INSTANCE FF_212 - SUBMODULE FD1P3DX - INSTANCE FF_213 - SUBMODULE FD1P3DX - INSTANCE FF_214 - SUBMODULE FD1P3DX - INSTANCE FF_215 - SUBMODULE FD1P3DX - INSTANCE FF_216 - SUBMODULE FD1P3DX - INSTANCE FF_217 - SUBMODULE FD1P3DX - INSTANCE FF_218 - SUBMODULE FD1P3DX - INSTANCE FF_219 - SUBMODULE FD1P3DX - INSTANCE FF_220 - SUBMODULE FD1P3DX - INSTANCE FF_221 - SUBMODULE FD1P3DX - INSTANCE FF_222 - SUBMODULE FD1P3DX - INSTANCE FF_223 - SUBMODULE FD1P3DX - INSTANCE FF_224 - SUBMODULE FD1P3DX - INSTANCE FF_225 - SUBMODULE FD1P3DX - INSTANCE FF_226 - SUBMODULE FD1P3DX - INSTANCE FF_227 - SUBMODULE FD1P3DX - INSTANCE FF_228 - SUBMODULE FD1P3DX - INSTANCE FF_229 - SUBMODULE FD1P3DX - INSTANCE FF_230 - SUBMODULE FD1P3DX - INSTANCE FF_231 - SUBMODULE FD1P3DX - INSTANCE FF_232 - SUBMODULE FD1P3DX - INSTANCE FF_233 - SUBMODULE FD1P3DX - INSTANCE FF_234 - SUBMODULE FD1P3DX - INSTANCE FF_235 - SUBMODULE FD1P3DX - INSTANCE FF_236 - SUBMODULE FD1P3DX - INSTANCE FF_237 - SUBMODULE FD1P3DX - INSTANCE FF_238 - SUBMODULE FD1P3BX - INSTANCE FF_239 - SUBMODULE DP16KC - INSTANCE pdp_ram_31_0_0 - SUBMODULE DP16KC - INSTANCE pdp_ram_30_0_1 - SUBMODULE DP16KC - INSTANCE pdp_ram_29_0_2 - SUBMODULE DP16KC - INSTANCE pdp_ram_28_0_3 - SUBMODULE DP16KC - INSTANCE pdp_ram_27_0_4 - SUBMODULE DP16KC - INSTANCE pdp_ram_26_0_5 - SUBMODULE DP16KC - INSTANCE pdp_ram_25_0_6 - SUBMODULE DP16KC - INSTANCE pdp_ram_24_0_7 - SUBMODULE DP16KC - INSTANCE pdp_ram_23_0_8 - SUBMODULE DP16KC - INSTANCE pdp_ram_22_0_9 - SUBMODULE DP16KC - INSTANCE pdp_ram_21_0_10 - SUBMODULE DP16KC - INSTANCE pdp_ram_20_0_11 - SUBMODULE DP16KC - INSTANCE pdp_ram_19_0_12 - SUBMODULE DP16KC - INSTANCE pdp_ram_18_0_13 - SUBMODULE DP16KC - INSTANCE pdp_ram_17_0_14 - SUBMODULE DP16KC - INSTANCE pdp_ram_16_0_15 - SUBMODULE DP16KC - INSTANCE pdp_ram_15_0_16 - SUBMODULE DP16KC - INSTANCE pdp_ram_14_0_17 - SUBMODULE DP16KC - INSTANCE pdp_ram_13_0_18 - SUBMODULE DP16KC - INSTANCE pdp_ram_12_0_19 - SUBMODULE DP16KC - INSTANCE pdp_ram_11_0_20 - SUBMODULE DP16KC - INSTANCE pdp_ram_10_0_21 - SUBMODULE DP16KC - INSTANCE pdp_ram_9_0_22 - SUBMODULE DP16KC - INSTANCE pdp_ram_8_0_23 - SUBMODULE DP16KC - INSTANCE pdp_ram_7_0_24 - SUBMODULE DP16KC - INSTANCE pdp_ram_6_0_25 - SUBMODULE DP16KC - INSTANCE pdp_ram_5_0_26 - SUBMODULE DP16KC - INSTANCE pdp_ram_4_0_27 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_0_28 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_0_29 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_0_30 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_0_31 - SUBMODULE AND2 - INSTANCE AND2_t0 - SUBMODULE AND2 - INSTANCE AND2_t1 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE ROM16X1A - INSTANCE LUT4_24 - SUBMODULE ROM16X1A - INSTANCE LUT4_25 - SUBMODULE ROM16X1A - INSTANCE LUT4_26 - SUBMODULE ROM16X1A - INSTANCE LUT4_27 - SUBMODULE ROM16X1A - INSTANCE LUT4_28 - SUBMODULE ROM16X1A - INSTANCE LUT4_29 - SUBMODULE ROM16X1A - INSTANCE LUT4_30 - SUBMODULE ROM16X1A - INSTANCE LUT4_31 - SUBMODULE ROM16X1A - INSTANCE LUT4_32 - SUBMODULE ROM16X1A - INSTANCE LUT4_33 - SUBMODULE ROM16X1A - INSTANCE LUT4_34 - SUBMODULE ROM16X1A - INSTANCE LUT4_35 - SUBMODULE ROM16X1A - INSTANCE LUT4_36 - SUBMODULE ROM16X1A - INSTANCE LUT4_37 - SUBMODULE ROM16X1A - INSTANCE LUT4_38 - SUBMODULE ROM16X1A - INSTANCE LUT4_39 - SUBMODULE ROM16X1A - INSTANCE LUT4_40 - SUBMODULE ROM16X1A - INSTANCE LUT4_41 - SUBMODULE ROM16X1A - INSTANCE LUT4_42 - SUBMODULE ROM16X1A - INSTANCE LUT4_43 - SUBMODULE ROM16X1A - INSTANCE LUT4_44 - SUBMODULE ROM16X1A - INSTANCE LUT4_45 - SUBMODULE ROM16X1A - INSTANCE LUT4_46 - SUBMODULE ROM16X1A - INSTANCE LUT4_47 - SUBMODULE ROM16X1A - INSTANCE LUT4_48 - SUBMODULE ROM16X1A - INSTANCE LUT4_49 - SUBMODULE ROM16X1A - INSTANCE LUT4_50 - SUBMODULE ROM16X1A - INSTANCE LUT4_51 - SUBMODULE ROM16X1A - INSTANCE LUT4_52 - SUBMODULE ROM16X1A - INSTANCE LUT4_53 - SUBMODULE ROM16X1A - INSTANCE LUT4_54 - SUBMODULE ROM16X1A - INSTANCE LUT4_55 - SUBMODULE ROM16X1A - INSTANCE LUT4_56 - SUBMODULE ROM16X1A - INSTANCE LUT4_57 - SUBMODULE ROM16X1A - INSTANCE LUT4_58 - SUBMODULE ROM16X1A - INSTANCE LUT4_59 - SUBMODULE ROM16X1A - INSTANCE LUT4_60 - SUBMODULE ROM16X1A - INSTANCE LUT4_61 - SUBMODULE ROM16X1A - INSTANCE LUT4_62 - SUBMODULE ROM16X1A - INSTANCE LUT4_63 - SUBMODULE ROM16X1A - INSTANCE LUT4_64 - SUBMODULE ROM16X1A - INSTANCE LUT4_65 - SUBMODULE ROM16X1A - INSTANCE LUT4_66 - SUBMODULE ROM16X1A - INSTANCE LUT4_67 - SUBMODULE ROM16X1A - INSTANCE LUT4_68 - SUBMODULE ROM16X1A - INSTANCE LUT4_69 - SUBMODULE ROM16X1A - INSTANCE LUT4_70 - SUBMODULE ROM16X1A - INSTANCE LUT4_71 - SUBMODULE ROM16X1A - INSTANCE LUT4_72 - SUBMODULE ROM16X1A - INSTANCE LUT4_73 - SUBMODULE ROM16X1A - INSTANCE LUT4_74 - SUBMODULE ROM16X1A - INSTANCE LUT4_75 - SUBMODULE ROM16X1A - INSTANCE LUT4_76 - SUBMODULE ROM16X1A - INSTANCE LUT4_77 - SUBMODULE ROM16X1A - INSTANCE LUT4_78 - SUBMODULE ROM16X1A - INSTANCE LUT4_79 - SUBMODULE ROM16X1A - INSTANCE LUT4_80 - SUBMODULE ROM16X1A - INSTANCE LUT4_81 - SUBMODULE ROM16X1A - INSTANCE LUT4_82 - SUBMODULE ROM16X1A - INSTANCE LUT4_83 - SUBMODULE ROM16X1A - INSTANCE LUT4_84 - SUBMODULE ROM16X1A - INSTANCE LUT4_85 - SUBMODULE ROM16X1A - INSTANCE LUT4_86 - SUBMODULE ROM16X1A - INSTANCE LUT4_87 - SUBMODULE ROM16X1A - INSTANCE LUT4_88 - SUBMODULE ROM16X1A - INSTANCE LUT4_89 - SUBMODULE ROM16X1A - INSTANCE LUT4_90 - SUBMODULE ROM16X1A - INSTANCE LUT4_91 - SUBMODULE ROM16X1A - INSTANCE LUT4_92 - SUBMODULE ROM16X1A - INSTANCE LUT4_93 - SUBMODULE ROM16X1A - INSTANCE LUT4_94 - SUBMODULE ROM16X1A - INSTANCE LUT4_95 - SUBMODULE ROM16X1A - INSTANCE LUT4_96 - SUBMODULE ROM16X1A - INSTANCE LUT4_97 - SUBMODULE ROM16X1A - INSTANCE LUT4_98 - SUBMODULE ROM16X1A - INSTANCE LUT4_99 - SUBMODULE ROM16X1A - INSTANCE LUT4_100 - SUBMODULE ROM16X1A - INSTANCE LUT4_101 - SUBMODULE ROM16X1A - INSTANCE LUT4_102 - SUBMODULE ROM16X1A - INSTANCE LUT4_103 - SUBMODULE ROM16X1A - INSTANCE LUT4_104 - SUBMODULE ROM16X1A - INSTANCE LUT4_105 - SUBMODULE ROM16X1A - INSTANCE LUT4_106 - SUBMODULE ROM16X1A - INSTANCE LUT4_107 - SUBMODULE ROM16X1A - INSTANCE LUT4_108 - SUBMODULE ROM16X1A - INSTANCE LUT4_109 - SUBMODULE ROM16X1A - INSTANCE LUT4_110 - SUBMODULE ROM16X1A - INSTANCE LUT4_111 - SUBMODULE ROM16X1A - INSTANCE LUT4_112 - SUBMODULE ROM16X1A - INSTANCE LUT4_113 - SUBMODULE ROM16X1A - INSTANCE LUT4_114 - SUBMODULE ROM16X1A - INSTANCE LUT4_115 - SUBMODULE ROM16X1A - INSTANCE LUT4_116 - SUBMODULE ROM16X1A - INSTANCE LUT4_117 - SUBMODULE ROM16X1A - INSTANCE LUT4_118 - SUBMODULE ROM16X1A - INSTANCE LUT4_119 - SUBMODULE ROM16X1A - INSTANCE LUT4_120 - SUBMODULE ROM16X1A - INSTANCE LUT4_121 - SUBMODULE ROM16X1A - INSTANCE LUT4_122 - SUBMODULE ROM16X1A - INSTANCE LUT4_123 - SUBMODULE ROM16X1A - INSTANCE LUT4_124 - SUBMODULE ROM16X1A - INSTANCE LUT4_125 - SUBMODULE ROM16X1A - INSTANCE LUT4_126 - SUBMODULE ROM16X1A - INSTANCE LUT4_127 - SUBMODULE ROM16X1A - INSTANCE LUT4_128 - SUBMODULE ROM16X1A - INSTANCE LUT4_129 - SUBMODULE ROM16X1A - INSTANCE LUT4_130 - SUBMODULE ROM16X1A - INSTANCE LUT4_131 - SUBMODULE ROM16X1A - INSTANCE LUT4_132 - SUBMODULE ROM16X1A - INSTANCE LUT4_133 - SUBMODULE ROM16X1A - INSTANCE LUT4_134 - SUBMODULE ROM16X1A - INSTANCE LUT4_135 - SUBMODULE ROM16X1A - INSTANCE LUT4_136 - SUBMODULE ROM16X1A - INSTANCE LUT4_137 - SUBMODULE ROM16X1A - INSTANCE LUT4_138 - SUBMODULE ROM16X1A - INSTANCE LUT4_139 - SUBMODULE ROM16X1A - INSTANCE LUT4_140 - SUBMODULE ROM16X1A - INSTANCE LUT4_141 - SUBMODULE ROM16X1A - INSTANCE LUT4_142 - SUBMODULE ROM16X1A - INSTANCE LUT4_143 - SUBMODULE ROM16X1A - INSTANCE LUT4_144 - SUBMODULE ROM16X1A - INSTANCE LUT4_145 - SUBMODULE ROM16X1A - INSTANCE LUT4_146 - SUBMODULE ROM16X1A - INSTANCE LUT4_147 - SUBMODULE ROM16X1A - INSTANCE LUT4_148 - SUBMODULE ROM16X1A - INSTANCE LUT4_149 - SUBMODULE ROM16X1A - INSTANCE LUT4_150 - SUBMODULE ROM16X1A - INSTANCE LUT4_151 - SUBMODULE ROM16X1A - INSTANCE LUT4_152 - SUBMODULE ROM16X1A - INSTANCE LUT4_153 - SUBMODULE ROM16X1A - INSTANCE LUT4_154 - SUBMODULE ROM16X1A - INSTANCE LUT4_155 - SUBMODULE ROM16X1A - INSTANCE LUT4_156 - SUBMODULE ROM16X1A - INSTANCE LUT4_157 - SUBMODULE ROM16X1A - INSTANCE LUT4_158 - SUBMODULE ROM16X1A - INSTANCE LUT4_159 - SUBMODULE ROM16X1A - INSTANCE LUT4_160 - SUBMODULE ROM16X1A - INSTANCE LUT4_161 - SUBMODULE ROM16X1A - INSTANCE LUT4_162 - SUBMODULE ROM16X1A - INSTANCE LUT4_163 - SUBMODULE ROM16X1A - INSTANCE LUT4_164 - SUBMODULE ROM16X1A - INSTANCE LUT4_165 - SUBMODULE ROM16X1A - INSTANCE LUT4_166 - SUBMODULE ROM16X1A - INSTANCE LUT4_167 - SUBMODULE ROM16X1A - INSTANCE LUT4_168 - SUBMODULE ROM16X1A - INSTANCE LUT4_169 - SUBMODULE ROM16X1A - INSTANCE LUT4_170 - SUBMODULE ROM16X1A - INSTANCE LUT4_171 - SUBMODULE ROM16X1A - INSTANCE LUT4_172 - SUBMODULE ROM16X1A - INSTANCE LUT4_173 - SUBMODULE ROM16X1A - INSTANCE LUT4_174 - SUBMODULE ROM16X1A - INSTANCE LUT4_175 - SUBMODULE ROM16X1A - INSTANCE LUT4_176 - SUBMODULE ROM16X1A - INSTANCE LUT4_177 - SUBMODULE ROM16X1A - INSTANCE LUT4_178 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE INV - INSTANCE INV_2 - SUBMODULE INV - INSTANCE INV_3 - SUBMODULE INV - INSTANCE INV_4 - SUBMODULE INV - INSTANCE INV_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_179 - SUBMODULE ROM16X1A - INSTANCE LUT4_180 - SUBMODULE INV - INSTANCE INV_6 - SUBMODULE INV - INSTANCE INV_7 - SUBMODULE INV - INSTANCE INV_8 - SUBMODULE INV - INSTANCE INV_9 - SUBMODULE INV - INSTANCE INV_10 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE XOR2 - INSTANCE XOR2_t24 - SUBMODULE XOR2 - INSTANCE XOR2_t25 - SUBMODULE XOR2 - INSTANCE XOR2_t26 - SUBMODULE XOR2 - INSTANCE XOR2_t27 - SUBMODULE XOR2 - INSTANCE XOR2_t28 - SUBMODULE XOR2 - INSTANCE XOR2_t29 - SUBMODULE XOR2 - INSTANCE XOR2_t30 - SUBMODULE XOR2 - INSTANCE XOR2_t31 - SUBMODULE XOR2 - INSTANCE XOR2_t32 - SUBMODULE XOR2 - INSTANCE XOR2_t33 - SUBMODULE XOR2 - INSTANCE XOR2_t34 - SUBMODULE XOR2 - INSTANCE XOR2_t35 - SUBMODULE XOR2 - INSTANCE XOR2_t36 - SUBMODULE OR2 - INSTANCE OR2_t37 - SUBMODULE INV - INSTANCE INV_11 - SUBMODULE AND2 - INSTANCE AND2_t38 - SUBMODULE INV - INSTANCE INV_12 - SUBMODULE AND2 - INSTANCE AND2_t39 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.lpc deleted file mode 100644 index 4ac80c1..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_32kx16x8_mb2 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:22:54 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=32768 -Width=18 -RDepth=65536 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=1 -PeMode=Dynamic - Single Threshold -PeAssert=16 -PeDeassert=12 -FullFlg=1 -PfMode=Dynamic - Single Threshold -PfAssert=32752 -PfDeassert=506 -RDataCount=1 -WDataCount=1 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.naf b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.naf deleted file mode 100644 index 8de024d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.naf +++ /dev/null @@ -1,101 +0,0 @@ -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -AmEmptyThresh[15] i -AmEmptyThresh[14] i -AmEmptyThresh[13] i -AmEmptyThresh[12] i -AmEmptyThresh[11] i -AmEmptyThresh[10] i -AmEmptyThresh[9] i -AmEmptyThresh[8] i -AmEmptyThresh[7] i -AmEmptyThresh[6] i -AmEmptyThresh[5] i -AmEmptyThresh[4] i -AmEmptyThresh[3] i -AmEmptyThresh[2] i -AmEmptyThresh[1] i -AmEmptyThresh[0] i -AmFullThresh[14] i -AmFullThresh[13] i -AmFullThresh[12] i -AmFullThresh[11] i -AmFullThresh[10] i -AmFullThresh[9] i -AmFullThresh[8] i -AmFullThresh[7] i -AmFullThresh[6] i -AmFullThresh[5] i -AmFullThresh[4] i -AmFullThresh[3] i -AmFullThresh[2] i -AmFullThresh[1] i -AmFullThresh[0] i -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -WCNT[15] o -WCNT[14] o -WCNT[13] o -WCNT[12] o -WCNT[11] o -WCNT[10] o -WCNT[9] o -WCNT[8] o -WCNT[7] o -WCNT[6] o -WCNT[5] o -WCNT[4] o -WCNT[3] o -WCNT[2] o -WCNT[1] o -WCNT[0] o -RCNT[16] o -RCNT[15] o -RCNT[14] o -RCNT[13] o -RCNT[12] o -RCNT[11] o -RCNT[10] o -RCNT[9] o -RCNT[8] o -RCNT[7] o -RCNT[6] o -RCNT[5] o -RCNT[4] o -RCNT[3] o -RCNT[2] o -RCNT[1] o -RCNT[0] o -Empty o -Full o -AlmostEmpty o -AlmostFull o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.sort b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.sort deleted file mode 100644 index 52d8ef6..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_32kx16x8_mb2.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.srp b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.srp deleted file mode 100644 index 2b6645f..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.srp +++ /dev/null @@ -1,44 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:22:54 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_32kx16x8_mb2 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 15 -data_width 18 -num_words 32768 -rdata_width 9 -no_enable -pe 0 -pf 0 -rfill -fill -e - Circuit name : fifo_32kx16x8_mb2 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[17:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[8:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_32kx16x8_mb2.vhd - VHDL template : fifo_32kx16x8_mb2_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb2_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb2.srp - Element Usage : - AGEB2 : 34 - AND2 : 4 - CU2 : 17 - FADD2B : 12 - FSUB2B : 36 - FD1P3BX : 2 - FD1P3DX : 102 - FD1S3BX : 2 - FD1S3DX : 134 - INV : 13 - MUX321 : 9 - OR2 : 1 - ROM16X1A : 181 - XOR2 : 35 - DP16KC : 32 - Estimated Resource Usage: - LUT : 491 - EBR : 32 - Reg : 240 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.sym b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2.sym deleted file mode 100644 index b538f5015a26437e48217190a6e5c43b1f6525f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmY+CKWGzi9L3-FF0B|H&OeBgWXK>+m#S?Lhr~8TL~INv8Pd{JlThhhb0iVsB0(IS zB!f7KWbEK@NCyXp;NavCI*LO^$Iz)mhrav%5+Q*f`P_T&_wM_n@Y1oj8Cu zaR>HIBDuEH*{Nh!)cHuKkN3toSE{Z0%@=z(pgO`Aqb5qV!aneW+63Q>wot0K>m3|X zbL7`-chRW-sD}7ERm&~Yc}g|H@wBttiaT!z?4m46di|QtfS*hpF;UipzK;Ks0aq_IUN)NBx0m+1ndNSFJ9xf?6X{7L z1*Ur9pdc45!Pw$_Jm+=gBDpAOWtZ%VtL%^+xo@3ke$2a%@lbi7lX%Kiauro_+@Ip| zm2>2rblDTXu@u)kWrEn, B=>invout_1, Z=>wren_i); - - INV_12: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t38: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_11: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t37: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t36: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t35: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t34: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t33: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t32: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t31: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t30: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t29: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t28: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t27: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t26: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t25: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t24: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t23: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t22: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t21: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t20: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t19: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t18: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t17: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t16: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t15: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t14: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t13: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t12: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t11: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t9: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t8: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t7: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t6: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - INV_10: INV - port map (A=>wptr_10, Z=>wptr_10_inv); - - INV_9: INV - port map (A=>wptr_11, Z=>wptr_11_inv); - - INV_8: INV - port map (A=>wptr_12, Z=>wptr_12_inv); - - INV_7: INV - port map (A=>wptr_13, Z=>wptr_13_inv); - - INV_6: INV - port map (A=>wptr_14, Z=>wptr_14_inv); - - LUT4_180: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet); - - LUT4_179: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec0_p00); - - INV_5: INV - port map (A=>rptr_11, Z=>rptr_11_inv); - - INV_4: INV - port map (A=>rptr_12, Z=>rptr_12_inv); - - INV_3: INV - port map (A=>rptr_13, Z=>rptr_13_inv); - - INV_2: INV - port map (A=>rptr_14, Z=>rptr_14_inv); - - INV_1: INV - port map (A=>rptr_15, Z=>rptr_15_inv); - - LUT4_178: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_1); - - LUT4_177: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_1, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec1_r10); - - LUT4_176: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_2); - - LUT4_175: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_2, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec2_p01); - - LUT4_174: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_3); - - LUT4_173: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_3, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec3_r11); - - LUT4_172: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_4); - - LUT4_171: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_4, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec4_p02); - - LUT4_170: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_5); - - LUT4_169: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_5, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec5_r12); - - LUT4_168: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_6); - - LUT4_167: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_6, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec6_p03); - - LUT4_166: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_7); - - LUT4_165: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_7, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec7_r13); - - LUT4_164: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_8); - - LUT4_163: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_8, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec8_p04); - - LUT4_162: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_9); - - LUT4_161: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_9, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec9_r14); - - LUT4_160: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_10); - - LUT4_159: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_10, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec10_p05); - - LUT4_158: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_11); - - LUT4_157: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_11, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec11_r15); - - LUT4_156: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_12); - - LUT4_155: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_12, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec12_p06); - - LUT4_154: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_13); - - LUT4_153: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_13, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec13_r16); - - LUT4_152: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_14); - - LUT4_151: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_14, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec14_p07); - - LUT4_150: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_15); - - LUT4_149: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_15, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec15_r17); - - LUT4_148: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_16); - - LUT4_147: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_16, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec16_p08); - - LUT4_146: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_17); - - LUT4_145: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_17, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec17_r18); - - LUT4_144: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_18); - - LUT4_143: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_18, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec18_p09); - - LUT4_142: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_19); - - LUT4_141: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_19, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec19_r19); - - LUT4_140: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_20); - - LUT4_139: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_20, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec20_p010); - - LUT4_138: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_21); - - LUT4_137: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_21, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec21_r110); - - LUT4_136: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_22); - - LUT4_135: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_22, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec22_p011); - - LUT4_134: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_23); - - LUT4_133: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_23, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec23_r111); - - LUT4_132: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_24); - - LUT4_131: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_24, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec24_p012); - - LUT4_130: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_25); - - LUT4_129: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_25, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec25_r112); - - LUT4_128: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_26); - - LUT4_127: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_26, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec26_p013); - - LUT4_126: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_27); - - LUT4_125: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_27, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec27_r113); - - LUT4_124: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_28); - - LUT4_123: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_28, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec28_p014); - - LUT4_122: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_29); - - LUT4_121: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_29, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec29_r114); - - LUT4_120: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, AD0=>wptr_13, - DO0=>func_and_inet_30); - - LUT4_119: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_30, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec30_p015); - - LUT4_118: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_31); - - LUT4_117: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_31, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec31_r115); - - LUT4_116: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_32); - - LUT4_115: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_32, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec32_p016); - - LUT4_114: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_33); - - LUT4_113: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_33, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec33_r116); - - LUT4_112: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_34); - - LUT4_111: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_34, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec34_p017); - - LUT4_110: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_35); - - LUT4_109: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_35, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec35_r117); - - LUT4_108: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_36); - - LUT4_107: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_36, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec36_p018); - - LUT4_106: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_37); - - LUT4_105: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_37, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec37_r118); - - LUT4_104: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_38); - - LUT4_103: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_38, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec38_p019); - - LUT4_102: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_39); - - LUT4_101: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_39, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec39_r119); - - LUT4_100: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_40); - - LUT4_99: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_40, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec40_p020); - - LUT4_98: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_41); - - LUT4_97: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_41, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec41_r120); - - LUT4_96: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_42); - - LUT4_95: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_42, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec42_p021); - - LUT4_94: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_43); - - LUT4_93: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_43, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec43_r121); - - LUT4_92: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_44); - - LUT4_91: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_44, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec44_p022); - - LUT4_90: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_45); - - LUT4_89: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_45, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec45_r122); - - LUT4_88: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_46); - - LUT4_87: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_46, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec46_p023); - - LUT4_86: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_47); - - LUT4_85: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_47, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec47_r123); - - LUT4_84: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_48); - - LUT4_83: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_48, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec48_p024); - - LUT4_82: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_49); - - LUT4_81: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_49, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec49_r124); - - LUT4_80: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_50); - - LUT4_79: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_50, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec50_p025); - - LUT4_78: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_51); - - LUT4_77: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_51, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec51_r125); - - LUT4_76: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_52); - - LUT4_75: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_52, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec52_p026); - - LUT4_74: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_53); - - LUT4_73: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_53, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec53_r126); - - LUT4_72: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_54); - - LUT4_71: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_54, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec54_p027); - - LUT4_70: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_55); - - LUT4_69: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_55, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec55_r127); - - LUT4_68: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_56); - - LUT4_67: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_56, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec56_p028); - - LUT4_66: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_57); - - LUT4_65: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_57, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec57_r128); - - LUT4_64: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_58); - - LUT4_63: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_58, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec58_p029); - - LUT4_62: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_59); - - LUT4_61: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_59, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec59_r129); - - LUT4_60: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_60); - - LUT4_59: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_60, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec60_p030); - - LUT4_58: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_61); - - LUT4_57: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_61, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec61_r130); - - LUT4_56: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, AD0=>wptr_13, - DO0=>func_and_inet_62); - - LUT4_55: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_62, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec62_p031); - - LUT4_54: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_63); - - LUT4_53: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_63, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec63_r131); - - LUT4_52: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, - DO0=>w_g2b_xor_cluster_0); - - LUT4_51: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_1); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_2); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_3); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r9); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>wcount_r6); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r23, DO0=>wcount_r3); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r2); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r1); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_1); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_2); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - XOR2_t5: XOR2 - port map (A=>wcount_15, B=>r_gcount_w216, Z=>wcnt_sub_msb); - - XOR2_t4: XOR2 - port map (A=>w_gcount_r215, B=>rcount_16, Z=>rcnt_sub_msb); - - XOR2_t3: XOR2 - port map (A=>wptr_15, B=>r_gcount_w216, Z=>wfill_sub_msb); - - XOR2_t2: XOR2 - port map (A=>w_gcount_r215, B=>rptr_16, Z=>rfill_sub_msb); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - INV_0: INV - port map (A=>rcnt_reg_15, Z=>rcnt_reg_15_inv); - - AND2_t1: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15_inv, Z=>ae_clrsig); - - AND2_t0: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15, Z=>ae_setsig); - - pdp_ram_0_0_31: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec0_p00, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec1_r10, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_0_0, DOB1=>mdout1_0_1, - DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, DOB4=>mdout1_0_4, - DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, DOB7=>mdout1_0_7, - DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_30: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec2_p01, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec3_r11, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_1_0, DOB1=>mdout1_1_1, - DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, DOB4=>mdout1_1_4, - DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, DOB7=>mdout1_1_7, - DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_29: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec4_p02, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec5_r12, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_2_0, DOB1=>mdout1_2_1, - DOB2=>mdout1_2_2, DOB3=>mdout1_2_3, DOB4=>mdout1_2_4, - DOB5=>mdout1_2_5, DOB6=>mdout1_2_6, DOB7=>mdout1_2_7, - DOB8=>mdout1_2_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_28: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec6_p03, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec7_r13, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_3_0, DOB1=>mdout1_3_1, - DOB2=>mdout1_3_2, DOB3=>mdout1_3_3, DOB4=>mdout1_3_4, - DOB5=>mdout1_3_5, DOB6=>mdout1_3_6, DOB7=>mdout1_3_7, - DOB8=>mdout1_3_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_4_0_27: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec8_p04, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec9_r14, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_4_0, DOB1=>mdout1_4_1, - DOB2=>mdout1_4_2, DOB3=>mdout1_4_3, DOB4=>mdout1_4_4, - DOB5=>mdout1_4_5, DOB6=>mdout1_4_6, DOB7=>mdout1_4_7, - DOB8=>mdout1_4_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_5_0_26: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec10_p05, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec11_r15, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_5_0, DOB1=>mdout1_5_1, - DOB2=>mdout1_5_2, DOB3=>mdout1_5_3, DOB4=>mdout1_5_4, - DOB5=>mdout1_5_5, DOB6=>mdout1_5_6, DOB7=>mdout1_5_7, - DOB8=>mdout1_5_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_6_0_25: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec12_p06, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec13_r16, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_6_0, DOB1=>mdout1_6_1, - DOB2=>mdout1_6_2, DOB3=>mdout1_6_3, DOB4=>mdout1_6_4, - DOB5=>mdout1_6_5, DOB6=>mdout1_6_6, DOB7=>mdout1_6_7, - DOB8=>mdout1_6_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_7_0_24: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec14_p07, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec15_r17, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_7_0, DOB1=>mdout1_7_1, - DOB2=>mdout1_7_2, DOB3=>mdout1_7_3, DOB4=>mdout1_7_4, - DOB5=>mdout1_7_5, DOB6=>mdout1_7_6, DOB7=>mdout1_7_7, - DOB8=>mdout1_7_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_8_0_23: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec16_p08, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec17_r18, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_8_0, DOB1=>mdout1_8_1, - DOB2=>mdout1_8_2, DOB3=>mdout1_8_3, DOB4=>mdout1_8_4, - DOB5=>mdout1_8_5, DOB6=>mdout1_8_6, DOB7=>mdout1_8_7, - DOB8=>mdout1_8_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_9_0_22: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec18_p09, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec19_r19, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_9_0, DOB1=>mdout1_9_1, - DOB2=>mdout1_9_2, DOB3=>mdout1_9_3, DOB4=>mdout1_9_4, - DOB5=>mdout1_9_5, DOB6=>mdout1_9_6, DOB7=>mdout1_9_7, - DOB8=>mdout1_9_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_10_0_21: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec20_p010, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec21_r110, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_10_0, DOB1=>mdout1_10_1, - DOB2=>mdout1_10_2, DOB3=>mdout1_10_3, DOB4=>mdout1_10_4, - DOB5=>mdout1_10_5, DOB6=>mdout1_10_6, DOB7=>mdout1_10_7, - DOB8=>mdout1_10_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_11_0_20: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec22_p011, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec23_r111, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_11_0, DOB1=>mdout1_11_1, - DOB2=>mdout1_11_2, DOB3=>mdout1_11_3, DOB4=>mdout1_11_4, - DOB5=>mdout1_11_5, DOB6=>mdout1_11_6, DOB7=>mdout1_11_7, - DOB8=>mdout1_11_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_12_0_19: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec24_p012, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec25_r112, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_12_0, DOB1=>mdout1_12_1, - DOB2=>mdout1_12_2, DOB3=>mdout1_12_3, DOB4=>mdout1_12_4, - DOB5=>mdout1_12_5, DOB6=>mdout1_12_6, DOB7=>mdout1_12_7, - DOB8=>mdout1_12_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_13_0_18: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec26_p013, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec27_r113, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_13_0, DOB1=>mdout1_13_1, - DOB2=>mdout1_13_2, DOB3=>mdout1_13_3, DOB4=>mdout1_13_4, - DOB5=>mdout1_13_5, DOB6=>mdout1_13_6, DOB7=>mdout1_13_7, - DOB8=>mdout1_13_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_14_0_17: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec28_p014, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec29_r114, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_14_0, DOB1=>mdout1_14_1, - DOB2=>mdout1_14_2, DOB3=>mdout1_14_3, DOB4=>mdout1_14_4, - DOB5=>mdout1_14_5, DOB6=>mdout1_14_6, DOB7=>mdout1_14_7, - DOB8=>mdout1_14_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_15_0_16: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec30_p015, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec31_r115, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_15_0, DOB1=>mdout1_15_1, - DOB2=>mdout1_15_2, DOB3=>mdout1_15_3, DOB4=>mdout1_15_4, - DOB5=>mdout1_15_5, DOB6=>mdout1_15_6, DOB7=>mdout1_15_7, - DOB8=>mdout1_15_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_16_0_15: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec32_p016, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec33_r116, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_16_0, DOB1=>mdout1_16_1, - DOB2=>mdout1_16_2, DOB3=>mdout1_16_3, DOB4=>mdout1_16_4, - DOB5=>mdout1_16_5, DOB6=>mdout1_16_6, DOB7=>mdout1_16_7, - DOB8=>mdout1_16_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_17_0_14: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec34_p017, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec35_r117, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_17_0, DOB1=>mdout1_17_1, - DOB2=>mdout1_17_2, DOB3=>mdout1_17_3, DOB4=>mdout1_17_4, - DOB5=>mdout1_17_5, DOB6=>mdout1_17_6, DOB7=>mdout1_17_7, - DOB8=>mdout1_17_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_18_0_13: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec36_p018, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec37_r118, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_18_0, DOB1=>mdout1_18_1, - DOB2=>mdout1_18_2, DOB3=>mdout1_18_3, DOB4=>mdout1_18_4, - DOB5=>mdout1_18_5, DOB6=>mdout1_18_6, DOB7=>mdout1_18_7, - DOB8=>mdout1_18_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_19_0_12: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec38_p019, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec39_r119, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_19_0, DOB1=>mdout1_19_1, - DOB2=>mdout1_19_2, DOB3=>mdout1_19_3, DOB4=>mdout1_19_4, - DOB5=>mdout1_19_5, DOB6=>mdout1_19_6, DOB7=>mdout1_19_7, - DOB8=>mdout1_19_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_20_0_11: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec40_p020, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec41_r120, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_20_0, DOB1=>mdout1_20_1, - DOB2=>mdout1_20_2, DOB3=>mdout1_20_3, DOB4=>mdout1_20_4, - DOB5=>mdout1_20_5, DOB6=>mdout1_20_6, DOB7=>mdout1_20_7, - DOB8=>mdout1_20_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_21_0_10: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec42_p021, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec43_r121, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_21_0, DOB1=>mdout1_21_1, - DOB2=>mdout1_21_2, DOB3=>mdout1_21_3, DOB4=>mdout1_21_4, - DOB5=>mdout1_21_5, DOB6=>mdout1_21_6, DOB7=>mdout1_21_7, - DOB8=>mdout1_21_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_22_0_9: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec44_p022, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec45_r122, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_22_0, DOB1=>mdout1_22_1, - DOB2=>mdout1_22_2, DOB3=>mdout1_22_3, DOB4=>mdout1_22_4, - DOB5=>mdout1_22_5, DOB6=>mdout1_22_6, DOB7=>mdout1_22_7, - DOB8=>mdout1_22_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_23_0_8: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec46_p023, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec47_r123, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_23_0, DOB1=>mdout1_23_1, - DOB2=>mdout1_23_2, DOB3=>mdout1_23_3, DOB4=>mdout1_23_4, - DOB5=>mdout1_23_5, DOB6=>mdout1_23_6, DOB7=>mdout1_23_7, - DOB8=>mdout1_23_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_24_0_7: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec48_p024, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec49_r124, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_24_0, DOB1=>mdout1_24_1, - DOB2=>mdout1_24_2, DOB3=>mdout1_24_3, DOB4=>mdout1_24_4, - DOB5=>mdout1_24_5, DOB6=>mdout1_24_6, DOB7=>mdout1_24_7, - DOB8=>mdout1_24_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_25_0_6: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec50_p025, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec51_r125, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_25_0, DOB1=>mdout1_25_1, - DOB2=>mdout1_25_2, DOB3=>mdout1_25_3, DOB4=>mdout1_25_4, - DOB5=>mdout1_25_5, DOB6=>mdout1_25_6, DOB7=>mdout1_25_7, - DOB8=>mdout1_25_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_26_0_5: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec52_p026, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec53_r126, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_26_0, DOB1=>mdout1_26_1, - DOB2=>mdout1_26_2, DOB3=>mdout1_26_3, DOB4=>mdout1_26_4, - DOB5=>mdout1_26_5, DOB6=>mdout1_26_6, DOB7=>mdout1_26_7, - DOB8=>mdout1_26_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_27_0_4: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec54_p027, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec55_r127, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_27_0, DOB1=>mdout1_27_1, - DOB2=>mdout1_27_2, DOB3=>mdout1_27_3, DOB4=>mdout1_27_4, - DOB5=>mdout1_27_5, DOB6=>mdout1_27_6, DOB7=>mdout1_27_7, - DOB8=>mdout1_27_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_28_0_3: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec56_p028, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec57_r128, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_28_0, DOB1=>mdout1_28_1, - DOB2=>mdout1_28_2, DOB3=>mdout1_28_3, DOB4=>mdout1_28_4, - DOB5=>mdout1_28_5, DOB6=>mdout1_28_6, DOB7=>mdout1_28_7, - DOB8=>mdout1_28_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_29_0_2: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec58_p029, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec59_r129, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_29_0, DOB1=>mdout1_29_1, - DOB2=>mdout1_29_2, DOB3=>mdout1_29_3, DOB4=>mdout1_29_4, - DOB5=>mdout1_29_5, DOB6=>mdout1_29_6, DOB7=>mdout1_29_7, - DOB8=>mdout1_29_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_30_0_1: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec60_p030, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec61_r130, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_30_0, DOB1=>mdout1_30_1, - DOB2=>mdout1_30_2, DOB3=>mdout1_30_3, DOB4=>mdout1_30_4, - DOB5=>mdout1_30_5, DOB6=>mdout1_30_6, DOB7=>mdout1_30_7, - DOB8=>mdout1_30_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_31_0_0: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec62_p031, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec63_r131, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_31_0, DOB1=>mdout1_31_1, - DOB2=>mdout1_31_2, DOB3=>mdout1_31_3, DOB4=>mdout1_31_4, - DOB5=>mdout1_31_5, DOB6=>mdout1_31_6, DOB7=>mdout1_31_7, - DOB8=>mdout1_31_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_239: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_238: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_237: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_236: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_235: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_234: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_233: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_232: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_231: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_230: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_229: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_228: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_227: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_226: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_225: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_224: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_223: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_222: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_221: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_220: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_219: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_218: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_217: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_216: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_215: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_214: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_213: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_212: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_211: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_210: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_209: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_208: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_207: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_206: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_205: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_204: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_203: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_202: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_201: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_200: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_199: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_198: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_197: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_196: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_195: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_194: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_193: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_192: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_191: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_190: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_189: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_188: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_187: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_186: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_185: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_184: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_183: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_182: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_181: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_180: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_179: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_178: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_177: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_176: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_175: FD1P3DX - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_174: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_173: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_172: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_171: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_170: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_169: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_168: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_167: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_166: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_165: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_164: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_163: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_162: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_161: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_160: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_159: FD1P3DX - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_158: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_157: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_156: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_155: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_154: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_153: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_152: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_151: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_150: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_149: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_148: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_147: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_146: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_145: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_144: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_143: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_142: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_141: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_140: FD1P3DX - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_139: FD1P3DX - port map (D=>rptr_12, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_12_ff); - - FF_138: FD1P3DX - port map (D=>rptr_13, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_13_ff); - - FF_137: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_136: FD1P3DX - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_135: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_134: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_133: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_132: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_131: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_130: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_129: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_128: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_127: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_126: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_125: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_124: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_123: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_122: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_121: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_120: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_119: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_118: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_117: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_116: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_115: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_114: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_113: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_112: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_111: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_110: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_109: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_108: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_107: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_106: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_105: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_104: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_103: FD1S3DX - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_102: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_101: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_100: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_99: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_98: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_97: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_96: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_95: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_94: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_93: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_92: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_91: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_90: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_89: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_88: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_87: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_86: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_85: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_84: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_83: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_82: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_81: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_80: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_79: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_78: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_77: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_76: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_75: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_74: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_73: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_72: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_71: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_70: FD1S3DX - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_69: FD1S3DX - port map (D=>wcnt_sub_0, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_0); - - FF_68: FD1S3DX - port map (D=>wcnt_sub_1, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_1); - - FF_67: FD1S3DX - port map (D=>wcnt_sub_2, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_2); - - FF_66: FD1S3DX - port map (D=>wcnt_sub_3, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_3); - - FF_65: FD1S3DX - port map (D=>wcnt_sub_4, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_4); - - FF_64: FD1S3DX - port map (D=>wcnt_sub_5, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_5); - - FF_63: FD1S3DX - port map (D=>wcnt_sub_6, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_6); - - FF_62: FD1S3DX - port map (D=>wcnt_sub_7, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_7); - - FF_61: FD1S3DX - port map (D=>wcnt_sub_8, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_8); - - FF_60: FD1S3DX - port map (D=>wcnt_sub_9, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_9); - - FF_59: FD1S3DX - port map (D=>wcnt_sub_10, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_10); - - FF_58: FD1S3DX - port map (D=>wcnt_sub_11, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_11); - - FF_57: FD1S3DX - port map (D=>wcnt_sub_12, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_12); - - FF_56: FD1S3DX - port map (D=>wcnt_sub_13, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_13); - - FF_55: FD1S3DX - port map (D=>wcnt_sub_14, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_14); - - FF_54: FD1S3DX - port map (D=>wcnt_sub_15, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_15); - - FF_53: FD1S3DX - port map (D=>rcnt_sub_0, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_0); - - FF_52: FD1S3DX - port map (D=>rcnt_sub_1, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_1); - - FF_51: FD1S3DX - port map (D=>rcnt_sub_2, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_2); - - FF_50: FD1S3DX - port map (D=>rcnt_sub_3, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_3); - - FF_49: FD1S3DX - port map (D=>rcnt_sub_4, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_4); - - FF_48: FD1S3DX - port map (D=>rcnt_sub_5, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_5); - - FF_47: FD1S3DX - port map (D=>rcnt_sub_6, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_6); - - FF_46: FD1S3DX - port map (D=>rcnt_sub_7, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_7); - - FF_45: FD1S3DX - port map (D=>rcnt_sub_8, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_8); - - FF_44: FD1S3DX - port map (D=>rcnt_sub_9, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_9); - - FF_43: FD1S3DX - port map (D=>rcnt_sub_10, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_10); - - FF_42: FD1S3DX - port map (D=>rcnt_sub_11, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_11); - - FF_41: FD1S3DX - port map (D=>rcnt_sub_12, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_12); - - FF_40: FD1S3DX - port map (D=>rcnt_sub_13, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_13); - - FF_39: FD1S3DX - port map (D=>rcnt_sub_14, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_14); - - FF_38: FD1S3DX - port map (D=>rcnt_sub_15, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_15); - - FF_37: FD1S3DX - port map (D=>rcnt_sub_16, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_16); - - FF_36: FD1S3DX - port map (D=>wfill_sub_0, CK=>WrClock, CD=>Reset, Q=>WCNT(0)); - - FF_35: FD1S3DX - port map (D=>wfill_sub_1, CK=>WrClock, CD=>Reset, Q=>WCNT(1)); - - FF_34: FD1S3DX - port map (D=>wfill_sub_2, CK=>WrClock, CD=>Reset, Q=>WCNT(2)); - - FF_33: FD1S3DX - port map (D=>wfill_sub_3, CK=>WrClock, CD=>Reset, Q=>WCNT(3)); - - FF_32: FD1S3DX - port map (D=>wfill_sub_4, CK=>WrClock, CD=>Reset, Q=>WCNT(4)); - - FF_31: FD1S3DX - port map (D=>wfill_sub_5, CK=>WrClock, CD=>Reset, Q=>WCNT(5)); - - FF_30: FD1S3DX - port map (D=>wfill_sub_6, CK=>WrClock, CD=>Reset, Q=>WCNT(6)); - - FF_29: FD1S3DX - port map (D=>wfill_sub_7, CK=>WrClock, CD=>Reset, Q=>WCNT(7)); - - FF_28: FD1S3DX - port map (D=>wfill_sub_8, CK=>WrClock, CD=>Reset, Q=>WCNT(8)); - - FF_27: FD1S3DX - port map (D=>wfill_sub_9, CK=>WrClock, CD=>Reset, Q=>WCNT(9)); - - FF_26: FD1S3DX - port map (D=>wfill_sub_10, CK=>WrClock, CD=>Reset, Q=>WCNT(10)); - - FF_25: FD1S3DX - port map (D=>wfill_sub_11, CK=>WrClock, CD=>Reset, Q=>WCNT(11)); - - FF_24: FD1S3DX - port map (D=>wfill_sub_12, CK=>WrClock, CD=>Reset, Q=>WCNT(12)); - - FF_23: FD1S3DX - port map (D=>wfill_sub_13, CK=>WrClock, CD=>Reset, Q=>WCNT(13)); - - FF_22: FD1S3DX - port map (D=>wfill_sub_14, CK=>WrClock, CD=>Reset, Q=>WCNT(14)); - - FF_21: FD1S3DX - port map (D=>wfill_sub_15, CK=>WrClock, CD=>Reset, Q=>WCNT(15)); - - FF_20: FD1S3DX - port map (D=>rfill_sub_0, CK=>RdClock, CD=>rRst, Q=>RCNT(0)); - - FF_19: FD1S3DX - port map (D=>rfill_sub_1, CK=>RdClock, CD=>rRst, Q=>RCNT(1)); - - FF_18: FD1S3DX - port map (D=>rfill_sub_2, CK=>RdClock, CD=>rRst, Q=>RCNT(2)); - - FF_17: FD1S3DX - port map (D=>rfill_sub_3, CK=>RdClock, CD=>rRst, Q=>RCNT(3)); - - FF_16: FD1S3DX - port map (D=>rfill_sub_4, CK=>RdClock, CD=>rRst, Q=>RCNT(4)); - - FF_15: FD1S3DX - port map (D=>rfill_sub_5, CK=>RdClock, CD=>rRst, Q=>RCNT(5)); - - FF_14: FD1S3DX - port map (D=>rfill_sub_6, CK=>RdClock, CD=>rRst, Q=>RCNT(6)); - - FF_13: FD1S3DX - port map (D=>rfill_sub_7, CK=>RdClock, CD=>rRst, Q=>RCNT(7)); - - FF_12: FD1S3DX - port map (D=>rfill_sub_8, CK=>RdClock, CD=>rRst, Q=>RCNT(8)); - - FF_11: FD1S3DX - port map (D=>rfill_sub_9, CK=>RdClock, CD=>rRst, Q=>RCNT(9)); - - FF_10: FD1S3DX - port map (D=>rfill_sub_10, CK=>RdClock, CD=>rRst, Q=>RCNT(10)); - - FF_9: FD1S3DX - port map (D=>rfill_sub_11, CK=>RdClock, CD=>rRst, Q=>RCNT(11)); - - FF_8: FD1S3DX - port map (D=>rfill_sub_12, CK=>RdClock, CD=>rRst, Q=>RCNT(12)); - - FF_7: FD1S3DX - port map (D=>rfill_sub_13, CK=>RdClock, CD=>rRst, Q=>RCNT(13)); - - FF_6: FD1S3DX - port map (D=>rfill_sub_14, CK=>RdClock, CD=>rRst, Q=>RCNT(14)); - - FF_5: FD1S3DX - port map (D=>rfill_sub_15, CK=>RdClock, CD=>rRst, Q=>RCNT(15)); - - FF_4: FD1S3DX - port map (D=>rfill_sub_16, CK=>RdClock, CD=>rRst, Q=>RCNT(16)); - - FF_3: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_2: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - FF_1: FD1S3BX - port map (D=>ae_d, CK=>RdClock, PD=>rRst, Q=>AlmostEmpty); - - FF_0: FD1S3DX - port map (D=>af_d, CK=>WrClock, CD=>Reset, Q=>AlmostFull); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>ircount_16, NC1=>open); - - mux_8: MUX321 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, D4=>mdout1_4_0, D5=>mdout1_5_0, - D6=>mdout1_6_0, D7=>mdout1_7_0, D8=>mdout1_8_0, - D9=>mdout1_9_0, D10=>mdout1_10_0, D11=>mdout1_11_0, - D12=>mdout1_12_0, D13=>mdout1_13_0, D14=>mdout1_14_0, - D15=>mdout1_15_0, D16=>mdout1_16_0, D17=>mdout1_17_0, - D18=>mdout1_18_0, D19=>mdout1_19_0, D20=>mdout1_20_0, - D21=>mdout1_21_0, D22=>mdout1_22_0, D23=>mdout1_23_0, - D24=>mdout1_24_0, D25=>mdout1_25_0, D26=>mdout1_26_0, - D27=>mdout1_27_0, D28=>mdout1_28_0, D29=>mdout1_29_0, - D30=>mdout1_30_0, D31=>mdout1_31_0, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(0)); - - mux_7: MUX321 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, D4=>mdout1_4_1, D5=>mdout1_5_1, - D6=>mdout1_6_1, D7=>mdout1_7_1, D8=>mdout1_8_1, - D9=>mdout1_9_1, D10=>mdout1_10_1, D11=>mdout1_11_1, - D12=>mdout1_12_1, D13=>mdout1_13_1, D14=>mdout1_14_1, - D15=>mdout1_15_1, D16=>mdout1_16_1, D17=>mdout1_17_1, - D18=>mdout1_18_1, D19=>mdout1_19_1, D20=>mdout1_20_1, - D21=>mdout1_21_1, D22=>mdout1_22_1, D23=>mdout1_23_1, - D24=>mdout1_24_1, D25=>mdout1_25_1, D26=>mdout1_26_1, - D27=>mdout1_27_1, D28=>mdout1_28_1, D29=>mdout1_29_1, - D30=>mdout1_30_1, D31=>mdout1_31_1, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(1)); - - mux_6: MUX321 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, D4=>mdout1_4_2, D5=>mdout1_5_2, - D6=>mdout1_6_2, D7=>mdout1_7_2, D8=>mdout1_8_2, - D9=>mdout1_9_2, D10=>mdout1_10_2, D11=>mdout1_11_2, - D12=>mdout1_12_2, D13=>mdout1_13_2, D14=>mdout1_14_2, - D15=>mdout1_15_2, D16=>mdout1_16_2, D17=>mdout1_17_2, - D18=>mdout1_18_2, D19=>mdout1_19_2, D20=>mdout1_20_2, - D21=>mdout1_21_2, D22=>mdout1_22_2, D23=>mdout1_23_2, - D24=>mdout1_24_2, D25=>mdout1_25_2, D26=>mdout1_26_2, - D27=>mdout1_27_2, D28=>mdout1_28_2, D29=>mdout1_29_2, - D30=>mdout1_30_2, D31=>mdout1_31_2, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(2)); - - mux_5: MUX321 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, D4=>mdout1_4_3, D5=>mdout1_5_3, - D6=>mdout1_6_3, D7=>mdout1_7_3, D8=>mdout1_8_3, - D9=>mdout1_9_3, D10=>mdout1_10_3, D11=>mdout1_11_3, - D12=>mdout1_12_3, D13=>mdout1_13_3, D14=>mdout1_14_3, - D15=>mdout1_15_3, D16=>mdout1_16_3, D17=>mdout1_17_3, - D18=>mdout1_18_3, D19=>mdout1_19_3, D20=>mdout1_20_3, - D21=>mdout1_21_3, D22=>mdout1_22_3, D23=>mdout1_23_3, - D24=>mdout1_24_3, D25=>mdout1_25_3, D26=>mdout1_26_3, - D27=>mdout1_27_3, D28=>mdout1_28_3, D29=>mdout1_29_3, - D30=>mdout1_30_3, D31=>mdout1_31_3, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(3)); - - mux_4: MUX321 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, D4=>mdout1_4_4, D5=>mdout1_5_4, - D6=>mdout1_6_4, D7=>mdout1_7_4, D8=>mdout1_8_4, - D9=>mdout1_9_4, D10=>mdout1_10_4, D11=>mdout1_11_4, - D12=>mdout1_12_4, D13=>mdout1_13_4, D14=>mdout1_14_4, - D15=>mdout1_15_4, D16=>mdout1_16_4, D17=>mdout1_17_4, - D18=>mdout1_18_4, D19=>mdout1_19_4, D20=>mdout1_20_4, - D21=>mdout1_21_4, D22=>mdout1_22_4, D23=>mdout1_23_4, - D24=>mdout1_24_4, D25=>mdout1_25_4, D26=>mdout1_26_4, - D27=>mdout1_27_4, D28=>mdout1_28_4, D29=>mdout1_29_4, - D30=>mdout1_30_4, D31=>mdout1_31_4, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(4)); - - mux_3: MUX321 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, D4=>mdout1_4_5, D5=>mdout1_5_5, - D6=>mdout1_6_5, D7=>mdout1_7_5, D8=>mdout1_8_5, - D9=>mdout1_9_5, D10=>mdout1_10_5, D11=>mdout1_11_5, - D12=>mdout1_12_5, D13=>mdout1_13_5, D14=>mdout1_14_5, - D15=>mdout1_15_5, D16=>mdout1_16_5, D17=>mdout1_17_5, - D18=>mdout1_18_5, D19=>mdout1_19_5, D20=>mdout1_20_5, - D21=>mdout1_21_5, D22=>mdout1_22_5, D23=>mdout1_23_5, - D24=>mdout1_24_5, D25=>mdout1_25_5, D26=>mdout1_26_5, - D27=>mdout1_27_5, D28=>mdout1_28_5, D29=>mdout1_29_5, - D30=>mdout1_30_5, D31=>mdout1_31_5, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(5)); - - mux_2: MUX321 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, D4=>mdout1_4_6, D5=>mdout1_5_6, - D6=>mdout1_6_6, D7=>mdout1_7_6, D8=>mdout1_8_6, - D9=>mdout1_9_6, D10=>mdout1_10_6, D11=>mdout1_11_6, - D12=>mdout1_12_6, D13=>mdout1_13_6, D14=>mdout1_14_6, - D15=>mdout1_15_6, D16=>mdout1_16_6, D17=>mdout1_17_6, - D18=>mdout1_18_6, D19=>mdout1_19_6, D20=>mdout1_20_6, - D21=>mdout1_21_6, D22=>mdout1_22_6, D23=>mdout1_23_6, - D24=>mdout1_24_6, D25=>mdout1_25_6, D26=>mdout1_26_6, - D27=>mdout1_27_6, D28=>mdout1_28_6, D29=>mdout1_29_6, - D30=>mdout1_30_6, D31=>mdout1_31_6, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(6)); - - mux_1: MUX321 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, D4=>mdout1_4_7, D5=>mdout1_5_7, - D6=>mdout1_6_7, D7=>mdout1_7_7, D8=>mdout1_8_7, - D9=>mdout1_9_7, D10=>mdout1_10_7, D11=>mdout1_11_7, - D12=>mdout1_12_7, D13=>mdout1_13_7, D14=>mdout1_14_7, - D15=>mdout1_15_7, D16=>mdout1_16_7, D17=>mdout1_17_7, - D18=>mdout1_18_7, D19=>mdout1_19_7, D20=>mdout1_20_7, - D21=>mdout1_21_7, D22=>mdout1_22_7, D23=>mdout1_23_7, - D24=>mdout1_24_7, D25=>mdout1_25_7, D26=>mdout1_26_7, - D27=>mdout1_27_7, D28=>mdout1_28_7, D29=>mdout1_29_7, - D30=>mdout1_30_7, D31=>mdout1_31_7, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(7)); - - mux_0: MUX321 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, D2=>mdout1_2_8, - D3=>mdout1_3_8, D4=>mdout1_4_8, D5=>mdout1_5_8, - D6=>mdout1_6_8, D7=>mdout1_7_8, D8=>mdout1_8_8, - D9=>mdout1_9_8, D10=>mdout1_10_8, D11=>mdout1_11_8, - D12=>mdout1_12_8, D13=>mdout1_13_8, D14=>mdout1_14_8, - D15=>mdout1_15_8, D16=>mdout1_16_8, D17=>mdout1_17_8, - D18=>mdout1_18_8, D19=>mdout1_19_8, D20=>mdout1_20_8, - D21=>mdout1_21_8, D22=>mdout1_22_8, D23=>mdout1_23_8, - D24=>mdout1_24_8, D25=>mdout1_25_8, D26=>mdout1_26_8, - D27=>mdout1_27_8, D28=>mdout1_28_8, D29=>mdout1_29_8, - D30=>mdout1_30_8, D31=>mdout1_31_8, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(8)); - - wcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wcount_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_2, S0=>open, - S1=>wcnt_sub_0); - - wcnt_1: FSUB2B - port map (A0=>wcount_1, A1=>wcount_2, B0=>rcount_w2, - B1=>rcount_w3, BI=>co0_2, BOUT=>co1_2, S0=>wcnt_sub_1, - S1=>wcnt_sub_2); - - wcnt_2: FSUB2B - port map (A0=>wcount_3, A1=>wcount_4, B0=>rcount_w4, - B1=>rcount_w5, BI=>co1_2, BOUT=>co2_2, S0=>wcnt_sub_3, - S1=>wcnt_sub_4); - - wcnt_3: FSUB2B - port map (A0=>wcount_5, A1=>wcount_6, B0=>rcount_w6, - B1=>rcount_w7, BI=>co2_2, BOUT=>co3_2, S0=>wcnt_sub_5, - S1=>wcnt_sub_6); - - wcnt_4: FSUB2B - port map (A0=>wcount_7, A1=>wcount_8, B0=>rcount_w8, - B1=>rcount_w9, BI=>co3_2, BOUT=>co4_2, S0=>wcnt_sub_7, - S1=>wcnt_sub_8); - - wcnt_5: FSUB2B - port map (A0=>wcount_9, A1=>wcount_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_2, BOUT=>co5_2, S0=>wcnt_sub_9, - S1=>wcnt_sub_10); - - wcnt_6: FSUB2B - port map (A0=>wcount_11, A1=>wcount_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_2, BOUT=>co6_2, - S0=>wcnt_sub_11, S1=>wcnt_sub_12); - - wcnt_7: FSUB2B - port map (A0=>wcount_13, A1=>wcount_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_2, BOUT=>co7_2, S0=>wcnt_sub_13, - S1=>wcnt_sub_14); - - wcnt_8: FSUB2B - port map (A0=>wcnt_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_2, BOUT=>open, S0=>wcnt_sub_15, - S1=>open); - - rcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rcount_0, BI=>scuba_vlo, BOUT=>co0_3, S0=>open, - S1=>rcnt_sub_0); - - rcnt_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rcount_1, - B1=>rcount_2, BI=>co0_3, BOUT=>co1_3, S0=>rcnt_sub_1, - S1=>rcnt_sub_2); - - rcnt_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rcount_3, - B1=>rcount_4, BI=>co1_3, BOUT=>co2_3, S0=>rcnt_sub_3, - S1=>rcnt_sub_4); - - rcnt_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rcount_5, - B1=>rcount_6, BI=>co2_3, BOUT=>co3_3, S0=>rcnt_sub_5, - S1=>rcnt_sub_6); - - rcnt_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rcount_7, - B1=>rcount_8, BI=>co3_3, BOUT=>co4_3, S0=>rcnt_sub_7, - S1=>rcnt_sub_8); - - rcnt_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rcount_9, - B1=>rcount_10, BI=>co4_3, BOUT=>co5_3, S0=>rcnt_sub_9, - S1=>rcnt_sub_10); - - rcnt_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rcount_11, - B1=>rcount_12, BI=>co5_3, BOUT=>co6_3, S0=>rcnt_sub_11, - S1=>rcnt_sub_12); - - rcnt_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rcount_13, - B1=>rcount_14, BI=>co6_3, BOUT=>co7_3, S0=>rcnt_sub_13, - S1=>rcnt_sub_14); - - rcnt_8: FSUB2B - port map (A0=>wcount_r14, A1=>rcnt_sub_msb, B0=>rcount_15, - B1=>scuba_vlo, BI=>co7_3, BOUT=>co8_1, S0=>rcnt_sub_15, - S1=>rcnt_sub_16); - - rcntd: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_1, COUT=>open, S0=>co8_1d, S1=>open); - - wfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wptr_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_4, S0=>open, - S1=>wfill_sub_0); - - wfill_1: FSUB2B - port map (A0=>wptr_1, A1=>wptr_2, B0=>rcount_w2, B1=>rcount_w3, - BI=>co0_4, BOUT=>co1_4, S0=>wfill_sub_1, S1=>wfill_sub_2); - - wfill_2: FSUB2B - port map (A0=>wptr_3, A1=>wptr_4, B0=>rcount_w4, B1=>rcount_w5, - BI=>co1_4, BOUT=>co2_4, S0=>wfill_sub_3, S1=>wfill_sub_4); - - wfill_3: FSUB2B - port map (A0=>wptr_5, A1=>wptr_6, B0=>rcount_w6, B1=>rcount_w7, - BI=>co2_4, BOUT=>co3_4, S0=>wfill_sub_5, S1=>wfill_sub_6); - - wfill_4: FSUB2B - port map (A0=>wptr_7, A1=>wptr_8, B0=>rcount_w8, B1=>rcount_w9, - BI=>co3_4, BOUT=>co4_4, S0=>wfill_sub_7, S1=>wfill_sub_8); - - wfill_5: FSUB2B - port map (A0=>wptr_9, A1=>wptr_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_4, BOUT=>co5_4, S0=>wfill_sub_9, - S1=>wfill_sub_10); - - wfill_6: FSUB2B - port map (A0=>wptr_11, A1=>wptr_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_4, BOUT=>co6_4, - S0=>wfill_sub_11, S1=>wfill_sub_12); - - wfill_7: FSUB2B - port map (A0=>wptr_13, A1=>wptr_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_4, BOUT=>co7_4, S0=>wfill_sub_13, - S1=>wfill_sub_14); - - wfill_8: FSUB2B - port map (A0=>wfill_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_4, BOUT=>open, S0=>wfill_sub_15, - S1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - rfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rptr_0, BI=>scuba_vlo, BOUT=>co0_5, S0=>open, - S1=>rfill_sub_0); - - rfill_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rptr_1, B1=>rptr_2, - BI=>co0_5, BOUT=>co1_5, S0=>rfill_sub_1, S1=>rfill_sub_2); - - rfill_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rptr_3, B1=>rptr_4, - BI=>co1_5, BOUT=>co2_5, S0=>rfill_sub_3, S1=>rfill_sub_4); - - rfill_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rptr_5, B1=>rptr_6, - BI=>co2_5, BOUT=>co3_5, S0=>rfill_sub_5, S1=>rfill_sub_6); - - rfill_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rptr_7, B1=>rptr_8, - BI=>co3_5, BOUT=>co4_5, S0=>rfill_sub_7, S1=>rfill_sub_8); - - rfill_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rptr_9, B1=>rptr_10, - BI=>co4_5, BOUT=>co5_5, S0=>rfill_sub_9, S1=>rfill_sub_10); - - rfill_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rptr_11, - B1=>rptr_12, BI=>co5_5, BOUT=>co6_5, S0=>rfill_sub_11, - S1=>rfill_sub_12); - - rfill_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rptr_13, - B1=>rptr_14, BI=>co6_5, BOUT=>co7_5, S0=>rfill_sub_13, - S1=>rfill_sub_14); - - rfill_8: FSUB2B - port map (A0=>wcount_r14, A1=>rfill_sub_msb, B0=>rptr_15, - B1=>scuba_vlo, BI=>co7_5, BOUT=>co8_2, S0=>rfill_sub_15, - S1=>rfill_sub_16); - - rfilld: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_2, COUT=>open, S0=>co8_2d, S1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_6); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_6, GE=>co1_6); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_6, GE=>co2_6); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_6, GE=>co3_6); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r7, - B1=>wcount_r8, CI=>co3_6, GE=>co4_6); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r9, - B1=>wcount_r10, CI=>co4_6, GE=>co5_6); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r11, - B1=>w_g2b_xor_cluster_0, CI=>co5_6, GE=>co6_6); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r13, - B1=>wcount_r14, CI=>co6_6, GE=>co7_6); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_6, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_7); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_7, GE=>co1_7); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_7, GE=>co2_7); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>rcount_w8, CI=>co2_7, GE=>co3_7); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, - B1=>rcount_w10, CI=>co3_7, GE=>co4_7); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w11, - B1=>rcount_w12, CI=>co4_7, GE=>co5_7); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w14, CI=>co5_7, GE=>co6_7); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>full_cmp_set, B0=>rcount_w15, - B1=>full_cmp_clr, CI=>co6_7, GE=>full_d_c); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - ae_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci_2, S0=>open, S1=>open); - - ae_cmp_0: AGEB2 - port map (A0=>AmEmptyThresh(0), A1=>AmEmptyThresh(1), - B0=>rcnt_reg_0, B1=>rcnt_reg_1, CI=>cmp_ci_2, GE=>co0_8); - - ae_cmp_1: AGEB2 - port map (A0=>AmEmptyThresh(2), A1=>AmEmptyThresh(3), - B0=>rcnt_reg_2, B1=>rcnt_reg_3, CI=>co0_8, GE=>co1_8); - - ae_cmp_2: AGEB2 - port map (A0=>AmEmptyThresh(4), A1=>AmEmptyThresh(5), - B0=>rcnt_reg_4, B1=>rcnt_reg_5, CI=>co1_8, GE=>co2_8); - - ae_cmp_3: AGEB2 - port map (A0=>AmEmptyThresh(6), A1=>AmEmptyThresh(7), - B0=>rcnt_reg_6, B1=>rcnt_reg_7, CI=>co2_8, GE=>co3_8); - - ae_cmp_4: AGEB2 - port map (A0=>AmEmptyThresh(8), A1=>AmEmptyThresh(9), - B0=>rcnt_reg_8, B1=>rcnt_reg_9, CI=>co3_8, GE=>co4_8); - - ae_cmp_5: AGEB2 - port map (A0=>AmEmptyThresh(10), A1=>AmEmptyThresh(11), - B0=>rcnt_reg_10, B1=>rcnt_reg_11, CI=>co4_8, GE=>co5_8); - - ae_cmp_6: AGEB2 - port map (A0=>AmEmptyThresh(12), A1=>AmEmptyThresh(13), - B0=>rcnt_reg_12, B1=>rcnt_reg_13, CI=>co5_8, GE=>co6_8); - - ae_cmp_7: AGEB2 - port map (A0=>AmEmptyThresh(14), A1=>AmEmptyThresh(15), - B0=>rcnt_reg_14, B1=>rcnt_reg_15, CI=>co6_8, GE=>co7_7); - - ae_cmp_8: AGEB2 - port map (A0=>ae_setsig, A1=>scuba_vlo, B0=>ae_clrsig, - B1=>scuba_vlo, CI=>co7_7, GE=>ae_d_c); - - a2: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>ae_d_c, COUT=>open, S0=>ae_d, S1=>open); - - af_d_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_3, S0=>open, S1=>open); - - af_d_cmp_0: AGEB2 - port map (A0=>wcnt_reg_0, A1=>wcnt_reg_1, B0=>AmFullThresh(0), - B1=>AmFullThresh(1), CI=>cmp_ci_3, GE=>co0_9); - - af_d_cmp_1: AGEB2 - port map (A0=>wcnt_reg_2, A1=>wcnt_reg_3, B0=>AmFullThresh(2), - B1=>AmFullThresh(3), CI=>co0_9, GE=>co1_9); - - af_d_cmp_2: AGEB2 - port map (A0=>wcnt_reg_4, A1=>wcnt_reg_5, B0=>AmFullThresh(4), - B1=>AmFullThresh(5), CI=>co1_9, GE=>co2_9); - - af_d_cmp_3: AGEB2 - port map (A0=>wcnt_reg_6, A1=>wcnt_reg_7, B0=>AmFullThresh(6), - B1=>AmFullThresh(7), CI=>co2_9, GE=>co3_9); - - af_d_cmp_4: AGEB2 - port map (A0=>wcnt_reg_8, A1=>wcnt_reg_9, B0=>AmFullThresh(8), - B1=>AmFullThresh(9), CI=>co3_9, GE=>co4_9); - - af_d_cmp_5: AGEB2 - port map (A0=>wcnt_reg_10, A1=>wcnt_reg_11, B0=>AmFullThresh(10), - B1=>AmFullThresh(11), CI=>co4_9, GE=>co5_9); - - af_d_cmp_6: AGEB2 - port map (A0=>wcnt_reg_12, A1=>wcnt_reg_13, B0=>AmFullThresh(12), - B1=>AmFullThresh(13), CI=>co5_9, GE=>co6_9); - - af_d_cmp_7: AGEB2 - port map (A0=>wcnt_reg_14, A1=>wcnt_reg_15, B0=>AmFullThresh(14), - B1=>scuba_vlo, CI=>co6_9, GE=>af_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a3: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>af_d_c, COUT=>open, S0=>af_d, S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_32kx16x8_mb2 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FSUB2B use entity ecp3.FSUB2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX321 use entity ecp3.MUX321(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2_generate.log deleted file mode 100644 index eceede3..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:22:54 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_32kx16x8_mb2 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 15 -data_width 18 -num_words 32768 -rdata_width 9 -no_enable -pe 0 -pf 0 -rfill -fill -e - Circuit name : fifo_32kx16x8_mb2 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[17:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[8:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_32kx16x8_mb2.vhd - VHDL template : fifo_32kx16x8_mb2_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb2_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb2.srp - Estimated Resource Usage: - LUT : 491 - EBR : 32 - Reg : 240 - -END SCUBA Module Synthesis - -File: fifo_32kx16x8_mb2.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2_tmpl.vhd deleted file mode 100644 index 041890c..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb2_tmpl.vhd +++ /dev/null @@ -1,26 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:22:54 2011 - --- parameterized module component declaration -component fifo_32kx16x8_mb2 - port (Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(8 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_32kx16x8_mb2 - port map (Data(17 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, AmEmptyThresh(15 downto 0)=>__, - AmFullThresh(14 downto 0)=>__, Q(8 downto 0)=>__, WCNT(15 downto 0)=>__, - RCNT(16 downto 0)=>__, Empty=>__, Full=>__, AlmostEmpty=>__, - AlmostFull=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb_generate.log deleted file mode 100755 index 232d7cc..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:22:35 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_32kx16x8_mb -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 15 -data_width 16 -num_words 32768 -rdata_width 8 -no_enable -pe 0 -pf 0 -rfill -fill -e - Circuit name : fifo_32kx16x8_mb - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[15:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[7:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_32kx16x8_mb.vhd - VHDL template : fifo_32kx16x8_mb_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb.srp - Estimated Resource Usage: - LUT : 299 - EBR : 32 - Reg : 237 - -END SCUBA Module Synthesis - -File: fifo_32kx16x8_mb.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb_tmpl.vhd deleted file mode 100755 index a84a110..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx16x8_mb_tmpl.vhd +++ /dev/null @@ -1,26 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:22:35 2011 - --- parameterized module component declaration -component fifo_32kx16x8_mb - port (Data: in std_logic_vector(15 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(7 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_32kx16x8_mb - port map (Data(15 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, AmEmptyThresh(15 downto 0)=>__, - AmFullThresh(14 downto 0)=>__, Q(7 downto 0)=>__, WCNT(15 downto 0)=>__, - RCNT(16 downto 0)=>__, Empty=>__, Full=>__, AlmostEmpty=>__, - AlmostFull=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_32kx9_flags.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_32kx9_flags.vhd deleted file mode 100644 index cdfbc7a..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_32kx9_flags.vhd +++ /dev/null @@ -1,3400 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_2.2_Production (99) --- Module Version: 5.5 ---/home/soft/lattice/diamond/2.2_x64/ispfpga/bin/lin64/scuba -w -n fifo_32kx9_flags -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 32768 -width 9 -depth 32768 -rdata_width 9 -no_enable -pe -1 -pf 30000 -pf2 29990 -e - --- Wed Nov 6 19:54:22 2013 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_32kx9_flags is - port ( - Data: in std_logic_vector(8 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostFull: out std_logic); -end fifo_32kx9_flags; - -architecture Structure of fifo_32kx9_flags is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal wptr_14_inv: std_logic; - signal rptr_14_inv: std_logic; - signal wptr_13_inv: std_logic; - signal rptr_13_inv: std_logic; - signal wptr_12_inv: std_logic; - signal rptr_12_inv: std_logic; - signal wptr_11_inv: std_logic; - signal rptr_11_inv: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal dec1_r10: std_logic; - signal dec0_p00: std_logic; - signal dec3_r11: std_logic; - signal dec2_p01: std_logic; - signal dec5_r12: std_logic; - signal dec4_p02: std_logic; - signal dec7_r13: std_logic; - signal dec6_p03: std_logic; - signal dec9_r14: std_logic; - signal dec8_p04: std_logic; - signal dec11_r15: std_logic; - signal dec10_p05: std_logic; - signal dec13_r16: std_logic; - signal dec12_p06: std_logic; - signal dec15_r17: std_logic; - signal dec14_p07: std_logic; - signal dec17_r18: std_logic; - signal dec16_p08: std_logic; - signal dec19_r19: std_logic; - signal dec18_p09: std_logic; - signal dec21_r110: std_logic; - signal dec20_p010: std_logic; - signal dec23_r111: std_logic; - signal dec22_p011: std_logic; - signal dec25_r112: std_logic; - signal dec24_p012: std_logic; - signal dec27_r113: std_logic; - signal dec26_p013: std_logic; - signal dec29_r114: std_logic; - signal dec28_p014: std_logic; - signal dec31_r115: std_logic; - signal dec30_p015: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wptr_15: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_15: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal af: std_logic; - signal af_d: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co7: std_logic; - signal co6: std_logic; - signal wcount_15: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co7_1: std_logic; - signal co6_1: std_logic; - signal rcount_15: std_logic; - signal mdout1_15_0: std_logic; - signal mdout1_14_0: std_logic; - signal mdout1_13_0: std_logic; - signal mdout1_12_0: std_logic; - signal mdout1_11_0: std_logic; - signal mdout1_10_0: std_logic; - signal mdout1_9_0: std_logic; - signal mdout1_8_0: std_logic; - signal mdout1_7_0: std_logic; - signal mdout1_6_0: std_logic; - signal mdout1_5_0: std_logic; - signal mdout1_4_0: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_15_1: std_logic; - signal mdout1_14_1: std_logic; - signal mdout1_13_1: std_logic; - signal mdout1_12_1: std_logic; - signal mdout1_11_1: std_logic; - signal mdout1_10_1: std_logic; - signal mdout1_9_1: std_logic; - signal mdout1_8_1: std_logic; - signal mdout1_7_1: std_logic; - signal mdout1_6_1: std_logic; - signal mdout1_5_1: std_logic; - signal mdout1_4_1: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_15_2: std_logic; - signal mdout1_14_2: std_logic; - signal mdout1_13_2: std_logic; - signal mdout1_12_2: std_logic; - signal mdout1_11_2: std_logic; - signal mdout1_10_2: std_logic; - signal mdout1_9_2: std_logic; - signal mdout1_8_2: std_logic; - signal mdout1_7_2: std_logic; - signal mdout1_6_2: std_logic; - signal mdout1_5_2: std_logic; - signal mdout1_4_2: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_15_3: std_logic; - signal mdout1_14_3: std_logic; - signal mdout1_13_3: std_logic; - signal mdout1_12_3: std_logic; - signal mdout1_11_3: std_logic; - signal mdout1_10_3: std_logic; - signal mdout1_9_3: std_logic; - signal mdout1_8_3: std_logic; - signal mdout1_7_3: std_logic; - signal mdout1_6_3: std_logic; - signal mdout1_5_3: std_logic; - signal mdout1_4_3: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_15_4: std_logic; - signal mdout1_14_4: std_logic; - signal mdout1_13_4: std_logic; - signal mdout1_12_4: std_logic; - signal mdout1_11_4: std_logic; - signal mdout1_10_4: std_logic; - signal mdout1_9_4: std_logic; - signal mdout1_8_4: std_logic; - signal mdout1_7_4: std_logic; - signal mdout1_6_4: std_logic; - signal mdout1_5_4: std_logic; - signal mdout1_4_4: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_15_5: std_logic; - signal mdout1_14_5: std_logic; - signal mdout1_13_5: std_logic; - signal mdout1_12_5: std_logic; - signal mdout1_11_5: std_logic; - signal mdout1_10_5: std_logic; - signal mdout1_9_5: std_logic; - signal mdout1_8_5: std_logic; - signal mdout1_7_5: std_logic; - signal mdout1_6_5: std_logic; - signal mdout1_5_5: std_logic; - signal mdout1_4_5: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_15_6: std_logic; - signal mdout1_14_6: std_logic; - signal mdout1_13_6: std_logic; - signal mdout1_12_6: std_logic; - signal mdout1_11_6: std_logic; - signal mdout1_10_6: std_logic; - signal mdout1_9_6: std_logic; - signal mdout1_8_6: std_logic; - signal mdout1_7_6: std_logic; - signal mdout1_6_6: std_logic; - signal mdout1_5_6: std_logic; - signal mdout1_4_6: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_15_7: std_logic; - signal mdout1_14_7: std_logic; - signal mdout1_13_7: std_logic; - signal mdout1_12_7: std_logic; - signal mdout1_11_7: std_logic; - signal mdout1_10_7: std_logic; - signal mdout1_9_7: std_logic; - signal mdout1_8_7: std_logic; - signal mdout1_7_7: std_logic; - signal mdout1_6_7: std_logic; - signal mdout1_5_7: std_logic; - signal mdout1_4_7: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_14_ff: std_logic; - signal rptr_13_ff: std_logic; - signal rptr_12_ff: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_15_8: std_logic; - signal mdout1_14_8: std_logic; - signal mdout1_13_8: std_logic; - signal mdout1_12_8: std_logic; - signal mdout1_11_8: std_logic; - signal mdout1_10_8: std_logic; - signal mdout1_9_8: std_logic; - signal mdout1_8_8: std_logic; - signal mdout1_7_8: std_logic; - signal mdout1_6_8: std_logic; - signal mdout1_5_8: std_logic; - signal mdout1_4_8: std_logic; - signal mdout1_3_8: std_logic; - signal mdout1_2_8: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r13: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_2: std_logic; - signal wcount_r14: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_14: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal cmp_ci_1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_3: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_14: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal iaf_setcount_0: std_logic; - signal iaf_setcount_1: std_logic; - signal af_set_ctr_ci: std_logic; - signal iaf_setcount_2: std_logic; - signal iaf_setcount_3: std_logic; - signal co0_4: std_logic; - signal iaf_setcount_4: std_logic; - signal iaf_setcount_5: std_logic; - signal co1_4: std_logic; - signal iaf_setcount_6: std_logic; - signal iaf_setcount_7: std_logic; - signal co2_4: std_logic; - signal iaf_setcount_8: std_logic; - signal iaf_setcount_9: std_logic; - signal co3_4: std_logic; - signal iaf_setcount_10: std_logic; - signal iaf_setcount_11: std_logic; - signal co4_4: std_logic; - signal iaf_setcount_12: std_logic; - signal iaf_setcount_13: std_logic; - signal co5_4: std_logic; - signal iaf_setcount_14: std_logic; - signal iaf_setcount_15: std_logic; - signal co7_2: std_logic; - signal co6_4: std_logic; - signal af_setcount_15: std_logic; - signal cmp_ci_2: std_logic; - signal af_setcount_0: std_logic; - signal af_setcount_1: std_logic; - signal co0_5: std_logic; - signal af_setcount_2: std_logic; - signal af_setcount_3: std_logic; - signal co1_5: std_logic; - signal af_setcount_4: std_logic; - signal af_setcount_5: std_logic; - signal co2_5: std_logic; - signal af_setcount_6: std_logic; - signal af_setcount_7: std_logic; - signal co3_5: std_logic; - signal af_setcount_8: std_logic; - signal af_setcount_9: std_logic; - signal co4_5: std_logic; - signal af_setcount_10: std_logic; - signal af_setcount_11: std_logic; - signal co5_5: std_logic; - signal af_setcount_12: std_logic; - signal af_setcount_13: std_logic; - signal co6_5: std_logic; - signal af_set_cmp_clr: std_logic; - signal af_setcount_14: std_logic; - signal af_set_cmp_set: std_logic; - signal af_set: std_logic; - signal af_set_c: std_logic; - signal scuba_vhi: std_logic; - signal iaf_clrcount_0: std_logic; - signal iaf_clrcount_1: std_logic; - signal af_clr_ctr_ci: std_logic; - signal iaf_clrcount_2: std_logic; - signal iaf_clrcount_3: std_logic; - signal co0_6: std_logic; - signal iaf_clrcount_4: std_logic; - signal iaf_clrcount_5: std_logic; - signal co1_6: std_logic; - signal iaf_clrcount_6: std_logic; - signal iaf_clrcount_7: std_logic; - signal co2_6: std_logic; - signal iaf_clrcount_8: std_logic; - signal iaf_clrcount_9: std_logic; - signal co3_6: std_logic; - signal iaf_clrcount_10: std_logic; - signal iaf_clrcount_11: std_logic; - signal co4_6: std_logic; - signal iaf_clrcount_12: std_logic; - signal iaf_clrcount_13: std_logic; - signal co5_6: std_logic; - signal iaf_clrcount_14: std_logic; - signal iaf_clrcount_15: std_logic; - signal co7_3: std_logic; - signal co6_6: std_logic; - signal af_clrcount_15: std_logic; - signal wren_i: std_logic; - signal cmp_ci_3: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal af_clrcount_0: std_logic; - signal af_clrcount_1: std_logic; - signal co0_7: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal af_clrcount_2: std_logic; - signal af_clrcount_3: std_logic; - signal co1_7: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal af_clrcount_4: std_logic; - signal af_clrcount_5: std_logic; - signal co2_7: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal af_clrcount_6: std_logic; - signal af_clrcount_7: std_logic; - signal co3_7: std_logic; - signal rcount_w8: std_logic; - signal rcount_w9: std_logic; - signal af_clrcount_8: std_logic; - signal af_clrcount_9: std_logic; - signal co4_7: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal af_clrcount_10: std_logic; - signal af_clrcount_11: std_logic; - signal co5_7: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w13: std_logic; - signal af_clrcount_12: std_logic; - signal af_clrcount_13: std_logic; - signal co6_7: std_logic; - signal rcount_w14: std_logic; - signal af_clr_cmp_clr: std_logic; - signal af_clrcount_14: std_logic; - signal af_clr_cmp_set: std_logic; - signal af_clr: std_logic; - signal af_clr_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX161 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; D4: in std_logic; D5: in std_logic; - D6: in std_logic; D7: in std_logic; D8: in std_logic; - D9: in std_logic; D10: in std_logic; D11: in std_logic; - D12: in std_logic; D13: in std_logic; D14: in std_logic; - D15: in std_logic; SD1: in std_logic; SD2: in std_logic; - SD3: in std_logic; SD4: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_15 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_15 : label is ""; - attribute RESETMODE of pdp_ram_0_0_15 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_0_14 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_14 : label is ""; - attribute RESETMODE of pdp_ram_1_0_14 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_0_13 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_13 : label is ""; - attribute RESETMODE of pdp_ram_2_0_13 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_0_12 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_12 : label is ""; - attribute RESETMODE of pdp_ram_3_0_12 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_4_0_11 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_4_0_11 : label is ""; - attribute RESETMODE of pdp_ram_4_0_11 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_5_0_10 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_5_0_10 : label is ""; - attribute RESETMODE of pdp_ram_5_0_10 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_6_0_9 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_6_0_9 : label is ""; - attribute RESETMODE of pdp_ram_6_0_9 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_7_0_8 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_7_0_8 : label is ""; - attribute RESETMODE of pdp_ram_7_0_8 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_8_0_7 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_8_0_7 : label is ""; - attribute RESETMODE of pdp_ram_8_0_7 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_9_0_6 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_9_0_6 : label is ""; - attribute RESETMODE of pdp_ram_9_0_6 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_10_0_5 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_10_0_5 : label is ""; - attribute RESETMODE of pdp_ram_10_0_5 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_11_0_4 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_11_0_4 : label is ""; - attribute RESETMODE of pdp_ram_11_0_4 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_12_0_3 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_12_0_3 : label is ""; - attribute RESETMODE of pdp_ram_12_0_3 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_13_0_2 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_13_0_2 : label is ""; - attribute RESETMODE of pdp_ram_13_0_2 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_14_0_1 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_14_0_1 : label is ""; - attribute RESETMODE of pdp_ram_14_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_15_0_0 : label is "fifo_32kx9_flags.lpc"; - attribute MEM_INIT_FILE of pdp_ram_15_0_0 : label is ""; - attribute RESETMODE of pdp_ram_15_0_0 : label is "SYNC"; - attribute GSR of FF_198 : label is "ENABLED"; - attribute GSR of FF_197 : label is "ENABLED"; - attribute GSR of FF_196 : label is "ENABLED"; - attribute GSR of FF_195 : label is "ENABLED"; - attribute GSR of FF_194 : label is "ENABLED"; - attribute GSR of FF_193 : label is "ENABLED"; - attribute GSR of FF_192 : label is "ENABLED"; - attribute GSR of FF_191 : label is "ENABLED"; - attribute GSR of FF_190 : label is "ENABLED"; - attribute GSR of FF_189 : label is "ENABLED"; - attribute GSR of FF_188 : label is "ENABLED"; - attribute GSR of FF_187 : label is "ENABLED"; - attribute GSR of FF_186 : label is "ENABLED"; - attribute GSR of FF_185 : label is "ENABLED"; - attribute GSR of FF_184 : label is "ENABLED"; - attribute GSR of FF_183 : label is "ENABLED"; - attribute GSR of FF_182 : label is "ENABLED"; - attribute GSR of FF_181 : label is "ENABLED"; - attribute GSR of FF_180 : label is "ENABLED"; - attribute GSR of FF_179 : label is "ENABLED"; - attribute GSR of FF_178 : label is "ENABLED"; - attribute GSR of FF_177 : label is "ENABLED"; - attribute GSR of FF_176 : label is "ENABLED"; - attribute GSR of FF_175 : label is "ENABLED"; - attribute GSR of FF_174 : label is "ENABLED"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - attribute NGD_DRC_MASK : integer; - attribute NGD_DRC_MASK of Structure : architecture is 1; - -begin - -- component instantiation statements - AND2_t32: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_9: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t31: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_8: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t30: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t29: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t28: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t27: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t26: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t25: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t24: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t23: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t22: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t21: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t20: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t19: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t18: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t17: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t16: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t15: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t14: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t13: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t12: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t11: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t10: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t9: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t8: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t7: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t6: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t5: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t4: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t3: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t2: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t1: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t0: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - INV_7: INV - port map (A=>wptr_11, Z=>wptr_11_inv); - - INV_6: INV - port map (A=>wptr_12, Z=>wptr_12_inv); - - INV_5: INV - port map (A=>wptr_13, Z=>wptr_13_inv); - - INV_4: INV - port map (A=>wptr_14, Z=>wptr_14_inv); - - LUT4_82: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>dec0_p00); - - INV_3: INV - port map (A=>rptr_11, Z=>rptr_11_inv); - - INV_2: INV - port map (A=>rptr_12, Z=>rptr_12_inv); - - INV_1: INV - port map (A=>rptr_13, Z=>rptr_13_inv); - - INV_0: INV - port map (A=>rptr_14, Z=>rptr_14_inv); - - LUT4_81: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>dec1_r10); - - LUT4_80: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>dec2_p01); - - LUT4_79: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>dec3_r11); - - LUT4_78: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>dec4_p02); - - LUT4_77: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>dec5_r12); - - LUT4_76: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>dec6_p03); - - LUT4_75: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>dec7_r13); - - LUT4_74: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>dec8_p04); - - LUT4_73: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>dec9_r14); - - LUT4_72: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>dec10_p05); - - LUT4_71: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>dec11_r15); - - LUT4_70: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>dec12_p06); - - LUT4_69: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>dec13_r16); - - LUT4_68: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>dec14_p07); - - LUT4_67: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>dec15_r17); - - LUT4_66: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>dec16_p08); - - LUT4_65: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>dec17_r18); - - LUT4_64: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>dec18_p09); - - LUT4_63: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>dec19_r19); - - LUT4_62: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>dec20_p010); - - LUT4_61: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>dec21_r110); - - LUT4_60: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>dec22_p011); - - LUT4_59: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>dec23_r111); - - LUT4_58: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>dec24_p012); - - LUT4_57: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>dec25_r112); - - LUT4_56: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>dec26_p013); - - LUT4_55: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>dec27_r113); - - LUT4_54: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14, DO0=>dec28_p014); - - LUT4_53: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>dec29_r114); - - LUT4_52: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, AD0=>wptr_14, - DO0=>dec30_p015); - - LUT4_51: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>dec31_r115); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, - DO0=>w_g2b_xor_cluster_0); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_1); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_2); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_3); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r9); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>wcount_r6); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r23, DO0=>wcount_r3); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r2); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r1); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r0); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, - DO0=>r_g2b_xor_cluster_0); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_1); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_2); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_3); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>scuba_vlo, DO0=>rcount_w13); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>rcount_w13, DO0=>rcount_w10); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w9); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w23, DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w1); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w0); - - LUT4_8: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_15, AD2=>rcount_15, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_7: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_15, AD2=>rcount_15, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_6: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w215, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_5: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w215, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - LUT4_4: ROM16X1A - generic map (initval=> X"4c32") - port map (AD3=>af_setcount_15, AD2=>wcount_15, - AD1=>r_gcount_w215, AD0=>wptr_15, DO0=>af_set_cmp_set); - - LUT4_3: ROM16X1A - generic map (initval=> X"8001") - port map (AD3=>af_setcount_15, AD2=>wcount_15, - AD1=>r_gcount_w215, AD0=>wptr_15, DO0=>af_set_cmp_clr); - - LUT4_2: ROM16X1A - generic map (initval=> X"4c32") - port map (AD3=>af_clrcount_15, AD2=>wcount_15, - AD1=>r_gcount_w215, AD0=>wptr_15, DO0=>af_clr_cmp_set); - - LUT4_1: ROM16X1A - generic map (initval=> X"8001") - port map (AD3=>af_clrcount_15, AD2=>wcount_15, - AD1=>r_gcount_w215, AD0=>wptr_15, DO0=>af_clr_cmp_clr); - - LUT4_0: ROM16X1A - generic map (initval=> X"4450") - port map (AD3=>af, AD2=>af_set, AD1=>af_clr, AD0=>scuba_vlo, - DO0=>af_d); - - pdp_ram_0_0_15: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec0_p00, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec1_r10, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, DOB1=>mdout1_0_1, - DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, DOB4=>mdout1_0_4, - DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, DOB7=>mdout1_0_7, - DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_14: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec2_p01, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec3_r11, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, DOB1=>mdout1_1_1, - DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, DOB4=>mdout1_1_4, - DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, DOB7=>mdout1_1_7, - DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_13: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec4_p02, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec5_r12, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_0, DOB1=>mdout1_2_1, - DOB2=>mdout1_2_2, DOB3=>mdout1_2_3, DOB4=>mdout1_2_4, - DOB5=>mdout1_2_5, DOB6=>mdout1_2_6, DOB7=>mdout1_2_7, - DOB8=>mdout1_2_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_12: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec6_p03, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec7_r13, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_0, DOB1=>mdout1_3_1, - DOB2=>mdout1_3_2, DOB3=>mdout1_3_3, DOB4=>mdout1_3_4, - DOB5=>mdout1_3_5, DOB6=>mdout1_3_6, DOB7=>mdout1_3_7, - DOB8=>mdout1_3_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_4_0_11: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec8_p04, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec9_r14, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_4_0, DOB1=>mdout1_4_1, - DOB2=>mdout1_4_2, DOB3=>mdout1_4_3, DOB4=>mdout1_4_4, - DOB5=>mdout1_4_5, DOB6=>mdout1_4_6, DOB7=>mdout1_4_7, - DOB8=>mdout1_4_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_5_0_10: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec10_p05, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec11_r15, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_5_0, DOB1=>mdout1_5_1, - DOB2=>mdout1_5_2, DOB3=>mdout1_5_3, DOB4=>mdout1_5_4, - DOB5=>mdout1_5_5, DOB6=>mdout1_5_6, DOB7=>mdout1_5_7, - DOB8=>mdout1_5_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_6_0_9: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec12_p06, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec13_r16, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_6_0, DOB1=>mdout1_6_1, - DOB2=>mdout1_6_2, DOB3=>mdout1_6_3, DOB4=>mdout1_6_4, - DOB5=>mdout1_6_5, DOB6=>mdout1_6_6, DOB7=>mdout1_6_7, - DOB8=>mdout1_6_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_7_0_8: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec14_p07, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec15_r17, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_7_0, DOB1=>mdout1_7_1, - DOB2=>mdout1_7_2, DOB3=>mdout1_7_3, DOB4=>mdout1_7_4, - DOB5=>mdout1_7_5, DOB6=>mdout1_7_6, DOB7=>mdout1_7_7, - DOB8=>mdout1_7_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_8_0_7: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec16_p08, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec17_r18, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_8_0, DOB1=>mdout1_8_1, - DOB2=>mdout1_8_2, DOB3=>mdout1_8_3, DOB4=>mdout1_8_4, - DOB5=>mdout1_8_5, DOB6=>mdout1_8_6, DOB7=>mdout1_8_7, - DOB8=>mdout1_8_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_9_0_6: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec18_p09, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec19_r19, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_9_0, DOB1=>mdout1_9_1, - DOB2=>mdout1_9_2, DOB3=>mdout1_9_3, DOB4=>mdout1_9_4, - DOB5=>mdout1_9_5, DOB6=>mdout1_9_6, DOB7=>mdout1_9_7, - DOB8=>mdout1_9_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_10_0_5: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec20_p010, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec21_r110, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_10_0, - DOB1=>mdout1_10_1, DOB2=>mdout1_10_2, DOB3=>mdout1_10_3, - DOB4=>mdout1_10_4, DOB5=>mdout1_10_5, DOB6=>mdout1_10_6, - DOB7=>mdout1_10_7, DOB8=>mdout1_10_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_11_0_4: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec22_p011, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec23_r111, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_11_0, - DOB1=>mdout1_11_1, DOB2=>mdout1_11_2, DOB3=>mdout1_11_3, - DOB4=>mdout1_11_4, DOB5=>mdout1_11_5, DOB6=>mdout1_11_6, - DOB7=>mdout1_11_7, DOB8=>mdout1_11_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_12_0_3: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec24_p012, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec25_r112, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_12_0, - DOB1=>mdout1_12_1, DOB2=>mdout1_12_2, DOB3=>mdout1_12_3, - DOB4=>mdout1_12_4, DOB5=>mdout1_12_5, DOB6=>mdout1_12_6, - DOB7=>mdout1_12_7, DOB8=>mdout1_12_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_13_0_2: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec26_p013, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec27_r113, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_13_0, - DOB1=>mdout1_13_1, DOB2=>mdout1_13_2, DOB3=>mdout1_13_3, - DOB4=>mdout1_13_4, DOB5=>mdout1_13_5, DOB6=>mdout1_13_6, - DOB7=>mdout1_13_7, DOB8=>mdout1_13_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_14_0_1: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec28_p014, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec29_r114, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_14_0, - DOB1=>mdout1_14_1, DOB2=>mdout1_14_2, DOB3=>mdout1_14_3, - DOB4=>mdout1_14_4, DOB5=>mdout1_14_5, DOB6=>mdout1_14_6, - DOB7=>mdout1_14_7, DOB8=>mdout1_14_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_15_0_0: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec30_p015, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec31_r115, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_15_0, - DOB1=>mdout1_15_1, DOB2=>mdout1_15_2, DOB3=>mdout1_15_3, - DOB4=>mdout1_15_4, DOB5=>mdout1_15_5, DOB6=>mdout1_15_6, - DOB7=>mdout1_15_7, DOB8=>mdout1_15_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_198: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_197: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_196: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_195: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_194: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_193: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_192: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_191: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_190: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_189: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_188: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_187: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_186: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_185: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_184: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_183: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_182: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_181: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_180: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_179: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_178: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_177: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_176: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_175: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_174: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_173: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_172: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_171: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_170: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_169: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_168: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_167: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_166: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_165: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_164: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_163: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_162: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_161: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_160: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_159: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_158: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_157: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_156: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_155: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_154: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_153: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_152: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_151: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_150: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_149: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_148: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_147: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_146: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_145: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_144: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_143: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_142: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_141: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_140: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_139: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_138: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_137: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_136: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_135: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_134: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_133: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_132: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_131: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_130: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_129: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_128: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_127: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_126: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_125: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_124: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_123: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_122: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_121: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_120: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_119: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_118: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_117: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_116: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_115: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_114: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_113: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_112: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_111: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_110: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_109: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_108: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_107: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_106: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_105: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_104: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_103: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_102: FD1P3DX - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_101: FD1P3DX - port map (D=>rptr_12, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_12_ff); - - FF_100: FD1P3DX - port map (D=>rptr_13, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_13_ff); - - FF_99: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_98: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_97: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_96: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_95: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_94: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_93: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_92: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_91: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_90: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_89: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_88: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_87: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_86: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_85: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_84: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_83: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_82: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_81: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_80: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_79: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_78: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_77: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_76: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_75: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_74: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_73: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_72: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_71: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_70: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_69: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_68: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_67: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_66: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_65: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_64: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_63: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_62: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_61: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_60: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_59: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_58: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_57: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_56: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_55: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_54: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_53: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_52: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_51: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_50: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_49: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_48: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_47: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_46: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_45: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_44: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_43: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_42: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_41: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_40: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_39: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_38: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_37: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_36: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_35: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_34: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_33: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - FF_32: FD1P3BX - port map (D=>iaf_setcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_0); - - FF_31: FD1P3DX - port map (D=>iaf_setcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_1); - - FF_30: FD1P3DX - port map (D=>iaf_setcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_2); - - FF_29: FD1P3DX - port map (D=>iaf_setcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_3); - - FF_28: FD1P3BX - port map (D=>iaf_setcount_4, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_4); - - FF_27: FD1P3DX - port map (D=>iaf_setcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_5); - - FF_26: FD1P3BX - port map (D=>iaf_setcount_6, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_6); - - FF_25: FD1P3BX - port map (D=>iaf_setcount_7, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_7); - - FF_24: FD1P3DX - port map (D=>iaf_setcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_8); - - FF_23: FD1P3BX - port map (D=>iaf_setcount_9, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_9); - - FF_22: FD1P3DX - port map (D=>iaf_setcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_10); - - FF_21: FD1P3BX - port map (D=>iaf_setcount_11, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_11); - - FF_20: FD1P3DX - port map (D=>iaf_setcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_12); - - FF_19: FD1P3DX - port map (D=>iaf_setcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_13); - - FF_18: FD1P3DX - port map (D=>iaf_setcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_14); - - FF_17: FD1P3DX - port map (D=>iaf_setcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_15); - - FF_16: FD1P3BX - port map (D=>iaf_clrcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_clrcount_0); - - FF_15: FD1P3BX - port map (D=>iaf_clrcount_1, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_clrcount_1); - - FF_14: FD1P3DX - port map (D=>iaf_clrcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_clrcount_2); - - FF_13: FD1P3BX - port map (D=>iaf_clrcount_3, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_clrcount_3); - - FF_12: FD1P3BX - port map (D=>iaf_clrcount_4, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_clrcount_4); - - FF_11: FD1P3DX - port map (D=>iaf_clrcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_clrcount_5); - - FF_10: FD1P3BX - port map (D=>iaf_clrcount_6, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_clrcount_6); - - FF_9: FD1P3BX - port map (D=>iaf_clrcount_7, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_clrcount_7); - - FF_8: FD1P3DX - port map (D=>iaf_clrcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_clrcount_8); - - FF_7: FD1P3BX - port map (D=>iaf_clrcount_9, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_clrcount_9); - - FF_6: FD1P3DX - port map (D=>iaf_clrcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_clrcount_10); - - FF_5: FD1P3BX - port map (D=>iaf_clrcount_11, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_clrcount_11); - - FF_4: FD1P3DX - port map (D=>iaf_clrcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_clrcount_12); - - FF_3: FD1P3DX - port map (D=>iaf_clrcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_clrcount_13); - - FF_2: FD1P3DX - port map (D=>iaf_clrcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_clrcount_14); - - FF_1: FD1P3DX - port map (D=>iaf_clrcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_clrcount_15); - - FF_0: FD1S3DX - port map (D=>af_d, CK=>WrClock, CD=>Reset, Q=>af); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - mux_8: MUX161 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, D4=>mdout1_4_0, D5=>mdout1_5_0, - D6=>mdout1_6_0, D7=>mdout1_7_0, D8=>mdout1_8_0, - D9=>mdout1_9_0, D10=>mdout1_10_0, D11=>mdout1_11_0, - D12=>mdout1_12_0, D13=>mdout1_13_0, D14=>mdout1_14_0, - D15=>mdout1_15_0, SD1=>rptr_11_ff, SD2=>rptr_12_ff, - SD3=>rptr_13_ff, SD4=>rptr_14_ff, Z=>Q(0)); - - mux_7: MUX161 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, D4=>mdout1_4_1, D5=>mdout1_5_1, - D6=>mdout1_6_1, D7=>mdout1_7_1, D8=>mdout1_8_1, - D9=>mdout1_9_1, D10=>mdout1_10_1, D11=>mdout1_11_1, - D12=>mdout1_12_1, D13=>mdout1_13_1, D14=>mdout1_14_1, - D15=>mdout1_15_1, SD1=>rptr_11_ff, SD2=>rptr_12_ff, - SD3=>rptr_13_ff, SD4=>rptr_14_ff, Z=>Q(1)); - - mux_6: MUX161 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, D4=>mdout1_4_2, D5=>mdout1_5_2, - D6=>mdout1_6_2, D7=>mdout1_7_2, D8=>mdout1_8_2, - D9=>mdout1_9_2, D10=>mdout1_10_2, D11=>mdout1_11_2, - D12=>mdout1_12_2, D13=>mdout1_13_2, D14=>mdout1_14_2, - D15=>mdout1_15_2, SD1=>rptr_11_ff, SD2=>rptr_12_ff, - SD3=>rptr_13_ff, SD4=>rptr_14_ff, Z=>Q(2)); - - mux_5: MUX161 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, D4=>mdout1_4_3, D5=>mdout1_5_3, - D6=>mdout1_6_3, D7=>mdout1_7_3, D8=>mdout1_8_3, - D9=>mdout1_9_3, D10=>mdout1_10_3, D11=>mdout1_11_3, - D12=>mdout1_12_3, D13=>mdout1_13_3, D14=>mdout1_14_3, - D15=>mdout1_15_3, SD1=>rptr_11_ff, SD2=>rptr_12_ff, - SD3=>rptr_13_ff, SD4=>rptr_14_ff, Z=>Q(3)); - - mux_4: MUX161 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, D4=>mdout1_4_4, D5=>mdout1_5_4, - D6=>mdout1_6_4, D7=>mdout1_7_4, D8=>mdout1_8_4, - D9=>mdout1_9_4, D10=>mdout1_10_4, D11=>mdout1_11_4, - D12=>mdout1_12_4, D13=>mdout1_13_4, D14=>mdout1_14_4, - D15=>mdout1_15_4, SD1=>rptr_11_ff, SD2=>rptr_12_ff, - SD3=>rptr_13_ff, SD4=>rptr_14_ff, Z=>Q(4)); - - mux_3: MUX161 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, D4=>mdout1_4_5, D5=>mdout1_5_5, - D6=>mdout1_6_5, D7=>mdout1_7_5, D8=>mdout1_8_5, - D9=>mdout1_9_5, D10=>mdout1_10_5, D11=>mdout1_11_5, - D12=>mdout1_12_5, D13=>mdout1_13_5, D14=>mdout1_14_5, - D15=>mdout1_15_5, SD1=>rptr_11_ff, SD2=>rptr_12_ff, - SD3=>rptr_13_ff, SD4=>rptr_14_ff, Z=>Q(5)); - - mux_2: MUX161 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, D4=>mdout1_4_6, D5=>mdout1_5_6, - D6=>mdout1_6_6, D7=>mdout1_7_6, D8=>mdout1_8_6, - D9=>mdout1_9_6, D10=>mdout1_10_6, D11=>mdout1_11_6, - D12=>mdout1_12_6, D13=>mdout1_13_6, D14=>mdout1_14_6, - D15=>mdout1_15_6, SD1=>rptr_11_ff, SD2=>rptr_12_ff, - SD3=>rptr_13_ff, SD4=>rptr_14_ff, Z=>Q(6)); - - mux_1: MUX161 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, D4=>mdout1_4_7, D5=>mdout1_5_7, - D6=>mdout1_6_7, D7=>mdout1_7_7, D8=>mdout1_8_7, - D9=>mdout1_9_7, D10=>mdout1_10_7, D11=>mdout1_11_7, - D12=>mdout1_12_7, D13=>mdout1_13_7, D14=>mdout1_14_7, - D15=>mdout1_15_7, SD1=>rptr_11_ff, SD2=>rptr_12_ff, - SD3=>rptr_13_ff, SD4=>rptr_14_ff, Z=>Q(7)); - - mux_0: MUX161 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, D2=>mdout1_2_8, - D3=>mdout1_3_8, D4=>mdout1_4_8, D5=>mdout1_5_8, - D6=>mdout1_6_8, D7=>mdout1_7_8, D8=>mdout1_8_8, - D9=>mdout1_9_8, D10=>mdout1_10_8, D11=>mdout1_11_8, - D12=>mdout1_12_8, D13=>mdout1_13_8, D14=>mdout1_14_8, - D15=>mdout1_15_8, SD1=>rptr_11_ff, SD2=>rptr_12_ff, - SD3=>rptr_13_ff, SD4=>rptr_14_ff, Z=>Q(8)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r13, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>empty_cmp_set, B0=>wcount_r14, - B1=>empty_cmp_clr, CI=>co6_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w13, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>full_cmp_set, B0=>rcount_w14, - B1=>full_cmp_clr, CI=>co6_3, GE=>full_d_c); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - af_set_ctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>af_set_ctr_ci, S0=>open, - S1=>open); - - af_set_ctr_0: CU2 - port map (CI=>af_set_ctr_ci, PC0=>af_setcount_0, - PC1=>af_setcount_1, CO=>co0_4, NC0=>iaf_setcount_0, - NC1=>iaf_setcount_1); - - af_set_ctr_1: CU2 - port map (CI=>co0_4, PC0=>af_setcount_2, PC1=>af_setcount_3, - CO=>co1_4, NC0=>iaf_setcount_2, NC1=>iaf_setcount_3); - - af_set_ctr_2: CU2 - port map (CI=>co1_4, PC0=>af_setcount_4, PC1=>af_setcount_5, - CO=>co2_4, NC0=>iaf_setcount_4, NC1=>iaf_setcount_5); - - af_set_ctr_3: CU2 - port map (CI=>co2_4, PC0=>af_setcount_6, PC1=>af_setcount_7, - CO=>co3_4, NC0=>iaf_setcount_6, NC1=>iaf_setcount_7); - - af_set_ctr_4: CU2 - port map (CI=>co3_4, PC0=>af_setcount_8, PC1=>af_setcount_9, - CO=>co4_4, NC0=>iaf_setcount_8, NC1=>iaf_setcount_9); - - af_set_ctr_5: CU2 - port map (CI=>co4_4, PC0=>af_setcount_10, PC1=>af_setcount_11, - CO=>co5_4, NC0=>iaf_setcount_10, NC1=>iaf_setcount_11); - - af_set_ctr_6: CU2 - port map (CI=>co5_4, PC0=>af_setcount_12, PC1=>af_setcount_13, - CO=>co6_4, NC0=>iaf_setcount_12, NC1=>iaf_setcount_13); - - af_set_ctr_7: CU2 - port map (CI=>co6_4, PC0=>af_setcount_14, PC1=>af_setcount_15, - CO=>co7_2, NC0=>iaf_setcount_14, NC1=>iaf_setcount_15); - - af_set_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_2, S0=>open, S1=>open); - - af_set_cmp_0: AGEB2 - port map (A0=>af_setcount_0, A1=>af_setcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_2, GE=>co0_5); - - af_set_cmp_1: AGEB2 - port map (A0=>af_setcount_2, A1=>af_setcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_5, GE=>co1_5); - - af_set_cmp_2: AGEB2 - port map (A0=>af_setcount_4, A1=>af_setcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_5, GE=>co2_5); - - af_set_cmp_3: AGEB2 - port map (A0=>af_setcount_6, A1=>af_setcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_5, GE=>co3_5); - - af_set_cmp_4: AGEB2 - port map (A0=>af_setcount_8, A1=>af_setcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_5, GE=>co4_5); - - af_set_cmp_5: AGEB2 - port map (A0=>af_setcount_10, A1=>af_setcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_5, GE=>co5_5); - - af_set_cmp_6: AGEB2 - port map (A0=>af_setcount_12, A1=>af_setcount_13, - B0=>r_g2b_xor_cluster_0, B1=>rcount_w13, CI=>co5_5, - GE=>co6_5); - - af_set_cmp_7: AGEB2 - port map (A0=>af_setcount_14, A1=>af_set_cmp_set, B0=>rcount_w14, - B1=>af_set_cmp_clr, CI=>co6_5, GE=>af_set_c); - - a2: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>af_set_c, COUT=>open, S0=>af_set, - S1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - af_clr_ctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>af_clr_ctr_ci, S0=>open, - S1=>open); - - af_clr_ctr_0: CU2 - port map (CI=>af_clr_ctr_ci, PC0=>af_clrcount_0, - PC1=>af_clrcount_1, CO=>co0_6, NC0=>iaf_clrcount_0, - NC1=>iaf_clrcount_1); - - af_clr_ctr_1: CU2 - port map (CI=>co0_6, PC0=>af_clrcount_2, PC1=>af_clrcount_3, - CO=>co1_6, NC0=>iaf_clrcount_2, NC1=>iaf_clrcount_3); - - af_clr_ctr_2: CU2 - port map (CI=>co1_6, PC0=>af_clrcount_4, PC1=>af_clrcount_5, - CO=>co2_6, NC0=>iaf_clrcount_4, NC1=>iaf_clrcount_5); - - af_clr_ctr_3: CU2 - port map (CI=>co2_6, PC0=>af_clrcount_6, PC1=>af_clrcount_7, - CO=>co3_6, NC0=>iaf_clrcount_6, NC1=>iaf_clrcount_7); - - af_clr_ctr_4: CU2 - port map (CI=>co3_6, PC0=>af_clrcount_8, PC1=>af_clrcount_9, - CO=>co4_6, NC0=>iaf_clrcount_8, NC1=>iaf_clrcount_9); - - af_clr_ctr_5: CU2 - port map (CI=>co4_6, PC0=>af_clrcount_10, PC1=>af_clrcount_11, - CO=>co5_6, NC0=>iaf_clrcount_10, NC1=>iaf_clrcount_11); - - af_clr_ctr_6: CU2 - port map (CI=>co5_6, PC0=>af_clrcount_12, PC1=>af_clrcount_13, - CO=>co6_6, NC0=>iaf_clrcount_12, NC1=>iaf_clrcount_13); - - af_clr_ctr_7: CU2 - port map (CI=>co6_6, PC0=>af_clrcount_14, PC1=>af_clrcount_15, - CO=>co7_3, NC0=>iaf_clrcount_14, NC1=>iaf_clrcount_15); - - af_clr_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_3, S0=>open, S1=>open); - - af_clr_cmp_0: AGEB2 - port map (A0=>af_clrcount_0, A1=>af_clrcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_3, GE=>co0_7); - - af_clr_cmp_1: AGEB2 - port map (A0=>af_clrcount_2, A1=>af_clrcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_7, GE=>co1_7); - - af_clr_cmp_2: AGEB2 - port map (A0=>af_clrcount_4, A1=>af_clrcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_7, GE=>co2_7); - - af_clr_cmp_3: AGEB2 - port map (A0=>af_clrcount_6, A1=>af_clrcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_7, GE=>co3_7); - - af_clr_cmp_4: AGEB2 - port map (A0=>af_clrcount_8, A1=>af_clrcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_7, GE=>co4_7); - - af_clr_cmp_5: AGEB2 - port map (A0=>af_clrcount_10, A1=>af_clrcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_7, GE=>co5_7); - - af_clr_cmp_6: AGEB2 - port map (A0=>af_clrcount_12, A1=>af_clrcount_13, - B0=>r_g2b_xor_cluster_0, B1=>rcount_w13, CI=>co5_7, - GE=>co6_7); - - af_clr_cmp_7: AGEB2 - port map (A0=>af_clrcount_14, A1=>af_clr_cmp_set, B0=>rcount_w14, - B1=>af_clr_cmp_clr, CI=>co6_7, GE=>af_clr_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a3: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>af_clr_c, COUT=>open, S0=>af_clr, - S1=>open); - - Empty <= empty_i; - Full <= full_i; - AlmostFull <= af; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_32kx9_flags is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX161 use entity ecp3.MUX161(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.ipx deleted file mode 100644 index d91ae3d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.jhd deleted file mode 100755 index 5e39ddf..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.jhd +++ /dev/null @@ -1,479 +0,0 @@ -MODULE fifo_4096x32 DEFIN fifo_4096x32.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3BX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3DX - INSTANCE FF_116 - SUBMODULE FD1P3DX - INSTANCE FF_117 - SUBMODULE FD1P3DX - INSTANCE FF_118 - SUBMODULE FD1P3DX - INSTANCE FF_119 - SUBMODULE FD1P3DX - INSTANCE FF_120 - SUBMODULE FD1P3DX - INSTANCE FF_121 - SUBMODULE FD1P3DX - INSTANCE FF_122 - SUBMODULE FD1P3DX - INSTANCE FF_123 - SUBMODULE FD1P3DX - INSTANCE FF_124 - SUBMODULE FD1P3DX - INSTANCE FF_125 - SUBMODULE FD1P3DX - INSTANCE FF_126 - SUBMODULE FD1P3DX - INSTANCE FF_127 - SUBMODULE FD1P3DX - INSTANCE FF_128 - SUBMODULE FD1P3DX - INSTANCE FF_129 - SUBMODULE FD1P3DX - INSTANCE FF_130 - SUBMODULE FD1P3BX - INSTANCE FF_131 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_7_0 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_6_1 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_5_2 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_4_3 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_3_4 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_2_5 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_1_6 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_0_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE ROM16X1A - INSTANCE LUT4_24 - SUBMODULE ROM16X1A - INSTANCE LUT4_25 - SUBMODULE ROM16X1A - INSTANCE LUT4_26 - SUBMODULE ROM16X1A - INSTANCE LUT4_27 - SUBMODULE ROM16X1A - INSTANCE LUT4_28 - SUBMODULE ROM16X1A - INSTANCE LUT4_29 - SUBMODULE ROM16X1A - INSTANCE LUT4_30 - SUBMODULE ROM16X1A - INSTANCE LUT4_31 - SUBMODULE ROM16X1A - INSTANCE LUT4_32 - SUBMODULE ROM16X1A - INSTANCE LUT4_33 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE OR2 - INSTANCE OR2_t24 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t25 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t26 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.lpc deleted file mode 100755 index 39ae0d7..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_4096x32 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:24:15 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=4096 -Width=32 -RDepth=4096 -RWidth=32 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.naf b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.naf deleted file mode 100755 index 4603fbd..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.naf +++ /dev/null @@ -1,72 +0,0 @@ -Data[31] i -Data[30] i -Data[29] i -Data[28] i -Data[27] i -Data[26] i -Data[25] i -Data[24] i -Data[23] i -Data[22] i -Data[21] i -Data[20] i -Data[19] i -Data[18] i -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[31] o -Q[30] o -Q[29] o -Q[28] o -Q[27] o -Q[26] o -Q[25] o -Q[24] o -Q[23] o -Q[22] o -Q[21] o -Q[20] o -Q[19] o -Q[18] o -Q[17] o -Q[16] o -Q[15] o -Q[14] o -Q[13] o -Q[12] o -Q[11] o -Q[10] o -Q[9] o -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.sort b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.sort deleted file mode 100644 index 90a33fa..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_4096x32.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.srp b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.srp deleted file mode 100755 index a38af87..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:24:15 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_4096x32 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 12 -data_width 32 -num_words 4096 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_4096x32 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[31:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[31:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_4096x32.vhd - VHDL template : fifo_4096x32_tmpl.vhd - VHDL testbench : tb_fifo_4096x32_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_4096x32.srp - Element Usage : - AGEB2 : 14 - AND2 : 2 - CU2 : 14 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 76 - FD1S3BX : 1 - FD1S3DX : 53 - INV : 2 - OR2 : 1 - ROM16X1A : 34 - XOR2 : 24 - DP16KC : 8 - Estimated Resource Usage: - LUT : 129 - EBR : 8 - Reg : 132 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.sym b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.sym deleted file mode 100644 index 31b96dcb1af8686907a1495fa2cb785268272793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmX|-F-yZx6ot>FsYMa#;19^qL7bu$!Qv1wDQ?zM2`Hk)v>?Vd)Ch4a#aS{sI5;>s zh-7eZEY1!YoTZ~_r4bg{0gi$(Nc-An4&`$Lx3fzk(gLT#iCfS z+ClrMx>hrefd)YYD|1RscgO3WUBD$xaF|i8>DoOYB%7j_v0}4x)d_G%R+iE1b|a%t zq(1I*>I|~XchVTId8RW+Gru@zj1N@mpFq*R^n)9olEU6Wi@nB@;G5nLpw+KEk5=xb z`wj6+Z%$C!pDpw6E-!Y^yZw_5V{0?4t^+GFfgv{UPf&&}+ah>mdfH)E=~zwDl6mr> yN+38&KL213Q~m&R_fZ7^ diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.vhd deleted file mode 100755 index 2f52ee4..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32.vhd +++ /dev/null @@ -1,1803 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 4096 -width 32 -depth 4096 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:24:15 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_4096x32 is - port ( - Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_4096x32; - -architecture Structure of fifo_4096x32 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal co6: std_logic; - signal wcount_12: std_logic; - signal co5: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal co6_1: std_logic; - signal rcount_12: std_logic; - signal co5_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_7 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_7 : label is ""; - attribute RESETMODE of pdp_ram_0_0_7 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_1_6 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_6 : label is ""; - attribute RESETMODE of pdp_ram_0_1_6 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_2_5 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_5 : label is ""; - attribute RESETMODE of pdp_ram_0_2_5 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_3_4 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_4 : label is ""; - attribute RESETMODE of pdp_ram_0_3_4 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_4_3 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_3 : label is ""; - attribute RESETMODE of pdp_ram_0_4_3 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_5_2 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_2 : label is ""; - attribute RESETMODE of pdp_ram_0_5_2 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_6_1 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_1 : label is ""; - attribute RESETMODE of pdp_ram_0_6_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_7_0 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_0 : label is ""; - attribute RESETMODE of pdp_ram_0_7_0 : label is "SYNC"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t26: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t25: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t24: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t23: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t22: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t21: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t20: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t19: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t18: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t17: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t16: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t15: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t14: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t13: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t12: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t11: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t10: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t9: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t8: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t7: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t6: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t5: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t4: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t3: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t2: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t1: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t0: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_0); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_1); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_2); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r11); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>wcount_r11, DO0=>wcount_r8); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r6); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r24, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, DO0=>wcount_r3); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r20, DO0=>wcount_r0); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_1); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w11); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_7: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), - DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>open, DOB5=>open, - DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_1_6: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(4), DIA1=>Data(5), DIA2=>Data(6), - DIA3=>Data(7), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(4), - DOB1=>Q(5), DOB2=>Q(6), DOB3=>Q(7), DOB4=>open, DOB5=>open, - DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_2_5: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(8), DIA1=>Data(9), DIA2=>Data(10), - DIA3=>Data(11), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(8), - DOB1=>Q(9), DOB2=>Q(10), DOB3=>Q(11), DOB4=>open, DOB5=>open, - DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_3_4: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(12), DIA1=>Data(13), DIA2=>Data(14), - DIA3=>Data(15), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(12), - DOB1=>Q(13), DOB2=>Q(14), DOB3=>Q(15), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_4_3: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(16), DIA1=>Data(17), DIA2=>Data(18), - DIA3=>Data(19), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(16), - DOB1=>Q(17), DOB2=>Q(18), DOB3=>Q(19), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_5_2: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(20), DIA1=>Data(21), DIA2=>Data(22), - DIA3=>Data(23), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(20), - DOB1=>Q(21), DOB2=>Q(22), DOB3=>Q(23), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_6_1: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(24), DIA1=>Data(25), DIA2=>Data(26), - DIA3=>Data(27), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(24), - DOB1=>Q(25), DOB2=>Q(26), DOB3=>Q(27), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_7_0: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(28), DIA1=>Data(29), DIA2=>Data(30), - DIA3=>Data(31), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(28), - DOB1=>Q(29), DOB2=>Q(30), DOB3=>Q(31), DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_131: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_130: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_129: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_128: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_127: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_126: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_125: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_124: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_123: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_122: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_121: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_120: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_119: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_118: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_117: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_116: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_115: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_114: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_113: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_112: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_111: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_110: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_109: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_108: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_107: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_106: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_105: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_104: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_103: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_102: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_101: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_100: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_99: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_98: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_97: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_96: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_95: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_94: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_93: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_92: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_91: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_90: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_89: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_88: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_87: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_86: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_85: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_84: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_83: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_82: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_81: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_80: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_79: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_78: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_77: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_76: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_75: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_74: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_73: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_72: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_71: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_70: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_69: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_68: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_67: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_66: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_65: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_64: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_63: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_62: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_61: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_60: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_59: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_58: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_57: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_56: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_55: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_54: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_53: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_52: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_51: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_50: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_49: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_48: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_47: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_46: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_45: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_44: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_43: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_42: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_41: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_40: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_39: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_38: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_37: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_36: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_35: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_34: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_33: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_32: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_31: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_30: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_29: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_28: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_27: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_26: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_25: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_24: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_23: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_22: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_21: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_20: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_19: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_18: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_17: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_16: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_15: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_14: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_13: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_12: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_11: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_10: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_9: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_8: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_7: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_6: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_5: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_4: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_3: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_2: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>scuba_vlo, CO=>co6, - NC0=>iwcount_12, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6_1, - NC0=>ircount_12, NC1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>r_g2b_xor_cluster_0, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co5_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_4096x32 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32_generate.log deleted file mode 100755 index dcf82f8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:24:15 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_4096x32 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 12 -data_width 32 -num_words 4096 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_4096x32 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[31:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[31:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_4096x32.vhd - VHDL template : fifo_4096x32_tmpl.vhd - VHDL testbench : tb_fifo_4096x32_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_4096x32.srp - Estimated Resource Usage: - LUT : 129 - EBR : 8 - Reg : 132 - -END SCUBA Module Synthesis - -File: fifo_4096x32.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_4096x32_tmpl.vhd deleted file mode 100755 index f26714f..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x32_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:24:15 2011 - --- parameterized module component declaration -component fifo_4096x32 - port (Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_4096x32 - port map (Data(31 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(31 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.ipx deleted file mode 100644 index 259c42b..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.jhd deleted file mode 100755 index 0a3f358..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.jhd +++ /dev/null @@ -1,487 +0,0 @@ -MODULE fifo_4096x9 DEFIN fifo_4096x9.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE MUX21 - INSTANCE mux_0 - SUBMODULE MUX21 - INSTANCE mux_1 - SUBMODULE MUX21 - INSTANCE mux_2 - SUBMODULE MUX21 - INSTANCE mux_3 - SUBMODULE MUX21 - INSTANCE mux_4 - SUBMODULE MUX21 - INSTANCE mux_5 - SUBMODULE MUX21 - INSTANCE mux_6 - SUBMODULE MUX21 - INSTANCE mux_7 - SUBMODULE MUX21 - INSTANCE mux_8 - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3BX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3DX - INSTANCE FF_116 - SUBMODULE FD1P3DX - INSTANCE FF_117 - SUBMODULE FD1P3DX - INSTANCE FF_118 - SUBMODULE FD1P3DX - INSTANCE FF_119 - SUBMODULE FD1P3DX - INSTANCE FF_120 - SUBMODULE FD1P3DX - INSTANCE FF_121 - SUBMODULE FD1P3DX - INSTANCE FF_122 - SUBMODULE FD1P3DX - INSTANCE FF_123 - SUBMODULE FD1P3DX - INSTANCE FF_124 - SUBMODULE FD1P3DX - INSTANCE FF_125 - SUBMODULE FD1P3DX - INSTANCE FF_126 - SUBMODULE FD1P3DX - INSTANCE FF_127 - SUBMODULE FD1P3DX - INSTANCE FF_128 - SUBMODULE FD1P3DX - INSTANCE FF_129 - SUBMODULE FD1P3DX - INSTANCE FF_130 - SUBMODULE FD1P3DX - INSTANCE FF_131 - SUBMODULE FD1P3BX - INSTANCE FF_132 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_0_0 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_0_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE ROM16X1A - INSTANCE LUT4_24 - SUBMODULE ROM16X1A - INSTANCE LUT4_25 - SUBMODULE ROM16X1A - INSTANCE LUT4_26 - SUBMODULE ROM16X1A - INSTANCE LUT4_27 - SUBMODULE ROM16X1A - INSTANCE LUT4_28 - SUBMODULE ROM16X1A - INSTANCE LUT4_29 - SUBMODULE ROM16X1A - INSTANCE LUT4_30 - SUBMODULE ROM16X1A - INSTANCE LUT4_31 - SUBMODULE ROM16X1A - INSTANCE LUT4_32 - SUBMODULE ROM16X1A - INSTANCE LUT4_33 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE OR2 - INSTANCE OR2_t24 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t25 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t26 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.lpc deleted file mode 100755 index 6e382a8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_4096x9 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:24:06 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=4096 -Width=9 -RDepth=4096 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.naf b/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.naf deleted file mode 100755 index 1410b2d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.naf +++ /dev/null @@ -1,26 +0,0 @@ -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.sort b/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.sort deleted file mode 100644 index 2c0a9ba..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_4096x9.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.srp b/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.srp deleted file mode 100755 index b0b7426..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.srp +++ /dev/null @@ -1,43 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:24:06 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_4096x9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 12 -data_width 9 -num_words 4096 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_4096x9 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_4096x9.vhd - VHDL template : fifo_4096x9_tmpl.vhd - VHDL testbench : tb_fifo_4096x9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_4096x9.srp - Element Usage : - AGEB2 : 14 - AND2 : 2 - CU2 : 14 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 77 - FD1S3BX : 1 - FD1S3DX : 53 - INV : 2 - MUX21 : 9 - OR2 : 1 - ROM16X1A : 34 - XOR2 : 24 - DP16KC : 2 - Estimated Resource Usage: - LUT : 138 - EBR : 2 - Reg : 133 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.sym b/gbe2_ecp3/ipcores_ecp3/fifo_4096x9.sym deleted file mode 100644 index 01c98e8167ed3ad613c19c466b51a0b4860b4cea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmYk2u}i~17{%X5Q>E(A!OnxXUC2pBh&#hC)1vD<+m?MSulyXk0AA@(2yDn{*GH zb^8cg{LHXX`Prbi84XV_a6(&Pzp_Tq^RIwgx)M?4>OudypI}Val=N?Rr?StqF&?Hi z995mKv^gfz&TynUKX}RbpGW!CI_DvKqnr7;DDSnt4 zf|;G_D*w{O`N8>Mc)V)2*6v!c*kg;&yg(DaI3h^tRKKS=*XQU+gFe;WhxF=hCfAwf o5++I{nhSElSv8ZBbBr}-WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t25: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t24: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t23: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t22: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t21: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t20: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t19: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t18: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t17: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t16: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t15: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t14: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t13: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t12: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t11: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t10: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t9: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t8: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t7: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t6: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t5: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t4: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t3: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t2: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t1: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t0: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_0); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_1); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_2); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r11); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>wcount_r11, DO0=>wcount_r8); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r6); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r24, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, DO0=>wcount_r3); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r20, DO0=>wcount_r0); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_1); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w11); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>wptr_11, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_11, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, DOB1=>mdout1_0_1, - DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, DOB4=>mdout1_0_4, - DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, DOB7=>mdout1_0_7, - DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_0: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>wptr_11, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_11, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, DOB1=>mdout1_1_1, - DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, DOB4=>mdout1_1_4, - DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, DOB7=>mdout1_1_7, - DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_132: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_131: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_130: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_129: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_128: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_127: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_126: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_125: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_124: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_123: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_122: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_121: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_120: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_119: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_118: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_117: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_116: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_115: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_114: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_113: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_112: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_111: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_110: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_109: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_108: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_107: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_106: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_105: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_104: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_103: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_102: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_101: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_100: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_99: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_98: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_97: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_96: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_95: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_94: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_93: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_92: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_91: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_90: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_89: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_88: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_87: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_86: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_85: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_84: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_83: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_82: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_81: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_80: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_79: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_78: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_77: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_76: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_75: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_74: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_73: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_72: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_71: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_70: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_69: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_68: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_67: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_66: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_65: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_64: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_63: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_62: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_61: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_60: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_59: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_58: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_57: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_56: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_55: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_54: FD1P3DX - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_53: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_52: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_51: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_50: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_49: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_48: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_47: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_46: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_45: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_44: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_43: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_42: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_41: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_40: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_39: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_38: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_37: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_36: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_35: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_34: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_33: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_32: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_31: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_30: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_29: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_28: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_27: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_26: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_25: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_24: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_23: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_22: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_21: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_20: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_19: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_18: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_17: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_16: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_15: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_14: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_13: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_12: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_11: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_10: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_9: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_8: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_7: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_6: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_5: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_4: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_3: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_2: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>scuba_vlo, CO=>co6, - NC0=>iwcount_12, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6_1, - NC0=>ircount_12, NC1=>open); - - mux_8: MUX21 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, SD=>rptr_11_ff, - Z=>Q(0)); - - mux_7: MUX21 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, SD=>rptr_11_ff, - Z=>Q(1)); - - mux_6: MUX21 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, SD=>rptr_11_ff, - Z=>Q(2)); - - mux_5: MUX21 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, SD=>rptr_11_ff, - Z=>Q(3)); - - mux_4: MUX21 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, SD=>rptr_11_ff, - Z=>Q(4)); - - mux_3: MUX21 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, SD=>rptr_11_ff, - Z=>Q(5)); - - mux_2: MUX21 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, SD=>rptr_11_ff, - Z=>Q(6)); - - mux_1: MUX21 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, SD=>rptr_11_ff, - Z=>Q(7)); - - mux_0: MUX21 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, SD=>rptr_11_ff, - Z=>Q(8)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>r_g2b_xor_cluster_0, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co5_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_4096x9 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX21 use entity ecp3.MUX21(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_4096x9_generate.log deleted file mode 100755 index a6a71a3..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:24:06 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_4096x9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 12 -data_width 9 -num_words 4096 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_4096x9 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_4096x9.vhd - VHDL template : fifo_4096x9_tmpl.vhd - VHDL testbench : tb_fifo_4096x9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_4096x9.srp - Estimated Resource Usage: - LUT : 138 - EBR : 2 - Reg : 133 - -END SCUBA Module Synthesis - -File: fifo_4096x9.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_4096x9_tmpl.vhd deleted file mode 100755 index 8b69bd4..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4096x9_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:24:06 2011 - --- parameterized module component declaration -component fifo_4096x9 - port (Data: in std_logic_vector(8 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_4096x9 - port map (Data(8 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(8 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4kx18x9.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_4kx18x9.vhd deleted file mode 100644 index 73df06a..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4kx18x9.vhd +++ /dev/null @@ -1,1573 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_2.2_Production (99) --- Module Version: 5.5 ---/home/soft/lattice/diamond/2.2_x64/ispfpga/bin/lin64/scuba -w -n fifo_4kx18x9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 2048 -width 18 -depth 2048 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - --- Wed Jun 26 14:33:30 2013 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_4kx18x9 is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_4kx18x9; - -architecture Structure of fifo_4kx18x9 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal rcount_w0: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_12: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co5: std_logic; - signal co4: std_logic; - signal wcount_11: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal co6: std_logic; - signal co5_1: std_logic; - signal rcount_12: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r7: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r9: std_logic; - signal wcount_r10: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w7: std_logic; - signal rcount_w8: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w10: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w11: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_10: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX21 - port (D0: in std_logic; D1: in std_logic; SD: in std_logic; - Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "fifo_4kx18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute RESETMODE of pdp_ram_0_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_0_0 : label is "fifo_4kx18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_0 : label is ""; - attribute RESETMODE of pdp_ram_1_0_0 : label is "SYNC"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - attribute NGD_DRC_MASK : integer; - attribute NGD_DRC_MASK of Structure : architecture is 1; - -begin - -- component instantiation statements - AND2_t25: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t24: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t23: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t22: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t21: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t20: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t19: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t18: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t17: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t16: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t15: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t14: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t13: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t12: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t11: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t10: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t9: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t8: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t7: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t6: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t5: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t4: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t3: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t2: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t1: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t0: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_1); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_2); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_1); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w11); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>wptr_10, CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>rptr_11, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, - DOB1=>mdout1_0_1, DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, - DOB4=>mdout1_0_4, DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, - DOB7=>mdout1_0_7, DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_1_0_0: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>wptr_10, CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>rptr_11, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, - DOB1=>mdout1_1_1, DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, - DOB4=>mdout1_1_4, DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, - DOB7=>mdout1_1_7, DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - FF_127: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_126: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_125: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_124: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_123: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_122: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_121: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_120: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_119: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_118: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_117: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_116: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_115: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_114: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_113: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_112: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_111: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_110: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_109: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_108: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_107: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_106: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_105: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_104: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_103: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_102: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_101: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_100: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_99: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_98: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_97: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_96: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_95: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_94: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_93: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_92: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_91: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_90: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_89: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_88: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_87: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_86: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_85: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_84: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_83: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_82: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_81: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_80: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_79: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_78: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_77: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_76: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_75: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_74: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_73: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_72: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_71: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_70: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_69: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_68: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_67: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_66: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_65: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_64: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_63: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_62: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_61: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_60: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_59: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_58: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_57: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_56: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_55: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_54: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_53: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_52: FD1P3DX - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_51: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_50: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_49: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_48: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_47: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_46: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_45: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_44: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_43: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_42: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_41: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_40: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_39: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_38: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_37: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_36: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_35: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_34: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_33: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_32: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_31: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_30: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_29: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_28: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_27: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_26: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_25: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_24: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_23: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_22: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_21: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_20: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_19: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_18: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_17: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_16: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_15: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_14: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_13: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_12: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_11: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_10: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_9: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_8: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_7: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_6: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_5: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_4: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_3: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_2: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6, - NC0=>ircount_12, NC1=>open); - - mux_8: MUX21 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, SD=>rptr_11_ff, - Z=>Q(0)); - - mux_7: MUX21 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, SD=>rptr_11_ff, - Z=>Q(1)); - - mux_6: MUX21 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, SD=>rptr_11_ff, - Z=>Q(2)); - - mux_5: MUX21 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, SD=>rptr_11_ff, - Z=>Q(3)); - - mux_4: MUX21 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, SD=>rptr_11_ff, - Z=>Q(4)); - - mux_3: MUX21 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, SD=>rptr_11_ff, - Z=>Q(5)); - - mux_2: MUX21 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, SD=>rptr_11_ff, - Z=>Q(6)); - - mux_1: MUX21 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, SD=>rptr_11_ff, - Z=>Q(7)); - - mux_0: MUX21 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, SD=>rptr_11_ff, - Z=>Q(8)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r7, - B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r9, - B1=>wcount_r10, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>rcount_w8, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w10, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w11, - B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_4kx18x9 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX21 use entity ecp3.MUX21(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_4kx8_ecp3.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_4kx8_ecp3.vhd deleted file mode 100644 index f282f7a..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_4kx8_ecp3.vhd +++ /dev/null @@ -1,1559 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_2.1_Production (100) --- Module Version: 5.4 ---/home/soft/lattice/diamond/2.1_x64/ispfpga/bin/lin64/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 4096 -width 8 -depth 4096 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - --- Tue Apr 23 14:34:09 2013 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_4kx8_ecp3 is - port ( - Data: in std_logic_vector(7 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_4kx8_ecp3; - -architecture Structure of fifo_4kx8_ecp3 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal co6: std_logic; - signal wcount_12: std_logic; - signal co5: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal co6_1: std_logic; - signal rcount_12: std_logic; - signal co5_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "fifo_4kx8_ecp3.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute RESETMODE of pdp_ram_0_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_1_0 : label is "fifo_4kx8_ecp3.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_0 : label is ""; - attribute RESETMODE of pdp_ram_0_1_0 : label is "SYNC"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - attribute NGD_DRC_MASK : integer; - attribute NGD_DRC_MASK of Structure : architecture is 1; - -begin - -- component instantiation statements - AND2_t26: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t25: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t24: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t23: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t22: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t21: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t20: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t19: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t18: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t17: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t16: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t15: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t14: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t13: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t12: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t11: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t10: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t9: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t8: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t7: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t6: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t5: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t4: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t3: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t2: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t1: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t0: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_0); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_1); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_2); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r11); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>wcount_r11, DO0=>wcount_r8); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r6); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r24, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, DO0=>wcount_r3); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r20, DO0=>wcount_r0); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_1); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w11); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), - DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>open, DOB5=>open, - DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_1_0: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - port map (DIA0=>Data(4), DIA1=>Data(5), DIA2=>Data(6), - DIA3=>Data(7), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, - ADB4=>rptr_2, ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, - ADB8=>rptr_6, ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, - ADB12=>rptr_10, ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(4), - DOB1=>Q(5), DOB2=>Q(6), DOB3=>Q(7), DOB4=>open, DOB5=>open, - DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - FF_131: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_130: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_129: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_128: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_127: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_126: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_125: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_124: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_123: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_122: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_121: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_120: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_119: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_118: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_117: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_116: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_115: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_114: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_113: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_112: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_111: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_110: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_109: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_108: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_107: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_106: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_105: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_104: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_103: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_102: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_101: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_100: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_99: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_98: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_97: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_96: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_95: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_94: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_93: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_92: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_91: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_90: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_89: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_88: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_87: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_86: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_85: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_84: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_83: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_82: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_81: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_80: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_79: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_78: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_77: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_76: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_75: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_74: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_73: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_72: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_71: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_70: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_69: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_68: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_67: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_66: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_65: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_64: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_63: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_62: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_61: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_60: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_59: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_58: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_57: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_56: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_55: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_54: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_53: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_52: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_51: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_50: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_49: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_48: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_47: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_46: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_45: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_44: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_43: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_42: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_41: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_40: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_39: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_38: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_37: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_36: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_35: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_34: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_33: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_32: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_31: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_30: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_29: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_28: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_27: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_26: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_25: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_24: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_23: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_22: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_21: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_20: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_19: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_18: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_17: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_16: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_15: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_14: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_13: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_12: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_11: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_10: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_9: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_8: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_7: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_6: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_5: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_4: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_3: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_2: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>scuba_vlo, CO=>co6, - NC0=>iwcount_12, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6_1, - NC0=>ircount_12, NC1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>r_g2b_xor_cluster_0, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co5_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_4kx8_ecp3 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_512x32.ipx deleted file mode 100644 index 7699dd1..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_512x32.jhd deleted file mode 100644 index 161e346..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.jhd +++ /dev/null @@ -1,357 +0,0 @@ -MODULE fifo_512x32 DEFIN fifo_512x32.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1P3DX - INSTANCE FF_42 - SUBMODULE FD1P3DX - INSTANCE FF_43 - SUBMODULE FD1P3DX - INSTANCE FF_44 - SUBMODULE FD1P3DX - INSTANCE FF_45 - SUBMODULE FD1P3DX - INSTANCE FF_46 - SUBMODULE FD1P3DX - INSTANCE FF_47 - SUBMODULE FD1P3DX - INSTANCE FF_48 - SUBMODULE FD1P3DX - INSTANCE FF_49 - SUBMODULE FD1P3DX - INSTANCE FF_50 - SUBMODULE FD1P3DX - INSTANCE FF_51 - SUBMODULE FD1P3DX - INSTANCE FF_52 - SUBMODULE FD1P3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3BX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3BX - INSTANCE FF_101 - SUBMODULE PDPW16KC - INSTANCE pdp_ram_0_0_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE OR2 - INSTANCE OR2_t18 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t19 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t20 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_512x32.lpc deleted file mode 100644 index 67057ca..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_512x32 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:13:43 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=512 -Width=32 -RDepth=512 -RWidth=32 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.naf b/gbe2_ecp3/ipcores_ecp3/fifo_512x32.naf deleted file mode 100644 index 4603fbd..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.naf +++ /dev/null @@ -1,72 +0,0 @@ -Data[31] i -Data[30] i -Data[29] i -Data[28] i -Data[27] i -Data[26] i -Data[25] i -Data[24] i -Data[23] i -Data[22] i -Data[21] i -Data[20] i -Data[19] i -Data[18] i -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[31] o -Q[30] o -Q[29] o -Q[28] o -Q[27] o -Q[26] o -Q[25] o -Q[24] o -Q[23] o -Q[22] o -Q[21] o -Q[20] o -Q[19] o -Q[18] o -Q[17] o -Q[16] o -Q[15] o -Q[14] o -Q[13] o -Q[12] o -Q[11] o -Q[10] o -Q[9] o -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.sort b/gbe2_ecp3/ipcores_ecp3/fifo_512x32.sort deleted file mode 100644 index d348cb5..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_512x32.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.srp b/gbe2_ecp3/ipcores_ecp3/fifo_512x32.srp deleted file mode 100644 index 9c75e33..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:13:43 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_512x32 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 9 -data_width 32 -num_words 512 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x32 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[31:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[31:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x32.vhd - VHDL template : fifo_512x32_tmpl.vhd - VHDL testbench : tb_fifo_512x32_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x32.srp - Element Usage : - AGEB2 : 10 - AND2 : 2 - CU2 : 10 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 58 - FD1S3BX : 1 - FD1S3DX : 41 - INV : 2 - OR2 : 1 - ROM16X1A : 24 - XOR2 : 18 - PDPW16KC : 1 - Estimated Resource Usage: - LUT : 97 - EBR : 1 - Reg : 102 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32.sym b/gbe2_ecp3/ipcores_ecp3/fifo_512x32.sym deleted file mode 100644 index b1ded1ee0887feea07fc38e1005da44b97a4beff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmX|-ze~eV6ot>FsYM0p;4B%6gM;)3E|~&0U9CY0C@RIYpvE@TDs?OU14_o??fLQKRK6C1KEz?xVzHnvcx5>~2> zUgNk@vWh1_ogzXt?c`j4H|U&S!KY1dlv=~}oi@;?o1vY$tlPY4_AsK$%W$!~p4unc z5aYS^x@qP+ZH(7>rq@-OUz{_>2MV=MAnRO*y?d^b%--Pv&zeYrZ}xrwqjnnvY|VS> zegpinwbB6oWrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>Data(18), DI19=>Data(19), DI20=>Data(20), - DI21=>Data(21), DI22=>Data(22), DI23=>Data(23), - DI24=>Data(24), DI25=>Data(25), DI26=>Data(26), - DI27=>Data(27), DI28=>Data(28), DI29=>Data(29), - DI30=>Data(30), DI31=>Data(31), DI32=>scuba_vlo, - DI33=>scuba_vlo, DI34=>scuba_vlo, DI35=>scuba_vlo, - ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, - ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, - ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>Q(18), DO1=>Q(19), DO2=>Q(20), DO3=>Q(21), - DO4=>Q(22), DO5=>Q(23), DO6=>Q(24), DO7=>Q(25), DO8=>Q(26), - DO9=>Q(27), DO10=>Q(28), DO11=>Q(29), DO12=>Q(30), - DO13=>Q(31), DO14=>open, DO15=>open, DO16=>open, DO17=>open, - DO18=>Q(0), DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), DO22=>Q(4), - DO23=>Q(5), DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), DO27=>Q(9), - DO28=>Q(10), DO29=>Q(11), DO30=>Q(12), DO31=>Q(13), - DO32=>Q(14), DO33=>Q(15), DO34=>Q(16), DO35=>Q(17)); - - FF_101: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_100: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_99: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_98: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_97: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_96: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_95: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_94: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_93: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_92: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_91: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_90: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_89: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_88: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_87: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_86: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_85: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_84: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_83: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_82: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_81: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_80: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_79: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_78: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_77: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_76: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_75: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_74: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_73: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_72: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_71: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_70: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_69: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_68: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_67: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_66: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_65: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_64: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_63: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_62: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_61: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_60: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_59: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_58: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_57: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_56: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_55: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_54: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_53: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_52: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_51: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_50: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_49: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_48: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_47: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_46: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_45: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_44: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_43: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_42: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_41: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_40: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_39: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_38: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_37: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_36: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_35: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_34: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_33: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_32: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_31: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_30: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_29: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_28: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_27: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_26: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_25: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_24: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_23: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_22: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_21: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_20: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_19: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_18: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_17: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_16: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_15: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_14: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_13: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_12: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_11: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_10: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_9: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_8: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_7: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_6: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_5: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_4: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_3: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_2: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_512x32 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:PDPW16KC use entity ecp3.PDPW16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_512x32_generate.log deleted file mode 100644 index 04d17af..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x32_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:13:43 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_512x32 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 9 -data_width 32 -num_words 512 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x32 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[31:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[31:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x32.vhd - VHDL template : fifo_512x32_tmpl.vhd - VHDL testbench : tb_fifo_512x32_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x32.srp - Estimated Resource Usage: - LUT : 97 - EBR : 1 - Reg : 102 - -END SCUBA Module Synthesis - -File: fifo_512x32.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_512x32_tmpl.vhd deleted file mode 100644 index a461685..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x32_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:13:43 2011 - --- parameterized module component declaration -component fifo_512x32 - port (Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_512x32 - port map (Data(31 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(31 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x32x8.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_512x32x8.vhd deleted file mode 100644 index fef9988..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x32x8.vhd +++ /dev/null @@ -1,1298 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_2.1_Production (100) --- Module Version: 5.4 ---/home/soft/lattice/diamond/2.1_x64/ispfpga/bin/lin64/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 512 -width 32 -depth 512 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - --- Tue Jun 11 11:02:45 2013 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_512x32x8 is - port ( - Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_512x32x8; - -architecture Structure of fifo_512x32x8 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal rcount_w1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal rcount_w0: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co4: std_logic; - signal wcount_9: std_logic; - signal co3: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co5: std_logic; - signal rcount_11: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r7: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r8: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_10: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w9: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w10: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_8: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component PDPW16KC - generic (GSR : in String; CSDECODE_R : in String; - CSDECODE_W : in String; REGMODE : in String; - DATA_WIDTH_R : in Integer; DATA_WIDTH_W : in Integer); - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_512x32x8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute RESETMODE of pdp_ram_0_0_0 : label is "SYNC"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - attribute NGD_DRC_MASK : integer; - attribute NGD_DRC_MASK of Structure : architecture is 1; - -begin - -- component instantiation statements - AND2_t22: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t21: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t20: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t19: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t18: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t17: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t16: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t15: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t14: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t13: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t12: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t11: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t10: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t9: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t8: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t7: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t6: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t5: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t4: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t3: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t2: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t1: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t0: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_2); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 9, DATA_WIDTH_W=> 36) - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>scuba_vlo, DI9=>Data(8), DI10=>Data(9), DI11=>Data(10), - DI12=>Data(11), DI13=>Data(12), DI14=>Data(13), - DI15=>Data(14), DI16=>Data(15), DI17=>scuba_vlo, - DI18=>Data(16), DI19=>Data(17), DI20=>Data(18), - DI21=>Data(19), DI22=>Data(20), DI23=>Data(21), - DI24=>Data(22), DI25=>Data(23), DI26=>scuba_vlo, - DI27=>Data(24), DI28=>Data(25), DI29=>Data(26), - DI30=>Data(27), DI31=>Data(28), DI32=>Data(29), - DI33=>Data(30), DI34=>Data(31), DI35=>scuba_vlo, - ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, - ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, - ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>rptr_0, ADR4=>rptr_1, - ADR5=>rptr_2, ADR6=>rptr_3, ADR7=>rptr_4, ADR8=>rptr_5, - ADR9=>rptr_6, ADR10=>rptr_7, ADR11=>rptr_8, ADR12=>rptr_9, - ADR13=>rptr_10, CER=>rden_i, CLKR=>RdClock, CSR0=>scuba_vlo, - CSR1=>scuba_vlo, CSR2=>scuba_vlo, RST=>Reset, DO0=>Q(0), - DO1=>Q(1), DO2=>Q(2), DO3=>Q(3), DO4=>Q(4), DO5=>Q(5), - DO6=>Q(6), DO7=>Q(7), DO8=>open, DO9=>open, DO10=>open, - DO11=>open, DO12=>open, DO13=>open, DO14=>open, DO15=>open, - DO16=>open, DO17=>open, DO18=>open, DO19=>open, DO20=>open, - DO21=>open, DO22=>open, DO23=>open, DO24=>open, DO25=>open, - DO26=>open, DO27=>open, DO28=>open, DO29=>open, DO30=>open, - DO31=>open, DO32=>open, DO33=>open, DO34=>open, DO35=>open); - - FF_111: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_110: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_109: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_108: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_107: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_106: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_105: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_104: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_103: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_102: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_101: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_100: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_99: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_98: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_97: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_96: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_95: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_94: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_93: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_92: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_91: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_90: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_89: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_88: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_87: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_86: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_85: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_84: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_83: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_82: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_81: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_80: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_79: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_78: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_77: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_76: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_75: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_74: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_73: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_72: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_71: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_70: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_69: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_68: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_67: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_66: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_65: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_64: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_63: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_62: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_61: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_60: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_59: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_58: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_57: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_56: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_55: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_54: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_53: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_52: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_51: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_50: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_49: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_48: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_47: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_46: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_45: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_44: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_43: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_42: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_41: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_40: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_39: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_38: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_37: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_36: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_35: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_34: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_33: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_32: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_31: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_30: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_29: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_28: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_27: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_26: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_25: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_24: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_23: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_22: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_21: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_20: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_19: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_18: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_17: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_16: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_15: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_14: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_13: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_12: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_11: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_10: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_9: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_8: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_7: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_6: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_5: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_4: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_3: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_2: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5, - NC0=>ircount_10, NC1=>ircount_11); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r0, - B1=>wcount_r1, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r2, - B1=>wcount_r3, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r4, - B1=>wcount_r5, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w2, - B1=>rcount_w3, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w4, - B1=>rcount_w5, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w6, - B1=>rcount_w7, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w9, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w10, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_512x32x8 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:PDPW16KC use entity ecp3.PDPW16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_512x64.ipx deleted file mode 100644 index 590d980..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_512x64.jhd deleted file mode 100644 index e72c941..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.jhd +++ /dev/null @@ -1,359 +0,0 @@ -MODULE fifo_512x64 DEFIN fifo_512x64.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1P3DX - INSTANCE FF_42 - SUBMODULE FD1P3DX - INSTANCE FF_43 - SUBMODULE FD1P3DX - INSTANCE FF_44 - SUBMODULE FD1P3DX - INSTANCE FF_45 - SUBMODULE FD1P3DX - INSTANCE FF_46 - SUBMODULE FD1P3DX - INSTANCE FF_47 - SUBMODULE FD1P3DX - INSTANCE FF_48 - SUBMODULE FD1P3DX - INSTANCE FF_49 - SUBMODULE FD1P3DX - INSTANCE FF_50 - SUBMODULE FD1P3DX - INSTANCE FF_51 - SUBMODULE FD1P3DX - INSTANCE FF_52 - SUBMODULE FD1P3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3BX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3BX - INSTANCE FF_101 - SUBMODULE PDPW16KC - INSTANCE pdp_ram_0_1_0 - SUBMODULE PDPW16KC - INSTANCE pdp_ram_0_0_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE OR2 - INSTANCE OR2_t18 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t19 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t20 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_512x64.lpc deleted file mode 100644 index f17569e..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_512x64 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:23:40 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=512 -Width=72 -RDepth=512 -RWidth=72 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.naf b/gbe2_ecp3/ipcores_ecp3/fifo_512x64.naf deleted file mode 100644 index 8a50577..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.naf +++ /dev/null @@ -1,152 +0,0 @@ -Data[71] i -Data[70] i -Data[69] i -Data[68] i -Data[67] i -Data[66] i -Data[65] i -Data[64] i -Data[63] i -Data[62] i -Data[61] i -Data[60] i -Data[59] i -Data[58] i -Data[57] i -Data[56] i -Data[55] i -Data[54] i -Data[53] i -Data[52] i -Data[51] i -Data[50] i -Data[49] i -Data[48] i -Data[47] i -Data[46] i -Data[45] i -Data[44] i -Data[43] i -Data[42] i -Data[41] i -Data[40] i -Data[39] i -Data[38] i -Data[37] i -Data[36] i -Data[35] i -Data[34] i -Data[33] i -Data[32] i -Data[31] i -Data[30] i -Data[29] i -Data[28] i -Data[27] i -Data[26] i -Data[25] i -Data[24] i -Data[23] i -Data[22] i -Data[21] i -Data[20] i -Data[19] i -Data[18] i -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[71] o -Q[70] o -Q[69] o -Q[68] o -Q[67] o -Q[66] o -Q[65] o -Q[64] o -Q[63] o -Q[62] o -Q[61] o -Q[60] o -Q[59] o -Q[58] o -Q[57] o -Q[56] o -Q[55] o -Q[54] o -Q[53] o -Q[52] o -Q[51] o -Q[50] o -Q[49] o -Q[48] o -Q[47] o -Q[46] o -Q[45] o -Q[44] o -Q[43] o -Q[42] o -Q[41] o -Q[40] o -Q[39] o -Q[38] o -Q[37] o -Q[36] o -Q[35] o -Q[34] o -Q[33] o -Q[32] o -Q[31] o -Q[30] o -Q[29] o -Q[28] o -Q[27] o -Q[26] o -Q[25] o -Q[24] o -Q[23] o -Q[22] o -Q[21] o -Q[20] o -Q[19] o -Q[18] o -Q[17] o -Q[16] o -Q[15] o -Q[14] o -Q[13] o -Q[12] o -Q[11] o -Q[10] o -Q[9] o -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.sort b/gbe2_ecp3/ipcores_ecp3/fifo_512x64.sort deleted file mode 100644 index f4f13d7..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_512x64.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.srp b/gbe2_ecp3/ipcores_ecp3/fifo_512x64.srp deleted file mode 100644 index 554669e..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:40 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_512x64 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 9 -data_width 72 -num_words 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x64 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[71:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[71:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x64.vhd - VHDL template : fifo_512x64_tmpl.vhd - VHDL testbench : tb_fifo_512x64_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x64.srp - Element Usage : - AGEB2 : 10 - AND2 : 2 - CU2 : 10 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 58 - FD1S3BX : 1 - FD1S3DX : 41 - INV : 2 - OR2 : 1 - ROM16X1A : 24 - XOR2 : 18 - PDPW16KC : 2 - Estimated Resource Usage: - LUT : 97 - EBR : 2 - Reg : 102 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x64.sym b/gbe2_ecp3/ipcores_ecp3/fifo_512x64.sym deleted file mode 100644 index ec3f7b8a4f68c4984a292ffef5a94ab69be002f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmX|-ze~eV6ot>Ftwjat;4B%6gM+l<59k!I$!ZNsKv5~C1+})JMrpUwKcHk3CkJs7 z2~Lj1*&&0obad?O5(mRl-8G z9@LL_%9YXyP@@P@O*(nU+ii8uui(+fI7)2R@vJt`qno0gxSZ3tX#^P26=XQuT}$i} zt&jWEy4@u6oi@U2n(1~`<`?IT@PVTJ3FNG6Kj?FnWcCgZc-B~Ae6#lhWbNBli>`rZ(>y@D2c`06BJ-cMFfw`R{6H(NYCNOJpDjt wpVF(l8LUgqQy84-PIF9-G1MH9BaAeMWrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>Data(18), DI19=>Data(19), DI20=>Data(20), - DI21=>Data(21), DI22=>Data(22), DI23=>Data(23), - DI24=>Data(24), DI25=>Data(25), DI26=>Data(26), - DI27=>Data(27), DI28=>Data(28), DI29=>Data(29), - DI30=>Data(30), DI31=>Data(31), DI32=>Data(32), - DI33=>Data(33), DI34=>Data(34), DI35=>Data(35), ADW0=>wptr_0, - ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, ADW4=>wptr_4, - ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, ADW8=>wptr_8, - BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>Q(18), DO1=>Q(19), DO2=>Q(20), DO3=>Q(21), - DO4=>Q(22), DO5=>Q(23), DO6=>Q(24), DO7=>Q(25), DO8=>Q(26), - DO9=>Q(27), DO10=>Q(28), DO11=>Q(29), DO12=>Q(30), - DO13=>Q(31), DO14=>Q(32), DO15=>Q(33), DO16=>Q(34), - DO17=>Q(35), DO18=>Q(0), DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), - DO22=>Q(4), DO23=>Q(5), DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), - DO27=>Q(9), DO28=>Q(10), DO29=>Q(11), DO30=>Q(12), - DO31=>Q(13), DO32=>Q(14), DO33=>Q(15), DO34=>Q(16), - DO35=>Q(17)); - - pdp_ram_0_1_0: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(36), DI1=>Data(37), DI2=>Data(38), - DI3=>Data(39), DI4=>Data(40), DI5=>Data(41), DI6=>Data(42), - DI7=>Data(43), DI8=>Data(44), DI9=>Data(45), DI10=>Data(46), - DI11=>Data(47), DI12=>Data(48), DI13=>Data(49), - DI14=>Data(50), DI15=>Data(51), DI16=>Data(52), - DI17=>Data(53), DI18=>Data(54), DI19=>Data(55), - DI20=>Data(56), DI21=>Data(57), DI22=>Data(58), - DI23=>Data(59), DI24=>Data(60), DI25=>Data(61), - DI26=>Data(62), DI27=>Data(63), DI28=>Data(64), - DI29=>Data(65), DI30=>Data(66), DI31=>Data(67), - DI32=>Data(68), DI33=>Data(69), DI34=>Data(70), - DI35=>Data(71), ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, - ADW3=>wptr_3, ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, - ADW7=>wptr_7, ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, - BE2=>scuba_vhi, BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, - CSW0=>scuba_vhi, CSW1=>scuba_vlo, CSW2=>scuba_vlo, - ADR0=>scuba_vlo, ADR1=>scuba_vlo, ADR2=>scuba_vlo, - ADR3=>scuba_vlo, ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, - ADR7=>rptr_2, ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, - ADR11=>rptr_6, ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, - CLKR=>RdClock, CSR0=>scuba_vlo, CSR1=>scuba_vlo, - CSR2=>scuba_vlo, RST=>Reset, DO0=>Q(54), DO1=>Q(55), - DO2=>Q(56), DO3=>Q(57), DO4=>Q(58), DO5=>Q(59), DO6=>Q(60), - DO7=>Q(61), DO8=>Q(62), DO9=>Q(63), DO10=>Q(64), DO11=>Q(65), - DO12=>Q(66), DO13=>Q(67), DO14=>Q(68), DO15=>Q(69), - DO16=>Q(70), DO17=>Q(71), DO18=>Q(36), DO19=>Q(37), - DO20=>Q(38), DO21=>Q(39), DO22=>Q(40), DO23=>Q(41), - DO24=>Q(42), DO25=>Q(43), DO26=>Q(44), DO27=>Q(45), - DO28=>Q(46), DO29=>Q(47), DO30=>Q(48), DO31=>Q(49), - DO32=>Q(50), DO33=>Q(51), DO34=>Q(52), DO35=>Q(53)); - - FF_101: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_100: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_99: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_98: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_97: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_96: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_95: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_94: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_93: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_92: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_91: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_90: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_89: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_88: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_87: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_86: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_85: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_84: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_83: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_82: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_81: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_80: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_79: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_78: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_77: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_76: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_75: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_74: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_73: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_72: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_71: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_70: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_69: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_68: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_67: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_66: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_65: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_64: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_63: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_62: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_61: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_60: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_59: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_58: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_57: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_56: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_55: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_54: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_53: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_52: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_51: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_50: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_49: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_48: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_47: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_46: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_45: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_44: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_43: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_42: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_41: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_40: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_39: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_38: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_37: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_36: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_35: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_34: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_33: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_32: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_31: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_30: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_29: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_28: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_27: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_26: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_25: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_24: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_23: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_22: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_21: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_20: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_19: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_18: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_17: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_16: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_15: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_14: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_13: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_12: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_11: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_10: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_9: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_8: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_7: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_6: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_5: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_4: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_3: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_2: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_512x64 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:PDPW16KC use entity ecp3.PDPW16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x64_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_512x64_generate.log deleted file mode 100644 index 2d50c76..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x64_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:40 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_512x64 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 9 -data_width 72 -num_words 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x64 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[71:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[71:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x64.vhd - VHDL template : fifo_512x64_tmpl.vhd - VHDL testbench : tb_fifo_512x64_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x64.srp - Estimated Resource Usage: - LUT : 97 - EBR : 2 - Reg : 102 - -END SCUBA Module Synthesis - -File: fifo_512x64.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x64_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_512x64_tmpl.vhd deleted file mode 100644 index 490c7e6..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x64_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:23:40 2011 - --- parameterized module component declaration -component fifo_512x64 - port (Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_512x64 - port map (Data(71 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(71 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_512x72.ipx deleted file mode 100644 index 089af2c..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_512x72.jhd deleted file mode 100644 index 5bbf360..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.jhd +++ /dev/null @@ -1,359 +0,0 @@ -MODULE fifo_512x72 DEFIN fifo_512x72.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1P3DX - INSTANCE FF_42 - SUBMODULE FD1P3DX - INSTANCE FF_43 - SUBMODULE FD1P3DX - INSTANCE FF_44 - SUBMODULE FD1P3DX - INSTANCE FF_45 - SUBMODULE FD1P3DX - INSTANCE FF_46 - SUBMODULE FD1P3DX - INSTANCE FF_47 - SUBMODULE FD1P3DX - INSTANCE FF_48 - SUBMODULE FD1P3DX - INSTANCE FF_49 - SUBMODULE FD1P3DX - INSTANCE FF_50 - SUBMODULE FD1P3DX - INSTANCE FF_51 - SUBMODULE FD1P3DX - INSTANCE FF_52 - SUBMODULE FD1P3DX - INSTANCE FF_53 - SUBMODULE FD1P3DX - INSTANCE FF_54 - SUBMODULE FD1P3DX - INSTANCE FF_55 - SUBMODULE FD1P3DX - INSTANCE FF_56 - SUBMODULE FD1P3DX - INSTANCE FF_57 - SUBMODULE FD1P3DX - INSTANCE FF_58 - SUBMODULE FD1P3DX - INSTANCE FF_59 - SUBMODULE FD1P3DX - INSTANCE FF_60 - SUBMODULE FD1P3DX - INSTANCE FF_61 - SUBMODULE FD1P3DX - INSTANCE FF_62 - SUBMODULE FD1P3DX - INSTANCE FF_63 - SUBMODULE FD1P3DX - INSTANCE FF_64 - SUBMODULE FD1P3DX - INSTANCE FF_65 - SUBMODULE FD1P3DX - INSTANCE FF_66 - SUBMODULE FD1P3DX - INSTANCE FF_67 - SUBMODULE FD1P3DX - INSTANCE FF_68 - SUBMODULE FD1P3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3BX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3BX - INSTANCE FF_101 - SUBMODULE PDPW16KC - INSTANCE pdp_ram_0_1_0 - SUBMODULE PDPW16KC - INSTANCE pdp_ram_0_0_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE OR2 - INSTANCE OR2_t18 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t19 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t20 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_512x72.lpc deleted file mode 100644 index 1467961..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_512x72 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:14:03 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=512 -Width=72 -RDepth=512 -RWidth=72 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.naf b/gbe2_ecp3/ipcores_ecp3/fifo_512x72.naf deleted file mode 100644 index 8a50577..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.naf +++ /dev/null @@ -1,152 +0,0 @@ -Data[71] i -Data[70] i -Data[69] i -Data[68] i -Data[67] i -Data[66] i -Data[65] i -Data[64] i -Data[63] i -Data[62] i -Data[61] i -Data[60] i -Data[59] i -Data[58] i -Data[57] i -Data[56] i -Data[55] i -Data[54] i -Data[53] i -Data[52] i -Data[51] i -Data[50] i -Data[49] i -Data[48] i -Data[47] i -Data[46] i -Data[45] i -Data[44] i -Data[43] i -Data[42] i -Data[41] i -Data[40] i -Data[39] i -Data[38] i -Data[37] i -Data[36] i -Data[35] i -Data[34] i -Data[33] i -Data[32] i -Data[31] i -Data[30] i -Data[29] i -Data[28] i -Data[27] i -Data[26] i -Data[25] i -Data[24] i -Data[23] i -Data[22] i -Data[21] i -Data[20] i -Data[19] i -Data[18] i -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[71] o -Q[70] o -Q[69] o -Q[68] o -Q[67] o -Q[66] o -Q[65] o -Q[64] o -Q[63] o -Q[62] o -Q[61] o -Q[60] o -Q[59] o -Q[58] o -Q[57] o -Q[56] o -Q[55] o -Q[54] o -Q[53] o -Q[52] o -Q[51] o -Q[50] o -Q[49] o -Q[48] o -Q[47] o -Q[46] o -Q[45] o -Q[44] o -Q[43] o -Q[42] o -Q[41] o -Q[40] o -Q[39] o -Q[38] o -Q[37] o -Q[36] o -Q[35] o -Q[34] o -Q[33] o -Q[32] o -Q[31] o -Q[30] o -Q[29] o -Q[28] o -Q[27] o -Q[26] o -Q[25] o -Q[24] o -Q[23] o -Q[22] o -Q[21] o -Q[20] o -Q[19] o -Q[18] o -Q[17] o -Q[16] o -Q[15] o -Q[14] o -Q[13] o -Q[12] o -Q[11] o -Q[10] o -Q[9] o -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.sort b/gbe2_ecp3/ipcores_ecp3/fifo_512x72.sort deleted file mode 100644 index d456886..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_512x72.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.srp b/gbe2_ecp3/ipcores_ecp3/fifo_512x72.srp deleted file mode 100644 index 291d3c1..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.srp +++ /dev/null @@ -1,42 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:14:03 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_512x72 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 9 -data_width 72 -num_words 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x72 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[71:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[71:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x72.vhd - VHDL template : fifo_512x72_tmpl.vhd - VHDL testbench : tb_fifo_512x72_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x72.srp - Element Usage : - AGEB2 : 10 - AND2 : 2 - CU2 : 10 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 58 - FD1S3BX : 1 - FD1S3DX : 41 - INV : 2 - OR2 : 1 - ROM16X1A : 24 - XOR2 : 18 - PDPW16KC : 2 - Estimated Resource Usage: - LUT : 97 - EBR : 2 - Reg : 102 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.sym b/gbe2_ecp3/ipcores_ecp3/fifo_512x72.sym deleted file mode 100644 index 50e7297cf7497f21f7083cb87c9d755424d20078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmX|-u}i~16vn?tQ;Q1H!C5jC2M1{jQpi*=$!ZNsK~X8D1vR#zMyXrrA5c0LCkJs7 z2~Lj1*&&0obad?OX1%L2zc^=%4;0)_AnRO*(LGm5X7BKTXH6u*H+w&T;ob%TTl1c} zUmw5hEeUe_i_83X*H>E?tr(R!CTF_SoRAX?G{@u^L(L=d2oIV=a)@VUs<$^;e0u)DGph0j+Wt_v diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_512x72.vhd deleted file mode 100644 index 4ffa914..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x72.vhd +++ /dev/null @@ -1,1231 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 512 -width 72 -depth 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:14:04 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_512x72 is - port ( - Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_512x72; - -architecture Structure of fifo_512x72 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co4: std_logic; - signal wcount_9: std_logic; - signal co3: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co4_1: std_logic; - signal rcount_9: std_logic; - signal co3_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_8: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_8: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component PDPW16KC - generic (GSR : in String; CSDECODE_R : in String; - CSDECODE_W : in String; REGMODE : in String; - DATA_WIDTH_R : in Integer; DATA_WIDTH_W : in Integer); - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "fifo_512x72.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute RESETMODE of pdp_ram_0_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_1_0 : label is "fifo_512x72.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_0 : label is ""; - attribute RESETMODE of pdp_ram_0_1_0 : label is "SYNC"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t20: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>Data(18), DI19=>Data(19), DI20=>Data(20), - DI21=>Data(21), DI22=>Data(22), DI23=>Data(23), - DI24=>Data(24), DI25=>Data(25), DI26=>Data(26), - DI27=>Data(27), DI28=>Data(28), DI29=>Data(29), - DI30=>Data(30), DI31=>Data(31), DI32=>Data(32), - DI33=>Data(33), DI34=>Data(34), DI35=>Data(35), ADW0=>wptr_0, - ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, ADW4=>wptr_4, - ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, ADW8=>wptr_8, - BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>Q(18), DO1=>Q(19), DO2=>Q(20), DO3=>Q(21), - DO4=>Q(22), DO5=>Q(23), DO6=>Q(24), DO7=>Q(25), DO8=>Q(26), - DO9=>Q(27), DO10=>Q(28), DO11=>Q(29), DO12=>Q(30), - DO13=>Q(31), DO14=>Q(32), DO15=>Q(33), DO16=>Q(34), - DO17=>Q(35), DO18=>Q(0), DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), - DO22=>Q(4), DO23=>Q(5), DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), - DO27=>Q(9), DO28=>Q(10), DO29=>Q(11), DO30=>Q(12), - DO31=>Q(13), DO32=>Q(14), DO33=>Q(15), DO34=>Q(16), - DO35=>Q(17)); - - pdp_ram_0_1_0: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(36), DI1=>Data(37), DI2=>Data(38), - DI3=>Data(39), DI4=>Data(40), DI5=>Data(41), DI6=>Data(42), - DI7=>Data(43), DI8=>Data(44), DI9=>Data(45), DI10=>Data(46), - DI11=>Data(47), DI12=>Data(48), DI13=>Data(49), - DI14=>Data(50), DI15=>Data(51), DI16=>Data(52), - DI17=>Data(53), DI18=>Data(54), DI19=>Data(55), - DI20=>Data(56), DI21=>Data(57), DI22=>Data(58), - DI23=>Data(59), DI24=>Data(60), DI25=>Data(61), - DI26=>Data(62), DI27=>Data(63), DI28=>Data(64), - DI29=>Data(65), DI30=>Data(66), DI31=>Data(67), - DI32=>Data(68), DI33=>Data(69), DI34=>Data(70), - DI35=>Data(71), ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, - ADW3=>wptr_3, ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, - ADW7=>wptr_7, ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, - BE2=>scuba_vhi, BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, - CSW0=>scuba_vhi, CSW1=>scuba_vlo, CSW2=>scuba_vlo, - ADR0=>scuba_vlo, ADR1=>scuba_vlo, ADR2=>scuba_vlo, - ADR3=>scuba_vlo, ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, - ADR7=>rptr_2, ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, - ADR11=>rptr_6, ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, - CLKR=>RdClock, CSR0=>scuba_vlo, CSR1=>scuba_vlo, - CSR2=>scuba_vlo, RST=>Reset, DO0=>Q(54), DO1=>Q(55), - DO2=>Q(56), DO3=>Q(57), DO4=>Q(58), DO5=>Q(59), DO6=>Q(60), - DO7=>Q(61), DO8=>Q(62), DO9=>Q(63), DO10=>Q(64), DO11=>Q(65), - DO12=>Q(66), DO13=>Q(67), DO14=>Q(68), DO15=>Q(69), - DO16=>Q(70), DO17=>Q(71), DO18=>Q(36), DO19=>Q(37), - DO20=>Q(38), DO21=>Q(39), DO22=>Q(40), DO23=>Q(41), - DO24=>Q(42), DO25=>Q(43), DO26=>Q(44), DO27=>Q(45), - DO28=>Q(46), DO29=>Q(47), DO30=>Q(48), DO31=>Q(49), - DO32=>Q(50), DO33=>Q(51), DO34=>Q(52), DO35=>Q(53)); - - FF_101: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_100: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_99: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_98: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_97: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_96: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_95: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_94: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_93: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_92: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_91: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_90: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_89: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_88: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_87: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_86: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_85: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_84: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_83: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_82: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_81: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_80: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_79: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_78: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_77: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_76: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_75: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_74: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_73: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_72: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_71: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_70: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_69: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_68: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_67: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_66: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_65: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_64: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_63: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_62: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_61: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_60: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_59: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_58: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_57: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_56: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_55: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_54: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_53: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_52: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_51: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_50: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_49: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_48: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_47: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_46: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_45: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_44: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_43: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_42: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_41: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_40: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_39: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_38: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_37: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_36: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_35: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_34: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_33: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_32: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_31: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_30: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_29: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_28: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_27: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_26: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_25: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_24: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_23: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_22: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_21: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_20: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_19: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_18: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_17: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_16: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_15: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_14: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_13: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_12: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_11: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_10: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_9: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_8: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_7: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_6: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_5: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_4: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_3: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_2: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_512x72 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:PDPW16KC use entity ecp3.PDPW16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_512x72_generate.log deleted file mode 100644 index 4caac4e..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x72_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:14:03 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_512x72 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 9 -data_width 72 -num_words 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_512x72 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[71:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[71:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_512x72.vhd - VHDL template : fifo_512x72_tmpl.vhd - VHDL testbench : tb_fifo_512x72_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_512x72.srp - Estimated Resource Usage: - LUT : 97 - EBR : 2 - Reg : 102 - -END SCUBA Module Synthesis - -File: fifo_512x72.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_512x72_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_512x72_tmpl.vhd deleted file mode 100644 index b52a2b9..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_512x72_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:14:04 2011 - --- parameterized module component declaration -component fifo_512x72 - port (Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_512x72 - port map (Data(71 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(71 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.ipx deleted file mode 100644 index f0fb8ec..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.jhd deleted file mode 100755 index a23a4f0..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.jhd +++ /dev/null @@ -1,711 +0,0 @@ -MODULE fifo_64kx8 DEFIN fifo_64kx8.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_8 - SUBMODULE AGEB2 - INSTANCE full_cmp_7 - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_8 - SUBMODULE AGEB2 - INSTANCE empty_cmp_7 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE MUX41 - INSTANCE mux_0 - SUBMODULE MUX41 - INSTANCE mux_1 - SUBMODULE MUX41 - INSTANCE mux_2 - SUBMODULE MUX41 - INSTANCE mux_3 - SUBMODULE MUX41 - INSTANCE mux_4 - SUBMODULE MUX41 - INSTANCE mux_5 - SUBMODULE MUX41 - INSTANCE mux_6 - SUBMODULE MUX41 - INSTANCE mux_7 - SUBMODULE CU2 - INSTANCE r_gctr_8 - SUBMODULE CU2 - INSTANCE r_gctr_7 - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_8 - SUBMODULE CU2 - INSTANCE w_gctr_7 - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1S3DX - INSTANCE FF_54 - SUBMODULE FD1S3DX - INSTANCE FF_55 - SUBMODULE FD1S3DX - INSTANCE FF_56 - SUBMODULE FD1S3DX - INSTANCE FF_57 - SUBMODULE FD1S3DX - INSTANCE FF_58 - SUBMODULE FD1S3DX - INSTANCE FF_59 - SUBMODULE FD1S3DX - INSTANCE FF_60 - SUBMODULE FD1S3DX - INSTANCE FF_61 - SUBMODULE FD1S3DX - INSTANCE FF_62 - SUBMODULE FD1S3DX - INSTANCE FF_63 - SUBMODULE FD1S3DX - INSTANCE FF_64 - SUBMODULE FD1S3DX - INSTANCE FF_65 - SUBMODULE FD1S3DX - INSTANCE FF_66 - SUBMODULE FD1S3DX - INSTANCE FF_67 - SUBMODULE FD1S3DX - INSTANCE FF_68 - SUBMODULE FD1S3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3DX - INSTANCE FF_116 - SUBMODULE FD1P3DX - INSTANCE FF_117 - SUBMODULE FD1P3DX - INSTANCE FF_118 - SUBMODULE FD1P3DX - INSTANCE FF_119 - SUBMODULE FD1P3DX - INSTANCE FF_120 - SUBMODULE FD1P3DX - INSTANCE FF_121 - SUBMODULE FD1P3BX - INSTANCE FF_122 - SUBMODULE FD1P3DX - INSTANCE FF_123 - SUBMODULE FD1P3DX - INSTANCE FF_124 - SUBMODULE FD1P3DX - INSTANCE FF_125 - SUBMODULE FD1P3DX - INSTANCE FF_126 - SUBMODULE FD1P3DX - INSTANCE FF_127 - SUBMODULE FD1P3DX - INSTANCE FF_128 - SUBMODULE FD1P3DX - INSTANCE FF_129 - SUBMODULE FD1P3DX - INSTANCE FF_130 - SUBMODULE FD1P3DX - INSTANCE FF_131 - SUBMODULE FD1P3DX - INSTANCE FF_132 - SUBMODULE FD1P3DX - INSTANCE FF_133 - SUBMODULE FD1P3DX - INSTANCE FF_134 - SUBMODULE FD1P3DX - INSTANCE FF_135 - SUBMODULE FD1P3DX - INSTANCE FF_136 - SUBMODULE FD1P3DX - INSTANCE FF_137 - SUBMODULE FD1P3DX - INSTANCE FF_138 - SUBMODULE FD1P3DX - INSTANCE FF_139 - SUBMODULE FD1P3DX - INSTANCE FF_140 - SUBMODULE FD1P3DX - INSTANCE FF_141 - SUBMODULE FD1P3DX - INSTANCE FF_142 - SUBMODULE FD1P3DX - INSTANCE FF_143 - SUBMODULE FD1P3DX - INSTANCE FF_144 - SUBMODULE FD1P3DX - INSTANCE FF_145 - SUBMODULE FD1P3DX - INSTANCE FF_146 - SUBMODULE FD1P3DX - INSTANCE FF_147 - SUBMODULE FD1P3DX - INSTANCE FF_148 - SUBMODULE FD1P3DX - INSTANCE FF_149 - SUBMODULE FD1P3DX - INSTANCE FF_150 - SUBMODULE FD1P3DX - INSTANCE FF_151 - SUBMODULE FD1P3DX - INSTANCE FF_152 - SUBMODULE FD1P3DX - INSTANCE FF_153 - SUBMODULE FD1P3DX - INSTANCE FF_154 - SUBMODULE FD1P3DX - INSTANCE FF_155 - SUBMODULE FD1P3DX - INSTANCE FF_156 - SUBMODULE FD1P3DX - INSTANCE FF_157 - SUBMODULE FD1P3DX - INSTANCE FF_158 - SUBMODULE FD1P3DX - INSTANCE FF_159 - SUBMODULE FD1P3DX - INSTANCE FF_160 - SUBMODULE FD1P3DX - INSTANCE FF_161 - SUBMODULE FD1P3DX - INSTANCE FF_162 - SUBMODULE FD1P3DX - INSTANCE FF_163 - SUBMODULE FD1P3DX - INSTANCE FF_164 - SUBMODULE FD1P3DX - INSTANCE FF_165 - SUBMODULE FD1P3DX - INSTANCE FF_166 - SUBMODULE FD1P3DX - INSTANCE FF_167 - SUBMODULE FD1P3DX - INSTANCE FF_168 - SUBMODULE FD1P3DX - INSTANCE FF_169 - SUBMODULE FD1P3DX - INSTANCE FF_170 - SUBMODULE FD1P3DX - INSTANCE FF_171 - SUBMODULE FD1P3DX - INSTANCE FF_172 - SUBMODULE FD1P3BX - INSTANCE FF_173 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_7_0 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_6_1 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_5_2 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_4_3 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_3_4 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_2_5 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_1_6 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_0_7 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_7_8 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_6_9 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_5_10 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_4_11 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_3_12 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_2_13 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_1_14 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_0_15 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_7_16 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_6_17 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_5_18 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_4_19 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_3_20 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_2_21 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_1_22 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_0_23 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_7_24 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_6_25 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_5_26 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_4_27 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_3_28 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_2_29 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_1_30 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_0_31 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE ROM16X1A - INSTANCE LUT4_24 - SUBMODULE ROM16X1A - INSTANCE LUT4_25 - SUBMODULE ROM16X1A - INSTANCE LUT4_26 - SUBMODULE ROM16X1A - INSTANCE LUT4_27 - SUBMODULE ROM16X1A - INSTANCE LUT4_28 - SUBMODULE ROM16X1A - INSTANCE LUT4_29 - SUBMODULE ROM16X1A - INSTANCE LUT4_30 - SUBMODULE ROM16X1A - INSTANCE LUT4_31 - SUBMODULE ROM16X1A - INSTANCE LUT4_32 - SUBMODULE ROM16X1A - INSTANCE LUT4_33 - SUBMODULE ROM16X1A - INSTANCE LUT4_34 - SUBMODULE ROM16X1A - INSTANCE LUT4_35 - SUBMODULE ROM16X1A - INSTANCE LUT4_36 - SUBMODULE ROM16X1A - INSTANCE LUT4_37 - SUBMODULE ROM16X1A - INSTANCE LUT4_38 - SUBMODULE ROM16X1A - INSTANCE LUT4_39 - SUBMODULE ROM16X1A - INSTANCE LUT4_40 - SUBMODULE ROM16X1A - INSTANCE LUT4_41 - SUBMODULE ROM16X1A - INSTANCE LUT4_42 - SUBMODULE ROM16X1A - INSTANCE LUT4_43 - SUBMODULE ROM16X1A - INSTANCE LUT4_44 - SUBMODULE ROM16X1A - INSTANCE LUT4_45 - SUBMODULE ROM16X1A - INSTANCE LUT4_46 - SUBMODULE ROM16X1A - INSTANCE LUT4_47 - SUBMODULE ROM16X1A - INSTANCE LUT4_48 - SUBMODULE ROM16X1A - INSTANCE LUT4_49 - SUBMODULE ROM16X1A - INSTANCE LUT4_50 - SUBMODULE ROM16X1A - INSTANCE LUT4_51 - SUBMODULE ROM16X1A - INSTANCE LUT4_52 - SUBMODULE ROM16X1A - INSTANCE LUT4_53 - SUBMODULE ROM16X1A - INSTANCE LUT4_54 - SUBMODULE ROM16X1A - INSTANCE LUT4_55 - SUBMODULE ROM16X1A - INSTANCE LUT4_56 - SUBMODULE ROM16X1A - INSTANCE LUT4_57 - SUBMODULE ROM16X1A - INSTANCE LUT4_58 - SUBMODULE ROM16X1A - INSTANCE LUT4_59 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE XOR2 - INSTANCE XOR2_t24 - SUBMODULE XOR2 - INSTANCE XOR2_t25 - SUBMODULE XOR2 - INSTANCE XOR2_t26 - SUBMODULE XOR2 - INSTANCE XOR2_t27 - SUBMODULE XOR2 - INSTANCE XOR2_t28 - SUBMODULE XOR2 - INSTANCE XOR2_t29 - SUBMODULE XOR2 - INSTANCE XOR2_t30 - SUBMODULE XOR2 - INSTANCE XOR2_t31 - SUBMODULE OR2 - INSTANCE OR2_t32 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE AND2 - INSTANCE AND2_t33 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE AND2 - INSTANCE AND2_t34 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.lpc deleted file mode 100755 index badffb2..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_64kx8 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:23:03 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=65536 -Width=8 -RDepth=65536 -RWidth=8 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.naf b/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.naf deleted file mode 100755 index 6378b4d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.naf +++ /dev/null @@ -1,24 +0,0 @@ -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.sort b/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.sort deleted file mode 100644 index e09daf4..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_64kx8.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.srp b/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.srp deleted file mode 100755 index 3b2bc69..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.srp +++ /dev/null @@ -1,43 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:03 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_64kx8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 16 -data_width 8 -num_words 65536 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_64kx8 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[7:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[7:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_64kx8.vhd - VHDL template : fifo_64kx8_tmpl.vhd - VHDL testbench : tb_fifo_64kx8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx8.srp - Element Usage : - AGEB2 : 18 - AND2 : 2 - CU2 : 18 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 102 - FD1S3BX : 1 - FD1S3DX : 69 - INV : 2 - MUX41 : 8 - OR2 : 1 - ROM16X1A : 60 - XOR2 : 32 - DP16KC : 32 - Estimated Resource Usage: - LUT : 187 - EBR : 32 - Reg : 174 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.sym b/gbe2_ecp3/ipcores_ecp3/fifo_64kx8.sym deleted file mode 100644 index 39af0f868df1c53f9739c8728a48fa4d638c9a21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmYk2u}i~17{%X5Q>DeBgQG)+PU6r(v^WJ#I%*9{1Qn^aMQOC5M$s*QK!;4?DB{>5 zle4o^aCUZ-jE=s$i(uf$FTZ#9xG%E+d@5X-SPJnZj@Vd|6#*8cP2*r0O_xw}dvWh@ zeWP`ZZGNWMG=ARiZ-wKt5l(4y92jf)eeVjmr7I8`SM>+igBVk~h9rNdyT(4#MtCS~ zFfpC4v>9e)XE0HnAG~FTH#9r%K-Ig9;(P9r%Fg~CzM19tWcCGEotrRZRAy?r1V79y z!Q8GHWrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t33: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t32: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t31: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t30: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t29: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t28: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t27: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t26: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t25: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t24: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t23: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t22: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t21: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t20: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t19: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t18: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t17: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t16: XOR2 - port map (A=>wcount_15, B=>wcount_16, Z=>w_gdata_15); - - XOR2_t15: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t14: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t13: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t12: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t11: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t10: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t9: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t8: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t7: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t6: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t5: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t4: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t3: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t2: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t1: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t0: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - LUT4_59: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>w_gcount_r216, - DO0=>w_g2b_xor_cluster_0); - - LUT4_58: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_1); - - LUT4_57: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_2); - - LUT4_56: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_3); - - LUT4_55: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r215, AD2=>w_gcount_r216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r15); - - LUT4_54: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, - AD1=>w_gcount_r216, AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_53: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>wcount_r15, DO0=>wcount_r12); - - LUT4_52: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_51: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>w_g2b_xor_cluster_0, - DO0=>wcount_r10); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r28, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, DO0=>wcount_r7); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r6); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r24, DO0=>wcount_r4); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r3); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r2); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r1); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>func_xor_inet); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>func_xor_inet_1); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, DO0=>func_xor_inet_2); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, DO0=>func_xor_inet_3); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet_6); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_7); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_8); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_9); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_10); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_6, AD2=>func_xor_inet_7, - AD1=>func_xor_inet_8, AD0=>func_xor_inet_9, - DO0=>func_xor_inet_11); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_11, AD2=>func_xor_inet_10, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_31: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_1_30: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_2_29: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_3_28: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_4_27: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_5_26: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_6_25: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_7_24: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_23: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_1_22: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_2_21: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_3_20: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_4_19: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_5_18: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_6_17: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_7_16: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_15: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_1_14: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_2_13: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_3_12: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_4_11: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_5_10: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_6_9: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_7_8: DP16KC - generic map (CSDECODE_B=> "0b010", CSDECODE_A=> "0b010", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_7: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_0, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_1_6: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_1, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_2_5: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_2, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_3_4: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_3, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_4_3: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_4, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_5_2: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_5, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_6_1: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_6, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_7_0: DP16KC - generic map (CSDECODE_B=> "0b011", CSDECODE_A=> "0b011", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - OCEA=>wren_i, WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>rptr_14, CSB1=>rptr_15, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_7, DOB1=>open, - DOB2=>open, DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, - DOB7=>open, DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_173: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_172: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_171: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_170: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_169: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_168: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_167: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_166: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_165: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_164: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_163: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_162: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_161: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_160: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_159: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_158: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_157: FD1P3DX - port map (D=>iwcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_16); - - FF_156: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_155: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_154: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_153: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_152: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_151: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_150: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_149: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_148: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_147: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_146: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_145: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_144: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_143: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_142: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_141: FD1P3DX - port map (D=>w_gdata_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_140: FD1P3DX - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_16); - - FF_139: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_138: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_137: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_136: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_135: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_134: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_133: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_132: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_131: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_130: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_129: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_128: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_127: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_126: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_125: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_124: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_123: FD1P3DX - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_16); - - FF_122: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_121: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_120: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_119: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_118: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_117: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_116: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_115: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_114: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_113: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_112: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_111: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_110: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_109: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_108: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_107: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_106: FD1P3DX - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_105: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_104: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_103: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_102: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_101: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_100: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_99: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_98: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_97: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_96: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_95: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_94: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_93: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_92: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_91: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_90: FD1P3DX - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_89: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_88: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_87: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_86: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_85: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_84: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_83: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_82: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_81: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_80: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_79: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_78: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_77: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_76: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_75: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_74: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_73: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_72: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_71: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_70: FD1P3DX - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_69: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_68: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_67: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_66: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_65: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_64: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_63: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_62: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_61: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_60: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_59: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_58: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_57: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_56: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_55: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_54: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_53: FD1S3DX - port map (D=>w_gcount_16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r16); - - FF_52: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_51: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_50: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_49: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_48: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_47: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_46: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_45: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_44: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_43: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_42: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_41: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_40: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_39: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_38: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_37: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_36: FD1S3DX - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_35: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_34: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_33: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_32: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_31: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_30: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_29: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_28: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_27: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_26: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_25: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_24: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_23: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_22: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_21: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_20: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_19: FD1S3DX - port map (D=>w_gcount_r16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r216); - - FF_18: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_17: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_16: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_15: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_14: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_13: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_12: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_11: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_10: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_9: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_8: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_7: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_6: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_5: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_4: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_3: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_2: FD1S3DX - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - w_gctr_8: CU2 - port map (CI=>co7, PC0=>wcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>iwcount_16, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8_1, - NC0=>ircount_16, NC1=>open); - - mux_7: MUX41 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(0)); - - mux_6: MUX41 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(1)); - - mux_5: MUX41 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(2)); - - mux_4: MUX41 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(3)); - - mux_3: MUX41 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(4)); - - mux_2: MUX41 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(5)); - - mux_1: MUX41 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(6)); - - mux_0: MUX41 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(7)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, - B1=>w_g2b_xor_cluster_0, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r14, - B1=>wcount_r15, CI=>co6_2, GE=>co7_2); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>wcount_15, B0=>rcount_w14, - B1=>rcount_w15, CI=>co6_3, GE=>co7_3); - - full_cmp_8: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co7_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_64kx8 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX41 use entity ecp3.MUX41(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_64kx8_generate.log deleted file mode 100755 index 1ec2186..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:03 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_64kx8 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 16 -data_width 8 -num_words 65536 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_64kx8 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[7:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[7:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_64kx8.vhd - VHDL template : fifo_64kx8_tmpl.vhd - VHDL testbench : tb_fifo_64kx8_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx8.srp - Estimated Resource Usage: - LUT : 187 - EBR : 32 - Reg : 174 - -END SCUBA Module Synthesis - -File: fifo_64kx8.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_64kx8_tmpl.vhd deleted file mode 100755 index 9aba2ac..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx8_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:23:03 2011 - --- parameterized module component declaration -component fifo_64kx8 - port (Data: in std_logic_vector(7 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_64kx8 - port map (Data(7 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(7 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.ipx b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.ipx deleted file mode 100644 index 78ff181..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.jhd b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.jhd deleted file mode 100644 index 2be439b..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.jhd +++ /dev/null @@ -1,995 +0,0 @@ -MODULE fifo_64kx9 DEFIN fifo_64kx9.vhd - SUBMODULE FADD2B - INSTANCE a1 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE AGEB2 - INSTANCE full_cmp_8 - SUBMODULE AGEB2 - INSTANCE full_cmp_7 - SUBMODULE AGEB2 - INSTANCE full_cmp_6 - SUBMODULE AGEB2 - INSTANCE full_cmp_5 - SUBMODULE AGEB2 - INSTANCE full_cmp_4 - SUBMODULE AGEB2 - INSTANCE full_cmp_3 - SUBMODULE AGEB2 - INSTANCE full_cmp_2 - SUBMODULE AGEB2 - INSTANCE full_cmp_1 - SUBMODULE AGEB2 - INSTANCE full_cmp_0 - SUBMODULE FADD2B - INSTANCE full_cmp_ci_a - SUBMODULE FADD2B - INSTANCE a0 - SUBMODULE AGEB2 - INSTANCE empty_cmp_8 - SUBMODULE AGEB2 - INSTANCE empty_cmp_7 - SUBMODULE AGEB2 - INSTANCE empty_cmp_6 - SUBMODULE AGEB2 - INSTANCE empty_cmp_5 - SUBMODULE AGEB2 - INSTANCE empty_cmp_4 - SUBMODULE AGEB2 - INSTANCE empty_cmp_3 - SUBMODULE AGEB2 - INSTANCE empty_cmp_2 - SUBMODULE AGEB2 - INSTANCE empty_cmp_1 - SUBMODULE AGEB2 - INSTANCE empty_cmp_0 - SUBMODULE FADD2B - INSTANCE empty_cmp_ci_a - SUBMODULE MUX321 - INSTANCE mux_0 - SUBMODULE MUX321 - INSTANCE mux_1 - SUBMODULE MUX321 - INSTANCE mux_2 - SUBMODULE MUX321 - INSTANCE mux_3 - SUBMODULE MUX321 - INSTANCE mux_4 - SUBMODULE MUX321 - INSTANCE mux_5 - SUBMODULE MUX321 - INSTANCE mux_6 - SUBMODULE MUX321 - INSTANCE mux_7 - SUBMODULE MUX321 - INSTANCE mux_8 - SUBMODULE CU2 - INSTANCE r_gctr_8 - SUBMODULE CU2 - INSTANCE r_gctr_7 - SUBMODULE CU2 - INSTANCE r_gctr_6 - SUBMODULE CU2 - INSTANCE r_gctr_5 - SUBMODULE CU2 - INSTANCE r_gctr_4 - SUBMODULE CU2 - INSTANCE r_gctr_3 - SUBMODULE CU2 - INSTANCE r_gctr_2 - SUBMODULE CU2 - INSTANCE r_gctr_1 - SUBMODULE CU2 - INSTANCE r_gctr_0 - SUBMODULE FADD2B - INSTANCE r_gctr_cia - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE CU2 - INSTANCE w_gctr_8 - SUBMODULE CU2 - INSTANCE w_gctr_7 - SUBMODULE CU2 - INSTANCE w_gctr_6 - SUBMODULE CU2 - INSTANCE w_gctr_5 - SUBMODULE CU2 - INSTANCE w_gctr_4 - SUBMODULE CU2 - INSTANCE w_gctr_3 - SUBMODULE CU2 - INSTANCE w_gctr_2 - SUBMODULE CU2 - INSTANCE w_gctr_1 - SUBMODULE CU2 - INSTANCE w_gctr_0 - SUBMODULE FADD2B - INSTANCE w_gctr_cia - SUBMODULE FD1S3DX - INSTANCE FF_0 - SUBMODULE FD1S3BX - INSTANCE FF_1 - SUBMODULE FD1S3DX - INSTANCE FF_2 - SUBMODULE FD1S3DX - INSTANCE FF_3 - SUBMODULE FD1S3DX - INSTANCE FF_4 - SUBMODULE FD1S3DX - INSTANCE FF_5 - SUBMODULE FD1S3DX - INSTANCE FF_6 - SUBMODULE FD1S3DX - INSTANCE FF_7 - SUBMODULE FD1S3DX - INSTANCE FF_8 - SUBMODULE FD1S3DX - INSTANCE FF_9 - SUBMODULE FD1S3DX - INSTANCE FF_10 - SUBMODULE FD1S3DX - INSTANCE FF_11 - SUBMODULE FD1S3DX - INSTANCE FF_12 - SUBMODULE FD1S3DX - INSTANCE FF_13 - SUBMODULE FD1S3DX - INSTANCE FF_14 - SUBMODULE FD1S3DX - INSTANCE FF_15 - SUBMODULE FD1S3DX - INSTANCE FF_16 - SUBMODULE FD1S3DX - INSTANCE FF_17 - SUBMODULE FD1S3DX - INSTANCE FF_18 - SUBMODULE FD1S3DX - INSTANCE FF_19 - SUBMODULE FD1S3DX - INSTANCE FF_20 - SUBMODULE FD1S3DX - INSTANCE FF_21 - SUBMODULE FD1S3DX - INSTANCE FF_22 - SUBMODULE FD1S3DX - INSTANCE FF_23 - SUBMODULE FD1S3DX - INSTANCE FF_24 - SUBMODULE FD1S3DX - INSTANCE FF_25 - SUBMODULE FD1S3DX - INSTANCE FF_26 - SUBMODULE FD1S3DX - INSTANCE FF_27 - SUBMODULE FD1S3DX - INSTANCE FF_28 - SUBMODULE FD1S3DX - INSTANCE FF_29 - SUBMODULE FD1S3DX - INSTANCE FF_30 - SUBMODULE FD1S3DX - INSTANCE FF_31 - SUBMODULE FD1S3DX - INSTANCE FF_32 - SUBMODULE FD1S3DX - INSTANCE FF_33 - SUBMODULE FD1S3DX - INSTANCE FF_34 - SUBMODULE FD1S3DX - INSTANCE FF_35 - SUBMODULE FD1S3DX - INSTANCE FF_36 - SUBMODULE FD1S3DX - INSTANCE FF_37 - SUBMODULE FD1S3DX - INSTANCE FF_38 - SUBMODULE FD1S3DX - INSTANCE FF_39 - SUBMODULE FD1S3DX - INSTANCE FF_40 - SUBMODULE FD1S3DX - INSTANCE FF_41 - SUBMODULE FD1S3DX - INSTANCE FF_42 - SUBMODULE FD1S3DX - INSTANCE FF_43 - SUBMODULE FD1S3DX - INSTANCE FF_44 - SUBMODULE FD1S3DX - INSTANCE FF_45 - SUBMODULE FD1S3DX - INSTANCE FF_46 - SUBMODULE FD1S3DX - INSTANCE FF_47 - SUBMODULE FD1S3DX - INSTANCE FF_48 - SUBMODULE FD1S3DX - INSTANCE FF_49 - SUBMODULE FD1S3DX - INSTANCE FF_50 - SUBMODULE FD1S3DX - INSTANCE FF_51 - SUBMODULE FD1S3DX - INSTANCE FF_52 - SUBMODULE FD1S3DX - INSTANCE FF_53 - SUBMODULE FD1S3DX - INSTANCE FF_54 - SUBMODULE FD1S3DX - INSTANCE FF_55 - SUBMODULE FD1S3DX - INSTANCE FF_56 - SUBMODULE FD1S3DX - INSTANCE FF_57 - SUBMODULE FD1S3DX - INSTANCE FF_58 - SUBMODULE FD1S3DX - INSTANCE FF_59 - SUBMODULE FD1S3DX - INSTANCE FF_60 - SUBMODULE FD1S3DX - INSTANCE FF_61 - SUBMODULE FD1S3DX - INSTANCE FF_62 - SUBMODULE FD1S3DX - INSTANCE FF_63 - SUBMODULE FD1S3DX - INSTANCE FF_64 - SUBMODULE FD1S3DX - INSTANCE FF_65 - SUBMODULE FD1S3DX - INSTANCE FF_66 - SUBMODULE FD1S3DX - INSTANCE FF_67 - SUBMODULE FD1S3DX - INSTANCE FF_68 - SUBMODULE FD1S3DX - INSTANCE FF_69 - SUBMODULE FD1P3DX - INSTANCE FF_70 - SUBMODULE FD1P3DX - INSTANCE FF_71 - SUBMODULE FD1P3DX - INSTANCE FF_72 - SUBMODULE FD1P3DX - INSTANCE FF_73 - SUBMODULE FD1P3DX - INSTANCE FF_74 - SUBMODULE FD1P3DX - INSTANCE FF_75 - SUBMODULE FD1P3DX - INSTANCE FF_76 - SUBMODULE FD1P3DX - INSTANCE FF_77 - SUBMODULE FD1P3DX - INSTANCE FF_78 - SUBMODULE FD1P3DX - INSTANCE FF_79 - SUBMODULE FD1P3DX - INSTANCE FF_80 - SUBMODULE FD1P3DX - INSTANCE FF_81 - SUBMODULE FD1P3DX - INSTANCE FF_82 - SUBMODULE FD1P3DX - INSTANCE FF_83 - SUBMODULE FD1P3DX - INSTANCE FF_84 - SUBMODULE FD1P3DX - INSTANCE FF_85 - SUBMODULE FD1P3DX - INSTANCE FF_86 - SUBMODULE FD1P3DX - INSTANCE FF_87 - SUBMODULE FD1P3DX - INSTANCE FF_88 - SUBMODULE FD1P3DX - INSTANCE FF_89 - SUBMODULE FD1P3DX - INSTANCE FF_90 - SUBMODULE FD1P3DX - INSTANCE FF_91 - SUBMODULE FD1P3DX - INSTANCE FF_92 - SUBMODULE FD1P3DX - INSTANCE FF_93 - SUBMODULE FD1P3DX - INSTANCE FF_94 - SUBMODULE FD1P3DX - INSTANCE FF_95 - SUBMODULE FD1P3DX - INSTANCE FF_96 - SUBMODULE FD1P3DX - INSTANCE FF_97 - SUBMODULE FD1P3DX - INSTANCE FF_98 - SUBMODULE FD1P3DX - INSTANCE FF_99 - SUBMODULE FD1P3DX - INSTANCE FF_100 - SUBMODULE FD1P3DX - INSTANCE FF_101 - SUBMODULE FD1P3DX - INSTANCE FF_102 - SUBMODULE FD1P3DX - INSTANCE FF_103 - SUBMODULE FD1P3DX - INSTANCE FF_104 - SUBMODULE FD1P3DX - INSTANCE FF_105 - SUBMODULE FD1P3DX - INSTANCE FF_106 - SUBMODULE FD1P3DX - INSTANCE FF_107 - SUBMODULE FD1P3DX - INSTANCE FF_108 - SUBMODULE FD1P3DX - INSTANCE FF_109 - SUBMODULE FD1P3DX - INSTANCE FF_110 - SUBMODULE FD1P3DX - INSTANCE FF_111 - SUBMODULE FD1P3DX - INSTANCE FF_112 - SUBMODULE FD1P3DX - INSTANCE FF_113 - SUBMODULE FD1P3DX - INSTANCE FF_114 - SUBMODULE FD1P3DX - INSTANCE FF_115 - SUBMODULE FD1P3DX - INSTANCE FF_116 - SUBMODULE FD1P3DX - INSTANCE FF_117 - SUBMODULE FD1P3DX - INSTANCE FF_118 - SUBMODULE FD1P3DX - INSTANCE FF_119 - SUBMODULE FD1P3DX - INSTANCE FF_120 - SUBMODULE FD1P3DX - INSTANCE FF_121 - SUBMODULE FD1P3DX - INSTANCE FF_122 - SUBMODULE FD1P3DX - INSTANCE FF_123 - SUBMODULE FD1P3DX - INSTANCE FF_124 - SUBMODULE FD1P3BX - INSTANCE FF_125 - SUBMODULE FD1P3DX - INSTANCE FF_126 - SUBMODULE FD1P3DX - INSTANCE FF_127 - SUBMODULE FD1P3DX - INSTANCE FF_128 - SUBMODULE FD1P3DX - INSTANCE FF_129 - SUBMODULE FD1P3DX - INSTANCE FF_130 - SUBMODULE FD1P3DX - INSTANCE FF_131 - SUBMODULE FD1P3DX - INSTANCE FF_132 - SUBMODULE FD1P3DX - INSTANCE FF_133 - SUBMODULE FD1P3DX - INSTANCE FF_134 - SUBMODULE FD1P3DX - INSTANCE FF_135 - SUBMODULE FD1P3DX - INSTANCE FF_136 - SUBMODULE FD1P3DX - INSTANCE FF_137 - SUBMODULE FD1P3DX - INSTANCE FF_138 - SUBMODULE FD1P3DX - INSTANCE FF_139 - SUBMODULE FD1P3DX - INSTANCE FF_140 - SUBMODULE FD1P3DX - INSTANCE FF_141 - SUBMODULE FD1P3DX - INSTANCE FF_142 - SUBMODULE FD1P3DX - INSTANCE FF_143 - SUBMODULE FD1P3DX - INSTANCE FF_144 - SUBMODULE FD1P3DX - INSTANCE FF_145 - SUBMODULE FD1P3DX - INSTANCE FF_146 - SUBMODULE FD1P3DX - INSTANCE FF_147 - SUBMODULE FD1P3DX - INSTANCE FF_148 - SUBMODULE FD1P3DX - INSTANCE FF_149 - SUBMODULE FD1P3DX - INSTANCE FF_150 - SUBMODULE FD1P3DX - INSTANCE FF_151 - SUBMODULE FD1P3DX - INSTANCE FF_152 - SUBMODULE FD1P3DX - INSTANCE FF_153 - SUBMODULE FD1P3DX - INSTANCE FF_154 - SUBMODULE FD1P3DX - INSTANCE FF_155 - SUBMODULE FD1P3DX - INSTANCE FF_156 - SUBMODULE FD1P3DX - INSTANCE FF_157 - SUBMODULE FD1P3DX - INSTANCE FF_158 - SUBMODULE FD1P3DX - INSTANCE FF_159 - SUBMODULE FD1P3DX - INSTANCE FF_160 - SUBMODULE FD1P3DX - INSTANCE FF_161 - SUBMODULE FD1P3DX - INSTANCE FF_162 - SUBMODULE FD1P3DX - INSTANCE FF_163 - SUBMODULE FD1P3DX - INSTANCE FF_164 - SUBMODULE FD1P3DX - INSTANCE FF_165 - SUBMODULE FD1P3DX - INSTANCE FF_166 - SUBMODULE FD1P3DX - INSTANCE FF_167 - SUBMODULE FD1P3DX - INSTANCE FF_168 - SUBMODULE FD1P3DX - INSTANCE FF_169 - SUBMODULE FD1P3DX - INSTANCE FF_170 - SUBMODULE FD1P3DX - INSTANCE FF_171 - SUBMODULE FD1P3DX - INSTANCE FF_172 - SUBMODULE FD1P3DX - INSTANCE FF_173 - SUBMODULE FD1P3DX - INSTANCE FF_174 - SUBMODULE FD1P3DX - INSTANCE FF_175 - SUBMODULE FD1P3BX - INSTANCE FF_176 - SUBMODULE DP16KC - INSTANCE pdp_ram_31_0_0 - SUBMODULE DP16KC - INSTANCE pdp_ram_30_0_1 - SUBMODULE DP16KC - INSTANCE pdp_ram_29_0_2 - SUBMODULE DP16KC - INSTANCE pdp_ram_28_0_3 - SUBMODULE DP16KC - INSTANCE pdp_ram_27_0_4 - SUBMODULE DP16KC - INSTANCE pdp_ram_26_0_5 - SUBMODULE DP16KC - INSTANCE pdp_ram_25_0_6 - SUBMODULE DP16KC - INSTANCE pdp_ram_24_0_7 - SUBMODULE DP16KC - INSTANCE pdp_ram_23_0_8 - SUBMODULE DP16KC - INSTANCE pdp_ram_22_0_9 - SUBMODULE DP16KC - INSTANCE pdp_ram_21_0_10 - SUBMODULE DP16KC - INSTANCE pdp_ram_20_0_11 - SUBMODULE DP16KC - INSTANCE pdp_ram_19_0_12 - SUBMODULE DP16KC - INSTANCE pdp_ram_18_0_13 - SUBMODULE DP16KC - INSTANCE pdp_ram_17_0_14 - SUBMODULE DP16KC - INSTANCE pdp_ram_16_0_15 - SUBMODULE DP16KC - INSTANCE pdp_ram_15_0_16 - SUBMODULE DP16KC - INSTANCE pdp_ram_14_0_17 - SUBMODULE DP16KC - INSTANCE pdp_ram_13_0_18 - SUBMODULE DP16KC - INSTANCE pdp_ram_12_0_19 - SUBMODULE DP16KC - INSTANCE pdp_ram_11_0_20 - SUBMODULE DP16KC - INSTANCE pdp_ram_10_0_21 - SUBMODULE DP16KC - INSTANCE pdp_ram_9_0_22 - SUBMODULE DP16KC - INSTANCE pdp_ram_8_0_23 - SUBMODULE DP16KC - INSTANCE pdp_ram_7_0_24 - SUBMODULE DP16KC - INSTANCE pdp_ram_6_0_25 - SUBMODULE DP16KC - INSTANCE pdp_ram_5_0_26 - SUBMODULE DP16KC - INSTANCE pdp_ram_4_0_27 - SUBMODULE DP16KC - INSTANCE pdp_ram_3_0_28 - SUBMODULE DP16KC - INSTANCE pdp_ram_2_0_29 - SUBMODULE DP16KC - INSTANCE pdp_ram_1_0_30 - SUBMODULE DP16KC - INSTANCE pdp_ram_0_0_31 - SUBMODULE ROM16X1A - INSTANCE LUT4_0 - SUBMODULE ROM16X1A - INSTANCE LUT4_1 - SUBMODULE ROM16X1A - INSTANCE LUT4_2 - SUBMODULE ROM16X1A - INSTANCE LUT4_3 - SUBMODULE ROM16X1A - INSTANCE LUT4_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_5 - SUBMODULE ROM16X1A - INSTANCE LUT4_6 - SUBMODULE ROM16X1A - INSTANCE LUT4_7 - SUBMODULE ROM16X1A - INSTANCE LUT4_8 - SUBMODULE ROM16X1A - INSTANCE LUT4_9 - SUBMODULE ROM16X1A - INSTANCE LUT4_10 - SUBMODULE ROM16X1A - INSTANCE LUT4_11 - SUBMODULE ROM16X1A - INSTANCE LUT4_12 - SUBMODULE ROM16X1A - INSTANCE LUT4_13 - SUBMODULE ROM16X1A - INSTANCE LUT4_14 - SUBMODULE ROM16X1A - INSTANCE LUT4_15 - SUBMODULE ROM16X1A - INSTANCE LUT4_16 - SUBMODULE ROM16X1A - INSTANCE LUT4_17 - SUBMODULE ROM16X1A - INSTANCE LUT4_18 - SUBMODULE ROM16X1A - INSTANCE LUT4_19 - SUBMODULE ROM16X1A - INSTANCE LUT4_20 - SUBMODULE ROM16X1A - INSTANCE LUT4_21 - SUBMODULE ROM16X1A - INSTANCE LUT4_22 - SUBMODULE ROM16X1A - INSTANCE LUT4_23 - SUBMODULE ROM16X1A - INSTANCE LUT4_24 - SUBMODULE ROM16X1A - INSTANCE LUT4_25 - SUBMODULE ROM16X1A - INSTANCE LUT4_26 - SUBMODULE ROM16X1A - INSTANCE LUT4_27 - SUBMODULE ROM16X1A - INSTANCE LUT4_28 - SUBMODULE ROM16X1A - INSTANCE LUT4_29 - SUBMODULE ROM16X1A - INSTANCE LUT4_30 - SUBMODULE ROM16X1A - INSTANCE LUT4_31 - SUBMODULE ROM16X1A - INSTANCE LUT4_32 - SUBMODULE ROM16X1A - INSTANCE LUT4_33 - SUBMODULE ROM16X1A - INSTANCE LUT4_34 - SUBMODULE ROM16X1A - INSTANCE LUT4_35 - SUBMODULE ROM16X1A - INSTANCE LUT4_36 - SUBMODULE ROM16X1A - INSTANCE LUT4_37 - SUBMODULE ROM16X1A - INSTANCE LUT4_38 - SUBMODULE ROM16X1A - INSTANCE LUT4_39 - SUBMODULE ROM16X1A - INSTANCE LUT4_40 - SUBMODULE ROM16X1A - INSTANCE LUT4_41 - SUBMODULE ROM16X1A - INSTANCE LUT4_42 - SUBMODULE ROM16X1A - INSTANCE LUT4_43 - SUBMODULE ROM16X1A - INSTANCE LUT4_44 - SUBMODULE ROM16X1A - INSTANCE LUT4_45 - SUBMODULE ROM16X1A - INSTANCE LUT4_46 - SUBMODULE ROM16X1A - INSTANCE LUT4_47 - SUBMODULE ROM16X1A - INSTANCE LUT4_48 - SUBMODULE ROM16X1A - INSTANCE LUT4_49 - SUBMODULE ROM16X1A - INSTANCE LUT4_50 - SUBMODULE ROM16X1A - INSTANCE LUT4_51 - SUBMODULE ROM16X1A - INSTANCE LUT4_52 - SUBMODULE ROM16X1A - INSTANCE LUT4_53 - SUBMODULE ROM16X1A - INSTANCE LUT4_54 - SUBMODULE ROM16X1A - INSTANCE LUT4_55 - SUBMODULE ROM16X1A - INSTANCE LUT4_56 - SUBMODULE ROM16X1A - INSTANCE LUT4_57 - SUBMODULE ROM16X1A - INSTANCE LUT4_58 - SUBMODULE ROM16X1A - INSTANCE LUT4_59 - SUBMODULE ROM16X1A - INSTANCE LUT4_60 - SUBMODULE ROM16X1A - INSTANCE LUT4_61 - SUBMODULE ROM16X1A - INSTANCE LUT4_62 - SUBMODULE ROM16X1A - INSTANCE LUT4_63 - SUBMODULE ROM16X1A - INSTANCE LUT4_64 - SUBMODULE ROM16X1A - INSTANCE LUT4_65 - SUBMODULE ROM16X1A - INSTANCE LUT4_66 - SUBMODULE ROM16X1A - INSTANCE LUT4_67 - SUBMODULE ROM16X1A - INSTANCE LUT4_68 - SUBMODULE ROM16X1A - INSTANCE LUT4_69 - SUBMODULE ROM16X1A - INSTANCE LUT4_70 - SUBMODULE ROM16X1A - INSTANCE LUT4_71 - SUBMODULE ROM16X1A - INSTANCE LUT4_72 - SUBMODULE ROM16X1A - INSTANCE LUT4_73 - SUBMODULE ROM16X1A - INSTANCE LUT4_74 - SUBMODULE ROM16X1A - INSTANCE LUT4_75 - SUBMODULE ROM16X1A - INSTANCE LUT4_76 - SUBMODULE ROM16X1A - INSTANCE LUT4_77 - SUBMODULE ROM16X1A - INSTANCE LUT4_78 - SUBMODULE ROM16X1A - INSTANCE LUT4_79 - SUBMODULE ROM16X1A - INSTANCE LUT4_80 - SUBMODULE ROM16X1A - INSTANCE LUT4_81 - SUBMODULE ROM16X1A - INSTANCE LUT4_82 - SUBMODULE ROM16X1A - INSTANCE LUT4_83 - SUBMODULE ROM16X1A - INSTANCE LUT4_84 - SUBMODULE ROM16X1A - INSTANCE LUT4_85 - SUBMODULE ROM16X1A - INSTANCE LUT4_86 - SUBMODULE ROM16X1A - INSTANCE LUT4_87 - SUBMODULE ROM16X1A - INSTANCE LUT4_88 - SUBMODULE ROM16X1A - INSTANCE LUT4_89 - SUBMODULE ROM16X1A - INSTANCE LUT4_90 - SUBMODULE ROM16X1A - INSTANCE LUT4_91 - SUBMODULE ROM16X1A - INSTANCE LUT4_92 - SUBMODULE ROM16X1A - INSTANCE LUT4_93 - SUBMODULE ROM16X1A - INSTANCE LUT4_94 - SUBMODULE ROM16X1A - INSTANCE LUT4_95 - SUBMODULE ROM16X1A - INSTANCE LUT4_96 - SUBMODULE ROM16X1A - INSTANCE LUT4_97 - SUBMODULE ROM16X1A - INSTANCE LUT4_98 - SUBMODULE ROM16X1A - INSTANCE LUT4_99 - SUBMODULE ROM16X1A - INSTANCE LUT4_100 - SUBMODULE ROM16X1A - INSTANCE LUT4_101 - SUBMODULE ROM16X1A - INSTANCE LUT4_102 - SUBMODULE ROM16X1A - INSTANCE LUT4_103 - SUBMODULE ROM16X1A - INSTANCE LUT4_104 - SUBMODULE ROM16X1A - INSTANCE LUT4_105 - SUBMODULE ROM16X1A - INSTANCE LUT4_106 - SUBMODULE ROM16X1A - INSTANCE LUT4_107 - SUBMODULE ROM16X1A - INSTANCE LUT4_108 - SUBMODULE ROM16X1A - INSTANCE LUT4_109 - SUBMODULE ROM16X1A - INSTANCE LUT4_110 - SUBMODULE ROM16X1A - INSTANCE LUT4_111 - SUBMODULE ROM16X1A - INSTANCE LUT4_112 - SUBMODULE ROM16X1A - INSTANCE LUT4_113 - SUBMODULE ROM16X1A - INSTANCE LUT4_114 - SUBMODULE ROM16X1A - INSTANCE LUT4_115 - SUBMODULE ROM16X1A - INSTANCE LUT4_116 - SUBMODULE ROM16X1A - INSTANCE LUT4_117 - SUBMODULE ROM16X1A - INSTANCE LUT4_118 - SUBMODULE ROM16X1A - INSTANCE LUT4_119 - SUBMODULE ROM16X1A - INSTANCE LUT4_120 - SUBMODULE ROM16X1A - INSTANCE LUT4_121 - SUBMODULE ROM16X1A - INSTANCE LUT4_122 - SUBMODULE ROM16X1A - INSTANCE LUT4_123 - SUBMODULE ROM16X1A - INSTANCE LUT4_124 - SUBMODULE ROM16X1A - INSTANCE LUT4_125 - SUBMODULE ROM16X1A - INSTANCE LUT4_126 - SUBMODULE ROM16X1A - INSTANCE LUT4_127 - SUBMODULE ROM16X1A - INSTANCE LUT4_128 - SUBMODULE ROM16X1A - INSTANCE LUT4_129 - SUBMODULE ROM16X1A - INSTANCE LUT4_130 - SUBMODULE ROM16X1A - INSTANCE LUT4_131 - SUBMODULE ROM16X1A - INSTANCE LUT4_132 - SUBMODULE ROM16X1A - INSTANCE LUT4_133 - SUBMODULE ROM16X1A - INSTANCE LUT4_134 - SUBMODULE ROM16X1A - INSTANCE LUT4_135 - SUBMODULE ROM16X1A - INSTANCE LUT4_136 - SUBMODULE ROM16X1A - INSTANCE LUT4_137 - SUBMODULE ROM16X1A - INSTANCE LUT4_138 - SUBMODULE ROM16X1A - INSTANCE LUT4_139 - SUBMODULE ROM16X1A - INSTANCE LUT4_140 - SUBMODULE ROM16X1A - INSTANCE LUT4_141 - SUBMODULE ROM16X1A - INSTANCE LUT4_142 - SUBMODULE ROM16X1A - INSTANCE LUT4_143 - SUBMODULE ROM16X1A - INSTANCE LUT4_144 - SUBMODULE ROM16X1A - INSTANCE LUT4_145 - SUBMODULE ROM16X1A - INSTANCE LUT4_146 - SUBMODULE ROM16X1A - INSTANCE LUT4_147 - SUBMODULE ROM16X1A - INSTANCE LUT4_148 - SUBMODULE ROM16X1A - INSTANCE LUT4_149 - SUBMODULE ROM16X1A - INSTANCE LUT4_150 - SUBMODULE ROM16X1A - INSTANCE LUT4_151 - SUBMODULE ROM16X1A - INSTANCE LUT4_152 - SUBMODULE ROM16X1A - INSTANCE LUT4_153 - SUBMODULE ROM16X1A - INSTANCE LUT4_154 - SUBMODULE ROM16X1A - INSTANCE LUT4_155 - SUBMODULE ROM16X1A - INSTANCE LUT4_156 - SUBMODULE ROM16X1A - INSTANCE LUT4_157 - SUBMODULE ROM16X1A - INSTANCE LUT4_158 - SUBMODULE ROM16X1A - INSTANCE LUT4_159 - SUBMODULE ROM16X1A - INSTANCE LUT4_160 - SUBMODULE ROM16X1A - INSTANCE LUT4_161 - SUBMODULE ROM16X1A - INSTANCE LUT4_162 - SUBMODULE ROM16X1A - INSTANCE LUT4_163 - SUBMODULE ROM16X1A - INSTANCE LUT4_164 - SUBMODULE ROM16X1A - INSTANCE LUT4_165 - SUBMODULE ROM16X1A - INSTANCE LUT4_166 - SUBMODULE ROM16X1A - INSTANCE LUT4_167 - SUBMODULE ROM16X1A - INSTANCE LUT4_168 - SUBMODULE ROM16X1A - INSTANCE LUT4_169 - SUBMODULE ROM16X1A - INSTANCE LUT4_170 - SUBMODULE ROM16X1A - INSTANCE LUT4_171 - SUBMODULE ROM16X1A - INSTANCE LUT4_172 - SUBMODULE ROM16X1A - INSTANCE LUT4_173 - SUBMODULE ROM16X1A - INSTANCE LUT4_174 - SUBMODULE ROM16X1A - INSTANCE LUT4_175 - SUBMODULE ROM16X1A - INSTANCE LUT4_176 - SUBMODULE ROM16X1A - INSTANCE LUT4_177 - SUBMODULE ROM16X1A - INSTANCE LUT4_178 - SUBMODULE ROM16X1A - INSTANCE LUT4_179 - SUBMODULE ROM16X1A - INSTANCE LUT4_180 - SUBMODULE ROM16X1A - INSTANCE LUT4_181 - SUBMODULE ROM16X1A - INSTANCE LUT4_182 - SUBMODULE ROM16X1A - INSTANCE LUT4_183 - SUBMODULE ROM16X1A - INSTANCE LUT4_184 - SUBMODULE ROM16X1A - INSTANCE LUT4_185 - SUBMODULE INV - INSTANCE INV_0 - SUBMODULE INV - INSTANCE INV_1 - SUBMODULE INV - INSTANCE INV_2 - SUBMODULE INV - INSTANCE INV_3 - SUBMODULE INV - INSTANCE INV_4 - SUBMODULE ROM16X1A - INSTANCE LUT4_186 - SUBMODULE ROM16X1A - INSTANCE LUT4_187 - SUBMODULE INV - INSTANCE INV_5 - SUBMODULE INV - INSTANCE INV_6 - SUBMODULE INV - INSTANCE INV_7 - SUBMODULE INV - INSTANCE INV_8 - SUBMODULE INV - INSTANCE INV_9 - SUBMODULE XOR2 - INSTANCE XOR2_t0 - SUBMODULE XOR2 - INSTANCE XOR2_t1 - SUBMODULE XOR2 - INSTANCE XOR2_t2 - SUBMODULE XOR2 - INSTANCE XOR2_t3 - SUBMODULE XOR2 - INSTANCE XOR2_t4 - SUBMODULE XOR2 - INSTANCE XOR2_t5 - SUBMODULE XOR2 - INSTANCE XOR2_t6 - SUBMODULE XOR2 - INSTANCE XOR2_t7 - SUBMODULE XOR2 - INSTANCE XOR2_t8 - SUBMODULE XOR2 - INSTANCE XOR2_t9 - SUBMODULE XOR2 - INSTANCE XOR2_t10 - SUBMODULE XOR2 - INSTANCE XOR2_t11 - SUBMODULE XOR2 - INSTANCE XOR2_t12 - SUBMODULE XOR2 - INSTANCE XOR2_t13 - SUBMODULE XOR2 - INSTANCE XOR2_t14 - SUBMODULE XOR2 - INSTANCE XOR2_t15 - SUBMODULE XOR2 - INSTANCE XOR2_t16 - SUBMODULE XOR2 - INSTANCE XOR2_t17 - SUBMODULE XOR2 - INSTANCE XOR2_t18 - SUBMODULE XOR2 - INSTANCE XOR2_t19 - SUBMODULE XOR2 - INSTANCE XOR2_t20 - SUBMODULE XOR2 - INSTANCE XOR2_t21 - SUBMODULE XOR2 - INSTANCE XOR2_t22 - SUBMODULE XOR2 - INSTANCE XOR2_t23 - SUBMODULE XOR2 - INSTANCE XOR2_t24 - SUBMODULE XOR2 - INSTANCE XOR2_t25 - SUBMODULE XOR2 - INSTANCE XOR2_t26 - SUBMODULE XOR2 - INSTANCE XOR2_t27 - SUBMODULE XOR2 - INSTANCE XOR2_t28 - SUBMODULE XOR2 - INSTANCE XOR2_t29 - SUBMODULE XOR2 - INSTANCE XOR2_t30 - SUBMODULE XOR2 - INSTANCE XOR2_t31 - SUBMODULE OR2 - INSTANCE OR2_t32 - SUBMODULE INV - INSTANCE INV_10 - SUBMODULE AND2 - INSTANCE AND2_t33 - SUBMODULE INV - INSTANCE INV_11 - SUBMODULE AND2 - INSTANCE AND2_t34 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.lpc deleted file mode 100644 index a9ca96b..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_64kx9 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:23:21 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=65536 -Width=9 -RDepth=65536 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.naf b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.naf deleted file mode 100644 index 1410b2d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.naf +++ /dev/null @@ -1,26 +0,0 @@ -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WrClock i -RdClock i -WrEn i -RdEn i -Reset i -RPReset i -Q[8] o -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o -Empty o -Full o diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.sort b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.sort deleted file mode 100644 index 55eb217..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.sort +++ /dev/null @@ -1 +0,0 @@ -fifo_64kx9.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.srp b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.srp deleted file mode 100644 index 3f23449..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.srp +++ /dev/null @@ -1,43 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:21 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_64kx9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 16 -data_width 9 -num_words 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_64kx9 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_64kx9.vhd - VHDL template : fifo_64kx9_tmpl.vhd - VHDL testbench : tb_fifo_64kx9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx9.srp - Element Usage : - AGEB2 : 18 - AND2 : 2 - CU2 : 18 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 105 - FD1S3BX : 1 - FD1S3DX : 69 - INV : 12 - MUX321 : 9 - OR2 : 1 - ROM16X1A : 188 - XOR2 : 32 - DP16KC : 32 - Estimated Resource Usage: - LUT : 379 - EBR : 32 - Reg : 177 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.sym b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.sym deleted file mode 100644 index 056da05d3ad64e3cdda928e58bceb25b549136c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmYk2u}i~17{%X5Q>DeBgQG)+OybZ%Bsv96I%*9{1Qn^aMQOC5M$s*QK!;4?DB{>5 zle4o^aCUZ-jE=s$L@;pVm*4yDahF*DJ~ggP425_SM@%fqiU12@(>Pd$F53aRyaNz;gmMVL1_)Y?_B}6bOplF)&0TsAjXugCCT6JZfT!sBRo_# zn3SEbv>9eqXE0HnA3SA-H&~r_pzd8p@ja)cwzI#7Z)Q0@nSB99=OzppRhhb7f*)pv zU~ad(%D;56IlLH-Pu5mPck6(~p0;?*bF|=zErNtj^}CugeU7d)=o8(2M6d2(r~30I7trJz+~>$IIrvVS diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.vhd deleted file mode 100644 index 9ad1f19..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9.vhd +++ /dev/null @@ -1,4582 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 65536 -width 9 -depth 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:23:21 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_64kx9 is - port ( - Data: in std_logic_vector(8 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_64kx9; - -architecture Structure of fifo_64kx9 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal func_and_inet: std_logic; - signal func_and_inet_1: std_logic; - signal func_and_inet_2: std_logic; - signal func_and_inet_3: std_logic; - signal func_and_inet_4: std_logic; - signal func_and_inet_5: std_logic; - signal func_and_inet_6: std_logic; - signal func_and_inet_7: std_logic; - signal func_and_inet_8: std_logic; - signal func_and_inet_9: std_logic; - signal func_and_inet_10: std_logic; - signal func_and_inet_11: std_logic; - signal func_and_inet_12: std_logic; - signal func_and_inet_13: std_logic; - signal func_and_inet_14: std_logic; - signal func_and_inet_15: std_logic; - signal func_and_inet_16: std_logic; - signal func_and_inet_17: std_logic; - signal func_and_inet_18: std_logic; - signal func_and_inet_19: std_logic; - signal func_and_inet_20: std_logic; - signal func_and_inet_21: std_logic; - signal func_and_inet_22: std_logic; - signal func_and_inet_23: std_logic; - signal func_and_inet_24: std_logic; - signal func_and_inet_25: std_logic; - signal func_and_inet_26: std_logic; - signal func_and_inet_27: std_logic; - signal func_and_inet_28: std_logic; - signal func_and_inet_29: std_logic; - signal wptr_15_inv: std_logic; - signal func_and_inet_30: std_logic; - signal rptr_15_inv: std_logic; - signal func_and_inet_31: std_logic; - signal func_and_inet_32: std_logic; - signal func_and_inet_33: std_logic; - signal func_and_inet_34: std_logic; - signal func_and_inet_35: std_logic; - signal func_and_inet_36: std_logic; - signal func_and_inet_37: std_logic; - signal func_and_inet_38: std_logic; - signal func_and_inet_39: std_logic; - signal func_and_inet_40: std_logic; - signal func_and_inet_41: std_logic; - signal func_and_inet_42: std_logic; - signal func_and_inet_43: std_logic; - signal func_and_inet_44: std_logic; - signal func_and_inet_45: std_logic; - signal wptr_14_inv: std_logic; - signal func_and_inet_46: std_logic; - signal rptr_14_inv: std_logic; - signal func_and_inet_47: std_logic; - signal func_and_inet_48: std_logic; - signal func_and_inet_49: std_logic; - signal func_and_inet_50: std_logic; - signal func_and_inet_51: std_logic; - signal func_and_inet_52: std_logic; - signal func_and_inet_53: std_logic; - signal wptr_13_inv: std_logic; - signal func_and_inet_54: std_logic; - signal rptr_13_inv: std_logic; - signal func_and_inet_55: std_logic; - signal func_and_inet_56: std_logic; - signal func_and_inet_57: std_logic; - signal wptr_12_inv: std_logic; - signal func_and_inet_58: std_logic; - signal rptr_12_inv: std_logic; - signal func_and_inet_59: std_logic; - signal wptr_11_inv: std_logic; - signal func_and_inet_60: std_logic; - signal rptr_11_inv: std_logic; - signal func_and_inet_61: std_logic; - signal func_and_inet_62: std_logic; - signal func_and_inet_63: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_9: std_logic; - signal func_xor_inet_8: std_logic; - signal func_xor_inet_7: std_logic; - signal func_xor_inet_6: std_logic; - signal func_xor_inet_10: std_logic; - signal func_xor_inet_11: std_logic; - signal dec1_r10: std_logic; - signal dec0_p00: std_logic; - signal dec3_r11: std_logic; - signal dec2_p01: std_logic; - signal dec5_r12: std_logic; - signal dec4_p02: std_logic; - signal dec7_r13: std_logic; - signal dec6_p03: std_logic; - signal dec9_r14: std_logic; - signal dec8_p04: std_logic; - signal dec11_r15: std_logic; - signal dec10_p05: std_logic; - signal dec13_r16: std_logic; - signal dec12_p06: std_logic; - signal dec15_r17: std_logic; - signal dec14_p07: std_logic; - signal dec17_r18: std_logic; - signal dec16_p08: std_logic; - signal dec19_r19: std_logic; - signal dec18_p09: std_logic; - signal dec21_r110: std_logic; - signal dec20_p010: std_logic; - signal dec23_r111: std_logic; - signal dec22_p011: std_logic; - signal dec25_r112: std_logic; - signal dec24_p012: std_logic; - signal dec27_r113: std_logic; - signal dec26_p013: std_logic; - signal dec29_r114: std_logic; - signal dec28_p014: std_logic; - signal dec31_r115: std_logic; - signal dec30_p015: std_logic; - signal dec33_r116: std_logic; - signal dec32_p016: std_logic; - signal dec35_r117: std_logic; - signal dec34_p017: std_logic; - signal dec37_r118: std_logic; - signal dec36_p018: std_logic; - signal dec39_r119: std_logic; - signal dec38_p019: std_logic; - signal dec41_r120: std_logic; - signal dec40_p020: std_logic; - signal dec43_r121: std_logic; - signal dec42_p021: std_logic; - signal dec45_r122: std_logic; - signal dec44_p022: std_logic; - signal dec47_r123: std_logic; - signal dec46_p023: std_logic; - signal dec49_r124: std_logic; - signal dec48_p024: std_logic; - signal dec51_r125: std_logic; - signal dec50_p025: std_logic; - signal dec53_r126: std_logic; - signal dec52_p026: std_logic; - signal dec55_r127: std_logic; - signal dec54_p027: std_logic; - signal dec57_r128: std_logic; - signal dec56_p028: std_logic; - signal dec59_r129: std_logic; - signal dec58_p029: std_logic; - signal dec61_r130: std_logic; - signal dec60_p030: std_logic; - signal dec63_r131: std_logic; - signal dec62_p031: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal w_gdata_15: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wptr_15: std_logic; - signal wptr_16: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_16: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal rptr_15: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal w_gcount_16: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal w_gcount_r216: std_logic; - signal w_gcount_r16: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co6: std_logic; - signal iwcount_16: std_logic; - signal co8: std_logic; - signal wcount_16: std_logic; - signal co7: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8_1: std_logic; - signal rcount_16: std_logic; - signal co7_1: std_logic; - signal mdout1_31_0: std_logic; - signal mdout1_30_0: std_logic; - signal mdout1_29_0: std_logic; - signal mdout1_28_0: std_logic; - signal mdout1_27_0: std_logic; - signal mdout1_26_0: std_logic; - signal mdout1_25_0: std_logic; - signal mdout1_24_0: std_logic; - signal mdout1_23_0: std_logic; - signal mdout1_22_0: std_logic; - signal mdout1_21_0: std_logic; - signal mdout1_20_0: std_logic; - signal mdout1_19_0: std_logic; - signal mdout1_18_0: std_logic; - signal mdout1_17_0: std_logic; - signal mdout1_16_0: std_logic; - signal mdout1_15_0: std_logic; - signal mdout1_14_0: std_logic; - signal mdout1_13_0: std_logic; - signal mdout1_12_0: std_logic; - signal mdout1_11_0: std_logic; - signal mdout1_10_0: std_logic; - signal mdout1_9_0: std_logic; - signal mdout1_8_0: std_logic; - signal mdout1_7_0: std_logic; - signal mdout1_6_0: std_logic; - signal mdout1_5_0: std_logic; - signal mdout1_4_0: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_31_1: std_logic; - signal mdout1_30_1: std_logic; - signal mdout1_29_1: std_logic; - signal mdout1_28_1: std_logic; - signal mdout1_27_1: std_logic; - signal mdout1_26_1: std_logic; - signal mdout1_25_1: std_logic; - signal mdout1_24_1: std_logic; - signal mdout1_23_1: std_logic; - signal mdout1_22_1: std_logic; - signal mdout1_21_1: std_logic; - signal mdout1_20_1: std_logic; - signal mdout1_19_1: std_logic; - signal mdout1_18_1: std_logic; - signal mdout1_17_1: std_logic; - signal mdout1_16_1: std_logic; - signal mdout1_15_1: std_logic; - signal mdout1_14_1: std_logic; - signal mdout1_13_1: std_logic; - signal mdout1_12_1: std_logic; - signal mdout1_11_1: std_logic; - signal mdout1_10_1: std_logic; - signal mdout1_9_1: std_logic; - signal mdout1_8_1: std_logic; - signal mdout1_7_1: std_logic; - signal mdout1_6_1: std_logic; - signal mdout1_5_1: std_logic; - signal mdout1_4_1: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_31_2: std_logic; - signal mdout1_30_2: std_logic; - signal mdout1_29_2: std_logic; - signal mdout1_28_2: std_logic; - signal mdout1_27_2: std_logic; - signal mdout1_26_2: std_logic; - signal mdout1_25_2: std_logic; - signal mdout1_24_2: std_logic; - signal mdout1_23_2: std_logic; - signal mdout1_22_2: std_logic; - signal mdout1_21_2: std_logic; - signal mdout1_20_2: std_logic; - signal mdout1_19_2: std_logic; - signal mdout1_18_2: std_logic; - signal mdout1_17_2: std_logic; - signal mdout1_16_2: std_logic; - signal mdout1_15_2: std_logic; - signal mdout1_14_2: std_logic; - signal mdout1_13_2: std_logic; - signal mdout1_12_2: std_logic; - signal mdout1_11_2: std_logic; - signal mdout1_10_2: std_logic; - signal mdout1_9_2: std_logic; - signal mdout1_8_2: std_logic; - signal mdout1_7_2: std_logic; - signal mdout1_6_2: std_logic; - signal mdout1_5_2: std_logic; - signal mdout1_4_2: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_31_3: std_logic; - signal mdout1_30_3: std_logic; - signal mdout1_29_3: std_logic; - signal mdout1_28_3: std_logic; - signal mdout1_27_3: std_logic; - signal mdout1_26_3: std_logic; - signal mdout1_25_3: std_logic; - signal mdout1_24_3: std_logic; - signal mdout1_23_3: std_logic; - signal mdout1_22_3: std_logic; - signal mdout1_21_3: std_logic; - signal mdout1_20_3: std_logic; - signal mdout1_19_3: std_logic; - signal mdout1_18_3: std_logic; - signal mdout1_17_3: std_logic; - signal mdout1_16_3: std_logic; - signal mdout1_15_3: std_logic; - signal mdout1_14_3: std_logic; - signal mdout1_13_3: std_logic; - signal mdout1_12_3: std_logic; - signal mdout1_11_3: std_logic; - signal mdout1_10_3: std_logic; - signal mdout1_9_3: std_logic; - signal mdout1_8_3: std_logic; - signal mdout1_7_3: std_logic; - signal mdout1_6_3: std_logic; - signal mdout1_5_3: std_logic; - signal mdout1_4_3: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_31_4: std_logic; - signal mdout1_30_4: std_logic; - signal mdout1_29_4: std_logic; - signal mdout1_28_4: std_logic; - signal mdout1_27_4: std_logic; - signal mdout1_26_4: std_logic; - signal mdout1_25_4: std_logic; - signal mdout1_24_4: std_logic; - signal mdout1_23_4: std_logic; - signal mdout1_22_4: std_logic; - signal mdout1_21_4: std_logic; - signal mdout1_20_4: std_logic; - signal mdout1_19_4: std_logic; - signal mdout1_18_4: std_logic; - signal mdout1_17_4: std_logic; - signal mdout1_16_4: std_logic; - signal mdout1_15_4: std_logic; - signal mdout1_14_4: std_logic; - signal mdout1_13_4: std_logic; - signal mdout1_12_4: std_logic; - signal mdout1_11_4: std_logic; - signal mdout1_10_4: std_logic; - signal mdout1_9_4: std_logic; - signal mdout1_8_4: std_logic; - signal mdout1_7_4: std_logic; - signal mdout1_6_4: std_logic; - signal mdout1_5_4: std_logic; - signal mdout1_4_4: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_31_5: std_logic; - signal mdout1_30_5: std_logic; - signal mdout1_29_5: std_logic; - signal mdout1_28_5: std_logic; - signal mdout1_27_5: std_logic; - signal mdout1_26_5: std_logic; - signal mdout1_25_5: std_logic; - signal mdout1_24_5: std_logic; - signal mdout1_23_5: std_logic; - signal mdout1_22_5: std_logic; - signal mdout1_21_5: std_logic; - signal mdout1_20_5: std_logic; - signal mdout1_19_5: std_logic; - signal mdout1_18_5: std_logic; - signal mdout1_17_5: std_logic; - signal mdout1_16_5: std_logic; - signal mdout1_15_5: std_logic; - signal mdout1_14_5: std_logic; - signal mdout1_13_5: std_logic; - signal mdout1_12_5: std_logic; - signal mdout1_11_5: std_logic; - signal mdout1_10_5: std_logic; - signal mdout1_9_5: std_logic; - signal mdout1_8_5: std_logic; - signal mdout1_7_5: std_logic; - signal mdout1_6_5: std_logic; - signal mdout1_5_5: std_logic; - signal mdout1_4_5: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_31_6: std_logic; - signal mdout1_30_6: std_logic; - signal mdout1_29_6: std_logic; - signal mdout1_28_6: std_logic; - signal mdout1_27_6: std_logic; - signal mdout1_26_6: std_logic; - signal mdout1_25_6: std_logic; - signal mdout1_24_6: std_logic; - signal mdout1_23_6: std_logic; - signal mdout1_22_6: std_logic; - signal mdout1_21_6: std_logic; - signal mdout1_20_6: std_logic; - signal mdout1_19_6: std_logic; - signal mdout1_18_6: std_logic; - signal mdout1_17_6: std_logic; - signal mdout1_16_6: std_logic; - signal mdout1_15_6: std_logic; - signal mdout1_14_6: std_logic; - signal mdout1_13_6: std_logic; - signal mdout1_12_6: std_logic; - signal mdout1_11_6: std_logic; - signal mdout1_10_6: std_logic; - signal mdout1_9_6: std_logic; - signal mdout1_8_6: std_logic; - signal mdout1_7_6: std_logic; - signal mdout1_6_6: std_logic; - signal mdout1_5_6: std_logic; - signal mdout1_4_6: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_31_7: std_logic; - signal mdout1_30_7: std_logic; - signal mdout1_29_7: std_logic; - signal mdout1_28_7: std_logic; - signal mdout1_27_7: std_logic; - signal mdout1_26_7: std_logic; - signal mdout1_25_7: std_logic; - signal mdout1_24_7: std_logic; - signal mdout1_23_7: std_logic; - signal mdout1_22_7: std_logic; - signal mdout1_21_7: std_logic; - signal mdout1_20_7: std_logic; - signal mdout1_19_7: std_logic; - signal mdout1_18_7: std_logic; - signal mdout1_17_7: std_logic; - signal mdout1_16_7: std_logic; - signal mdout1_15_7: std_logic; - signal mdout1_14_7: std_logic; - signal mdout1_13_7: std_logic; - signal mdout1_12_7: std_logic; - signal mdout1_11_7: std_logic; - signal mdout1_10_7: std_logic; - signal mdout1_9_7: std_logic; - signal mdout1_8_7: std_logic; - signal mdout1_7_7: std_logic; - signal mdout1_6_7: std_logic; - signal mdout1_5_7: std_logic; - signal mdout1_4_7: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal rptr_13_ff: std_logic; - signal rptr_12_ff: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_31_8: std_logic; - signal mdout1_30_8: std_logic; - signal mdout1_29_8: std_logic; - signal mdout1_28_8: std_logic; - signal mdout1_27_8: std_logic; - signal mdout1_26_8: std_logic; - signal mdout1_25_8: std_logic; - signal mdout1_24_8: std_logic; - signal mdout1_23_8: std_logic; - signal mdout1_22_8: std_logic; - signal mdout1_21_8: std_logic; - signal mdout1_20_8: std_logic; - signal mdout1_19_8: std_logic; - signal mdout1_18_8: std_logic; - signal mdout1_17_8: std_logic; - signal mdout1_16_8: std_logic; - signal mdout1_15_8: std_logic; - signal mdout1_14_8: std_logic; - signal mdout1_13_8: std_logic; - signal mdout1_12_8: std_logic; - signal mdout1_11_8: std_logic; - signal mdout1_10_8: std_logic; - signal mdout1_9_8: std_logic; - signal mdout1_8_8: std_logic; - signal mdout1_7_8: std_logic; - signal mdout1_6_8: std_logic; - signal mdout1_5_8: std_logic; - signal mdout1_4_8: std_logic; - signal mdout1_3_8: std_logic; - signal mdout1_2_8: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal wcount_r12: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_2: std_logic; - signal wcount_r14: std_logic; - signal wcount_r15: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal rcount_w12: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_3: std_logic; - signal rcount_w14: std_logic; - signal rcount_w15: std_logic; - signal wcount_14: std_logic; - signal wcount_15: std_logic; - signal co7_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX321 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; D4: in std_logic; D5: in std_logic; - D6: in std_logic; D7: in std_logic; D8: in std_logic; - D9: in std_logic; D10: in std_logic; D11: in std_logic; - D12: in std_logic; D13: in std_logic; D14: in std_logic; - D15: in std_logic; D16: in std_logic; D17: in std_logic; - D18: in std_logic; D19: in std_logic; D20: in std_logic; - D21: in std_logic; D22: in std_logic; D23: in std_logic; - D24: in std_logic; D25: in std_logic; D26: in std_logic; - D27: in std_logic; D28: in std_logic; D29: in std_logic; - D30: in std_logic; D31: in std_logic; SD1: in std_logic; - SD2: in std_logic; SD3: in std_logic; SD4: in std_logic; - SD5: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute RESETMODE of pdp_ram_0_0_31 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_0_30 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_30 : label is ""; - attribute RESETMODE of pdp_ram_1_0_30 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_0_29 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_29 : label is ""; - attribute RESETMODE of pdp_ram_2_0_29 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_0_28 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_28 : label is ""; - attribute RESETMODE of pdp_ram_3_0_28 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_4_0_27 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_4_0_27 : label is ""; - attribute RESETMODE of pdp_ram_4_0_27 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_5_0_26 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_5_0_26 : label is ""; - attribute RESETMODE of pdp_ram_5_0_26 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_6_0_25 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_6_0_25 : label is ""; - attribute RESETMODE of pdp_ram_6_0_25 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_7_0_24 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_7_0_24 : label is ""; - attribute RESETMODE of pdp_ram_7_0_24 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_8_0_23 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_8_0_23 : label is ""; - attribute RESETMODE of pdp_ram_8_0_23 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_9_0_22 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_9_0_22 : label is ""; - attribute RESETMODE of pdp_ram_9_0_22 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_10_0_21 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_10_0_21 : label is ""; - attribute RESETMODE of pdp_ram_10_0_21 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_11_0_20 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_11_0_20 : label is ""; - attribute RESETMODE of pdp_ram_11_0_20 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_12_0_19 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_12_0_19 : label is ""; - attribute RESETMODE of pdp_ram_12_0_19 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_13_0_18 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_13_0_18 : label is ""; - attribute RESETMODE of pdp_ram_13_0_18 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_14_0_17 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_14_0_17 : label is ""; - attribute RESETMODE of pdp_ram_14_0_17 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_15_0_16 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_15_0_16 : label is ""; - attribute RESETMODE of pdp_ram_15_0_16 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_16_0_15 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_16_0_15 : label is ""; - attribute RESETMODE of pdp_ram_16_0_15 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_17_0_14 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_17_0_14 : label is ""; - attribute RESETMODE of pdp_ram_17_0_14 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_18_0_13 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_18_0_13 : label is ""; - attribute RESETMODE of pdp_ram_18_0_13 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_19_0_12 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_19_0_12 : label is ""; - attribute RESETMODE of pdp_ram_19_0_12 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_20_0_11 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_20_0_11 : label is ""; - attribute RESETMODE of pdp_ram_20_0_11 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_21_0_10 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_21_0_10 : label is ""; - attribute RESETMODE of pdp_ram_21_0_10 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_22_0_9 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_22_0_9 : label is ""; - attribute RESETMODE of pdp_ram_22_0_9 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_23_0_8 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_23_0_8 : label is ""; - attribute RESETMODE of pdp_ram_23_0_8 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_24_0_7 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_24_0_7 : label is ""; - attribute RESETMODE of pdp_ram_24_0_7 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_25_0_6 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_25_0_6 : label is ""; - attribute RESETMODE of pdp_ram_25_0_6 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_26_0_5 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_26_0_5 : label is ""; - attribute RESETMODE of pdp_ram_26_0_5 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_27_0_4 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_27_0_4 : label is ""; - attribute RESETMODE of pdp_ram_27_0_4 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_28_0_3 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_28_0_3 : label is ""; - attribute RESETMODE of pdp_ram_28_0_3 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_29_0_2 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_29_0_2 : label is ""; - attribute RESETMODE of pdp_ram_29_0_2 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_30_0_1 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_30_0_1 : label is ""; - attribute RESETMODE of pdp_ram_30_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_31_0_0 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_31_0_0 : label is ""; - attribute RESETMODE of pdp_ram_31_0_0 : label is "SYNC"; - attribute GSR of FF_176 : label is "ENABLED"; - attribute GSR of FF_175 : label is "ENABLED"; - attribute GSR of FF_174 : label is "ENABLED"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t34: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_11: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t33: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_10: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t32: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t31: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t30: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t29: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t28: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t27: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t26: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t25: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t24: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t23: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t22: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t21: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t20: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t19: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t18: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t17: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t16: XOR2 - port map (A=>wcount_15, B=>wcount_16, Z=>w_gdata_15); - - XOR2_t15: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t14: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t13: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t12: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t11: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t10: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t9: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t8: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t7: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t6: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t5: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t4: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t3: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t2: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t1: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t0: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - INV_9: INV - port map (A=>wptr_11, Z=>wptr_11_inv); - - INV_8: INV - port map (A=>wptr_12, Z=>wptr_12_inv); - - INV_7: INV - port map (A=>wptr_13, Z=>wptr_13_inv); - - INV_6: INV - port map (A=>wptr_14, Z=>wptr_14_inv); - - INV_5: INV - port map (A=>wptr_15, Z=>wptr_15_inv); - - LUT4_187: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet); - - LUT4_186: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec0_p00); - - INV_4: INV - port map (A=>rptr_11, Z=>rptr_11_inv); - - INV_3: INV - port map (A=>rptr_12, Z=>rptr_12_inv); - - INV_2: INV - port map (A=>rptr_13, Z=>rptr_13_inv); - - INV_1: INV - port map (A=>rptr_14, Z=>rptr_14_inv); - - INV_0: INV - port map (A=>rptr_15, Z=>rptr_15_inv); - - LUT4_185: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_1); - - LUT4_184: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_1, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec1_r10); - - LUT4_183: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_2); - - LUT4_182: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_2, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec2_p01); - - LUT4_181: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_3); - - LUT4_180: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_3, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec3_r11); - - LUT4_179: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_4); - - LUT4_178: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_4, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec4_p02); - - LUT4_177: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_5); - - LUT4_176: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_5, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec5_r12); - - LUT4_175: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_6); - - LUT4_174: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_6, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec6_p03); - - LUT4_173: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_7); - - LUT4_172: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_7, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec7_r13); - - LUT4_171: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_8); - - LUT4_170: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_8, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec8_p04); - - LUT4_169: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_9); - - LUT4_168: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_9, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec9_r14); - - LUT4_167: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_10); - - LUT4_166: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_10, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec10_p05); - - LUT4_165: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_11); - - LUT4_164: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_11, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec11_r15); - - LUT4_163: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_12); - - LUT4_162: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_12, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec12_p06); - - LUT4_161: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_13); - - LUT4_160: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_13, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec13_r16); - - LUT4_159: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_14); - - LUT4_158: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_14, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec14_p07); - - LUT4_157: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_15); - - LUT4_156: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_15, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec15_r17); - - LUT4_155: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_16); - - LUT4_154: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_16, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec16_p08); - - LUT4_153: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_17); - - LUT4_152: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_17, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec17_r18); - - LUT4_151: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_18); - - LUT4_150: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_18, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec18_p09); - - LUT4_149: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_19); - - LUT4_148: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_19, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec19_r19); - - LUT4_147: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_20); - - LUT4_146: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_20, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec20_p010); - - LUT4_145: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_21); - - LUT4_144: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_21, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec21_r110); - - LUT4_143: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_22); - - LUT4_142: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_22, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec22_p011); - - LUT4_141: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_23); - - LUT4_140: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_23, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec23_r111); - - LUT4_139: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_24); - - LUT4_138: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_24, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec24_p012); - - LUT4_137: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_25); - - LUT4_136: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_25, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec25_r112); - - LUT4_135: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_26); - - LUT4_134: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_26, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec26_p013); - - LUT4_133: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_27); - - LUT4_132: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_27, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec27_r113); - - LUT4_131: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_28); - - LUT4_130: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_28, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec28_p014); - - LUT4_129: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_29); - - LUT4_128: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_29, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec29_r114); - - LUT4_127: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, AD0=>wptr_14, - DO0=>func_and_inet_30); - - LUT4_126: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_30, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec30_p015); - - LUT4_125: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_31); - - LUT4_124: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_31, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec31_r115); - - LUT4_123: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_32); - - LUT4_122: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_32, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec32_p016); - - LUT4_121: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_33); - - LUT4_120: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_33, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec33_r116); - - LUT4_119: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_34); - - LUT4_118: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_34, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec34_p017); - - LUT4_117: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_35); - - LUT4_116: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_35, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec35_r117); - - LUT4_115: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_36); - - LUT4_114: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_36, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec36_p018); - - LUT4_113: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_37); - - LUT4_112: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_37, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec37_r118); - - LUT4_111: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_38); - - LUT4_110: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_38, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec38_p019); - - LUT4_109: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_39); - - LUT4_108: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_39, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec39_r119); - - LUT4_107: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_40); - - LUT4_106: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_40, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec40_p020); - - LUT4_105: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_41); - - LUT4_104: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_41, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec41_r120); - - LUT4_103: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_42); - - LUT4_102: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_42, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec42_p021); - - LUT4_101: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_43); - - LUT4_100: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_43, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec43_r121); - - LUT4_99: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_44); - - LUT4_98: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_44, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec44_p022); - - LUT4_97: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_45); - - LUT4_96: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_45, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec45_r122); - - LUT4_95: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_46); - - LUT4_94: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_46, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec46_p023); - - LUT4_93: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_47); - - LUT4_92: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_47, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec47_r123); - - LUT4_91: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_48); - - LUT4_90: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_48, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec48_p024); - - LUT4_89: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_49); - - LUT4_88: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_49, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec49_r124); - - LUT4_87: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_50); - - LUT4_86: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_50, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec50_p025); - - LUT4_85: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_51); - - LUT4_84: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_51, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec51_r125); - - LUT4_83: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_52); - - LUT4_82: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_52, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec52_p026); - - LUT4_81: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_53); - - LUT4_80: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_53, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec53_r126); - - LUT4_79: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_54); - - LUT4_78: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_54, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec54_p027); - - LUT4_77: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_55); - - LUT4_76: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_55, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec55_r127); - - LUT4_75: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_56); - - LUT4_74: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_56, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec56_p028); - - LUT4_73: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_57); - - LUT4_72: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_57, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec57_r128); - - LUT4_71: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_58); - - LUT4_70: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_58, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec58_p029); - - LUT4_69: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_59); - - LUT4_68: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_59, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec59_r129); - - LUT4_67: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_60); - - LUT4_66: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_60, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec60_p030); - - LUT4_65: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_61); - - LUT4_64: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_61, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec61_r130); - - LUT4_63: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, AD0=>wptr_14, - DO0=>func_and_inet_62); - - LUT4_62: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_62, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec62_p031); - - LUT4_61: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_63); - - LUT4_60: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_63, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec63_r131); - - LUT4_59: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>w_gcount_r216, - DO0=>w_g2b_xor_cluster_0); - - LUT4_58: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_1); - - LUT4_57: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_2); - - LUT4_56: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_3); - - LUT4_55: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r215, AD2=>w_gcount_r216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r15); - - LUT4_54: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, - AD1=>w_gcount_r216, AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_53: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>wcount_r15, DO0=>wcount_r12); - - LUT4_52: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_51: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>w_g2b_xor_cluster_0, - DO0=>wcount_r10); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r28, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, DO0=>wcount_r7); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r6); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r24, DO0=>wcount_r4); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r3); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r2); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r1); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>func_xor_inet); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>func_xor_inet_1); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, DO0=>func_xor_inet_2); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, DO0=>func_xor_inet_3); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet_6); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_7); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_8); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_9); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_10); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_6, AD2=>func_xor_inet_7, - AD1=>func_xor_inet_8, AD0=>func_xor_inet_9, - DO0=>func_xor_inet_11); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_11, AD2=>func_xor_inet_10, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_31: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec0_p00, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec1_r10, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, DOB1=>mdout1_0_1, - DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, DOB4=>mdout1_0_4, - DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, DOB7=>mdout1_0_7, - DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_30: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec2_p01, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec3_r11, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, DOB1=>mdout1_1_1, - DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, DOB4=>mdout1_1_4, - DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, DOB7=>mdout1_1_7, - DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_29: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec4_p02, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec5_r12, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_2_0, DOB1=>mdout1_2_1, - DOB2=>mdout1_2_2, DOB3=>mdout1_2_3, DOB4=>mdout1_2_4, - DOB5=>mdout1_2_5, DOB6=>mdout1_2_6, DOB7=>mdout1_2_7, - DOB8=>mdout1_2_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_28: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec6_p03, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec7_r13, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_3_0, DOB1=>mdout1_3_1, - DOB2=>mdout1_3_2, DOB3=>mdout1_3_3, DOB4=>mdout1_3_4, - DOB5=>mdout1_3_5, DOB6=>mdout1_3_6, DOB7=>mdout1_3_7, - DOB8=>mdout1_3_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_4_0_27: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec8_p04, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec9_r14, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_4_0, DOB1=>mdout1_4_1, - DOB2=>mdout1_4_2, DOB3=>mdout1_4_3, DOB4=>mdout1_4_4, - DOB5=>mdout1_4_5, DOB6=>mdout1_4_6, DOB7=>mdout1_4_7, - DOB8=>mdout1_4_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_5_0_26: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec10_p05, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec11_r15, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_5_0, DOB1=>mdout1_5_1, - DOB2=>mdout1_5_2, DOB3=>mdout1_5_3, DOB4=>mdout1_5_4, - DOB5=>mdout1_5_5, DOB6=>mdout1_5_6, DOB7=>mdout1_5_7, - DOB8=>mdout1_5_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_6_0_25: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec12_p06, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec13_r16, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_6_0, DOB1=>mdout1_6_1, - DOB2=>mdout1_6_2, DOB3=>mdout1_6_3, DOB4=>mdout1_6_4, - DOB5=>mdout1_6_5, DOB6=>mdout1_6_6, DOB7=>mdout1_6_7, - DOB8=>mdout1_6_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_7_0_24: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec14_p07, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec15_r17, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_7_0, DOB1=>mdout1_7_1, - DOB2=>mdout1_7_2, DOB3=>mdout1_7_3, DOB4=>mdout1_7_4, - DOB5=>mdout1_7_5, DOB6=>mdout1_7_6, DOB7=>mdout1_7_7, - DOB8=>mdout1_7_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_8_0_23: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec16_p08, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec17_r18, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_8_0, DOB1=>mdout1_8_1, - DOB2=>mdout1_8_2, DOB3=>mdout1_8_3, DOB4=>mdout1_8_4, - DOB5=>mdout1_8_5, DOB6=>mdout1_8_6, DOB7=>mdout1_8_7, - DOB8=>mdout1_8_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_9_0_22: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec18_p09, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec19_r19, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_9_0, DOB1=>mdout1_9_1, - DOB2=>mdout1_9_2, DOB3=>mdout1_9_3, DOB4=>mdout1_9_4, - DOB5=>mdout1_9_5, DOB6=>mdout1_9_6, DOB7=>mdout1_9_7, - DOB8=>mdout1_9_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_10_0_21: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec20_p010, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec21_r110, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_10_0, - DOB1=>mdout1_10_1, DOB2=>mdout1_10_2, DOB3=>mdout1_10_3, - DOB4=>mdout1_10_4, DOB5=>mdout1_10_5, DOB6=>mdout1_10_6, - DOB7=>mdout1_10_7, DOB8=>mdout1_10_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_11_0_20: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec22_p011, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec23_r111, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_11_0, - DOB1=>mdout1_11_1, DOB2=>mdout1_11_2, DOB3=>mdout1_11_3, - DOB4=>mdout1_11_4, DOB5=>mdout1_11_5, DOB6=>mdout1_11_6, - DOB7=>mdout1_11_7, DOB8=>mdout1_11_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_12_0_19: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec24_p012, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec25_r112, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_12_0, - DOB1=>mdout1_12_1, DOB2=>mdout1_12_2, DOB3=>mdout1_12_3, - DOB4=>mdout1_12_4, DOB5=>mdout1_12_5, DOB6=>mdout1_12_6, - DOB7=>mdout1_12_7, DOB8=>mdout1_12_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_13_0_18: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec26_p013, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec27_r113, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_13_0, - DOB1=>mdout1_13_1, DOB2=>mdout1_13_2, DOB3=>mdout1_13_3, - DOB4=>mdout1_13_4, DOB5=>mdout1_13_5, DOB6=>mdout1_13_6, - DOB7=>mdout1_13_7, DOB8=>mdout1_13_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_14_0_17: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec28_p014, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec29_r114, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_14_0, - DOB1=>mdout1_14_1, DOB2=>mdout1_14_2, DOB3=>mdout1_14_3, - DOB4=>mdout1_14_4, DOB5=>mdout1_14_5, DOB6=>mdout1_14_6, - DOB7=>mdout1_14_7, DOB8=>mdout1_14_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_15_0_16: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec30_p015, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec31_r115, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_15_0, - DOB1=>mdout1_15_1, DOB2=>mdout1_15_2, DOB3=>mdout1_15_3, - DOB4=>mdout1_15_4, DOB5=>mdout1_15_5, DOB6=>mdout1_15_6, - DOB7=>mdout1_15_7, DOB8=>mdout1_15_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_16_0_15: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec32_p016, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec33_r116, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_16_0, - DOB1=>mdout1_16_1, DOB2=>mdout1_16_2, DOB3=>mdout1_16_3, - DOB4=>mdout1_16_4, DOB5=>mdout1_16_5, DOB6=>mdout1_16_6, - DOB7=>mdout1_16_7, DOB8=>mdout1_16_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_17_0_14: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec34_p017, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec35_r117, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_17_0, - DOB1=>mdout1_17_1, DOB2=>mdout1_17_2, DOB3=>mdout1_17_3, - DOB4=>mdout1_17_4, DOB5=>mdout1_17_5, DOB6=>mdout1_17_6, - DOB7=>mdout1_17_7, DOB8=>mdout1_17_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_18_0_13: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec36_p018, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec37_r118, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_18_0, - DOB1=>mdout1_18_1, DOB2=>mdout1_18_2, DOB3=>mdout1_18_3, - DOB4=>mdout1_18_4, DOB5=>mdout1_18_5, DOB6=>mdout1_18_6, - DOB7=>mdout1_18_7, DOB8=>mdout1_18_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_19_0_12: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec38_p019, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec39_r119, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_19_0, - DOB1=>mdout1_19_1, DOB2=>mdout1_19_2, DOB3=>mdout1_19_3, - DOB4=>mdout1_19_4, DOB5=>mdout1_19_5, DOB6=>mdout1_19_6, - DOB7=>mdout1_19_7, DOB8=>mdout1_19_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_20_0_11: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec40_p020, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec41_r120, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_20_0, - DOB1=>mdout1_20_1, DOB2=>mdout1_20_2, DOB3=>mdout1_20_3, - DOB4=>mdout1_20_4, DOB5=>mdout1_20_5, DOB6=>mdout1_20_6, - DOB7=>mdout1_20_7, DOB8=>mdout1_20_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_21_0_10: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec42_p021, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec43_r121, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_21_0, - DOB1=>mdout1_21_1, DOB2=>mdout1_21_2, DOB3=>mdout1_21_3, - DOB4=>mdout1_21_4, DOB5=>mdout1_21_5, DOB6=>mdout1_21_6, - DOB7=>mdout1_21_7, DOB8=>mdout1_21_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_22_0_9: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec44_p022, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec45_r122, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_22_0, - DOB1=>mdout1_22_1, DOB2=>mdout1_22_2, DOB3=>mdout1_22_3, - DOB4=>mdout1_22_4, DOB5=>mdout1_22_5, DOB6=>mdout1_22_6, - DOB7=>mdout1_22_7, DOB8=>mdout1_22_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_23_0_8: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec46_p023, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec47_r123, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_23_0, - DOB1=>mdout1_23_1, DOB2=>mdout1_23_2, DOB3=>mdout1_23_3, - DOB4=>mdout1_23_4, DOB5=>mdout1_23_5, DOB6=>mdout1_23_6, - DOB7=>mdout1_23_7, DOB8=>mdout1_23_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_24_0_7: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec48_p024, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec49_r124, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_24_0, - DOB1=>mdout1_24_1, DOB2=>mdout1_24_2, DOB3=>mdout1_24_3, - DOB4=>mdout1_24_4, DOB5=>mdout1_24_5, DOB6=>mdout1_24_6, - DOB7=>mdout1_24_7, DOB8=>mdout1_24_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_25_0_6: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec50_p025, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec51_r125, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_25_0, - DOB1=>mdout1_25_1, DOB2=>mdout1_25_2, DOB3=>mdout1_25_3, - DOB4=>mdout1_25_4, DOB5=>mdout1_25_5, DOB6=>mdout1_25_6, - DOB7=>mdout1_25_7, DOB8=>mdout1_25_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_26_0_5: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec52_p026, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec53_r126, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_26_0, - DOB1=>mdout1_26_1, DOB2=>mdout1_26_2, DOB3=>mdout1_26_3, - DOB4=>mdout1_26_4, DOB5=>mdout1_26_5, DOB6=>mdout1_26_6, - DOB7=>mdout1_26_7, DOB8=>mdout1_26_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_27_0_4: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec54_p027, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec55_r127, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_27_0, - DOB1=>mdout1_27_1, DOB2=>mdout1_27_2, DOB3=>mdout1_27_3, - DOB4=>mdout1_27_4, DOB5=>mdout1_27_5, DOB6=>mdout1_27_6, - DOB7=>mdout1_27_7, DOB8=>mdout1_27_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_28_0_3: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec56_p028, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec57_r128, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_28_0, - DOB1=>mdout1_28_1, DOB2=>mdout1_28_2, DOB3=>mdout1_28_3, - DOB4=>mdout1_28_4, DOB5=>mdout1_28_5, DOB6=>mdout1_28_6, - DOB7=>mdout1_28_7, DOB8=>mdout1_28_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_29_0_2: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec58_p029, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec59_r129, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_29_0, - DOB1=>mdout1_29_1, DOB2=>mdout1_29_2, DOB3=>mdout1_29_3, - DOB4=>mdout1_29_4, DOB5=>mdout1_29_5, DOB6=>mdout1_29_6, - DOB7=>mdout1_29_7, DOB8=>mdout1_29_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_30_0_1: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec60_p030, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec61_r130, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_30_0, - DOB1=>mdout1_30_1, DOB2=>mdout1_30_2, DOB3=>mdout1_30_3, - DOB4=>mdout1_30_4, DOB5=>mdout1_30_5, DOB6=>mdout1_30_6, - DOB7=>mdout1_30_7, DOB8=>mdout1_30_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_31_0_0: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>dec62_p031, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, - ADB5=>rptr_2, ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, - ADB9=>rptr_6, ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, - ADB13=>rptr_10, CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, - WEB=>scuba_vlo, CSB0=>dec63_r131, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, DOA1=>open, - DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, DOA6=>open, - DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>mdout1_31_0, - DOB1=>mdout1_31_1, DOB2=>mdout1_31_2, DOB3=>mdout1_31_3, - DOB4=>mdout1_31_4, DOB5=>mdout1_31_5, DOB6=>mdout1_31_6, - DOB7=>mdout1_31_7, DOB8=>mdout1_31_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_176: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_175: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_174: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_173: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_172: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_171: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_170: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_169: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_168: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_167: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_166: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_165: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_164: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_163: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_162: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_161: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_160: FD1P3DX - port map (D=>iwcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_16); - - FF_159: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_158: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_157: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_156: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_155: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_154: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_153: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_152: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_151: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_150: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_149: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_148: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_147: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_146: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_145: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_144: FD1P3DX - port map (D=>w_gdata_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_143: FD1P3DX - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_16); - - FF_142: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_141: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_140: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_139: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_138: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_137: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_136: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_135: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_134: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_133: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_132: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_131: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_130: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_129: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_128: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_127: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_126: FD1P3DX - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_16); - - FF_125: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_124: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_123: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_122: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_121: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_120: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_119: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_118: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_117: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_116: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_115: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_114: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_113: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_112: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_111: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_110: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_109: FD1P3DX - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_108: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_107: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_106: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_105: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_104: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_103: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_102: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_101: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_100: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_99: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_98: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_97: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_96: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_95: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_94: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_93: FD1P3DX - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_92: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_91: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_90: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_89: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_88: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_87: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_86: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_85: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_84: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_83: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_82: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_81: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_80: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_79: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_78: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_77: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_76: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_75: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_74: FD1P3DX - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_73: FD1P3DX - port map (D=>rptr_12, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_12_ff); - - FF_72: FD1P3DX - port map (D=>rptr_13, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_13_ff); - - FF_71: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_70: FD1P3DX - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_69: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_68: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_67: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_66: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_65: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_64: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_63: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_62: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_61: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_60: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_59: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_58: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_57: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_56: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_55: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_54: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_53: FD1S3DX - port map (D=>w_gcount_16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r16); - - FF_52: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_51: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_50: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_49: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_48: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_47: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_46: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_45: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_44: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_43: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_42: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_41: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_40: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_39: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_38: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_37: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_36: FD1S3DX - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_35: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_34: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_33: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_32: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_31: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_30: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_29: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_28: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_27: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_26: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_25: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_24: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_23: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_22: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_21: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_20: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_19: FD1S3DX - port map (D=>w_gcount_r16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r216); - - FF_18: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_17: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_16: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_15: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_14: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_13: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_12: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_11: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_10: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_9: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_8: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_7: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_6: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_5: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_4: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_3: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_2: FD1S3DX - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - w_gctr_8: CU2 - port map (CI=>co7, PC0=>wcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>iwcount_16, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8_1, - NC0=>ircount_16, NC1=>open); - - mux_8: MUX321 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, D4=>mdout1_4_0, D5=>mdout1_5_0, - D6=>mdout1_6_0, D7=>mdout1_7_0, D8=>mdout1_8_0, - D9=>mdout1_9_0, D10=>mdout1_10_0, D11=>mdout1_11_0, - D12=>mdout1_12_0, D13=>mdout1_13_0, D14=>mdout1_14_0, - D15=>mdout1_15_0, D16=>mdout1_16_0, D17=>mdout1_17_0, - D18=>mdout1_18_0, D19=>mdout1_19_0, D20=>mdout1_20_0, - D21=>mdout1_21_0, D22=>mdout1_22_0, D23=>mdout1_23_0, - D24=>mdout1_24_0, D25=>mdout1_25_0, D26=>mdout1_26_0, - D27=>mdout1_27_0, D28=>mdout1_28_0, D29=>mdout1_29_0, - D30=>mdout1_30_0, D31=>mdout1_31_0, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(0)); - - mux_7: MUX321 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, D4=>mdout1_4_1, D5=>mdout1_5_1, - D6=>mdout1_6_1, D7=>mdout1_7_1, D8=>mdout1_8_1, - D9=>mdout1_9_1, D10=>mdout1_10_1, D11=>mdout1_11_1, - D12=>mdout1_12_1, D13=>mdout1_13_1, D14=>mdout1_14_1, - D15=>mdout1_15_1, D16=>mdout1_16_1, D17=>mdout1_17_1, - D18=>mdout1_18_1, D19=>mdout1_19_1, D20=>mdout1_20_1, - D21=>mdout1_21_1, D22=>mdout1_22_1, D23=>mdout1_23_1, - D24=>mdout1_24_1, D25=>mdout1_25_1, D26=>mdout1_26_1, - D27=>mdout1_27_1, D28=>mdout1_28_1, D29=>mdout1_29_1, - D30=>mdout1_30_1, D31=>mdout1_31_1, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(1)); - - mux_6: MUX321 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, D4=>mdout1_4_2, D5=>mdout1_5_2, - D6=>mdout1_6_2, D7=>mdout1_7_2, D8=>mdout1_8_2, - D9=>mdout1_9_2, D10=>mdout1_10_2, D11=>mdout1_11_2, - D12=>mdout1_12_2, D13=>mdout1_13_2, D14=>mdout1_14_2, - D15=>mdout1_15_2, D16=>mdout1_16_2, D17=>mdout1_17_2, - D18=>mdout1_18_2, D19=>mdout1_19_2, D20=>mdout1_20_2, - D21=>mdout1_21_2, D22=>mdout1_22_2, D23=>mdout1_23_2, - D24=>mdout1_24_2, D25=>mdout1_25_2, D26=>mdout1_26_2, - D27=>mdout1_27_2, D28=>mdout1_28_2, D29=>mdout1_29_2, - D30=>mdout1_30_2, D31=>mdout1_31_2, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(2)); - - mux_5: MUX321 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, D4=>mdout1_4_3, D5=>mdout1_5_3, - D6=>mdout1_6_3, D7=>mdout1_7_3, D8=>mdout1_8_3, - D9=>mdout1_9_3, D10=>mdout1_10_3, D11=>mdout1_11_3, - D12=>mdout1_12_3, D13=>mdout1_13_3, D14=>mdout1_14_3, - D15=>mdout1_15_3, D16=>mdout1_16_3, D17=>mdout1_17_3, - D18=>mdout1_18_3, D19=>mdout1_19_3, D20=>mdout1_20_3, - D21=>mdout1_21_3, D22=>mdout1_22_3, D23=>mdout1_23_3, - D24=>mdout1_24_3, D25=>mdout1_25_3, D26=>mdout1_26_3, - D27=>mdout1_27_3, D28=>mdout1_28_3, D29=>mdout1_29_3, - D30=>mdout1_30_3, D31=>mdout1_31_3, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(3)); - - mux_4: MUX321 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, D4=>mdout1_4_4, D5=>mdout1_5_4, - D6=>mdout1_6_4, D7=>mdout1_7_4, D8=>mdout1_8_4, - D9=>mdout1_9_4, D10=>mdout1_10_4, D11=>mdout1_11_4, - D12=>mdout1_12_4, D13=>mdout1_13_4, D14=>mdout1_14_4, - D15=>mdout1_15_4, D16=>mdout1_16_4, D17=>mdout1_17_4, - D18=>mdout1_18_4, D19=>mdout1_19_4, D20=>mdout1_20_4, - D21=>mdout1_21_4, D22=>mdout1_22_4, D23=>mdout1_23_4, - D24=>mdout1_24_4, D25=>mdout1_25_4, D26=>mdout1_26_4, - D27=>mdout1_27_4, D28=>mdout1_28_4, D29=>mdout1_29_4, - D30=>mdout1_30_4, D31=>mdout1_31_4, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(4)); - - mux_3: MUX321 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, D4=>mdout1_4_5, D5=>mdout1_5_5, - D6=>mdout1_6_5, D7=>mdout1_7_5, D8=>mdout1_8_5, - D9=>mdout1_9_5, D10=>mdout1_10_5, D11=>mdout1_11_5, - D12=>mdout1_12_5, D13=>mdout1_13_5, D14=>mdout1_14_5, - D15=>mdout1_15_5, D16=>mdout1_16_5, D17=>mdout1_17_5, - D18=>mdout1_18_5, D19=>mdout1_19_5, D20=>mdout1_20_5, - D21=>mdout1_21_5, D22=>mdout1_22_5, D23=>mdout1_23_5, - D24=>mdout1_24_5, D25=>mdout1_25_5, D26=>mdout1_26_5, - D27=>mdout1_27_5, D28=>mdout1_28_5, D29=>mdout1_29_5, - D30=>mdout1_30_5, D31=>mdout1_31_5, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(5)); - - mux_2: MUX321 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, D4=>mdout1_4_6, D5=>mdout1_5_6, - D6=>mdout1_6_6, D7=>mdout1_7_6, D8=>mdout1_8_6, - D9=>mdout1_9_6, D10=>mdout1_10_6, D11=>mdout1_11_6, - D12=>mdout1_12_6, D13=>mdout1_13_6, D14=>mdout1_14_6, - D15=>mdout1_15_6, D16=>mdout1_16_6, D17=>mdout1_17_6, - D18=>mdout1_18_6, D19=>mdout1_19_6, D20=>mdout1_20_6, - D21=>mdout1_21_6, D22=>mdout1_22_6, D23=>mdout1_23_6, - D24=>mdout1_24_6, D25=>mdout1_25_6, D26=>mdout1_26_6, - D27=>mdout1_27_6, D28=>mdout1_28_6, D29=>mdout1_29_6, - D30=>mdout1_30_6, D31=>mdout1_31_6, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(6)); - - mux_1: MUX321 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, D4=>mdout1_4_7, D5=>mdout1_5_7, - D6=>mdout1_6_7, D7=>mdout1_7_7, D8=>mdout1_8_7, - D9=>mdout1_9_7, D10=>mdout1_10_7, D11=>mdout1_11_7, - D12=>mdout1_12_7, D13=>mdout1_13_7, D14=>mdout1_14_7, - D15=>mdout1_15_7, D16=>mdout1_16_7, D17=>mdout1_17_7, - D18=>mdout1_18_7, D19=>mdout1_19_7, D20=>mdout1_20_7, - D21=>mdout1_21_7, D22=>mdout1_22_7, D23=>mdout1_23_7, - D24=>mdout1_24_7, D25=>mdout1_25_7, D26=>mdout1_26_7, - D27=>mdout1_27_7, D28=>mdout1_28_7, D29=>mdout1_29_7, - D30=>mdout1_30_7, D31=>mdout1_31_7, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(7)); - - mux_0: MUX321 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, D2=>mdout1_2_8, - D3=>mdout1_3_8, D4=>mdout1_4_8, D5=>mdout1_5_8, - D6=>mdout1_6_8, D7=>mdout1_7_8, D8=>mdout1_8_8, - D9=>mdout1_9_8, D10=>mdout1_10_8, D11=>mdout1_11_8, - D12=>mdout1_12_8, D13=>mdout1_13_8, D14=>mdout1_14_8, - D15=>mdout1_15_8, D16=>mdout1_16_8, D17=>mdout1_17_8, - D18=>mdout1_18_8, D19=>mdout1_19_8, D20=>mdout1_20_8, - D21=>mdout1_21_8, D22=>mdout1_22_8, D23=>mdout1_23_8, - D24=>mdout1_24_8, D25=>mdout1_25_8, D26=>mdout1_26_8, - D27=>mdout1_27_8, D28=>mdout1_28_8, D29=>mdout1_29_8, - D30=>mdout1_30_8, D31=>mdout1_31_8, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(8)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, - B1=>w_g2b_xor_cluster_0, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r14, - B1=>wcount_r15, CI=>co6_2, GE=>co7_2); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>wcount_15, B0=>rcount_w14, - B1=>rcount_w15, CI=>co6_3, GE=>co7_3); - - full_cmp_8: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co7_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_64kx9 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX321 use entity ecp3.MUX321(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9_generate.log b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9_generate.log deleted file mode 100644 index 6860ef8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:23:21 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n fifo_64kx9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 16 -data_width 9 -num_words 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_64kx9 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_64kx9.vhd - VHDL template : fifo_64kx9_tmpl.vhd - VHDL testbench : tb_fifo_64kx9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx9.srp - Estimated Resource Usage: - LUT : 379 - EBR : 32 - Reg : 177 - -END SCUBA Module Synthesis - -File: fifo_64kx9.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_64kx9_tmpl.vhd deleted file mode 100644 index a9d000b..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_64kx9_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:23:21 2011 - --- parameterized module component declaration -component fifo_64kx9 - port (Data: in std_logic_vector(8 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_64kx9 - port map (Data(8 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(8 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.lpc b/gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.lpc deleted file mode 100644 index fc672fb..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_65536x18x9 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=05/19/2012 -Time=15:06:37 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=32768 -Width=18 -RDepth=65536 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.vhd b/gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.vhd deleted file mode 100644 index 9360064..0000000 --- a/gbe2_ecp3/ipcores_ecp3/fifo_65536x18x9.vhd +++ /dev/null @@ -1,4493 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.4_Production (87) --- Module Version: 5.4 ---/opt/lattice/diamond/1.4/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 32768 -width 18 -depth 32768 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - --- Sat May 19 15:06:38 2012 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_65536x18x9 is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_65536x18x9; - -architecture Structure of fifo_65536x18x9 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal func_and_inet: std_logic; - signal func_and_inet_1: std_logic; - signal func_and_inet_2: std_logic; - signal func_and_inet_3: std_logic; - signal func_and_inet_4: std_logic; - signal func_and_inet_5: std_logic; - signal func_and_inet_6: std_logic; - signal func_and_inet_7: std_logic; - signal func_and_inet_8: std_logic; - signal func_and_inet_9: std_logic; - signal func_and_inet_10: std_logic; - signal func_and_inet_11: std_logic; - signal func_and_inet_12: std_logic; - signal func_and_inet_13: std_logic; - signal func_and_inet_14: std_logic; - signal func_and_inet_15: std_logic; - signal func_and_inet_16: std_logic; - signal func_and_inet_17: std_logic; - signal func_and_inet_18: std_logic; - signal func_and_inet_19: std_logic; - signal func_and_inet_20: std_logic; - signal func_and_inet_21: std_logic; - signal func_and_inet_22: std_logic; - signal func_and_inet_23: std_logic; - signal func_and_inet_24: std_logic; - signal func_and_inet_25: std_logic; - signal func_and_inet_26: std_logic; - signal func_and_inet_27: std_logic; - signal func_and_inet_28: std_logic; - signal func_and_inet_29: std_logic; - signal wptr_14_inv: std_logic; - signal func_and_inet_30: std_logic; - signal rptr_15_inv: std_logic; - signal func_and_inet_31: std_logic; - signal func_and_inet_32: std_logic; - signal func_and_inet_33: std_logic; - signal func_and_inet_34: std_logic; - signal func_and_inet_35: std_logic; - signal func_and_inet_36: std_logic; - signal func_and_inet_37: std_logic; - signal func_and_inet_38: std_logic; - signal func_and_inet_39: std_logic; - signal func_and_inet_40: std_logic; - signal func_and_inet_41: std_logic; - signal func_and_inet_42: std_logic; - signal func_and_inet_43: std_logic; - signal func_and_inet_44: std_logic; - signal func_and_inet_45: std_logic; - signal wptr_13_inv: std_logic; - signal func_and_inet_46: std_logic; - signal rptr_14_inv: std_logic; - signal func_and_inet_47: std_logic; - signal func_and_inet_48: std_logic; - signal func_and_inet_49: std_logic; - signal func_and_inet_50: std_logic; - signal func_and_inet_51: std_logic; - signal func_and_inet_52: std_logic; - signal func_and_inet_53: std_logic; - signal wptr_12_inv: std_logic; - signal func_and_inet_54: std_logic; - signal rptr_13_inv: std_logic; - signal func_and_inet_55: std_logic; - signal func_and_inet_56: std_logic; - signal func_and_inet_57: std_logic; - signal wptr_11_inv: std_logic; - signal func_and_inet_58: std_logic; - signal rptr_12_inv: std_logic; - signal func_and_inet_59: std_logic; - signal wptr_10_inv: std_logic; - signal func_and_inet_60: std_logic; - signal rptr_11_inv: std_logic; - signal func_and_inet_61: std_logic; - signal func_and_inet_62: std_logic; - signal func_and_inet_63: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal rcount_w0: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal dec1_r10: std_logic; - signal dec0_p00: std_logic; - signal dec3_r11: std_logic; - signal dec2_p01: std_logic; - signal dec5_r12: std_logic; - signal dec4_p02: std_logic; - signal dec7_r13: std_logic; - signal dec6_p03: std_logic; - signal dec9_r14: std_logic; - signal dec8_p04: std_logic; - signal dec11_r15: std_logic; - signal dec10_p05: std_logic; - signal dec13_r16: std_logic; - signal dec12_p06: std_logic; - signal dec15_r17: std_logic; - signal dec14_p07: std_logic; - signal dec17_r18: std_logic; - signal dec16_p08: std_logic; - signal dec19_r19: std_logic; - signal dec18_p09: std_logic; - signal dec21_r110: std_logic; - signal dec20_p010: std_logic; - signal dec23_r111: std_logic; - signal dec22_p011: std_logic; - signal dec25_r112: std_logic; - signal dec24_p012: std_logic; - signal dec27_r113: std_logic; - signal dec26_p013: std_logic; - signal dec29_r114: std_logic; - signal dec28_p014: std_logic; - signal dec31_r115: std_logic; - signal dec30_p015: std_logic; - signal dec33_r116: std_logic; - signal dec32_p016: std_logic; - signal dec35_r117: std_logic; - signal dec34_p017: std_logic; - signal dec37_r118: std_logic; - signal dec36_p018: std_logic; - signal dec39_r119: std_logic; - signal dec38_p019: std_logic; - signal dec41_r120: std_logic; - signal dec40_p020: std_logic; - signal dec43_r121: std_logic; - signal dec42_p021: std_logic; - signal dec45_r122: std_logic; - signal dec44_p022: std_logic; - signal dec47_r123: std_logic; - signal dec46_p023: std_logic; - signal dec49_r124: std_logic; - signal dec48_p024: std_logic; - signal dec51_r125: std_logic; - signal dec50_p025: std_logic; - signal dec53_r126: std_logic; - signal dec52_p026: std_logic; - signal dec55_r127: std_logic; - signal dec54_p027: std_logic; - signal dec57_r128: std_logic; - signal dec56_p028: std_logic; - signal dec59_r129: std_logic; - signal dec58_p029: std_logic; - signal dec61_r130: std_logic; - signal dec60_p030: std_logic; - signal dec63_r131: std_logic; - signal dec62_p031: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wptr_15: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_16: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal rptr_15: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co7: std_logic; - signal wcount_15: std_logic; - signal co6: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8: std_logic; - signal rcount_16: std_logic; - signal co7_1: std_logic; - signal mdout1_31_0: std_logic; - signal mdout1_30_0: std_logic; - signal mdout1_29_0: std_logic; - signal mdout1_28_0: std_logic; - signal mdout1_27_0: std_logic; - signal mdout1_26_0: std_logic; - signal mdout1_25_0: std_logic; - signal mdout1_24_0: std_logic; - signal mdout1_23_0: std_logic; - signal mdout1_22_0: std_logic; - signal mdout1_21_0: std_logic; - signal mdout1_20_0: std_logic; - signal mdout1_19_0: std_logic; - signal mdout1_18_0: std_logic; - signal mdout1_17_0: std_logic; - signal mdout1_16_0: std_logic; - signal mdout1_15_0: std_logic; - signal mdout1_14_0: std_logic; - signal mdout1_13_0: std_logic; - signal mdout1_12_0: std_logic; - signal mdout1_11_0: std_logic; - signal mdout1_10_0: std_logic; - signal mdout1_9_0: std_logic; - signal mdout1_8_0: std_logic; - signal mdout1_7_0: std_logic; - signal mdout1_6_0: std_logic; - signal mdout1_5_0: std_logic; - signal mdout1_4_0: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_31_1: std_logic; - signal mdout1_30_1: std_logic; - signal mdout1_29_1: std_logic; - signal mdout1_28_1: std_logic; - signal mdout1_27_1: std_logic; - signal mdout1_26_1: std_logic; - signal mdout1_25_1: std_logic; - signal mdout1_24_1: std_logic; - signal mdout1_23_1: std_logic; - signal mdout1_22_1: std_logic; - signal mdout1_21_1: std_logic; - signal mdout1_20_1: std_logic; - signal mdout1_19_1: std_logic; - signal mdout1_18_1: std_logic; - signal mdout1_17_1: std_logic; - signal mdout1_16_1: std_logic; - signal mdout1_15_1: std_logic; - signal mdout1_14_1: std_logic; - signal mdout1_13_1: std_logic; - signal mdout1_12_1: std_logic; - signal mdout1_11_1: std_logic; - signal mdout1_10_1: std_logic; - signal mdout1_9_1: std_logic; - signal mdout1_8_1: std_logic; - signal mdout1_7_1: std_logic; - signal mdout1_6_1: std_logic; - signal mdout1_5_1: std_logic; - signal mdout1_4_1: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_31_2: std_logic; - signal mdout1_30_2: std_logic; - signal mdout1_29_2: std_logic; - signal mdout1_28_2: std_logic; - signal mdout1_27_2: std_logic; - signal mdout1_26_2: std_logic; - signal mdout1_25_2: std_logic; - signal mdout1_24_2: std_logic; - signal mdout1_23_2: std_logic; - signal mdout1_22_2: std_logic; - signal mdout1_21_2: std_logic; - signal mdout1_20_2: std_logic; - signal mdout1_19_2: std_logic; - signal mdout1_18_2: std_logic; - signal mdout1_17_2: std_logic; - signal mdout1_16_2: std_logic; - signal mdout1_15_2: std_logic; - signal mdout1_14_2: std_logic; - signal mdout1_13_2: std_logic; - signal mdout1_12_2: std_logic; - signal mdout1_11_2: std_logic; - signal mdout1_10_2: std_logic; - signal mdout1_9_2: std_logic; - signal mdout1_8_2: std_logic; - signal mdout1_7_2: std_logic; - signal mdout1_6_2: std_logic; - signal mdout1_5_2: std_logic; - signal mdout1_4_2: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_31_3: std_logic; - signal mdout1_30_3: std_logic; - signal mdout1_29_3: std_logic; - signal mdout1_28_3: std_logic; - signal mdout1_27_3: std_logic; - signal mdout1_26_3: std_logic; - signal mdout1_25_3: std_logic; - signal mdout1_24_3: std_logic; - signal mdout1_23_3: std_logic; - signal mdout1_22_3: std_logic; - signal mdout1_21_3: std_logic; - signal mdout1_20_3: std_logic; - signal mdout1_19_3: std_logic; - signal mdout1_18_3: std_logic; - signal mdout1_17_3: std_logic; - signal mdout1_16_3: std_logic; - signal mdout1_15_3: std_logic; - signal mdout1_14_3: std_logic; - signal mdout1_13_3: std_logic; - signal mdout1_12_3: std_logic; - signal mdout1_11_3: std_logic; - signal mdout1_10_3: std_logic; - signal mdout1_9_3: std_logic; - signal mdout1_8_3: std_logic; - signal mdout1_7_3: std_logic; - signal mdout1_6_3: std_logic; - signal mdout1_5_3: std_logic; - signal mdout1_4_3: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_31_4: std_logic; - signal mdout1_30_4: std_logic; - signal mdout1_29_4: std_logic; - signal mdout1_28_4: std_logic; - signal mdout1_27_4: std_logic; - signal mdout1_26_4: std_logic; - signal mdout1_25_4: std_logic; - signal mdout1_24_4: std_logic; - signal mdout1_23_4: std_logic; - signal mdout1_22_4: std_logic; - signal mdout1_21_4: std_logic; - signal mdout1_20_4: std_logic; - signal mdout1_19_4: std_logic; - signal mdout1_18_4: std_logic; - signal mdout1_17_4: std_logic; - signal mdout1_16_4: std_logic; - signal mdout1_15_4: std_logic; - signal mdout1_14_4: std_logic; - signal mdout1_13_4: std_logic; - signal mdout1_12_4: std_logic; - signal mdout1_11_4: std_logic; - signal mdout1_10_4: std_logic; - signal mdout1_9_4: std_logic; - signal mdout1_8_4: std_logic; - signal mdout1_7_4: std_logic; - signal mdout1_6_4: std_logic; - signal mdout1_5_4: std_logic; - signal mdout1_4_4: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_31_5: std_logic; - signal mdout1_30_5: std_logic; - signal mdout1_29_5: std_logic; - signal mdout1_28_5: std_logic; - signal mdout1_27_5: std_logic; - signal mdout1_26_5: std_logic; - signal mdout1_25_5: std_logic; - signal mdout1_24_5: std_logic; - signal mdout1_23_5: std_logic; - signal mdout1_22_5: std_logic; - signal mdout1_21_5: std_logic; - signal mdout1_20_5: std_logic; - signal mdout1_19_5: std_logic; - signal mdout1_18_5: std_logic; - signal mdout1_17_5: std_logic; - signal mdout1_16_5: std_logic; - signal mdout1_15_5: std_logic; - signal mdout1_14_5: std_logic; - signal mdout1_13_5: std_logic; - signal mdout1_12_5: std_logic; - signal mdout1_11_5: std_logic; - signal mdout1_10_5: std_logic; - signal mdout1_9_5: std_logic; - signal mdout1_8_5: std_logic; - signal mdout1_7_5: std_logic; - signal mdout1_6_5: std_logic; - signal mdout1_5_5: std_logic; - signal mdout1_4_5: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_31_6: std_logic; - signal mdout1_30_6: std_logic; - signal mdout1_29_6: std_logic; - signal mdout1_28_6: std_logic; - signal mdout1_27_6: std_logic; - signal mdout1_26_6: std_logic; - signal mdout1_25_6: std_logic; - signal mdout1_24_6: std_logic; - signal mdout1_23_6: std_logic; - signal mdout1_22_6: std_logic; - signal mdout1_21_6: std_logic; - signal mdout1_20_6: std_logic; - signal mdout1_19_6: std_logic; - signal mdout1_18_6: std_logic; - signal mdout1_17_6: std_logic; - signal mdout1_16_6: std_logic; - signal mdout1_15_6: std_logic; - signal mdout1_14_6: std_logic; - signal mdout1_13_6: std_logic; - signal mdout1_12_6: std_logic; - signal mdout1_11_6: std_logic; - signal mdout1_10_6: std_logic; - signal mdout1_9_6: std_logic; - signal mdout1_8_6: std_logic; - signal mdout1_7_6: std_logic; - signal mdout1_6_6: std_logic; - signal mdout1_5_6: std_logic; - signal mdout1_4_6: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_31_7: std_logic; - signal mdout1_30_7: std_logic; - signal mdout1_29_7: std_logic; - signal mdout1_28_7: std_logic; - signal mdout1_27_7: std_logic; - signal mdout1_26_7: std_logic; - signal mdout1_25_7: std_logic; - signal mdout1_24_7: std_logic; - signal mdout1_23_7: std_logic; - signal mdout1_22_7: std_logic; - signal mdout1_21_7: std_logic; - signal mdout1_20_7: std_logic; - signal mdout1_19_7: std_logic; - signal mdout1_18_7: std_logic; - signal mdout1_17_7: std_logic; - signal mdout1_16_7: std_logic; - signal mdout1_15_7: std_logic; - signal mdout1_14_7: std_logic; - signal mdout1_13_7: std_logic; - signal mdout1_12_7: std_logic; - signal mdout1_11_7: std_logic; - signal mdout1_10_7: std_logic; - signal mdout1_9_7: std_logic; - signal mdout1_8_7: std_logic; - signal mdout1_7_7: std_logic; - signal mdout1_6_7: std_logic; - signal mdout1_5_7: std_logic; - signal mdout1_4_7: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal rptr_13_ff: std_logic; - signal rptr_12_ff: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_31_8: std_logic; - signal mdout1_30_8: std_logic; - signal mdout1_29_8: std_logic; - signal mdout1_28_8: std_logic; - signal mdout1_27_8: std_logic; - signal mdout1_26_8: std_logic; - signal mdout1_25_8: std_logic; - signal mdout1_24_8: std_logic; - signal mdout1_23_8: std_logic; - signal mdout1_22_8: std_logic; - signal mdout1_21_8: std_logic; - signal mdout1_20_8: std_logic; - signal mdout1_19_8: std_logic; - signal mdout1_18_8: std_logic; - signal mdout1_17_8: std_logic; - signal mdout1_16_8: std_logic; - signal mdout1_15_8: std_logic; - signal mdout1_14_8: std_logic; - signal mdout1_13_8: std_logic; - signal mdout1_12_8: std_logic; - signal mdout1_11_8: std_logic; - signal mdout1_10_8: std_logic; - signal mdout1_9_8: std_logic; - signal mdout1_8_8: std_logic; - signal mdout1_7_8: std_logic; - signal mdout1_6_8: std_logic; - signal mdout1_5_8: std_logic; - signal mdout1_4_8: std_logic; - signal mdout1_3_8: std_logic; - signal mdout1_2_8: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r7: std_logic; - signal wcount_r8: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r9: std_logic; - signal wcount_r10: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal wcount_r11: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_2: std_logic; - signal wcount_r13: std_logic; - signal wcount_r14: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w7: std_logic; - signal rcount_w8: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w9: std_logic; - signal rcount_w10: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w11: std_logic; - signal rcount_w12: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w14: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_3: std_logic; - signal rcount_w15: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_14: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX321 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; D4: in std_logic; D5: in std_logic; - D6: in std_logic; D7: in std_logic; D8: in std_logic; - D9: in std_logic; D10: in std_logic; D11: in std_logic; - D12: in std_logic; D13: in std_logic; D14: in std_logic; - D15: in std_logic; D16: in std_logic; D17: in std_logic; - D18: in std_logic; D19: in std_logic; D20: in std_logic; - D21: in std_logic; D22: in std_logic; D23: in std_logic; - D24: in std_logic; D25: in std_logic; D26: in std_logic; - D27: in std_logic; D28: in std_logic; D29: in std_logic; - D30: in std_logic; D31: in std_logic; SD1: in std_logic; - SD2: in std_logic; SD3: in std_logic; SD4: in std_logic; - SD5: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute RESETMODE of pdp_ram_0_0_31 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_1_0_30 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_30 : label is ""; - attribute RESETMODE of pdp_ram_1_0_30 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_2_0_29 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_29 : label is ""; - attribute RESETMODE of pdp_ram_2_0_29 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_3_0_28 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_28 : label is ""; - attribute RESETMODE of pdp_ram_3_0_28 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_4_0_27 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_4_0_27 : label is ""; - attribute RESETMODE of pdp_ram_4_0_27 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_5_0_26 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_5_0_26 : label is ""; - attribute RESETMODE of pdp_ram_5_0_26 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_6_0_25 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_6_0_25 : label is ""; - attribute RESETMODE of pdp_ram_6_0_25 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_7_0_24 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_7_0_24 : label is ""; - attribute RESETMODE of pdp_ram_7_0_24 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_8_0_23 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_8_0_23 : label is ""; - attribute RESETMODE of pdp_ram_8_0_23 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_9_0_22 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_9_0_22 : label is ""; - attribute RESETMODE of pdp_ram_9_0_22 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_10_0_21 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_10_0_21 : label is ""; - attribute RESETMODE of pdp_ram_10_0_21 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_11_0_20 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_11_0_20 : label is ""; - attribute RESETMODE of pdp_ram_11_0_20 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_12_0_19 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_12_0_19 : label is ""; - attribute RESETMODE of pdp_ram_12_0_19 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_13_0_18 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_13_0_18 : label is ""; - attribute RESETMODE of pdp_ram_13_0_18 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_14_0_17 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_14_0_17 : label is ""; - attribute RESETMODE of pdp_ram_14_0_17 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_15_0_16 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_15_0_16 : label is ""; - attribute RESETMODE of pdp_ram_15_0_16 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_16_0_15 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_16_0_15 : label is ""; - attribute RESETMODE of pdp_ram_16_0_15 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_17_0_14 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_17_0_14 : label is ""; - attribute RESETMODE of pdp_ram_17_0_14 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_18_0_13 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_18_0_13 : label is ""; - attribute RESETMODE of pdp_ram_18_0_13 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_19_0_12 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_19_0_12 : label is ""; - attribute RESETMODE of pdp_ram_19_0_12 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_20_0_11 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_20_0_11 : label is ""; - attribute RESETMODE of pdp_ram_20_0_11 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_21_0_10 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_21_0_10 : label is ""; - attribute RESETMODE of pdp_ram_21_0_10 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_22_0_9 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_22_0_9 : label is ""; - attribute RESETMODE of pdp_ram_22_0_9 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_23_0_8 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_23_0_8 : label is ""; - attribute RESETMODE of pdp_ram_23_0_8 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_24_0_7 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_24_0_7 : label is ""; - attribute RESETMODE of pdp_ram_24_0_7 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_25_0_6 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_25_0_6 : label is ""; - attribute RESETMODE of pdp_ram_25_0_6 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_26_0_5 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_26_0_5 : label is ""; - attribute RESETMODE of pdp_ram_26_0_5 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_27_0_4 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_27_0_4 : label is ""; - attribute RESETMODE of pdp_ram_27_0_4 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_28_0_3 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_28_0_3 : label is ""; - attribute RESETMODE of pdp_ram_28_0_3 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_29_0_2 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_29_0_2 : label is ""; - attribute RESETMODE of pdp_ram_29_0_2 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_30_0_1 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_30_0_1 : label is ""; - attribute RESETMODE of pdp_ram_30_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_31_0_0 : label is "fifo_65536x18x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_31_0_0 : label is ""; - attribute RESETMODE of pdp_ram_31_0_0 : label is "SYNC"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t33: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_11: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t32: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_10: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t31: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t30: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t29: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t28: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t27: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t26: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t25: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t24: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t23: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t22: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t21: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t20: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t19: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t18: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t17: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t16: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t15: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t14: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t13: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t12: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t11: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t10: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t9: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t8: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t7: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t6: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t5: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t4: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t3: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t2: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t1: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t0: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - INV_9: INV - port map (A=>wptr_10, Z=>wptr_10_inv); - - INV_8: INV - port map (A=>wptr_11, Z=>wptr_11_inv); - - INV_7: INV - port map (A=>wptr_12, Z=>wptr_12_inv); - - INV_6: INV - port map (A=>wptr_13, Z=>wptr_13_inv); - - INV_5: INV - port map (A=>wptr_14, Z=>wptr_14_inv); - - LUT4_180: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet); - - LUT4_179: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec0_p00); - - INV_4: INV - port map (A=>rptr_11, Z=>rptr_11_inv); - - INV_3: INV - port map (A=>rptr_12, Z=>rptr_12_inv); - - INV_2: INV - port map (A=>rptr_13, Z=>rptr_13_inv); - - INV_1: INV - port map (A=>rptr_14, Z=>rptr_14_inv); - - INV_0: INV - port map (A=>rptr_15, Z=>rptr_15_inv); - - LUT4_178: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_1); - - LUT4_177: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_1, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec1_r10); - - LUT4_176: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_2); - - LUT4_175: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_2, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec2_p01); - - LUT4_174: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_3); - - LUT4_173: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_3, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec3_r11); - - LUT4_172: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_4); - - LUT4_171: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_4, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec4_p02); - - LUT4_170: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_5); - - LUT4_169: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_5, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec5_r12); - - LUT4_168: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_6); - - LUT4_167: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_6, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec6_p03); - - LUT4_166: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_7); - - LUT4_165: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_7, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec7_r13); - - LUT4_164: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_8); - - LUT4_163: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_8, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec8_p04); - - LUT4_162: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_9); - - LUT4_161: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_9, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec9_r14); - - LUT4_160: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_10); - - LUT4_159: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_10, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec10_p05); - - LUT4_158: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_11); - - LUT4_157: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_11, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec11_r15); - - LUT4_156: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_12); - - LUT4_155: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_12, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec12_p06); - - LUT4_154: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_13); - - LUT4_153: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_13, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec13_r16); - - LUT4_152: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_14); - - LUT4_151: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_14, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec14_p07); - - LUT4_150: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_15); - - LUT4_149: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_15, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec15_r17); - - LUT4_148: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_16); - - LUT4_147: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_16, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec16_p08); - - LUT4_146: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_17); - - LUT4_145: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_17, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec17_r18); - - LUT4_144: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_18); - - LUT4_143: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_18, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec18_p09); - - LUT4_142: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_19); - - LUT4_141: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_19, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec19_r19); - - LUT4_140: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_20); - - LUT4_139: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_20, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec20_p010); - - LUT4_138: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_21); - - LUT4_137: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_21, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec21_r110); - - LUT4_136: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_22); - - LUT4_135: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_22, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec22_p011); - - LUT4_134: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_23); - - LUT4_133: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_23, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec23_r111); - - LUT4_132: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_24); - - LUT4_131: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_24, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec24_p012); - - LUT4_130: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_25); - - LUT4_129: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_25, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec25_r112); - - LUT4_128: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_26); - - LUT4_127: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_26, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec26_p013); - - LUT4_126: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_27); - - LUT4_125: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_27, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec27_r113); - - LUT4_124: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_28); - - LUT4_123: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_28, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec28_p014); - - LUT4_122: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_29); - - LUT4_121: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_29, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec29_r114); - - LUT4_120: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, AD0=>wptr_13, - DO0=>func_and_inet_30); - - LUT4_119: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_30, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec30_p015); - - LUT4_118: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_31); - - LUT4_117: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_31, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec31_r115); - - LUT4_116: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_32); - - LUT4_115: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_32, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec32_p016); - - LUT4_114: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_33); - - LUT4_113: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_33, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec33_r116); - - LUT4_112: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_34); - - LUT4_111: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_34, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec34_p017); - - LUT4_110: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_35); - - LUT4_109: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_35, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec35_r117); - - LUT4_108: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_36); - - LUT4_107: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_36, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec36_p018); - - LUT4_106: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_37); - - LUT4_105: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_37, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec37_r118); - - LUT4_104: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_38); - - LUT4_103: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_38, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec38_p019); - - LUT4_102: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_39); - - LUT4_101: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_39, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec39_r119); - - LUT4_100: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_40); - - LUT4_99: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_40, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec40_p020); - - LUT4_98: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_41); - - LUT4_97: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_41, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec41_r120); - - LUT4_96: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_42); - - LUT4_95: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_42, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec42_p021); - - LUT4_94: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_43); - - LUT4_93: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_43, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec43_r121); - - LUT4_92: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_44); - - LUT4_91: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_44, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec44_p022); - - LUT4_90: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_45); - - LUT4_89: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_45, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec45_r122); - - LUT4_88: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_46); - - LUT4_87: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_46, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec46_p023); - - LUT4_86: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_47); - - LUT4_85: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_47, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec47_r123); - - LUT4_84: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_48); - - LUT4_83: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_48, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec48_p024); - - LUT4_82: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_49); - - LUT4_81: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_49, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec49_r124); - - LUT4_80: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_50); - - LUT4_79: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_50, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec50_p025); - - LUT4_78: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_51); - - LUT4_77: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_51, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec51_r125); - - LUT4_76: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_52); - - LUT4_75: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_52, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec52_p026); - - LUT4_74: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_53); - - LUT4_73: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_53, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec53_r126); - - LUT4_72: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_54); - - LUT4_71: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_54, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec54_p027); - - LUT4_70: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_55); - - LUT4_69: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_55, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec55_r127); - - LUT4_68: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_56); - - LUT4_67: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_56, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec56_p028); - - LUT4_66: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_57); - - LUT4_65: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_57, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec57_r128); - - LUT4_64: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_58); - - LUT4_63: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_58, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec58_p029); - - LUT4_62: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_59); - - LUT4_61: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_59, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec59_r129); - - LUT4_60: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_60); - - LUT4_59: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_60, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec60_p030); - - LUT4_58: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_61); - - LUT4_57: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_61, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec61_r130); - - LUT4_56: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, AD0=>wptr_13, - DO0=>func_and_inet_62); - - LUT4_55: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_62, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec62_p031); - - LUT4_54: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_63); - - LUT4_53: ROM16X1A - generic map (initval=> X"8000") - port map (AD3=>func_and_inet_63, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec63_r131); - - LUT4_52: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, - DO0=>w_g2b_xor_cluster_0); - - LUT4_51: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_1); - - LUT4_50: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_2); - - LUT4_49: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_3); - - LUT4_48: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_47: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_46: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_45: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_44: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r9); - - LUT4_43: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_42: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_41: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>wcount_r6); - - LUT4_40: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_39: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_38: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_37: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r23, DO0=>wcount_r3); - - LUT4_36: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_35: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r2); - - LUT4_34: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_33: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r1); - - LUT4_32: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r0); - - LUT4_31: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_1); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_2); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_31: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec0_p00, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec1_r10, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_0_0, DOB1=>mdout1_0_1, - DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, DOB4=>mdout1_0_4, - DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, DOB7=>mdout1_0_7, - DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_1_0_30: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec2_p01, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec3_r11, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_1_0, DOB1=>mdout1_1_1, - DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, DOB4=>mdout1_1_4, - DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, DOB7=>mdout1_1_7, - DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_2_0_29: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec4_p02, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec5_r12, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_2_0, DOB1=>mdout1_2_1, - DOB2=>mdout1_2_2, DOB3=>mdout1_2_3, DOB4=>mdout1_2_4, - DOB5=>mdout1_2_5, DOB6=>mdout1_2_6, DOB7=>mdout1_2_7, - DOB8=>mdout1_2_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_3_0_28: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec6_p03, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec7_r13, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_3_0, DOB1=>mdout1_3_1, - DOB2=>mdout1_3_2, DOB3=>mdout1_3_3, DOB4=>mdout1_3_4, - DOB5=>mdout1_3_5, DOB6=>mdout1_3_6, DOB7=>mdout1_3_7, - DOB8=>mdout1_3_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_4_0_27: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec8_p04, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec9_r14, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_4_0, DOB1=>mdout1_4_1, - DOB2=>mdout1_4_2, DOB3=>mdout1_4_3, DOB4=>mdout1_4_4, - DOB5=>mdout1_4_5, DOB6=>mdout1_4_6, DOB7=>mdout1_4_7, - DOB8=>mdout1_4_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_5_0_26: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec10_p05, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec11_r15, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_5_0, DOB1=>mdout1_5_1, - DOB2=>mdout1_5_2, DOB3=>mdout1_5_3, DOB4=>mdout1_5_4, - DOB5=>mdout1_5_5, DOB6=>mdout1_5_6, DOB7=>mdout1_5_7, - DOB8=>mdout1_5_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_6_0_25: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec12_p06, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec13_r16, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_6_0, DOB1=>mdout1_6_1, - DOB2=>mdout1_6_2, DOB3=>mdout1_6_3, DOB4=>mdout1_6_4, - DOB5=>mdout1_6_5, DOB6=>mdout1_6_6, DOB7=>mdout1_6_7, - DOB8=>mdout1_6_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_7_0_24: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec14_p07, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec15_r17, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_7_0, DOB1=>mdout1_7_1, - DOB2=>mdout1_7_2, DOB3=>mdout1_7_3, DOB4=>mdout1_7_4, - DOB5=>mdout1_7_5, DOB6=>mdout1_7_6, DOB7=>mdout1_7_7, - DOB8=>mdout1_7_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_8_0_23: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec16_p08, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec17_r18, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_8_0, DOB1=>mdout1_8_1, - DOB2=>mdout1_8_2, DOB3=>mdout1_8_3, DOB4=>mdout1_8_4, - DOB5=>mdout1_8_5, DOB6=>mdout1_8_6, DOB7=>mdout1_8_7, - DOB8=>mdout1_8_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_9_0_22: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec18_p09, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec19_r19, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_9_0, DOB1=>mdout1_9_1, - DOB2=>mdout1_9_2, DOB3=>mdout1_9_3, DOB4=>mdout1_9_4, - DOB5=>mdout1_9_5, DOB6=>mdout1_9_6, DOB7=>mdout1_9_7, - DOB8=>mdout1_9_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_10_0_21: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec20_p010, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec21_r110, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_10_0, DOB1=>mdout1_10_1, - DOB2=>mdout1_10_2, DOB3=>mdout1_10_3, DOB4=>mdout1_10_4, - DOB5=>mdout1_10_5, DOB6=>mdout1_10_6, DOB7=>mdout1_10_7, - DOB8=>mdout1_10_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_11_0_20: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec22_p011, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec23_r111, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_11_0, DOB1=>mdout1_11_1, - DOB2=>mdout1_11_2, DOB3=>mdout1_11_3, DOB4=>mdout1_11_4, - DOB5=>mdout1_11_5, DOB6=>mdout1_11_6, DOB7=>mdout1_11_7, - DOB8=>mdout1_11_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_12_0_19: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec24_p012, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec25_r112, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_12_0, DOB1=>mdout1_12_1, - DOB2=>mdout1_12_2, DOB3=>mdout1_12_3, DOB4=>mdout1_12_4, - DOB5=>mdout1_12_5, DOB6=>mdout1_12_6, DOB7=>mdout1_12_7, - DOB8=>mdout1_12_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_13_0_18: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec26_p013, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec27_r113, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_13_0, DOB1=>mdout1_13_1, - DOB2=>mdout1_13_2, DOB3=>mdout1_13_3, DOB4=>mdout1_13_4, - DOB5=>mdout1_13_5, DOB6=>mdout1_13_6, DOB7=>mdout1_13_7, - DOB8=>mdout1_13_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_14_0_17: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec28_p014, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec29_r114, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_14_0, DOB1=>mdout1_14_1, - DOB2=>mdout1_14_2, DOB3=>mdout1_14_3, DOB4=>mdout1_14_4, - DOB5=>mdout1_14_5, DOB6=>mdout1_14_6, DOB7=>mdout1_14_7, - DOB8=>mdout1_14_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_15_0_16: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec30_p015, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec31_r115, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_15_0, DOB1=>mdout1_15_1, - DOB2=>mdout1_15_2, DOB3=>mdout1_15_3, DOB4=>mdout1_15_4, - DOB5=>mdout1_15_5, DOB6=>mdout1_15_6, DOB7=>mdout1_15_7, - DOB8=>mdout1_15_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_16_0_15: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec32_p016, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec33_r116, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_16_0, DOB1=>mdout1_16_1, - DOB2=>mdout1_16_2, DOB3=>mdout1_16_3, DOB4=>mdout1_16_4, - DOB5=>mdout1_16_5, DOB6=>mdout1_16_6, DOB7=>mdout1_16_7, - DOB8=>mdout1_16_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_17_0_14: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec34_p017, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec35_r117, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_17_0, DOB1=>mdout1_17_1, - DOB2=>mdout1_17_2, DOB3=>mdout1_17_3, DOB4=>mdout1_17_4, - DOB5=>mdout1_17_5, DOB6=>mdout1_17_6, DOB7=>mdout1_17_7, - DOB8=>mdout1_17_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_18_0_13: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec36_p018, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec37_r118, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_18_0, DOB1=>mdout1_18_1, - DOB2=>mdout1_18_2, DOB3=>mdout1_18_3, DOB4=>mdout1_18_4, - DOB5=>mdout1_18_5, DOB6=>mdout1_18_6, DOB7=>mdout1_18_7, - DOB8=>mdout1_18_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_19_0_12: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec38_p019, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec39_r119, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_19_0, DOB1=>mdout1_19_1, - DOB2=>mdout1_19_2, DOB3=>mdout1_19_3, DOB4=>mdout1_19_4, - DOB5=>mdout1_19_5, DOB6=>mdout1_19_6, DOB7=>mdout1_19_7, - DOB8=>mdout1_19_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_20_0_11: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec40_p020, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec41_r120, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_20_0, DOB1=>mdout1_20_1, - DOB2=>mdout1_20_2, DOB3=>mdout1_20_3, DOB4=>mdout1_20_4, - DOB5=>mdout1_20_5, DOB6=>mdout1_20_6, DOB7=>mdout1_20_7, - DOB8=>mdout1_20_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_21_0_10: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec42_p021, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec43_r121, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_21_0, DOB1=>mdout1_21_1, - DOB2=>mdout1_21_2, DOB3=>mdout1_21_3, DOB4=>mdout1_21_4, - DOB5=>mdout1_21_5, DOB6=>mdout1_21_6, DOB7=>mdout1_21_7, - DOB8=>mdout1_21_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_22_0_9: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec44_p022, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec45_r122, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_22_0, DOB1=>mdout1_22_1, - DOB2=>mdout1_22_2, DOB3=>mdout1_22_3, DOB4=>mdout1_22_4, - DOB5=>mdout1_22_5, DOB6=>mdout1_22_6, DOB7=>mdout1_22_7, - DOB8=>mdout1_22_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_23_0_8: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec46_p023, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec47_r123, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_23_0, DOB1=>mdout1_23_1, - DOB2=>mdout1_23_2, DOB3=>mdout1_23_3, DOB4=>mdout1_23_4, - DOB5=>mdout1_23_5, DOB6=>mdout1_23_6, DOB7=>mdout1_23_7, - DOB8=>mdout1_23_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_24_0_7: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec48_p024, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec49_r124, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_24_0, DOB1=>mdout1_24_1, - DOB2=>mdout1_24_2, DOB3=>mdout1_24_3, DOB4=>mdout1_24_4, - DOB5=>mdout1_24_5, DOB6=>mdout1_24_6, DOB7=>mdout1_24_7, - DOB8=>mdout1_24_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_25_0_6: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec50_p025, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec51_r125, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_25_0, DOB1=>mdout1_25_1, - DOB2=>mdout1_25_2, DOB3=>mdout1_25_3, DOB4=>mdout1_25_4, - DOB5=>mdout1_25_5, DOB6=>mdout1_25_6, DOB7=>mdout1_25_7, - DOB8=>mdout1_25_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_26_0_5: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec52_p026, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec53_r126, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_26_0, DOB1=>mdout1_26_1, - DOB2=>mdout1_26_2, DOB3=>mdout1_26_3, DOB4=>mdout1_26_4, - DOB5=>mdout1_26_5, DOB6=>mdout1_26_6, DOB7=>mdout1_26_7, - DOB8=>mdout1_26_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_27_0_4: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec54_p027, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec55_r127, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_27_0, DOB1=>mdout1_27_1, - DOB2=>mdout1_27_2, DOB3=>mdout1_27_3, DOB4=>mdout1_27_4, - DOB5=>mdout1_27_5, DOB6=>mdout1_27_6, DOB7=>mdout1_27_7, - DOB8=>mdout1_27_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_28_0_3: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec56_p028, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec57_r128, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_28_0, DOB1=>mdout1_28_1, - DOB2=>mdout1_28_2, DOB3=>mdout1_28_3, DOB4=>mdout1_28_4, - DOB5=>mdout1_28_5, DOB6=>mdout1_28_6, DOB7=>mdout1_28_7, - DOB8=>mdout1_28_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_29_0_2: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec58_p029, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec59_r129, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_29_0, DOB1=>mdout1_29_1, - DOB2=>mdout1_29_2, DOB3=>mdout1_29_3, DOB4=>mdout1_29_4, - DOB5=>mdout1_29_5, DOB6=>mdout1_29_6, DOB7=>mdout1_29_7, - DOB8=>mdout1_29_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_30_0_1: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec60_p030, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec61_r130, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_30_0, DOB1=>mdout1_30_1, - DOB2=>mdout1_30_2, DOB3=>mdout1_30_3, DOB4=>mdout1_30_4, - DOB5=>mdout1_30_5, DOB6=>mdout1_30_6, DOB7=>mdout1_30_7, - DOB8=>mdout1_30_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_31_0_0: DP16KC - generic map (CSDECODE_B=> "0b001", CSDECODE_A=> "0b001", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>dec62_p031, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>dec63_r131, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>mdout1_31_0, DOB1=>mdout1_31_1, - DOB2=>mdout1_31_2, DOB3=>mdout1_31_3, DOB4=>mdout1_31_4, - DOB5=>mdout1_31_5, DOB6=>mdout1_31_6, DOB7=>mdout1_31_7, - DOB8=>mdout1_31_8, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_171: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_170: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_169: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_168: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_167: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_166: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_165: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_164: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_163: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_162: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_161: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_160: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_159: FD1P3DX - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_158: FD1P3DX - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_157: FD1P3DX - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_156: FD1P3DX - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_155: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_154: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_153: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_152: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_151: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_150: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_149: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_148: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_147: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_146: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_145: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_144: FD1P3DX - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_143: FD1P3DX - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_142: FD1P3DX - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_141: FD1P3DX - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_140: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_139: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_138: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_137: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_136: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_135: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_134: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_133: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_132: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_131: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_130: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_129: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_128: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_127: FD1P3DX - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_126: FD1P3DX - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_125: FD1P3DX - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_124: FD1P3DX - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_123: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_122: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_121: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_120: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_119: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_118: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_117: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_116: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_115: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_114: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_113: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_112: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_111: FD1P3DX - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_110: FD1P3DX - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_109: FD1P3DX - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_108: FD1P3DX - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_107: FD1P3DX - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_106: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_105: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_104: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_103: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_102: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_101: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_100: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_99: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_98: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_97: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_96: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_95: FD1P3DX - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_94: FD1P3DX - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_93: FD1P3DX - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_92: FD1P3DX - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_91: FD1P3DX - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_90: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_89: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_88: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_87: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_86: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_85: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_84: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_83: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_82: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_81: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_80: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_79: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_78: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_77: FD1P3DX - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_76: FD1P3DX - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_75: FD1P3DX - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_74: FD1P3DX - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_73: FD1P3DX - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_72: FD1P3DX - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_71: FD1P3DX - port map (D=>rptr_12, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_12_ff); - - FF_70: FD1P3DX - port map (D=>rptr_13, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_13_ff); - - FF_69: FD1P3DX - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_68: FD1P3DX - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_67: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_66: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_65: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_64: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_63: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_62: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_61: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_60: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_59: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_58: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_57: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_56: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_55: FD1S3DX - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_54: FD1S3DX - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_53: FD1S3DX - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_52: FD1S3DX - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_51: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_50: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_49: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_48: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_47: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_46: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_45: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_44: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_43: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_42: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_41: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_40: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_39: FD1S3DX - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_38: FD1S3DX - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_37: FD1S3DX - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_36: FD1S3DX - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_35: FD1S3DX - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_34: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_33: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_32: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_31: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_30: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_29: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_28: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_27: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_26: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_25: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_24: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_23: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_22: FD1S3DX - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_21: FD1S3DX - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_20: FD1S3DX - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_19: FD1S3DX - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_18: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_17: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_16: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_15: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_14: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_13: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_12: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_11: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_10: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_9: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_8: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_7: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_6: FD1S3DX - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_5: FD1S3DX - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_4: FD1S3DX - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_3: FD1S3DX - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_2: FD1S3DX - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>ircount_16, NC1=>open); - - mux_8: MUX321 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, D4=>mdout1_4_0, D5=>mdout1_5_0, - D6=>mdout1_6_0, D7=>mdout1_7_0, D8=>mdout1_8_0, - D9=>mdout1_9_0, D10=>mdout1_10_0, D11=>mdout1_11_0, - D12=>mdout1_12_0, D13=>mdout1_13_0, D14=>mdout1_14_0, - D15=>mdout1_15_0, D16=>mdout1_16_0, D17=>mdout1_17_0, - D18=>mdout1_18_0, D19=>mdout1_19_0, D20=>mdout1_20_0, - D21=>mdout1_21_0, D22=>mdout1_22_0, D23=>mdout1_23_0, - D24=>mdout1_24_0, D25=>mdout1_25_0, D26=>mdout1_26_0, - D27=>mdout1_27_0, D28=>mdout1_28_0, D29=>mdout1_29_0, - D30=>mdout1_30_0, D31=>mdout1_31_0, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(0)); - - mux_7: MUX321 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, D4=>mdout1_4_1, D5=>mdout1_5_1, - D6=>mdout1_6_1, D7=>mdout1_7_1, D8=>mdout1_8_1, - D9=>mdout1_9_1, D10=>mdout1_10_1, D11=>mdout1_11_1, - D12=>mdout1_12_1, D13=>mdout1_13_1, D14=>mdout1_14_1, - D15=>mdout1_15_1, D16=>mdout1_16_1, D17=>mdout1_17_1, - D18=>mdout1_18_1, D19=>mdout1_19_1, D20=>mdout1_20_1, - D21=>mdout1_21_1, D22=>mdout1_22_1, D23=>mdout1_23_1, - D24=>mdout1_24_1, D25=>mdout1_25_1, D26=>mdout1_26_1, - D27=>mdout1_27_1, D28=>mdout1_28_1, D29=>mdout1_29_1, - D30=>mdout1_30_1, D31=>mdout1_31_1, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(1)); - - mux_6: MUX321 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, D4=>mdout1_4_2, D5=>mdout1_5_2, - D6=>mdout1_6_2, D7=>mdout1_7_2, D8=>mdout1_8_2, - D9=>mdout1_9_2, D10=>mdout1_10_2, D11=>mdout1_11_2, - D12=>mdout1_12_2, D13=>mdout1_13_2, D14=>mdout1_14_2, - D15=>mdout1_15_2, D16=>mdout1_16_2, D17=>mdout1_17_2, - D18=>mdout1_18_2, D19=>mdout1_19_2, D20=>mdout1_20_2, - D21=>mdout1_21_2, D22=>mdout1_22_2, D23=>mdout1_23_2, - D24=>mdout1_24_2, D25=>mdout1_25_2, D26=>mdout1_26_2, - D27=>mdout1_27_2, D28=>mdout1_28_2, D29=>mdout1_29_2, - D30=>mdout1_30_2, D31=>mdout1_31_2, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(2)); - - mux_5: MUX321 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, D4=>mdout1_4_3, D5=>mdout1_5_3, - D6=>mdout1_6_3, D7=>mdout1_7_3, D8=>mdout1_8_3, - D9=>mdout1_9_3, D10=>mdout1_10_3, D11=>mdout1_11_3, - D12=>mdout1_12_3, D13=>mdout1_13_3, D14=>mdout1_14_3, - D15=>mdout1_15_3, D16=>mdout1_16_3, D17=>mdout1_17_3, - D18=>mdout1_18_3, D19=>mdout1_19_3, D20=>mdout1_20_3, - D21=>mdout1_21_3, D22=>mdout1_22_3, D23=>mdout1_23_3, - D24=>mdout1_24_3, D25=>mdout1_25_3, D26=>mdout1_26_3, - D27=>mdout1_27_3, D28=>mdout1_28_3, D29=>mdout1_29_3, - D30=>mdout1_30_3, D31=>mdout1_31_3, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(3)); - - mux_4: MUX321 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, D4=>mdout1_4_4, D5=>mdout1_5_4, - D6=>mdout1_6_4, D7=>mdout1_7_4, D8=>mdout1_8_4, - D9=>mdout1_9_4, D10=>mdout1_10_4, D11=>mdout1_11_4, - D12=>mdout1_12_4, D13=>mdout1_13_4, D14=>mdout1_14_4, - D15=>mdout1_15_4, D16=>mdout1_16_4, D17=>mdout1_17_4, - D18=>mdout1_18_4, D19=>mdout1_19_4, D20=>mdout1_20_4, - D21=>mdout1_21_4, D22=>mdout1_22_4, D23=>mdout1_23_4, - D24=>mdout1_24_4, D25=>mdout1_25_4, D26=>mdout1_26_4, - D27=>mdout1_27_4, D28=>mdout1_28_4, D29=>mdout1_29_4, - D30=>mdout1_30_4, D31=>mdout1_31_4, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(4)); - - mux_3: MUX321 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, D4=>mdout1_4_5, D5=>mdout1_5_5, - D6=>mdout1_6_5, D7=>mdout1_7_5, D8=>mdout1_8_5, - D9=>mdout1_9_5, D10=>mdout1_10_5, D11=>mdout1_11_5, - D12=>mdout1_12_5, D13=>mdout1_13_5, D14=>mdout1_14_5, - D15=>mdout1_15_5, D16=>mdout1_16_5, D17=>mdout1_17_5, - D18=>mdout1_18_5, D19=>mdout1_19_5, D20=>mdout1_20_5, - D21=>mdout1_21_5, D22=>mdout1_22_5, D23=>mdout1_23_5, - D24=>mdout1_24_5, D25=>mdout1_25_5, D26=>mdout1_26_5, - D27=>mdout1_27_5, D28=>mdout1_28_5, D29=>mdout1_29_5, - D30=>mdout1_30_5, D31=>mdout1_31_5, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(5)); - - mux_2: MUX321 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, D4=>mdout1_4_6, D5=>mdout1_5_6, - D6=>mdout1_6_6, D7=>mdout1_7_6, D8=>mdout1_8_6, - D9=>mdout1_9_6, D10=>mdout1_10_6, D11=>mdout1_11_6, - D12=>mdout1_12_6, D13=>mdout1_13_6, D14=>mdout1_14_6, - D15=>mdout1_15_6, D16=>mdout1_16_6, D17=>mdout1_17_6, - D18=>mdout1_18_6, D19=>mdout1_19_6, D20=>mdout1_20_6, - D21=>mdout1_21_6, D22=>mdout1_22_6, D23=>mdout1_23_6, - D24=>mdout1_24_6, D25=>mdout1_25_6, D26=>mdout1_26_6, - D27=>mdout1_27_6, D28=>mdout1_28_6, D29=>mdout1_29_6, - D30=>mdout1_30_6, D31=>mdout1_31_6, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(6)); - - mux_1: MUX321 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, D4=>mdout1_4_7, D5=>mdout1_5_7, - D6=>mdout1_6_7, D7=>mdout1_7_7, D8=>mdout1_8_7, - D9=>mdout1_9_7, D10=>mdout1_10_7, D11=>mdout1_11_7, - D12=>mdout1_12_7, D13=>mdout1_13_7, D14=>mdout1_14_7, - D15=>mdout1_15_7, D16=>mdout1_16_7, D17=>mdout1_17_7, - D18=>mdout1_18_7, D19=>mdout1_19_7, D20=>mdout1_20_7, - D21=>mdout1_21_7, D22=>mdout1_22_7, D23=>mdout1_23_7, - D24=>mdout1_24_7, D25=>mdout1_25_7, D26=>mdout1_26_7, - D27=>mdout1_27_7, D28=>mdout1_28_7, D29=>mdout1_29_7, - D30=>mdout1_30_7, D31=>mdout1_31_7, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(7)); - - mux_0: MUX321 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, D2=>mdout1_2_8, - D3=>mdout1_3_8, D4=>mdout1_4_8, D5=>mdout1_5_8, - D6=>mdout1_6_8, D7=>mdout1_7_8, D8=>mdout1_8_8, - D9=>mdout1_9_8, D10=>mdout1_10_8, D11=>mdout1_11_8, - D12=>mdout1_12_8, D13=>mdout1_13_8, D14=>mdout1_14_8, - D15=>mdout1_15_8, D16=>mdout1_16_8, D17=>mdout1_17_8, - D18=>mdout1_18_8, D19=>mdout1_19_8, D20=>mdout1_20_8, - D21=>mdout1_21_8, D22=>mdout1_22_8, D23=>mdout1_23_8, - D24=>mdout1_24_8, D25=>mdout1_25_8, D26=>mdout1_26_8, - D27=>mdout1_27_8, D28=>mdout1_28_8, D29=>mdout1_29_8, - D30=>mdout1_30_8, D31=>mdout1_31_8, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(8)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r7, - B1=>wcount_r8, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r9, - B1=>wcount_r10, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r11, - B1=>w_g2b_xor_cluster_0, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r13, - B1=>wcount_r14, CI=>co6_2, GE=>co7_2); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>rcount_w8, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, - B1=>rcount_w10, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w11, - B1=>rcount_w12, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w14, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>full_cmp_set, B0=>rcount_w15, - B1=>full_cmp_clr, CI=>co6_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_65536x18x9 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:MUX321 use entity ecp3.MUX321(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.ipx b/gbe2_ecp3/ipcores_ecp3/ip_mem.ipx deleted file mode 100644 index 27e3da4..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem.ipx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.jhd b/gbe2_ecp3/ipcores_ecp3/ip_mem.jhd deleted file mode 100755 index e666bec..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem.jhd +++ /dev/null @@ -1,9 +0,0 @@ -MODULE ip_mem DEFIN ip_mem.vhd - SUBMODULE DP16KC - INSTANCE ip_mem_0_1_0 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE VHI - INSTANCE scuba_vhi_inst - SUBMODULE DP16KC - INSTANCE ip_mem_0_0_1 diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.lpc b/gbe2_ecp3/ipcores_ecp3/ip_mem.lpc deleted file mode 100755 index 4c9ab25..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem.lpc +++ /dev/null @@ -1,60 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=RAM_DP_TRUE -CoreRevision=7.1 -ModuleName=ip_mem -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:24:37 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -AAddress=256 -BAddress=256 -AData=32 -BData=32 -enByte=0 -ByteSize=9 -AadPipeline=0 -BadPipeline=0 -AinPipeline=0 -BinPipeline=0 -AoutPipeline=0 -BoutPipeline=1 -AMOR=0 -BMOR=0 -AInData=Registered -BInData=Registered -AAdControl=Registered -BAdControl=Registered -MemFile=ip_mem.mem -MemFormat=orca -Reset=Sync -GSR=Enabled -WriteA=Normal -WriteB=Normal -Pad=0 -EnECC=0 -Optimization=Speed -Pipeline=0 - -[FilesGenerated] -ip_mem.mem=mem diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.mem b/gbe2_ecp3/ipcores_ecp3/ip_mem.mem deleted file mode 100755 index 836ca91..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem.mem +++ /dev/null @@ -1,277 +0,0 @@ -#Format=Address-Hex -#Depth=256 -#DataWidth=32 -#AddrRadix=3 -#DataRadix=3 - -00: 214397e9 -01: 0000001b -02: c0a80002 -03: 0000c350 -04: 023bdc00 -05: 00000013 -06: c0a80005 -07: 0000c350 -08: 00000578 -09: 00000000 -0a: 00000000 -0b: 00000000 -0c: 00000000 -0d: 00000000 -0e: 00000000 -0f: 00000000 - -10: 214397e9 -11: 0000001b -12: c0a80002 -13: 0000c351 -14: 023bdc01 -15: 00000013 -16: c0a80006 -17: 0000c350 -18: 00000578 -19: 00000000 -1a: 00000000 -1b: 00000000 -1c: 00000000 -1d: 00000000 -1e: 00000000 -1f: 00000000 - -20: 214397e9 -21: 0000001b -22: c0a80002 -23: 0000c352 -24: 023bdc02 -25: 00000013 -26: c0a80007 -27: 0000c350 -28: 00000578 -29: 00000000 -2a: 00000000 -2b: 00000000 -2c: 00000000 -2d: 00000000 -2e: 00000000 -2f: 00000000 - -30: 214397e9 -31: 0000001b -32: c0a80002 -33: 0000c353 -34: 023bdc03 -35: 00000013 -36: c0a80008 -37: 0000c350 -38: 00000578 -39: 00000000 -3a: 00000000 -3b: 00000000 -3c: 00000000 -3d: 00000000 -3e: 00000000 -3f: 00000000 - -40: 00000000 -41: 00000000 -42: 00000000 -43: 00000000 -44: 00000000 -45: 00000000 -46: 00000000 -47: 00000000 -48: 00000578 -49: 00000000 -4a: 00000000 -4b: 00000000 -4c: 00000000 -4d: 00000000 -4e: 00000000 -4f: 00000000 - -50: 00000000 -51: 00000000 -52: 00000000 -53: 00000000 -54: 00000000 -55: 00000000 -56: 00000000 -57: 00000000 -58: 00000578 -59: 00000000 -5a: 00000000 -5b: 00000000 -5c: 00000000 -5d: 00000000 -5e: 00000000 -5f: 00000000 - -60: 00000000 -61: 00000000 -62: 00000000 -63: 00000000 -64: 00000000 -65: 00000000 -66: 00000000 -67: 00000000 -68: 00000578 -69: 00000000 -6a: 00000000 -6b: 00000000 -6c: 00000000 -6d: 00000000 -6e: 00000000 -6f: 00000000 - -70: 00000000 -71: 00000000 -72: 00000000 -73: 00000000 -74: 00000000 -75: 00000000 -76: 00000000 -77: 00000000 -78: 00000578 -79: 00000000 -7a: 00000000 -7b: 00000000 -7c: 00000000 -7d: 00000000 -7e: 00000000 -7f: 00000000 - -80: 00000000 -81: 00000000 -82: 00000000 -83: 00000000 -84: 00000000 -85: 00000000 -86: 00000000 -87: 00000000 -88: 00000578 -89: 00000000 -8a: 00000000 -8b: 00000000 -8c: 00000000 -8d: 00000000 -8e: 00000000 -8f: 00000000 - -90: 00000000 -91: 00000000 -92: 00000000 -93: 00000000 -94: 00000000 -95: 00000000 -96: 00000000 -97: 00000000 -98: 00000578 -99: 00000000 -9a: 00000000 -9b: 00000000 -9c: 00000000 -9d: 00000000 -9e: 00000000 -9f: 00000000 - -a0: 00000000 -a1: 00000000 -a2: 00000000 -a3: 00000000 -a4: 00000000 -a5: 00000000 -a6: 00000000 -a7: 00000000 -a8: 00000578 -a9: 00000000 -aa: 00000000 -ab: 00000000 -ac: 00000000 -ad: 00000000 -ae: 00000000 -af: 00000000 - -b0: 00000000 -b1: 00000000 -b2: 00000000 -b3: 00000000 -b4: 00000000 -b5: 00000000 -b6: 00000000 -b7: 00000000 -b8: 00000578 -b9: 00000000 -ba: 00000000 -bb: 00000000 -bc: 00000000 -bd: 00000000 -be: 00000000 -bf: 00000000 - -c0: 00000000 -c1: 00000000 -c2: 00000000 -c3: 00000000 -c4: 00000000 -c5: 00000000 -c6: 00000000 -c7: 00000000 -c8: 00000578 -c9: 00000000 -ca: 00000000 -cb: 00000000 -cc: 00000000 -cd: 00000000 -ce: 00000000 -cf: 00000000 - -d0: 00000000 -d1: 00000000 -d2: 00000000 -d3: 00000000 -d4: 00000000 -d5: 00000000 -d6: 00000000 -d7: 00000000 -d8: 00000578 -d9: 00000000 -da: 00000000 -db: 00000000 -dc: 00000000 -dd: 00000000 -de: 00000000 -df: 00000000 - -e0: 00000000 -e1: 00000000 -e2: 00000000 -e3: 00000000 -e4: 00000000 -e5: 00000000 -e6: 00000000 -e7: 00000000 -e8: 00000578 -e9: 00000000 -ea: 00000000 -eb: 00000000 -ec: 00000000 -ed: 00000000 -ee: 00000000 -ef: 00000000 - -f0: 00000000 -f1: 00000000 -f2: 00000000 -f3: 00000000 -f4: 00000000 -f5: 00000000 -f6: 00000000 -f7: 00000000 -f8: 00000578 -f9: 00000000 -fa: 00000000 -fb: 00000000 -fc: 00000000 -fd: 00000000 -fe: 00000000 -ff: 00000000 diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.mem.bak b/gbe2_ecp3/ipcores_ecp3/ip_mem.mem.bak deleted file mode 100755 index 9810f31..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem.mem.bak +++ /dev/null @@ -1,277 +0,0 @@ -#Format=Address-Hex -#Depth=256 -#DataWidth=32 -#AddrRadix=3 -#DataRadix=3 - -00: 00006cf0 -01: 4902d745 -02: c0a80002 -03: 0000c350 -04: 0000eeee -05: eeeeeeee -06: c0a80005 -07: 0000c350 -08: 00000578 -09: 00000000 -0a: 00000000 -0b: 00000000 -0c: 00000000 -0d: 00000000 -0e: 00000000 -0f: 00000000 - -10: 00000000 -11: 00000000 -12: 00000000 -13: 00000000 -14: 00000000 -15: 00000000 -16: 00000000 -17: 00000000 -18: 00000578 -19: 00000000 -1a: 00000000 -1b: 00000000 -1c: 00000000 -1d: 00000000 -1e: 00000000 -1f: 00000000 - -20: 00000000 -21: 00000000 -22: 00000000 -23: 00000000 -24: 00000000 -25: 00000000 -26: 00000000 -27: 00000000 -28: 00000578 -29: 00000000 -2a: 00000000 -2b: 00000000 -2c: 00000000 -2d: 00000000 -2e: 00000000 -2f: 00000000 - -30: 00000000 -31: 00000000 -32: 00000000 -33: 00000000 -34: 00000000 -35: 00000000 -36: 00000000 -37: 00000000 -38: 00000578 -39: 00000000 -3a: 00000000 -3b: 00000000 -3c: 00000000 -3d: 00000000 -3e: 00000000 -3f: 00000000 - -40: 00000000 -41: 00000000 -42: 00000000 -43: 00000000 -44: 00000000 -45: 00000000 -46: 00000000 -47: 00000000 -48: 00000578 -49: 00000000 -4a: 00000000 -4b: 00000000 -4c: 00000000 -4d: 00000000 -4e: 00000000 -4f: 00000000 - -50: 00000000 -51: 00000000 -52: 00000000 -53: 00000000 -54: 00000000 -55: 00000000 -56: 00000000 -57: 00000000 -58: 00000578 -59: 00000000 -5a: 00000000 -5b: 00000000 -5c: 00000000 -5d: 00000000 -5e: 00000000 -5f: 00000000 - -60: 00000000 -61: 00000000 -62: 00000000 -63: 00000000 -64: 00000000 -65: 00000000 -66: 00000000 -67: 00000000 -68: 00000578 -69: 00000000 -6a: 00000000 -6b: 00000000 -6c: 00000000 -6d: 00000000 -6e: 00000000 -6f: 00000000 - -70: 00000000 -71: 00000000 -72: 00000000 -73: 00000000 -74: 00000000 -75: 00000000 -76: 00000000 -77: 00000000 -78: 00000578 -79: 00000000 -7a: 00000000 -7b: 00000000 -7c: 00000000 -7d: 00000000 -7e: 00000000 -7f: 00000000 - -80: 00000000 -81: 00000000 -82: 00000000 -83: 00000000 -84: 00000000 -85: 00000000 -86: 00000000 -87: 00000000 -88: 00000578 -89: 00000000 -8a: 00000000 -8b: 00000000 -8c: 00000000 -8d: 00000000 -8e: 00000000 -8f: 00000000 - -90: 00000000 -91: 00000000 -92: 00000000 -93: 00000000 -94: 00000000 -95: 00000000 -96: 00000000 -97: 00000000 -98: 00000578 -99: 00000000 -9a: 00000000 -9b: 00000000 -9c: 00000000 -9d: 00000000 -9e: 00000000 -9f: 00000000 - -a0: 00000000 -a1: 00000000 -a2: 00000000 -a3: 00000000 -a4: 00000000 -a5: 00000000 -a6: 00000000 -a7: 00000000 -a8: 00000578 -a9: 00000000 -aa: 00000000 -ab: 00000000 -ac: 00000000 -ad: 00000000 -ae: 00000000 -af: 00000000 - -b0: 00000000 -b1: 00000000 -b2: 00000000 -b3: 00000000 -b4: 00000000 -b5: 00000000 -b6: 00000000 -b7: 00000000 -b8: 00000578 -b9: 00000000 -ba: 00000000 -bb: 00000000 -bc: 00000000 -bd: 00000000 -be: 00000000 -bf: 00000000 - -c0: 00000000 -c1: 00000000 -c2: 00000000 -c3: 00000000 -c4: 00000000 -c5: 00000000 -c6: 00000000 -c7: 00000000 -c8: 00000578 -c9: 00000000 -ca: 00000000 -cb: 00000000 -cc: 00000000 -cd: 00000000 -ce: 00000000 -cf: 00000000 - -d0: 00000000 -d1: 00000000 -d2: 00000000 -d3: 00000000 -d4: 00000000 -d5: 00000000 -d6: 00000000 -d7: 00000000 -d8: 00000578 -d9: 00000000 -da: 00000000 -db: 00000000 -dc: 00000000 -dd: 00000000 -de: 00000000 -df: 00000000 - -e0: 00000000 -e1: 00000000 -e2: 00000000 -e3: 00000000 -e4: 00000000 -e5: 00000000 -e6: 00000000 -e7: 00000000 -e8: 00000578 -e9: 00000000 -ea: 00000000 -eb: 00000000 -ec: 00000000 -ed: 00000000 -ee: 00000000 -ef: 00000000 - -f0: 00000000 -f1: 00000000 -f2: 00000000 -f3: 00000000 -f4: 00000000 -f5: 00000000 -f6: 00000000 -f7: 00000000 -f8: 00000578 -f9: 00000000 -fa: 00000000 -fb: 00000000 -fc: 00000000 -fd: 00000000 -fe: 00000000 -ff: 00000000 diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.naf b/gbe2_ecp3/ipcores_ecp3/ip_mem.naf deleted file mode 100755 index 11b52d7..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem.naf +++ /dev/null @@ -1,152 +0,0 @@ -DataInA[31] i -DataInA[30] i -DataInA[29] i -DataInA[28] i -DataInA[27] i -DataInA[26] i -DataInA[25] i -DataInA[24] i -DataInA[23] i -DataInA[22] i -DataInA[21] i -DataInA[20] i -DataInA[19] i -DataInA[18] i -DataInA[17] i -DataInA[16] i -DataInA[15] i -DataInA[14] i -DataInA[13] i -DataInA[12] i -DataInA[11] i -DataInA[10] i -DataInA[9] i -DataInA[8] i -DataInA[7] i -DataInA[6] i -DataInA[5] i -DataInA[4] i -DataInA[3] i -DataInA[2] i -DataInA[1] i -DataInA[0] i -DataInB[31] i -DataInB[30] i -DataInB[29] i -DataInB[28] i -DataInB[27] i -DataInB[26] i -DataInB[25] i -DataInB[24] i -DataInB[23] i -DataInB[22] i -DataInB[21] i -DataInB[20] i -DataInB[19] i -DataInB[18] i -DataInB[17] i -DataInB[16] i -DataInB[15] i -DataInB[14] i -DataInB[13] i -DataInB[12] i -DataInB[11] i -DataInB[10] i -DataInB[9] i -DataInB[8] i -DataInB[7] i -DataInB[6] i -DataInB[5] i -DataInB[4] i -DataInB[3] i -DataInB[2] i -DataInB[1] i -DataInB[0] i -AddressA[7] i -AddressA[6] i -AddressA[5] i -AddressA[4] i -AddressA[3] i -AddressA[2] i -AddressA[1] i -AddressA[0] i -AddressB[7] i -AddressB[6] i -AddressB[5] i -AddressB[4] i -AddressB[3] i -AddressB[2] i -AddressB[1] i -AddressB[0] i -ClockA i -ClockB i -ClockEnA i -ClockEnB i -WrA i -WrB i -ResetA i -ResetB i -QA[31] o -QA[30] o -QA[29] o -QA[28] o -QA[27] o -QA[26] o -QA[25] o -QA[24] o -QA[23] o -QA[22] o -QA[21] o -QA[20] o -QA[19] o -QA[18] o -QA[17] o -QA[16] o -QA[15] o -QA[14] o -QA[13] o -QA[12] o -QA[11] o -QA[10] o -QA[9] o -QA[8] o -QA[7] o -QA[6] o -QA[5] o -QA[4] o -QA[3] o -QA[2] o -QA[1] o -QA[0] o -QB[31] o -QB[30] o -QB[29] o -QB[28] o -QB[27] o -QB[26] o -QB[25] o -QB[24] o -QB[23] o -QB[22] o -QB[21] o -QB[20] o -QB[19] o -QB[18] o -QB[17] o -QB[16] o -QB[15] o -QB[14] o -QB[13] o -QB[12] o -QB[11] o -QB[10] o -QB[9] o -QB[8] o -QB[7] o -QB[6] o -QB[5] o -QB[4] o -QB[3] o -QB[2] o -QB[1] o -QB[0] o diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.sort b/gbe2_ecp3/ipcores_ecp3/ip_mem.sort deleted file mode 100644 index d965f9c..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem.sort +++ /dev/null @@ -1 +0,0 @@ -ip_mem.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.srp b/gbe2_ecp3/ipcores_ecp3/ip_mem.srp deleted file mode 100755 index edd5574..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem.srp +++ /dev/null @@ -1,29 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:24:37 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n ip_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ramdp -device LFE3-150EA -aaddr_width 8 -widtha 32 -baddr_width 8 -widthb 32 -anum_words 256 -bnum_words 256 -outdataB REGISTERED -writemodeA NORMAL -writemodeB NORMAL -memfile ip_mem.mem -memformat orca -cascade -1 -e - Circuit name : ip_mem - Module type : RAM_DP_TRUE - Module Version : 7.1 - Ports : - Inputs : DataInA[31:0], DataInB[31:0], AddressA[7:0], AddressB[7:0], ClockA, ClockB, ClockEnA, ClockEnB, WrA, WrB, ResetA, ResetB - Outputs : QA[31:0], QB[31:0] - I/O buffer : not inserted - Memory file : ip_mem.mem - EDIF output : suppressed - VHDL output : ip_mem.vhd - VHDL template : ip_mem_tmpl.vhd - VHDL testbench : tb_ip_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : ip_mem.srp - Element Usage : - DP16KC : 2 - Estimated Resource Usage: - EBR : 2 diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.sym b/gbe2_ecp3/ipcores_ecp3/ip_mem.sym deleted file mode 100644 index 2ef039abfce77024479453feee2ddeaf61914ea5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmY+Cze~eV6ov13Eu|F;9UMA11nD51A{GScki@ni2>zf_p^8)+L9{ir9UL4wI5&sB%TbxmoG5EEGI11TiM8{K<1<_2nsy79|E(i(PwU|} zvPoTAZnOHCet^em&-#GglGn(mOO0M*y=~W*m%^S#%=+>%l{vqe;zVP7MOk9U?Ycdl zlBLb4S?CEP%QNz{J{BSyt95KC(gY~{8AtYED$b8wr3y)IPg-CHh;8mxx$`b@!n_ye zlQ#b4bBR;$u;sSGIkS9QnOPPYDdPbtc4g67@HLA*?FDRuiNW=zc?^S7y=xB00X{YR zWFI5V1M&dhnmw|Icz7B776w;Fvq?5FuTu0v7A$HWiorjipt(=(i>28jTOu;UJ?zL* EKQOyppa1{> diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem.vhd b/gbe2_ecp3/ipcores_ecp3/ip_mem.vhd deleted file mode 100755 index 5b2e06e..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem.vhd +++ /dev/null @@ -1,379 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 7.1 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type bram -wp 11 -rp 1010 -data_width 32 -rdata_width 32 -num_rows 256 -outdataB REGISTERED -writemodeA NORMAL -writemodeB NORMAL -memfile ip_mem.mem -memformat orca -cascade -1 -e - --- Thu Sep 22 11:24:37 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity ip_mem is - port ( - DataInA: in std_logic_vector(31 downto 0); - DataInB: in std_logic_vector(31 downto 0); - AddressA: in std_logic_vector(7 downto 0); - AddressB: in std_logic_vector(7 downto 0); - ClockA: in std_logic; - ClockB: in std_logic; - ClockEnA: in std_logic; - ClockEnB: in std_logic; - WrA: in std_logic; - WrB: in std_logic; - ResetA: in std_logic; - ResetB: in std_logic; - QA: out std_logic_vector(31 downto 0); - QB: out std_logic_vector(31 downto 0)); -end ip_mem; - -architecture Structure of ip_mem is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component DP16KC - generic (INITVAL_3F : in String; INITVAL_3E : in String; - INITVAL_3D : in String; INITVAL_3C : in String; - INITVAL_3B : in String; INITVAL_3A : in String; - INITVAL_39 : in String; INITVAL_38 : in String; - INITVAL_37 : in String; INITVAL_36 : in String; - INITVAL_35 : in String; INITVAL_34 : in String; - INITVAL_33 : in String; INITVAL_32 : in String; - INITVAL_31 : in String; INITVAL_30 : in String; - INITVAL_2F : in String; INITVAL_2E : in String; - INITVAL_2D : in String; INITVAL_2C : in String; - INITVAL_2B : in String; INITVAL_2A : in String; - INITVAL_29 : in String; INITVAL_28 : in String; - INITVAL_27 : in String; INITVAL_26 : in String; - INITVAL_25 : in String; INITVAL_24 : in String; - INITVAL_23 : in String; INITVAL_22 : in String; - INITVAL_21 : in String; INITVAL_20 : in String; - INITVAL_1F : in String; INITVAL_1E : in String; - INITVAL_1D : in String; INITVAL_1C : in String; - INITVAL_1B : in String; INITVAL_1A : in String; - INITVAL_19 : in String; INITVAL_18 : in String; - INITVAL_17 : in String; INITVAL_16 : in String; - INITVAL_15 : in String; INITVAL_14 : in String; - INITVAL_13 : in String; INITVAL_12 : in String; - INITVAL_11 : in String; INITVAL_10 : in String; - INITVAL_0F : in String; INITVAL_0E : in String; - INITVAL_0D : in String; INITVAL_0C : in String; - INITVAL_0B : in String; INITVAL_0A : in String; - INITVAL_09 : in String; INITVAL_08 : in String; - INITVAL_07 : in String; INITVAL_06 : in String; - INITVAL_05 : in String; INITVAL_04 : in String; - INITVAL_03 : in String; INITVAL_02 : in String; - INITVAL_01 : in String; INITVAL_00 : in String; - GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute MEM_LPC_FILE of ip_mem_0_0_1 : label is "ip_mem.lpc"; - attribute MEM_INIT_FILE of ip_mem_0_0_1 : label is "ip_mem.mem"; - attribute RESETMODE of ip_mem_0_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of ip_mem_0_1_0 : label is "ip_mem.lpc"; - attribute MEM_INIT_FILE of ip_mem_0_1_0 : label is "ip_mem.mem"; - attribute RESETMODE of ip_mem_0_1_0 : label is "SYNC"; - -begin - -- component instantiation statements - ip_mem_0_0_1: DP16KC - generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0F=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0E=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0D=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0C=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0B=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0A=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_09=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_08=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_07=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_06=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_05=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_04=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_03=> "0x00000000000000000000000000000000000005780C35000008000133DC030C353000020001B397E9", - INITVAL_02=> "0x00000000000000000000000000000000000005780C35000007000133DC020C352000020001B397E9", - INITVAL_01=> "0x00000000000000000000000000000000000005780C35000006000133DC010C351000020001B397E9", - INITVAL_00=> "0x00000000000000000000000000000000000005780C35000005000133DC000C350000020001B397E9", - CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", REGMODE_B=> "OUTREG", - REGMODE_A=> "NOREG", DATA_WIDTH_B=> 18, DATA_WIDTH_A=> 18) - port map (DIA0=>DataInA(0), DIA1=>DataInA(1), DIA2=>DataInA(2), - DIA3=>DataInA(3), DIA4=>DataInA(4), DIA5=>DataInA(5), - DIA6=>DataInA(6), DIA7=>DataInA(7), DIA8=>DataInA(8), - DIA9=>DataInA(9), DIA10=>DataInA(10), DIA11=>DataInA(11), - DIA12=>DataInA(12), DIA13=>DataInA(13), DIA14=>DataInA(14), - DIA15=>DataInA(15), DIA16=>DataInA(16), DIA17=>DataInA(17), - ADA0=>scuba_vhi, ADA1=>scuba_vhi, ADA2=>scuba_vlo, - ADA3=>scuba_vlo, ADA4=>AddressA(0), ADA5=>AddressA(1), - ADA6=>AddressA(2), ADA7=>AddressA(3), ADA8=>AddressA(4), - ADA9=>AddressA(5), ADA10=>AddressA(6), ADA11=>AddressA(7), - ADA12=>scuba_vlo, ADA13=>scuba_vlo, CEA=>ClockEnA, - CLKA=>ClockA, OCEA=>ClockEnA, WEA=>WrA, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>ResetA, - DIB0=>DataInB(0), DIB1=>DataInB(1), DIB2=>DataInB(2), - DIB3=>DataInB(3), DIB4=>DataInB(4), DIB5=>DataInB(5), - DIB6=>DataInB(6), DIB7=>DataInB(7), DIB8=>DataInB(8), - DIB9=>DataInB(9), DIB10=>DataInB(10), DIB11=>DataInB(11), - DIB12=>DataInB(12), DIB13=>DataInB(13), DIB14=>DataInB(14), - DIB15=>DataInB(15), DIB16=>DataInB(16), DIB17=>DataInB(17), - ADB0=>scuba_vhi, ADB1=>scuba_vhi, ADB2=>scuba_vlo, - ADB3=>scuba_vlo, ADB4=>AddressB(0), ADB5=>AddressB(1), - ADB6=>AddressB(2), ADB7=>AddressB(3), ADB8=>AddressB(4), - ADB9=>AddressB(5), ADB10=>AddressB(6), ADB11=>AddressB(7), - ADB12=>scuba_vlo, ADB13=>scuba_vlo, CEB=>ClockEnB, - CLKB=>ClockB, OCEB=>ClockEnB, WEB=>WrB, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>ResetB, DOA0=>QA(0), - DOA1=>QA(1), DOA2=>QA(2), DOA3=>QA(3), DOA4=>QA(4), - DOA5=>QA(5), DOA6=>QA(6), DOA7=>QA(7), DOA8=>QA(8), - DOA9=>QA(9), DOA10=>QA(10), DOA11=>QA(11), DOA12=>QA(12), - DOA13=>QA(13), DOA14=>QA(14), DOA15=>QA(15), DOA16=>QA(16), - DOA17=>QA(17), DOB0=>QB(0), DOB1=>QB(1), DOB2=>QB(2), - DOB3=>QB(3), DOB4=>QB(4), DOB5=>QB(5), DOB6=>QB(6), - DOB7=>QB(7), DOB8=>QB(8), DOB9=>QB(9), DOB10=>QB(10), - DOB11=>QB(11), DOB12=>QB(12), DOB13=>QB(13), DOB14=>QB(14), - DOB15=>QB(15), DOB16=>QB(16), DOB17=>QB(17)); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - ip_mem_0_1_0: DP16KC - generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_09=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_08=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_07=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_06=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_05=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_04=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_03=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - INITVAL_02=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - INITVAL_01=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - INITVAL_00=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", REGMODE_B=> "OUTREG", - REGMODE_A=> "NOREG", DATA_WIDTH_B=> 18, DATA_WIDTH_A=> 18) - port map (DIA0=>DataInA(18), DIA1=>DataInA(19), - DIA2=>DataInA(20), DIA3=>DataInA(21), DIA4=>DataInA(22), - DIA5=>DataInA(23), DIA6=>DataInA(24), DIA7=>DataInA(25), - DIA8=>DataInA(26), DIA9=>DataInA(27), DIA10=>DataInA(28), - DIA11=>DataInA(29), DIA12=>DataInA(30), DIA13=>DataInA(31), - DIA14=>scuba_vlo, DIA15=>scuba_vlo, DIA16=>scuba_vlo, - DIA17=>scuba_vlo, ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>AddressA(0), - ADA5=>AddressA(1), ADA6=>AddressA(2), ADA7=>AddressA(3), - ADA8=>AddressA(4), ADA9=>AddressA(5), ADA10=>AddressA(6), - ADA11=>AddressA(7), ADA12=>scuba_vlo, ADA13=>scuba_vlo, - CEA=>ClockEnA, CLKA=>ClockA, OCEA=>ClockEnA, WEA=>WrA, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>ResetA, DIB0=>DataInB(18), DIB1=>DataInB(19), - DIB2=>DataInB(20), DIB3=>DataInB(21), DIB4=>DataInB(22), - DIB5=>DataInB(23), DIB6=>DataInB(24), DIB7=>DataInB(25), - DIB8=>DataInB(26), DIB9=>DataInB(27), DIB10=>DataInB(28), - DIB11=>DataInB(29), DIB12=>DataInB(30), DIB13=>DataInB(31), - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vhi, ADB1=>scuba_vhi, - ADB2=>scuba_vlo, ADB3=>scuba_vlo, ADB4=>AddressB(0), - ADB5=>AddressB(1), ADB6=>AddressB(2), ADB7=>AddressB(3), - ADB8=>AddressB(4), ADB9=>AddressB(5), ADB10=>AddressB(6), - ADB11=>AddressB(7), ADB12=>scuba_vlo, ADB13=>scuba_vlo, - CEB=>ClockEnB, CLKB=>ClockB, OCEB=>ClockEnB, WEB=>WrB, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>ResetB, DOA0=>QA(18), DOA1=>QA(19), DOA2=>QA(20), - DOA3=>QA(21), DOA4=>QA(22), DOA5=>QA(23), DOA6=>QA(24), - DOA7=>QA(25), DOA8=>QA(26), DOA9=>QA(27), DOA10=>QA(28), - DOA11=>QA(29), DOA12=>QA(30), DOA13=>QA(31), DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>QB(18), - DOB1=>QB(19), DOB2=>QB(20), DOB3=>QB(21), DOB4=>QB(22), - DOB5=>QB(23), DOB6=>QB(24), DOB7=>QB(25), DOB8=>QB(26), - DOB9=>QB(27), DOB10=>QB(28), DOB11=>QB(29), DOB12=>QB(30), - DOB13=>QB(31), DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of ip_mem is - for Structure - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem_generate.log b/gbe2_ecp3/ipcores_ecp3/ip_mem_generate.log deleted file mode 100755 index 36881d4..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem_generate.log +++ /dev/null @@ -1,47 +0,0 @@ -Starting process: Module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:24:37 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n ip_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ramdp -device LFE3-150EA -aaddr_width 8 -widtha 32 -baddr_width 8 -widthb 32 -anum_words 256 -bnum_words 256 -outdataB REGISTERED -writemodeA NORMAL -writemodeB NORMAL -memfile ip_mem.mem -memformat orca -cascade -1 -e - Circuit name : ip_mem - Module type : RAM_DP_TRUE - Module Version : 7.1 - Ports : - Inputs : DataInA[31:0], DataInB[31:0], AddressA[7:0], AddressB[7:0], ClockA, ClockB, ClockEnA, ClockEnB, WrA, WrB, ResetA, ResetB - Outputs : QA[31:0], QB[31:0] - I/O buffer : not inserted - Memory file : ip_mem.mem - EDIF output : suppressed - VHDL output : ip_mem.vhd - VHDL template : ip_mem_tmpl.vhd - VHDL testbench : tb_ip_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : ip_mem.srp - Estimated Resource Usage: - EBR : 2 - -END SCUBA Module Synthesis - -File: ip_mem.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/ip_mem_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/ip_mem_tmpl.vhd deleted file mode 100755 index d516b11..0000000 --- a/gbe2_ecp3/ipcores_ecp3/ip_mem_tmpl.vhd +++ /dev/null @@ -1,23 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 7.1 --- Thu Sep 22 11:24:37 2011 - --- parameterized module component declaration -component ip_mem - port (DataInA: in std_logic_vector(31 downto 0); - DataInB: in std_logic_vector(31 downto 0); - AddressA: in std_logic_vector(7 downto 0); - AddressB: in std_logic_vector(7 downto 0); - ClockA: in std_logic; ClockB: in std_logic; - ClockEnA: in std_logic; ClockEnB: in std_logic; - WrA: in std_logic; WrB: in std_logic; ResetA: in std_logic; - ResetB: in std_logic; QA: out std_logic_vector(31 downto 0); - QB: out std_logic_vector(31 downto 0)); -end component; - --- parameterized module component instance -__ : ip_mem - port map (DataInA(31 downto 0)=>__, DataInB(31 downto 0)=>__, - AddressA(7 downto 0)=>__, AddressB(7 downto 0)=>__, ClockA=>__, - ClockB=>__, ClockEnA=>__, ClockEnB=>__, WrA=>__, WrB=>__, ResetA=>__, - ResetB=>__, QA(31 downto 0)=>__, QB(31 downto 0)=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/macInitDataInvWithMac.mem b/gbe2_ecp3/ipcores_ecp3/macInitDataInvWithMac.mem deleted file mode 100755 index c93b822..0000000 --- a/gbe2_ecp3/ipcores_ecp3/macInitDataInvWithMac.mem +++ /dev/null @@ -1,59 +0,0 @@ -#Format=Bin -#Depth=54 -#Width=8 -#AddrRadix=3 -#DataRadix=3 -#Data -00001111 -00001111 -10011001 -00000001 -11101110 -00000101 -00000000 -00000000 -00001100 -00000000 -00110100 -00010010 -01111000 -01010110 -10111100 -10011010 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -10000000 diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.ipx b/gbe2_ecp3/ipcores_ecp3/mac_init_mem.ipx deleted file mode 100644 index f73d4c2..0000000 --- a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.ipx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.jhd b/gbe2_ecp3/ipcores_ecp3/mac_init_mem.jhd deleted file mode 100644 index 792bd48..0000000 --- a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.jhd +++ /dev/null @@ -1,7 +0,0 @@ -MODULE mac_init_mem DEFIN mac_init_mem.vhd - SUBMODULE DP16KC - INSTANCE mac_init_mem_0_0_0 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE VHI - INSTANCE scuba_vhi_inst diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.lpc b/gbe2_ecp3/ipcores_ecp3/mac_init_mem.lpc deleted file mode 100755 index 42f57b0..0000000 --- a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.lpc +++ /dev/null @@ -1,48 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=ROM -CoreRevision=5.0 -ModuleName=mac_init_mem -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:24:53 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -Address=54 -Data=8 -adPipeline=0 -inPipeline=0 -outPipeline=1 -MOR=0 -InData=Registered -AdControl=Registered -MemFile=macInitDataInvWithMac.mem -MemFormat=bin -Reset=Sync -Pad=0 -GSR=Enabled -EnECC=0 -Optimization=Speed -Pipeline=0 - -[FilesGenerated] -macInitDataInvWithMac.mem=mem diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.naf b/gbe2_ecp3/ipcores_ecp3/mac_init_mem.naf deleted file mode 100644 index c78cc61..0000000 --- a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.naf +++ /dev/null @@ -1,17 +0,0 @@ -Address[5] i -Address[4] i -Address[3] i -Address[2] i -Address[1] i -Address[0] i -OutClock i -OutClockEn i -Reset i -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.sort b/gbe2_ecp3/ipcores_ecp3/mac_init_mem.sort deleted file mode 100644 index 09863c5..0000000 --- a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.sort +++ /dev/null @@ -1 +0,0 @@ -mac_init_mem.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.srp b/gbe2_ecp3/ipcores_ecp3/mac_init_mem.srp deleted file mode 100755 index 0152dbc..0000000 --- a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.srp +++ /dev/null @@ -1,29 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:24:53 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n mac_init_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type romblk -device LFE3-150EA -addr_width 6 -data_width 8 -num_words 54 -outdata REGISTERED -memfile macInitDataInvWithMac.mem -memformat bin -cascade -1 -e - Circuit name : mac_init_mem - Module type : EBR_ROM - Module Version : 5.0 - Ports : - Inputs : Address[5:0], OutClock, OutClockEn, Reset - Outputs : Q[7:0] - I/O buffer : not inserted - Memory file : macInitDataInvWithMac.mem - EDIF output : suppressed - VHDL output : mac_init_mem.vhd - VHDL template : mac_init_mem_tmpl.vhd - VHDL testbench : tb_mac_init_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : mac_init_mem.srp - Element Usage : - DP16KC : 1 - Estimated Resource Usage: - EBR : 1 diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.sym b/gbe2_ecp3/ipcores_ecp3/mac_init_mem.sym deleted file mode 100644 index 1d18ea4ad1ed04ad2803f6be2eb2c39e3ea617df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmZ1z&Hx0=K+MI+0%9@91qwF-Wi~KWKx9~hQj1edfFc4+ z1q?k5DsD3v7}x@%&B10fFfcOvhk|Sn;mJ)*j?c`?EQ!xe&1GQN#lXRMfx#6h!@(%P z;L3Q8fs^3_V*%KdTMUd~8x(-HJOi^Q0R1w7;S-o$0Av?1`~#{7`AGqYfxZUP3_$%4 F7y#!LFqQxS diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.vhd b/gbe2_ecp3/ipcores_ecp3/mac_init_mem.vhd deleted file mode 100755 index 3934a61..0000000 --- a/gbe2_ecp3/ipcores_ecp3/mac_init_mem.vhd +++ /dev/null @@ -1,262 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.0 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type bram -wp 00 -rp 1100 -addr_width 6 -data_width 8 -num_rows 54 -outdata REGISTERED -memfile macInitDataInvWithMac.mem -memformat bin -cascade -1 -e - --- Thu Sep 22 11:24:53 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity mac_init_mem is - port ( - Address: in std_logic_vector(5 downto 0); - OutClock: in std_logic; - OutClockEn: in std_logic; - Reset: in std_logic; - Q: out std_logic_vector(7 downto 0)); -end mac_init_mem; - -architecture Structure of mac_init_mem is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component DP16KC - generic (INITVAL_3F : in String; INITVAL_3E : in String; - INITVAL_3D : in String; INITVAL_3C : in String; - INITVAL_3B : in String; INITVAL_3A : in String; - INITVAL_39 : in String; INITVAL_38 : in String; - INITVAL_37 : in String; INITVAL_36 : in String; - INITVAL_35 : in String; INITVAL_34 : in String; - INITVAL_33 : in String; INITVAL_32 : in String; - INITVAL_31 : in String; INITVAL_30 : in String; - INITVAL_2F : in String; INITVAL_2E : in String; - INITVAL_2D : in String; INITVAL_2C : in String; - INITVAL_2B : in String; INITVAL_2A : in String; - INITVAL_29 : in String; INITVAL_28 : in String; - INITVAL_27 : in String; INITVAL_26 : in String; - INITVAL_25 : in String; INITVAL_24 : in String; - INITVAL_23 : in String; INITVAL_22 : in String; - INITVAL_21 : in String; INITVAL_20 : in String; - INITVAL_1F : in String; INITVAL_1E : in String; - INITVAL_1D : in String; INITVAL_1C : in String; - INITVAL_1B : in String; INITVAL_1A : in String; - INITVAL_19 : in String; INITVAL_18 : in String; - INITVAL_17 : in String; INITVAL_16 : in String; - INITVAL_15 : in String; INITVAL_14 : in String; - INITVAL_13 : in String; INITVAL_12 : in String; - INITVAL_11 : in String; INITVAL_10 : in String; - INITVAL_0F : in String; INITVAL_0E : in String; - INITVAL_0D : in String; INITVAL_0C : in String; - INITVAL_0B : in String; INITVAL_0A : in String; - INITVAL_09 : in String; INITVAL_08 : in String; - INITVAL_07 : in String; INITVAL_06 : in String; - INITVAL_05 : in String; INITVAL_04 : in String; - INITVAL_03 : in String; INITVAL_02 : in String; - INITVAL_01 : in String; INITVAL_00 : in String; - GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute MEM_LPC_FILE of mac_init_mem_0_0_0 : label is "mac_init_mem.lpc"; - attribute MEM_INIT_FILE of mac_init_mem_0_0_0 : label is "macInitDataInvWithMac.mem"; - attribute RESETMODE of mac_init_mem_0_0_0 : label is "SYNC"; - -begin - -- component instantiation statements - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - mac_init_mem_0_0_0: DP16KC - generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_09=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_08=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_07=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_06=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_05=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_04=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_03=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_02=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_01=> "0x00000000000000000000000000008000000000000000000000000000000000000000000000000000", - INITVAL_00=> "0x0000000000000000000000000000000000000000134BC0AC78024340000C0000000AEE0029901E0F", - CSDECODE_B=> "0b111", CSDECODE_A=> "0b000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", REGMODE_B=> "NOREG", - REGMODE_A=> "OUTREG", DATA_WIDTH_B=> 9, DATA_WIDTH_A=> 9) - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>scuba_vlo, - ADA3=>Address(0), ADA4=>Address(1), ADA5=>Address(2), - ADA6=>Address(3), ADA7=>Address(4), ADA8=>Address(5), - ADA9=>scuba_vlo, ADA10=>scuba_vlo, ADA11=>scuba_vlo, - ADA12=>scuba_vlo, ADA13=>scuba_vlo, CEA=>OutClockEn, - CLKA=>OutClock, OCEA=>OutClockEn, WEA=>scuba_vlo, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>scuba_vlo, ADB4=>scuba_vlo, - ADB5=>scuba_vlo, ADB6=>scuba_vlo, ADB7=>scuba_vlo, - ADB8=>scuba_vlo, ADB9=>scuba_vlo, ADB10=>scuba_vlo, - ADB11=>scuba_vlo, ADB12=>scuba_vlo, ADB13=>scuba_vlo, - CEB=>scuba_vhi, CLKB=>scuba_vlo, OCEB=>scuba_vhi, - WEB=>scuba_vlo, CSB0=>scuba_vlo, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>scuba_vlo, DOA0=>Q(0), DOA1=>Q(1), - DOA2=>Q(2), DOA3=>Q(3), DOA4=>Q(4), DOA5=>Q(5), DOA6=>Q(6), - DOA7=>Q(7), DOA8=>open, DOA9=>open, DOA10=>open, DOA11=>open, - DOA12=>open, DOA13=>open, DOA14=>open, DOA15=>open, - DOA16=>open, DOA17=>open, DOB0=>open, DOB1=>open, DOB2=>open, - DOB3=>open, DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of mac_init_mem is - for Structure - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem_generate.log b/gbe2_ecp3/ipcores_ecp3/mac_init_mem_generate.log deleted file mode 100755 index 8c200b2..0000000 --- a/gbe2_ecp3/ipcores_ecp3/mac_init_mem_generate.log +++ /dev/null @@ -1,47 +0,0 @@ -Starting process: Module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Thu Sep 22 11:24:53 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n mac_init_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type romblk -device LFE3-150EA -addr_width 6 -data_width 8 -num_words 54 -outdata REGISTERED -memfile macInitDataInvWithMac.mem -memformat bin -cascade -1 -e - Circuit name : mac_init_mem - Module type : EBR_ROM - Module Version : 5.0 - Ports : - Inputs : Address[5:0], OutClock, OutClockEn, Reset - Outputs : Q[7:0] - I/O buffer : not inserted - Memory file : macInitDataInvWithMac.mem - EDIF output : suppressed - VHDL output : mac_init_mem.vhd - VHDL template : mac_init_mem_tmpl.vhd - VHDL testbench : tb_mac_init_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : mac_init_mem.srp - Estimated Resource Usage: - EBR : 1 - -END SCUBA Module Synthesis - -File: mac_init_mem.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/mac_init_mem_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/mac_init_mem_tmpl.vhd deleted file mode 100755 index 853efd2..0000000 --- a/gbe2_ecp3/ipcores_ecp3/mac_init_mem_tmpl.vhd +++ /dev/null @@ -1,15 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.0 --- Thu Sep 22 11:24:53 2011 - --- parameterized module component declaration -component mac_init_mem - port (Address: in std_logic_vector(5 downto 0); - OutClock: in std_logic; OutClockEn: in std_logic; - Reset: in std_logic; Q: out std_logic_vector(7 downto 0)); -end component; - --- parameterized module component instance -__ : mac_init_mem - port map (Address(5 downto 0)=>__, OutClock=>__, OutClockEn=>__, - Reset=>__, Q(7 downto 0)=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/msg_file.log b/gbe2_ecp3/ipcores_ecp3/msg_file.log deleted file mode 100755 index 0fba5db..0000000 --- a/gbe2_ecp3/ipcores_ecp3/msg_file.log +++ /dev/null @@ -1,33 +0,0 @@ -SCUBA, Version Diamond_1.4_Production (87) -Sat May 19 15:06:38 2012 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.4/ispfpga/bin/lin/scuba -w -n fifo_65536x18x9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type fifodc -addr_width 15 -data_width 18 -num_words 32768 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - Circuit name : fifo_65536x18x9 - Module type : ebfifo - Module Version : 5.4 - Ports : - Inputs : Data[17:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : fifo_65536x18x9.vhd - VHDL template : fifo_65536x18x9_tmpl.vhd - VHDL testbench : tb_fifo_65536x18x9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_65536x18x9.srp - Estimated Resource Usage: - LUT : 367 - EBR : 32 - Reg : 172 - -END SCUBA Module Synthesis - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/msg_file.log b/gbe2_ecp3/ipcores_ecp3/serdes/msg_file.log deleted file mode 100755 index 0bdfb30..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/msg_file.log +++ /dev/null @@ -1,13 +0,0 @@ - Module Name: serdes_gbe_0_extclock_8b - Core Name: PCS - LPC file : serdes_gbe_0_extclock_8b.lpc - Parameter File : serdes_gbe_0_extclock_8b.pp - Command line: /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/orcapp -Fmaco serdes_gbe_0_extclock_8b.pp - Return Value: - - - Module PCS has been generated in /home/greg/NewHub2/hub2/ipexpress/serdes successfully! - -/home/greg/.isplever_lin1/ispcpld/bin/hdl2jhd -tfi -mod serdes_gbe_0_extclock_8b -ext readme -out serdes_gbe_0_extclock_8b -tpl serdes_gbe_0_extclock_8b.tft serdes_gbe_0_extclock_8b.vhd - -Done successfully! diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.jhd b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.jhd deleted file mode 100755 index 0142dfe..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.jhd +++ /dev/null @@ -1,5 +0,0 @@ -MODULE serdes_gbe_0_extclock_8b DEFIN serdes_gbe_0_extclock_8b.vhd - SUBMODULE PCSC - INSTANCE PCSC_INST - SUBMODULE VLO - INSTANCE vlo_inst diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.lpc b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.lpc deleted file mode 100755 index 4efe9cf..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.lpc +++ /dev/null @@ -1,140 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-6F900C -SpeedGrade=-6 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=7.0 -ModuleName=serdes_gbe_0_extclock_8b -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=08/20/2009 -Time=11:50:53 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -Protocol=Quad -mode=Gigabit Ethernet -Channel0=SINGLE -Channel1=DISABLE -Channel2=DISABLE -Channel3=DISABLE -Rate0=None -Rate1=None -Rate2=None -Rate3=None -TxRefClk=REFCLK -RxRefClk=REFCLK -ClkRate=1.25 -ClkMult=10X -CalClkRate=125.0 -DataWidth=8 -FPGAClkRate=125.0 -TxRefClkCM=REFCLK -RxRefClk0CM=REFCLK -RxRefClk1CM=REFCLK -RxRefClk2CM=REFCLK -RxRefClk3CM=REFCLK -ClkRateH=0.625 -ClkMultH=10XH -CalClkRateH=125.0 -DataWidthH=8 -FPGAClkRateH=62.5 -VCh0=0 -VCh1=0 -VCh2=0 -VCh3=0 -PreCh0=DISABLE -PreCh1=DISABLE -PreCh2=DISABLE -PreCh3=DISABLE -TxCh0=50 -TxCh1=50 -TxCh2=50 -TxCh3=50 -EqCh0=DISABLE -EqCh1=DISABLE -EqCh2=DISABLE -EqCh3=DISABLE -RxTermCh0=50 -RxTermCh1=50 -RxTermCh2=50 -RxTermCh3=50 -RxCoupCh0=AC -RxCoupCh1=AC -RxCoupCh2=AC -RxCoupCh3=AC -Loss=0 -CDRLoss=0 -TxTerm=50 -TxCoup=AC -TxPllLoss=0 -TxInvCh0=NORMAL -TxInvCh1=NORMAL -TxInvCh2=NORMAL -TxInvCh3=NORMAL -RxInvCh0=NORMAL -RxInvCh1=NORMAL -RxInvCh2=NORMAL -RxInvCh3=NORMAL -RxModeCh0=NORMAL -RxModeCh1=NORMAL -RxModeCh2=NORMAL -RxModeCh3=NORMAL -Plus=1100000101 -Minus=0011111010 -Mask=1111111111 -Align=AUTO -CTCCh0=NORMAL -CTCCh1=NORMAL -CTCCh2=NORMAL -CTCCh3=NORMAL -CC_MATCH1=0000000000 -CC_MATCH2=0000000000 -CC_MATCH3=0110111100 -CC_MATCH4=0001010000 -MinIPG=3 -High=9 -Low=7 -CC_MATCH_MODE=MATCH_3_4 -RxDataCh0=FALSE -RxDataCh1=FALSE -RxDataCh2=FALSE -RxDataCh3=FALSE -AlignerCh0=FALSE -AlignerCh1=FALSE -AlignerCh2=FALSE -AlignerCh3=FALSE -DetectCh0=FALSE -DetectCh1=FALSE -DetectCh2=FALSE -DetectCh3=FALSE -ELSMCh0=FALSE -ELSMCh1=FALSE -ELSMCh2=FALSE -ELSMCh3=FALSE -_teidleCh0=FALSE -_teidleCh1=FALSE -_teidleCh2=FALSE -_teidleCh3=FALSE -Ports0=FALSE -rdoPorts0=Serial Loopback -Ports1=FALSE -Ports2=TRUE -Ports3=FALSE -Ports3_1=FALSE -Ports4=FALSE diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.naf b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.naf deleted file mode 100755 index e0d6b71..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.naf +++ /dev/null @@ -1,49 +0,0 @@ -refclkp i -refclkn i -hdinp0 i -hdinn0 i -hdoutp0 o -hdoutn0 o -ff_rxiclk_ch0 i -ff_txiclk_ch0 i -ff_ebrd_clk_0 i -ff_txdata_ch0[7] i -ff_txdata_ch0[6] i -ff_txdata_ch0[5] i -ff_txdata_ch0[4] i -ff_txdata_ch0[3] i -ff_txdata_ch0[2] i -ff_txdata_ch0[1] i -ff_txdata_ch0[0] i -ff_rxdata_ch0[7] o -ff_rxdata_ch0[6] o -ff_rxdata_ch0[5] o -ff_rxdata_ch0[4] o -ff_rxdata_ch0[3] o -ff_rxdata_ch0[2] o -ff_rxdata_ch0[1] o -ff_rxdata_ch0[0] o -ff_tx_k_cntrl_ch0 i -ff_rx_k_cntrl_ch0 o -ff_rxfullclk_ch0 o -ff_xmit_ch0 i -ff_correct_disp_ch0 i -ff_disp_err_ch0 o -ff_cv_ch0 o -ff_rx_even_ch0 o -ffc_rrst_ch0 i -ffc_lane_tx_rst_ch0 i -ffc_lane_rx_rst_ch0 i -ffc_txpwdnb_ch0 i -ffc_rxpwdnb_ch0 i -ffs_rlos_lo_ch0 o -ffs_ls_sync_status_ch0 o -ffs_rlol_ch0 o -oob_out_ch0 o -ffc_macro_rst i -ffc_quad_rst i -ffc_trst i -ff_txfullclk o -ff_txhalfclk o -refck2core o -ffs_plol o diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.pp b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.pp deleted file mode 100755 index 49e4332..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.pp +++ /dev/null @@ -1,95 +0,0 @@ -#define _device_name "LFE2M100E" -#define _protocol_mode "Quad Based Protocol Mode" -#define _protocol "GIGE" -#define _ch0_mode "SINGLE" -#define _ch1_mode "DISABLE" -#define _ch2_mode "DISABLE" -#define _ch3_mode "DISABLE" -#define _pll_txsrc "REFCLK" -#define _pll_rxsrc "REFCLK" -#define _datarange "MED" -#define _refclk_mult "10X" -#define _refclk_rate 125.0 -#define _data_width "8" -#define _fpgaintclk_rate 125.0 -#define _ch0_tdrv_amp "0" -#define _ch1_tdrv_amp "0" -#define _ch2_tdrv_amp "0" -#define _ch3_tdrv_amp "0" -#define _ch0_tx_pre "DISABLE" -#define _ch1_tx_pre "DISABLE" -#define _ch2_tx_pre "DISABLE" -#define _ch3_tx_pre "DISABLE" -#define _ch0_rterm_tx "50" -#define _ch1_rterm_tx "50" -#define _ch2_rterm_tx "50" -#define _ch3_rterm_tx "50" -#define _ch0_rx_eq "DISABLE" -#define _ch1_rx_eq "DISABLE" -#define _ch2_rx_eq "DISABLE" -#define _ch3_rx_eq "DISABLE" -#define _ch0_rterm_rx "50" -#define _ch1_rterm_rx "50" -#define _ch2_rterm_rx "50" -#define _ch3_rterm_rx "50" -#define _ch0_rx_dcc "AC" -#define _ch1_rx_dcc "AC" -#define _ch2_rx_dcc "AC" -#define _ch3_rx_dcc "AC" -#define _los_threshold "0" -#define _pll_term "50" -#define _pll_dcc "AC" -#define _pll_lol_set "0" -#define _ch0_tx_sb "NORMAL" -#define _ch1_tx_sb "NORMAL" -#define _ch2_tx_sb "NORMAL" -#define _ch3_tx_sb "NORMAL" -#define _ch0_rx_sb "NORMAL" -#define _ch1_rx_sb "NORMAL" -#define _ch2_rx_sb "NORMAL" -#define _ch3_rx_sb "NORMAL" -#define _ch0_8b10b "NORMAL" -#define _ch1_8b10b "NORMAL" -#define _ch2_8b10b "NORMAL" -#define _ch3_8b10b "NORMAL" -#define _comma_a "1100000101" -#define _comma_b "0011111010" -#define _comma_m "1111111111" -#define _comma_align "AUTO" -#define _ch0_ctc_byp "NORMAL" -#define _ch1_ctc_byp "NORMAL" -#define _ch2_ctc_byp "NORMAL" -#define _ch3_ctc_byp "NORMAL" -#define _cc_match1 "0000000000" -#define _cc_match2 "0000000000" -#define _cc_match3 "0110111100" -#define _cc_match4 "0001010000" -#define _cc_match_mode "MATCH_3_4" -#define _cc_min_ipg "3" -#define _cchmark "9" -#define _cclmark "7" -#define _ch0_ird "FALSE" -#define _ch1_ird "FALSE" -#define _ch2_ird "FALSE" -#define _ch3_ird "FALSE" -#define _ch0_elsm "FALSE" -#define _ch1_elsm "FALSE" -#define _ch2_elsm "FALSE" -#define _ch3_elsm "FALSE" -#define _ch0_teidle "FALSE" -#define _ch1_teidle "FALSE" -#define _ch2_teidle "FALSE" -#define _ch3_teidle "FALSE" -#define _loopback "FALSE" -#define _lbtype "Serial Loopback" -#define _refck2core "TRUE" -#define _pllqclkports "FALSE" -#define _sci_ports "FALSE" -#define _sci_int_port "FALSE" -#define _errsports "FALSE" - -#define _circuit_name serdes_gbe_0_extclock_8b -#define _lang vhdl - -#include -#include diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.readme b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.readme deleted file mode 100755 index e231789..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.readme +++ /dev/null @@ -1,141 +0,0 @@ - - TOOL: orcapp - DATE: 19-MAR-2008 13:11:51 - TITLE: Lattice Semiconductor Corporation - MODULE: serdes_gbe_0_extclock_8b - DESIGN: serdes_gbe_0_extclock_8b - FILENAME: serdes_gbe_0_extclock_8b.readme - PROJECT: Unknown - VERSION: 2.0 - This file is auto generated by the ispLEVER - - -NOTE: This readme file has been provided to instantiate the interface -netlist. Since this template contains synthesis attributes for precision that -are crucial to the design flow, we recommend that you use this -template in your FPGA design. -entity chip is -port ( - --- Add your FPGA design top level I/Os here - - --- ASIC side pins for PCSA. These pins must exist for the --- PCS core. - refclkp : in std_logic; - refclkn : in std_logic; - hdinp0 : in std_logic; - hdinn0 : in std_logic; - hdinp1 : in std_logic; - hdinn1 : in std_logic; - hdinp2 : in std_logic; - hdinn2 : in std_logic; - hdinp3 : in std_logic; - hdinn3 : in std_logic; - - hdoutp0 : out std_logic; - hdoutn0 : out std_logic; - hdoutp1 : out std_logic; - hdoutn1 : out std_logic; - hdoutp2 : out std_logic; - hdoutn2 : out std_logic; - hdoutp3 : out std_logic; - hdoutn3 : out std_logic; - - -); -end chip; - -architecture chip_arch of chip is - --- This defines all the high-speed ports. You may have to remove --- some of them depending on your design. -attribute nopad : string; -attribute nopad of - refclkp, refclkn, - hdinp0, hdinn0, hdinp1, hdinn1, - hdinp2, hdinn2, hdinp3, hdinn3, - hdoutp0, hdoutn0, hdoutp1, hdoutn1, - hdoutp2, hdoutn2, hdoutp3, hdoutn3 : signal is "true"; - - COMPONENT serdes_gbe_0_extclock_8b - PORT( - refclkp : IN std_logic; - refclkn : IN std_logic; - hdinp0 : IN std_logic; - hdinn0 : IN std_logic; - ff_rxiclk_ch0 : IN std_logic; - ff_txiclk_ch0 : IN std_logic; - ff_ebrd_clk_0 : IN std_logic; - ff_txdata_ch0 : IN std_logic_vector(7 downto 0); - ff_tx_k_cntrl_ch0 : IN std_logic; - ff_xmit_ch0 : IN std_logic; - ff_correct_disp_ch0 : IN std_logic; - ffc_rrst_ch0 : IN std_logic; - ffc_lane_tx_rst_ch0 : IN std_logic; - ffc_lane_rx_rst_ch0 : IN std_logic; - ffc_txpwdnb_ch0 : IN std_logic; - ffc_rxpwdnb_ch0 : IN std_logic; - ffc_macro_rst : IN std_logic; - ffc_quad_rst : IN std_logic; - ffc_trst : IN std_logic; - hdoutp0 : OUT std_logic; - hdoutn0 : OUT std_logic; - ff_rxdata_ch0 : OUT std_logic_vector(7 downto 0); - ff_rx_k_cntrl_ch0 : OUT std_logic; - ff_rxfullclk_ch0 : OUT std_logic; - ff_disp_err_ch0 : OUT std_logic; - ff_cv_ch0 : OUT std_logic; - ff_rx_even_ch0 : OUT std_logic; - ffs_rlos_lo_ch0 : OUT std_logic; - ffs_ls_sync_status_ch0 : OUT std_logic; - ffs_rlol_ch0 : OUT std_logic; - oob_out_ch0 : OUT std_logic; - ff_txfullclk : OUT std_logic; - ff_txhalfclk : OUT std_logic; - refck2core : OUT std_logic; - ffs_plol : OUT std_logic - ); - END COMPONENT; - - - - uut: serdes_gbe_0_extclock_8b PORT MAP( - refclkp => refclkp, - refclkn => refclkn, - hdinp0 => hdinp0, - hdinn0 => hdinn0, - hdoutp0 => hdoutp0, - hdoutn0 => hdoutn0, - ff_rxiclk_ch0 => ff_rxiclk_ch0, - ff_txiclk_ch0 => ff_txiclk_ch0, - ff_ebrd_clk_0 => ff_ebrd_clk_0, - ff_txdata_ch0 => ff_txdata_ch0, - ff_rxdata_ch0 => ff_rxdata_ch0, - ff_tx_k_cntrl_ch0 => ff_tx_k_cntrl_ch0, - ff_rx_k_cntrl_ch0 => ff_rx_k_cntrl_ch0, - ff_rxfullclk_ch0 => ff_rxfullclk_ch0, - ff_xmit_ch0 => ff_xmit_ch0, - ff_correct_disp_ch0 => ff_correct_disp_ch0, - ff_disp_err_ch0 => ff_disp_err_ch0, - ff_cv_ch0 => ff_cv_ch0, - ff_rx_even_ch0 => ff_rx_even_ch0, - ffc_rrst_ch0 => ffc_rrst_ch0, - ffc_lane_tx_rst_ch0 => ffc_lane_tx_rst_ch0, - ffc_lane_rx_rst_ch0 => ffc_lane_rx_rst_ch0, - ffc_txpwdnb_ch0 => ffc_txpwdnb_ch0, - ffc_rxpwdnb_ch0 => ffc_rxpwdnb_ch0, - ffs_rlos_lo_ch0 => ffs_rlos_lo_ch0, - ffs_ls_sync_status_ch0 => ffs_ls_sync_status_ch0, - ffs_rlol_ch0 => ffs_rlol_ch0, - oob_out_ch0 => oob_out_ch0, - ffc_macro_rst => ffc_macro_rst, - ffc_quad_rst => ffc_quad_rst, - ffc_trst => ffc_trst, - ff_txfullclk => ff_txfullclk, - ff_txhalfclk => ff_txhalfclk, - refck2core => refck2core, - ffs_plol => ffs_plol - ); - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.sym b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.sym deleted file mode 100755 index 738404a543f19a6fdb45fdcf16c46ffb4b5a94eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1626 zcmZ9MPly{;9LImZH`CN^)y8!xB2oqk9`+zZ59`uXSnM7|)?x7vw6!nE%*3oaI~iwY z*I0T8A|85>Af6TvOA(RML)e4#P$cx=VGkt-DdIsw58^?}QuZWe@%w(0kd22)K6&5I z`^|fAewn);U0vI{VG+@ll8sNI#2P4vcI`X(dDC9ONRJn(@;2b*W>fp^G!6Y+2OC+U z{gzAD5ggLHh4BK6u#pDZk2bYSH<0zIHOd6Rv%T@NIpTgdv{ zIgzE4lJpZYSAADx=ghpclYAb;4O#U7X;1AJ>2oH{&CTdfjF;8HiCOuHSx06T{avJ` zR*Okmri9m!ez3G@Y?-!>aMuuyz%_2n)|3+zI2cG_G|3YeaWpJy2x& z1lGwuncVXTUY~x0_m3jeFKOq0{W39Mvl5H=80LaSWigxEQ8Z~xbWX90s`1ntR%LbB zB0NcS=-7iYb^F=X%=wFh+qP%U|5Y0nmF&vu zyiKQDL3=wl?J?fjGSV7Vkh+u9w8=QVf^@_yNY`yT+io{BX3tbNZ<4ACVB|K5 zh?hq=-3igcD_NKZVWvN6gxb|%C-D5rUS3bco*EIPlapX8ts71f7rqGrEmgH)HlK&*i*a0F4$E+ z3YWoUwJ&_g4&Ge92oJ$SJ`nDM`}|0_2k!A>;RKxU6JZbR@xNH7d8<0ON+q+NLqbiO p7aoF#bV0Ze?$e@h58R_A;RKw}im(UvXieA!yQnvZZ^Bs&)PGO+XvF{k diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.tft b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.tft deleted file mode 100755 index 8a55292..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.tft +++ /dev/null @@ -1,98 +0,0 @@ -@set suppresnewline=on@ - -@comment --------------------------------------------------------------------- @ -@comment Template-drive TFI generator @ -@comment Template for TFI generation. @ -@comment --------------------------------------------------------------------- @ - -@set suppresnewline=off@ - TOOL: orcapp - DATE: 19-MAR-2008 13:11:51 - TITLE: %title% - MODULE: %module% - DESIGN: %module% - FILENAME: %filename% - PROJECT: %project% - VERSION: %ver% - This file is auto generated by the ispLEVER -@set suppresnewline=on@ - -@cr@ -@cr@ - -@set sigdelim=@ - -NOTE: This readme file has been provided to instantiate the interface@cr@ -netlist. Since this template contains synthesis attributes for precision that@cr@ -are crucial to the design flow, we recommend that you use this@cr@ -template in your FPGA design.@cr@ -entity chip is@cr@ -port (@cr@ -@cr@ --- Add your FPGA design top level I/Os here@cr@ -@cr@ -@cr@ --- ASIC side pins for PCSA. These pins must exist for the@cr@ --- PCS core.@cr@ - refclkp : in std_logic;@cr@ - refclkn : in std_logic;@cr@ - hdinp0 : in std_logic;@cr@ - hdinn0 : in std_logic;@cr@ - hdinp1 : in std_logic;@cr@ - hdinn1 : in std_logic;@cr@ - hdinp2 : in std_logic;@cr@ - hdinn2 : in std_logic;@cr@ - hdinp3 : in std_logic;@cr@ - hdinn3 : in std_logic;@cr@ -@cr@ - hdoutp0 : out std_logic;@cr@ - hdoutn0 : out std_logic;@cr@ - hdoutp1 : out std_logic;@cr@ - hdoutn1 : out std_logic;@cr@ - hdoutp2 : out std_logic;@cr@ - hdoutn2 : out std_logic;@cr@ - hdoutp3 : out std_logic;@cr@ - hdoutn3 : out std_logic;@cr@ -@cr@ -@cr@ -);@cr@ -end chip;@cr@ -@cr@ -architecture chip_arch of chip is@cr@ -@cr@ --- This defines all the high-speed ports. You may have to remove@cr@ --- some of them depending on your design.@cr@ -attribute nopad : string;@cr@ -attribute nopad of@cr@ - refclkp, refclkn,@cr@ - hdinp0, hdinn0, hdinp1, hdinn1,@cr@ - hdinp2, hdinn2, hdinp3, hdinn3,@cr@ - hdoutp0, hdoutn0, hdoutp1, hdoutn1,@cr@ - hdoutp2, hdoutn2, hdoutp3, hdoutn3 : signal is "true";@cr@ - -@cr@ -@tab@COMPONENT %module% -@set sigdelim=@ -@cr@@tab@PORT( -@iterate@%iport%@cr@@tab@@tab@@iterator@ : IN @vhdl_typedec@;@enditerate@ -@ifhas oport=*@ @comment if the design has any output ports... @ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@;@enditerate@ - @set sigdelim=;@ - @iterate@%oport%@cr@@tab@@tab@@iterator@ : OUT @vhdl_typedec@@enditerate@ -@endif@ -@ifnhas oport=*@ @comment we need an "else in this language! @ - @set sigdelim=;@ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@@enditerate@ -@endif@ -@cr@@tab@@tab@);@cr@ -@tab@END COMPONENT;@cr@@cr@ -@comment Now do a signal declaration for each port @ - -@cr@@cr@ -@comment do the component instantiation @ -@set sigdelim=,@ -@tab@uut: %module% PORT MAP( -@iterate@%port% -@cr@@tab@@tab@@iterator@ => @iterator@@enditerate@ -@cr@@tab@);@cr@@cr@ -@set suppresnewline=off@ diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.txt b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.txt deleted file mode 100755 index 860001f..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.txt +++ /dev/null @@ -1,49 +0,0 @@ - -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSC quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSC quad to the final design requirements. - -DEVICE_NAME "LFE2M100E" -PROTOCOL "GIGE" -CH0_MODE "SINGLE" -CH1_MODE "DISABLE" -CH2_MODE "DISABLE" -CH3_MODE "DISABLE" -PLL_SRC "REFCLK" -DATARANGE "MED" -CH0_CDR_SRC "REFCLK" -CH0_DATA_WIDTH "8" -CH0_REFCK_MULT "10X" -#REFCLK_RATE 125.0 -#FPGAINTCLK_RATE 125.0 -CH0_TDRV_AMP "0" -CH0_TX_PRE "DISABLE" -CH0_RTERM_TX "50" -CH0_RX_EQ "DISABLE" -CH0_RTERM_RX "50" -CH0_RX_DCC "AC" -LOS_THRESHOLD "0" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH0_TX_SB "NORMAL" -CH0_RX_SB "NORMAL" -CH0_8B10B "NORMAL" -COMMA_A "1100000101" -COMMA_B "0011111010" -COMMA_M "1111111111" -CH0_COMMA_ALIGN "AUTO" -CH0_CTC_BYP "BYPASS" -CC_MATCH1 "0000000000" -CC_MATCH2 "0000000000" -CC_MATCH3 "0110111100" -CC_MATCH4 "0001010000" -CC_MATCH_MODE "MATCH_3_4" -CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -OS_REFCK2CORE "1" -OS_PLLQCLKPORTS "0" -OS_INT_ALL "0" - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.vhd b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.vhd deleted file mode 100755 index c3d0eda..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b.vhd +++ /dev/null @@ -1,2182 +0,0 @@ - - ---synopsys translate_off - -library pcsc_work; -use pcsc_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSC is -GENERIC( - CONFIG_FILE : String := "serdes_gbe_0_extclock_8b.txt" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); - -end PCSC; - -architecture PCSC_arch of PCSC is - -component PCSC_sim -GENERIC( - CONFIG_FILE : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - -begin - -PCSC_sim_inst : PCSC_sim -generic map ( - CONFIG_FILE => CONFIG_FILE) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX => FFC_CK_CORE_RX, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_RX_Q_CLK_0 => FF_RX_Q_CLK_0, - FF_RX_Q_CLK_1 => FF_RX_Q_CLK_1, - FF_RX_Q_CLK_2 => FF_RX_Q_CLK_2, - FF_RX_Q_CLK_3 => FF_RX_Q_CLK_3, - FF_TX_F_CLK => FF_TX_F_CLK, - FF_TX_H_CLK => FF_TX_H_CLK, - FF_TX_Q_CLK => FF_TX_Q_CLK, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - OOB_OUT_0 => OOB_OUT_0, - OOB_OUT_1 => OOB_OUT_1, - OOB_OUT_2 => OOB_OUT_2, - OOB_OUT_3 => OOB_OUT_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7 - ); - -end PCSC_arch; - ---synopsys translate_on - ---synopsys translate_off -library ECP2; -use ECP2.components.all; ---synopsys translate_on - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_gbe_0_extclock_8b is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_extclock_8b.txt"); - port ( - refclkp, refclkn : in std_logic; - hdinp0, hdinn0 : in std_logic; - hdoutp0, hdoutn0 : out std_logic; - ff_rxiclk_ch0, ff_txiclk_ch0, ff_ebrd_clk_0 : in std_logic; - ff_txdata_ch0 : in std_logic_vector (7 downto 0); - ff_rxdata_ch0 : out std_logic_vector (7 downto 0); - ff_tx_k_cntrl_ch0 : in std_logic; - ff_rx_k_cntrl_ch0 : out std_logic; - ff_rxfullclk_ch0 : out std_logic; - ff_xmit_ch0 : in std_logic; - ff_correct_disp_ch0 : in std_logic; - ff_disp_err_ch0, ff_cv_ch0 : out std_logic; - ff_rx_even_ch0 : out std_logic; - ffc_rrst_ch0 : in std_logic; - ffc_lane_tx_rst_ch0 : in std_logic; - ffc_lane_rx_rst_ch0 : in std_logic; - ffc_txpwdnb_ch0 : in std_logic; - ffc_rxpwdnb_ch0 : in std_logic; - ffs_rlos_lo_ch0 : out std_logic; - ffs_ls_sync_status_ch0 : out std_logic; - ffs_rlol_ch0 : out std_logic; - oob_out_ch0 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - refck2core : out std_logic; - ffs_plol : out std_logic); - -end serdes_gbe_0_extclock_8b; - -architecture serdes_gbe_0_extclock_8b_arch of serdes_gbe_0_extclock_8b is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; -component PCSC ---synopsys translate_off -GENERIC( - CONFIG_FILE : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - attribute IS_ASB: string; - attribute IS_ASB of PCSC_INST : label is "ep5m00/data/ep5m00.acd"; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSC_INST : label is USER_CONFIG_FILE; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSC : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal fpsc_vlo : std_logic := '0'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); - --- pcs_quad instance -PCSC_INST : PCSC ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE) ---synopsys translate_on -port map ( - FFC_CK_CORE_TX => fpsc_vlo, - FFC_CK_CORE_RX => fpsc_vlo, - REFCLKP => refclkp, - REFCLKN => refclkn, - HDINP0 => hdinp0, - HDINN0 => hdinn0, - HDOUTP0 => hdoutp0, - HDOUTN0 => hdoutn0, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => ff_rxiclk_ch0, - FF_TXI_CLK_0 => ff_txiclk_ch0, - FF_EBRD_CLK_0 => ff_ebrd_clk_0, - FF_RX_F_CLK_0 => ff_rxfullclk_ch0, - FF_RX_H_CLK_0 => open, - FF_RX_Q_CLK_0 => open, - FF_TX_D_0_0 => ff_txdata_ch0(0), - FF_TX_D_0_1 => ff_txdata_ch0(1), - FF_TX_D_0_2 => ff_txdata_ch0(2), - FF_TX_D_0_3 => ff_txdata_ch0(3), - FF_TX_D_0_4 => ff_txdata_ch0(4), - FF_TX_D_0_5 => ff_txdata_ch0(5), - FF_TX_D_0_6 => ff_txdata_ch0(6), - FF_TX_D_0_7 => ff_txdata_ch0(7), - FF_TX_D_0_8 => ff_tx_k_cntrl_ch0, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => ff_xmit_ch0, - FF_TX_D_0_11 => ff_correct_disp_ch0, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => ff_rxdata_ch0(0), - FF_RX_D_0_1 => ff_rxdata_ch0(1), - FF_RX_D_0_2 => ff_rxdata_ch0(2), - FF_RX_D_0_3 => ff_rxdata_ch0(3), - FF_RX_D_0_4 => ff_rxdata_ch0(4), - FF_RX_D_0_5 => ff_rxdata_ch0(5), - FF_RX_D_0_6 => ff_rxdata_ch0(6), - FF_RX_D_0_7 => ff_rxdata_ch0(7), - FF_RX_D_0_8 => ff_rx_k_cntrl_ch0, - FF_RX_D_0_9 => ff_disp_err_ch0, - FF_RX_D_0_10 => ff_cv_ch0, - FF_RX_D_0_11 => ff_rx_even_ch0, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - FFC_RRST_0 => ffc_rrst_ch0, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => fpsc_vlo, - FFC_PFIFO_CLR_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFS_PCIE_DONE_0 => open, - FFS_PCIE_CON_0 => open, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => ffc_lane_tx_rst_ch0, - FFC_LANE_RX_RST_0 => ffc_lane_rx_rst_ch0, - FFC_TXPWDNB_0 => ffc_txpwdnb_ch0, - FFC_RXPWDNB_0 => ffc_rxpwdnb_ch0, - FFS_RLOS_LO_0 => ffs_rlos_lo_ch0, - FFS_LS_SYNC_STATUS_0 => ffs_ls_sync_status_ch0, - FFS_CC_UNDERRUN_0 => open, - FFS_CC_OVERRUN_0 => open, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - FFS_RLOL_0 => ffs_rlol_ch0, - OOB_OUT_0 => oob_out_ch0, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - HDOUTP1 => open, - HDOUTN1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_RX_Q_CLK_1 => open, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_PCIE_CON_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - OOB_OUT_1 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - HDOUTP2 => open, - HDOUTN2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_RX_Q_CLK_2 => open, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_PCIE_CON_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - OOB_OUT_2 => open, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - HDOUTP3 => open, - HDOUTN3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_RX_Q_CLK_3 => open, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_PCIE_CON_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - OOB_OUT_3 => open, - SCIWDATA0 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA7 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIRDATA0 => open, - SCIRDATA1 => open, - SCIRDATA2 => open, - SCIRDATA3 => open, - SCIRDATA4 => open, - SCIRDATA5 => open, - SCIRDATA6 => open, - SCIRDATA7 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_MACRO_RST => ffc_macro_rst, - FFC_QUAD_RST => ffc_quad_rst, - FFC_TRST => ffc_trst, - FF_TX_F_CLK => ff_txfullclk, - FF_TX_H_CLK => ff_txhalfclk, - FF_TX_Q_CLK => open, - REFCK2CORE => refck2core, - CIN0 => cin(0), - CIN1 => cin(1), - CIN2 => cin(2), - CIN3 => cin(3), - CIN4 => cin(4), - CIN5 => cin(5), - CIN6 => cin(6), - CIN7 => cin(7), - CIN8 => cin(8), - CIN9 => cin(9), - CIN10 => cin(10), - CIN11 => cin(11), - COUT0 => cout(0), - COUT1 => cout(1), - COUT2 => cout(2), - COUT3 => cout(3), - COUT4 => cout(4), - COUT5 => cout(5), - COUT6 => cout(6), - COUT7 => cout(7), - COUT8 => cout(8), - COUT9 => cout(9), - COUT10 => cout(10), - COUT11 => cout(11), - COUT12 => cout(12), - COUT13 => cout(13), - COUT14 => cout(14), - COUT15 => cout(15), - COUT16 => cout(16), - COUT17 => cout(17), - COUT18 => cout(18), - COUT19 => cout(19), - FFS_PLOL => ffs_plol); - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on - -end serdes_gbe_0_extclock_8b_arch ; diff --git a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b_generate.log b/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b_generate.log deleted file mode 100755 index 8e108c6..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes/serdes_gbe_0_extclock_8b_generate.log +++ /dev/null @@ -1,26 +0,0 @@ -Starting process: - - Module Name: serdes_gbe_0_extclock_8b - Core Name: PCS - LPC file : serdes_gbe_0_extclock_8b.lpc - Parameter File : serdes_gbe_0_extclock_8b.pp - Command line: /opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/orcapp -Fmaco serdes_gbe_0_extclock_8b.pp - Return Value: - - - Module PCS has been generated in /home/greg/NewHub2/hub2/ipexpress/serdes successfully! - -/home/greg/.isplever_lin1/ispcpld/bin/hdl2jhd -tfi -mod serdes_gbe_0_extclock_8b -ext readme -out serdes_gbe_0_extclock_8b -tpl serdes_gbe_0_extclock_8b.tft serdes_gbe_0_extclock_8b.vhd - -Done successfully! -File: serdes_gbe_0_extclock_8b.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.ipx b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.ipx deleted file mode 100644 index 82a5965..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.ipx +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.jhd b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.jhd deleted file mode 100644 index 0338a8f..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.jhd +++ /dev/null @@ -1,7 +0,0 @@ -MODULE serdes_ch4 DEFIN serdes_ch4.vhd - SUBMODULE PCSD - INSTANCE PCSD_INST - SUBMODULE VHI - INSTANCE vhi_inst - SUBMODULE VLO - INSTANCE vlo_inst diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.lpc b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.lpc deleted file mode 100644 index daf6272..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.lpc +++ /dev/null @@ -1,258 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=8.1 -ModuleName=serdes_ch4 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=04/04/2012 -Time=20:33:49 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -_mode0=DISABLED -_mode1=DISABLED -_mode2=DISABLED -_mode3=RXTX -_protocol0=G8B10B -_protocol1=G8B10B -_protocol2=G8B10B -_protocol3=GIGE -_ldr0=DISABLED -_ldr1=DISABLED -_ldr2=DISABLED -_ldr3=DISABLED -_datarange=1.25 -_pll_txsrc=INTERNAL -_refclk_mult=10X -_refclk_rate=125.0 -_tx_protocol0=DISABLED -_tx_protocol1=DISABLED -_tx_protocol2=DISABLED -_tx_protocol3=GIGE -_tx_data_rate0=FULL -_tx_data_rate1=FULL -_tx_data_rate2=FULL -_tx_data_rate3=FULL -_tx_data_width0=8 -_tx_data_width1=8 -_tx_data_width2=8 -_tx_data_width3=8 -_tx_fifo0=ENABLED -_tx_fifo1=ENABLED -_tx_fifo2=ENABLED -_tx_fifo3=ENABLED -_tx_ficlk_rate0=125.0 -_tx_ficlk_rate1=125.0 -_tx_ficlk_rate2=125.0 -_tx_ficlk_rate3=125.0 -_pll_rxsrc0=EXTERNAL -_pll_rxsrc1=EXTERNAL -_pll_rxsrc2=EXTERNAL -_pll_rxsrc3=INTERNAL -Multiplier0= -Multiplier1= -Multiplier2= -Multiplier3= -_rx_datarange0=2.5 -_rx_datarange1=2.5 -_rx_datarange2=2.5 -_rx_datarange3=1.25 -_rx_protocol0=DISABLED -_rx_protocol1=DISABLED -_rx_protocol2=DISABLED -_rx_protocol3=GIGE -_rx_data_rate0=FULL -_rx_data_rate1=FULL -_rx_data_rate2=FULL -_rx_data_rate3=FULL -_rxrefclk_rate0=250.0 -_rxrefclk_rate1=250.0 -_rxrefclk_rate2=250.0 -_rxrefclk_rate3=125.0 -_rx_data_width0=8 -_rx_data_width1=8 -_rx_data_width2=8 -_rx_data_width3=8 -_rx_fifo0=ENABLED -_rx_fifo1=ENABLED -_rx_fifo2=ENABLED -_rx_fifo3=ENABLED -_rx_ficlk_rate0=250.0 -_rx_ficlk_rate1=250.0 -_rx_ficlk_rate2=250.0 -_rx_ficlk_rate3=125.0 -_tdrv_ch0=0 -_tdrv_ch1=0 -_tdrv_ch2=0 -_tdrv_ch3=0 -_tx_pre0=DISABLED -_tx_pre1=DISABLED -_tx_pre2=DISABLED -_tx_pre3=DISABLED -_rterm_tx0=50 -_rterm_tx1=50 -_rterm_tx2=50 -_rterm_tx3=50 -_rx_eq0=DISABLED -_rx_eq1=DISABLED -_rx_eq2=DISABLED -_rx_eq3=DISABLED -_rterm_rx0=50 -_rterm_rx1=50 -_rterm_rx2=50 -_rterm_rx3=50 -_rx_dcc0=AC -_rx_dcc1=AC -_rx_dcc2=AC -_rx_dcc3=AC -_los_threshold_mode0=LOS_E -_los_threshold_mode1=LOS_E -_los_threshold_mode2=LOS_E -_los_threshold_mode3=LOS_E -_los_threshold_lo0=2 -_los_threshold_lo1=2 -_los_threshold_lo2=2 -_los_threshold_lo3=2 -_los_threshold_hi0=7 -_los_threshold_hi1=7 -_los_threshold_hi2=7 -_los_threshold_hi3=7 -_pll_term=50 -_pll_dcc=AC -_pll_lol_set=0 -_tx_sb0=DISABLED -_tx_sb1=DISABLED -_tx_sb2=DISABLED -_tx_sb3=DISABLED -_tx_8b10b0=ENABLED -_tx_8b10b1=ENABLED -_tx_8b10b2=ENABLED -_tx_8b10b3=ENABLED -_rx_sb0=DISABLED -_rx_sb1=DISABLED -_rx_sb2=DISABLED -_rx_sb3=DISABLED -_ird0=DISABLED -_ird1=DISABLED -_ird2=DISABLED -_ird3=DISABLED -_rx_8b10b0=ENABLED -_rx_8b10b1=ENABLED -_rx_8b10b2=ENABLED -_rx_8b10b3=ENABLED -_rxwa0=ENABLED -_rxwa1=ENABLED -_rxwa2=ENABLED -_rxwa3=ENABLED -_ilsm0=ENABLED -_ilsm1=ENABLED -_ilsm2=ENABLED -_ilsm3=ENABLED -_scomma0=K28P157 -_scomma1=K28P157 -_scomma2=K28P157 -_scomma3=K28P5 -_comma_a0=1100000101 -_comma_a1=1100000101 -_comma_a2=1100000101 -_comma_a3=1100000101 -_comma_b0=0011111010 -_comma_b1=0011111010 -_comma_b2=0011111010 -_comma_b3=0011111010 -_comma_m0=1111111100 -_comma_m1=1111111100 -_comma_m2=1111111100 -_comma_m3=1111111111 -_ctc0=DISABLED -_ctc1=DISABLED -_ctc2=DISABLED -_ctc3=DISABLED -_cc_match_mode0=1 -_cc_match_mode1=1 -_cc_match_mode2=1 -_cc_match_mode3=2 -_k00=00 -_k01=00 -_k02=00 -_k03=01 -_k10=00 -_k11=00 -_k12=00 -_k13=00 -_k20=01 -_k21=01 -_k22=01 -_k23=01 -_k30=01 -_k31=01 -_k32=01 -_k33=00 -_byten00=00000000 -_byten01=00000000 -_byten02=00000000 -_byten03=10111100 -_byten10=00000000 -_byten11=00000000 -_byten12=00000000 -_byten13=01010000 -_byten20=00011100 -_byten21=00011100 -_byten22=00011100 -_byten23=10111100 -_byten30=00011100 -_byten31=00011100 -_byten32=00011100 -_byten33=01010000 -_cc_min_ipg0=3 -_cc_min_ipg1=3 -_cc_min_ipg2=3 -_cc_min_ipg3=3 -_cchmark=9 -_cclmark=7 -_loopback=DISABLED -_lbtype0=DISABLED -_lbtype1=DISABLED -_lbtype2=DISABLED -_lbtype3=DISABLED -_teidle_ch0=DISABLED -_teidle_ch1=DISABLED -_teidle_ch2=DISABLED -_teidle_ch3=DISABLED -_rst_gen=DISABLED -_rx_los_port0=Internal -_rx_los_port1=Internal -_rx_los_port2=Internal -_rx_los_port3=Internal -_sci_ports=DISABLED -_sci_int_port=DISABLED -_refck2core=DISABLED -Regen=auto -PAR1=0 -PARTrace1=0 -PAR3=0 -PARTrace3=0 - -[FilesGenerated] -serdes_ch4.pp=pp -serdes_ch4.tft=tft -serdes_ch4.txt=pcs_module -serdes_ch4.sym=sym diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.naf b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.naf deleted file mode 100644 index 22645f6..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.naf +++ /dev/null @@ -1,48 +0,0 @@ -hdinp_ch3 i -hdinn_ch3 i -hdoutp_ch3 o -hdoutn_ch3 o -rxiclk_ch3 i -txiclk_ch3 i -rx_full_clk_ch3 o -rx_half_clk_ch3 o -tx_full_clk_ch3 o -tx_half_clk_ch3 o -fpga_rxrefclk_ch3 i -txdata_ch3[7] i -txdata_ch3[6] i -txdata_ch3[5] i -txdata_ch3[4] i -txdata_ch3[3] i -txdata_ch3[2] i -txdata_ch3[1] i -txdata_ch3[0] i -tx_k_ch3 i -xmit_ch3 i -tx_disp_correct_ch3 i -rxdata_ch3[7] o -rxdata_ch3[6] o -rxdata_ch3[5] o -rxdata_ch3[4] o -rxdata_ch3[3] o -rxdata_ch3[2] o -rxdata_ch3[1] o -rxdata_ch3[0] o -rx_k_ch3 o -rx_disp_err_ch3 o -rx_cv_err_ch3 o -rx_serdes_rst_ch3_c i -sb_felb_ch3_c i -sb_felb_rst_ch3_c i -tx_pcs_rst_ch3_c i -tx_pwrup_ch3_c i -rx_pcs_rst_ch3_c i -rx_pwrup_ch3_c i -rx_los_low_ch3_s o -lsm_status_ch3_s o -rx_cdr_lol_ch3_s o -fpga_txrefclk i -tx_serdes_rst_c i -tx_pll_lol_qd_s o -rst_qd_c i -serdes_rst_qd_c i diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.pp b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.pp deleted file mode 100644 index 76f371d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.pp +++ /dev/null @@ -1,191 +0,0 @@ -#define _device_name "LFE3-150EA" -#define _ch0_pll_rxsrc "REFCLK_EXT" -#define _ch0_mode "DISABLED" -#define _ch0_protocol "G8B10B" -#define _ch0_ldr "DISABLED" -#define _ch0_tx_data_rate "FULL" -#define _ch0_tx_data_width "8" -#define _ch0_tx_fifo "ENABLED" -#define _ch0_tx_ficlk_rate 125.0 -#define _ch0_rx_datarange "MEDHIGH" -#define _ch0_rx_data_rate "FULL" -#define _ch0_rxrefclk_rate "250.0" -#define _ch0_rx_data_width "8" -#define _ch0_rx_fifo "ENABLED" -#define _ch0_rx_ficlk_rate 250.0 -#define _ch0_tdrv "0" -#define _ch0_tx_pre "DISABLED" -#define _ch0_rterm_tx "50" -#define _ch0_rx_eq "DISABLED" -#define _ch0_rterm_rx "50" -#define _ch0_rx_dcc "AC" -#define _los_threshold_lo0 "2" -#define _ch0_tx_sb "DISABLED" -#define _ch0_tx_8b10b "ENABLED" -#define _ch0_rx_sb "DISABLED" -#define _ch0_ird "DISABLED" -#define _ch0_rx_8b10b "ENABLED" -#define _ch0_rxwa "ENABLED" -#define _ch0_ilsm "ENABLED" -#define _ch0_scomma "K28P157" -#define _ch0_comma_a "1100000101" -#define _ch0_comma_b "0011111010" -#define _ch0_comma_m "1111111100" -#define _ch0_ctc "DISABLED" -#define _ch0_cc_match_mode "1" -#define _ch0_byten "0000000000" -#define _ch0_byten1 "0000000000" -#define _ch0_byten2 "0100011100" -#define _ch0_byten3 "0100011100" -#define _ch0_cc_min_ipg "3" -#define _ch0_lbtype "DISABLED" -#define _ch0_teidle "DISABLED" -#define _ch0_rx_lol_port "INTERNAL" - -#define _ch1_pll_rxsrc "REFCLK_EXT" -#define _ch1_mode "DISABLED" -#define _ch1_protocol "G8B10B" -#define _ch1_ldr "DISABLED" -#define _ch1_tx_data_rate "FULL" -#define _ch1_tx_data_width "8" -#define _ch1_tx_fifo "ENABLED" -#define _ch1_tx_ficlk_rate 125.0 -#define _ch1_rx_datarange "MEDHIGH" -#define _ch1_rx_data_rate "FULL" -#define _ch1_rxrefclk_rate "250.0" -#define _ch1_rx_data_width "8" -#define _ch1_rx_fifo "ENABLED" -#define _ch1_rx_ficlk_rate 250.0 -#define _ch1_tdrv "0" -#define _ch1_tx_pre "DISABLED" -#define _ch1_rterm_tx "50" -#define _ch1_rx_eq "DISABLED" -#define _ch1_rterm_rx "50" -#define _ch1_rx_dcc "AC" -#define _los_threshold_lo1 "2" -#define _ch1_tx_sb "DISABLED" -#define _ch1_tx_8b10b "ENABLED" -#define _ch1_rx_sb "DISABLED" -#define _ch1_ird "DISABLED" -#define _ch1_rx_8b10b "ENABLED" -#define _ch1_rxwa "ENABLED" -#define _ch1_ilsm "ENABLED" -#define _ch1_scomma "K28P157" -#define _ch1_comma_a "1100000101" -#define _ch1_comma_b "0011111010" -#define _ch1_comma_m "1111111100" -#define _ch1_ctc "DISABLED" -#define _ch1_cc_match_mode "1" -#define _ch1_byten "0000000000" -#define _ch1_byten1 "0000000000" -#define _ch1_byten2 "0100011100" -#define _ch1_byten3 "0100011100" -#define _ch1_cc_min_ipg "3" -#define _ch1_lbtype "DISABLED" -#define _ch1_teidle "DISABLED" -#define _ch1_rx_lol_port "INTERNAL" - -#define _ch2_pll_rxsrc "REFCLK_EXT" -#define _ch2_mode "DISABLED" -#define _ch2_protocol "G8B10B" -#define _ch2_ldr "DISABLED" -#define _ch2_tx_data_rate "FULL" -#define _ch2_tx_data_width "8" -#define _ch2_tx_fifo "ENABLED" -#define _ch2_tx_ficlk_rate 125.0 -#define _ch2_rx_datarange "MEDHIGH" -#define _ch2_rx_data_rate "FULL" -#define _ch2_rxrefclk_rate "250.0" -#define _ch2_rx_data_width "8" -#define _ch2_rx_fifo "ENABLED" -#define _ch2_rx_ficlk_rate 250.0 -#define _ch2_tdrv "0" -#define _ch2_tx_pre "DISABLED" -#define _ch2_rterm_tx "50" -#define _ch2_rx_eq "DISABLED" -#define _ch2_rterm_rx "50" -#define _ch2_rx_dcc "AC" -#define _los_threshold_lo2 "2" -#define _ch2_tx_sb "DISABLED" -#define _ch2_tx_8b10b "ENABLED" -#define _ch2_rx_sb "DISABLED" -#define _ch2_ird "DISABLED" -#define _ch2_rx_8b10b "ENABLED" -#define _ch2_rxwa "ENABLED" -#define _ch2_ilsm "ENABLED" -#define _ch2_scomma "K28P157" -#define _ch2_comma_a "1100000101" -#define _ch2_comma_b "0011111010" -#define _ch2_comma_m "1111111100" -#define _ch2_ctc "DISABLED" -#define _ch2_cc_match_mode "1" -#define _ch2_byten "0000000000" -#define _ch2_byten1 "0000000000" -#define _ch2_byten2 "0100011100" -#define _ch2_byten3 "0100011100" -#define _ch2_cc_min_ipg "3" -#define _ch2_lbtype "DISABLED" -#define _ch2_teidle "DISABLED" -#define _ch2_rx_lol_port "INTERNAL" - -#define _ch3_pll_rxsrc "REFCLK_CORE" -#define _ch3_mode "RXTX" -#define _ch3_protocol "GIGE" -#define _ch3_ldr "DISABLED" -#define _ch3_tx_data_rate "FULL" -#define _ch3_tx_data_width "8" -#define _ch3_tx_fifo "ENABLED" -#define _ch3_tx_ficlk_rate 125.0 -#define _ch3_rx_datarange "MED" -#define _ch3_rx_data_rate "FULL" -#define _ch3_rxrefclk_rate "125.0" -#define _ch3_rx_data_width "8" -#define _ch3_rx_fifo "ENABLED" -#define _ch3_rx_ficlk_rate 125.0 -#define _ch3_tdrv "0" -#define _ch3_tx_pre "DISABLED" -#define _ch3_rterm_tx "50" -#define _ch3_rx_eq "DISABLED" -#define _ch3_rterm_rx "50" -#define _ch3_rx_dcc "AC" -#define _los_threshold_lo3 "2" -#define _ch3_tx_sb "DISABLED" -#define _ch3_tx_8b10b "ENABLED" -#define _ch3_rx_sb "DISABLED" -#define _ch3_ird "DISABLED" -#define _ch3_rx_8b10b "ENABLED" -#define _ch3_rxwa "ENABLED" -#define _ch3_ilsm "ENABLED" -#define _ch3_scomma "K28P5" -#define _ch3_comma_a "1100000101" -#define _ch3_comma_b "0011111010" -#define _ch3_comma_m "1111111111" -#define _ch3_ctc "DISABLED" -#define _ch3_cc_match_mode "2" -#define _ch3_byten "0110111100" -#define _ch3_byten1 "0001010000" -#define _ch3_byten2 "0110111100" -#define _ch3_byten3 "0001010000" -#define _ch3_cc_min_ipg "3" -#define _ch3_lbtype "DISABLED" -#define _ch3_teidle "DISABLED" -#define _ch3_rx_lol_port "INTERNAL" - -#define _datarange "MED" -#define _pll_txsrc "REFCLK_CORE" -#define _refclk_mult "10X" -#define _refclk_rate 125.0 -#define _pll_term "50" -#define _pll_dcc "AC" -#define _pll_lol_set "0" -#define _cchmark "9" -#define _cclmark "7" -#define _rst_gen "DISABLED" -#define _sci_ports "DISABLED" -#define _sci_int_port "DISABLED" -#define _refck2core "DISABLED" -#define _circuit_name serdes_ch4 -#define _lang vhdl - -#include -#include diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.readme b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.readme deleted file mode 100644 index 98e2a4b..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.readme +++ /dev/null @@ -1,141 +0,0 @@ - - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: Lattice Semiconductor Corporation - MODULE: serdes_ch4 - DESIGN: serdes_ch4 - FILENAME: serdes_ch4.readme - PROJECT: Unknown - VERSION: 2.0 - This file is auto generated by the ispLEVER - - -NOTE: This readme file has been provided to instantiate the interface -netlist. Since this template contains synthesis attributes for precision that -are crucial to the design flow, we recommend that you use this -template in your FPGA design. -entity chip is -port ( - --- Add your FPGA design top level I/Os here - - --- ASIC side pins for PCSD. These pins must exist for the --- PCS core. - refclkp : in std_logic; - refclkn : in std_logic; - hdinp_ch0 : in std_logic; - hdinn_ch0 : in std_logic; - hdinp_ch1 : in std_logic; - hdinn_ch1 : in std_logic; - hdinp_ch2 : in std_logic; - hdinn_ch2 : in std_logic; - hdinp_ch3 : in std_logic; - hdinn_ch3 : in std_logic; - - hdoutp_ch0 : out std_logic; - hdoutn_ch0 : out std_logic; - hdoutp_ch1 : out std_logic; - hdoutn_ch1 : out std_logic; - hdoutp_ch2 : out std_logic; - hdoutn_ch2 : out std_logic; - hdoutp_ch3 : out std_logic; - hdoutn_ch3 : out std_logic; - - -); -end chip; - -architecture chip_arch of chip is - --- This defines all the high-speed ports. You may have to remove --- some of them depending on your design. -attribute nopad : string; -attribute nopad of - refclkp, refclkn, - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1, - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3, - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1, - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true"; - - COMPONENT serdes_ch4 - PORT( - hdinp_ch3 : IN std_logic; - hdinn_ch3 : IN std_logic; - rxiclk_ch3 : IN std_logic; - txiclk_ch3 : IN std_logic; - fpga_rxrefclk_ch3 : IN std_logic; - txdata_ch3 : IN std_logic_vector(7 downto 0); - tx_k_ch3 : IN std_logic; - xmit_ch3 : IN std_logic; - tx_disp_correct_ch3 : IN std_logic; - rx_serdes_rst_ch3_c : IN std_logic; - sb_felb_ch3_c : IN std_logic; - sb_felb_rst_ch3_c : IN std_logic; - tx_pcs_rst_ch3_c : IN std_logic; - tx_pwrup_ch3_c : IN std_logic; - rx_pcs_rst_ch3_c : IN std_logic; - rx_pwrup_ch3_c : IN std_logic; - fpga_txrefclk : IN std_logic; - tx_serdes_rst_c : IN std_logic; - rst_qd_c : IN std_logic; - serdes_rst_qd_c : IN std_logic; - hdoutp_ch3 : OUT std_logic; - hdoutn_ch3 : OUT std_logic; - rx_full_clk_ch3 : OUT std_logic; - rx_half_clk_ch3 : OUT std_logic; - tx_full_clk_ch3 : OUT std_logic; - tx_half_clk_ch3 : OUT std_logic; - rxdata_ch3 : OUT std_logic_vector(7 downto 0); - rx_k_ch3 : OUT std_logic; - rx_disp_err_ch3 : OUT std_logic; - rx_cv_err_ch3 : OUT std_logic; - rx_los_low_ch3_s : OUT std_logic; - lsm_status_ch3_s : OUT std_logic; - rx_cdr_lol_ch3_s : OUT std_logic; - tx_pll_lol_qd_s : OUT std_logic - ); - END COMPONENT; - - - - uut: serdes_ch4 PORT MAP( - hdinp_ch3 => hdinp_ch3, - hdinn_ch3 => hdinn_ch3, - hdoutp_ch3 => hdoutp_ch3, - hdoutn_ch3 => hdoutn_ch3, - rxiclk_ch3 => rxiclk_ch3, - txiclk_ch3 => txiclk_ch3, - rx_full_clk_ch3 => rx_full_clk_ch3, - rx_half_clk_ch3 => rx_half_clk_ch3, - tx_full_clk_ch3 => tx_full_clk_ch3, - tx_half_clk_ch3 => tx_half_clk_ch3, - fpga_rxrefclk_ch3 => fpga_rxrefclk_ch3, - txdata_ch3 => txdata_ch3, - tx_k_ch3 => tx_k_ch3, - xmit_ch3 => xmit_ch3, - tx_disp_correct_ch3 => tx_disp_correct_ch3, - rxdata_ch3 => rxdata_ch3, - rx_k_ch3 => rx_k_ch3, - rx_disp_err_ch3 => rx_disp_err_ch3, - rx_cv_err_ch3 => rx_cv_err_ch3, - rx_serdes_rst_ch3_c => rx_serdes_rst_ch3_c, - sb_felb_ch3_c => sb_felb_ch3_c, - sb_felb_rst_ch3_c => sb_felb_rst_ch3_c, - tx_pcs_rst_ch3_c => tx_pcs_rst_ch3_c, - tx_pwrup_ch3_c => tx_pwrup_ch3_c, - rx_pcs_rst_ch3_c => rx_pcs_rst_ch3_c, - rx_pwrup_ch3_c => rx_pwrup_ch3_c, - rx_los_low_ch3_s => rx_los_low_ch3_s, - lsm_status_ch3_s => lsm_status_ch3_s, - rx_cdr_lol_ch3_s => rx_cdr_lol_ch3_s, - fpga_txrefclk => fpga_txrefclk, - tx_serdes_rst_c => tx_serdes_rst_c, - tx_pll_lol_qd_s => tx_pll_lol_qd_s, - rst_qd_c => rst_qd_c, - serdes_rst_qd_c => serdes_rst_qd_c - ); - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.sort b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.sort deleted file mode 100644 index 9e836ba..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.sort +++ /dev/null @@ -1 +0,0 @@ -serdes_ch4.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.sym b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.sym deleted file mode 100644 index 9e4bc2056f3cc01409a4b03f74743dc4b3268e15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1580 zcmZvbKZq1r5XP%sw=z4pvn{)bfgBSIavTN?io&vi$U2A!*TKqxciJ;Mf1JhEZM%E5 zBN@a%#GsMm0=Ynr4Gfl}5d(t@4lxipq>&3m3>GmE5g9}b#K7;>o6&LIfyex&zHjQi zs(Nqj7sAKF+OyTxh#%{!N~wJnKYR8;1akU`YV&~Y-SBkNkJ6~qZ3SoiR&Ou;hOnoO z8hujqWT;c3HR>8|qSszJcTWCu9dVZ~jm1NWuOgnQKTNz7#fg8u?YD>?AnvHYP27o6 zKWxRmmT>^BztH*AW20BJelc2+lv=f!DC9RrorW5BqIPFI!4KL&6_y&yQMxoLj%J}` z{G(AO<3+#Q2^NRjo`9C~ywSFgw6DiXwXWJmpBmd#in$Foz zC!n^QNmG~m>w#JKB-Np2wBM-ZWUNo8pt$TArIemsG9^%7k(E1%HCCV$r1bUGO_mq-|ev&B2p%)vDF^Su_QYOlPBOQD>q$TqlgH zyAoi#;ma7E>ndCW3gGG+SFag#zjNJ&E8`n*-Lj~J9f#8%WhrzPz61TCCDjGXF{-<` zvAPfNHTW5PZ)LY{CpgNs%SKO`>{@-sCVdMwJ^3NHT;2`WtZ{96ax~5I)G@dk#ucIo zy6?E>dOT*%L^I{#RcrP35%ujp7wRzdK09=nf5$UjR~}~QsawLX%yUiH0XyoRFzz=x z@j$o$7hDME;GCZeXW)!q*%Qdw05|x(#9c7f7QL4Pc6gic05uF~r*Hu-s3x3)b8>|< za7J@r!n>|w9TCpJnOYDI!J%phdtgrm!Y diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.tft b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.tft deleted file mode 100644 index b9db080..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.tft +++ /dev/null @@ -1,100 +0,0 @@ -@set suppresnewline=on@ - -@comment --------------------------------------------------------------------- @ -@comment Template-drive TFI generator @ -@comment Template for TFI generation. @ -@comment --------------------------------------------------------------------- @ - -@set suppresnewline=off@ - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: %title% - MODULE: %module% - DESIGN: %module% - FILENAME: %filename% - PROJECT: %project% - VERSION: %ver% - This file is auto generated by the ispLEVER -@set suppresnewline=on@ - -@cr@ -@cr@ - -@set sigdelim=@ - -NOTE: This readme file has been provided to instantiate the interface@cr@ -netlist. Since this template contains synthesis attributes for precision that@cr@ -are crucial to the design flow, we recommend that you use this@cr@ -template in your FPGA design.@cr@ -entity chip is@cr@ -port (@cr@ -@cr@ --- Add your FPGA design top level I/Os here@cr@ -@cr@ -@cr@ --- ASIC side pins for PCSD. These pins must exist for the@cr@ --- PCS core.@cr@ - refclkp : in std_logic;@cr@ - refclkn : in std_logic;@cr@ - hdinp_ch0 : in std_logic;@cr@ - hdinn_ch0 : in std_logic;@cr@ - hdinp_ch1 : in std_logic;@cr@ - hdinn_ch1 : in std_logic;@cr@ - hdinp_ch2 : in std_logic;@cr@ - hdinn_ch2 : in std_logic;@cr@ - hdinp_ch3 : in std_logic;@cr@ - hdinn_ch3 : in std_logic;@cr@ -@cr@ - hdoutp_ch0 : out std_logic;@cr@ - hdoutn_ch0 : out std_logic;@cr@ - hdoutp_ch1 : out std_logic;@cr@ - hdoutn_ch1 : out std_logic;@cr@ - hdoutp_ch2 : out std_logic;@cr@ - hdoutn_ch2 : out std_logic;@cr@ - hdoutp_ch3 : out std_logic;@cr@ - hdoutn_ch3 : out std_logic;@cr@ -@cr@ -@cr@ -);@cr@ -end chip;@cr@ -@cr@ -architecture chip_arch of chip is@cr@ -@cr@ --- This defines all the high-speed ports. You may have to remove@cr@ --- some of them depending on your design.@cr@ -attribute nopad : string;@cr@ -attribute nopad of@cr@ - refclkp, refclkn,@cr@ - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1,@cr@ - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3,@cr@ - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1,@cr@ - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true";@cr@ - -@cr@ -@tab@COMPONENT %module% -@set sigdelim=@ -@cr@@tab@PORT( -@iterate@%iport%@cr@@tab@@tab@@iterator@ : IN @vhdl_typedec@;@enditerate@ -@ifhas oport=*@ @comment if the design has any output ports... @ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@;@enditerate@ - @set sigdelim=;@ - @iterate@%oport%@cr@@tab@@tab@@iterator@ : OUT @vhdl_typedec@@enditerate@ -@endif@ -@ifnhas oport=*@ @comment we need an "else in this language! @ - @set sigdelim=;@ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@@enditerate@ -@endif@ -@cr@@tab@@tab@);@cr@ -@tab@END COMPONENT;@cr@@cr@ -@comment Now do a signal declaration for each port @ - -@cr@@cr@ -@comment do the component instantiation @ -@set sigdelim=,@ -@tab@uut: %module% PORT MAP( -@iterate@%port% -@cr@@tab@@tab@@iterator@ => @iterator@@enditerate@ -@cr@@tab@);@cr@@cr@ -@set suppresnewline=off@ - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.txt b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.txt deleted file mode 100644 index 6b3b65f..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.txt +++ /dev/null @@ -1,59 +0,0 @@ -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSD quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSD quad to the final design requirements. - -DEVICE_NAME "LFE3-150EA" -CH3_PROTOCOL "GIGE" -CH0_MODE "DISABLED" -CH1_MODE "DISABLED" -CH2_MODE "DISABLED" -CH3_MODE "RXTX" -CH3_CDR_SRC "REFCLK_CORE" -PLL_SRC "REFCLK_CORE" -TX_DATARATE_RANGE "MED" -CH3_RX_DATARATE_RANGE "MED" -REFCK_MULT "10X" -#REFCLK_RATE 125.0 -CH3_RX_DATA_RATE "FULL" -CH3_TX_DATA_RATE "FULL" -CH3_TX_DATA_WIDTH "8" -CH3_RX_DATA_WIDTH "8" -CH3_TX_FIFO "ENABLED" -CH3_RX_FIFO "ENABLED" -CH3_TDRV "0" -#CH3_TX_FICLK_RATE 125.0 -#CH3_RXREFCLK_RATE "125.0" -#CH3_RX_FICLK_RATE 125.0 -CH3_TX_PRE "DISABLED" -CH3_RTERM_TX "50" -CH3_RX_EQ "DISABLED" -CH3_RTERM_RX "50" -CH3_RX_DCC "AC" -CH3_LOS_THRESHOLD_LO "2" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH3_TX_SB "DISABLED" -CH3_RX_SB "DISABLED" -CH3_TX_8B10B "ENABLED" -CH3_RX_8B10B "ENABLED" -CH3_COMMA_A "1100000101" -CH3_COMMA_B "0011111010" -CH3_COMMA_M "1111111111" -CH3_RXWA "ENABLED" -CH3_ILSM "ENABLED" -CH3_CTC "DISABLED" -CH3_CC_MATCH3 "0110111100" -CH3_CC_MATCH4 "0001010000" -CH3_CC_MATCH_MODE "2" -CH3_CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -CH3_SSLB "DISABLED" -CH3_SPLBPORTS "DISABLED" -CH3_PCSLBPORTS "DISABLED" -INT_ALL "DISABLED" -QD_REFCK2CORE "DISABLED" - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.vhd b/gbe2_ecp3/ipcores_ecp3/serdes_ch4.vhd deleted file mode 100644 index 9f3f819..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4.vhd +++ /dev/null @@ -1,2689 +0,0 @@ - - - ---synopsys translate_off - -library pcsd_work; -use pcsd_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSD is -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String --- CONFIG_FILE : String := "serdes_ch4.txt"; --- QUAD_MODE : String := "SINGLE"; --- CH0_CDR_SRC : String := "REFCLK_EXT"; --- CH1_CDR_SRC : String := "REFCLK_EXT"; --- CH2_CDR_SRC : String := "REFCLK_EXT"; --- CH3_CDR_SRC : String := "REFCLK_CORE"; --- PLL_SRC : String := "REFCLK_CORE" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); - -end PCSD; - -architecture PCSD_arch of PCSD is - - -component PCSD_sim -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String; - CH1_CDR_SRC : String; - CH2_CDR_SRC : String; - CH3_CDR_SRC : String; - PLL_SRC : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - -begin - -PCSD_sim_inst : PCSD_sim -generic map ( - CONFIG_FILE => CONFIG_FILE, - QUAD_MODE => QUAD_MODE, - CH0_CDR_SRC => CH0_CDR_SRC, - CH1_CDR_SRC => CH1_CDR_SRC, - CH2_CDR_SRC => CH2_CDR_SRC, - CH3_CDR_SRC => CH3_CDR_SRC, - PLL_SRC => PLL_SRC - ) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX_0 => FFC_CK_CORE_RX_0, - FFC_CK_CORE_RX_1 => FFC_CK_CORE_RX_1, - FFC_CK_CORE_RX_2 => FFC_CK_CORE_RX_2, - FFC_CK_CORE_RX_3 => FFC_CK_CORE_RX_3, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_SYNC_TOGGLE => FFC_SYNC_TOGGLE, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - FFC_RATE_MODE_RX_0 => FFC_RATE_MODE_RX_0, - FFC_RATE_MODE_RX_1 => FFC_RATE_MODE_RX_1, - FFC_RATE_MODE_RX_2 => FFC_RATE_MODE_RX_2, - FFC_RATE_MODE_RX_3 => FFC_RATE_MODE_RX_3, - FFC_RATE_MODE_TX_0 => FFC_RATE_MODE_TX_0, - FFC_RATE_MODE_TX_1 => FFC_RATE_MODE_TX_1, - FFC_RATE_MODE_TX_2 => FFC_RATE_MODE_TX_2, - FFC_RATE_MODE_TX_3 => FFC_RATE_MODE_TX_3, - FFC_DIV11_MODE_RX_0 => FFC_DIV11_MODE_RX_0, - FFC_DIV11_MODE_RX_1 => FFC_DIV11_MODE_RX_1, - FFC_DIV11_MODE_RX_2 => FFC_DIV11_MODE_RX_2, - FFC_DIV11_MODE_RX_3 => FFC_DIV11_MODE_RX_3, - FFC_DIV11_MODE_TX_0 => FFC_DIV11_MODE_TX_0, - FFC_DIV11_MODE_TX_1 => FFC_DIV11_MODE_TX_1, - FFC_DIV11_MODE_TX_2 => FFC_DIV11_MODE_TX_2, - FFC_DIV11_MODE_TX_3 => FFC_DIV11_MODE_TX_3, - LDR_CORE2TX_0 => LDR_CORE2TX_0, - LDR_CORE2TX_1 => LDR_CORE2TX_1, - LDR_CORE2TX_2 => LDR_CORE2TX_2, - LDR_CORE2TX_3 => LDR_CORE2TX_3, - FFC_LDR_CORE2TX_EN_0 => FFC_LDR_CORE2TX_EN_0, - FFC_LDR_CORE2TX_EN_1 => FFC_LDR_CORE2TX_EN_1, - FFC_LDR_CORE2TX_EN_2 => FFC_LDR_CORE2TX_EN_2, - FFC_LDR_CORE2TX_EN_3 => FFC_LDR_CORE2TX_EN_3, - PCIE_POWERDOWN_0_0 => PCIE_POWERDOWN_0_0, - PCIE_POWERDOWN_0_1 => PCIE_POWERDOWN_0_1, - PCIE_POWERDOWN_1_0 => PCIE_POWERDOWN_1_0, - PCIE_POWERDOWN_1_1 => PCIE_POWERDOWN_1_1, - PCIE_POWERDOWN_2_0 => PCIE_POWERDOWN_2_0, - PCIE_POWERDOWN_2_1 => PCIE_POWERDOWN_2_1, - PCIE_POWERDOWN_3_0 => PCIE_POWERDOWN_3_0, - PCIE_POWERDOWN_3_1 => PCIE_POWERDOWN_3_1, - PCIE_RXPOLARITY_0 => PCIE_RXPOLARITY_0, - PCIE_RXPOLARITY_1 => PCIE_RXPOLARITY_1, - PCIE_RXPOLARITY_2 => PCIE_RXPOLARITY_2, - PCIE_RXPOLARITY_3 => PCIE_RXPOLARITY_3, - PCIE_TXCOMPLIANCE_0 => PCIE_TXCOMPLIANCE_0, - PCIE_TXCOMPLIANCE_1 => PCIE_TXCOMPLIANCE_1, - PCIE_TXCOMPLIANCE_2 => PCIE_TXCOMPLIANCE_2, - PCIE_TXCOMPLIANCE_3 => PCIE_TXCOMPLIANCE_3, - PCIE_TXDETRX_PR2TLB_0 => PCIE_TXDETRX_PR2TLB_0, - PCIE_TXDETRX_PR2TLB_1 => PCIE_TXDETRX_PR2TLB_1, - PCIE_TXDETRX_PR2TLB_2 => PCIE_TXDETRX_PR2TLB_2, - PCIE_TXDETRX_PR2TLB_3 => PCIE_TXDETRX_PR2TLB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_TX_F_CLK_0 => FF_TX_F_CLK_0, - FF_TX_F_CLK_1 => FF_TX_F_CLK_1, - FF_TX_F_CLK_2 => FF_TX_F_CLK_2, - FF_TX_F_CLK_3 => FF_TX_F_CLK_3, - FF_TX_H_CLK_0 => FF_TX_H_CLK_0, - FF_TX_H_CLK_1 => FF_TX_H_CLK_1, - FF_TX_H_CLK_2 => FF_TX_H_CLK_2, - FF_TX_H_CLK_3 => FF_TX_H_CLK_3, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_CDR_TRAIN_DONE_0 => FFS_CDR_TRAIN_DONE_0, - FFS_CDR_TRAIN_DONE_1 => FFS_CDR_TRAIN_DONE_1, - FFS_CDR_TRAIN_DONE_2 => FFS_CDR_TRAIN_DONE_2, - FFS_CDR_TRAIN_DONE_3 => FFS_CDR_TRAIN_DONE_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RLOS_HI_0 => FFS_RLOS_HI_0, - FFS_RLOS_HI_1 => FFS_RLOS_HI_1, - FFS_RLOS_HI_2 => FFS_RLOS_HI_2, - FFS_RLOS_HI_3 => FFS_RLOS_HI_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - PCIE_PHYSTATUS_0 => PCIE_PHYSTATUS_0, - PCIE_PHYSTATUS_1 => PCIE_PHYSTATUS_1, - PCIE_PHYSTATUS_2 => PCIE_PHYSTATUS_2, - PCIE_PHYSTATUS_3 => PCIE_PHYSTATUS_3, - PCIE_RXVALID_0 => PCIE_RXVALID_0, - PCIE_RXVALID_1 => PCIE_RXVALID_1, - PCIE_RXVALID_2 => PCIE_RXVALID_2, - PCIE_RXVALID_3 => PCIE_RXVALID_3, - FFS_SKP_ADDED_0 => FFS_SKP_ADDED_0, - FFS_SKP_ADDED_1 => FFS_SKP_ADDED_1, - FFS_SKP_ADDED_2 => FFS_SKP_ADDED_2, - FFS_SKP_ADDED_3 => FFS_SKP_ADDED_3, - FFS_SKP_DELETED_0 => FFS_SKP_DELETED_0, - FFS_SKP_DELETED_1 => FFS_SKP_DELETED_1, - FFS_SKP_DELETED_2 => FFS_SKP_DELETED_2, - FFS_SKP_DELETED_3 => FFS_SKP_DELETED_3, - LDR_RX2CORE_0 => LDR_RX2CORE_0, - LDR_RX2CORE_1 => LDR_RX2CORE_1, - LDR_RX2CORE_2 => LDR_RX2CORE_2, - LDR_RX2CORE_3 => LDR_RX2CORE_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7, - REFCLK_FROM_NQ => REFCLK_FROM_NQ, - REFCLK_TO_NQ => REFCLK_TO_NQ - ); - -end PCSD_arch; - ---synopsys translate_on - - - - ---synopsys translate_off -library ECP3; -use ECP3.components.all; ---synopsys translate_on - - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_ch4 is - GENERIC (USER_CONFIG_FILE : String := "serdes_ch4.txt"); - port ( ------------------- --- CH0 -- --- CH1 -- --- CH2 -- --- CH3 -- - hdinp_ch3, hdinn_ch3 : in std_logic; - hdoutp_ch3, hdoutn_ch3 : out std_logic; - rxiclk_ch3 : in std_logic; - txiclk_ch3 : in std_logic; - rx_full_clk_ch3 : out std_logic; - rx_half_clk_ch3 : out std_logic; - tx_full_clk_ch3 : out std_logic; - tx_half_clk_ch3 : out std_logic; - fpga_rxrefclk_ch3 : in std_logic; - txdata_ch3 : in std_logic_vector (7 downto 0); - tx_k_ch3 : in std_logic; - xmit_ch3 : in std_logic; - tx_disp_correct_ch3 : in std_logic; - rxdata_ch3 : out std_logic_vector (7 downto 0); - rx_k_ch3 : out std_logic; - rx_disp_err_ch3 : out std_logic; - rx_cv_err_ch3 : out std_logic; - rx_serdes_rst_ch3_c : in std_logic; - sb_felb_ch3_c : in std_logic; - sb_felb_rst_ch3_c : in std_logic; - tx_pcs_rst_ch3_c : in std_logic; - tx_pwrup_ch3_c : in std_logic; - rx_pcs_rst_ch3_c : in std_logic; - rx_pwrup_ch3_c : in std_logic; - rx_los_low_ch3_s : out std_logic; - lsm_status_ch3_s : out std_logic; - rx_cdr_lol_ch3_s : out std_logic; ----- Miscillaneous ports - fpga_txrefclk : in std_logic; - tx_serdes_rst_c : in std_logic; - tx_pll_lol_qd_s : out std_logic; - rst_qd_c : in std_logic; - serdes_rst_qd_c : in std_logic); - -end serdes_ch4; - - -architecture serdes_ch4_arch of serdes_ch4 is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; - - - -component PCSD ---synopsys translate_off -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSD_INST : label is USER_CONFIG_FILE; - attribute QUAD_MODE: string; - attribute QUAD_MODE of PCSD_INST : label is "SINGLE"; - attribute PLL_SRC: string; - attribute PLL_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute CH3_CDR_SRC: string; - attribute CH3_CDR_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSD : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal refclk_from_nq : std_logic := '0'; -signal fpsc_vlo : std_logic := '0'; -signal fpsc_vhi : std_logic := '1'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); -signal tx_full_clk_ch3_sig : std_logic; - -signal refclk2fpga_sig : std_logic; -signal tx_pll_lol_qd_sig : std_logic; -signal rx_los_low_ch0_sig : std_logic; -signal rx_los_low_ch1_sig : std_logic; -signal rx_los_low_ch2_sig : std_logic; -signal rx_los_low_ch3_sig : std_logic; -signal rx_cdr_lol_ch0_sig : std_logic; -signal rx_cdr_lol_ch1_sig : std_logic; -signal rx_cdr_lol_ch2_sig : std_logic; -signal rx_cdr_lol_ch3_sig : std_logic; - - - - - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); -vhi_inst : VHI port map(Z => fpsc_vhi); - - rx_los_low_ch3_s <= rx_los_low_ch3_sig; - rx_cdr_lol_ch3_s <= rx_cdr_lol_ch3_sig; - tx_pll_lol_qd_s <= tx_pll_lol_qd_sig; - tx_full_clk_ch3 <= tx_full_clk_ch3_sig; - --- pcs_quad instance -PCSD_INST : PCSD ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE, - QUAD_MODE => "SINGLE", - CH3_CDR_SRC => "REFCLK_CORE", - PLL_SRC => "REFCLK_CORE" - ) ---synopsys translate_on -port map ( - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - ------ CH0 ----- - HDOUTP0 => open, - HDOUTN0 => open, - HDINP0 => fpsc_vlo, - HDINN0 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_0 => fpsc_vlo, - PCIE_TXCOMPLIANCE_0 => fpsc_vlo, - PCIE_RXPOLARITY_0 => fpsc_vlo, - PCIE_POWERDOWN_0_0 => fpsc_vlo, - PCIE_POWERDOWN_0_1 => fpsc_vlo, - PCIE_RXVALID_0 => open, - PCIE_PHYSTATUS_0 => open, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => fpsc_vlo, - FF_TXI_CLK_0 => fpsc_vlo, - FF_EBRD_CLK_0 => fpsc_vlo, - FF_RX_F_CLK_0 => open, - FF_RX_H_CLK_0 => open, - FF_TX_F_CLK_0 => open, - FF_TX_H_CLK_0 => open, - FFC_CK_CORE_RX_0 => fpsc_vlo, - FF_TX_D_0_0 => fpsc_vlo, - FF_TX_D_0_1 => fpsc_vlo, - FF_TX_D_0_2 => fpsc_vlo, - FF_TX_D_0_3 => fpsc_vlo, - FF_TX_D_0_4 => fpsc_vlo, - FF_TX_D_0_5 => fpsc_vlo, - FF_TX_D_0_6 => fpsc_vlo, - FF_TX_D_0_7 => fpsc_vlo, - FF_TX_D_0_8 => fpsc_vlo, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => fpsc_vlo, - FF_TX_D_0_11 => fpsc_vlo, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => open, - FF_RX_D_0_1 => open, - FF_RX_D_0_2 => open, - FF_RX_D_0_3 => open, - FF_RX_D_0_4 => open, - FF_RX_D_0_5 => open, - FF_RX_D_0_6 => open, - FF_RX_D_0_7 => open, - FF_RX_D_0_8 => open, - FF_RX_D_0_9 => open, - FF_RX_D_0_10 => open, - FF_RX_D_0_11 => open, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - - FFC_RRST_0 => fpsc_vlo, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => fpsc_vlo, - FFC_PFIFO_CLR_0 => fpsc_vlo, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => fpsc_vlo, - FFC_TXPWDNB_0 => fpsc_vlo, - FFC_LANE_RX_RST_0 => fpsc_vlo, - FFC_RXPWDNB_0 => fpsc_vlo, - FFS_RLOS_LO_0 => open, - FFS_RLOS_HI_0 => open, - FFS_PCIE_CON_0 => open, - FFS_PCIE_DONE_0 => open, - FFS_LS_SYNC_STATUS_0 => open, - FFS_CC_OVERRUN_0 => open, - FFS_CC_UNDERRUN_0 => open, - FFS_SKP_ADDED_0 => open, - FFS_SKP_DELETED_0 => open, - FFS_RLOL_0 => open, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - LDR_CORE2TX_0 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_0 => fpsc_vlo, - LDR_RX2CORE_0 => open, - FFS_CDR_TRAIN_DONE_0 => open, - FFC_DIV11_MODE_TX_0 => fpsc_vlo, - FFC_RATE_MODE_TX_0 => fpsc_vlo, - FFC_DIV11_MODE_RX_0 => fpsc_vlo, - FFC_RATE_MODE_RX_0 => fpsc_vlo, - ------ CH1 ----- - HDOUTP1 => open, - HDOUTN1 => open, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_1 => fpsc_vlo, - PCIE_TXCOMPLIANCE_1 => fpsc_vlo, - PCIE_RXPOLARITY_1 => fpsc_vlo, - PCIE_POWERDOWN_1_0 => fpsc_vlo, - PCIE_POWERDOWN_1_1 => fpsc_vlo, - PCIE_RXVALID_1 => open, - PCIE_PHYSTATUS_1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_TX_F_CLK_1 => open, - FF_TX_H_CLK_1 => open, - FFC_CK_CORE_RX_1 => fpsc_vlo, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_RLOS_HI_1 => open, - FFS_PCIE_CON_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_SKP_ADDED_1 => open, - FFS_SKP_DELETED_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - LDR_CORE2TX_1 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_1 => fpsc_vlo, - LDR_RX2CORE_1 => open, - FFS_CDR_TRAIN_DONE_1 => open, - FFC_DIV11_MODE_TX_1 => fpsc_vlo, - FFC_RATE_MODE_TX_1 => fpsc_vlo, - FFC_DIV11_MODE_RX_1 => fpsc_vlo, - FFC_RATE_MODE_RX_1 => fpsc_vlo, - ------ CH2 ----- - HDOUTP2 => open, - HDOUTN2 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_2 => fpsc_vlo, - PCIE_TXCOMPLIANCE_2 => fpsc_vlo, - PCIE_RXPOLARITY_2 => fpsc_vlo, - PCIE_POWERDOWN_2_0 => fpsc_vlo, - PCIE_POWERDOWN_2_1 => fpsc_vlo, - PCIE_RXVALID_2 => open, - PCIE_PHYSTATUS_2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_TX_F_CLK_2 => open, - FF_TX_H_CLK_2 => open, - FFC_CK_CORE_RX_2 => fpsc_vlo, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_RLOS_HI_2 => open, - FFS_PCIE_CON_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_SKP_ADDED_2 => open, - FFS_SKP_DELETED_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - LDR_CORE2TX_2 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_2 => fpsc_vlo, - LDR_RX2CORE_2 => open, - FFS_CDR_TRAIN_DONE_2 => open, - FFC_DIV11_MODE_TX_2 => fpsc_vlo, - FFC_RATE_MODE_TX_2 => fpsc_vlo, - FFC_DIV11_MODE_RX_2 => fpsc_vlo, - FFC_RATE_MODE_RX_2 => fpsc_vlo, - ------ CH3 ----- - HDOUTP3 => hdoutp_ch3, - HDOUTN3 => hdoutn_ch3, - HDINP3 => hdinp_ch3, - HDINN3 => hdinn_ch3, - PCIE_TXDETRX_PR2TLB_3 => fpsc_vlo, - PCIE_TXCOMPLIANCE_3 => fpsc_vlo, - PCIE_RXPOLARITY_3 => fpsc_vlo, - PCIE_POWERDOWN_3_0 => fpsc_vlo, - PCIE_POWERDOWN_3_1 => fpsc_vlo, - PCIE_RXVALID_3 => open, - PCIE_PHYSTATUS_3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => rxiclk_ch3, - FF_TXI_CLK_3 => txiclk_ch3, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => rx_full_clk_ch3, - FF_RX_H_CLK_3 => rx_half_clk_ch3, - FF_TX_F_CLK_3 => tx_full_clk_ch3_sig, - FF_TX_H_CLK_3 => tx_half_clk_ch3, - FFC_CK_CORE_RX_3 => fpga_rxrefclk_ch3, - FF_TX_D_3_0 => txdata_ch3(0), - FF_TX_D_3_1 => txdata_ch3(1), - FF_TX_D_3_2 => txdata_ch3(2), - FF_TX_D_3_3 => txdata_ch3(3), - FF_TX_D_3_4 => txdata_ch3(4), - FF_TX_D_3_5 => txdata_ch3(5), - FF_TX_D_3_6 => txdata_ch3(6), - FF_TX_D_3_7 => txdata_ch3(7), - FF_TX_D_3_8 => tx_k_ch3, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => xmit_ch3, - FF_TX_D_3_11 => tx_disp_correct_ch3, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => rxdata_ch3(0), - FF_RX_D_3_1 => rxdata_ch3(1), - FF_RX_D_3_2 => rxdata_ch3(2), - FF_RX_D_3_3 => rxdata_ch3(3), - FF_RX_D_3_4 => rxdata_ch3(4), - FF_RX_D_3_5 => rxdata_ch3(5), - FF_RX_D_3_6 => rxdata_ch3(6), - FF_RX_D_3_7 => rxdata_ch3(7), - FF_RX_D_3_8 => rx_k_ch3, - FF_RX_D_3_9 => rx_disp_err_ch3, - FF_RX_D_3_10 => rx_cv_err_ch3, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - - FFC_RRST_3 => rx_serdes_rst_ch3_c, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => sb_felb_ch3_c, - FFC_PFIFO_CLR_3 => sb_felb_rst_ch3_c, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => tx_pcs_rst_ch3_c, - FFC_TXPWDNB_3 => tx_pwrup_ch3_c, - FFC_LANE_RX_RST_3 => rx_pcs_rst_ch3_c, - FFC_RXPWDNB_3 => rx_pwrup_ch3_c, - FFS_RLOS_LO_3 => rx_los_low_ch3_sig, - FFS_RLOS_HI_3 => open, - FFS_PCIE_CON_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_LS_SYNC_STATUS_3 => lsm_status_ch3_s, - FFS_CC_OVERRUN_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_SKP_ADDED_3 => open, - FFS_SKP_DELETED_3 => open, - FFS_RLOL_3 => rx_cdr_lol_ch3_sig, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - LDR_CORE2TX_3 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_3 => fpsc_vlo, - LDR_RX2CORE_3 => open, - FFS_CDR_TRAIN_DONE_3 => open, - FFC_DIV11_MODE_TX_3 => fpsc_vlo, - FFC_RATE_MODE_TX_3 => fpsc_vlo, - FFC_DIV11_MODE_RX_3 => fpsc_vlo, - FFC_RATE_MODE_RX_3 => fpsc_vlo, - ------ Auxilliary ---- - SCIWDATA7 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA0 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIRDATA7 => open, - SCIRDATA6 => open, - SCIRDATA5 => open, - SCIRDATA4 => open, - SCIRDATA3 => open, - SCIRDATA2 => open, - SCIRDATA1 => open, - SCIRDATA0 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_CK_CORE_TX => fpga_txrefclk, - FFC_MACRO_RST => serdes_rst_qd_c, - FFC_QUAD_RST => rst_qd_c, - FFC_TRST => tx_serdes_rst_c, - FFS_PLOL => tx_pll_lol_qd_sig, - FFC_SYNC_TOGGLE => fpsc_vlo, - REFCK2CORE => refclk2fpga_sig, - CIN0 => fpsc_vlo, - CIN1 => fpsc_vlo, - CIN2 => fpsc_vlo, - CIN3 => fpsc_vlo, - CIN4 => fpsc_vlo, - CIN5 => fpsc_vlo, - CIN6 => fpsc_vlo, - CIN7 => fpsc_vlo, - CIN8 => fpsc_vlo, - CIN9 => fpsc_vlo, - CIN10 => fpsc_vlo, - CIN11 => fpsc_vlo, - COUT0 => open, - COUT1 => open, - COUT2 => open, - COUT3 => open, - COUT4 => open, - COUT5 => open, - COUT6 => open, - COUT7 => open, - COUT8 => open, - COUT9 => open, - COUT10 => open, - COUT11 => open, - COUT12 => open, - COUT13 => open, - COUT14 => open, - COUT15 => open, - COUT16 => open, - COUT17 => open, - COUT18 => open, - COUT19 => open, - REFCLK_FROM_NQ => refclk_from_nq, - REFCLK_TO_NQ => open); - - - - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on -end serdes_ch4_arch ; diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_ch4_generate.log b/gbe2_ecp3/ipcores_ecp3/serdes_ch4_generate.log deleted file mode 100644 index 26130c0..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_ch4_generate.log +++ /dev/null @@ -1,29 +0,0 @@ -Starting process: Module - -Starting process: - - Module Name: serdes_ch4 - Core Name: PCS - LPC file : serdes_ch4.lpc - Parameter File : serdes_ch4.pp - Command line: /opt/lattice/diamond/1.4/ispfpga/bin/lin/orcapp -Fmaco serdes_ch4.pp - Return Value: - - - - Module PCS has been generated in /home/greg/projects/trb3/trb3_gbe/. successfully! - -/opt/lattice/diamond/1.4/bin/lin/hdl2jhd -tfi -mod serdes_ch4 -ext readme -out serdes_ch4 -tpl serdes_ch4.tft serdes_ch4.vhd - -Done successfully! -File: serdes_ch4.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/dummy_sym.sort b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/dummy_sym.sort deleted file mode 100644 index a1712c9..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/dummy_sym.sort +++ /dev/null @@ -1 +0,0 @@ -dummy_sym.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/msg_file.log b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/msg_file.log deleted file mode 100644 index ada5650..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/msg_file.log +++ /dev/null @@ -1,14 +0,0 @@ - Module Name: serdes_gbe_0ch - Core Name: PCS - LPC file : serdes_gbe_0ch.lpc - Parameter File : serdes_gbe_0ch.pp - Command line: /opt/lattice/diamond/1.3/ispfpga/bin/lin/orcapp -Fmaco serdes_gbe_0ch.pp - Return Value: - - - - Module PCS has been generated in /home/greg/projects/trb3/trb3_gbe/simple_test/ipcores/serdes_gbe_0ch/. successfully! - -/opt/lattice/diamond/1.3/bin/lin/hdl2jhd -tfi -mod serdes_gbe_0ch -ext readme -out serdes_gbe_0ch -tpl serdes_gbe_0ch.tft serdes_gbe_0ch.vhd - -Done successfully! diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.ipx b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.ipx deleted file mode 100644 index 012c405..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.ipx +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.jhd b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.jhd deleted file mode 100644 index 9fdc304..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.jhd +++ /dev/null @@ -1,7 +0,0 @@ -MODULE serdes_gbe_0ch DEFIN serdes_gbe_0ch.vhd - SUBMODULE PCSD - INSTANCE PCSD_INST - SUBMODULE VHI - INSTANCE vhi_inst - SUBMODULE VLO - INSTANCE vlo_inst diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.lpc b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.lpc deleted file mode 100644 index 6db75a5..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.lpc +++ /dev/null @@ -1,258 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-6FN1156C -SpeedGrade=6 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=8.1 -ModuleName=serdes_gbe_0ch -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=11/30/2011 -Time=14:02:46 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -_mode0=RXTX -_mode1=DISABLED -_mode2=DISABLED -_mode3=DISABLED -_protocol0=GIGE -_protocol1=G8B10B -_protocol2=G8B10B -_protocol3=G8B10B -_ldr0=DISABLED -_ldr1=DISABLED -_ldr2=DISABLED -_ldr3=DISABLED -_datarange=1.25 -_pll_txsrc=INTERNAL -_refclk_mult=10X -_refclk_rate=125.0 -_tx_protocol0=GIGE -_tx_protocol1=DISABLED -_tx_protocol2=DISABLED -_tx_protocol3=DISABLED -_tx_data_rate0=FULL -_tx_data_rate1=FULL -_tx_data_rate2=FULL -_tx_data_rate3=FULL -_tx_data_width0=8 -_tx_data_width1=8 -_tx_data_width2=8 -_tx_data_width3=8 -_tx_fifo0=ENABLED -_tx_fifo1=ENABLED -_tx_fifo2=ENABLED -_tx_fifo3=ENABLED -_tx_ficlk_rate0=125.0 -_tx_ficlk_rate1=125.0 -_tx_ficlk_rate2=125.0 -_tx_ficlk_rate3=125.0 -_pll_rxsrc0=INTERNAL -_pll_rxsrc1=EXTERNAL -_pll_rxsrc2=EXTERNAL -_pll_rxsrc3=EXTERNAL -Multiplier0= -Multiplier1= -Multiplier2= -Multiplier3= -_rx_datarange0=1.25 -_rx_datarange1=2.5 -_rx_datarange2=2.5 -_rx_datarange3=2.5 -_rx_protocol0=GIGE -_rx_protocol1=DISABLED -_rx_protocol2=DISABLED -_rx_protocol3=DISABLED -_rx_data_rate0=FULL -_rx_data_rate1=FULL -_rx_data_rate2=FULL -_rx_data_rate3=FULL -_rxrefclk_rate0=125.0 -_rxrefclk_rate1=250.0 -_rxrefclk_rate2=250.0 -_rxrefclk_rate3=250.0 -_rx_data_width0=8 -_rx_data_width1=8 -_rx_data_width2=8 -_rx_data_width3=8 -_rx_fifo0=ENABLED -_rx_fifo1=ENABLED -_rx_fifo2=ENABLED -_rx_fifo3=ENABLED -_rx_ficlk_rate0=125.0 -_rx_ficlk_rate1=250.0 -_rx_ficlk_rate2=250.0 -_rx_ficlk_rate3=250.0 -_tdrv_ch0=0 -_tdrv_ch1=0 -_tdrv_ch2=0 -_tdrv_ch3=0 -_tx_pre0=DISABLED -_tx_pre1=DISABLED -_tx_pre2=DISABLED -_tx_pre3=DISABLED -_rterm_tx0=50 -_rterm_tx1=50 -_rterm_tx2=50 -_rterm_tx3=50 -_rx_eq0=DISABLED -_rx_eq1=DISABLED -_rx_eq2=DISABLED -_rx_eq3=DISABLED -_rterm_rx0=50 -_rterm_rx1=50 -_rterm_rx2=50 -_rterm_rx3=50 -_rx_dcc0=AC -_rx_dcc1=AC -_rx_dcc2=AC -_rx_dcc3=AC -_los_threshold_mode0=LOS_E -_los_threshold_mode1=LOS_E -_los_threshold_mode2=LOS_E -_los_threshold_mode3=LOS_E -_los_threshold_lo0=2 -_los_threshold_lo1=2 -_los_threshold_lo2=2 -_los_threshold_lo3=2 -_los_threshold_hi0=7 -_los_threshold_hi1=7 -_los_threshold_hi2=7 -_los_threshold_hi3=7 -_pll_term=50 -_pll_dcc=AC -_pll_lol_set=0 -_tx_sb0=DISABLED -_tx_sb1=DISABLED -_tx_sb2=DISABLED -_tx_sb3=DISABLED -_tx_8b10b0=ENABLED -_tx_8b10b1=ENABLED -_tx_8b10b2=ENABLED -_tx_8b10b3=ENABLED -_rx_sb0=DISABLED -_rx_sb1=DISABLED -_rx_sb2=DISABLED -_rx_sb3=DISABLED -_ird0=DISABLED -_ird1=DISABLED -_ird2=DISABLED -_ird3=DISABLED -_rx_8b10b0=ENABLED -_rx_8b10b1=ENABLED -_rx_8b10b2=ENABLED -_rx_8b10b3=ENABLED -_rxwa0=ENABLED -_rxwa1=ENABLED -_rxwa2=ENABLED -_rxwa3=ENABLED -_ilsm0=ENABLED -_ilsm1=ENABLED -_ilsm2=ENABLED -_ilsm3=ENABLED -_scomma0=K28P5 -_scomma1=K28P157 -_scomma2=K28P157 -_scomma3=K28P157 -_comma_a0=1100000101 -_comma_a1=1100000101 -_comma_a2=1100000101 -_comma_a3=1100000101 -_comma_b0=0011111010 -_comma_b1=0011111010 -_comma_b2=0011111010 -_comma_b3=0011111010 -_comma_m0=1111111111 -_comma_m1=1111111100 -_comma_m2=1111111100 -_comma_m3=1111111100 -_ctc0=DISABLED -_ctc1=DISABLED -_ctc2=DISABLED -_ctc3=DISABLED -_cc_match_mode0=2 -_cc_match_mode1=1 -_cc_match_mode2=1 -_cc_match_mode3=1 -_k00=01 -_k01=00 -_k02=00 -_k03=00 -_k10=00 -_k11=00 -_k12=00 -_k13=00 -_k20=01 -_k21=01 -_k22=01 -_k23=01 -_k30=00 -_k31=01 -_k32=01 -_k33=01 -_byten00=10111100 -_byten01=00000000 -_byten02=00000000 -_byten03=00000000 -_byten10=01010000 -_byten11=00000000 -_byten12=00000000 -_byten13=00000000 -_byten20=10111100 -_byten21=00011100 -_byten22=00011100 -_byten23=00011100 -_byten30=01010000 -_byten31=00011100 -_byten32=00011100 -_byten33=00011100 -_cc_min_ipg0=3 -_cc_min_ipg1=3 -_cc_min_ipg2=3 -_cc_min_ipg3=3 -_cchmark=9 -_cclmark=7 -_loopback=DISABLED -_lbtype0=DISABLED -_lbtype1=DISABLED -_lbtype2=DISABLED -_lbtype3=DISABLED -_teidle_ch0=DISABLED -_teidle_ch1=DISABLED -_teidle_ch2=DISABLED -_teidle_ch3=DISABLED -_rst_gen=DISABLED -_rx_los_port0=Internal -_rx_los_port1=Internal -_rx_los_port2=Internal -_rx_los_port3=Internal -_sci_ports=DISABLED -_sci_int_port=DISABLED -_refck2core=DISABLED -Regen=auto -PAR1=0 -PARTrace1=0 -PAR3=0 -PARTrace3=0 - -[FilesGenerated] -serdes_gbe_0ch.pp=pp -serdes_gbe_0ch.tft=tft -serdes_gbe_0ch.txt=pcs_module -serdes_gbe_0ch.sym=sym diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.naf b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.naf deleted file mode 100644 index f56b8f4..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.naf +++ /dev/null @@ -1,48 +0,0 @@ -hdinp_ch0 i -hdinn_ch0 i -hdoutp_ch0 o -hdoutn_ch0 o -rxiclk_ch0 i -txiclk_ch0 i -rx_full_clk_ch0 o -rx_half_clk_ch0 o -tx_full_clk_ch0 o -tx_half_clk_ch0 o -fpga_rxrefclk_ch0 i -txdata_ch0[7] i -txdata_ch0[6] i -txdata_ch0[5] i -txdata_ch0[4] i -txdata_ch0[3] i -txdata_ch0[2] i -txdata_ch0[1] i -txdata_ch0[0] i -tx_k_ch0 i -xmit_ch0 i -tx_disp_correct_ch0 i -rxdata_ch0[7] o -rxdata_ch0[6] o -rxdata_ch0[5] o -rxdata_ch0[4] o -rxdata_ch0[3] o -rxdata_ch0[2] o -rxdata_ch0[1] o -rxdata_ch0[0] o -rx_k_ch0 o -rx_disp_err_ch0 o -rx_cv_err_ch0 o -rx_serdes_rst_ch0_c i -sb_felb_ch0_c i -sb_felb_rst_ch0_c i -tx_pcs_rst_ch0_c i -tx_pwrup_ch0_c i -rx_pcs_rst_ch0_c i -rx_pwrup_ch0_c i -rx_los_low_ch0_s o -lsm_status_ch0_s o -rx_cdr_lol_ch0_s o -fpga_txrefclk i -tx_serdes_rst_c i -tx_pll_lol_qd_s o -rst_qd_c i -serdes_rst_qd_c i diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.pp b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.pp deleted file mode 100644 index 6a85bbd..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.pp +++ /dev/null @@ -1,195 +0,0 @@ -#define _device_name "LFE3-150EA" -#define _ch0_pll_rxsrc "REFCLK_CORE" -#define _ch0_mode "RXTX" -#define _ch0_protocol "GIGE" -#define _ch0_ldr "DISABLED" -#define _ch0_tx_data_rate "FULL" -#define _ch0_tx_data_width "8" -#define _ch0_tx_fifo "ENABLED" -#define _ch0_tx_ficlk_rate 125.0 -#define _ch0_rx_datarange "MED" -#define _ch0_rx_data_rate "FULL" -#define _ch0_rxrefclk_rate "125.0" -#define _ch0_rx_data_width "8" -#define _ch0_rx_fifo "ENABLED" -#define _ch0_rx_ficlk_rate 125.0 -#define _ch0_tdrv "0" -#define _ch0_tx_pre "DISABLED" -#define _ch0_rterm_tx "50" -#define _ch0_rx_eq "DISABLED" -#define _ch0_rterm_rx "50" -#define _ch0_rx_dcc "AC" -#define _los_threshold_mode0 "LOS_E" -#define _los_threshold_lo0 "2" -#define _ch0_tx_sb "DISABLED" -#define _ch0_tx_8b10b "ENABLED" -#define _ch0_rx_sb "DISABLED" -#define _ch0_ird "DISABLED" -#define _ch0_rx_8b10b "ENABLED" -#define _ch0_rxwa "ENABLED" -#define _ch0_ilsm "ENABLED" -#define _ch0_scomma "K28P5" -#define _ch0_comma_a "1100000101" -#define _ch0_comma_b "0011111010" -#define _ch0_comma_m "1111111111" -#define _ch0_ctc "DISABLED" -#define _ch0_cc_match_mode "2" -#define _ch0_byten "0110111100" -#define _ch0_byten1 "0001010000" -#define _ch0_byten2 "0110111100" -#define _ch0_byten3 "0001010000" -#define _ch0_cc_min_ipg "3" -#define _ch0_lbtype "DISABLED" -#define _ch0_teidle "DISABLED" -#define _ch0_rx_lol_port "INTERNAL" - -#define _ch1_pll_rxsrc "REFCLK_EXT" -#define _ch1_mode "DISABLED" -#define _ch1_protocol "G8B10B" -#define _ch1_ldr "DISABLED" -#define _ch1_tx_data_rate "FULL" -#define _ch1_tx_data_width "8" -#define _ch1_tx_fifo "ENABLED" -#define _ch1_tx_ficlk_rate 125.0 -#define _ch1_rx_datarange "MEDHIGH" -#define _ch1_rx_data_rate "FULL" -#define _ch1_rxrefclk_rate "250.0" -#define _ch1_rx_data_width "8" -#define _ch1_rx_fifo "ENABLED" -#define _ch1_rx_ficlk_rate 250.0 -#define _ch1_tdrv "0" -#define _ch1_tx_pre "DISABLED" -#define _ch1_rterm_tx "50" -#define _ch1_rx_eq "DISABLED" -#define _ch1_rterm_rx "50" -#define _ch1_rx_dcc "AC" -#define _los_threshold_mode1 "LOS_E" -#define _los_threshold_lo1 "2" -#define _ch1_tx_sb "DISABLED" -#define _ch1_tx_8b10b "ENABLED" -#define _ch1_rx_sb "DISABLED" -#define _ch1_ird "DISABLED" -#define _ch1_rx_8b10b "ENABLED" -#define _ch1_rxwa "ENABLED" -#define _ch1_ilsm "ENABLED" -#define _ch1_scomma "K28P157" -#define _ch1_comma_a "1100000101" -#define _ch1_comma_b "0011111010" -#define _ch1_comma_m "1111111100" -#define _ch1_ctc "DISABLED" -#define _ch1_cc_match_mode "1" -#define _ch1_byten "0000000000" -#define _ch1_byten1 "0000000000" -#define _ch1_byten2 "0100011100" -#define _ch1_byten3 "0100011100" -#define _ch1_cc_min_ipg "3" -#define _ch1_lbtype "DISABLED" -#define _ch1_teidle "DISABLED" -#define _ch1_rx_lol_port "INTERNAL" - -#define _ch2_pll_rxsrc "REFCLK_EXT" -#define _ch2_mode "DISABLED" -#define _ch2_protocol "G8B10B" -#define _ch2_ldr "DISABLED" -#define _ch2_tx_data_rate "FULL" -#define _ch2_tx_data_width "8" -#define _ch2_tx_fifo "ENABLED" -#define _ch2_tx_ficlk_rate 125.0 -#define _ch2_rx_datarange "MEDHIGH" -#define _ch2_rx_data_rate "FULL" -#define _ch2_rxrefclk_rate "250.0" -#define _ch2_rx_data_width "8" -#define _ch2_rx_fifo "ENABLED" -#define _ch2_rx_ficlk_rate 250.0 -#define _ch2_tdrv "0" -#define _ch2_tx_pre "DISABLED" -#define _ch2_rterm_tx "50" -#define _ch2_rx_eq "DISABLED" -#define _ch2_rterm_rx "50" -#define _ch2_rx_dcc "AC" -#define _los_threshold_mode2 "LOS_E" -#define _los_threshold_lo2 "2" -#define _ch2_tx_sb "DISABLED" -#define _ch2_tx_8b10b "ENABLED" -#define _ch2_rx_sb "DISABLED" -#define _ch2_ird "DISABLED" -#define _ch2_rx_8b10b "ENABLED" -#define _ch2_rxwa "ENABLED" -#define _ch2_ilsm "ENABLED" -#define _ch2_scomma "K28P157" -#define _ch2_comma_a "1100000101" -#define _ch2_comma_b "0011111010" -#define _ch2_comma_m "1111111100" -#define _ch2_ctc "DISABLED" -#define _ch2_cc_match_mode "1" -#define _ch2_byten "0000000000" -#define _ch2_byten1 "0000000000" -#define _ch2_byten2 "0100011100" -#define _ch2_byten3 "0100011100" -#define _ch2_cc_min_ipg "3" -#define _ch2_lbtype "DISABLED" -#define _ch2_teidle "DISABLED" -#define _ch2_rx_lol_port "INTERNAL" - -#define _ch3_pll_rxsrc "REFCLK_EXT" -#define _ch3_mode "DISABLED" -#define _ch3_protocol "G8B10B" -#define _ch3_ldr "DISABLED" -#define _ch3_tx_data_rate "FULL" -#define _ch3_tx_data_width "8" -#define _ch3_tx_fifo "ENABLED" -#define _ch3_tx_ficlk_rate 125.0 -#define _ch3_rx_datarange "MEDHIGH" -#define _ch3_rx_data_rate "FULL" -#define _ch3_rxrefclk_rate "250.0" -#define _ch3_rx_data_width "8" -#define _ch3_rx_fifo "ENABLED" -#define _ch3_rx_ficlk_rate 250.0 -#define _ch3_tdrv "0" -#define _ch3_tx_pre "DISABLED" -#define _ch3_rterm_tx "50" -#define _ch3_rx_eq "DISABLED" -#define _ch3_rterm_rx "50" -#define _ch3_rx_dcc "AC" -#define _los_threshold_mode3 "LOS_E" -#define _los_threshold_lo3 "2" -#define _ch3_tx_sb "DISABLED" -#define _ch3_tx_8b10b "ENABLED" -#define _ch3_rx_sb "DISABLED" -#define _ch3_ird "DISABLED" -#define _ch3_rx_8b10b "ENABLED" -#define _ch3_rxwa "ENABLED" -#define _ch3_ilsm "ENABLED" -#define _ch3_scomma "K28P157" -#define _ch3_comma_a "1100000101" -#define _ch3_comma_b "0011111010" -#define _ch3_comma_m "1111111100" -#define _ch3_ctc "DISABLED" -#define _ch3_cc_match_mode "1" -#define _ch3_byten "0000000000" -#define _ch3_byten1 "0000000000" -#define _ch3_byten2 "0100011100" -#define _ch3_byten3 "0100011100" -#define _ch3_cc_min_ipg "3" -#define _ch3_lbtype "DISABLED" -#define _ch3_teidle "DISABLED" -#define _ch3_rx_lol_port "INTERNAL" - -#define _datarange "MED" -#define _pll_txsrc "REFCLK_CORE" -#define _refclk_mult "10X" -#define _refclk_rate 125.0 -#define _pll_term "50" -#define _pll_dcc "AC" -#define _pll_lol_set "0" -#define _cchmark "9" -#define _cclmark "7" -#define _rst_gen "DISABLED" -#define _sci_ports "DISABLED" -#define _sci_int_port "DISABLED" -#define _refck2core "DISABLED" -#define _circuit_name serdes_gbe_0ch -#define _lang vhdl - -#include -#include diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.readme b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.readme deleted file mode 100644 index 90abab8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.readme +++ /dev/null @@ -1,141 +0,0 @@ - - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: Lattice Semiconductor Corporation - MODULE: serdes_gbe_0ch - DESIGN: serdes_gbe_0ch - FILENAME: serdes_gbe_0ch.readme - PROJECT: Unknown - VERSION: 2.0 - This file is auto generated by the ispLEVER - - -NOTE: This readme file has been provided to instantiate the interface -netlist. Since this template contains synthesis attributes for precision that -are crucial to the design flow, we recommend that you use this -template in your FPGA design. -entity chip is -port ( - --- Add your FPGA design top level I/Os here - - --- ASIC side pins for PCSD. These pins must exist for the --- PCS core. - refclkp : in std_logic; - refclkn : in std_logic; - hdinp_ch0 : in std_logic; - hdinn_ch0 : in std_logic; - hdinp_ch1 : in std_logic; - hdinn_ch1 : in std_logic; - hdinp_ch2 : in std_logic; - hdinn_ch2 : in std_logic; - hdinp_ch3 : in std_logic; - hdinn_ch3 : in std_logic; - - hdoutp_ch0 : out std_logic; - hdoutn_ch0 : out std_logic; - hdoutp_ch1 : out std_logic; - hdoutn_ch1 : out std_logic; - hdoutp_ch2 : out std_logic; - hdoutn_ch2 : out std_logic; - hdoutp_ch3 : out std_logic; - hdoutn_ch3 : out std_logic; - - -); -end chip; - -architecture chip_arch of chip is - --- This defines all the high-speed ports. You may have to remove --- some of them depending on your design. -attribute nopad : string; -attribute nopad of - refclkp, refclkn, - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1, - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3, - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1, - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true"; - - COMPONENT serdes_gbe_0ch - PORT( - hdinp_ch0 : IN std_logic; - hdinn_ch0 : IN std_logic; - rxiclk_ch0 : IN std_logic; - txiclk_ch0 : IN std_logic; - fpga_rxrefclk_ch0 : IN std_logic; - txdata_ch0 : IN std_logic_vector(7 downto 0); - tx_k_ch0 : IN std_logic; - xmit_ch0 : IN std_logic; - tx_disp_correct_ch0 : IN std_logic; - rx_serdes_rst_ch0_c : IN std_logic; - sb_felb_ch0_c : IN std_logic; - sb_felb_rst_ch0_c : IN std_logic; - tx_pcs_rst_ch0_c : IN std_logic; - tx_pwrup_ch0_c : IN std_logic; - rx_pcs_rst_ch0_c : IN std_logic; - rx_pwrup_ch0_c : IN std_logic; - fpga_txrefclk : IN std_logic; - tx_serdes_rst_c : IN std_logic; - rst_qd_c : IN std_logic; - serdes_rst_qd_c : IN std_logic; - hdoutp_ch0 : OUT std_logic; - hdoutn_ch0 : OUT std_logic; - rx_full_clk_ch0 : OUT std_logic; - rx_half_clk_ch0 : OUT std_logic; - tx_full_clk_ch0 : OUT std_logic; - tx_half_clk_ch0 : OUT std_logic; - rxdata_ch0 : OUT std_logic_vector(7 downto 0); - rx_k_ch0 : OUT std_logic; - rx_disp_err_ch0 : OUT std_logic; - rx_cv_err_ch0 : OUT std_logic; - rx_los_low_ch0_s : OUT std_logic; - lsm_status_ch0_s : OUT std_logic; - rx_cdr_lol_ch0_s : OUT std_logic; - tx_pll_lol_qd_s : OUT std_logic - ); - END COMPONENT; - - - - uut: serdes_gbe_0ch PORT MAP( - hdinp_ch0 => hdinp_ch0, - hdinn_ch0 => hdinn_ch0, - hdoutp_ch0 => hdoutp_ch0, - hdoutn_ch0 => hdoutn_ch0, - rxiclk_ch0 => rxiclk_ch0, - txiclk_ch0 => txiclk_ch0, - rx_full_clk_ch0 => rx_full_clk_ch0, - rx_half_clk_ch0 => rx_half_clk_ch0, - tx_full_clk_ch0 => tx_full_clk_ch0, - tx_half_clk_ch0 => tx_half_clk_ch0, - fpga_rxrefclk_ch0 => fpga_rxrefclk_ch0, - txdata_ch0 => txdata_ch0, - tx_k_ch0 => tx_k_ch0, - xmit_ch0 => xmit_ch0, - tx_disp_correct_ch0 => tx_disp_correct_ch0, - rxdata_ch0 => rxdata_ch0, - rx_k_ch0 => rx_k_ch0, - rx_disp_err_ch0 => rx_disp_err_ch0, - rx_cv_err_ch0 => rx_cv_err_ch0, - rx_serdes_rst_ch0_c => rx_serdes_rst_ch0_c, - sb_felb_ch0_c => sb_felb_ch0_c, - sb_felb_rst_ch0_c => sb_felb_rst_ch0_c, - tx_pcs_rst_ch0_c => tx_pcs_rst_ch0_c, - tx_pwrup_ch0_c => tx_pwrup_ch0_c, - rx_pcs_rst_ch0_c => rx_pcs_rst_ch0_c, - rx_pwrup_ch0_c => rx_pwrup_ch0_c, - rx_los_low_ch0_s => rx_los_low_ch0_s, - lsm_status_ch0_s => lsm_status_ch0_s, - rx_cdr_lol_ch0_s => rx_cdr_lol_ch0_s, - fpga_txrefclk => fpga_txrefclk, - tx_serdes_rst_c => tx_serdes_rst_c, - tx_pll_lol_qd_s => tx_pll_lol_qd_s, - rst_qd_c => rst_qd_c, - serdes_rst_qd_c => serdes_rst_qd_c - ); - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.sort b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.sort deleted file mode 100644 index 5de7180..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.sort +++ /dev/null @@ -1 +0,0 @@ -serdes_gbe_0ch.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.sym b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.sym deleted file mode 100644 index 95861722d1291e4b3030f35121d554546185b571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1584 zcmZvbKZw*&5XNU-qTC(cUPKWKku4Sxv3P|j92O$Fg$Sll6#wP+HoNX&^kS0JEkq8n z5U~g%B32?-SR4|pEUd&rEF_4PSS(f|B8!NKSopnpySkn(g#Bf{FZ15aytjOm@N@9! z)viIj^i-8DyEpOLarYol&^D^=1FUVwXBt7$OB>kvmiQ9lxw>QHV@a9?7s8-P^c-~B#4UCKp82!D; zr(RjTV)RSNf}}L6%S17Mvg$ghX)6g^qX{+}2US>VoJhKJ!{TTfO3quYGMUZ>?N&59 zSoS!yg7;Z%?NIx(t*+5kX!WU)MWv{FP<_5?)pc1n2-Mjv{g-&wt4^wDlq6lzsJtU3jCWMfU*4z))cm2?7X*vJ~D+!MQ| z^(m@D&1t7qC$f<~ora>>x5`-e+?*|e78N-KbyTh1RW#8F=NB@21TZmn4jnm658%k@ z1|0W>4tp4WJ6^)!sbx5xDe|K9T##msY$25~q_7P#eSuG_H}HLg4|8sYNf6CPD}5Ur za!URQU&WzGTn&muJ%HNcdw4d+ds`iwRIr?fzSj$WcVGr!7r@}bn=*A1-5?t~d z;R0N6PdEqX{K*|h&Kd9wf0wuhYj#(ewLGxLo^T&^^l6iD2`*`?Z~-o8hj0$gX%Coi zx2t##3g_Tl9TSehu?mHKu&-ia4c6+ium|?kb>Ti&abIr>m*A4`3m4#mmxXh1&QFA6 zaLmtzeX!4^um)>>C+vYe{;+DC%zdun`6}@OToA1``_I8Str3pFF>Ms~!9LZ5HCV$t Kfq!IDJ@pIb%UlEi diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.tft b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.tft deleted file mode 100644 index b9db080..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.tft +++ /dev/null @@ -1,100 +0,0 @@ -@set suppresnewline=on@ - -@comment --------------------------------------------------------------------- @ -@comment Template-drive TFI generator @ -@comment Template for TFI generation. @ -@comment --------------------------------------------------------------------- @ - -@set suppresnewline=off@ - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: %title% - MODULE: %module% - DESIGN: %module% - FILENAME: %filename% - PROJECT: %project% - VERSION: %ver% - This file is auto generated by the ispLEVER -@set suppresnewline=on@ - -@cr@ -@cr@ - -@set sigdelim=@ - -NOTE: This readme file has been provided to instantiate the interface@cr@ -netlist. Since this template contains synthesis attributes for precision that@cr@ -are crucial to the design flow, we recommend that you use this@cr@ -template in your FPGA design.@cr@ -entity chip is@cr@ -port (@cr@ -@cr@ --- Add your FPGA design top level I/Os here@cr@ -@cr@ -@cr@ --- ASIC side pins for PCSD. These pins must exist for the@cr@ --- PCS core.@cr@ - refclkp : in std_logic;@cr@ - refclkn : in std_logic;@cr@ - hdinp_ch0 : in std_logic;@cr@ - hdinn_ch0 : in std_logic;@cr@ - hdinp_ch1 : in std_logic;@cr@ - hdinn_ch1 : in std_logic;@cr@ - hdinp_ch2 : in std_logic;@cr@ - hdinn_ch2 : in std_logic;@cr@ - hdinp_ch3 : in std_logic;@cr@ - hdinn_ch3 : in std_logic;@cr@ -@cr@ - hdoutp_ch0 : out std_logic;@cr@ - hdoutn_ch0 : out std_logic;@cr@ - hdoutp_ch1 : out std_logic;@cr@ - hdoutn_ch1 : out std_logic;@cr@ - hdoutp_ch2 : out std_logic;@cr@ - hdoutn_ch2 : out std_logic;@cr@ - hdoutp_ch3 : out std_logic;@cr@ - hdoutn_ch3 : out std_logic;@cr@ -@cr@ -@cr@ -);@cr@ -end chip;@cr@ -@cr@ -architecture chip_arch of chip is@cr@ -@cr@ --- This defines all the high-speed ports. You may have to remove@cr@ --- some of them depending on your design.@cr@ -attribute nopad : string;@cr@ -attribute nopad of@cr@ - refclkp, refclkn,@cr@ - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1,@cr@ - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3,@cr@ - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1,@cr@ - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true";@cr@ - -@cr@ -@tab@COMPONENT %module% -@set sigdelim=@ -@cr@@tab@PORT( -@iterate@%iport%@cr@@tab@@tab@@iterator@ : IN @vhdl_typedec@;@enditerate@ -@ifhas oport=*@ @comment if the design has any output ports... @ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@;@enditerate@ - @set sigdelim=;@ - @iterate@%oport%@cr@@tab@@tab@@iterator@ : OUT @vhdl_typedec@@enditerate@ -@endif@ -@ifnhas oport=*@ @comment we need an "else in this language! @ - @set sigdelim=;@ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@@enditerate@ -@endif@ -@cr@@tab@@tab@);@cr@ -@tab@END COMPONENT;@cr@@cr@ -@comment Now do a signal declaration for each port @ - -@cr@@cr@ -@comment do the component instantiation @ -@set sigdelim=,@ -@tab@uut: %module% PORT MAP( -@iterate@%port% -@cr@@tab@@tab@@iterator@ => @iterator@@enditerate@ -@cr@@tab@);@cr@@cr@ -@set suppresnewline=off@ - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.txt b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.txt deleted file mode 100644 index 17ddaaf..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.txt +++ /dev/null @@ -1,59 +0,0 @@ -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSD quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSD quad to the final design requirements. - -DEVICE_NAME "LFE3-150EA" -CH0_PROTOCOL "GIGE" -CH0_MODE "RXTX" -CH1_MODE "DISABLED" -CH2_MODE "DISABLED" -CH3_MODE "DISABLED" -CH0_CDR_SRC "REFCLK_CORE" -PLL_SRC "REFCLK_CORE" -TX_DATARATE_RANGE "MED" -CH0_RX_DATARATE_RANGE "MED" -REFCK_MULT "10X" -#REFCLK_RATE 125.0 -CH0_RX_DATA_RATE "FULL" -CH0_TX_DATA_RATE "FULL" -CH0_TX_DATA_WIDTH "8" -CH0_RX_DATA_WIDTH "8" -CH0_TX_FIFO "ENABLED" -CH0_RX_FIFO "ENABLED" -CH0_TDRV "0" -#CH0_TX_FICLK_RATE 125.0 -#CH0_RXREFCLK_RATE "125.0" -#CH0_RX_FICLK_RATE 125.0 -CH0_TX_PRE "DISABLED" -CH0_RTERM_TX "50" -CH0_RX_EQ "DISABLED" -CH0_RTERM_RX "50" -CH0_RX_DCC "AC" -CH0_LOS_THRESHOLD_LO "2" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH0_TX_SB "DISABLED" -CH0_RX_SB "DISABLED" -CH0_TX_8B10B "ENABLED" -CH0_RX_8B10B "ENABLED" -CH0_COMMA_A "1100000101" -CH0_COMMA_B "0011111010" -CH0_COMMA_M "1111111111" -CH0_RXWA "ENABLED" -CH0_ILSM "ENABLED" -CH0_CTC "DISABLED" -CH0_CC_MATCH3 "0110111100" -CH0_CC_MATCH4 "0001010000" -CH0_CC_MATCH_MODE "2" -CH0_CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -CH0_SSLB "DISABLED" -CH0_SPLBPORTS "DISABLED" -CH0_PCSLBPORTS "DISABLED" -INT_ALL "DISABLED" -QD_REFCK2CORE "DISABLED" - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.vhd b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.vhd deleted file mode 100644 index ecb6a65..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch.vhd +++ /dev/null @@ -1,2689 +0,0 @@ - - - ---synopsys translate_off - -library pcsd_work; -use pcsd_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSD is -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String --- CONFIG_FILE : String := "serdes_gbe_0ch.txt"; --- QUAD_MODE : String := "SINGLE"; --- CH0_CDR_SRC : String := "REFCLK_CORE"; --- CH1_CDR_SRC : String := "REFCLK_EXT"; --- CH2_CDR_SRC : String := "REFCLK_EXT"; --- CH3_CDR_SRC : String := "REFCLK_EXT"; --- PLL_SRC : String := "REFCLK_CORE" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); - -end PCSD; - -architecture PCSD_arch of PCSD is - - -component PCSD_sim -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String; - CH1_CDR_SRC : String; - CH2_CDR_SRC : String; - CH3_CDR_SRC : String; - PLL_SRC : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - -begin - -PCSD_sim_inst : PCSD_sim -generic map ( - CONFIG_FILE => CONFIG_FILE, - QUAD_MODE => QUAD_MODE, - CH0_CDR_SRC => CH0_CDR_SRC, - CH1_CDR_SRC => CH1_CDR_SRC, - CH2_CDR_SRC => CH2_CDR_SRC, - CH3_CDR_SRC => CH3_CDR_SRC, - PLL_SRC => PLL_SRC - ) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX_0 => FFC_CK_CORE_RX_0, - FFC_CK_CORE_RX_1 => FFC_CK_CORE_RX_1, - FFC_CK_CORE_RX_2 => FFC_CK_CORE_RX_2, - FFC_CK_CORE_RX_3 => FFC_CK_CORE_RX_3, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_SYNC_TOGGLE => FFC_SYNC_TOGGLE, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - FFC_RATE_MODE_RX_0 => FFC_RATE_MODE_RX_0, - FFC_RATE_MODE_RX_1 => FFC_RATE_MODE_RX_1, - FFC_RATE_MODE_RX_2 => FFC_RATE_MODE_RX_2, - FFC_RATE_MODE_RX_3 => FFC_RATE_MODE_RX_3, - FFC_RATE_MODE_TX_0 => FFC_RATE_MODE_TX_0, - FFC_RATE_MODE_TX_1 => FFC_RATE_MODE_TX_1, - FFC_RATE_MODE_TX_2 => FFC_RATE_MODE_TX_2, - FFC_RATE_MODE_TX_3 => FFC_RATE_MODE_TX_3, - FFC_DIV11_MODE_RX_0 => FFC_DIV11_MODE_RX_0, - FFC_DIV11_MODE_RX_1 => FFC_DIV11_MODE_RX_1, - FFC_DIV11_MODE_RX_2 => FFC_DIV11_MODE_RX_2, - FFC_DIV11_MODE_RX_3 => FFC_DIV11_MODE_RX_3, - FFC_DIV11_MODE_TX_0 => FFC_DIV11_MODE_TX_0, - FFC_DIV11_MODE_TX_1 => FFC_DIV11_MODE_TX_1, - FFC_DIV11_MODE_TX_2 => FFC_DIV11_MODE_TX_2, - FFC_DIV11_MODE_TX_3 => FFC_DIV11_MODE_TX_3, - LDR_CORE2TX_0 => LDR_CORE2TX_0, - LDR_CORE2TX_1 => LDR_CORE2TX_1, - LDR_CORE2TX_2 => LDR_CORE2TX_2, - LDR_CORE2TX_3 => LDR_CORE2TX_3, - FFC_LDR_CORE2TX_EN_0 => FFC_LDR_CORE2TX_EN_0, - FFC_LDR_CORE2TX_EN_1 => FFC_LDR_CORE2TX_EN_1, - FFC_LDR_CORE2TX_EN_2 => FFC_LDR_CORE2TX_EN_2, - FFC_LDR_CORE2TX_EN_3 => FFC_LDR_CORE2TX_EN_3, - PCIE_POWERDOWN_0_0 => PCIE_POWERDOWN_0_0, - PCIE_POWERDOWN_0_1 => PCIE_POWERDOWN_0_1, - PCIE_POWERDOWN_1_0 => PCIE_POWERDOWN_1_0, - PCIE_POWERDOWN_1_1 => PCIE_POWERDOWN_1_1, - PCIE_POWERDOWN_2_0 => PCIE_POWERDOWN_2_0, - PCIE_POWERDOWN_2_1 => PCIE_POWERDOWN_2_1, - PCIE_POWERDOWN_3_0 => PCIE_POWERDOWN_3_0, - PCIE_POWERDOWN_3_1 => PCIE_POWERDOWN_3_1, - PCIE_RXPOLARITY_0 => PCIE_RXPOLARITY_0, - PCIE_RXPOLARITY_1 => PCIE_RXPOLARITY_1, - PCIE_RXPOLARITY_2 => PCIE_RXPOLARITY_2, - PCIE_RXPOLARITY_3 => PCIE_RXPOLARITY_3, - PCIE_TXCOMPLIANCE_0 => PCIE_TXCOMPLIANCE_0, - PCIE_TXCOMPLIANCE_1 => PCIE_TXCOMPLIANCE_1, - PCIE_TXCOMPLIANCE_2 => PCIE_TXCOMPLIANCE_2, - PCIE_TXCOMPLIANCE_3 => PCIE_TXCOMPLIANCE_3, - PCIE_TXDETRX_PR2TLB_0 => PCIE_TXDETRX_PR2TLB_0, - PCIE_TXDETRX_PR2TLB_1 => PCIE_TXDETRX_PR2TLB_1, - PCIE_TXDETRX_PR2TLB_2 => PCIE_TXDETRX_PR2TLB_2, - PCIE_TXDETRX_PR2TLB_3 => PCIE_TXDETRX_PR2TLB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_TX_F_CLK_0 => FF_TX_F_CLK_0, - FF_TX_F_CLK_1 => FF_TX_F_CLK_1, - FF_TX_F_CLK_2 => FF_TX_F_CLK_2, - FF_TX_F_CLK_3 => FF_TX_F_CLK_3, - FF_TX_H_CLK_0 => FF_TX_H_CLK_0, - FF_TX_H_CLK_1 => FF_TX_H_CLK_1, - FF_TX_H_CLK_2 => FF_TX_H_CLK_2, - FF_TX_H_CLK_3 => FF_TX_H_CLK_3, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_CDR_TRAIN_DONE_0 => FFS_CDR_TRAIN_DONE_0, - FFS_CDR_TRAIN_DONE_1 => FFS_CDR_TRAIN_DONE_1, - FFS_CDR_TRAIN_DONE_2 => FFS_CDR_TRAIN_DONE_2, - FFS_CDR_TRAIN_DONE_3 => FFS_CDR_TRAIN_DONE_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RLOS_HI_0 => FFS_RLOS_HI_0, - FFS_RLOS_HI_1 => FFS_RLOS_HI_1, - FFS_RLOS_HI_2 => FFS_RLOS_HI_2, - FFS_RLOS_HI_3 => FFS_RLOS_HI_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - PCIE_PHYSTATUS_0 => PCIE_PHYSTATUS_0, - PCIE_PHYSTATUS_1 => PCIE_PHYSTATUS_1, - PCIE_PHYSTATUS_2 => PCIE_PHYSTATUS_2, - PCIE_PHYSTATUS_3 => PCIE_PHYSTATUS_3, - PCIE_RXVALID_0 => PCIE_RXVALID_0, - PCIE_RXVALID_1 => PCIE_RXVALID_1, - PCIE_RXVALID_2 => PCIE_RXVALID_2, - PCIE_RXVALID_3 => PCIE_RXVALID_3, - FFS_SKP_ADDED_0 => FFS_SKP_ADDED_0, - FFS_SKP_ADDED_1 => FFS_SKP_ADDED_1, - FFS_SKP_ADDED_2 => FFS_SKP_ADDED_2, - FFS_SKP_ADDED_3 => FFS_SKP_ADDED_3, - FFS_SKP_DELETED_0 => FFS_SKP_DELETED_0, - FFS_SKP_DELETED_1 => FFS_SKP_DELETED_1, - FFS_SKP_DELETED_2 => FFS_SKP_DELETED_2, - FFS_SKP_DELETED_3 => FFS_SKP_DELETED_3, - LDR_RX2CORE_0 => LDR_RX2CORE_0, - LDR_RX2CORE_1 => LDR_RX2CORE_1, - LDR_RX2CORE_2 => LDR_RX2CORE_2, - LDR_RX2CORE_3 => LDR_RX2CORE_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7, - REFCLK_FROM_NQ => REFCLK_FROM_NQ, - REFCLK_TO_NQ => REFCLK_TO_NQ - ); - -end PCSD_arch; - ---synopsys translate_on - - - - ---synopsys translate_off -library ECP3; -use ECP3.components.all; ---synopsys translate_on - - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_gbe_0ch is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0ch.txt"); - port ( ------------------- --- CH0 -- - hdinp_ch0, hdinn_ch0 : in std_logic; - hdoutp_ch0, hdoutn_ch0 : out std_logic; - rxiclk_ch0 : in std_logic; - txiclk_ch0 : in std_logic; - rx_full_clk_ch0 : out std_logic; - rx_half_clk_ch0 : out std_logic; - tx_full_clk_ch0 : out std_logic; - tx_half_clk_ch0 : out std_logic; - fpga_rxrefclk_ch0 : in std_logic; - txdata_ch0 : in std_logic_vector (7 downto 0); - tx_k_ch0 : in std_logic; - xmit_ch0 : in std_logic; - tx_disp_correct_ch0 : in std_logic; - rxdata_ch0 : out std_logic_vector (7 downto 0); - rx_k_ch0 : out std_logic; - rx_disp_err_ch0 : out std_logic; - rx_cv_err_ch0 : out std_logic; - rx_serdes_rst_ch0_c : in std_logic; - sb_felb_ch0_c : in std_logic; - sb_felb_rst_ch0_c : in std_logic; - tx_pcs_rst_ch0_c : in std_logic; - tx_pwrup_ch0_c : in std_logic; - rx_pcs_rst_ch0_c : in std_logic; - rx_pwrup_ch0_c : in std_logic; - rx_los_low_ch0_s : out std_logic; - lsm_status_ch0_s : out std_logic; - rx_cdr_lol_ch0_s : out std_logic; --- CH1 -- --- CH2 -- --- CH3 -- ----- Miscillaneous ports - fpga_txrefclk : in std_logic; - tx_serdes_rst_c : in std_logic; - tx_pll_lol_qd_s : out std_logic; - rst_qd_c : in std_logic; - serdes_rst_qd_c : in std_logic); - -end serdes_gbe_0ch; - - -architecture serdes_gbe_0ch_arch of serdes_gbe_0ch is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; - - - -component PCSD ---synopsys translate_off -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSD_INST : label is USER_CONFIG_FILE; - attribute QUAD_MODE: string; - attribute QUAD_MODE of PCSD_INST : label is "SINGLE"; - attribute PLL_SRC: string; - attribute PLL_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute CH0_CDR_SRC: string; - attribute CH0_CDR_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSD : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal refclk_from_nq : std_logic := '0'; -signal fpsc_vlo : std_logic := '0'; -signal fpsc_vhi : std_logic := '1'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); -signal tx_full_clk_ch0_sig : std_logic; - -signal refclk2fpga_sig : std_logic; -signal tx_pll_lol_qd_sig : std_logic; -signal rx_los_low_ch0_sig : std_logic; -signal rx_los_low_ch1_sig : std_logic; -signal rx_los_low_ch2_sig : std_logic; -signal rx_los_low_ch3_sig : std_logic; -signal rx_cdr_lol_ch0_sig : std_logic; -signal rx_cdr_lol_ch1_sig : std_logic; -signal rx_cdr_lol_ch2_sig : std_logic; -signal rx_cdr_lol_ch3_sig : std_logic; - - - - - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); -vhi_inst : VHI port map(Z => fpsc_vhi); - - rx_los_low_ch0_s <= rx_los_low_ch0_sig; - rx_cdr_lol_ch0_s <= rx_cdr_lol_ch0_sig; - tx_pll_lol_qd_s <= tx_pll_lol_qd_sig; - tx_full_clk_ch0 <= tx_full_clk_ch0_sig; - --- pcs_quad instance -PCSD_INST : PCSD ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE, - QUAD_MODE => "SINGLE", - CH0_CDR_SRC => "REFCLK_CORE", - PLL_SRC => "REFCLK_CORE" - ) ---synopsys translate_on -port map ( - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - ------ CH0 ----- - HDOUTP0 => hdoutp_ch0, - HDOUTN0 => hdoutn_ch0, - HDINP0 => hdinp_ch0, - HDINN0 => hdinn_ch0, - PCIE_TXDETRX_PR2TLB_0 => fpsc_vlo, - PCIE_TXCOMPLIANCE_0 => fpsc_vlo, - PCIE_RXPOLARITY_0 => fpsc_vlo, - PCIE_POWERDOWN_0_0 => fpsc_vlo, - PCIE_POWERDOWN_0_1 => fpsc_vlo, - PCIE_RXVALID_0 => open, - PCIE_PHYSTATUS_0 => open, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => rxiclk_ch0, - FF_TXI_CLK_0 => txiclk_ch0, - FF_EBRD_CLK_0 => fpsc_vlo, - FF_RX_F_CLK_0 => rx_full_clk_ch0, - FF_RX_H_CLK_0 => rx_half_clk_ch0, - FF_TX_F_CLK_0 => tx_full_clk_ch0_sig, - FF_TX_H_CLK_0 => tx_half_clk_ch0, - FFC_CK_CORE_RX_0 => fpga_rxrefclk_ch0, - FF_TX_D_0_0 => txdata_ch0(0), - FF_TX_D_0_1 => txdata_ch0(1), - FF_TX_D_0_2 => txdata_ch0(2), - FF_TX_D_0_3 => txdata_ch0(3), - FF_TX_D_0_4 => txdata_ch0(4), - FF_TX_D_0_5 => txdata_ch0(5), - FF_TX_D_0_6 => txdata_ch0(6), - FF_TX_D_0_7 => txdata_ch0(7), - FF_TX_D_0_8 => tx_k_ch0, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => xmit_ch0, - FF_TX_D_0_11 => tx_disp_correct_ch0, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => rxdata_ch0(0), - FF_RX_D_0_1 => rxdata_ch0(1), - FF_RX_D_0_2 => rxdata_ch0(2), - FF_RX_D_0_3 => rxdata_ch0(3), - FF_RX_D_0_4 => rxdata_ch0(4), - FF_RX_D_0_5 => rxdata_ch0(5), - FF_RX_D_0_6 => rxdata_ch0(6), - FF_RX_D_0_7 => rxdata_ch0(7), - FF_RX_D_0_8 => rx_k_ch0, - FF_RX_D_0_9 => rx_disp_err_ch0, - FF_RX_D_0_10 => rx_cv_err_ch0, - FF_RX_D_0_11 => open, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - - FFC_RRST_0 => rx_serdes_rst_ch0_c, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => sb_felb_ch0_c, - FFC_PFIFO_CLR_0 => sb_felb_rst_ch0_c, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => tx_pcs_rst_ch0_c, - FFC_TXPWDNB_0 => tx_pwrup_ch0_c, - FFC_LANE_RX_RST_0 => rx_pcs_rst_ch0_c, - FFC_RXPWDNB_0 => rx_pwrup_ch0_c, - FFS_RLOS_LO_0 => rx_los_low_ch0_sig, - FFS_RLOS_HI_0 => open, - FFS_PCIE_CON_0 => open, - FFS_PCIE_DONE_0 => open, - FFS_LS_SYNC_STATUS_0 => lsm_status_ch0_s, - FFS_CC_OVERRUN_0 => open, - FFS_CC_UNDERRUN_0 => open, - FFS_SKP_ADDED_0 => open, - FFS_SKP_DELETED_0 => open, - FFS_RLOL_0 => rx_cdr_lol_ch0_sig, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - LDR_CORE2TX_0 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_0 => fpsc_vlo, - LDR_RX2CORE_0 => open, - FFS_CDR_TRAIN_DONE_0 => open, - FFC_DIV11_MODE_TX_0 => fpsc_vlo, - FFC_RATE_MODE_TX_0 => fpsc_vlo, - FFC_DIV11_MODE_RX_0 => fpsc_vlo, - FFC_RATE_MODE_RX_0 => fpsc_vlo, - ------ CH1 ----- - HDOUTP1 => open, - HDOUTN1 => open, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_1 => fpsc_vlo, - PCIE_TXCOMPLIANCE_1 => fpsc_vlo, - PCIE_RXPOLARITY_1 => fpsc_vlo, - PCIE_POWERDOWN_1_0 => fpsc_vlo, - PCIE_POWERDOWN_1_1 => fpsc_vlo, - PCIE_RXVALID_1 => open, - PCIE_PHYSTATUS_1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_TX_F_CLK_1 => open, - FF_TX_H_CLK_1 => open, - FFC_CK_CORE_RX_1 => fpsc_vlo, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_RLOS_HI_1 => open, - FFS_PCIE_CON_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_SKP_ADDED_1 => open, - FFS_SKP_DELETED_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - LDR_CORE2TX_1 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_1 => fpsc_vlo, - LDR_RX2CORE_1 => open, - FFS_CDR_TRAIN_DONE_1 => open, - FFC_DIV11_MODE_TX_1 => fpsc_vlo, - FFC_RATE_MODE_TX_1 => fpsc_vlo, - FFC_DIV11_MODE_RX_1 => fpsc_vlo, - FFC_RATE_MODE_RX_1 => fpsc_vlo, - ------ CH2 ----- - HDOUTP2 => open, - HDOUTN2 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_2 => fpsc_vlo, - PCIE_TXCOMPLIANCE_2 => fpsc_vlo, - PCIE_RXPOLARITY_2 => fpsc_vlo, - PCIE_POWERDOWN_2_0 => fpsc_vlo, - PCIE_POWERDOWN_2_1 => fpsc_vlo, - PCIE_RXVALID_2 => open, - PCIE_PHYSTATUS_2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_TX_F_CLK_2 => open, - FF_TX_H_CLK_2 => open, - FFC_CK_CORE_RX_2 => fpsc_vlo, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_RLOS_HI_2 => open, - FFS_PCIE_CON_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_SKP_ADDED_2 => open, - FFS_SKP_DELETED_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - LDR_CORE2TX_2 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_2 => fpsc_vlo, - LDR_RX2CORE_2 => open, - FFS_CDR_TRAIN_DONE_2 => open, - FFC_DIV11_MODE_TX_2 => fpsc_vlo, - FFC_RATE_MODE_TX_2 => fpsc_vlo, - FFC_DIV11_MODE_RX_2 => fpsc_vlo, - FFC_RATE_MODE_RX_2 => fpsc_vlo, - ------ CH3 ----- - HDOUTP3 => open, - HDOUTN3 => open, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_3 => fpsc_vlo, - PCIE_TXCOMPLIANCE_3 => fpsc_vlo, - PCIE_RXPOLARITY_3 => fpsc_vlo, - PCIE_POWERDOWN_3_0 => fpsc_vlo, - PCIE_POWERDOWN_3_1 => fpsc_vlo, - PCIE_RXVALID_3 => open, - PCIE_PHYSTATUS_3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_TX_F_CLK_3 => open, - FF_TX_H_CLK_3 => open, - FFC_CK_CORE_RX_3 => fpsc_vlo, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_RLOS_HI_3 => open, - FFS_PCIE_CON_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_SKP_ADDED_3 => open, - FFS_SKP_DELETED_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - LDR_CORE2TX_3 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_3 => fpsc_vlo, - LDR_RX2CORE_3 => open, - FFS_CDR_TRAIN_DONE_3 => open, - FFC_DIV11_MODE_TX_3 => fpsc_vlo, - FFC_RATE_MODE_TX_3 => fpsc_vlo, - FFC_DIV11_MODE_RX_3 => fpsc_vlo, - FFC_RATE_MODE_RX_3 => fpsc_vlo, - ------ Auxilliary ---- - SCIWDATA7 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA0 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIRDATA7 => open, - SCIRDATA6 => open, - SCIRDATA5 => open, - SCIRDATA4 => open, - SCIRDATA3 => open, - SCIRDATA2 => open, - SCIRDATA1 => open, - SCIRDATA0 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_CK_CORE_TX => fpga_txrefclk, - FFC_MACRO_RST => serdes_rst_qd_c, - FFC_QUAD_RST => rst_qd_c, - FFC_TRST => tx_serdes_rst_c, - FFS_PLOL => tx_pll_lol_qd_sig, - FFC_SYNC_TOGGLE => fpsc_vlo, - REFCK2CORE => refclk2fpga_sig, - CIN0 => fpsc_vlo, - CIN1 => fpsc_vlo, - CIN2 => fpsc_vlo, - CIN3 => fpsc_vlo, - CIN4 => fpsc_vlo, - CIN5 => fpsc_vlo, - CIN6 => fpsc_vlo, - CIN7 => fpsc_vlo, - CIN8 => fpsc_vlo, - CIN9 => fpsc_vlo, - CIN10 => fpsc_vlo, - CIN11 => fpsc_vlo, - COUT0 => open, - COUT1 => open, - COUT2 => open, - COUT3 => open, - COUT4 => open, - COUT5 => open, - COUT6 => open, - COUT7 => open, - COUT8 => open, - COUT9 => open, - COUT10 => open, - COUT11 => open, - COUT12 => open, - COUT13 => open, - COUT14 => open, - COUT15 => open, - COUT16 => open, - COUT17 => open, - COUT18 => open, - COUT19 => open, - REFCLK_FROM_NQ => refclk_from_nq, - REFCLK_TO_NQ => open); - - - - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on -end serdes_gbe_0ch_arch ; diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch_generate.log b/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch_generate.log deleted file mode 100644 index a3bb684..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_gbe_0ch/serdes_gbe_0ch_generate.log +++ /dev/null @@ -1,29 +0,0 @@ -Starting process: Module - -Starting process: - - Module Name: serdes_gbe_0ch - Core Name: PCS - LPC file : serdes_gbe_0ch.lpc - Parameter File : serdes_gbe_0ch.pp - Command line: /opt/lattice/diamond/1.3/ispfpga/bin/lin/orcapp -Fmaco serdes_gbe_0ch.pp - Return Value: - - - - Module PCS has been generated in /home/greg/projects/trb3/trb3_gbe/simple_test/ipcores/serdes_gbe_0ch/. successfully! - -/opt/lattice/diamond/1.3/bin/lin/hdl2jhd -tfi -mod serdes_gbe_0ch -ext readme -out serdes_gbe_0ch -tpl serdes_gbe_0ch.tft serdes_gbe_0ch.vhd - -Done successfully! -File: serdes_gbe_0ch.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/dummy_sym.sort b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/dummy_sym.sort deleted file mode 100644 index a1712c9..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/dummy_sym.sort +++ /dev/null @@ -1 +0,0 @@ -dummy_sym.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/msg_file.log b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/msg_file.log deleted file mode 100644 index d4f3cbe..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/msg_file.log +++ /dev/null @@ -1,14 +0,0 @@ - Module Name: serdes_gbe_0_intclock_8b_ecp3 - Core Name: PCS - LPC file : serdes_gbe_0_intclock_8b_ecp3.lpc - Parameter File : serdes_gbe_0_intclock_8b_ecp3.pp - Command line: /opt/lattice/diamond/1.3/ispfpga/bin/lin/orcapp -Fmaco serdes_gbe_0_intclock_8b_ecp3.pp - Return Value: - - - - Module PCS has been generated in /home/greg/projects/trbnet/gbe2_ecp3/ipcores_ecp3/serdes_intclk/. successfully! - -/opt/lattice/diamond/1.3/bin/lin/hdl2jhd -tfi -mod serdes_gbe_0_intclock_8b_ecp3 -ext readme -out serdes_gbe_0_intclock_8b_ecp3 -tpl serdes_gbe_0_intclock_8b_ecp3.tft serdes_gbe_0_intclock_8b_ecp3.vhd - -Done successfully! diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/rx_reset_sm.naf b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/rx_reset_sm.naf deleted file mode 100644 index 1ff93d7..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/rx_reset_sm.naf +++ /dev/null @@ -1,7 +0,0 @@ -rst_n i -refclkdiv2 i -tx_pll_lol_qd_s i -rx_serdes_rst_ch_c o -rx_cdr_lol_ch_s i -rx_los_low_ch_s i -rx_pcs_rst_ch_c o diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.ipx b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.ipx deleted file mode 100644 index cec288c..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.ipx +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.jhd b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.jhd deleted file mode 100644 index c00e48b..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.jhd +++ /dev/null @@ -1,7 +0,0 @@ -MODULE serdes_gbe_0_intclock_8b DEFIN serdes_gbe_0_intclock_8b.vhd - SUBMODULE PCSD - INSTANCE PCSD_INST - SUBMODULE VHI - INSTANCE vhi_inst - SUBMODULE VLO - INSTANCE vlo_inst diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.lpc b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.lpc deleted file mode 100644 index b301420..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.lpc +++ /dev/null @@ -1,258 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=8.1 -ModuleName=serdes_gbe_0_intclock_8b -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/25/2011 -Time=14:19:31 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -_mode0=RXTX -_mode1=DISABLED -_mode2=DISABLED -_mode3=DISABLED -_protocol0=GIGE -_protocol1=G8B10B -_protocol2=G8B10B -_protocol3=G8B10B -_ldr0=DISABLED -_ldr1=DISABLED -_ldr2=DISABLED -_ldr3=DISABLED -_datarange=1.25 -_pll_txsrc=INTERNAL -_refclk_mult=10X -_refclk_rate=125.0 -_tx_protocol0=GIGE -_tx_protocol1=DISABLED -_tx_protocol2=DISABLED -_tx_protocol3=DISABLED -_tx_data_rate0=FULL -_tx_data_rate1=FULL -_tx_data_rate2=FULL -_tx_data_rate3=FULL -_tx_data_width0=8 -_tx_data_width1=8 -_tx_data_width2=8 -_tx_data_width3=8 -_tx_fifo0=ENABLED -_tx_fifo1=ENABLED -_tx_fifo2=ENABLED -_tx_fifo3=ENABLED -_tx_ficlk_rate0=125.0 -_tx_ficlk_rate1=125.0 -_tx_ficlk_rate2=125.0 -_tx_ficlk_rate3=125.0 -_pll_rxsrc0=INTERNAL -_pll_rxsrc1=EXTERNAL -_pll_rxsrc2=EXTERNAL -_pll_rxsrc3=EXTERNAL -Multiplier0= -Multiplier1= -Multiplier2= -Multiplier3= -_rx_datarange0=1.25 -_rx_datarange1=1.25 -_rx_datarange2=1.25 -_rx_datarange3=1.25 -_rx_protocol0=GIGE -_rx_protocol1=DISABLED -_rx_protocol2=DISABLED -_rx_protocol3=DISABLED -_rx_data_rate0=FULL -_rx_data_rate1=FULL -_rx_data_rate2=FULL -_rx_data_rate3=FULL -_rxrefclk_rate0=125.0 -_rxrefclk_rate1=125.0 -_rxrefclk_rate2=125.0 -_rxrefclk_rate3=125.0 -_rx_data_width0=8 -_rx_data_width1=8 -_rx_data_width2=8 -_rx_data_width3=8 -_rx_fifo0=ENABLED -_rx_fifo1=ENABLED -_rx_fifo2=ENABLED -_rx_fifo3=ENABLED -_rx_ficlk_rate0=125.0 -_rx_ficlk_rate1=125.0 -_rx_ficlk_rate2=125.0 -_rx_ficlk_rate3=125.0 -_tdrv_ch0=0 -_tdrv_ch1=0 -_tdrv_ch2=0 -_tdrv_ch3=0 -_tx_pre0=DISABLED -_tx_pre1=DISABLED -_tx_pre2=DISABLED -_tx_pre3=DISABLED -_rterm_tx0=50 -_rterm_tx1=50 -_rterm_tx2=50 -_rterm_tx3=50 -_rx_eq0=DISABLED -_rx_eq1=DISABLED -_rx_eq2=DISABLED -_rx_eq3=DISABLED -_rterm_rx0=50 -_rterm_rx1=50 -_rterm_rx2=50 -_rterm_rx3=50 -_rx_dcc0=AC -_rx_dcc1=AC -_rx_dcc2=AC -_rx_dcc3=AC -_los_threshold_mode0=LOS_E -_los_threshold_mode1=LOS_E -_los_threshold_mode2=LOS_E -_los_threshold_mode3=LOS_E -_los_threshold_lo0=2 -_los_threshold_lo1=2 -_los_threshold_lo2=2 -_los_threshold_lo3=2 -_los_threshold_hi0=7 -_los_threshold_hi1=7 -_los_threshold_hi2=7 -_los_threshold_hi3=7 -_pll_term=50 -_pll_dcc=AC -_pll_lol_set=0 -_tx_sb0=DISABLED -_tx_sb1=DISABLED -_tx_sb2=DISABLED -_tx_sb3=DISABLED -_tx_8b10b0=ENABLED -_tx_8b10b1=ENABLED -_tx_8b10b2=ENABLED -_tx_8b10b3=ENABLED -_rx_sb0=DISABLED -_rx_sb1=DISABLED -_rx_sb2=DISABLED -_rx_sb3=DISABLED -_ird0=DISABLED -_ird1=DISABLED -_ird2=DISABLED -_ird3=DISABLED -_rx_8b10b0=ENABLED -_rx_8b10b1=ENABLED -_rx_8b10b2=ENABLED -_rx_8b10b3=ENABLED -_rxwa0=ENABLED -_rxwa1=ENABLED -_rxwa2=ENABLED -_rxwa3=ENABLED -_ilsm0=ENABLED -_ilsm1=ENABLED -_ilsm2=ENABLED -_ilsm3=ENABLED -_scomma0=K28P5 -_scomma1=K28P157 -_scomma2=K28P157 -_scomma3=K28P157 -_comma_a0=1100000101 -_comma_a1=1100000101 -_comma_a2=1100000101 -_comma_a3=1100000101 -_comma_b0=0011111010 -_comma_b1=0011111010 -_comma_b2=0011111010 -_comma_b3=0011111010 -_comma_m0=1111111111 -_comma_m1=1111111100 -_comma_m2=1111111100 -_comma_m3=1111111100 -_ctc0=DISABLED -_ctc1=DISABLED -_ctc2=DISABLED -_ctc3=DISABLED -_cc_match_mode0=2 -_cc_match_mode1=1 -_cc_match_mode2=1 -_cc_match_mode3=1 -_k00=01 -_k01=00 -_k02=00 -_k03=00 -_k10=00 -_k11=00 -_k12=00 -_k13=00 -_k20=01 -_k21=01 -_k22=01 -_k23=01 -_k30=00 -_k31=01 -_k32=01 -_k33=01 -_byten00=10111100 -_byten01=00000000 -_byten02=00000000 -_byten03=00000000 -_byten10=01010000 -_byten11=00000000 -_byten12=00000000 -_byten13=00000000 -_byten20=10111100 -_byten21=00011100 -_byten22=00011100 -_byten23=00011100 -_byten30=01010000 -_byten31=00011100 -_byten32=00011100 -_byten33=00011100 -_cc_min_ipg0=3 -_cc_min_ipg1=3 -_cc_min_ipg2=3 -_cc_min_ipg3=3 -_cchmark=9 -_cclmark=7 -_loopback=DISABLED -_lbtype0=DISABLED -_lbtype1=DISABLED -_lbtype2=DISABLED -_lbtype3=DISABLED -_teidle_ch0=DISABLED -_teidle_ch1=DISABLED -_teidle_ch2=DISABLED -_teidle_ch3=DISABLED -_rst_gen=DISABLED -_rx_los_port0=Internal -_rx_los_port1=Internal -_rx_los_port2=Internal -_rx_los_port3=Internal -_sci_ports=DISABLED -_sci_int_port=DISABLED -_refck2core=DISABLED -Regen=auto -PAR1=0 -PARTrace1=0 -PAR3=0 -PARTrace3=0 - -[FilesGenerated] -serdes_gbe_0_intclock_8b.pp=pp -serdes_gbe_0_intclock_8b.tft=tft -serdes_gbe_0_intclock_8b.txt=pcs_module -serdes_gbe_0_intclock_8b.sym=sym diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.naf b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.naf deleted file mode 100644 index f56b8f4..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.naf +++ /dev/null @@ -1,48 +0,0 @@ -hdinp_ch0 i -hdinn_ch0 i -hdoutp_ch0 o -hdoutn_ch0 o -rxiclk_ch0 i -txiclk_ch0 i -rx_full_clk_ch0 o -rx_half_clk_ch0 o -tx_full_clk_ch0 o -tx_half_clk_ch0 o -fpga_rxrefclk_ch0 i -txdata_ch0[7] i -txdata_ch0[6] i -txdata_ch0[5] i -txdata_ch0[4] i -txdata_ch0[3] i -txdata_ch0[2] i -txdata_ch0[1] i -txdata_ch0[0] i -tx_k_ch0 i -xmit_ch0 i -tx_disp_correct_ch0 i -rxdata_ch0[7] o -rxdata_ch0[6] o -rxdata_ch0[5] o -rxdata_ch0[4] o -rxdata_ch0[3] o -rxdata_ch0[2] o -rxdata_ch0[1] o -rxdata_ch0[0] o -rx_k_ch0 o -rx_disp_err_ch0 o -rx_cv_err_ch0 o -rx_serdes_rst_ch0_c i -sb_felb_ch0_c i -sb_felb_rst_ch0_c i -tx_pcs_rst_ch0_c i -tx_pwrup_ch0_c i -rx_pcs_rst_ch0_c i -rx_pwrup_ch0_c i -rx_los_low_ch0_s o -lsm_status_ch0_s o -rx_cdr_lol_ch0_s o -fpga_txrefclk i -tx_serdes_rst_c i -tx_pll_lol_qd_s o -rst_qd_c i -serdes_rst_qd_c i diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.pp b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.pp deleted file mode 100644 index 34d4da3..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.pp +++ /dev/null @@ -1,195 +0,0 @@ -#define _device_name "LFE3-150EA" -#define _ch0_pll_rxsrc "REFCLK_CORE" -#define _ch0_mode "RXTX" -#define _ch0_protocol "GIGE" -#define _ch0_ldr "DISABLED" -#define _ch0_tx_data_rate "FULL" -#define _ch0_tx_data_width "8" -#define _ch0_tx_fifo "ENABLED" -#define _ch0_tx_ficlk_rate 125.0 -#define _ch0_rx_datarange "MED" -#define _ch0_rx_data_rate "FULL" -#define _ch0_rxrefclk_rate "125.0" -#define _ch0_rx_data_width "8" -#define _ch0_rx_fifo "ENABLED" -#define _ch0_rx_ficlk_rate 125.0 -#define _ch0_tdrv "0" -#define _ch0_tx_pre "DISABLED" -#define _ch0_rterm_tx "50" -#define _ch0_rx_eq "DISABLED" -#define _ch0_rterm_rx "50" -#define _ch0_rx_dcc "AC" -#define _los_threshold_mode0 "LOS_E" -#define _los_threshold_lo0 "2" -#define _ch0_tx_sb "DISABLED" -#define _ch0_tx_8b10b "ENABLED" -#define _ch0_rx_sb "DISABLED" -#define _ch0_ird "DISABLED" -#define _ch0_rx_8b10b "ENABLED" -#define _ch0_rxwa "ENABLED" -#define _ch0_ilsm "ENABLED" -#define _ch0_scomma "K28P5" -#define _ch0_comma_a "1100000101" -#define _ch0_comma_b "0011111010" -#define _ch0_comma_m "1111111111" -#define _ch0_ctc "DISABLED" -#define _ch0_cc_match_mode "2" -#define _ch0_byten "0110111100" -#define _ch0_byten1 "0001010000" -#define _ch0_byten2 "0110111100" -#define _ch0_byten3 "0001010000" -#define _ch0_cc_min_ipg "3" -#define _ch0_lbtype "DISABLED" -#define _ch0_teidle "DISABLED" -#define _ch0_rx_lol_port "INTERNAL" - -#define _ch1_pll_rxsrc "REFCLK_EXT" -#define _ch1_mode "DISABLED" -#define _ch1_protocol "G8B10B" -#define _ch1_ldr "DISABLED" -#define _ch1_tx_data_rate "FULL" -#define _ch1_tx_data_width "8" -#define _ch1_tx_fifo "ENABLED" -#define _ch1_tx_ficlk_rate 125.0 -#define _ch1_rx_datarange "MED" -#define _ch1_rx_data_rate "FULL" -#define _ch1_rxrefclk_rate "125.0" -#define _ch1_rx_data_width "8" -#define _ch1_rx_fifo "ENABLED" -#define _ch1_rx_ficlk_rate 125.0 -#define _ch1_tdrv "0" -#define _ch1_tx_pre "DISABLED" -#define _ch1_rterm_tx "50" -#define _ch1_rx_eq "DISABLED" -#define _ch1_rterm_rx "50" -#define _ch1_rx_dcc "AC" -#define _los_threshold_mode1 "LOS_E" -#define _los_threshold_lo1 "2" -#define _ch1_tx_sb "DISABLED" -#define _ch1_tx_8b10b "ENABLED" -#define _ch1_rx_sb "DISABLED" -#define _ch1_ird "DISABLED" -#define _ch1_rx_8b10b "ENABLED" -#define _ch1_rxwa "ENABLED" -#define _ch1_ilsm "ENABLED" -#define _ch1_scomma "K28P157" -#define _ch1_comma_a "1100000101" -#define _ch1_comma_b "0011111010" -#define _ch1_comma_m "1111111100" -#define _ch1_ctc "DISABLED" -#define _ch1_cc_match_mode "1" -#define _ch1_byten "0000000000" -#define _ch1_byten1 "0000000000" -#define _ch1_byten2 "0100011100" -#define _ch1_byten3 "0100011100" -#define _ch1_cc_min_ipg "3" -#define _ch1_lbtype "DISABLED" -#define _ch1_teidle "DISABLED" -#define _ch1_rx_lol_port "INTERNAL" - -#define _ch2_pll_rxsrc "REFCLK_EXT" -#define _ch2_mode "DISABLED" -#define _ch2_protocol "G8B10B" -#define _ch2_ldr "DISABLED" -#define _ch2_tx_data_rate "FULL" -#define _ch2_tx_data_width "8" -#define _ch2_tx_fifo "ENABLED" -#define _ch2_tx_ficlk_rate 125.0 -#define _ch2_rx_datarange "MED" -#define _ch2_rx_data_rate "FULL" -#define _ch2_rxrefclk_rate "125.0" -#define _ch2_rx_data_width "8" -#define _ch2_rx_fifo "ENABLED" -#define _ch2_rx_ficlk_rate 125.0 -#define _ch2_tdrv "0" -#define _ch2_tx_pre "DISABLED" -#define _ch2_rterm_tx "50" -#define _ch2_rx_eq "DISABLED" -#define _ch2_rterm_rx "50" -#define _ch2_rx_dcc "AC" -#define _los_threshold_mode2 "LOS_E" -#define _los_threshold_lo2 "2" -#define _ch2_tx_sb "DISABLED" -#define _ch2_tx_8b10b "ENABLED" -#define _ch2_rx_sb "DISABLED" -#define _ch2_ird "DISABLED" -#define _ch2_rx_8b10b "ENABLED" -#define _ch2_rxwa "ENABLED" -#define _ch2_ilsm "ENABLED" -#define _ch2_scomma "K28P157" -#define _ch2_comma_a "1100000101" -#define _ch2_comma_b "0011111010" -#define _ch2_comma_m "1111111100" -#define _ch2_ctc "DISABLED" -#define _ch2_cc_match_mode "1" -#define _ch2_byten "0000000000" -#define _ch2_byten1 "0000000000" -#define _ch2_byten2 "0100011100" -#define _ch2_byten3 "0100011100" -#define _ch2_cc_min_ipg "3" -#define _ch2_lbtype "DISABLED" -#define _ch2_teidle "DISABLED" -#define _ch2_rx_lol_port "INTERNAL" - -#define _ch3_pll_rxsrc "REFCLK_EXT" -#define _ch3_mode "DISABLED" -#define _ch3_protocol "G8B10B" -#define _ch3_ldr "DISABLED" -#define _ch3_tx_data_rate "FULL" -#define _ch3_tx_data_width "8" -#define _ch3_tx_fifo "ENABLED" -#define _ch3_tx_ficlk_rate 125.0 -#define _ch3_rx_datarange "MED" -#define _ch3_rx_data_rate "FULL" -#define _ch3_rxrefclk_rate "125.0" -#define _ch3_rx_data_width "8" -#define _ch3_rx_fifo "ENABLED" -#define _ch3_rx_ficlk_rate 125.0 -#define _ch3_tdrv "0" -#define _ch3_tx_pre "DISABLED" -#define _ch3_rterm_tx "50" -#define _ch3_rx_eq "DISABLED" -#define _ch3_rterm_rx "50" -#define _ch3_rx_dcc "AC" -#define _los_threshold_mode3 "LOS_E" -#define _los_threshold_lo3 "2" -#define _ch3_tx_sb "DISABLED" -#define _ch3_tx_8b10b "ENABLED" -#define _ch3_rx_sb "DISABLED" -#define _ch3_ird "DISABLED" -#define _ch3_rx_8b10b "ENABLED" -#define _ch3_rxwa "ENABLED" -#define _ch3_ilsm "ENABLED" -#define _ch3_scomma "K28P157" -#define _ch3_comma_a "1100000101" -#define _ch3_comma_b "0011111010" -#define _ch3_comma_m "1111111100" -#define _ch3_ctc "DISABLED" -#define _ch3_cc_match_mode "1" -#define _ch3_byten "0000000000" -#define _ch3_byten1 "0000000000" -#define _ch3_byten2 "0100011100" -#define _ch3_byten3 "0100011100" -#define _ch3_cc_min_ipg "3" -#define _ch3_lbtype "DISABLED" -#define _ch3_teidle "DISABLED" -#define _ch3_rx_lol_port "INTERNAL" - -#define _datarange "MED" -#define _pll_txsrc "REFCLK_CORE" -#define _refclk_mult "10X" -#define _refclk_rate 125.0 -#define _pll_term "50" -#define _pll_dcc "AC" -#define _pll_lol_set "0" -#define _cchmark "9" -#define _cclmark "7" -#define _rst_gen "DISABLED" -#define _sci_ports "DISABLED" -#define _sci_int_port "DISABLED" -#define _refck2core "DISABLED" -#define _circuit_name serdes_gbe_0_intclock_8b -#define _lang vhdl - -#include -#include diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.readme b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.readme deleted file mode 100644 index bc17e35..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.readme +++ /dev/null @@ -1,141 +0,0 @@ - - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: Lattice Semiconductor Corporation - MODULE: serdes_gbe_0_intclock_8b - DESIGN: serdes_gbe_0_intclock_8b - FILENAME: serdes_gbe_0_intclock_8b.readme - PROJECT: Unknown - VERSION: 2.0 - This file is auto generated by the ispLEVER - - -NOTE: This readme file has been provided to instantiate the interface -netlist. Since this template contains synthesis attributes for precision that -are crucial to the design flow, we recommend that you use this -template in your FPGA design. -entity chip is -port ( - --- Add your FPGA design top level I/Os here - - --- ASIC side pins for PCSD. These pins must exist for the --- PCS core. - refclkp : in std_logic; - refclkn : in std_logic; - hdinp_ch0 : in std_logic; - hdinn_ch0 : in std_logic; - hdinp_ch1 : in std_logic; - hdinn_ch1 : in std_logic; - hdinp_ch2 : in std_logic; - hdinn_ch2 : in std_logic; - hdinp_ch3 : in std_logic; - hdinn_ch3 : in std_logic; - - hdoutp_ch0 : out std_logic; - hdoutn_ch0 : out std_logic; - hdoutp_ch1 : out std_logic; - hdoutn_ch1 : out std_logic; - hdoutp_ch2 : out std_logic; - hdoutn_ch2 : out std_logic; - hdoutp_ch3 : out std_logic; - hdoutn_ch3 : out std_logic; - - -); -end chip; - -architecture chip_arch of chip is - --- This defines all the high-speed ports. You may have to remove --- some of them depending on your design. -attribute nopad : string; -attribute nopad of - refclkp, refclkn, - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1, - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3, - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1, - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true"; - - COMPONENT serdes_gbe_0_intclock_8b - PORT( - hdinp_ch0 : IN std_logic; - hdinn_ch0 : IN std_logic; - rxiclk_ch0 : IN std_logic; - txiclk_ch0 : IN std_logic; - fpga_rxrefclk_ch0 : IN std_logic; - txdata_ch0 : IN std_logic_vector(7 downto 0); - tx_k_ch0 : IN std_logic; - xmit_ch0 : IN std_logic; - tx_disp_correct_ch0 : IN std_logic; - rx_serdes_rst_ch0_c : IN std_logic; - sb_felb_ch0_c : IN std_logic; - sb_felb_rst_ch0_c : IN std_logic; - tx_pcs_rst_ch0_c : IN std_logic; - tx_pwrup_ch0_c : IN std_logic; - rx_pcs_rst_ch0_c : IN std_logic; - rx_pwrup_ch0_c : IN std_logic; - fpga_txrefclk : IN std_logic; - tx_serdes_rst_c : IN std_logic; - rst_qd_c : IN std_logic; - serdes_rst_qd_c : IN std_logic; - hdoutp_ch0 : OUT std_logic; - hdoutn_ch0 : OUT std_logic; - rx_full_clk_ch0 : OUT std_logic; - rx_half_clk_ch0 : OUT std_logic; - tx_full_clk_ch0 : OUT std_logic; - tx_half_clk_ch0 : OUT std_logic; - rxdata_ch0 : OUT std_logic_vector(7 downto 0); - rx_k_ch0 : OUT std_logic; - rx_disp_err_ch0 : OUT std_logic; - rx_cv_err_ch0 : OUT std_logic; - rx_los_low_ch0_s : OUT std_logic; - lsm_status_ch0_s : OUT std_logic; - rx_cdr_lol_ch0_s : OUT std_logic; - tx_pll_lol_qd_s : OUT std_logic - ); - END COMPONENT; - - - - uut: serdes_gbe_0_intclock_8b PORT MAP( - hdinp_ch0 => hdinp_ch0, - hdinn_ch0 => hdinn_ch0, - hdoutp_ch0 => hdoutp_ch0, - hdoutn_ch0 => hdoutn_ch0, - rxiclk_ch0 => rxiclk_ch0, - txiclk_ch0 => txiclk_ch0, - rx_full_clk_ch0 => rx_full_clk_ch0, - rx_half_clk_ch0 => rx_half_clk_ch0, - tx_full_clk_ch0 => tx_full_clk_ch0, - tx_half_clk_ch0 => tx_half_clk_ch0, - fpga_rxrefclk_ch0 => fpga_rxrefclk_ch0, - txdata_ch0 => txdata_ch0, - tx_k_ch0 => tx_k_ch0, - xmit_ch0 => xmit_ch0, - tx_disp_correct_ch0 => tx_disp_correct_ch0, - rxdata_ch0 => rxdata_ch0, - rx_k_ch0 => rx_k_ch0, - rx_disp_err_ch0 => rx_disp_err_ch0, - rx_cv_err_ch0 => rx_cv_err_ch0, - rx_serdes_rst_ch0_c => rx_serdes_rst_ch0_c, - sb_felb_ch0_c => sb_felb_ch0_c, - sb_felb_rst_ch0_c => sb_felb_rst_ch0_c, - tx_pcs_rst_ch0_c => tx_pcs_rst_ch0_c, - tx_pwrup_ch0_c => tx_pwrup_ch0_c, - rx_pcs_rst_ch0_c => rx_pcs_rst_ch0_c, - rx_pwrup_ch0_c => rx_pwrup_ch0_c, - rx_los_low_ch0_s => rx_los_low_ch0_s, - lsm_status_ch0_s => lsm_status_ch0_s, - rx_cdr_lol_ch0_s => rx_cdr_lol_ch0_s, - fpga_txrefclk => fpga_txrefclk, - tx_serdes_rst_c => tx_serdes_rst_c, - tx_pll_lol_qd_s => tx_pll_lol_qd_s, - rst_qd_c => rst_qd_c, - serdes_rst_qd_c => serdes_rst_qd_c - ); - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.sort b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.sort deleted file mode 100644 index 62b2781..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.sort +++ /dev/null @@ -1 +0,0 @@ -serdes_gbe_0_intclock_8b.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.sym b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.sym deleted file mode 100644 index a3b53efd7843a2a7af5d6d1e51ad9315886e26ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1594 zcmZvbPiPc(6vyBD%_zx2HWL&Pk+Mh-DN=?awgeFo-GdZ52mgTDPIhN^vrES8I5W}3 zg9HyEB4zO4A%`L%2N99Mg9q^>rIa3Ike);&c<3RNvUtd$Nb&o7zumY^T^RN=@B5wi z`@Q#mzenc?KMT*yc3UG})>MUV+V}9EaZenH$(k4@Z( zdwvuozLv28t-sUx)Jvn6wSF~Tl$2VvnJD7FjJgAA(u^C;(F9*;2bEcBEXBRfusE85 zlJNnfOeA%`)eP%{WzR#)`GnD?hT5lX^|Y=UMxPv6REk=L>hTSu?nrxnqmy9E-8gOr zQW!mf!{Jrq7=yz!oL(Vb@N*M)5Z}^`KJ-4nF?w0+qunSg)T;h5>Lk>WjRkZN>Kg4< z(g~=IT3XZPUifCl{eh}bGdgV4QaaM7AECJH8D*?@sbfl@B}Gy!SIM%k!Tu0!^xnfOM4_Pz`k4$H)tFALq6|VEf z)mjX(+~8&m_jL=dK80{C8CSa&w*KdO09VF$;ks|p7*-ridzhurS@;R`-z=#v>?Wx0 z>elKu;G5;w@ck{T{da=HY!I9x98hik^TKD%=?&GOWDaLpQ5 zgeK^|b0`kjR|2)n_&|81SRo!VFp_@%H1_V~513wHTWVF&E+`)%W-Z*~RGzY@>E jIhD5S{b%5eb_qw|i1rD4V2{2McEK*ZCHy0kT2mhZGOA#2 diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.tft b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.tft deleted file mode 100644 index b9db080..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.tft +++ /dev/null @@ -1,100 +0,0 @@ -@set suppresnewline=on@ - -@comment --------------------------------------------------------------------- @ -@comment Template-drive TFI generator @ -@comment Template for TFI generation. @ -@comment --------------------------------------------------------------------- @ - -@set suppresnewline=off@ - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: %title% - MODULE: %module% - DESIGN: %module% - FILENAME: %filename% - PROJECT: %project% - VERSION: %ver% - This file is auto generated by the ispLEVER -@set suppresnewline=on@ - -@cr@ -@cr@ - -@set sigdelim=@ - -NOTE: This readme file has been provided to instantiate the interface@cr@ -netlist. Since this template contains synthesis attributes for precision that@cr@ -are crucial to the design flow, we recommend that you use this@cr@ -template in your FPGA design.@cr@ -entity chip is@cr@ -port (@cr@ -@cr@ --- Add your FPGA design top level I/Os here@cr@ -@cr@ -@cr@ --- ASIC side pins for PCSD. These pins must exist for the@cr@ --- PCS core.@cr@ - refclkp : in std_logic;@cr@ - refclkn : in std_logic;@cr@ - hdinp_ch0 : in std_logic;@cr@ - hdinn_ch0 : in std_logic;@cr@ - hdinp_ch1 : in std_logic;@cr@ - hdinn_ch1 : in std_logic;@cr@ - hdinp_ch2 : in std_logic;@cr@ - hdinn_ch2 : in std_logic;@cr@ - hdinp_ch3 : in std_logic;@cr@ - hdinn_ch3 : in std_logic;@cr@ -@cr@ - hdoutp_ch0 : out std_logic;@cr@ - hdoutn_ch0 : out std_logic;@cr@ - hdoutp_ch1 : out std_logic;@cr@ - hdoutn_ch1 : out std_logic;@cr@ - hdoutp_ch2 : out std_logic;@cr@ - hdoutn_ch2 : out std_logic;@cr@ - hdoutp_ch3 : out std_logic;@cr@ - hdoutn_ch3 : out std_logic;@cr@ -@cr@ -@cr@ -);@cr@ -end chip;@cr@ -@cr@ -architecture chip_arch of chip is@cr@ -@cr@ --- This defines all the high-speed ports. You may have to remove@cr@ --- some of them depending on your design.@cr@ -attribute nopad : string;@cr@ -attribute nopad of@cr@ - refclkp, refclkn,@cr@ - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1,@cr@ - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3,@cr@ - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1,@cr@ - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true";@cr@ - -@cr@ -@tab@COMPONENT %module% -@set sigdelim=@ -@cr@@tab@PORT( -@iterate@%iport%@cr@@tab@@tab@@iterator@ : IN @vhdl_typedec@;@enditerate@ -@ifhas oport=*@ @comment if the design has any output ports... @ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@;@enditerate@ - @set sigdelim=;@ - @iterate@%oport%@cr@@tab@@tab@@iterator@ : OUT @vhdl_typedec@@enditerate@ -@endif@ -@ifnhas oport=*@ @comment we need an "else in this language! @ - @set sigdelim=;@ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@@enditerate@ -@endif@ -@cr@@tab@@tab@);@cr@ -@tab@END COMPONENT;@cr@@cr@ -@comment Now do a signal declaration for each port @ - -@cr@@cr@ -@comment do the component instantiation @ -@set sigdelim=,@ -@tab@uut: %module% PORT MAP( -@iterate@%port% -@cr@@tab@@tab@@iterator@ => @iterator@@enditerate@ -@cr@@tab@);@cr@@cr@ -@set suppresnewline=off@ - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.txt b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.txt deleted file mode 100644 index 17ddaaf..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.txt +++ /dev/null @@ -1,59 +0,0 @@ -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSD quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSD quad to the final design requirements. - -DEVICE_NAME "LFE3-150EA" -CH0_PROTOCOL "GIGE" -CH0_MODE "RXTX" -CH1_MODE "DISABLED" -CH2_MODE "DISABLED" -CH3_MODE "DISABLED" -CH0_CDR_SRC "REFCLK_CORE" -PLL_SRC "REFCLK_CORE" -TX_DATARATE_RANGE "MED" -CH0_RX_DATARATE_RANGE "MED" -REFCK_MULT "10X" -#REFCLK_RATE 125.0 -CH0_RX_DATA_RATE "FULL" -CH0_TX_DATA_RATE "FULL" -CH0_TX_DATA_WIDTH "8" -CH0_RX_DATA_WIDTH "8" -CH0_TX_FIFO "ENABLED" -CH0_RX_FIFO "ENABLED" -CH0_TDRV "0" -#CH0_TX_FICLK_RATE 125.0 -#CH0_RXREFCLK_RATE "125.0" -#CH0_RX_FICLK_RATE 125.0 -CH0_TX_PRE "DISABLED" -CH0_RTERM_TX "50" -CH0_RX_EQ "DISABLED" -CH0_RTERM_RX "50" -CH0_RX_DCC "AC" -CH0_LOS_THRESHOLD_LO "2" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH0_TX_SB "DISABLED" -CH0_RX_SB "DISABLED" -CH0_TX_8B10B "ENABLED" -CH0_RX_8B10B "ENABLED" -CH0_COMMA_A "1100000101" -CH0_COMMA_B "0011111010" -CH0_COMMA_M "1111111111" -CH0_RXWA "ENABLED" -CH0_ILSM "ENABLED" -CH0_CTC "DISABLED" -CH0_CC_MATCH3 "0110111100" -CH0_CC_MATCH4 "0001010000" -CH0_CC_MATCH_MODE "2" -CH0_CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -CH0_SSLB "DISABLED" -CH0_SPLBPORTS "DISABLED" -CH0_PCSLBPORTS "DISABLED" -INT_ALL "DISABLED" -QD_REFCK2CORE "DISABLED" - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.vhd b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.vhd deleted file mode 100644 index e8038d8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b.vhd +++ /dev/null @@ -1,2689 +0,0 @@ - - - ---synopsys translate_off - -library pcsd_work; -use pcsd_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSD is -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String --- CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt"; --- QUAD_MODE : String := "SINGLE"; --- CH0_CDR_SRC : String := "REFCLK_CORE"; --- CH1_CDR_SRC : String := "REFCLK_EXT"; --- CH2_CDR_SRC : String := "REFCLK_EXT"; --- CH3_CDR_SRC : String := "REFCLK_EXT"; --- PLL_SRC : String := "REFCLK_CORE" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); - -end PCSD; - -architecture PCSD_arch of PCSD is - - -component PCSD_sim -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String; - CH1_CDR_SRC : String; - CH2_CDR_SRC : String; - CH3_CDR_SRC : String; - PLL_SRC : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - -begin - -PCSD_sim_inst : PCSD_sim -generic map ( - CONFIG_FILE => CONFIG_FILE, - QUAD_MODE => QUAD_MODE, - CH0_CDR_SRC => CH0_CDR_SRC, - CH1_CDR_SRC => CH1_CDR_SRC, - CH2_CDR_SRC => CH2_CDR_SRC, - CH3_CDR_SRC => CH3_CDR_SRC, - PLL_SRC => PLL_SRC - ) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX_0 => FFC_CK_CORE_RX_0, - FFC_CK_CORE_RX_1 => FFC_CK_CORE_RX_1, - FFC_CK_CORE_RX_2 => FFC_CK_CORE_RX_2, - FFC_CK_CORE_RX_3 => FFC_CK_CORE_RX_3, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_SYNC_TOGGLE => FFC_SYNC_TOGGLE, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - FFC_RATE_MODE_RX_0 => FFC_RATE_MODE_RX_0, - FFC_RATE_MODE_RX_1 => FFC_RATE_MODE_RX_1, - FFC_RATE_MODE_RX_2 => FFC_RATE_MODE_RX_2, - FFC_RATE_MODE_RX_3 => FFC_RATE_MODE_RX_3, - FFC_RATE_MODE_TX_0 => FFC_RATE_MODE_TX_0, - FFC_RATE_MODE_TX_1 => FFC_RATE_MODE_TX_1, - FFC_RATE_MODE_TX_2 => FFC_RATE_MODE_TX_2, - FFC_RATE_MODE_TX_3 => FFC_RATE_MODE_TX_3, - FFC_DIV11_MODE_RX_0 => FFC_DIV11_MODE_RX_0, - FFC_DIV11_MODE_RX_1 => FFC_DIV11_MODE_RX_1, - FFC_DIV11_MODE_RX_2 => FFC_DIV11_MODE_RX_2, - FFC_DIV11_MODE_RX_3 => FFC_DIV11_MODE_RX_3, - FFC_DIV11_MODE_TX_0 => FFC_DIV11_MODE_TX_0, - FFC_DIV11_MODE_TX_1 => FFC_DIV11_MODE_TX_1, - FFC_DIV11_MODE_TX_2 => FFC_DIV11_MODE_TX_2, - FFC_DIV11_MODE_TX_3 => FFC_DIV11_MODE_TX_3, - LDR_CORE2TX_0 => LDR_CORE2TX_0, - LDR_CORE2TX_1 => LDR_CORE2TX_1, - LDR_CORE2TX_2 => LDR_CORE2TX_2, - LDR_CORE2TX_3 => LDR_CORE2TX_3, - FFC_LDR_CORE2TX_EN_0 => FFC_LDR_CORE2TX_EN_0, - FFC_LDR_CORE2TX_EN_1 => FFC_LDR_CORE2TX_EN_1, - FFC_LDR_CORE2TX_EN_2 => FFC_LDR_CORE2TX_EN_2, - FFC_LDR_CORE2TX_EN_3 => FFC_LDR_CORE2TX_EN_3, - PCIE_POWERDOWN_0_0 => PCIE_POWERDOWN_0_0, - PCIE_POWERDOWN_0_1 => PCIE_POWERDOWN_0_1, - PCIE_POWERDOWN_1_0 => PCIE_POWERDOWN_1_0, - PCIE_POWERDOWN_1_1 => PCIE_POWERDOWN_1_1, - PCIE_POWERDOWN_2_0 => PCIE_POWERDOWN_2_0, - PCIE_POWERDOWN_2_1 => PCIE_POWERDOWN_2_1, - PCIE_POWERDOWN_3_0 => PCIE_POWERDOWN_3_0, - PCIE_POWERDOWN_3_1 => PCIE_POWERDOWN_3_1, - PCIE_RXPOLARITY_0 => PCIE_RXPOLARITY_0, - PCIE_RXPOLARITY_1 => PCIE_RXPOLARITY_1, - PCIE_RXPOLARITY_2 => PCIE_RXPOLARITY_2, - PCIE_RXPOLARITY_3 => PCIE_RXPOLARITY_3, - PCIE_TXCOMPLIANCE_0 => PCIE_TXCOMPLIANCE_0, - PCIE_TXCOMPLIANCE_1 => PCIE_TXCOMPLIANCE_1, - PCIE_TXCOMPLIANCE_2 => PCIE_TXCOMPLIANCE_2, - PCIE_TXCOMPLIANCE_3 => PCIE_TXCOMPLIANCE_3, - PCIE_TXDETRX_PR2TLB_0 => PCIE_TXDETRX_PR2TLB_0, - PCIE_TXDETRX_PR2TLB_1 => PCIE_TXDETRX_PR2TLB_1, - PCIE_TXDETRX_PR2TLB_2 => PCIE_TXDETRX_PR2TLB_2, - PCIE_TXDETRX_PR2TLB_3 => PCIE_TXDETRX_PR2TLB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_TX_F_CLK_0 => FF_TX_F_CLK_0, - FF_TX_F_CLK_1 => FF_TX_F_CLK_1, - FF_TX_F_CLK_2 => FF_TX_F_CLK_2, - FF_TX_F_CLK_3 => FF_TX_F_CLK_3, - FF_TX_H_CLK_0 => FF_TX_H_CLK_0, - FF_TX_H_CLK_1 => FF_TX_H_CLK_1, - FF_TX_H_CLK_2 => FF_TX_H_CLK_2, - FF_TX_H_CLK_3 => FF_TX_H_CLK_3, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_CDR_TRAIN_DONE_0 => FFS_CDR_TRAIN_DONE_0, - FFS_CDR_TRAIN_DONE_1 => FFS_CDR_TRAIN_DONE_1, - FFS_CDR_TRAIN_DONE_2 => FFS_CDR_TRAIN_DONE_2, - FFS_CDR_TRAIN_DONE_3 => FFS_CDR_TRAIN_DONE_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RLOS_HI_0 => FFS_RLOS_HI_0, - FFS_RLOS_HI_1 => FFS_RLOS_HI_1, - FFS_RLOS_HI_2 => FFS_RLOS_HI_2, - FFS_RLOS_HI_3 => FFS_RLOS_HI_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - PCIE_PHYSTATUS_0 => PCIE_PHYSTATUS_0, - PCIE_PHYSTATUS_1 => PCIE_PHYSTATUS_1, - PCIE_PHYSTATUS_2 => PCIE_PHYSTATUS_2, - PCIE_PHYSTATUS_3 => PCIE_PHYSTATUS_3, - PCIE_RXVALID_0 => PCIE_RXVALID_0, - PCIE_RXVALID_1 => PCIE_RXVALID_1, - PCIE_RXVALID_2 => PCIE_RXVALID_2, - PCIE_RXVALID_3 => PCIE_RXVALID_3, - FFS_SKP_ADDED_0 => FFS_SKP_ADDED_0, - FFS_SKP_ADDED_1 => FFS_SKP_ADDED_1, - FFS_SKP_ADDED_2 => FFS_SKP_ADDED_2, - FFS_SKP_ADDED_3 => FFS_SKP_ADDED_3, - FFS_SKP_DELETED_0 => FFS_SKP_DELETED_0, - FFS_SKP_DELETED_1 => FFS_SKP_DELETED_1, - FFS_SKP_DELETED_2 => FFS_SKP_DELETED_2, - FFS_SKP_DELETED_3 => FFS_SKP_DELETED_3, - LDR_RX2CORE_0 => LDR_RX2CORE_0, - LDR_RX2CORE_1 => LDR_RX2CORE_1, - LDR_RX2CORE_2 => LDR_RX2CORE_2, - LDR_RX2CORE_3 => LDR_RX2CORE_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7, - REFCLK_FROM_NQ => REFCLK_FROM_NQ, - REFCLK_TO_NQ => REFCLK_TO_NQ - ); - -end PCSD_arch; - ---synopsys translate_on - - - - ---synopsys translate_off -library ECP3; -use ECP3.components.all; ---synopsys translate_on - - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_gbe_0_intclock_8b is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt"); - port ( ------------------- --- CH0 -- - hdinp_ch0, hdinn_ch0 : in std_logic; - hdoutp_ch0, hdoutn_ch0 : out std_logic; - rxiclk_ch0 : in std_logic; - txiclk_ch0 : in std_logic; - rx_full_clk_ch0 : out std_logic; - rx_half_clk_ch0 : out std_logic; - tx_full_clk_ch0 : out std_logic; - tx_half_clk_ch0 : out std_logic; - fpga_rxrefclk_ch0 : in std_logic; - txdata_ch0 : in std_logic_vector (7 downto 0); - tx_k_ch0 : in std_logic; - xmit_ch0 : in std_logic; - tx_disp_correct_ch0 : in std_logic; - rxdata_ch0 : out std_logic_vector (7 downto 0); - rx_k_ch0 : out std_logic; - rx_disp_err_ch0 : out std_logic; - rx_cv_err_ch0 : out std_logic; - rx_serdes_rst_ch0_c : in std_logic; - sb_felb_ch0_c : in std_logic; - sb_felb_rst_ch0_c : in std_logic; - tx_pcs_rst_ch0_c : in std_logic; - tx_pwrup_ch0_c : in std_logic; - rx_pcs_rst_ch0_c : in std_logic; - rx_pwrup_ch0_c : in std_logic; - rx_los_low_ch0_s : out std_logic; - lsm_status_ch0_s : out std_logic; - rx_cdr_lol_ch0_s : out std_logic; --- CH1 -- --- CH2 -- --- CH3 -- ----- Miscillaneous ports - fpga_txrefclk : in std_logic; - tx_serdes_rst_c : in std_logic; - tx_pll_lol_qd_s : out std_logic; - rst_qd_c : in std_logic; - serdes_rst_qd_c : in std_logic); - -end serdes_gbe_0_intclock_8b; - - -architecture serdes_gbe_0_intclock_8b_arch of serdes_gbe_0_intclock_8b is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; - - - -component PCSD ---synopsys translate_off -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSD_INST : label is USER_CONFIG_FILE; - attribute QUAD_MODE: string; - attribute QUAD_MODE of PCSD_INST : label is "SINGLE"; - attribute PLL_SRC: string; - attribute PLL_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute CH0_CDR_SRC: string; - attribute CH0_CDR_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSD : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal refclk_from_nq : std_logic := '0'; -signal fpsc_vlo : std_logic := '0'; -signal fpsc_vhi : std_logic := '1'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); -signal tx_full_clk_ch0_sig : std_logic; - -signal refclk2fpga_sig : std_logic; -signal tx_pll_lol_qd_sig : std_logic; -signal rx_los_low_ch0_sig : std_logic; -signal rx_los_low_ch1_sig : std_logic; -signal rx_los_low_ch2_sig : std_logic; -signal rx_los_low_ch3_sig : std_logic; -signal rx_cdr_lol_ch0_sig : std_logic; -signal rx_cdr_lol_ch1_sig : std_logic; -signal rx_cdr_lol_ch2_sig : std_logic; -signal rx_cdr_lol_ch3_sig : std_logic; - - - - - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); -vhi_inst : VHI port map(Z => fpsc_vhi); - - rx_los_low_ch0_s <= rx_los_low_ch0_sig; - rx_cdr_lol_ch0_s <= rx_cdr_lol_ch0_sig; - tx_pll_lol_qd_s <= tx_pll_lol_qd_sig; - tx_full_clk_ch0 <= tx_full_clk_ch0_sig; - --- pcs_quad instance -PCSD_INST : PCSD ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE, - QUAD_MODE => "SINGLE", - CH0_CDR_SRC => "REFCLK_CORE", - PLL_SRC => "REFCLK_CORE" - ) ---synopsys translate_on -port map ( - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - ------ CH0 ----- - HDOUTP0 => hdoutp_ch0, - HDOUTN0 => hdoutn_ch0, - HDINP0 => hdinp_ch0, - HDINN0 => hdinn_ch0, - PCIE_TXDETRX_PR2TLB_0 => fpsc_vlo, - PCIE_TXCOMPLIANCE_0 => fpsc_vlo, - PCIE_RXPOLARITY_0 => fpsc_vlo, - PCIE_POWERDOWN_0_0 => fpsc_vlo, - PCIE_POWERDOWN_0_1 => fpsc_vlo, - PCIE_RXVALID_0 => open, - PCIE_PHYSTATUS_0 => open, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => rxiclk_ch0, - FF_TXI_CLK_0 => txiclk_ch0, - FF_EBRD_CLK_0 => fpsc_vlo, - FF_RX_F_CLK_0 => rx_full_clk_ch0, - FF_RX_H_CLK_0 => rx_half_clk_ch0, - FF_TX_F_CLK_0 => tx_full_clk_ch0_sig, - FF_TX_H_CLK_0 => tx_half_clk_ch0, - FFC_CK_CORE_RX_0 => fpga_rxrefclk_ch0, - FF_TX_D_0_0 => txdata_ch0(0), - FF_TX_D_0_1 => txdata_ch0(1), - FF_TX_D_0_2 => txdata_ch0(2), - FF_TX_D_0_3 => txdata_ch0(3), - FF_TX_D_0_4 => txdata_ch0(4), - FF_TX_D_0_5 => txdata_ch0(5), - FF_TX_D_0_6 => txdata_ch0(6), - FF_TX_D_0_7 => txdata_ch0(7), - FF_TX_D_0_8 => tx_k_ch0, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => xmit_ch0, - FF_TX_D_0_11 => tx_disp_correct_ch0, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => rxdata_ch0(0), - FF_RX_D_0_1 => rxdata_ch0(1), - FF_RX_D_0_2 => rxdata_ch0(2), - FF_RX_D_0_3 => rxdata_ch0(3), - FF_RX_D_0_4 => rxdata_ch0(4), - FF_RX_D_0_5 => rxdata_ch0(5), - FF_RX_D_0_6 => rxdata_ch0(6), - FF_RX_D_0_7 => rxdata_ch0(7), - FF_RX_D_0_8 => rx_k_ch0, - FF_RX_D_0_9 => rx_disp_err_ch0, - FF_RX_D_0_10 => rx_cv_err_ch0, - FF_RX_D_0_11 => open, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - - FFC_RRST_0 => rx_serdes_rst_ch0_c, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => sb_felb_ch0_c, - FFC_PFIFO_CLR_0 => sb_felb_rst_ch0_c, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => tx_pcs_rst_ch0_c, - FFC_TXPWDNB_0 => tx_pwrup_ch0_c, - FFC_LANE_RX_RST_0 => rx_pcs_rst_ch0_c, - FFC_RXPWDNB_0 => rx_pwrup_ch0_c, - FFS_RLOS_LO_0 => rx_los_low_ch0_sig, - FFS_RLOS_HI_0 => open, - FFS_PCIE_CON_0 => open, - FFS_PCIE_DONE_0 => open, - FFS_LS_SYNC_STATUS_0 => lsm_status_ch0_s, - FFS_CC_OVERRUN_0 => open, - FFS_CC_UNDERRUN_0 => open, - FFS_SKP_ADDED_0 => open, - FFS_SKP_DELETED_0 => open, - FFS_RLOL_0 => rx_cdr_lol_ch0_sig, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - LDR_CORE2TX_0 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_0 => fpsc_vlo, - LDR_RX2CORE_0 => open, - FFS_CDR_TRAIN_DONE_0 => open, - FFC_DIV11_MODE_TX_0 => fpsc_vlo, - FFC_RATE_MODE_TX_0 => fpsc_vlo, - FFC_DIV11_MODE_RX_0 => fpsc_vlo, - FFC_RATE_MODE_RX_0 => fpsc_vlo, - ------ CH1 ----- - HDOUTP1 => open, - HDOUTN1 => open, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_1 => fpsc_vlo, - PCIE_TXCOMPLIANCE_1 => fpsc_vlo, - PCIE_RXPOLARITY_1 => fpsc_vlo, - PCIE_POWERDOWN_1_0 => fpsc_vlo, - PCIE_POWERDOWN_1_1 => fpsc_vlo, - PCIE_RXVALID_1 => open, - PCIE_PHYSTATUS_1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_TX_F_CLK_1 => open, - FF_TX_H_CLK_1 => open, - FFC_CK_CORE_RX_1 => fpsc_vlo, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_RLOS_HI_1 => open, - FFS_PCIE_CON_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_SKP_ADDED_1 => open, - FFS_SKP_DELETED_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - LDR_CORE2TX_1 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_1 => fpsc_vlo, - LDR_RX2CORE_1 => open, - FFS_CDR_TRAIN_DONE_1 => open, - FFC_DIV11_MODE_TX_1 => fpsc_vlo, - FFC_RATE_MODE_TX_1 => fpsc_vlo, - FFC_DIV11_MODE_RX_1 => fpsc_vlo, - FFC_RATE_MODE_RX_1 => fpsc_vlo, - ------ CH2 ----- - HDOUTP2 => open, - HDOUTN2 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_2 => fpsc_vlo, - PCIE_TXCOMPLIANCE_2 => fpsc_vlo, - PCIE_RXPOLARITY_2 => fpsc_vlo, - PCIE_POWERDOWN_2_0 => fpsc_vlo, - PCIE_POWERDOWN_2_1 => fpsc_vlo, - PCIE_RXVALID_2 => open, - PCIE_PHYSTATUS_2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_TX_F_CLK_2 => open, - FF_TX_H_CLK_2 => open, - FFC_CK_CORE_RX_2 => fpsc_vlo, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_RLOS_HI_2 => open, - FFS_PCIE_CON_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_SKP_ADDED_2 => open, - FFS_SKP_DELETED_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - LDR_CORE2TX_2 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_2 => fpsc_vlo, - LDR_RX2CORE_2 => open, - FFS_CDR_TRAIN_DONE_2 => open, - FFC_DIV11_MODE_TX_2 => fpsc_vlo, - FFC_RATE_MODE_TX_2 => fpsc_vlo, - FFC_DIV11_MODE_RX_2 => fpsc_vlo, - FFC_RATE_MODE_RX_2 => fpsc_vlo, - ------ CH3 ----- - HDOUTP3 => open, - HDOUTN3 => open, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_3 => fpsc_vlo, - PCIE_TXCOMPLIANCE_3 => fpsc_vlo, - PCIE_RXPOLARITY_3 => fpsc_vlo, - PCIE_POWERDOWN_3_0 => fpsc_vlo, - PCIE_POWERDOWN_3_1 => fpsc_vlo, - PCIE_RXVALID_3 => open, - PCIE_PHYSTATUS_3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_TX_F_CLK_3 => open, - FF_TX_H_CLK_3 => open, - FFC_CK_CORE_RX_3 => fpsc_vlo, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_RLOS_HI_3 => open, - FFS_PCIE_CON_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_SKP_ADDED_3 => open, - FFS_SKP_DELETED_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - LDR_CORE2TX_3 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_3 => fpsc_vlo, - LDR_RX2CORE_3 => open, - FFS_CDR_TRAIN_DONE_3 => open, - FFC_DIV11_MODE_TX_3 => fpsc_vlo, - FFC_RATE_MODE_TX_3 => fpsc_vlo, - FFC_DIV11_MODE_RX_3 => fpsc_vlo, - FFC_RATE_MODE_RX_3 => fpsc_vlo, - ------ Auxilliary ---- - SCIWDATA7 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA0 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIRDATA7 => open, - SCIRDATA6 => open, - SCIRDATA5 => open, - SCIRDATA4 => open, - SCIRDATA3 => open, - SCIRDATA2 => open, - SCIRDATA1 => open, - SCIRDATA0 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_CK_CORE_TX => fpga_txrefclk, - FFC_MACRO_RST => serdes_rst_qd_c, - FFC_QUAD_RST => rst_qd_c, - FFC_TRST => tx_serdes_rst_c, - FFS_PLOL => tx_pll_lol_qd_sig, - FFC_SYNC_TOGGLE => fpsc_vlo, - REFCK2CORE => refclk2fpga_sig, - CIN0 => fpsc_vlo, - CIN1 => fpsc_vlo, - CIN2 => fpsc_vlo, - CIN3 => fpsc_vlo, - CIN4 => fpsc_vlo, - CIN5 => fpsc_vlo, - CIN6 => fpsc_vlo, - CIN7 => fpsc_vlo, - CIN8 => fpsc_vlo, - CIN9 => fpsc_vlo, - CIN10 => fpsc_vlo, - CIN11 => fpsc_vlo, - COUT0 => open, - COUT1 => open, - COUT2 => open, - COUT3 => open, - COUT4 => open, - COUT5 => open, - COUT6 => open, - COUT7 => open, - COUT8 => open, - COUT9 => open, - COUT10 => open, - COUT11 => open, - COUT12 => open, - COUT13 => open, - COUT14 => open, - COUT15 => open, - COUT16 => open, - COUT17 => open, - COUT18 => open, - COUT19 => open, - REFCLK_FROM_NQ => refclk_from_nq, - REFCLK_TO_NQ => open); - - - - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on -end serdes_gbe_0_intclock_8b_arch ; diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.ipx b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.ipx deleted file mode 100644 index 07fc708..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.ipx +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.jhd b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.jhd deleted file mode 100644 index 5a78672..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.jhd +++ /dev/null @@ -1,13 +0,0 @@ -MODULE rx_reset_sm DEFIN serdes_gbe_0_intclock_8b_ecp3.vhd -MODULE tx_reset_sm DEFIN serdes_gbe_0_intclock_8b_ecp3.vhd -MODULE serdes_gbe_0_intclock_8b_ecp3 DEFIN serdes_gbe_0_intclock_8b_ecp3.vhd - SUBMODULE tx_reset_sm - INSTANCE tx_reset_sm_ch - SUBMODULE rx_reset_sm - INSTANCE rx_reset_sm_ch0 - SUBMODULE PCSD - INSTANCE PCSD_INST - SUBMODULE VHI - INSTANCE vhi_inst - SUBMODULE VLO - INSTANCE vlo_inst diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.lpc b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.lpc deleted file mode 100644 index 5da776a..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.lpc +++ /dev/null @@ -1,258 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=8.1 -ModuleName=serdes_gbe_0_intclock_8b_ecp3 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=10/05/2011 -Time=15:38:09 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -_mode0=RXTX -_mode1=DISABLED -_mode2=DISABLED -_mode3=DISABLED -_protocol0=GIGE -_protocol1=GIGE -_protocol2=G8B10B -_protocol3=G8B10B -_ldr0=DISABLED -_ldr1=DISABLED -_ldr2=DISABLED -_ldr3=DISABLED -_datarange=1.25 -_pll_txsrc=INTERNAL -_refclk_mult=10X -_refclk_rate=125.0 -_tx_protocol0=GIGE -_tx_protocol1=DISABLED -_tx_protocol2=DISABLED -_tx_protocol3=DISABLED -_tx_data_rate0=FULL -_tx_data_rate1=FULL -_tx_data_rate2=FULL -_tx_data_rate3=FULL -_tx_data_width0=8 -_tx_data_width1=8 -_tx_data_width2=8 -_tx_data_width3=8 -_tx_fifo0=ENABLED -_tx_fifo1=ENABLED -_tx_fifo2=ENABLED -_tx_fifo3=ENABLED -_tx_ficlk_rate0=125.0 -_tx_ficlk_rate1=125.0 -_tx_ficlk_rate2=125.0 -_tx_ficlk_rate3=125.0 -_pll_rxsrc0=INTERNAL -_pll_rxsrc1=EXTERNAL -_pll_rxsrc2=EXTERNAL -_pll_rxsrc3=EXTERNAL -Multiplier0= -Multiplier1= -Multiplier2= -Multiplier3= -_rx_datarange0=1.25 -_rx_datarange1=1.25 -_rx_datarange2=1.25 -_rx_datarange3=1.25 -_rx_protocol0=GIGE -_rx_protocol1=DISABLED -_rx_protocol2=DISABLED -_rx_protocol3=DISABLED -_rx_data_rate0=FULL -_rx_data_rate1=DIV2 -_rx_data_rate2=FULL -_rx_data_rate3=FULL -_rxrefclk_rate0=125.0 -_rxrefclk_rate1=125.0 -_rxrefclk_rate2=125.0 -_rxrefclk_rate3=125.0 -_rx_data_width0=8 -_rx_data_width1=8 -_rx_data_width2=8 -_rx_data_width3=8 -_rx_fifo0=ENABLED -_rx_fifo1=ENABLED -_rx_fifo2=ENABLED -_rx_fifo3=ENABLED -_rx_ficlk_rate0=125.0 -_rx_ficlk_rate1=62.5 -_rx_ficlk_rate2=125.0 -_rx_ficlk_rate3=125.0 -_tdrv_ch0=0 -_tdrv_ch1=0 -_tdrv_ch2=0 -_tdrv_ch3=0 -_tx_pre0=DISABLED -_tx_pre1=DISABLED -_tx_pre2=DISABLED -_tx_pre3=DISABLED -_rterm_tx0=50 -_rterm_tx1=50 -_rterm_tx2=50 -_rterm_tx3=50 -_rx_eq0=DISABLED -_rx_eq1=DISABLED -_rx_eq2=DISABLED -_rx_eq3=DISABLED -_rterm_rx0=50 -_rterm_rx1=50 -_rterm_rx2=50 -_rterm_rx3=50 -_rx_dcc0=AC -_rx_dcc1=AC -_rx_dcc2=AC -_rx_dcc3=AC -_los_threshold_mode0=LOS_E -_los_threshold_mode1=LOS_E -_los_threshold_mode2=LOS_E -_los_threshold_mode3=LOS_E -_los_threshold_lo0=2 -_los_threshold_lo1=2 -_los_threshold_lo2=2 -_los_threshold_lo3=2 -_los_threshold_hi0=7 -_los_threshold_hi1=7 -_los_threshold_hi2=7 -_los_threshold_hi3=7 -_pll_term=50 -_pll_dcc=AC -_pll_lol_set=0 -_tx_sb0=DISABLED -_tx_sb1=DISABLED -_tx_sb2=DISABLED -_tx_sb3=DISABLED -_tx_8b10b0=ENABLED -_tx_8b10b1=ENABLED -_tx_8b10b2=ENABLED -_tx_8b10b3=ENABLED -_rx_sb0=DISABLED -_rx_sb1=DISABLED -_rx_sb2=DISABLED -_rx_sb3=DISABLED -_ird0=DISABLED -_ird1=DISABLED -_ird2=DISABLED -_ird3=DISABLED -_rx_8b10b0=ENABLED -_rx_8b10b1=ENABLED -_rx_8b10b2=ENABLED -_rx_8b10b3=ENABLED -_rxwa0=ENABLED -_rxwa1=ENABLED -_rxwa2=ENABLED -_rxwa3=ENABLED -_ilsm0=ENABLED -_ilsm1=ENABLED -_ilsm2=ENABLED -_ilsm3=ENABLED -_scomma0=K28P5 -_scomma1=K28P5 -_scomma2=K28P157 -_scomma3=K28P157 -_comma_a0=1100000101 -_comma_a1=1100000101 -_comma_a2=1100000101 -_comma_a3=1100000101 -_comma_b0=0011111010 -_comma_b1=0011111010 -_comma_b2=0011111010 -_comma_b3=0011111010 -_comma_m0=1111111111 -_comma_m1=1111111111 -_comma_m2=1111111100 -_comma_m3=1111111100 -_ctc0=DISABLED -_ctc1=DISABLED -_ctc2=DISABLED -_ctc3=DISABLED -_cc_match_mode0=2 -_cc_match_mode1=2 -_cc_match_mode2=1 -_cc_match_mode3=1 -_k00=01 -_k01=00 -_k02=01 -_k03=00 -_k10=00 -_k11=00 -_k12=00 -_k13=00 -_k20=01 -_k21=01 -_k22=01 -_k23=01 -_k30=00 -_k31=00 -_k32=01 -_k33=01 -_byten00=10111100 -_byten01=00000000 -_byten02=00011100 -_byten03=00000000 -_byten10=01010000 -_byten11=00000000 -_byten12=00000000 -_byten13=00000000 -_byten20=10111100 -_byten21=10111100 -_byten22=00011100 -_byten23=00011100 -_byten30=01010000 -_byten31=01010000 -_byten32=00011100 -_byten33=00011100 -_cc_min_ipg0=3 -_cc_min_ipg1=3 -_cc_min_ipg2=3 -_cc_min_ipg3=3 -_cchmark=9 -_cclmark=7 -_loopback=DISABLED -_lbtype0=DISABLED -_lbtype1=DISABLED -_lbtype2=DISABLED -_lbtype3=DISABLED -_teidle_ch0=DISABLED -_teidle_ch1=DISABLED -_teidle_ch2=DISABLED -_teidle_ch3=DISABLED -_rst_gen=ENABLED -_rx_los_port0=Internal -_rx_los_port1=Internal -_rx_los_port2=Internal -_rx_los_port3=Internal -_sci_ports=DISABLED -_sci_int_port=DISABLED -_refck2core=ENABLED -Regen=auto -PAR1=0 -PARTrace1=0 -PAR3=0 -PARTrace3=0 - -[FilesGenerated] -serdes_gbe_0_intclock_8b_ecp3.pp=pp -serdes_gbe_0_intclock_8b_ecp3.tft=tft -serdes_gbe_0_intclock_8b_ecp3.txt=pcs_module -serdes_gbe_0_intclock_8b_ecp3.sym=sym diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.naf b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.naf deleted file mode 100644 index 10e2252..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.naf +++ /dev/null @@ -1,46 +0,0 @@ -hdinp_ch0 i -hdinn_ch0 i -hdoutp_ch0 o -hdoutn_ch0 o -rxiclk_ch0 i -txiclk_ch0 i -rx_full_clk_ch0 o -rx_half_clk_ch0 o -tx_full_clk_ch0 o -tx_half_clk_ch0 o -fpga_rxrefclk_ch0 i -txdata_ch0[7] i -txdata_ch0[6] i -txdata_ch0[5] i -txdata_ch0[4] i -txdata_ch0[3] i -txdata_ch0[2] i -txdata_ch0[1] i -txdata_ch0[0] i -tx_k_ch0 i -xmit_ch0 i -tx_disp_correct_ch0 i -rxdata_ch0[7] o -rxdata_ch0[6] o -rxdata_ch0[5] o -rxdata_ch0[4] o -rxdata_ch0[3] o -rxdata_ch0[2] o -rxdata_ch0[1] o -rxdata_ch0[0] o -rx_k_ch0 o -rx_disp_err_ch0 o -rx_cv_err_ch0 o -sb_felb_ch0_c i -sb_felb_rst_ch0_c i -tx_pwrup_ch0_c i -rx_pwrup_ch0_c i -rx_los_low_ch0_s o -lsm_status_ch0_s o -rx_cdr_lol_ch0_s o -fpga_txrefclk i -tx_serdes_rst_c i -tx_pll_lol_qd_s o -refclk2fpga o -rst_n i -serdes_rst_qd_c i diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.pp b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.pp deleted file mode 100644 index 51384af..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.pp +++ /dev/null @@ -1,195 +0,0 @@ -#define _device_name "LFE3-150EA" -#define _ch0_pll_rxsrc "REFCLK_CORE" -#define _ch0_mode "RXTX" -#define _ch0_protocol "GIGE" -#define _ch0_ldr "DISABLED" -#define _ch0_tx_data_rate "FULL" -#define _ch0_tx_data_width "8" -#define _ch0_tx_fifo "ENABLED" -#define _ch0_tx_ficlk_rate 125.0 -#define _ch0_rx_datarange "MED" -#define _ch0_rx_data_rate "FULL" -#define _ch0_rxrefclk_rate "125.0" -#define _ch0_rx_data_width "8" -#define _ch0_rx_fifo "ENABLED" -#define _ch0_rx_ficlk_rate 125.0 -#define _ch0_tdrv "0" -#define _ch0_tx_pre "DISABLED" -#define _ch0_rterm_tx "50" -#define _ch0_rx_eq "DISABLED" -#define _ch0_rterm_rx "50" -#define _ch0_rx_dcc "AC" -#define _los_threshold_mode0 "LOS_E" -#define _los_threshold_lo0 "2" -#define _ch0_tx_sb "DISABLED" -#define _ch0_tx_8b10b "ENABLED" -#define _ch0_rx_sb "DISABLED" -#define _ch0_ird "DISABLED" -#define _ch0_rx_8b10b "ENABLED" -#define _ch0_rxwa "ENABLED" -#define _ch0_ilsm "ENABLED" -#define _ch0_scomma "K28P5" -#define _ch0_comma_a "1100000101" -#define _ch0_comma_b "0011111010" -#define _ch0_comma_m "1111111111" -#define _ch0_ctc "DISABLED" -#define _ch0_cc_match_mode "2" -#define _ch0_byten "0110111100" -#define _ch0_byten1 "0001010000" -#define _ch0_byten2 "0110111100" -#define _ch0_byten3 "0001010000" -#define _ch0_cc_min_ipg "3" -#define _ch0_lbtype "DISABLED" -#define _ch0_teidle "DISABLED" -#define _ch0_rx_lol_port "INTERNAL" - -#define _ch1_pll_rxsrc "REFCLK_EXT" -#define _ch1_mode "DISABLED" -#define _ch1_protocol "GIGE" -#define _ch1_ldr "DISABLED" -#define _ch1_tx_data_rate "FULL" -#define _ch1_tx_data_width "8" -#define _ch1_tx_fifo "ENABLED" -#define _ch1_tx_ficlk_rate 125.0 -#define _ch1_rx_datarange "MED" -#define _ch1_rx_data_rate "DIV2" -#define _ch1_rxrefclk_rate "125.0" -#define _ch1_rx_data_width "8" -#define _ch1_rx_fifo "ENABLED" -#define _ch1_rx_ficlk_rate 62.5 -#define _ch1_tdrv "0" -#define _ch1_tx_pre "DISABLED" -#define _ch1_rterm_tx "50" -#define _ch1_rx_eq "DISABLED" -#define _ch1_rterm_rx "50" -#define _ch1_rx_dcc "AC" -#define _los_threshold_mode1 "LOS_E" -#define _los_threshold_lo1 "2" -#define _ch1_tx_sb "DISABLED" -#define _ch1_tx_8b10b "ENABLED" -#define _ch1_rx_sb "DISABLED" -#define _ch1_ird "DISABLED" -#define _ch1_rx_8b10b "ENABLED" -#define _ch1_rxwa "ENABLED" -#define _ch1_ilsm "ENABLED" -#define _ch1_scomma "K28P5" -#define _ch1_comma_a "1100000101" -#define _ch1_comma_b "0011111010" -#define _ch1_comma_m "1111111111" -#define _ch1_ctc "DISABLED" -#define _ch1_cc_match_mode "2" -#define _ch1_byten "0000000000" -#define _ch1_byten1 "0000000000" -#define _ch1_byten2 "0110111100" -#define _ch1_byten3 "0001010000" -#define _ch1_cc_min_ipg "3" -#define _ch1_lbtype "DISABLED" -#define _ch1_teidle "DISABLED" -#define _ch1_rx_lol_port "INTERNAL" - -#define _ch2_pll_rxsrc "REFCLK_EXT" -#define _ch2_mode "DISABLED" -#define _ch2_protocol "G8B10B" -#define _ch2_ldr "DISABLED" -#define _ch2_tx_data_rate "FULL" -#define _ch2_tx_data_width "8" -#define _ch2_tx_fifo "ENABLED" -#define _ch2_tx_ficlk_rate 125.0 -#define _ch2_rx_datarange "MED" -#define _ch2_rx_data_rate "FULL" -#define _ch2_rxrefclk_rate "125.0" -#define _ch2_rx_data_width "8" -#define _ch2_rx_fifo "ENABLED" -#define _ch2_rx_ficlk_rate 125.0 -#define _ch2_tdrv "0" -#define _ch2_tx_pre "DISABLED" -#define _ch2_rterm_tx "50" -#define _ch2_rx_eq "DISABLED" -#define _ch2_rterm_rx "50" -#define _ch2_rx_dcc "AC" -#define _los_threshold_mode2 "LOS_E" -#define _los_threshold_lo2 "2" -#define _ch2_tx_sb "DISABLED" -#define _ch2_tx_8b10b "ENABLED" -#define _ch2_rx_sb "DISABLED" -#define _ch2_ird "DISABLED" -#define _ch2_rx_8b10b "ENABLED" -#define _ch2_rxwa "ENABLED" -#define _ch2_ilsm "ENABLED" -#define _ch2_scomma "K28P157" -#define _ch2_comma_a "1100000101" -#define _ch2_comma_b "0011111010" -#define _ch2_comma_m "1111111100" -#define _ch2_ctc "DISABLED" -#define _ch2_cc_match_mode "1" -#define _ch2_byten "0100011100" -#define _ch2_byten1 "0000000000" -#define _ch2_byten2 "0100011100" -#define _ch2_byten3 "0100011100" -#define _ch2_cc_min_ipg "3" -#define _ch2_lbtype "DISABLED" -#define _ch2_teidle "DISABLED" -#define _ch2_rx_lol_port "INTERNAL" - -#define _ch3_pll_rxsrc "REFCLK_EXT" -#define _ch3_mode "DISABLED" -#define _ch3_protocol "G8B10B" -#define _ch3_ldr "DISABLED" -#define _ch3_tx_data_rate "FULL" -#define _ch3_tx_data_width "8" -#define _ch3_tx_fifo "ENABLED" -#define _ch3_tx_ficlk_rate 125.0 -#define _ch3_rx_datarange "MED" -#define _ch3_rx_data_rate "FULL" -#define _ch3_rxrefclk_rate "125.0" -#define _ch3_rx_data_width "8" -#define _ch3_rx_fifo "ENABLED" -#define _ch3_rx_ficlk_rate 125.0 -#define _ch3_tdrv "0" -#define _ch3_tx_pre "DISABLED" -#define _ch3_rterm_tx "50" -#define _ch3_rx_eq "DISABLED" -#define _ch3_rterm_rx "50" -#define _ch3_rx_dcc "AC" -#define _los_threshold_mode3 "LOS_E" -#define _los_threshold_lo3 "2" -#define _ch3_tx_sb "DISABLED" -#define _ch3_tx_8b10b "ENABLED" -#define _ch3_rx_sb "DISABLED" -#define _ch3_ird "DISABLED" -#define _ch3_rx_8b10b "ENABLED" -#define _ch3_rxwa "ENABLED" -#define _ch3_ilsm "ENABLED" -#define _ch3_scomma "K28P157" -#define _ch3_comma_a "1100000101" -#define _ch3_comma_b "0011111010" -#define _ch3_comma_m "1111111100" -#define _ch3_ctc "DISABLED" -#define _ch3_cc_match_mode "1" -#define _ch3_byten "0000000000" -#define _ch3_byten1 "0000000000" -#define _ch3_byten2 "0100011100" -#define _ch3_byten3 "0100011100" -#define _ch3_cc_min_ipg "3" -#define _ch3_lbtype "DISABLED" -#define _ch3_teidle "DISABLED" -#define _ch3_rx_lol_port "INTERNAL" - -#define _datarange "MED" -#define _pll_txsrc "REFCLK_CORE" -#define _refclk_mult "10X" -#define _refclk_rate 125.0 -#define _pll_term "50" -#define _pll_dcc "AC" -#define _pll_lol_set "0" -#define _cchmark "9" -#define _cclmark "7" -#define _rst_gen "ENABLED" -#define _sci_ports "DISABLED" -#define _sci_int_port "DISABLED" -#define _refck2core "ENABLED" -#define _circuit_name serdes_gbe_0_intclock_8b_ecp3 -#define _lang vhdl - -#include -#include diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.readme b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.readme deleted file mode 100644 index a6c3168..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.readme +++ /dev/null @@ -1,137 +0,0 @@ - - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: Lattice Semiconductor Corporation - MODULE: serdes_gbe_0_intclock_8b_ecp3 - DESIGN: serdes_gbe_0_intclock_8b_ecp3 - FILENAME: serdes_gbe_0_intclock_8b_ecp3.readme - PROJECT: Unknown - VERSION: 2.0 - This file is auto generated by the ispLEVER - - -NOTE: This readme file has been provided to instantiate the interface -netlist. Since this template contains synthesis attributes for precision that -are crucial to the design flow, we recommend that you use this -template in your FPGA design. -entity chip is -port ( - --- Add your FPGA design top level I/Os here - - --- ASIC side pins for PCSD. These pins must exist for the --- PCS core. - refclkp : in std_logic; - refclkn : in std_logic; - hdinp_ch0 : in std_logic; - hdinn_ch0 : in std_logic; - hdinp_ch1 : in std_logic; - hdinn_ch1 : in std_logic; - hdinp_ch2 : in std_logic; - hdinn_ch2 : in std_logic; - hdinp_ch3 : in std_logic; - hdinn_ch3 : in std_logic; - - hdoutp_ch0 : out std_logic; - hdoutn_ch0 : out std_logic; - hdoutp_ch1 : out std_logic; - hdoutn_ch1 : out std_logic; - hdoutp_ch2 : out std_logic; - hdoutn_ch2 : out std_logic; - hdoutp_ch3 : out std_logic; - hdoutn_ch3 : out std_logic; - - -); -end chip; - -architecture chip_arch of chip is - --- This defines all the high-speed ports. You may have to remove --- some of them depending on your design. -attribute nopad : string; -attribute nopad of - refclkp, refclkn, - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1, - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3, - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1, - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true"; - - COMPONENT serdes_gbe_0_intclock_8b_ecp3 - PORT( - hdinp_ch0 : IN std_logic; - hdinn_ch0 : IN std_logic; - rxiclk_ch0 : IN std_logic; - txiclk_ch0 : IN std_logic; - fpga_rxrefclk_ch0 : IN std_logic; - txdata_ch0 : IN std_logic_vector(7 downto 0); - tx_k_ch0 : IN std_logic; - xmit_ch0 : IN std_logic; - tx_disp_correct_ch0 : IN std_logic; - sb_felb_ch0_c : IN std_logic; - sb_felb_rst_ch0_c : IN std_logic; - tx_pwrup_ch0_c : IN std_logic; - rx_pwrup_ch0_c : IN std_logic; - fpga_txrefclk : IN std_logic; - tx_serdes_rst_c : IN std_logic; - rst_n : IN std_logic; - serdes_rst_qd_c : IN std_logic; - hdoutp_ch0 : OUT std_logic; - hdoutn_ch0 : OUT std_logic; - rx_full_clk_ch0 : OUT std_logic; - rx_half_clk_ch0 : OUT std_logic; - tx_full_clk_ch0 : OUT std_logic; - tx_half_clk_ch0 : OUT std_logic; - rxdata_ch0 : OUT std_logic_vector(7 downto 0); - rx_k_ch0 : OUT std_logic; - rx_disp_err_ch0 : OUT std_logic; - rx_cv_err_ch0 : OUT std_logic; - rx_los_low_ch0_s : OUT std_logic; - lsm_status_ch0_s : OUT std_logic; - rx_cdr_lol_ch0_s : OUT std_logic; - tx_pll_lol_qd_s : OUT std_logic; - refclk2fpga : OUT std_logic - ); - END COMPONENT; - - - - uut: serdes_gbe_0_intclock_8b_ecp3 PORT MAP( - hdinp_ch0 => hdinp_ch0, - hdinn_ch0 => hdinn_ch0, - hdoutp_ch0 => hdoutp_ch0, - hdoutn_ch0 => hdoutn_ch0, - rxiclk_ch0 => rxiclk_ch0, - txiclk_ch0 => txiclk_ch0, - rx_full_clk_ch0 => rx_full_clk_ch0, - rx_half_clk_ch0 => rx_half_clk_ch0, - tx_full_clk_ch0 => tx_full_clk_ch0, - tx_half_clk_ch0 => tx_half_clk_ch0, - fpga_rxrefclk_ch0 => fpga_rxrefclk_ch0, - txdata_ch0 => txdata_ch0, - tx_k_ch0 => tx_k_ch0, - xmit_ch0 => xmit_ch0, - tx_disp_correct_ch0 => tx_disp_correct_ch0, - rxdata_ch0 => rxdata_ch0, - rx_k_ch0 => rx_k_ch0, - rx_disp_err_ch0 => rx_disp_err_ch0, - rx_cv_err_ch0 => rx_cv_err_ch0, - sb_felb_ch0_c => sb_felb_ch0_c, - sb_felb_rst_ch0_c => sb_felb_rst_ch0_c, - tx_pwrup_ch0_c => tx_pwrup_ch0_c, - rx_pwrup_ch0_c => rx_pwrup_ch0_c, - rx_los_low_ch0_s => rx_los_low_ch0_s, - lsm_status_ch0_s => lsm_status_ch0_s, - rx_cdr_lol_ch0_s => rx_cdr_lol_ch0_s, - fpga_txrefclk => fpga_txrefclk, - tx_serdes_rst_c => tx_serdes_rst_c, - tx_pll_lol_qd_s => tx_pll_lol_qd_s, - refclk2fpga => refclk2fpga, - rst_n => rst_n, - serdes_rst_qd_c => serdes_rst_qd_c - ); - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.sort b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.sort deleted file mode 100644 index 072d9c8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.sort +++ /dev/null @@ -1 +0,0 @@ -serdes_gbe_0_intclock_8b_ecp3.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.sym b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.sym deleted file mode 100644 index 2a4c04ffb6b26f786b7810eb1eced7c1ec3d93be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1506 zcmZvcKWG$b7>D2Yn++r@(eV@uQCW^H#6kuY6iIP~ZegLrp=V*vVRvTNtd6^%Gn2Sn zAwk4KLR5fZ;e!<6jVQD?vEt(JabCK4tT1 z$+J;T88V+bHk+D@y1kyfa~E}wZfvM)ssCx}>Y=SqBxx4(=oxAyFWK7GWDw}<$-L-6 zNc0A&rsp=TCWG#HTJ*^zylRu_v=wyPam$Q?*LE^d&TBT?KF-W|Ha~>iSNmAjye(}f zQ9BJxd@aJ;XHCj8Hr zXi}=)_(4&1F6z%`_HeLo?3_7wmS$l1REKe7Y}jL3HzF7%H(<;va^v)BkY>$nK9y}u zp^ZA-hUcjsyc>$P*voUsT$Od>35+4<6>SzX*uvAXMo^giCPAKMNP&f-ef^;G8cDYp~`8VIS=CO<@o0 z@jYP|?DFpuQ)Is9H9U``UVsZ)7S6#rJrmYoO)rFfuurdrJ+Ox!Rs2UMwWz)VYr;)Q diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.tft b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.tft deleted file mode 100644 index b9db080..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.tft +++ /dev/null @@ -1,100 +0,0 @@ -@set suppresnewline=on@ - -@comment --------------------------------------------------------------------- @ -@comment Template-drive TFI generator @ -@comment Template for TFI generation. @ -@comment --------------------------------------------------------------------- @ - -@set suppresnewline=off@ - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: %title% - MODULE: %module% - DESIGN: %module% - FILENAME: %filename% - PROJECT: %project% - VERSION: %ver% - This file is auto generated by the ispLEVER -@set suppresnewline=on@ - -@cr@ -@cr@ - -@set sigdelim=@ - -NOTE: This readme file has been provided to instantiate the interface@cr@ -netlist. Since this template contains synthesis attributes for precision that@cr@ -are crucial to the design flow, we recommend that you use this@cr@ -template in your FPGA design.@cr@ -entity chip is@cr@ -port (@cr@ -@cr@ --- Add your FPGA design top level I/Os here@cr@ -@cr@ -@cr@ --- ASIC side pins for PCSD. These pins must exist for the@cr@ --- PCS core.@cr@ - refclkp : in std_logic;@cr@ - refclkn : in std_logic;@cr@ - hdinp_ch0 : in std_logic;@cr@ - hdinn_ch0 : in std_logic;@cr@ - hdinp_ch1 : in std_logic;@cr@ - hdinn_ch1 : in std_logic;@cr@ - hdinp_ch2 : in std_logic;@cr@ - hdinn_ch2 : in std_logic;@cr@ - hdinp_ch3 : in std_logic;@cr@ - hdinn_ch3 : in std_logic;@cr@ -@cr@ - hdoutp_ch0 : out std_logic;@cr@ - hdoutn_ch0 : out std_logic;@cr@ - hdoutp_ch1 : out std_logic;@cr@ - hdoutn_ch1 : out std_logic;@cr@ - hdoutp_ch2 : out std_logic;@cr@ - hdoutn_ch2 : out std_logic;@cr@ - hdoutp_ch3 : out std_logic;@cr@ - hdoutn_ch3 : out std_logic;@cr@ -@cr@ -@cr@ -);@cr@ -end chip;@cr@ -@cr@ -architecture chip_arch of chip is@cr@ -@cr@ --- This defines all the high-speed ports. You may have to remove@cr@ --- some of them depending on your design.@cr@ -attribute nopad : string;@cr@ -attribute nopad of@cr@ - refclkp, refclkn,@cr@ - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1,@cr@ - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3,@cr@ - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1,@cr@ - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true";@cr@ - -@cr@ -@tab@COMPONENT %module% -@set sigdelim=@ -@cr@@tab@PORT( -@iterate@%iport%@cr@@tab@@tab@@iterator@ : IN @vhdl_typedec@;@enditerate@ -@ifhas oport=*@ @comment if the design has any output ports... @ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@;@enditerate@ - @set sigdelim=;@ - @iterate@%oport%@cr@@tab@@tab@@iterator@ : OUT @vhdl_typedec@@enditerate@ -@endif@ -@ifnhas oport=*@ @comment we need an "else in this language! @ - @set sigdelim=;@ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@@enditerate@ -@endif@ -@cr@@tab@@tab@);@cr@ -@tab@END COMPONENT;@cr@@cr@ -@comment Now do a signal declaration for each port @ - -@cr@@cr@ -@comment do the component instantiation @ -@set sigdelim=,@ -@tab@uut: %module% PORT MAP( -@iterate@%port% -@cr@@tab@@tab@@iterator@ => @iterator@@enditerate@ -@cr@@tab@);@cr@@cr@ -@set suppresnewline=off@ - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.txt b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.txt deleted file mode 100644 index 257807f..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.txt +++ /dev/null @@ -1,59 +0,0 @@ -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSD quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSD quad to the final design requirements. - -DEVICE_NAME "LFE3-150EA" -CH0_PROTOCOL "GIGE" -CH0_MODE "RXTX" -CH1_MODE "DISABLED" -CH2_MODE "DISABLED" -CH3_MODE "DISABLED" -CH0_CDR_SRC "REFCLK_CORE" -PLL_SRC "REFCLK_CORE" -TX_DATARATE_RANGE "MED" -CH0_RX_DATARATE_RANGE "MED" -REFCK_MULT "10X" -#REFCLK_RATE 125.0 -CH0_RX_DATA_RATE "FULL" -CH0_TX_DATA_RATE "FULL" -CH0_TX_DATA_WIDTH "8" -CH0_RX_DATA_WIDTH "8" -CH0_TX_FIFO "ENABLED" -CH0_RX_FIFO "ENABLED" -CH0_TDRV "0" -#CH0_TX_FICLK_RATE 125.0 -#CH0_RXREFCLK_RATE "125.0" -#CH0_RX_FICLK_RATE 125.0 -CH0_TX_PRE "DISABLED" -CH0_RTERM_TX "50" -CH0_RX_EQ "DISABLED" -CH0_RTERM_RX "50" -CH0_RX_DCC "AC" -CH0_LOS_THRESHOLD_LO "2" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH0_TX_SB "DISABLED" -CH0_RX_SB "DISABLED" -CH0_TX_8B10B "ENABLED" -CH0_RX_8B10B "ENABLED" -CH0_COMMA_A "1100000101" -CH0_COMMA_B "0011111010" -CH0_COMMA_M "1111111111" -CH0_RXWA "ENABLED" -CH0_ILSM "ENABLED" -CH0_CTC "DISABLED" -CH0_CC_MATCH3 "0110111100" -CH0_CC_MATCH4 "0001010000" -CH0_CC_MATCH_MODE "2" -CH0_CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -CH0_SSLB "DISABLED" -CH0_SPLBPORTS "DISABLED" -CH0_PCSLBPORTS "DISABLED" -INT_ALL "DISABLED" -QD_REFCK2CORE "ENABLED" - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.vhd b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.vhd deleted file mode 100644 index 9f273c8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.vhd +++ /dev/null @@ -1,3117 +0,0 @@ - - - ---synopsys translate_off - -library pcsd_work; -use pcsd_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSD is -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String --- CONFIG_FILE : String := "serdes_gbe_0_intclock_8b_ecp3.txt"; --- QUAD_MODE : String := "SINGLE"; --- CH0_CDR_SRC : String := "REFCLK_CORE"; --- CH1_CDR_SRC : String := "REFCLK_EXT"; --- CH2_CDR_SRC : String := "REFCLK_EXT"; --- CH3_CDR_SRC : String := "REFCLK_EXT"; --- PLL_SRC : String := "REFCLK_CORE" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); - -end PCSD; - -architecture PCSD_arch of PCSD is - - -component PCSD_sim -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String; - CH1_CDR_SRC : String; - CH2_CDR_SRC : String; - CH3_CDR_SRC : String; - PLL_SRC : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - -begin - -PCSD_sim_inst : PCSD_sim -generic map ( - CONFIG_FILE => CONFIG_FILE, - QUAD_MODE => QUAD_MODE, - CH0_CDR_SRC => CH0_CDR_SRC, - CH1_CDR_SRC => CH1_CDR_SRC, - CH2_CDR_SRC => CH2_CDR_SRC, - CH3_CDR_SRC => CH3_CDR_SRC, - PLL_SRC => PLL_SRC - ) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX_0 => FFC_CK_CORE_RX_0, - FFC_CK_CORE_RX_1 => FFC_CK_CORE_RX_1, - FFC_CK_CORE_RX_2 => FFC_CK_CORE_RX_2, - FFC_CK_CORE_RX_3 => FFC_CK_CORE_RX_3, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_SYNC_TOGGLE => FFC_SYNC_TOGGLE, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - FFC_RATE_MODE_RX_0 => FFC_RATE_MODE_RX_0, - FFC_RATE_MODE_RX_1 => FFC_RATE_MODE_RX_1, - FFC_RATE_MODE_RX_2 => FFC_RATE_MODE_RX_2, - FFC_RATE_MODE_RX_3 => FFC_RATE_MODE_RX_3, - FFC_RATE_MODE_TX_0 => FFC_RATE_MODE_TX_0, - FFC_RATE_MODE_TX_1 => FFC_RATE_MODE_TX_1, - FFC_RATE_MODE_TX_2 => FFC_RATE_MODE_TX_2, - FFC_RATE_MODE_TX_3 => FFC_RATE_MODE_TX_3, - FFC_DIV11_MODE_RX_0 => FFC_DIV11_MODE_RX_0, - FFC_DIV11_MODE_RX_1 => FFC_DIV11_MODE_RX_1, - FFC_DIV11_MODE_RX_2 => FFC_DIV11_MODE_RX_2, - FFC_DIV11_MODE_RX_3 => FFC_DIV11_MODE_RX_3, - FFC_DIV11_MODE_TX_0 => FFC_DIV11_MODE_TX_0, - FFC_DIV11_MODE_TX_1 => FFC_DIV11_MODE_TX_1, - FFC_DIV11_MODE_TX_2 => FFC_DIV11_MODE_TX_2, - FFC_DIV11_MODE_TX_3 => FFC_DIV11_MODE_TX_3, - LDR_CORE2TX_0 => LDR_CORE2TX_0, - LDR_CORE2TX_1 => LDR_CORE2TX_1, - LDR_CORE2TX_2 => LDR_CORE2TX_2, - LDR_CORE2TX_3 => LDR_CORE2TX_3, - FFC_LDR_CORE2TX_EN_0 => FFC_LDR_CORE2TX_EN_0, - FFC_LDR_CORE2TX_EN_1 => FFC_LDR_CORE2TX_EN_1, - FFC_LDR_CORE2TX_EN_2 => FFC_LDR_CORE2TX_EN_2, - FFC_LDR_CORE2TX_EN_3 => FFC_LDR_CORE2TX_EN_3, - PCIE_POWERDOWN_0_0 => PCIE_POWERDOWN_0_0, - PCIE_POWERDOWN_0_1 => PCIE_POWERDOWN_0_1, - PCIE_POWERDOWN_1_0 => PCIE_POWERDOWN_1_0, - PCIE_POWERDOWN_1_1 => PCIE_POWERDOWN_1_1, - PCIE_POWERDOWN_2_0 => PCIE_POWERDOWN_2_0, - PCIE_POWERDOWN_2_1 => PCIE_POWERDOWN_2_1, - PCIE_POWERDOWN_3_0 => PCIE_POWERDOWN_3_0, - PCIE_POWERDOWN_3_1 => PCIE_POWERDOWN_3_1, - PCIE_RXPOLARITY_0 => PCIE_RXPOLARITY_0, - PCIE_RXPOLARITY_1 => PCIE_RXPOLARITY_1, - PCIE_RXPOLARITY_2 => PCIE_RXPOLARITY_2, - PCIE_RXPOLARITY_3 => PCIE_RXPOLARITY_3, - PCIE_TXCOMPLIANCE_0 => PCIE_TXCOMPLIANCE_0, - PCIE_TXCOMPLIANCE_1 => PCIE_TXCOMPLIANCE_1, - PCIE_TXCOMPLIANCE_2 => PCIE_TXCOMPLIANCE_2, - PCIE_TXCOMPLIANCE_3 => PCIE_TXCOMPLIANCE_3, - PCIE_TXDETRX_PR2TLB_0 => PCIE_TXDETRX_PR2TLB_0, - PCIE_TXDETRX_PR2TLB_1 => PCIE_TXDETRX_PR2TLB_1, - PCIE_TXDETRX_PR2TLB_2 => PCIE_TXDETRX_PR2TLB_2, - PCIE_TXDETRX_PR2TLB_3 => PCIE_TXDETRX_PR2TLB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_TX_F_CLK_0 => FF_TX_F_CLK_0, - FF_TX_F_CLK_1 => FF_TX_F_CLK_1, - FF_TX_F_CLK_2 => FF_TX_F_CLK_2, - FF_TX_F_CLK_3 => FF_TX_F_CLK_3, - FF_TX_H_CLK_0 => FF_TX_H_CLK_0, - FF_TX_H_CLK_1 => FF_TX_H_CLK_1, - FF_TX_H_CLK_2 => FF_TX_H_CLK_2, - FF_TX_H_CLK_3 => FF_TX_H_CLK_3, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_CDR_TRAIN_DONE_0 => FFS_CDR_TRAIN_DONE_0, - FFS_CDR_TRAIN_DONE_1 => FFS_CDR_TRAIN_DONE_1, - FFS_CDR_TRAIN_DONE_2 => FFS_CDR_TRAIN_DONE_2, - FFS_CDR_TRAIN_DONE_3 => FFS_CDR_TRAIN_DONE_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RLOS_HI_0 => FFS_RLOS_HI_0, - FFS_RLOS_HI_1 => FFS_RLOS_HI_1, - FFS_RLOS_HI_2 => FFS_RLOS_HI_2, - FFS_RLOS_HI_3 => FFS_RLOS_HI_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - PCIE_PHYSTATUS_0 => PCIE_PHYSTATUS_0, - PCIE_PHYSTATUS_1 => PCIE_PHYSTATUS_1, - PCIE_PHYSTATUS_2 => PCIE_PHYSTATUS_2, - PCIE_PHYSTATUS_3 => PCIE_PHYSTATUS_3, - PCIE_RXVALID_0 => PCIE_RXVALID_0, - PCIE_RXVALID_1 => PCIE_RXVALID_1, - PCIE_RXVALID_2 => PCIE_RXVALID_2, - PCIE_RXVALID_3 => PCIE_RXVALID_3, - FFS_SKP_ADDED_0 => FFS_SKP_ADDED_0, - FFS_SKP_ADDED_1 => FFS_SKP_ADDED_1, - FFS_SKP_ADDED_2 => FFS_SKP_ADDED_2, - FFS_SKP_ADDED_3 => FFS_SKP_ADDED_3, - FFS_SKP_DELETED_0 => FFS_SKP_DELETED_0, - FFS_SKP_DELETED_1 => FFS_SKP_DELETED_1, - FFS_SKP_DELETED_2 => FFS_SKP_DELETED_2, - FFS_SKP_DELETED_3 => FFS_SKP_DELETED_3, - LDR_RX2CORE_0 => LDR_RX2CORE_0, - LDR_RX2CORE_1 => LDR_RX2CORE_1, - LDR_RX2CORE_2 => LDR_RX2CORE_2, - LDR_RX2CORE_3 => LDR_RX2CORE_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7, - REFCLK_FROM_NQ => REFCLK_FROM_NQ, - REFCLK_TO_NQ => REFCLK_TO_NQ - ); - -end PCSD_arch; - ---synopsys translate_on - ---THIS MODULE IS INSTANTIATED PER RX CHANNEL ---Reset Sequence Generator -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; -use ieee.std_logic_unsigned.all; -use ieee.numeric_std.all; - -entity rx_reset_sm is -generic (count_index: integer :=18); -port ( - rst_n : in std_logic; - refclkdiv2 : in std_logic; - tx_pll_lol_qd_s : in std_logic; - rx_serdes_rst_ch_c: out std_logic; - rx_cdr_lol_ch_s : in std_logic; - rx_los_low_ch_s : in std_logic; - rx_pcs_rst_ch_c : out std_logic -); -end rx_reset_sm ; - -architecture rx_reset_sm_arch of rx_reset_sm is - -type statetype is (WAIT_FOR_PLOL, RX_SERDES_RESET, WAIT_FOR_TIMER1, CHECK_LOL_LOS, WAIT_FOR_TIMER2, NORMAL); - -signal cs: statetype; -- current state of lsm -signal ns: statetype; -- next state of lsm - -signal tx_pll_lol_qd_s_int: std_logic; -signal rx_los_low_int: std_logic; -signal plol_los_int: std_logic; -signal rx_lol_los : std_logic; -signal rx_lol_los_int: std_logic; -signal rx_lol_los_del: std_logic; -signal rx_pcs_rst_ch_c_int: std_logic; -signal rx_serdes_rst_ch_c_int: std_logic; - -signal reset_timer1: std_logic; -signal reset_timer2: std_logic; - -signal counter1: std_logic_vector(1 downto 0); -signal TIMER1: std_logic; - -signal counter2: std_logic_vector(18 downto 0); -signal TIMER2 : std_logic; - -begin - -rx_lol_los <= rx_cdr_lol_ch_s or rx_los_low_ch_s ; - -process(refclkdiv2,rst_n) -begin - if rising_edge(refclkdiv2) then - if rst_n = '0' then - cs <= WAIT_FOR_PLOL; - rx_lol_los_int <= '1'; - rx_lol_los_del <= '1'; - tx_pll_lol_qd_s_int <= '1'; - rx_pcs_rst_ch_c <= '1'; - rx_serdes_rst_ch_c <= '0'; - rx_los_low_int <= '1'; - else - cs <= ns; - rx_lol_los_del <= rx_lol_los; - rx_lol_los_int <= rx_lol_los_del; - tx_pll_lol_qd_s_int <= tx_pll_lol_qd_s; - rx_pcs_rst_ch_c <= rx_pcs_rst_ch_c_int; - rx_serdes_rst_ch_c <= rx_serdes_rst_ch_c_int; - rx_los_low_int <= rx_los_low_ch_s; - end if; - end if; -end process; - ---TIMER1 = 3NS; ---Fastest REFCLK = 312 MHz, or 3ns. We need 1 REFCLK cycles or 2 REFCLKDIV2 cycles ---A 1 bit counter counts 2 cycles, so a 2 bit ([1:0]) counter will do if we set TIMER1 = bit[1] - -process(refclkdiv2, reset_timer1) -begin - if rising_edge(refclkdiv2) then - if reset_timer1 = '1' then - counter1 <= "00"; - TIMER1 <= '0'; - else - if counter1(1) = '1' then - TIMER1 <='1'; - else - TIMER1 <='0'; - counter1 <= counter1 + 1 ; - end if; - end if; - end if; -end process; - ---TIMER2 = 400,000 Refclk cycles or 200,000 REFCLKDIV2 cycles ---An 18 bit counter ([17:0]) counts 262144 cycles, so a 19 bit ([18:0]) counter will do if we set TIMER2 = bit[18] - -process(refclkdiv2, reset_timer2) -begin - if rising_edge(refclkdiv2) then - if reset_timer2 = '1' then - counter2 <= "0000000000000000000"; - TIMER2 <= '0'; - else - if counter2(count_index) = '1' then - TIMER2 <='1'; - else - TIMER2 <='0'; - counter2 <= counter2 + 1 ; - end if; - end if; - end if; -end process; - - -process(cs, tx_pll_lol_qd_s_int, rx_los_low_int, TIMER1, rx_lol_los_int, TIMER2) -begin - reset_timer1 <= '0'; - reset_timer2 <= '0'; - - case cs is - when WAIT_FOR_PLOL => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '0'; - if (tx_pll_lol_qd_s_int = '1' or rx_los_low_int = '1') then --Also make sure A Signal - ns <= WAIT_FOR_PLOL; --is Present prior to moving to the next - else - ns <= RX_SERDES_RESET; - end if; - - when RX_SERDES_RESET => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '1'; - reset_timer1 <= '1'; - ns <= WAIT_FOR_TIMER1; - - - when WAIT_FOR_TIMER1 => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '1'; - if TIMER1 = '1' then - ns <= CHECK_LOL_LOS; - else - ns <= WAIT_FOR_TIMER1; - end if; - - when CHECK_LOL_LOS => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '0'; - reset_timer2 <= '1'; - ns <= WAIT_FOR_TIMER2; - - when WAIT_FOR_TIMER2 => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '0'; - if rx_lol_los_int = rx_lol_los_del then --NO RISING OR FALLING EDGES - if TIMER2 = '1' then - if rx_lol_los_int = '1' then - ns <= WAIT_FOR_PLOL; - else - ns <= NORMAL; - end if; - else - ns <= WAIT_FOR_TIMER2; - end if; - else - ns <= CHECK_LOL_LOS; --RESET TIMER2 - end if; - - when NORMAL => - rx_pcs_rst_ch_c_int <= '0'; - rx_serdes_rst_ch_c_int <= '0'; - if rx_lol_los_int = '1' then - ns <= WAIT_FOR_PLOL; - else - ns <= NORMAL; - end if; - - when others => - ns <= WAIT_FOR_PLOL; - - end case; - -end process; - - -end rx_reset_sm_arch; - ---THIS MODULE IS INSTANTIATED PER TX QUAD ---TX Reset Sequence state machine-- -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; -use ieee.std_logic_unsigned.all; -use ieee.numeric_std.all; - -entity tx_reset_sm is -generic (count_index: integer :=18); -port ( - rst_n : in std_logic; - refclkdiv2 : in std_logic; - tx_pll_lol_qd_s : in std_logic; - rst_qd_c : out std_logic; - tx_pcs_rst_ch_c : out std_logic - ); -end tx_reset_sm; - -architecture tx_reset_sm_arch of tx_reset_sm is - -type statetype is (QUAD_RESET, WAIT_FOR_TIMER1, CHECK_PLOL, WAIT_FOR_TIMER2, NORMAL); - -signal cs: statetype; -- current state of lsm -signal ns: statetype; -- next state of lsm - -signal tx_pll_lol_qd_s_int : std_logic; -signal tx_pcs_rst_ch_c_int : std_logic_vector(3 downto 0); -signal rst_qd_c_int : std_logic; - -signal reset_timer1: std_logic; -signal reset_timer2: std_logic; - -signal counter1: std_logic_vector(2 downto 0); -signal TIMER1: std_logic; - -signal counter2: std_logic_vector(18 downto 0); -signal TIMER2: std_logic; - -begin - -process (refclkdiv2, rst_n) -begin - if rst_n = '0' then - cs <= QUAD_RESET; - tx_pll_lol_qd_s_int <= '1'; - tx_pcs_rst_ch_c <= '1'; - rst_qd_c <= '1'; - else if rising_edge(refclkdiv2) then - cs <= ns; - tx_pll_lol_qd_s_int <= tx_pll_lol_qd_s; - tx_pcs_rst_ch_c <= tx_pcs_rst_ch_c_int(0); - rst_qd_c <= rst_qd_c_int; - end if; - end if; -end process; ---TIMER1 = 20ns; ---Fastest REFLCK =312 MHZ, or 3 ns. We need 8 REFCLK cycles or 4 REFCLKDIV2 cycles --- A 2 bit counter ([1:0]) counts 4 cycles, so a 3 bit ([2:0]) counter will do if we set TIMER1 = bit[2] - - -process (refclkdiv2, reset_timer1) -begin - if rising_edge(refclkdiv2) then - if reset_timer1 = '1' then - counter1 <= "000"; - TIMER1 <= '0'; - else - if counter1(2) = '1' then - TIMER1 <= '1'; - else - TIMER1 <='0'; - counter1 <= counter1 + 1 ; - end if; - end if; - end if; -end process; - - ---TIMER2 = 1,400,000 UI; ---WORST CASE CYCLES is with smallest multipier factor. --- This would be with X8 clock multiplier in DIV2 mode --- IN this casse, 1 UI = 2/8 REFCLK CYCLES = 1/8 REFCLKDIV2 CYCLES --- SO 1,400,000 UI =1,400,000/8 = 175,000 REFCLKDIV2 CYCLES --- An 18 bit counter ([17:0]) counts 262144 cycles, so a 19 bit ([18:0]) counter will do if we set TIMER2 = bit[18] - - -process(refclkdiv2, reset_timer2) -begin - if rising_edge(refclkdiv2) then - if reset_timer2 = '1' then - counter2 <= "0000000000000000000"; - TIMER2 <= '0'; - else - if counter2(count_index) = '1' then - TIMER2 <='1'; - else - TIMER2 <='0'; - counter2 <= counter2 + 1 ; - end if; - end if; - end if; -end process; - -process(cs, TIMER1, TIMER2, tx_pll_lol_qd_s_int) -begin - - reset_timer1 <= '0'; - reset_timer2 <= '0'; - - case cs is - - when QUAD_RESET => - tx_pcs_rst_ch_c_int <= "1111"; - rst_qd_c_int <= '1'; - reset_timer1 <= '1'; - ns <= WAIT_FOR_TIMER1; - - when WAIT_FOR_TIMER1 => - tx_pcs_rst_ch_c_int <= "1111"; - rst_qd_c_int <= '1'; - if TIMER1 = '1' then - ns <= CHECK_PLOL; - else - ns <= WAIT_FOR_TIMER1; - end if; - - when CHECK_PLOL => - tx_pcs_rst_ch_c_int <= "1111"; - rst_qd_c_int <= '0'; - reset_timer2 <= '1'; - ns <= WAIT_FOR_TIMER2; - - when WAIT_FOR_TIMER2 => - tx_pcs_rst_ch_c_int <= "1111"; - rst_qd_c_int <= '0'; - if TIMER2 = '1' then - if tx_pll_lol_qd_s_int = '1' then - ns <= QUAD_RESET; - else - ns <= NORMAL; - end if; - else - ns <= WAIT_FOR_TIMER2; - end if; - - when NORMAL => - tx_pcs_rst_ch_c_int <= "0000"; - rst_qd_c_int <= '0'; - if tx_pll_lol_qd_s_int = '1' then - ns <= QUAD_RESET; - else - ns <= NORMAL; - end if; - - when others => - ns <= QUAD_RESET; - - end case; - -end process; - -end tx_reset_sm_arch; - - ---synopsys translate_off -library ECP3; -use ECP3.components.all; ---synopsys translate_on - - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_gbe_0_intclock_8b_ecp3 is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_intclock_8b_ecp3.txt"); - port ( ------------------- --- CH0 -- - hdinp_ch0, hdinn_ch0 : in std_logic; - hdoutp_ch0, hdoutn_ch0 : out std_logic; - rxiclk_ch0 : in std_logic; - txiclk_ch0 : in std_logic; - rx_full_clk_ch0 : out std_logic; - rx_half_clk_ch0 : out std_logic; - tx_full_clk_ch0 : out std_logic; - tx_half_clk_ch0 : out std_logic; - fpga_rxrefclk_ch0 : in std_logic; - txdata_ch0 : in std_logic_vector (7 downto 0); - tx_k_ch0 : in std_logic; - xmit_ch0 : in std_logic; - tx_disp_correct_ch0 : in std_logic; - rxdata_ch0 : out std_logic_vector (7 downto 0); - rx_k_ch0 : out std_logic; - rx_disp_err_ch0 : out std_logic; - rx_cv_err_ch0 : out std_logic; - sb_felb_ch0_c : in std_logic; - sb_felb_rst_ch0_c : in std_logic; - tx_pwrup_ch0_c : in std_logic; - rx_pwrup_ch0_c : in std_logic; - rx_los_low_ch0_s : out std_logic; - lsm_status_ch0_s : out std_logic; - rx_cdr_lol_ch0_s : out std_logic; --- CH1 -- --- CH2 -- --- CH3 -- ----- Miscillaneous ports - fpga_txrefclk : in std_logic; - tx_serdes_rst_c : in std_logic; - tx_pll_lol_qd_s : out std_logic; - refclk2fpga : out std_logic; - rst_n : in std_logic; - serdes_rst_qd_c : in std_logic); - -end serdes_gbe_0_intclock_8b_ecp3; - - -architecture serdes_gbe_0_intclock_8b_ecp3_arch of serdes_gbe_0_intclock_8b_ecp3 is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; - -component rx_reset_sm -generic (count_index: integer :=18); -port ( - rst_n : in std_logic; - refclkdiv2 : in std_logic; - tx_pll_lol_qd_s : in std_logic; - rx_serdes_rst_ch_c: out std_logic; - rx_cdr_lol_ch_s : in std_logic; - rx_los_low_ch_s : in std_logic; - rx_pcs_rst_ch_c : out std_logic -); -end component ; - -component tx_reset_sm -generic (count_index: integer :=18); -port ( - rst_n : in std_logic; - refclkdiv2 : in std_logic; - tx_pll_lol_qd_s : in std_logic; - rst_qd_c : out std_logic; - tx_pcs_rst_ch_c : out std_logic - ); -end component; - -component PCSD ---synopsys translate_off -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSD_INST : label is USER_CONFIG_FILE; - attribute QUAD_MODE: string; - attribute QUAD_MODE of PCSD_INST : label is "SINGLE"; - attribute PLL_SRC: string; - attribute PLL_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute CH0_CDR_SRC: string; - attribute CH0_CDR_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1 of PCSD_INST : label is "31.2500"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_REFCK2CORE: string; - attribute FREQUENCY_PIN_REFCK2CORE of PCSD_INST : label is "125.0"; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSD : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal refclk_from_nq : std_logic := '0'; -signal fpsc_vlo : std_logic := '0'; -signal fpsc_vhi : std_logic := '1'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); -signal tx_full_clk_ch0_sig : std_logic; - -signal refclk2fpga_sig : std_logic; -signal tx_pll_lol_qd_sig : std_logic; -signal rx_los_low_ch0_sig : std_logic; -signal rx_los_low_ch1_sig : std_logic; -signal rx_los_low_ch2_sig : std_logic; -signal rx_los_low_ch3_sig : std_logic; -signal rx_cdr_lol_ch0_sig : std_logic; -signal rx_cdr_lol_ch1_sig : std_logic; -signal rx_cdr_lol_ch2_sig : std_logic; -signal rx_cdr_lol_ch3_sig : std_logic; - -signal rx_serdes_rst_ch0_c : std_logic; -signal rx_pcs_rst_ch0_c : std_logic; - --- reset sequence for rx -signal refclkdiv2_rx_ch0 : std_logic; - -signal refclkdiv2_tx_ch : std_logic; -signal tx_pcs_rst_ch_c : std_logic; -signal rst_qd_c : std_logic; - - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); -vhi_inst : VHI port map(Z => fpsc_vhi); - - refclk2fpga <= refclk2fpga_sig; - rx_los_low_ch0_s <= rx_los_low_ch0_sig; - rx_cdr_lol_ch0_s <= rx_cdr_lol_ch0_sig; - tx_pll_lol_qd_s <= tx_pll_lol_qd_sig; - tx_full_clk_ch0 <= tx_full_clk_ch0_sig; - --- pcs_quad instance -PCSD_INST : PCSD ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE, - QUAD_MODE => "SINGLE", - CH0_CDR_SRC => "REFCLK_CORE", - PLL_SRC => "REFCLK_CORE" - ) ---synopsys translate_on -port map ( - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - ------ CH0 ----- - HDOUTP0 => hdoutp_ch0, - HDOUTN0 => hdoutn_ch0, - HDINP0 => hdinp_ch0, - HDINN0 => hdinn_ch0, - PCIE_TXDETRX_PR2TLB_0 => fpsc_vlo, - PCIE_TXCOMPLIANCE_0 => fpsc_vlo, - PCIE_RXPOLARITY_0 => fpsc_vlo, - PCIE_POWERDOWN_0_0 => fpsc_vlo, - PCIE_POWERDOWN_0_1 => fpsc_vlo, - PCIE_RXVALID_0 => open, - PCIE_PHYSTATUS_0 => open, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => rxiclk_ch0, - FF_TXI_CLK_0 => txiclk_ch0, - FF_EBRD_CLK_0 => fpsc_vlo, - FF_RX_F_CLK_0 => rx_full_clk_ch0, - FF_RX_H_CLK_0 => rx_half_clk_ch0, - FF_TX_F_CLK_0 => tx_full_clk_ch0_sig, - FF_TX_H_CLK_0 => tx_half_clk_ch0, - FFC_CK_CORE_RX_0 => fpga_rxrefclk_ch0, - FF_TX_D_0_0 => txdata_ch0(0), - FF_TX_D_0_1 => txdata_ch0(1), - FF_TX_D_0_2 => txdata_ch0(2), - FF_TX_D_0_3 => txdata_ch0(3), - FF_TX_D_0_4 => txdata_ch0(4), - FF_TX_D_0_5 => txdata_ch0(5), - FF_TX_D_0_6 => txdata_ch0(6), - FF_TX_D_0_7 => txdata_ch0(7), - FF_TX_D_0_8 => tx_k_ch0, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => xmit_ch0, - FF_TX_D_0_11 => tx_disp_correct_ch0, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => rxdata_ch0(0), - FF_RX_D_0_1 => rxdata_ch0(1), - FF_RX_D_0_2 => rxdata_ch0(2), - FF_RX_D_0_3 => rxdata_ch0(3), - FF_RX_D_0_4 => rxdata_ch0(4), - FF_RX_D_0_5 => rxdata_ch0(5), - FF_RX_D_0_6 => rxdata_ch0(6), - FF_RX_D_0_7 => rxdata_ch0(7), - FF_RX_D_0_8 => rx_k_ch0, - FF_RX_D_0_9 => rx_disp_err_ch0, - FF_RX_D_0_10 => rx_cv_err_ch0, - FF_RX_D_0_11 => open, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - - FFC_RRST_0 => rx_serdes_rst_ch0_c, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => sb_felb_ch0_c, - FFC_PFIFO_CLR_0 => sb_felb_rst_ch0_c, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => tx_pcs_rst_ch_c, - FFC_TXPWDNB_0 => tx_pwrup_ch0_c, - FFC_LANE_RX_RST_0 => rx_pcs_rst_ch0_c, - FFC_RXPWDNB_0 => rx_pwrup_ch0_c, - FFS_RLOS_LO_0 => rx_los_low_ch0_sig, - FFS_RLOS_HI_0 => open, - FFS_PCIE_CON_0 => open, - FFS_PCIE_DONE_0 => open, - FFS_LS_SYNC_STATUS_0 => lsm_status_ch0_s, - FFS_CC_OVERRUN_0 => open, - FFS_CC_UNDERRUN_0 => open, - FFS_SKP_ADDED_0 => open, - FFS_SKP_DELETED_0 => open, - FFS_RLOL_0 => rx_cdr_lol_ch0_sig, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - LDR_CORE2TX_0 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_0 => fpsc_vlo, - LDR_RX2CORE_0 => open, - FFS_CDR_TRAIN_DONE_0 => open, - FFC_DIV11_MODE_TX_0 => fpsc_vlo, - FFC_RATE_MODE_TX_0 => fpsc_vlo, - FFC_DIV11_MODE_RX_0 => fpsc_vlo, - FFC_RATE_MODE_RX_0 => fpsc_vlo, - ------ CH1 ----- - HDOUTP1 => open, - HDOUTN1 => open, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_1 => fpsc_vlo, - PCIE_TXCOMPLIANCE_1 => fpsc_vlo, - PCIE_RXPOLARITY_1 => fpsc_vlo, - PCIE_POWERDOWN_1_0 => fpsc_vlo, - PCIE_POWERDOWN_1_1 => fpsc_vlo, - PCIE_RXVALID_1 => open, - PCIE_PHYSTATUS_1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_TX_F_CLK_1 => open, - FF_TX_H_CLK_1 => open, - FFC_CK_CORE_RX_1 => fpsc_vlo, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_RLOS_HI_1 => open, - FFS_PCIE_CON_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_SKP_ADDED_1 => open, - FFS_SKP_DELETED_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - LDR_CORE2TX_1 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_1 => fpsc_vlo, - LDR_RX2CORE_1 => open, - FFS_CDR_TRAIN_DONE_1 => open, - FFC_DIV11_MODE_TX_1 => fpsc_vlo, - FFC_RATE_MODE_TX_1 => fpsc_vlo, - FFC_DIV11_MODE_RX_1 => fpsc_vlo, - FFC_RATE_MODE_RX_1 => fpsc_vlo, - ------ CH2 ----- - HDOUTP2 => open, - HDOUTN2 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_2 => fpsc_vlo, - PCIE_TXCOMPLIANCE_2 => fpsc_vlo, - PCIE_RXPOLARITY_2 => fpsc_vlo, - PCIE_POWERDOWN_2_0 => fpsc_vlo, - PCIE_POWERDOWN_2_1 => fpsc_vlo, - PCIE_RXVALID_2 => open, - PCIE_PHYSTATUS_2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_TX_F_CLK_2 => open, - FF_TX_H_CLK_2 => open, - FFC_CK_CORE_RX_2 => fpsc_vlo, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_RLOS_HI_2 => open, - FFS_PCIE_CON_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_SKP_ADDED_2 => open, - FFS_SKP_DELETED_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - LDR_CORE2TX_2 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_2 => fpsc_vlo, - LDR_RX2CORE_2 => open, - FFS_CDR_TRAIN_DONE_2 => open, - FFC_DIV11_MODE_TX_2 => fpsc_vlo, - FFC_RATE_MODE_TX_2 => fpsc_vlo, - FFC_DIV11_MODE_RX_2 => fpsc_vlo, - FFC_RATE_MODE_RX_2 => fpsc_vlo, - ------ CH3 ----- - HDOUTP3 => open, - HDOUTN3 => open, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_3 => fpsc_vlo, - PCIE_TXCOMPLIANCE_3 => fpsc_vlo, - PCIE_RXPOLARITY_3 => fpsc_vlo, - PCIE_POWERDOWN_3_0 => fpsc_vlo, - PCIE_POWERDOWN_3_1 => fpsc_vlo, - PCIE_RXVALID_3 => open, - PCIE_PHYSTATUS_3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_TX_F_CLK_3 => open, - FF_TX_H_CLK_3 => open, - FFC_CK_CORE_RX_3 => fpsc_vlo, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_RLOS_HI_3 => open, - FFS_PCIE_CON_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_SKP_ADDED_3 => open, - FFS_SKP_DELETED_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - LDR_CORE2TX_3 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_3 => fpsc_vlo, - LDR_RX2CORE_3 => open, - FFS_CDR_TRAIN_DONE_3 => open, - FFC_DIV11_MODE_TX_3 => fpsc_vlo, - FFC_RATE_MODE_TX_3 => fpsc_vlo, - FFC_DIV11_MODE_RX_3 => fpsc_vlo, - FFC_RATE_MODE_RX_3 => fpsc_vlo, - ------ Auxilliary ---- - SCIWDATA7 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA0 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIRDATA7 => open, - SCIRDATA6 => open, - SCIRDATA5 => open, - SCIRDATA4 => open, - SCIRDATA3 => open, - SCIRDATA2 => open, - SCIRDATA1 => open, - SCIRDATA0 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_CK_CORE_TX => fpga_txrefclk, - FFC_MACRO_RST => serdes_rst_qd_c, - FFC_QUAD_RST => rst_qd_c, - FFC_TRST => tx_serdes_rst_c, - FFS_PLOL => tx_pll_lol_qd_sig, - FFC_SYNC_TOGGLE => fpsc_vlo, - REFCK2CORE => refclk2fpga_sig, - CIN0 => fpsc_vlo, - CIN1 => fpsc_vlo, - CIN2 => fpsc_vlo, - CIN3 => fpsc_vlo, - CIN4 => fpsc_vlo, - CIN5 => fpsc_vlo, - CIN6 => fpsc_vlo, - CIN7 => fpsc_vlo, - CIN8 => fpsc_vlo, - CIN9 => fpsc_vlo, - CIN10 => fpsc_vlo, - CIN11 => fpsc_vlo, - COUT0 => open, - COUT1 => open, - COUT2 => open, - COUT3 => open, - COUT4 => open, - COUT5 => open, - COUT6 => open, - COUT7 => open, - COUT8 => open, - COUT9 => open, - COUT10 => open, - COUT11 => open, - COUT12 => open, - COUT13 => open, - COUT14 => open, - COUT15 => open, - COUT16 => open, - COUT17 => open, - COUT18 => open, - COUT19 => open, - REFCLK_FROM_NQ => refclk_from_nq, - REFCLK_TO_NQ => open); - --- reset sequence for rx - - P1 : PROCESS(fpga_rxrefclk_ch0, rst_n) - BEGIN - IF (rst_n = '0') THEN - refclkdiv2_rx_ch0 <= '0'; - ELSIF (fpga_rxrefclk_ch0'event and fpga_rxrefclk_ch0 = '1') THEN - refclkdiv2_rx_ch0 <= not refclkdiv2_rx_ch0; - END IF; - END PROCESS; - -rx_reset_sm_ch0 : rx_reset_sm ---synopsys translate_off - generic map (count_index => 4) ---synopsys translate_on -port map ( - refclkdiv2 => refclkdiv2_rx_ch0, - rst_n => rst_n, - rx_cdr_lol_ch_s => rx_cdr_lol_ch0_sig, - rx_los_low_ch_s => rx_los_low_ch0_sig, - tx_pll_lol_qd_s => tx_pll_lol_qd_sig, - rx_pcs_rst_ch_c => rx_pcs_rst_ch0_c, - rx_serdes_rst_ch_c => rx_serdes_rst_ch0_c); - - - - - - P5 : PROCESS(fpga_txrefclk, rst_n) - BEGIN - IF (rst_n = '0') THEN - refclkdiv2_tx_ch <= '0'; - ELSIF (fpga_txrefclk'event and fpga_txrefclk = '1') THEN - refclkdiv2_tx_ch <= not refclkdiv2_tx_ch; - END IF; - END PROCESS; - --- reset sequence for tx -tx_reset_sm_ch : tx_reset_sm ---synopsys translate_off - generic map (count_index => 4) ---synopsys translate_on -port map ( - rst_n => rst_n, - refclkdiv2 => refclkdiv2_tx_ch, - tx_pll_lol_qd_s => tx_pll_lol_qd_sig, - rst_qd_c => rst_qd_c, - tx_pcs_rst_ch_c => tx_pcs_rst_ch_c - ); - - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on -end serdes_gbe_0_intclock_8b_ecp3_arch ; diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.vhd~ b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.vhd~ deleted file mode 100644 index 58a8008..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3.vhd~ +++ /dev/null @@ -1,3113 +0,0 @@ - - - ---synopsys translate_off - -library pcsd_work; -use pcsd_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSD is -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String --- CONFIG_FILE : String := "serdes_gbe_0_intclock_8b_ecp3.txt"; --- QUAD_MODE : String := "SINGLE"; --- CH0_CDR_SRC : String := "REFCLK_CORE"; --- CH1_CDR_SRC : String := "REFCLK_EXT"; --- CH2_CDR_SRC : String := "REFCLK_EXT"; --- CH3_CDR_SRC : String := "REFCLK_EXT"; --- PLL_SRC : String := "REFCLK_CORE" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); - -end PCSD; - -architecture PCSD_arch of PCSD is - - -component PCSD_sim -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String; - CH1_CDR_SRC : String; - CH2_CDR_SRC : String; - CH3_CDR_SRC : String; - PLL_SRC : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - -begin - -PCSD_sim_inst : PCSD_sim -generic map ( - CONFIG_FILE => CONFIG_FILE, - QUAD_MODE => QUAD_MODE, - CH0_CDR_SRC => CH0_CDR_SRC, - CH1_CDR_SRC => CH1_CDR_SRC, - CH2_CDR_SRC => CH2_CDR_SRC, - CH3_CDR_SRC => CH3_CDR_SRC, - PLL_SRC => PLL_SRC - ) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX_0 => FFC_CK_CORE_RX_0, - FFC_CK_CORE_RX_1 => FFC_CK_CORE_RX_1, - FFC_CK_CORE_RX_2 => FFC_CK_CORE_RX_2, - FFC_CK_CORE_RX_3 => FFC_CK_CORE_RX_3, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_SYNC_TOGGLE => FFC_SYNC_TOGGLE, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - FFC_RATE_MODE_RX_0 => FFC_RATE_MODE_RX_0, - FFC_RATE_MODE_RX_1 => FFC_RATE_MODE_RX_1, - FFC_RATE_MODE_RX_2 => FFC_RATE_MODE_RX_2, - FFC_RATE_MODE_RX_3 => FFC_RATE_MODE_RX_3, - FFC_RATE_MODE_TX_0 => FFC_RATE_MODE_TX_0, - FFC_RATE_MODE_TX_1 => FFC_RATE_MODE_TX_1, - FFC_RATE_MODE_TX_2 => FFC_RATE_MODE_TX_2, - FFC_RATE_MODE_TX_3 => FFC_RATE_MODE_TX_3, - FFC_DIV11_MODE_RX_0 => FFC_DIV11_MODE_RX_0, - FFC_DIV11_MODE_RX_1 => FFC_DIV11_MODE_RX_1, - FFC_DIV11_MODE_RX_2 => FFC_DIV11_MODE_RX_2, - FFC_DIV11_MODE_RX_3 => FFC_DIV11_MODE_RX_3, - FFC_DIV11_MODE_TX_0 => FFC_DIV11_MODE_TX_0, - FFC_DIV11_MODE_TX_1 => FFC_DIV11_MODE_TX_1, - FFC_DIV11_MODE_TX_2 => FFC_DIV11_MODE_TX_2, - FFC_DIV11_MODE_TX_3 => FFC_DIV11_MODE_TX_3, - LDR_CORE2TX_0 => LDR_CORE2TX_0, - LDR_CORE2TX_1 => LDR_CORE2TX_1, - LDR_CORE2TX_2 => LDR_CORE2TX_2, - LDR_CORE2TX_3 => LDR_CORE2TX_3, - FFC_LDR_CORE2TX_EN_0 => FFC_LDR_CORE2TX_EN_0, - FFC_LDR_CORE2TX_EN_1 => FFC_LDR_CORE2TX_EN_1, - FFC_LDR_CORE2TX_EN_2 => FFC_LDR_CORE2TX_EN_2, - FFC_LDR_CORE2TX_EN_3 => FFC_LDR_CORE2TX_EN_3, - PCIE_POWERDOWN_0_0 => PCIE_POWERDOWN_0_0, - PCIE_POWERDOWN_0_1 => PCIE_POWERDOWN_0_1, - PCIE_POWERDOWN_1_0 => PCIE_POWERDOWN_1_0, - PCIE_POWERDOWN_1_1 => PCIE_POWERDOWN_1_1, - PCIE_POWERDOWN_2_0 => PCIE_POWERDOWN_2_0, - PCIE_POWERDOWN_2_1 => PCIE_POWERDOWN_2_1, - PCIE_POWERDOWN_3_0 => PCIE_POWERDOWN_3_0, - PCIE_POWERDOWN_3_1 => PCIE_POWERDOWN_3_1, - PCIE_RXPOLARITY_0 => PCIE_RXPOLARITY_0, - PCIE_RXPOLARITY_1 => PCIE_RXPOLARITY_1, - PCIE_RXPOLARITY_2 => PCIE_RXPOLARITY_2, - PCIE_RXPOLARITY_3 => PCIE_RXPOLARITY_3, - PCIE_TXCOMPLIANCE_0 => PCIE_TXCOMPLIANCE_0, - PCIE_TXCOMPLIANCE_1 => PCIE_TXCOMPLIANCE_1, - PCIE_TXCOMPLIANCE_2 => PCIE_TXCOMPLIANCE_2, - PCIE_TXCOMPLIANCE_3 => PCIE_TXCOMPLIANCE_3, - PCIE_TXDETRX_PR2TLB_0 => PCIE_TXDETRX_PR2TLB_0, - PCIE_TXDETRX_PR2TLB_1 => PCIE_TXDETRX_PR2TLB_1, - PCIE_TXDETRX_PR2TLB_2 => PCIE_TXDETRX_PR2TLB_2, - PCIE_TXDETRX_PR2TLB_3 => PCIE_TXDETRX_PR2TLB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_TX_F_CLK_0 => FF_TX_F_CLK_0, - FF_TX_F_CLK_1 => FF_TX_F_CLK_1, - FF_TX_F_CLK_2 => FF_TX_F_CLK_2, - FF_TX_F_CLK_3 => FF_TX_F_CLK_3, - FF_TX_H_CLK_0 => FF_TX_H_CLK_0, - FF_TX_H_CLK_1 => FF_TX_H_CLK_1, - FF_TX_H_CLK_2 => FF_TX_H_CLK_2, - FF_TX_H_CLK_3 => FF_TX_H_CLK_3, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_CDR_TRAIN_DONE_0 => FFS_CDR_TRAIN_DONE_0, - FFS_CDR_TRAIN_DONE_1 => FFS_CDR_TRAIN_DONE_1, - FFS_CDR_TRAIN_DONE_2 => FFS_CDR_TRAIN_DONE_2, - FFS_CDR_TRAIN_DONE_3 => FFS_CDR_TRAIN_DONE_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RLOS_HI_0 => FFS_RLOS_HI_0, - FFS_RLOS_HI_1 => FFS_RLOS_HI_1, - FFS_RLOS_HI_2 => FFS_RLOS_HI_2, - FFS_RLOS_HI_3 => FFS_RLOS_HI_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - PCIE_PHYSTATUS_0 => PCIE_PHYSTATUS_0, - PCIE_PHYSTATUS_1 => PCIE_PHYSTATUS_1, - PCIE_PHYSTATUS_2 => PCIE_PHYSTATUS_2, - PCIE_PHYSTATUS_3 => PCIE_PHYSTATUS_3, - PCIE_RXVALID_0 => PCIE_RXVALID_0, - PCIE_RXVALID_1 => PCIE_RXVALID_1, - PCIE_RXVALID_2 => PCIE_RXVALID_2, - PCIE_RXVALID_3 => PCIE_RXVALID_3, - FFS_SKP_ADDED_0 => FFS_SKP_ADDED_0, - FFS_SKP_ADDED_1 => FFS_SKP_ADDED_1, - FFS_SKP_ADDED_2 => FFS_SKP_ADDED_2, - FFS_SKP_ADDED_3 => FFS_SKP_ADDED_3, - FFS_SKP_DELETED_0 => FFS_SKP_DELETED_0, - FFS_SKP_DELETED_1 => FFS_SKP_DELETED_1, - FFS_SKP_DELETED_2 => FFS_SKP_DELETED_2, - FFS_SKP_DELETED_3 => FFS_SKP_DELETED_3, - LDR_RX2CORE_0 => LDR_RX2CORE_0, - LDR_RX2CORE_1 => LDR_RX2CORE_1, - LDR_RX2CORE_2 => LDR_RX2CORE_2, - LDR_RX2CORE_3 => LDR_RX2CORE_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7, - REFCLK_FROM_NQ => REFCLK_FROM_NQ, - REFCLK_TO_NQ => REFCLK_TO_NQ - ); - -end PCSD_arch; - ---synopsys translate_on - ---THIS MODULE IS INSTANTIATED PER RX CHANNEL ---Reset Sequence Generator -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; -use ieee.std_logic_unsigned.all; -use ieee.numeric_std.all; - -entity rx_reset_sm is -generic (count_index: integer :=18); -port ( - rst_n : in std_logic; - refclkdiv2 : in std_logic; - tx_pll_lol_qd_s : in std_logic; - rx_serdes_rst_ch_c: out std_logic; - rx_cdr_lol_ch_s : in std_logic; - rx_los_low_ch_s : in std_logic; - rx_pcs_rst_ch_c : out std_logic -); -end rx_reset_sm ; - -architecture rx_reset_sm_arch of rx_reset_sm is - -type statetype is (WAIT_FOR_PLOL, RX_SERDES_RESET, WAIT_FOR_TIMER1, CHECK_LOL_LOS, WAIT_FOR_TIMER2, NORMAL); - -signal cs: statetype; -- current state of lsm -signal ns: statetype; -- next state of lsm - -signal tx_pll_lol_qd_s_int: std_logic; -signal rx_los_low_int: std_logic; -signal plol_los_int: std_logic; -signal rx_lol_los : std_logic; -signal rx_lol_los_int: std_logic; -signal rx_lol_los_del: std_logic; -signal rx_pcs_rst_ch_c_int: std_logic; -signal rx_serdes_rst_ch_c_int: std_logic; - -signal reset_timer1: std_logic; -signal reset_timer2: std_logic; - -signal counter1: std_logic_vector(1 downto 0); -signal TIMER1: std_logic; - -signal counter2: std_logic_vector(18 downto 0); -signal TIMER2 : std_logic; - -begin - -rx_lol_los <= rx_cdr_lol_ch_s or rx_los_low_ch_s ; - -process(refclkdiv2,rst_n) -begin - if rising_edge(refclkdiv2) then - if rst_n = '0' then - cs <= WAIT_FOR_PLOL; - rx_lol_los_int <= '1'; - rx_lol_los_del <= '1'; - tx_pll_lol_qd_s_int <= '1'; - rx_pcs_rst_ch_c <= '1'; - rx_serdes_rst_ch_c <= '0'; - rx_los_low_int <= '1'; - else - cs <= ns; - rx_lol_los_del <= rx_lol_los; - rx_lol_los_int <= rx_lol_los_del; - tx_pll_lol_qd_s_int <= tx_pll_lol_qd_s; - rx_pcs_rst_ch_c <= rx_pcs_rst_ch_c_int; - rx_serdes_rst_ch_c <= rx_serdes_rst_ch_c_int; - rx_los_low_int <= rx_los_low_ch_s; - end if; - end if; -end process; - ---TIMER1 = 3NS; ---Fastest REFCLK = 312 MHz, or 3ns. We need 1 REFCLK cycles or 2 REFCLKDIV2 cycles ---A 1 bit counter counts 2 cycles, so a 2 bit ([1:0]) counter will do if we set TIMER1 = bit[1] - -process(refclkdiv2, reset_timer1) -begin - if rising_edge(refclkdiv2) then - if reset_timer1 = '1' then - counter1 <= "00"; - TIMER1 <= '0'; - else - if counter1(1) = '1' then - TIMER1 <='1'; - else - TIMER1 <='0'; - counter1 <= counter1 + 1 ; - end if; - end if; - end if; -end process; - ---TIMER2 = 400,000 Refclk cycles or 200,000 REFCLKDIV2 cycles ---An 18 bit counter ([17:0]) counts 262144 cycles, so a 19 bit ([18:0]) counter will do if we set TIMER2 = bit[18] - -process(refclkdiv2, reset_timer2) -begin - if rising_edge(refclkdiv2) then - if reset_timer2 = '1' then - counter2 <= "0000000000000000000"; - TIMER2 <= '0'; - else - if counter2(count_index) = '1' then - TIMER2 <='1'; - else - TIMER2 <='0'; - counter2 <= counter2 + 1 ; - end if; - end if; - end if; -end process; - - -process(cs, tx_pll_lol_qd_s_int, rx_los_low_int, TIMER1, rx_lol_los_int, TIMER2) -begin - reset_timer1 <= '0'; - reset_timer2 <= '0'; - - case cs is - when WAIT_FOR_PLOL => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '0'; - if (tx_pll_lol_qd_s_int = '1' or rx_los_low_int = '1') then --Also make sure A Signal - ns <= WAIT_FOR_PLOL; --is Present prior to moving to the next - else - ns <= RX_SERDES_RESET; - end if; - - when RX_SERDES_RESET => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '1'; - reset_timer1 <= '1'; - ns <= WAIT_FOR_TIMER1; - - - when WAIT_FOR_TIMER1 => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '1'; - if TIMER1 = '1' then - ns <= CHECK_LOL_LOS; - else - ns <= WAIT_FOR_TIMER1; - end if; - - when CHECK_LOL_LOS => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '0'; - reset_timer2 <= '1'; - ns <= WAIT_FOR_TIMER2; - - when WAIT_FOR_TIMER2 => - rx_pcs_rst_ch_c_int <= '1'; - rx_serdes_rst_ch_c_int <= '0'; - if rx_lol_los_int = rx_lol_los_del then --NO RISING OR FALLING EDGES - if TIMER2 = '1' then - if rx_lol_los_int = '1' then - ns <= WAIT_FOR_PLOL; - else - ns <= NORMAL; - end if; - else - ns <= WAIT_FOR_TIMER2; - end if; - else - ns <= CHECK_LOL_LOS; --RESET TIMER2 - end if; - - when NORMAL => - rx_pcs_rst_ch_c_int <= '0'; - rx_serdes_rst_ch_c_int <= '0'; - if rx_lol_los_int = '1' then - ns <= WAIT_FOR_PLOL; - else - ns <= NORMAL; - end if; - - when others => - ns <= WAIT_FOR_PLOL; - - end case; - -end process; - - -end rx_reset_sm_arch; - ---THIS MODULE IS INSTANTIATED PER TX QUAD ---TX Reset Sequence state machine-- -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; -use ieee.std_logic_unsigned.all; -use ieee.numeric_std.all; - -entity tx_reset_sm is -generic (count_index: integer :=18); -port ( - rst_n : in std_logic; - refclkdiv2 : in std_logic; - tx_pll_lol_qd_s : in std_logic; - rst_qd_c : out std_logic; - tx_pcs_rst_ch_c : out std_logic - ); -end tx_reset_sm; - -architecture tx_reset_sm_arch of tx_reset_sm is - -type statetype is (QUAD_RESET, WAIT_FOR_TIMER1, CHECK_PLOL, WAIT_FOR_TIMER2, NORMAL); - -signal cs: statetype; -- current state of lsm -signal ns: statetype; -- next state of lsm - -signal tx_pll_lol_qd_s_int : std_logic; -signal tx_pcs_rst_ch_c_int : std_logic_vector(3 downto 0); -signal rst_qd_c_int : std_logic; - -signal reset_timer1: std_logic; -signal reset_timer2: std_logic; - -signal counter1: std_logic_vector(2 downto 0); -signal TIMER1: std_logic; - -signal counter2: std_logic_vector(18 downto 0); -signal TIMER2: std_logic; - -begin - -process (refclkdiv2, rst_n) -begin - if rst_n = '0' then - cs <= QUAD_RESET; - tx_pll_lol_qd_s_int <= '1'; - tx_pcs_rst_ch_c <= '1'; - rst_qd_c <= '1'; - else if rising_edge(refclkdiv2) then - cs <= ns; - tx_pll_lol_qd_s_int <= tx_pll_lol_qd_s; - tx_pcs_rst_ch_c <= tx_pcs_rst_ch_c_int(0); - rst_qd_c <= rst_qd_c_int; - end if; - end if; -end process; ---TIMER1 = 20ns; ---Fastest REFLCK =312 MHZ, or 3 ns. We need 8 REFCLK cycles or 4 REFCLKDIV2 cycles --- A 2 bit counter ([1:0]) counts 4 cycles, so a 3 bit ([2:0]) counter will do if we set TIMER1 = bit[2] - - -process (refclkdiv2, reset_timer1) -begin - if rising_edge(refclkdiv2) then - if reset_timer1 = '1' then - counter1 <= "000"; - TIMER1 <= '0'; - else - if counter1(2) = '1' then - TIMER1 <= '1'; - else - TIMER1 <='0'; - counter1 <= counter1 + 1 ; - end if; - end if; - end if; -end process; - - ---TIMER2 = 1,400,000 UI; ---WORST CASE CYCLES is with smallest multipier factor. --- This would be with X8 clock multiplier in DIV2 mode --- IN this casse, 1 UI = 2/8 REFCLK CYCLES = 1/8 REFCLKDIV2 CYCLES --- SO 1,400,000 UI =1,400,000/8 = 175,000 REFCLKDIV2 CYCLES --- An 18 bit counter ([17:0]) counts 262144 cycles, so a 19 bit ([18:0]) counter will do if we set TIMER2 = bit[18] - - -process(refclkdiv2, reset_timer2) -begin - if rising_edge(refclkdiv2) then - if reset_timer2 = '1' then - counter2 <= "0000000000000000000"; - TIMER2 <= '0'; - else - if counter2(count_index) = '1' then - TIMER2 <='1'; - else - TIMER2 <='0'; - counter2 <= counter2 + 1 ; - end if; - end if; - end if; -end process; - -process(cs, TIMER1, TIMER2, tx_pll_lol_qd_s_int) -begin - - reset_timer1 <= '0'; - reset_timer2 <= '0'; - - case cs is - - when QUAD_RESET => - tx_pcs_rst_ch_c_int <= "1111"; - rst_qd_c_int <= '1'; - reset_timer1 <= '1'; - ns <= WAIT_FOR_TIMER1; - - when WAIT_FOR_TIMER1 => - tx_pcs_rst_ch_c_int <= "1111"; - rst_qd_c_int <= '1'; - if TIMER1 = '1' then - ns <= CHECK_PLOL; - else - ns <= WAIT_FOR_TIMER1; - end if; - - when CHECK_PLOL => - tx_pcs_rst_ch_c_int <= "1111"; - rst_qd_c_int <= '0'; - reset_timer2 <= '1'; - ns <= WAIT_FOR_TIMER2; - - when WAIT_FOR_TIMER2 => - tx_pcs_rst_ch_c_int <= "1111"; - rst_qd_c_int <= '0'; - if TIMER2 = '1' then - if tx_pll_lol_qd_s_int = '1' then - ns <= QUAD_RESET; - else - ns <= NORMAL; - end if; - else - ns <= WAIT_FOR_TIMER2; - end if; - - when NORMAL => - tx_pcs_rst_ch_c_int <= "0000"; - rst_qd_c_int <= '0'; - if tx_pll_lol_qd_s_int = '1' then - ns <= QUAD_RESET; - else - ns <= NORMAL; - end if; - - when others => - ns <= QUAD_RESET; - - end case; - -end process; - -end tx_reset_sm_arch; - - ---synopsys translate_off -library ECP3; -use ECP3.components.all; ---synopsys translate_on - - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_gbe_0_intclock_8b_ecp3 is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_intclock_8b_ecp3.txt"); - port ( ------------------- --- CH0 -- - hdinp_ch0, hdinn_ch0 : in std_logic; - hdoutp_ch0, hdoutn_ch0 : out std_logic; - rxiclk_ch0 : in std_logic; - txiclk_ch0 : in std_logic; - rx_full_clk_ch0 : out std_logic; - rx_half_clk_ch0 : out std_logic; - tx_full_clk_ch0 : out std_logic; - tx_half_clk_ch0 : out std_logic; - fpga_rxrefclk_ch0 : in std_logic; - txdata_ch0 : in std_logic_vector (7 downto 0); - tx_k_ch0 : in std_logic; - xmit_ch0 : in std_logic; - tx_disp_correct_ch0 : in std_logic; - rxdata_ch0 : out std_logic_vector (7 downto 0); - rx_k_ch0 : out std_logic; - rx_disp_err_ch0 : out std_logic; - rx_cv_err_ch0 : out std_logic; - sb_felb_ch0_c : in std_logic; - sb_felb_rst_ch0_c : in std_logic; - tx_pwrup_ch0_c : in std_logic; - rx_pwrup_ch0_c : in std_logic; - rx_los_low_ch0_s : out std_logic; - lsm_status_ch0_s : out std_logic; - rx_cdr_lol_ch0_s : out std_logic; --- CH1 -- --- CH2 -- --- CH3 -- ----- Miscillaneous ports - fpga_txrefclk : in std_logic; - tx_serdes_rst_c : in std_logic; - tx_pll_lol_qd_s : out std_logic; - rst_n : in std_logic; - serdes_rst_qd_c : in std_logic); - -end serdes_gbe_0_intclock_8b_ecp3; - - -architecture serdes_gbe_0_intclock_8b_ecp3_arch of serdes_gbe_0_intclock_8b_ecp3 is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; - -component rx_reset_sm -generic (count_index: integer :=18); -port ( - rst_n : in std_logic; - refclkdiv2 : in std_logic; - tx_pll_lol_qd_s : in std_logic; - rx_serdes_rst_ch_c: out std_logic; - rx_cdr_lol_ch_s : in std_logic; - rx_los_low_ch_s : in std_logic; - rx_pcs_rst_ch_c : out std_logic -); -end component ; - -component tx_reset_sm -generic (count_index: integer :=18); -port ( - rst_n : in std_logic; - refclkdiv2 : in std_logic; - tx_pll_lol_qd_s : in std_logic; - rst_qd_c : out std_logic; - tx_pcs_rst_ch_c : out std_logic - ); -end component; - -component PCSD ---synopsys translate_off -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSD_INST : label is USER_CONFIG_FILE; - attribute QUAD_MODE: string; - attribute QUAD_MODE of PCSD_INST : label is "SINGLE"; - attribute PLL_SRC: string; - attribute PLL_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute CH0_CDR_SRC: string; - attribute CH0_CDR_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSD : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal refclk_from_nq : std_logic := '0'; -signal fpsc_vlo : std_logic := '0'; -signal fpsc_vhi : std_logic := '1'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); -signal tx_full_clk_ch0_sig : std_logic; - -signal refclk2fpga_sig : std_logic; -signal tx_pll_lol_qd_sig : std_logic; -signal rx_los_low_ch0_sig : std_logic; -signal rx_los_low_ch1_sig : std_logic; -signal rx_los_low_ch2_sig : std_logic; -signal rx_los_low_ch3_sig : std_logic; -signal rx_cdr_lol_ch0_sig : std_logic; -signal rx_cdr_lol_ch1_sig : std_logic; -signal rx_cdr_lol_ch2_sig : std_logic; -signal rx_cdr_lol_ch3_sig : std_logic; - -signal rx_serdes_rst_ch0_c : std_logic; -signal rx_pcs_rst_ch0_c : std_logic; - --- reset sequence for rx -signal refclkdiv2_rx_ch0 : std_logic; - -signal refclkdiv2_tx_ch : std_logic; -signal tx_pcs_rst_ch_c : std_logic; -signal rst_qd_c : std_logic; - - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); -vhi_inst : VHI port map(Z => fpsc_vhi); - - rx_los_low_ch0_s <= rx_los_low_ch0_sig; - rx_cdr_lol_ch0_s <= rx_cdr_lol_ch0_sig; - tx_pll_lol_qd_s <= tx_pll_lol_qd_sig; - tx_full_clk_ch0 <= tx_full_clk_ch0_sig; - --- pcs_quad instance -PCSD_INST : PCSD ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE, - QUAD_MODE => "SINGLE", - CH0_CDR_SRC => "REFCLK_CORE", - PLL_SRC => "REFCLK_CORE" - ) ---synopsys translate_on -port map ( - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - ------ CH0 ----- - HDOUTP0 => hdoutp_ch0, - HDOUTN0 => hdoutn_ch0, - HDINP0 => hdinp_ch0, - HDINN0 => hdinn_ch0, - PCIE_TXDETRX_PR2TLB_0 => fpsc_vlo, - PCIE_TXCOMPLIANCE_0 => fpsc_vlo, - PCIE_RXPOLARITY_0 => fpsc_vlo, - PCIE_POWERDOWN_0_0 => fpsc_vlo, - PCIE_POWERDOWN_0_1 => fpsc_vlo, - PCIE_RXVALID_0 => open, - PCIE_PHYSTATUS_0 => open, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => rxiclk_ch0, - FF_TXI_CLK_0 => txiclk_ch0, - FF_EBRD_CLK_0 => fpsc_vlo, - FF_RX_F_CLK_0 => rx_full_clk_ch0, - FF_RX_H_CLK_0 => rx_half_clk_ch0, - FF_TX_F_CLK_0 => tx_full_clk_ch0_sig, - FF_TX_H_CLK_0 => tx_half_clk_ch0, - FFC_CK_CORE_RX_0 => fpga_rxrefclk_ch0, - FF_TX_D_0_0 => txdata_ch0(0), - FF_TX_D_0_1 => txdata_ch0(1), - FF_TX_D_0_2 => txdata_ch0(2), - FF_TX_D_0_3 => txdata_ch0(3), - FF_TX_D_0_4 => txdata_ch0(4), - FF_TX_D_0_5 => txdata_ch0(5), - FF_TX_D_0_6 => txdata_ch0(6), - FF_TX_D_0_7 => txdata_ch0(7), - FF_TX_D_0_8 => tx_k_ch0, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => xmit_ch0, - FF_TX_D_0_11 => tx_disp_correct_ch0, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => rxdata_ch0(0), - FF_RX_D_0_1 => rxdata_ch0(1), - FF_RX_D_0_2 => rxdata_ch0(2), - FF_RX_D_0_3 => rxdata_ch0(3), - FF_RX_D_0_4 => rxdata_ch0(4), - FF_RX_D_0_5 => rxdata_ch0(5), - FF_RX_D_0_6 => rxdata_ch0(6), - FF_RX_D_0_7 => rxdata_ch0(7), - FF_RX_D_0_8 => rx_k_ch0, - FF_RX_D_0_9 => rx_disp_err_ch0, - FF_RX_D_0_10 => rx_cv_err_ch0, - FF_RX_D_0_11 => open, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - - FFC_RRST_0 => rx_serdes_rst_ch0_c, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => sb_felb_ch0_c, - FFC_PFIFO_CLR_0 => sb_felb_rst_ch0_c, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => tx_pcs_rst_ch_c, - FFC_TXPWDNB_0 => tx_pwrup_ch0_c, - FFC_LANE_RX_RST_0 => rx_pcs_rst_ch0_c, - FFC_RXPWDNB_0 => rx_pwrup_ch0_c, - FFS_RLOS_LO_0 => rx_los_low_ch0_sig, - FFS_RLOS_HI_0 => open, - FFS_PCIE_CON_0 => open, - FFS_PCIE_DONE_0 => open, - FFS_LS_SYNC_STATUS_0 => lsm_status_ch0_s, - FFS_CC_OVERRUN_0 => open, - FFS_CC_UNDERRUN_0 => open, - FFS_SKP_ADDED_0 => open, - FFS_SKP_DELETED_0 => open, - FFS_RLOL_0 => rx_cdr_lol_ch0_sig, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - LDR_CORE2TX_0 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_0 => fpsc_vlo, - LDR_RX2CORE_0 => open, - FFS_CDR_TRAIN_DONE_0 => open, - FFC_DIV11_MODE_TX_0 => fpsc_vlo, - FFC_RATE_MODE_TX_0 => fpsc_vlo, - FFC_DIV11_MODE_RX_0 => fpsc_vlo, - FFC_RATE_MODE_RX_0 => fpsc_vlo, - ------ CH1 ----- - HDOUTP1 => open, - HDOUTN1 => open, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_1 => fpsc_vlo, - PCIE_TXCOMPLIANCE_1 => fpsc_vlo, - PCIE_RXPOLARITY_1 => fpsc_vlo, - PCIE_POWERDOWN_1_0 => fpsc_vlo, - PCIE_POWERDOWN_1_1 => fpsc_vlo, - PCIE_RXVALID_1 => open, - PCIE_PHYSTATUS_1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_TX_F_CLK_1 => open, - FF_TX_H_CLK_1 => open, - FFC_CK_CORE_RX_1 => fpsc_vlo, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_RLOS_HI_1 => open, - FFS_PCIE_CON_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_SKP_ADDED_1 => open, - FFS_SKP_DELETED_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - LDR_CORE2TX_1 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_1 => fpsc_vlo, - LDR_RX2CORE_1 => open, - FFS_CDR_TRAIN_DONE_1 => open, - FFC_DIV11_MODE_TX_1 => fpsc_vlo, - FFC_RATE_MODE_TX_1 => fpsc_vlo, - FFC_DIV11_MODE_RX_1 => fpsc_vlo, - FFC_RATE_MODE_RX_1 => fpsc_vlo, - ------ CH2 ----- - HDOUTP2 => open, - HDOUTN2 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_2 => fpsc_vlo, - PCIE_TXCOMPLIANCE_2 => fpsc_vlo, - PCIE_RXPOLARITY_2 => fpsc_vlo, - PCIE_POWERDOWN_2_0 => fpsc_vlo, - PCIE_POWERDOWN_2_1 => fpsc_vlo, - PCIE_RXVALID_2 => open, - PCIE_PHYSTATUS_2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_TX_F_CLK_2 => open, - FF_TX_H_CLK_2 => open, - FFC_CK_CORE_RX_2 => fpsc_vlo, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_RLOS_HI_2 => open, - FFS_PCIE_CON_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_SKP_ADDED_2 => open, - FFS_SKP_DELETED_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - LDR_CORE2TX_2 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_2 => fpsc_vlo, - LDR_RX2CORE_2 => open, - FFS_CDR_TRAIN_DONE_2 => open, - FFC_DIV11_MODE_TX_2 => fpsc_vlo, - FFC_RATE_MODE_TX_2 => fpsc_vlo, - FFC_DIV11_MODE_RX_2 => fpsc_vlo, - FFC_RATE_MODE_RX_2 => fpsc_vlo, - ------ CH3 ----- - HDOUTP3 => open, - HDOUTN3 => open, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_3 => fpsc_vlo, - PCIE_TXCOMPLIANCE_3 => fpsc_vlo, - PCIE_RXPOLARITY_3 => fpsc_vlo, - PCIE_POWERDOWN_3_0 => fpsc_vlo, - PCIE_POWERDOWN_3_1 => fpsc_vlo, - PCIE_RXVALID_3 => open, - PCIE_PHYSTATUS_3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_TX_F_CLK_3 => open, - FF_TX_H_CLK_3 => open, - FFC_CK_CORE_RX_3 => fpsc_vlo, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_RLOS_HI_3 => open, - FFS_PCIE_CON_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_SKP_ADDED_3 => open, - FFS_SKP_DELETED_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - LDR_CORE2TX_3 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_3 => fpsc_vlo, - LDR_RX2CORE_3 => open, - FFS_CDR_TRAIN_DONE_3 => open, - FFC_DIV11_MODE_TX_3 => fpsc_vlo, - FFC_RATE_MODE_TX_3 => fpsc_vlo, - FFC_DIV11_MODE_RX_3 => fpsc_vlo, - FFC_RATE_MODE_RX_3 => fpsc_vlo, - ------ Auxilliary ---- - SCIWDATA7 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA0 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIRDATA7 => open, - SCIRDATA6 => open, - SCIRDATA5 => open, - SCIRDATA4 => open, - SCIRDATA3 => open, - SCIRDATA2 => open, - SCIRDATA1 => open, - SCIRDATA0 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_CK_CORE_TX => fpga_txrefclk, - FFC_MACRO_RST => serdes_rst_qd_c, - FFC_QUAD_RST => rst_qd_c, - FFC_TRST => tx_serdes_rst_c, - FFS_PLOL => tx_pll_lol_qd_sig, - FFC_SYNC_TOGGLE => fpsc_vlo, - REFCK2CORE => refclk2fpga_sig, - CIN0 => fpsc_vlo, - CIN1 => fpsc_vlo, - CIN2 => fpsc_vlo, - CIN3 => fpsc_vlo, - CIN4 => fpsc_vlo, - CIN5 => fpsc_vlo, - CIN6 => fpsc_vlo, - CIN7 => fpsc_vlo, - CIN8 => fpsc_vlo, - CIN9 => fpsc_vlo, - CIN10 => fpsc_vlo, - CIN11 => fpsc_vlo, - COUT0 => open, - COUT1 => open, - COUT2 => open, - COUT3 => open, - COUT4 => open, - COUT5 => open, - COUT6 => open, - COUT7 => open, - COUT8 => open, - COUT9 => open, - COUT10 => open, - COUT11 => open, - COUT12 => open, - COUT13 => open, - COUT14 => open, - COUT15 => open, - COUT16 => open, - COUT17 => open, - COUT18 => open, - COUT19 => open, - REFCLK_FROM_NQ => refclk_from_nq, - REFCLK_TO_NQ => open); - --- reset sequence for rx - - P1 : PROCESS(fpga_rxrefclk_ch0, rst_n) - BEGIN - IF (rst_n = '0') THEN - refclkdiv2_rx_ch0 <= '0'; - ELSIF (fpga_rxrefclk_ch0'event and fpga_rxrefclk_ch0 = '1') THEN - refclkdiv2_rx_ch0 <= not refclkdiv2_rx_ch0; - END IF; - END PROCESS; - -rx_reset_sm_ch0 : rx_reset_sm ---synopsys translate_off - generic map (count_index => 4) ---synopsys translate_on -port map ( - refclkdiv2 => refclkdiv2_rx_ch0, - rst_n => rst_n, - rx_cdr_lol_ch_s => rx_cdr_lol_ch0_sig, - rx_los_low_ch_s => rx_los_low_ch0_sig, - tx_pll_lol_qd_s => tx_pll_lol_qd_sig, - rx_pcs_rst_ch_c => rx_pcs_rst_ch0_c, - rx_serdes_rst_ch_c => rx_serdes_rst_ch0_c); - - - - - - P5 : PROCESS(fpga_txrefclk, rst_n) - BEGIN - IF (rst_n = '0') THEN - refclkdiv2_tx_ch <= '0'; - ELSIF (fpga_txrefclk'event and fpga_txrefclk = '1') THEN - refclkdiv2_tx_ch <= not refclkdiv2_tx_ch; - END IF; - END PROCESS; - --- reset sequence for tx -tx_reset_sm_ch : tx_reset_sm ---synopsys translate_off - generic map (count_index => 4) ---synopsys translate_on -port map ( - rst_n => rst_n, - refclkdiv2 => refclkdiv2_tx_ch, - tx_pll_lol_qd_s => tx_pll_lol_qd_sig, - rst_qd_c => rst_qd_c, - tx_pcs_rst_ch_c => tx_pcs_rst_ch_c - ); - - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on -end serdes_gbe_0_intclock_8b_ecp3_arch ; diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3_generate.log b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3_generate.log deleted file mode 100644 index 3b3aef8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_ecp3_generate.log +++ /dev/null @@ -1,29 +0,0 @@ -Starting process: Module - -Starting process: - - Module Name: serdes_gbe_0_intclock_8b_ecp3 - Core Name: PCS - LPC file : serdes_gbe_0_intclock_8b_ecp3.lpc - Parameter File : serdes_gbe_0_intclock_8b_ecp3.pp - Command line: /opt/lattice/diamond/1.3/ispfpga/bin/lin/orcapp -Fmaco serdes_gbe_0_intclock_8b_ecp3.pp - Return Value: - - - - Module PCS has been generated in /home/greg/projects/trbnet/gbe2_ecp3/ipcores_ecp3/serdes_intclk/. successfully! - -/opt/lattice/diamond/1.3/bin/lin/hdl2jhd -tfi -mod serdes_gbe_0_intclock_8b_ecp3 -ext readme -out serdes_gbe_0_intclock_8b_ecp3 -tpl serdes_gbe_0_intclock_8b_ecp3.tft serdes_gbe_0_intclock_8b_ecp3.vhd - -Done successfully! -File: serdes_gbe_0_intclock_8b_ecp3.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_generate.log b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_generate.log deleted file mode 100644 index 919fdf4..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/serdes_gbe_0_intclock_8b_generate.log +++ /dev/null @@ -1,29 +0,0 @@ -Starting process: Module - -Starting process: - - Module Name: serdes_gbe_0_intclock_8b - Core Name: PCS - LPC file : serdes_gbe_0_intclock_8b.lpc - Parameter File : serdes_gbe_0_intclock_8b.pp - Command line: /opt/lattice/diamond/1.3/ispfpga/bin/lin/orcapp -Fmaco serdes_gbe_0_intclock_8b.pp - Return Value: - - - - Module PCS has been generated in /home/greg/projects/trbnet/gbe2_ecp2m/ipcores_ecp3/serdes_intclk/. successfully! - -/opt/lattice/diamond/1.3/bin/lin/hdl2jhd -tfi -mod serdes_gbe_0_intclock_8b -ext readme -out serdes_gbe_0_intclock_8b -tpl serdes_gbe_0_intclock_8b.tft serdes_gbe_0_intclock_8b.vhd - -Done successfully! -File: serdes_gbe_0_intclock_8b.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/tx_reset_sm.naf b/gbe2_ecp3/ipcores_ecp3/serdes_intclk/tx_reset_sm.naf deleted file mode 100644 index 88793a6..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk/tx_reset_sm.naf +++ /dev/null @@ -1,5 +0,0 @@ -rst_n i -refclkdiv2 i -tx_pll_lol_qd_s i -rst_qd_c o -tx_pcs_rst_ch_c o diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/msg_file.log b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/msg_file.log deleted file mode 100644 index d0edc0a..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/msg_file.log +++ /dev/null @@ -1,14 +0,0 @@ - Module Name: serdes_gbe_0_intclock_8b - Core Name: PCS - LPC file : serdes_gbe_0_intclock_8b.lpc - Parameter File : serdes_gbe_0_intclock_8b.pp - Command line: /opt/lattice/ispLEVER8.0/isptools/ispfpga/bin/lin/orcapp -Fmaco serdes_gbe_0_intclock_8b.pp - Return Value: - - - - Module PCS has been generated in /home/greg/projects/trbnet/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50 successfully! - -/home/greg/.isplever_lin/ispcpld/bin/hdl2jhd -tfi -mod serdes_gbe_0_intclock_8b -ext readme -out serdes_gbe_0_intclock_8b -tpl serdes_gbe_0_intclock_8b.tft serdes_gbe_0_intclock_8b.vhd - -Done successfully! diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.jhd b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.jhd deleted file mode 100644 index 9408b9e..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.jhd +++ /dev/null @@ -1,5 +0,0 @@ -MODULE serdes_gbe_0_intclock_8b DEFIN serdes_gbe_0_intclock_8b.vhd - SUBMODULE PCSC - INSTANCE PCSC_INST - SUBMODULE VLO - INSTANCE vlo_inst diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.lpc b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.lpc deleted file mode 100644 index 2a5b9c7..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.lpc +++ /dev/null @@ -1,145 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M50E -PartName=LFE2M50E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=8.1 -ModuleName=serdes_gbe_0_intclock_8b -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=07/31/2010 -Time=18:08:44 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -Protocol=Quad -mode=Gigabit Ethernet -Channel0=SINGLE -Channel1=DISABLE -Channel2=DISABLE -Channel3=DISABLE -Rate0=None -Rate1=None -Rate2=None -Rate3=None -TxRefClk=CORE_TXREFCLK -RxRefClk=CORE_RXREFCLK -ClkRate=1.25 -ClkMult=10X -CalClkRate=125.0 -DataWidth=8 -FPGAClkRate=125.0 -TxRefClkCM=REFCLK -RxRefClk0CM=REFCLK -RxRefClk1CM=REFCLK -RxRefClk2CM=REFCLK -RxRefClk3CM=REFCLK -ClkRateH=0.625 -ClkMultH=10XH -CalClkRateH=125.0 -DataWidthH=8 -FPGAClkRateH=62.5 -VCh0=0 -VCh1=0 -VCh2=0 -VCh3=0 -PreCh0=DISABLE -PreCh1=DISABLE -PreCh2=DISABLE -PreCh3=DISABLE -TxCh0=50 -TxCh1=50 -TxCh2=50 -TxCh3=50 -EqCh0=DISABLE -EqCh1=DISABLE -EqCh2=DISABLE -EqCh3=DISABLE -RxTermCh0=50 -RxTermCh1=50 -RxTermCh2=50 -RxTermCh3=50 -RxCoupCh0=AC -RxCoupCh1=AC -RxCoupCh2=AC -RxCoupCh3=AC -Loss=0 -CDRLoss=0 -TxTerm=50 -TxCoup=AC -TxPllLoss=0 -TxInvCh0=NORMAL -TxInvCh1=NORMAL -TxInvCh2=NORMAL -TxInvCh3=NORMAL -RxInvCh0=NORMAL -RxInvCh1=NORMAL -RxInvCh2=NORMAL -RxInvCh3=NORMAL -RxModeCh0=NORMAL -RxModeCh1=NORMAL -RxModeCh2=NORMAL -RxModeCh3=NORMAL -Plus=1100000101 -Minus=0011111010 -Mask=1111111111 -Align=AUTO -CTCCh0=NORMAL -CTCCh1=NORMAL -CTCCh2=NORMAL -CTCCh3=NORMAL -CC_MATCH1=0000000000 -CC_MATCH2=0000000000 -CC_MATCH3=0110111100 -CC_MATCH4=0001010000 -MinIPG=3 -High=9 -Low=7 -CC_MATCH_MODE=MATCH_3_4 -RxDataCh0=FALSE -RxDataCh1=FALSE -RxDataCh2=FALSE -RxDataCh3=FALSE -AlignerCh0=FALSE -AlignerCh1=FALSE -AlignerCh2=FALSE -AlignerCh3=FALSE -DetectCh0=FALSE -DetectCh1=FALSE -DetectCh2=FALSE -DetectCh3=FALSE -ELSMCh0=FALSE -ELSMCh1=FALSE -ELSMCh2=FALSE -ELSMCh3=FALSE -_teidleCh0=FALSE -_teidleCh1=FALSE -_teidleCh2=FALSE -_teidleCh3=FALSE -Ports0=FALSE -rdoPorts0=Serial Loopback -Ports1=FALSE -Ports2=FALSE -Ports3=FALSE -Ports3_1=FALSE -Ports4=FALSE -_rst_gen=DISABLED -_rx_los_port0=Internal -_rx_los_port1=Internal -_rx_los_port2=Internal -_rx_los_port3=Internal diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.naf b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.naf deleted file mode 100644 index 03daf07..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.naf +++ /dev/null @@ -1,48 +0,0 @@ -core_txrefclk i -core_rxrefclk i -hdinp0 i -hdinn0 i -hdoutp0 o -hdoutn0 o -ff_rxiclk_ch0 i -ff_txiclk_ch0 i -ff_ebrd_clk_0 i -ff_txdata_ch0[7] i -ff_txdata_ch0[6] i -ff_txdata_ch0[5] i -ff_txdata_ch0[4] i -ff_txdata_ch0[3] i -ff_txdata_ch0[2] i -ff_txdata_ch0[1] i -ff_txdata_ch0[0] i -ff_rxdata_ch0[7] o -ff_rxdata_ch0[6] o -ff_rxdata_ch0[5] o -ff_rxdata_ch0[4] o -ff_rxdata_ch0[3] o -ff_rxdata_ch0[2] o -ff_rxdata_ch0[1] o -ff_rxdata_ch0[0] o -ff_tx_k_cntrl_ch0 i -ff_rx_k_cntrl_ch0 o -ff_rxfullclk_ch0 o -ff_xmit_ch0 i -ff_correct_disp_ch0 i -ff_disp_err_ch0 o -ff_cv_ch0 o -ff_rx_even_ch0 o -ffc_rrst_ch0 i -ffc_lane_tx_rst_ch0 i -ffc_lane_rx_rst_ch0 i -ffc_txpwdnb_ch0 i -ffc_rxpwdnb_ch0 i -ffs_rlos_lo_ch0 o -ffs_ls_sync_status_ch0 o -ffs_rlol_ch0 o -oob_out_ch0 o -ffc_macro_rst i -ffc_quad_rst i -ffc_trst i -ff_txfullclk o -ff_txhalfclk o -ffs_plol o diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.pp b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.pp deleted file mode 100644 index 20ee73c..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.pp +++ /dev/null @@ -1,119 +0,0 @@ -#define _device_name "LFE2M50E" -#define _protocol_mode "Quad Based Protocol Mode" -#define _protocol "GIGE" -#define _ch0_mode "SINGLE" -#define _ch1_mode "DISABLE" -#define _ch2_mode "DISABLE" -#define _ch3_mode "DISABLE" -#define _pll_txsrc "CORE_TXREFCLK" -#define _pll_rxsrc "CORE_RXREFCLK" -#define _datarange "MED" -#define _refclk_mult "10X" -#define _refclk_rate 125.0 -#define _data_width "8" -#define _fpgaintclk_rate 125.0 -#define _ch0_tdrv_amp "0" -#define _ch1_tdrv_amp "0" -#define _ch2_tdrv_amp "0" -#define _ch3_tdrv_amp "0" -#define _ch0_tx_pre "DISABLE" -#define _ch1_tx_pre "DISABLE" -#define _ch2_tx_pre "DISABLE" -#define _ch3_tx_pre "DISABLE" -#define _ch0_rterm_tx "50" -#define _ch1_rterm_tx "50" -#define _ch2_rterm_tx "50" -#define _ch3_rterm_tx "50" -#define _ch0_rx_eq "DISABLE" -#define _ch1_rx_eq "DISABLE" -#define _ch2_rx_eq "DISABLE" -#define _ch3_rx_eq "DISABLE" -#define _ch0_rterm_rx "50" -#define _ch1_rterm_rx "50" -#define _ch2_rterm_rx "50" -#define _ch3_rterm_rx "50" -#define _ch0_rx_dcc "AC" -#define _ch1_rx_dcc "AC" -#define _ch2_rx_dcc "AC" -#define _ch3_rx_dcc "AC" -#define _los_threshold "0" -#define _pll_term "50" -#define _pll_dcc "AC" -#define _pll_lol_set "0" -#define _ch0_tx_sb "NORMAL" -#define _ch1_tx_sb "NORMAL" -#define _ch2_tx_sb "NORMAL" -#define _ch3_tx_sb "NORMAL" -#define _ch0_rx_sb "NORMAL" -#define _ch1_rx_sb "NORMAL" -#define _ch2_rx_sb "NORMAL" -#define _ch3_rx_sb "NORMAL" -#define _ch0_8b10b "NORMAL" -#define _ch1_8b10b "NORMAL" -#define _ch2_8b10b "NORMAL" -#define _ch3_8b10b "NORMAL" -#define _comma_a "1100000101" -#define _comma_b "0011111010" -#define _comma_m "1111111111" -#define _comma_align "AUTO" -#define _ch0_ctc_byp "NORMAL" -#define _ch1_ctc_byp "NORMAL" -#define _ch2_ctc_byp "NORMAL" -#define _ch3_ctc_byp "NORMAL" -#define _cc_match1 "0000000000" -#define _cc_match2 "0000000000" -#define _cc_match3 "0110111100" -#define _cc_match4 "0001010000" -#define _cc_match_mode "MATCH_3_4" -#define _cc_min_ipg "3" -#define _cchmark "9" -#define _cclmark "7" -#define _ch0_ird "FALSE" -#define _ch1_ird "FALSE" -#define _ch2_ird "FALSE" -#define _ch3_ird "FALSE" -#define _ch0_elsm "FALSE" -#define _ch1_elsm "FALSE" -#define _ch2_elsm "FALSE" -#define _ch3_elsm "FALSE" -#define _ch0_teidle "FALSE" -#define _ch1_teidle "FALSE" -#define _ch2_teidle "FALSE" -#define _ch3_teidle "FALSE" -#define _loopback "FALSE" -#define _lbtype "Serial Loopback" -#define _refck2core "FALSE" -#define _pllqclkports "FALSE" -#define _sci_ports "FALSE" -#define _sci_int_port "FALSE" -#define _errsports "FALSE" -#define _rst_gen "DISABLED" -#define _rx_los_port0 "Internal" -#define _rx_los_port1 "Internal" -#define _rx_los_port2 "Internal" -#define _rx_los_port3 "Internal" - -#define _ch0_rx_ficlk_rate 125.0 -#define _ch1_rx_ficlk_rate 125.0 -#define _ch2_rx_ficlk_rate 125.0 -#define _ch3_rx_ficlk_rate 125.0 - -#define _ch0_rx_hiclk_rate 62.5 -#define _ch1_rx_hiclk_rate 62.5 -#define _ch2_rx_hiclk_rate 62.5 -#define _ch3_rx_hiclk_rate 62.5 - -#define _ch0_rx_qiclk_rate 31.25 -#define _ch1_rx_qiclk_rate 31.25 -#define _ch2_rx_qiclk_rate 31.25 -#define _ch3_rx_qiclk_rate 31.25 - -#define _tx_ficlk_rate 125.0 -#define _tx_hiclk_rate 62.5 -#define _tx_qiclk_rate 31.25 - -#define _circuit_name serdes_gbe_0_intclock_8b -#define _lang vhdl - -#include -#include diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.readme b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.readme deleted file mode 100644 index b286cf3..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.readme +++ /dev/null @@ -1,139 +0,0 @@ - - TOOL: orcapp - DATE: 19-MAR-2008 13:11:51 - TITLE: Lattice Semiconductor Corporation - MODULE: serdes_gbe_0_intclock_8b - DESIGN: serdes_gbe_0_intclock_8b - FILENAME: serdes_gbe_0_intclock_8b.readme - PROJECT: Unknown - VERSION: 2.0 - This file is auto generated by the ispLEVER - - -NOTE: This readme file has been provided to instantiate the interface -netlist. Since this template contains synthesis attributes for precision that -are crucial to the design flow, we recommend that you use this -template in your FPGA design. -entity chip is -port ( - --- Add your FPGA design top level I/Os here - - --- ASIC side pins for PCSA. These pins must exist for the --- PCS core. - refclkp : in std_logic; - refclkn : in std_logic; - hdinp0 : in std_logic; - hdinn0 : in std_logic; - hdinp1 : in std_logic; - hdinn1 : in std_logic; - hdinp2 : in std_logic; - hdinn2 : in std_logic; - hdinp3 : in std_logic; - hdinn3 : in std_logic; - - hdoutp0 : out std_logic; - hdoutn0 : out std_logic; - hdoutp1 : out std_logic; - hdoutn1 : out std_logic; - hdoutp2 : out std_logic; - hdoutn2 : out std_logic; - hdoutp3 : out std_logic; - hdoutn3 : out std_logic; - - -); -end chip; - -architecture chip_arch of chip is - --- This defines all the high-speed ports. You may have to remove --- some of them depending on your design. -attribute nopad : string; -attribute nopad of - refclkp, refclkn, - hdinp0, hdinn0, hdinp1, hdinn1, - hdinp2, hdinn2, hdinp3, hdinn3, - hdoutp0, hdoutn0, hdoutp1, hdoutn1, - hdoutp2, hdoutn2, hdoutp3, hdoutn3 : signal is "true"; - - COMPONENT serdes_gbe_0_intclock_8b - PORT( - core_txrefclk : IN std_logic; - core_rxrefclk : IN std_logic; - hdinp0 : IN std_logic; - hdinn0 : IN std_logic; - ff_rxiclk_ch0 : IN std_logic; - ff_txiclk_ch0 : IN std_logic; - ff_ebrd_clk_0 : IN std_logic; - ff_txdata_ch0 : IN std_logic_vector(7 downto 0); - ff_tx_k_cntrl_ch0 : IN std_logic; - ff_xmit_ch0 : IN std_logic; - ff_correct_disp_ch0 : IN std_logic; - ffc_rrst_ch0 : IN std_logic; - ffc_lane_tx_rst_ch0 : IN std_logic; - ffc_lane_rx_rst_ch0 : IN std_logic; - ffc_txpwdnb_ch0 : IN std_logic; - ffc_rxpwdnb_ch0 : IN std_logic; - ffc_macro_rst : IN std_logic; - ffc_quad_rst : IN std_logic; - ffc_trst : IN std_logic; - hdoutp0 : OUT std_logic; - hdoutn0 : OUT std_logic; - ff_rxdata_ch0 : OUT std_logic_vector(7 downto 0); - ff_rx_k_cntrl_ch0 : OUT std_logic; - ff_rxfullclk_ch0 : OUT std_logic; - ff_disp_err_ch0 : OUT std_logic; - ff_cv_ch0 : OUT std_logic; - ff_rx_even_ch0 : OUT std_logic; - ffs_rlos_lo_ch0 : OUT std_logic; - ffs_ls_sync_status_ch0 : OUT std_logic; - ffs_rlol_ch0 : OUT std_logic; - oob_out_ch0 : OUT std_logic; - ff_txfullclk : OUT std_logic; - ff_txhalfclk : OUT std_logic; - ffs_plol : OUT std_logic - ); - END COMPONENT; - - - - uut: serdes_gbe_0_intclock_8b PORT MAP( - core_txrefclk => core_txrefclk, - core_rxrefclk => core_rxrefclk, - hdinp0 => hdinp0, - hdinn0 => hdinn0, - hdoutp0 => hdoutp0, - hdoutn0 => hdoutn0, - ff_rxiclk_ch0 => ff_rxiclk_ch0, - ff_txiclk_ch0 => ff_txiclk_ch0, - ff_ebrd_clk_0 => ff_ebrd_clk_0, - ff_txdata_ch0 => ff_txdata_ch0, - ff_rxdata_ch0 => ff_rxdata_ch0, - ff_tx_k_cntrl_ch0 => ff_tx_k_cntrl_ch0, - ff_rx_k_cntrl_ch0 => ff_rx_k_cntrl_ch0, - ff_rxfullclk_ch0 => ff_rxfullclk_ch0, - ff_xmit_ch0 => ff_xmit_ch0, - ff_correct_disp_ch0 => ff_correct_disp_ch0, - ff_disp_err_ch0 => ff_disp_err_ch0, - ff_cv_ch0 => ff_cv_ch0, - ff_rx_even_ch0 => ff_rx_even_ch0, - ffc_rrst_ch0 => ffc_rrst_ch0, - ffc_lane_tx_rst_ch0 => ffc_lane_tx_rst_ch0, - ffc_lane_rx_rst_ch0 => ffc_lane_rx_rst_ch0, - ffc_txpwdnb_ch0 => ffc_txpwdnb_ch0, - ffc_rxpwdnb_ch0 => ffc_rxpwdnb_ch0, - ffs_rlos_lo_ch0 => ffs_rlos_lo_ch0, - ffs_ls_sync_status_ch0 => ffs_ls_sync_status_ch0, - ffs_rlol_ch0 => ffs_rlol_ch0, - oob_out_ch0 => oob_out_ch0, - ffc_macro_rst => ffc_macro_rst, - ffc_quad_rst => ffc_quad_rst, - ffc_trst => ffc_trst, - ff_txfullclk => ff_txfullclk, - ff_txhalfclk => ff_txhalfclk, - ffs_plol => ffs_plol - ); - - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.tft b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.tft deleted file mode 100644 index 3f60410..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.tft +++ /dev/null @@ -1,98 +0,0 @@ -@set suppresnewline=on@ - -@comment --------------------------------------------------------------------- @ -@comment Template-drive TFI generator @ -@comment Template for TFI generation. @ -@comment --------------------------------------------------------------------- @ - -@set suppresnewline=off@ - TOOL: orcapp - DATE: 19-MAR-2008 13:11:51 - TITLE: %title% - MODULE: %module% - DESIGN: %module% - FILENAME: %filename% - PROJECT: %project% - VERSION: %ver% - This file is auto generated by the ispLEVER -@set suppresnewline=on@ - -@cr@ -@cr@ - -@set sigdelim=@ - -NOTE: This readme file has been provided to instantiate the interface@cr@ -netlist. Since this template contains synthesis attributes for precision that@cr@ -are crucial to the design flow, we recommend that you use this@cr@ -template in your FPGA design.@cr@ -entity chip is@cr@ -port (@cr@ -@cr@ --- Add your FPGA design top level I/Os here@cr@ -@cr@ -@cr@ --- ASIC side pins for PCSA. These pins must exist for the@cr@ --- PCS core.@cr@ - refclkp : in std_logic;@cr@ - refclkn : in std_logic;@cr@ - hdinp0 : in std_logic;@cr@ - hdinn0 : in std_logic;@cr@ - hdinp1 : in std_logic;@cr@ - hdinn1 : in std_logic;@cr@ - hdinp2 : in std_logic;@cr@ - hdinn2 : in std_logic;@cr@ - hdinp3 : in std_logic;@cr@ - hdinn3 : in std_logic;@cr@ -@cr@ - hdoutp0 : out std_logic;@cr@ - hdoutn0 : out std_logic;@cr@ - hdoutp1 : out std_logic;@cr@ - hdoutn1 : out std_logic;@cr@ - hdoutp2 : out std_logic;@cr@ - hdoutn2 : out std_logic;@cr@ - hdoutp3 : out std_logic;@cr@ - hdoutn3 : out std_logic;@cr@ -@cr@ -@cr@ -);@cr@ -end chip;@cr@ -@cr@ -architecture chip_arch of chip is@cr@ -@cr@ --- This defines all the high-speed ports. You may have to remove@cr@ --- some of them depending on your design.@cr@ -attribute nopad : string;@cr@ -attribute nopad of@cr@ - refclkp, refclkn,@cr@ - hdinp0, hdinn0, hdinp1, hdinn1,@cr@ - hdinp2, hdinn2, hdinp3, hdinn3,@cr@ - hdoutp0, hdoutn0, hdoutp1, hdoutn1,@cr@ - hdoutp2, hdoutn2, hdoutp3, hdoutn3 : signal is "true";@cr@ - -@cr@ -@tab@COMPONENT %module% -@set sigdelim=@ -@cr@@tab@PORT( -@iterate@%iport%@cr@@tab@@tab@@iterator@ : IN @vhdl_typedec@;@enditerate@ -@ifhas oport=*@ @comment if the design has any output ports... @ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@;@enditerate@ - @set sigdelim=;@ - @iterate@%oport%@cr@@tab@@tab@@iterator@ : OUT @vhdl_typedec@@enditerate@ -@endif@ -@ifnhas oport=*@ @comment we need an "else in this language! @ - @set sigdelim=;@ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@@enditerate@ -@endif@ -@cr@@tab@@tab@);@cr@ -@tab@END COMPONENT;@cr@@cr@ -@comment Now do a signal declaration for each port @ - -@cr@@cr@ -@comment do the component instantiation @ -@set sigdelim=,@ -@tab@uut: %module% PORT MAP( -@iterate@%port% -@cr@@tab@@tab@@iterator@ => @iterator@@enditerate@ -@cr@@tab@);@cr@@cr@ -@set suppresnewline=off@ diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.txt b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.txt deleted file mode 100644 index 4ac16e9..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.txt +++ /dev/null @@ -1,49 +0,0 @@ - -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSC quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSC quad to the final design requirements. - -DEVICE_NAME "LFE2M50E" -PROTOCOL "GIGE" -CH0_MODE "SINGLE" -CH1_MODE "DISABLE" -CH2_MODE "DISABLE" -CH3_MODE "DISABLE" -PLL_SRC "CORE_TXREFCLK" -DATARANGE "MED" -CH0_CDR_SRC "CORE_RXREFCLK" -CH0_DATA_WIDTH "8" -CH0_REFCK_MULT "10X" -#REFCLK_RATE 125.0 -#FPGAINTCLK_RATE 125.0 -CH0_TDRV_AMP "0" -CH0_TX_PRE "DISABLE" -CH0_RTERM_TX "50" -CH0_RX_EQ "DISABLE" -CH0_RTERM_RX "50" -CH0_RX_DCC "AC" -LOS_THRESHOLD "0" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH0_TX_SB "NORMAL" -CH0_RX_SB "NORMAL" -CH0_8B10B "NORMAL" -COMMA_A "1100000101" -COMMA_B "0011111010" -COMMA_M "1111111111" -CH0_COMMA_ALIGN "AUTO" -CH0_CTC_BYP "BYPASS" -CC_MATCH1 "0000000000" -CC_MATCH2 "0000000000" -CC_MATCH3 "0110111100" -CC_MATCH4 "0001010000" -CC_MATCH_MODE "MATCH_3_4" -CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -OS_REFCK2CORE "0" -OS_PLLQCLKPORTS "0" -OS_INT_ALL "0" - diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.vhd b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.vhd deleted file mode 100644 index b57bb59..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.vhd +++ /dev/null @@ -1,2202 +0,0 @@ - - ---synopsys translate_off - -library pcsc_work; -use pcsc_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSC is -GENERIC( - CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); - -end PCSC; - -architecture PCSC_arch of PCSC is - -component PCSC_sim -GENERIC( - CONFIG_FILE : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - -begin - -PCSC_sim_inst : PCSC_sim -generic map ( - CONFIG_FILE => CONFIG_FILE) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX => FFC_CK_CORE_RX, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_RX_Q_CLK_0 => FF_RX_Q_CLK_0, - FF_RX_Q_CLK_1 => FF_RX_Q_CLK_1, - FF_RX_Q_CLK_2 => FF_RX_Q_CLK_2, - FF_RX_Q_CLK_3 => FF_RX_Q_CLK_3, - FF_TX_F_CLK => FF_TX_F_CLK, - FF_TX_H_CLK => FF_TX_H_CLK, - FF_TX_Q_CLK => FF_TX_Q_CLK, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - OOB_OUT_0 => OOB_OUT_0, - OOB_OUT_1 => OOB_OUT_1, - OOB_OUT_2 => OOB_OUT_2, - OOB_OUT_3 => OOB_OUT_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7 - ); - -end PCSC_arch; - ---synopsys translate_on - ---synopsys translate_off -library ECP2; -use ECP2.components.all; ---synopsys translate_on - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_gbe_0_intclock_8b is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt"); - port ( - core_txrefclk : in std_logic; - core_rxrefclk : in std_logic; - hdinp0, hdinn0 : in std_logic; - hdoutp0, hdoutn0 : out std_logic; - ff_rxiclk_ch0, ff_txiclk_ch0, ff_ebrd_clk_0 : in std_logic; - ff_txdata_ch0 : in std_logic_vector (7 downto 0); - ff_rxdata_ch0 : out std_logic_vector (7 downto 0); - ff_tx_k_cntrl_ch0 : in std_logic; - ff_rx_k_cntrl_ch0 : out std_logic; - ff_rxfullclk_ch0 : out std_logic; - ff_xmit_ch0 : in std_logic; - ff_correct_disp_ch0 : in std_logic; - ff_disp_err_ch0, ff_cv_ch0 : out std_logic; - ff_rx_even_ch0 : out std_logic; - ffc_rrst_ch0 : in std_logic; - ffc_lane_tx_rst_ch0 : in std_logic; - ffc_lane_rx_rst_ch0 : in std_logic; - ffc_txpwdnb_ch0 : in std_logic; - ffc_rxpwdnb_ch0 : in std_logic; - ffs_rlos_lo_ch0 : out std_logic; - ffs_ls_sync_status_ch0 : out std_logic; - ffs_rlol_ch0 : out std_logic; - oob_out_ch0 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - ffs_plol : out std_logic); - -end serdes_gbe_0_intclock_8b; - -architecture serdes_gbe_0_intclock_8b_arch of serdes_gbe_0_intclock_8b is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; -component PCSC ---synopsys translate_off -GENERIC( - CONFIG_FILE : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - attribute IS_ASB: string; - attribute IS_ASB of PCSC_INST : label is "ep5m00/data/ep5m00.acd"; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSC_INST : label is USER_CONFIG_FILE; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0 of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1 of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2 of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3 of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0 of PCSC_INST : label is "62.5"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1 of PCSC_INST : label is "62.5"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2 of PCSC_INST : label is "62.5"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3 of PCSC_INST : label is "62.5"; - attribute FREQUENCY_PIN_FF_TX_F_CLK: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_TX_H_CLK: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK of PCSC_INST : label is "62.5"; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSC : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal fpsc_vlo : std_logic := '0'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); - --- pcs_quad instance -PCSC_INST : PCSC ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE) ---synopsys translate_on -port map ( - FFC_CK_CORE_TX => core_txrefclk, - FFC_CK_CORE_RX => core_rxrefclk, - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - HDINP0 => hdinp0, - HDINN0 => hdinn0, - HDOUTP0 => hdoutp0, - HDOUTN0 => hdoutn0, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => ff_rxiclk_ch0, - FF_TXI_CLK_0 => ff_txiclk_ch0, - FF_EBRD_CLK_0 => ff_ebrd_clk_0, - FF_RX_F_CLK_0 => ff_rxfullclk_ch0, - FF_RX_H_CLK_0 => open, - FF_RX_Q_CLK_0 => open, - FF_TX_D_0_0 => ff_txdata_ch0(0), - FF_TX_D_0_1 => ff_txdata_ch0(1), - FF_TX_D_0_2 => ff_txdata_ch0(2), - FF_TX_D_0_3 => ff_txdata_ch0(3), - FF_TX_D_0_4 => ff_txdata_ch0(4), - FF_TX_D_0_5 => ff_txdata_ch0(5), - FF_TX_D_0_6 => ff_txdata_ch0(6), - FF_TX_D_0_7 => ff_txdata_ch0(7), - FF_TX_D_0_8 => ff_tx_k_cntrl_ch0, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => ff_xmit_ch0, - FF_TX_D_0_11 => ff_correct_disp_ch0, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => ff_rxdata_ch0(0), - FF_RX_D_0_1 => ff_rxdata_ch0(1), - FF_RX_D_0_2 => ff_rxdata_ch0(2), - FF_RX_D_0_3 => ff_rxdata_ch0(3), - FF_RX_D_0_4 => ff_rxdata_ch0(4), - FF_RX_D_0_5 => ff_rxdata_ch0(5), - FF_RX_D_0_6 => ff_rxdata_ch0(6), - FF_RX_D_0_7 => ff_rxdata_ch0(7), - FF_RX_D_0_8 => ff_rx_k_cntrl_ch0, - FF_RX_D_0_9 => ff_disp_err_ch0, - FF_RX_D_0_10 => ff_cv_ch0, - FF_RX_D_0_11 => ff_rx_even_ch0, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - FFC_RRST_0 => ffc_rrst_ch0, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => fpsc_vlo, - FFC_PFIFO_CLR_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFS_PCIE_DONE_0 => open, - FFS_PCIE_CON_0 => open, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => ffc_lane_tx_rst_ch0, - FFC_LANE_RX_RST_0 => ffc_lane_rx_rst_ch0, - FFC_TXPWDNB_0 => ffc_txpwdnb_ch0, - FFC_RXPWDNB_0 => ffc_rxpwdnb_ch0, - FFS_RLOS_LO_0 => ffs_rlos_lo_ch0, - FFS_LS_SYNC_STATUS_0 => ffs_ls_sync_status_ch0, - FFS_CC_UNDERRUN_0 => open, - FFS_CC_OVERRUN_0 => open, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - FFS_RLOL_0 => ffs_rlol_ch0, - OOB_OUT_0 => oob_out_ch0, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - HDOUTP1 => open, - HDOUTN1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_RX_Q_CLK_1 => open, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_PCIE_CON_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - OOB_OUT_1 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - HDOUTP2 => open, - HDOUTN2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_RX_Q_CLK_2 => open, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_PCIE_CON_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - OOB_OUT_2 => open, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - HDOUTP3 => open, - HDOUTN3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_RX_Q_CLK_3 => open, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_PCIE_CON_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - OOB_OUT_3 => open, - SCIWDATA0 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA7 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIRDATA0 => open, - SCIRDATA1 => open, - SCIRDATA2 => open, - SCIRDATA3 => open, - SCIRDATA4 => open, - SCIRDATA5 => open, - SCIRDATA6 => open, - SCIRDATA7 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_MACRO_RST => ffc_macro_rst, - FFC_QUAD_RST => ffc_quad_rst, - FFC_TRST => ffc_trst, - FF_TX_F_CLK => ff_txfullclk, - FF_TX_H_CLK => ff_txhalfclk, - FF_TX_Q_CLK => open, - REFCK2CORE => open, - CIN0 => cin(0), - CIN1 => cin(1), - CIN2 => cin(2), - CIN3 => cin(3), - CIN4 => cin(4), - CIN5 => cin(5), - CIN6 => cin(6), - CIN7 => cin(7), - CIN8 => cin(8), - CIN9 => cin(9), - CIN10 => cin(10), - CIN11 => cin(11), - COUT0 => cout(0), - COUT1 => cout(1), - COUT2 => cout(2), - COUT3 => cout(3), - COUT4 => cout(4), - COUT5 => cout(5), - COUT6 => cout(6), - COUT7 => cout(7), - COUT8 => cout(8), - COUT9 => cout(9), - COUT10 => cout(10), - COUT11 => cout(11), - COUT12 => cout(12), - COUT13 => cout(13), - COUT14 => cout(14), - COUT15 => cout(15), - COUT16 => cout(16), - COUT17 => cout(17), - COUT18 => cout(18), - COUT19 => cout(19), - FFS_PLOL => ffs_plol); - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on - -end serdes_gbe_0_intclock_8b_arch ; diff --git a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b_generate.log b/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b_generate.log deleted file mode 100644 index ce2cdde..0000000 --- a/gbe2_ecp3/ipcores_ecp3/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b_generate.log +++ /dev/null @@ -1,27 +0,0 @@ -Starting process: - - Module Name: serdes_gbe_0_intclock_8b - Core Name: PCS - LPC file : serdes_gbe_0_intclock_8b.lpc - Parameter File : serdes_gbe_0_intclock_8b.pp - Command line: /opt/lattice/ispLEVER8.0/isptools/ispfpga/bin/lin/orcapp -Fmaco serdes_gbe_0_intclock_8b.pp - Return Value: - - - - Module PCS has been generated in /home/greg/projects/trbnet/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50 successfully! - -/home/greg/.isplever_lin/ispcpld/bin/hdl2jhd -tfi -mod serdes_gbe_0_intclock_8b -ext readme -out serdes_gbe_0_intclock_8b -tpl serdes_gbe_0_intclock_8b.tft serdes_gbe_0_intclock_8b.vhd - -Done successfully! -File: serdes_gbe_0_intclock_8b.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii33/rate_resolution.v b/gbe2_ecp3/ipcores_ecp3/sgmii33/rate_resolution.v deleted file mode 100755 index b9edbef..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii33/rate_resolution.v +++ /dev/null @@ -1,66 +0,0 @@ -//************************************************************************** -// ************************************************************************* -// * LATTICE SEMICONDUCTOR CONFIDENTIAL * -// * PROPRIETARY NOTE * -// * * -// * This software contains information confidential and proprietary * -// * to Lattice Semiconductor Corporation. It shall not be reproduced * -// * in whole or in part, or transferred to other documents, or disclosed * -// * to third parties, or used for any purpose other than that for which * -// * it was obtained, without the prior written consent of Lattice * -// * Semiconductor Corporation. All rights reserved. * -// * * -// ************************************************************************* -//************************************************************************** - -`timescale 1ns/100ps - -module rate_resolution ( - gbe_mode, - sgmii_mode, - an_enable, - advertised_rate, - link_partner_rate, - non_an_rate, - - operational_rate -); - -input gbe_mode; -input sgmii_mode; -input an_enable; -input [1:0] advertised_rate; // 00=10Mbps 01=100Mbps 10=1Gbps -input [1:0] link_partner_rate; -input [1:0] non_an_rate; - -output [1:0] operational_rate; -reg [1:0] operational_rate; - - - -always @(gbe_mode or sgmii_mode or an_enable or advertised_rate or link_partner_rate or non_an_rate) begin - if (gbe_mode) begin - operational_rate <= 2'b10; // 1Gbps - end - else begin - if (an_enable) begin - if (sgmii_mode) begin - // PHY Mode - operational_rate <= advertised_rate; - end - else begin - // MAC Mode - operational_rate <= link_partner_rate; - end - end - else begin - // If auto-negotiation disabled, then this becomes active rate - operational_rate <= non_an_rate; - end - end -end - - - -endmodule - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii33/register_interface_hb.v b/gbe2_ecp3/ipcores_ecp3/sgmii33/register_interface_hb.v deleted file mode 100755 index 73e0b86..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii33/register_interface_hb.v +++ /dev/null @@ -1,918 +0,0 @@ -//************************************************************************** -// ************************************************************************* -// * LATTICE SEMICONDUCTOR CONFIDENTIAL * -// * PROPRIETARY NOTE * -// * * -// * This software contains information confidential and proprietary * -// * to Lattice Semiconductor Corporation. It shall not be reproduced * -// * in whole or in part, or transferred to other documents, or disclosed * -// * to third parties, or used for any purpose other than that for which * -// * it was obtained, without the prior written consent of Lattice * -// * Semiconductor Corporation. All rights reserved. * -// * * -// ************************************************************************* -//************************************************************************** - -`timescale 1ns/100ps - -module register_interface_hb ( - - // Control Signals - rst_n, - hclk, - gbe_mode, - sgmii_mode, - - // Host Bus - hcs_n, - hwrite_n, - haddr, - hdatain, - - hdataout, - hready_n, - - // Register Inputs - mr_an_enable, - mr_restart_an, - mr_adv_ability, - - // Register Outputs - mr_main_reset, - mr_an_complete, - mr_page_rx, - mr_lp_adv_ability - ); - - -input rst_n ; -input hclk ; -input gbe_mode ; -input sgmii_mode ; - -input hcs_n; -input hwrite_n; -input [3:0] haddr; -input [7:0] hdatain; - -output [7:0] hdataout; -output hready_n; - -input mr_an_complete; -input mr_page_rx; -input [15:0] mr_lp_adv_ability; - -output mr_an_enable; -output mr_restart_an; -output [15:0] mr_adv_ability; -output mr_main_reset; - -regs_hb regs ( - .rst_n (rst_n), - .hclk (hclk), - - .gbe_mode (gbe_mode), - .sgmii_mode (sgmii_mode), - - .hcs_n (hcs_n), - .hwrite_n (hwrite_n), - .haddr (haddr), - .hdatain (hdatain), - - .hdataout (hdataout), - .hready_n (hready_n), - - .mr_an_complete (mr_an_complete), - .mr_page_rx (mr_page_rx), - .mr_lp_adv_ability (mr_lp_adv_ability), - - .mr_main_reset (mr_main_reset), - .mr_an_enable (mr_an_enable), - .mr_restart_an (mr_restart_an), - .mr_adv_ability (mr_adv_ability) -); -endmodule - - - - - - -module register_0_hb ( - rst_n, - clk, - cs_0, - cs_1, - write, - ready, - data_in, - - data_out, - mr_main_reset, - mr_an_enable, - mr_restart_an -); - -input rst_n; -input clk; -input cs_0; -input cs_1; -input write; -input ready; -input [15:0] data_in; - -output [15:0] data_out; -output mr_main_reset; // bit D15 // R/W // Self Clearing -output mr_an_enable; // bit D12 // R/W -output mr_restart_an; // bit D09 // R/W // Self Clearing - -reg [15:0] data_out; -reg mr_main_reset; -reg mr_an_enable; -reg mr_restart_an; -reg m_m_r; -reg m_r_a; - - -// Write Operations - - // Low Portion of Register[D7:D0] has no - // implemented bits. Therefore, no write - // operations here. - - // High Portion of Register[D15:D8] - always @(posedge clk or negedge rst_n) begin - if (rst_n == 1'b0) begin - mr_main_reset <= 0; // default value - mr_an_enable <= 1; // default value - mr_restart_an <= 0; // default value - m_m_r <= 0; - m_r_a <= 0; - end - else begin - - // Do the Writes - if (cs_1 && ready && write) begin - mr_main_reset <= data_in[15]; - mr_an_enable <= data_in[12]; - mr_restart_an <= data_in[9]; - end - - // Delay the Self Clearing Register Bits - m_m_r <= mr_main_reset; - m_r_a <= mr_restart_an; - - // Do the Self Clearing - if (m_m_r) - mr_main_reset <= 0; - - if (m_r_a) - mr_restart_an <= 0; - end - end - - - - - -// Read Operations - always @(*) begin - data_out[7:0] = 8'b00000000; - data_out[15] = mr_main_reset; - data_out[14] = 0; - data_out[13] = 0; - data_out[12] = mr_an_enable; - data_out[11] = 0; - data_out[10] = 0; - data_out[9] = mr_restart_an; - data_out[8] = 0; - end -endmodule - -module register_1_hb ( - rst_n, - cs_0, - cs_1, - mr_an_complete, - - data_out -); - -input rst_n; -input cs_0; -input cs_1; -input mr_an_complete; // bit D5 // Read-Only - -output [15:0] data_out; - -reg [15:0] data_out; - - -// Read Operations - - always @(*) begin - data_out[7] <= 0; - data_out[6] <= 0; - data_out[5] <= mr_an_complete; - data_out[4] <= 0; - data_out[3] <= 0; - data_out[2] <= 0; - data_out[1] <= 0; - data_out[0] <= 0; - data_out[15:8] <= 8'b00000000; - end -endmodule - -module register_4_hb ( - rst_n, - clk, - gbe_mode, - sgmii_mode, - cs_0, - cs_1, - write, - ready, - data_in, - - data_out, - mr_adv_ability -); - -parameter [15:0] initval_gbe = 16'h0020; -parameter [15:0] initval_phy = 16'hd801; -parameter [15:0] initval_mac = 16'h4001; - -input rst_n; -input clk; -input gbe_mode; -input sgmii_mode; -input cs_0; -input cs_1; -input write; -input ready; -input [15:0] data_in; - -output [15:0] data_out; -output [15:0] mr_adv_ability; // When sgmii_mode == 1 == PHY - // all bits D15-D0 are R/W, - /////////////////////////////////// - // D15 = Link Status (1=up, 0=down) - // D14 = Can be written but has no effect - // on autonegotiation. Instead - // the autonegotiation state machine - // controls the utilization of this bit. - // D12 = Duplex Mode (1=full, 0=half) - // D11:10 = Speed (11=reserved) - // (10=1000Mbps) - // (01=100 Mbps) - // (00=10 Mbps) - // D0 = 1 - // all other bits = 0 - /////////////////////////////////// - //When sgmii_mode == 0 = MAC - // all bits D15-D0 are R/W, - // D14 = Can be written but has no effect - // on autonegotiation. Instead - // the autonegotiation state machine - // controls the utilization of this bit. - // D0 = 1 - // all other bits = 0 - /////////////////////////////////// - - -reg [15:0] data_out; -reg [15:0] mr_adv_ability; -reg rst_d1; -reg rst_d2; -reg rst_d3; -reg rst_d4; -reg rst_d5; -reg rst_d6; -reg rst_d7; -reg rst_d8; -reg sync_reset; -reg sgmii_mode_d1; -reg sgmii_mode_d2; -reg sgmii_mode_d3; -reg sgmii_mode_d4; -reg sgmii_mode_change; -reg gbe_mode_d1; -reg gbe_mode_d2; -reg gbe_mode_d3; -reg gbe_mode_d4; -reg gbe_mode_change; - -// generate a synchronous reset signal -// note: this method is used so that -// an initval can be applied during -// device run-time, instead of at compile time -always @(posedge clk or negedge rst_n) begin - if (rst_n == 1'b0) begin - rst_d1 <= 0; - rst_d2 <= 0; - rst_d3 <= 0; - rst_d4 <= 0; - rst_d5 <= 0; - rst_d6 <= 0; - rst_d7 <= 0; - rst_d8 <= 0; - sync_reset <= 0; - end - else begin - rst_d1 <= 1; - rst_d2 <= rst_d1; - rst_d3 <= rst_d2; - rst_d4 <= rst_d3; - rst_d5 <= rst_d4; - rst_d6 <= rst_d5; - rst_d7 <= rst_d6; - rst_d8 <= rst_d7; - - // asserts on rising edge of rst_d8 - sync_reset <= !rst_d8 & rst_d7; - end -end - - -// Detect change in sgmii_mode -always @(posedge clk or negedge rst_n) begin - if (rst_n == 1'b0) begin - sgmii_mode_d1 <= 0; - sgmii_mode_d2 <= 0; - sgmii_mode_d3 <= 0; - sgmii_mode_d4 <= 0; - sgmii_mode_change <= 0; - end - else begin - - // deboggle - sgmii_mode_d1 <= sgmii_mode; - sgmii_mode_d2 <= sgmii_mode_d1; - - // delay - sgmii_mode_d3 <= sgmii_mode_d2; - sgmii_mode_d4 <= sgmii_mode_d3; - - // detect change - if (sgmii_mode_d3 != sgmii_mode_d4) - sgmii_mode_change <= 1; - else - sgmii_mode_change <= 0; - end -end - - -// Detect change in gbe_mode -always @(posedge clk or negedge rst_n) begin - if (rst_n == 1'b0) begin - gbe_mode_d1 <= 0; - gbe_mode_d2 <= 0; - gbe_mode_d3 <= 0; - gbe_mode_d4 <= 0; - gbe_mode_change <= 0; - end - else begin - - // deboggle - gbe_mode_d1 <= gbe_mode; - gbe_mode_d2 <= gbe_mode_d1; - - // delay - gbe_mode_d3 <= gbe_mode_d2; - gbe_mode_d4 <= gbe_mode_d3; - - // detect change - if (gbe_mode_d3 != gbe_mode_d4) - gbe_mode_change <= 1; - else - gbe_mode_change <= 0; - end -end - - -// Write Operations - // Low Portion of Register[D7:D0] - always @(posedge clk or negedge rst_n) begin - if (rst_n == 1'b0) begin - mr_adv_ability[7:0] <= 8'h01; - end - else if (sync_reset || sgmii_mode_change || gbe_mode_change) begin - if (gbe_mode_d4) - mr_adv_ability[7:0] <= initval_gbe[7:0]; - else if (sgmii_mode) - mr_adv_ability[7:0] <= initval_phy[7:0]; - else - mr_adv_ability[7:0] <= initval_mac[7:0]; - end - else begin - if (cs_0 && ready && write && (sgmii_mode || gbe_mode)) begin - mr_adv_ability[7:0] <= data_in[7:0]; - end - end - end - - - // High Portion of Register[D15:D8] - always @(posedge clk or negedge rst_n) begin - if (rst_n == 1'b0) begin - mr_adv_ability[15:8] <= 8'h40; // default - end - else if (sync_reset || sgmii_mode_change || gbe_mode_change) begin - if (gbe_mode_d4) - mr_adv_ability[15:8] <= initval_gbe[15:8]; - else if (sgmii_mode) - mr_adv_ability[15:8] <= initval_phy[15:8]; - else - mr_adv_ability[15:8] <= initval_mac[15:8]; - end - else begin - if (cs_1 && ready && write && (sgmii_mode || gbe_mode)) begin - mr_adv_ability[15:8] <= data_in[15:8]; - end - end - end - - - - - - - - - -// Read Operations - - always @(*) begin - data_out[7:0] <= mr_adv_ability[7:0]; - data_out[15:8] <= mr_adv_ability[15:8]; - end - -endmodule - - - - - - -module register_5_hb ( - rst_n, - mr_lp_adv_ability, - cs_0, - cs_1, - ready, - - data_out -); - -input rst_n; -input cs_0; -input cs_1; -input ready; -input [15:0] mr_lp_adv_ability; - // This entire register is read-only - /////////////////////////////////// - // When sgmii_mode == 0 == MAC - /////////////////////////////////// - // D15 = PHY Link Status (1=up, 0=down) - // D14 = PHY Autonegotiation Handshake - // D12 = PHY Duplex Mode (1=full, 0=half) - // D11:10 = PHY Speed (11=reserved) - // (10=1000Mbps) - // (01=100 Mbps) - // (00=10 Mbps) - // D0 = 1 - // all other bits = 0 - /////////////////////////////////// - //When sgmii_mode == 1 = PHY - // D14 = MAC Autonegotiation Handshake - // D0 = 1 - // all other bits = 0 - /////////////////////////////////// -output [15:0] data_out; - -reg [15:0] data_out; - -// Read Operations - - always @(*) begin - data_out[7:0] <= mr_lp_adv_ability[7:0]; - data_out[15:8] <= mr_lp_adv_ability[15:8]; - end -endmodule - -module register_6_hb ( - rst_n, - clk, - mr_page_rx, - cs_0, - cs_1, - write, - ready, - - data_out -); - -input rst_n; -input clk; -input cs_0; -input cs_1; -input write; -input ready; -input mr_page_rx; -output [15:0] data_out; - -reg [15:0] data_out; -reg mr_page_rx_latched; -reg clear_on_read; -reg read_detect; -reg rd_d1; -reg rd_d2; - -// generate clear-on-read signal - always @(posedge clk or negedge rst_n) begin - if (rst_n == 1'b0) begin - clear_on_read <= 0; - read_detect <= 0; - rd_d1 <= 0; - rd_d2 <= 0; - end - else begin - if (!write && ready && cs_0) - read_detect <= 1; - else - read_detect <= 0; - - rd_d1 <= read_detect; - rd_d2 <= rd_d1; - - // assert on falling edge of rd_d2 - clear_on_read <= !rd_d1 & rd_d2; - end - end - - -// Latch and Clear - always @(posedge clk or negedge rst_n) begin - if (rst_n == 1'b0) begin - mr_page_rx_latched <= 0; - end - else begin - if (clear_on_read) - mr_page_rx_latched <= 0; - else if (mr_page_rx) - mr_page_rx_latched <= 1; - end - end - - -// Read Operations - - always @(*) begin - data_out[15:2] <= 14'd0; - data_out[1] <= mr_page_rx_latched; - data_out[0] <= 0; - end -endmodule - - -module regs_hb ( - rst_n, - hclk, - gbe_mode, - sgmii_mode, - hcs_n, - hwrite_n, - haddr, - hdatain, - - hdataout, - hready_n, - - mr_an_complete, - mr_page_rx, - mr_lp_adv_ability, - - mr_main_reset, - mr_an_enable, - mr_restart_an, - mr_adv_ability -); - -input rst_n; -input hclk; -input gbe_mode; -input sgmii_mode; -input hcs_n; -input hwrite_n; -input [3:0] haddr; -input [7:0] hdatain; - -output [7:0] hdataout; -output hready_n; - -input mr_an_complete; -input mr_page_rx; -input [15:0] mr_lp_adv_ability; - -output mr_main_reset; -output mr_an_enable; -output mr_restart_an; -output [15:0] mr_adv_ability; - -/////////////////////////////////// - - - -reg [7:0] hdataout; -reg hr; -reg hready_n; - -reg hcs_n_delayed; - -wire reg0_cs_0; -wire reg0_cs_1; - -wire reg1_cs_0; -wire reg1_cs_1; - -wire reg4_cs_0; -wire reg4_cs_1; - -wire reg5_cs_0; -wire reg5_cs_1; - -wire reg6_cs_0; -wire reg6_cs_1; - -wire [15:0] data_out_reg_0; -wire [15:0] data_out_reg_1; -wire [15:0] data_out_reg_4; -wire [15:0] data_out_reg_5; -wire [15:0] data_out_reg_6; - - - -register_addr_decoder ad_dec ( - .rst_n(rst_n), - .addr(haddr), - .cs_in(~hcs_n), - - .reg0_cs_0 (reg0_cs_0), - .reg0_cs_1 (reg0_cs_1), - .reg1_cs_0 (reg1_cs_0), - .reg1_cs_1 (reg1_cs_1), - .reg4_cs_0 (reg4_cs_0), - .reg4_cs_1 (reg4_cs_1), - .reg5_cs_0 (reg5_cs_0), - .reg5_cs_1 (reg5_cs_1), - .reg6_cs_0 (reg6_cs_0), - .reg6_cs_1 (reg6_cs_1) -); - - -register_0_hb register_0 ( - .rst_n (rst_n), - .clk (hclk), - .cs_0 (reg0_cs_0), - .cs_1 (reg0_cs_1), - .write (~hwrite_n), - .ready (1'b1), - .data_in ({hdatain, hdatain}), - - .data_out (data_out_reg_0), - .mr_main_reset (mr_main_reset), - .mr_an_enable (mr_an_enable), - .mr_restart_an (mr_restart_an) -); - - -register_1_hb register_1 ( - .rst_n (rst_n), - .cs_0 (reg1_cs_0), - .cs_1 (reg1_cs_1), - .mr_an_complete (mr_an_complete), - - .data_out (data_out_reg_1) -); - - -register_4_hb register_4 ( - .rst_n (rst_n), - .clk (hclk), - .gbe_mode (gbe_mode), - .sgmii_mode (sgmii_mode), - .cs_0 (reg4_cs_0), - .cs_1 (reg4_cs_1), - .write (~hwrite_n), - .ready (1'b1), - .data_in ({hdatain, hdatain}), - - .data_out (data_out_reg_4), - .mr_adv_ability (mr_adv_ability) -); - - -register_5_hb register_5 ( - .rst_n (rst_n), - .mr_lp_adv_ability (mr_lp_adv_ability), - .cs_0 (reg5_cs_0), - .cs_1 (reg5_cs_1), - .ready (1'b1), - - .data_out (data_out_reg_5) -); - - -register_6_hb register_6 ( - .rst_n (rst_n), - .clk (hclk), - .mr_page_rx (mr_page_rx), - .cs_0 (reg6_cs_0), - .cs_1 (reg6_cs_1), - .write (~hwrite_n), - .ready (1'b1), - - .data_out (data_out_reg_6) -); - - - -// generate an ack -always @(posedge hclk or negedge rst_n) begin - if (rst_n == 1'b0) begin - hcs_n_delayed <= 1'b1; - hr <= 1'b1; - hready_n <= 1'b1; - end - else begin - hcs_n_delayed <= hcs_n; - - //assert on falling edge of delayed chip select - hr <= ~hcs_n & hcs_n_delayed; - hready_n <= ~hr; - end -end - - - -// Mux Register Read-Data Outputs -always @(posedge hclk or negedge rst_n) -begin - if (rst_n == 1'b0) begin - hdataout <= 8'd0; - end - else begin - case (haddr[3:0]) - - 4'd0: - begin - hdataout <= data_out_reg_0[7:0]; - end - - - 4'd1: - begin - hdataout <= data_out_reg_0[15:8]; - end - - ///////////////////////////////////////////// - - 4'd2: - begin - hdataout <= data_out_reg_1[7:0]; - end - - - 4'd3: - begin - hdataout <= data_out_reg_1[15:8]; - end - - ///////////////////////////////////////////// - - 4'd8: - begin - hdataout <= data_out_reg_4[7:0]; - end - - - 4'd9: - begin - hdataout <= data_out_reg_4[15:8]; - end - - ///////////////////////////////////////////// - - 4'd10: - begin - hdataout <= data_out_reg_5[7:0]; - end - - - 4'd11: - begin - hdataout <= data_out_reg_5[15:8]; - end - - ///////////////////////////////////////////// - - 4'd12: - begin - hdataout <= data_out_reg_6[7:0]; - end - - - 4'd13: - begin - hdataout <= data_out_reg_6[15:8]; - end - - ///////////////////////////////////////////// - - default: - begin - hdataout <= 8'd0; - end - endcase - end -end - -endmodule - -module register_addr_decoder ( - rst_n, - addr, - cs_in, - - reg0_cs_0, - reg0_cs_1, - - reg1_cs_0, - reg1_cs_1, - - reg4_cs_0, - reg4_cs_1, - - reg5_cs_0, - reg5_cs_1, - - reg6_cs_0, - reg6_cs_1 -); - -input rst_n; -input cs_in; -input [3:0] addr; - -output reg0_cs_0; -output reg0_cs_1; - -output reg1_cs_0; -output reg1_cs_1; - -output reg4_cs_0; -output reg4_cs_1; - -output reg5_cs_0; -output reg5_cs_1; - -output reg6_cs_0; -output reg6_cs_1; - -////////////////////////// - -wire reg0_cs_0; -wire reg0_cs_1; - -wire reg1_cs_0; -wire reg1_cs_1; - -wire reg4_cs_0; -wire reg4_cs_1; - -wire reg5_cs_0; -wire reg5_cs_1; - -wire reg6_cs_0; -wire reg6_cs_1; - -////////////////////////// - -assign reg0_cs_0 = (addr == 4'h0) ? cs_in : 1'b0; -assign reg0_cs_1 = (addr == 4'h1) ? cs_in : 1'b0; - -assign reg1_cs_0 = (addr == 4'h2) ? cs_in : 1'b0; -assign reg1_cs_1 = (addr == 4'h3) ? cs_in : 1'b0; - -assign reg4_cs_0 = (addr == 4'h8) ? cs_in : 1'b0; -assign reg4_cs_1 = (addr == 4'h9) ? cs_in : 1'b0; - -assign reg5_cs_0 = (addr == 4'ha) ? cs_in : 1'b0; -assign reg5_cs_1 = (addr == 4'hb) ? cs_in : 1'b0; - -assign reg6_cs_0 = (addr == 4'hc) ? cs_in : 1'b0; -assign reg6_cs_1 = (addr == 4'hd) ? cs_in : 1'b0; - - -endmodule - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii33/reset_controller_cdr.v b/gbe2_ecp3/ipcores_ecp3/sgmii33/reset_controller_cdr.v deleted file mode 100755 index fa0a645..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii33/reset_controller_cdr.v +++ /dev/null @@ -1,219 +0,0 @@ -//************************************************************************** -// ************************************************************************* -// * LATTICE SEMICONDUCTOR CONFIDENTIAL * -// * PROPRIETARY NOTE * -// * * -// * This software contains information confidential and proprietary * -// * to Lattice Semiconductor Corporation. It shall not be reproduced * -// * in whole or in part, or transferred to other documents, or disclosed * -// * to third parties, or used for any purpose other than that for which * -// * it was obtained, without the prior written consent of Lattice * -// * Semiconductor Corporation. All rights reserved. * -// * * -// ************************************************************************* -//************************************************************************** - -//////////////////////////////////////////////////////////////////////// -// This module forces a RESET to the SERDES CDR -// when the CDR either loses lock or loses signal -//////////////////////////////////////////////////////////////////////// - -`timescale 1ns/100ps - -module reset_controller_cdr ( - - rst_n, - clk, - - cdr_lol, - - cdr_rst_out - ); - -input rst_n; -input clk; // 125Mhz clock - -input cdr_lol; - -output cdr_rst_out; - - -/////////////////////////////////////// - -reg cdr_rst_out; - -reg cdr_lol_mstb_1; -reg cdr_lol_mstb_2; - - -reg sht_mx; -reg [5:0] sht_count; - -reg lng_mx; -reg [22:0] lng_count; - -reg cnt_rst; -parameter - ASSRT_RST = 3'd0, - WAIT_SHORT = 3'd1, - DSSRT_RST = 3'd2, - WAIT_LONG = 3'd3, - SEEK_CDR_ERR = 3'd4, - SEEK_SIGNAL_RESTORE = 3'd5; -reg[2:0] fsm; - -////////////////////////////////////// -// Mestastability Filter -////////////////////////////////////// -always @(posedge clk or negedge rst_n) -begin - if (rst_n == 1'b0) begin - cdr_lol_mstb_1 <= 1'b1; - cdr_lol_mstb_2 <= 1'b1; - - - end - else begin - cdr_lol_mstb_1 <= cdr_lol; - cdr_lol_mstb_2 <= cdr_lol_mstb_1; - - end -end - - - -/////////////////////////////////////// -// Operate Short Timer (256 nsec) -/////////////////////////////////////// -always @(posedge clk or negedge rst_n) -begin - if (rst_n == 1'b0) begin - sht_mx <= 1'b0; - sht_count <= 6'd0; - end - else begin - - // define max count - if (sht_count[5] && (!cnt_rst)) begin - sht_mx <= 1'b1; - end - else begin - sht_mx <= 1'b0; - end - - // operate counter - if (cnt_rst) begin - sht_count <= 6'd0; //clear - end - else if (sht_mx) begin - sht_count <= sht_count; //hold - end - else begin - sht_count <= sht_count + 1; //count - end - end -end - - -///////////////////////////////////// -// Operate Long Timer (33 msec) -///////////////////////////////////// -always @(posedge clk or negedge rst_n) -begin - if (rst_n == 1'b0) begin - lng_mx <= 1'b0; - lng_count <= 23'd0; - end - else begin - - // define max count - if (lng_count[22] && (!cnt_rst)) begin - lng_mx <= 1'b1; - end - else begin - lng_mx <= 1'b0; - end - - // operate counter - if (cnt_rst) begin - lng_count <= 6'd0; //clear - end - else if (lng_mx) begin - lng_count <= lng_count; //hold - end - else begin - lng_count <= lng_count + 1; //count - end - end -end - - -///////////////////////////////////// -// State Machine -///////////////////////////////////// -always @(posedge clk or negedge rst_n) -begin - if (rst_n == 1'b0) begin - cdr_rst_out <= 1'b1; - cnt_rst <= 1'b1; - fsm <= ASSRT_RST; - end - else begin - - // defaults - cnt_rst <= 1'b0; - - case (fsm) - ASSRT_RST: begin - cdr_rst_out <= 1'b1; // assert - cnt_rst <= 1'b1; - fsm <= WAIT_SHORT; - end - - WAIT_SHORT: begin - // wait for 256 nsec - if (sht_mx && (!cnt_rst)) begin - fsm <= DSSRT_RST; - end - end - - DSSRT_RST: begin - cdr_rst_out <= 1'b0; // de-assert - fsm <= WAIT_LONG; - end - - WAIT_LONG: begin - // wait for 33 msec - if (lng_mx && (!cnt_rst)) begin - fsm <= SEEK_CDR_ERR; - end - end - - SEEK_CDR_ERR: begin - - cnt_rst <= 1'b1; - - - // Wait for CDR to fail - if (cdr_lol_mstb_2) begin - fsm <= ASSRT_RST; - end - else begin - fsm <= SEEK_CDR_ERR; - end - end - - - - default: begin - fsm <= ASSRT_RST; - end - endcase - - end -end - - - -endmodule - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii33/reset_controller_pcs.v b/gbe2_ecp3/ipcores_ecp3/sgmii33/reset_controller_pcs.v deleted file mode 100755 index 9d2e584..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii33/reset_controller_pcs.v +++ /dev/null @@ -1,226 +0,0 @@ -//************************************************************************** -// ************************************************************************* -// * LATTICE SEMICONDUCTOR CONFIDENTIAL * -// * PROPRIETARY NOTE * -// * * -// * This software contains information confidential and proprietary * -// * to Lattice Semiconductor Corporation. It shall not be reproduced * -// * in whole or in part, or transferred to other documents, or disclosed * -// * to third parties, or used for any purpose other than that for which * -// * it was obtained, without the prior written consent of Lattice * -// * Semiconductor Corporation. All rights reserved. * -// * * -// ************************************************************************* -//************************************************************************** - -//////////////////////////////////////////////////////////////////////// -// This module implements the SERDES/PCS reset sequence as specified -// in Figure 47 of Lattice Technical Note TN1176 -//////////////////////////////////////////////////////////////////////// - -`timescale 1ns/100ps - -module reset_controller_pcs ( - - rst_n, - clk, - - tx_plol, - rx_cdr_lol, - - quad_rst_out, - tx_pcs_rst_out, - rx_pcs_rst_out - ); - -input rst_n; -input clk; // 125Mhz clock - -input tx_plol; -input rx_cdr_lol; - -output quad_rst_out; -output tx_pcs_rst_out; -output rx_pcs_rst_out; - - -/////////////////////////////////////// - -reg quad_rst_out; -reg tx_pcs_rst_out; -reg rx_pcs_rst_out; - -reg q_mx; -reg [3:0] q_count; - -reg rx_cdr_lol_mstb_1; -reg rx_cdr_lol_mstb_2; - -reg wd_mx; -reg wd_mx_d1; -reg wd_mx_re; -reg [22:0] wd_count; -reg watchdog_flag; - -//////////////////////////////////////////////////////// -// Assert Quad RST For 8 Clocks After Device Hard Reset -//////////////////////////////////////////////////////// -always @(posedge clk or negedge rst_n) -begin - if (rst_n == 1'b0) begin - q_mx <= 1'b0; - q_count <= 4'd0; - quad_rst_out <= 1'b1; // assert - end - else begin - - // define max count - if (q_count[3]) begin - q_mx <= 1'b1; - end - else begin - q_mx <= 1'b0; - end - - // operate counter - if (q_mx) begin - q_count <= q_count; //hold - end - else begin - q_count <= q_count + 1; //count - end - - // operate quad reset - if (q_mx) begin - quad_rst_out <= 1'b0; //de-assert on max-count - end - else begin - quad_rst_out <= 1'b1; //assert otherwise - end - end -end - - -//////////////////////////////////////////////////////////////////// -// Watchdog Timer -- In Case PLLs Don't Acquire Lock Within 33msec -//////////////////////////////////////////////////////////////////// -always @(posedge clk or negedge rst_n) -begin - if (rst_n == 1'b0) begin - wd_mx <= 1'b0; - wd_mx_d1 <= 1'b0; - wd_mx_re <= 1'b0; - wd_count <= 23'd0; - watchdog_flag <= 1'b0; - end - else begin - - // define max count - if (wd_count[22]) begin - wd_mx <= 1'b1; - end - else begin - wd_mx <= 1'b0; - end - - // operate counter - if (quad_rst_out) begin - wd_count <= 23'd0; //clear - end - else if (wd_mx) begin - wd_count <= wd_count; //hold - end - else begin - wd_count <= wd_count + 1; //count - end - - // detect rising edge of max_count flag - wd_mx_d1 <= wd_mx; - - wd_mx_re <= wd_mx & (!wd_mx_d1); - - // generate watchdog flag - watchdog_flag <= wd_mx_re; - end -end - - - - -//////////////////////////////////////////////// -// De-Assert TX PCS After TX PLL Acquires Lock -//////////////////////////////////////////////// -always @(posedge clk or negedge rst_n) -begin - if (rst_n == 1'b0) begin - tx_pcs_rst_out <= 1'b1; // assert - end - else begin - - case (tx_pcs_rst_out) - 1'b1: begin - // if asserted, wait for PLL to acquire lock - if ((!quad_rst_out && (!tx_plol)) || watchdog_flag) begin - tx_pcs_rst_out <= 1'b0; // deassert - end - end - - 1'b0: begin - // if de-asserted, stay that way - tx_pcs_rst_out <= 1'b0; // deassert - end - - default: begin - tx_pcs_rst_out <= 1'b1; // assert - end - endcase - - end -end - - - - - -/////////////////////////////////////////////////////// -// De-Assert RX PCS-Chan-0 After RX CDR Acquires Lock -/////////////////////////////////////////////////////// -always @(posedge clk or negedge rst_n) -begin - if (rst_n == 1'b0) begin - rx_pcs_rst_out <= 1'b1; // assert - rx_cdr_lol_mstb_1 <= 1'b1; - rx_cdr_lol_mstb_2 <= 1'b1; - end - else begin - - // metastability - filter - rx_cdr_lol_mstb_1 <= rx_cdr_lol; - rx_cdr_lol_mstb_2 <= rx_cdr_lol_mstb_1; - - case (rx_pcs_rst_out) - 1'b1: begin - // if asserted, wait for CDR to acquire lock - if ((!quad_rst_out && (!rx_cdr_lol_mstb_2)) || watchdog_flag) begin - rx_pcs_rst_out <= 1'b0; // deassert - end - end - - 1'b0: begin - // if de-asserted, stay that way - rx_pcs_rst_out <= 1'b0; // deassert - end - - default: begin - rx_pcs_rst_out <= 1'b1; // assert - end - endcase - - end -end - - - - -endmodule - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii33/sgmii_channel_smi.v b/gbe2_ecp3/ipcores_ecp3/sgmii33/sgmii_channel_smi.v deleted file mode 100644 index a97ca4f..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii33/sgmii_channel_smi.v +++ /dev/null @@ -1,237 +0,0 @@ -//************************************************************************** -// ************************************************************************* -// * LATTICE SEMICONDUCTOR CONFIDENTIAL * -// * PROPRIETARY NOTE * -// * * -// * This software contains information confidential and proprietary * -// * to Lattice Semiconductor Corporation. It shall not be reproduced * -// * in whole or in part, or transferred to other documents, or disclosed * -// * to third parties, or used for any purpose other than that for which * -// * it was obtained, without the prior written consent of Lattice * -// * Semiconductor Corporation. All rights reserved. * -// * * -// ************************************************************************* -//************************************************************************** - -`timescale 1ns/100ps - -module sgmii_channel_smi ( - - // Control Interface - rst_n, - gbe_mode, - sgmii_mode, - signal_detect, - debug_link_timer_short, - rx_compensation_err, - non_an_rate, - - // G/MII Interface - in_clk_gmii, - in_clk_mii, - data_in_mii, - en_in_mii, - err_in_mii, - - out_clk_gmii, - out_clk_mii, - data_out_mii, - dv_out_mii, - err_out_mii, - col_out_mii, - crs_out_mii, - - // 8-bit Interface - data_out_8bi, - kcntl_out_8bi, - disparity_cntl_out_8bi, - - serdes_recovered_clk, - data_in_8bi, - kcntl_in_8bi, - even_in_8bi, - disp_err_in_8bi, - cv_err_in_8bi, - err_decode_mode_8bi, - - // MDIO Port - mdc, - mdio, - port_id - ); - - - -// I/O Declarations -input rst_n ; // System Reset, Active Low -input signal_detect ; -input gbe_mode ; // GBE Mode (0=SGMII 1=GBE) -input sgmii_mode ; // SGMII PCS Mode (0=MAC 1=PHY) -input debug_link_timer_short ; // (0=NORMAL 1=SHORT) -output rx_compensation_err; // Active high pulse indicating RX_CTC_FIFO either underflowed or overflowed -input [1:0] non_an_rate ; // MII Rate Used When Autonegotiation is Disabled (00=10Mbps; 01=100Mbps; 10=1Gbps) - -input in_clk_mii ; // G/MII Transmit clock 2.5Mhz/25Mhz/125Mhz -input [7:0] data_in_mii ; // G/MII Tx data -input en_in_mii ; // G/MII data valid -input err_in_mii ; // G/MII Tx error - -input out_clk_mii ; // G/MII Receice clock 2.5Mhz/25Mhz/125MHz -output [7:0] data_out_mii ; // G/MII Rx data -output dv_out_mii ; // G/MII Rx data valid -output err_out_mii ; // G/MII Rx error -output col_out_mii ; // G/MII collision detect -output crs_out_mii ; // G/MII carrier sense detect - -output [7:0] data_out_8bi ; // 8BI Tx Data -output kcntl_out_8bi ; // 8BI Tx Kcntl -output disparity_cntl_out_8bi ; // 8BI Tx Kcntl - -input serdes_recovered_clk ; -input [7:0] data_in_8bi ; // 8BI Rx Data -input kcntl_in_8bi ; // 8BI Rx Kcntl -input even_in_8bi ; // 8BI Rx Even -input disp_err_in_8bi ; // 8BI Rx Disparity Error -input cv_err_in_8bi ; // 8BI Rx Coding Violation Error -input err_decode_mode_8bi ; // 8BI Error Decode Mode (0=NORMAL, 1=DECODE_MODE) - -input in_clk_gmii ; // GMII Transmit clock 125Mhz -input out_clk_gmii ; // GMII Receive clock 125Mhz - -input mdc; -inout mdio; -input [4:0] port_id; - - -wire mdin; -wire mdout; -wire mdout_en; - -// Internal Signals - -wire mr_an_complete; -wire mr_page_rx; -wire [15:0] mr_lp_adv_ability; - -wire mr_main_reset; -wire mr_an_enable; -wire mr_restart_an; -wire [15:0] mr_adv_ability; - -wire [1:0] operational_rate; - - - - - - - - -// SGMII PCS -sgmii33 sgmii33_U ( - // Clock and Reset - .rst_n (rst_n ), - .signal_detect (signal_detect), - .gbe_mode (gbe_mode), - .sgmii_mode (sgmii_mode), - .debug_link_timer_short (debug_link_timer_short), - .operational_rate (operational_rate), - .rx_compensation_err (rx_compensation_err), - .tx_clk_125 (in_clk_gmii), - .serdes_recovered_clk (serdes_recovered_clk), - .rx_clk_125 (out_clk_gmii), - - // Control - - - // (G)MII TX Port - .tx_clk_mii (in_clk_mii), - .tx_d (data_in_mii), - .tx_en (err_in_mii), - .tx_er (en_in_mii), - - // (G)MII RX Port - .rx_clk_mii (out_clk_mii), - .rx_d (data_out_mii), - .rx_dv (dv_out_mii), - .rx_er (err_out_mii), - .col (col_out_mii), - .crs (crs_out_mii), - - // 8BI TX Port - .tx_data (data_out_8bi), - .tx_kcntl (kcntl_out_8bi), - .tx_disparity_cntl (disparity_cntl_out_8bi), - - // 8BI RX Port - .rx_data (data_in_8bi), - .rx_kcntl (kcntl_in_8bi), - .rx_even (even_in_8bi), - .rx_disp_err (disp_err_in_8bi), - .rx_cv_err (cv_err_in_8bi), - .rx_err_decode_mode (err_decode_mode_8bi), - - // Management Interface I/O - .mr_adv_ability (mr_adv_ability), - .mr_an_enable (mr_an_enable), - .mr_main_reset (mr_main_reset), - .mr_restart_an (mr_restart_an), - - .mr_an_complete (mr_an_complete), - .mr_lp_adv_ability (mr_lp_adv_ability), - .mr_page_rx (mr_page_rx) - ); - - - -// SMI Register Interface for SGMII IP Core -register_interface_smi ri ( - - // Control Signals - .rst_n (rst_n), - .gbe_mode (gbe_mode), - .sgmii_mode (sgmii_mode), - - // MDIO Port - .mdc (mdc), - .mdin (mdin), - .mdout (mdout), - .mdout_en (mdout_en), - .port_id (port_id), - - // Register Outputs - .mr_an_enable (mr_an_enable), - .mr_restart_an (mr_restart_an), - .mr_main_reset (mr_main_reset), - .mr_adv_ability (mr_adv_ability), - - // Register Inputs - .mr_an_complete (mr_an_complete), - .mr_page_rx (mr_page_rx), - .mr_lp_adv_ability (mr_lp_adv_ability) - ); - - - -// (G)MII Rate Resolution for SGMII IP Core -rate_resolution rate_resolution ( - .gbe_mode (gbe_mode), - .sgmii_mode (sgmii_mode), - .an_enable (mr_an_enable), - .advertised_rate (mr_adv_ability[11:10]), - .link_partner_rate (mr_lp_adv_ability[11:10]), - .non_an_rate (non_an_rate), - - .operational_rate (operational_rate) -); - - - - - -// Bidirectional Assignments -assign mdio = mdout_en ? mdout : 1'bz; // MDIO Output -assign mdin = mdio; // MDIO Input - -endmodule - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/dummy.sty b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/dummy.sty deleted file mode 100644 index 8b13789..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/dummy.sty +++ /dev/null @@ -1 +0,0 @@ - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/generate_core.tcl b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/generate_core.tcl deleted file mode 100755 index 1561878..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/generate_core.tcl +++ /dev/null @@ -1,39 +0,0 @@ - -#!/usr/local/bin/wish - -set Para(cmd) "" -if ![catch {set temp $argc} result] { - if {$argc > 0} { - for {set i 0} {$i < $argc} {incr i 2} { - set temp [lindex $argv $i] - set temp [string range $temp 1 end] - lappend argv_list $temp - lappend value_list [lindex $argv [expr $i+1]] - } - foreach argument $argv_list value $value_list { - switch $argument { - "cmd" {set Para(cmd) $value;} - } - } - } -} - -set Para(ProjectPath) "/home/greg/projects/trbnet/gbe2_ecp2m/ipcores/sgmii_gbe_pcs32" -set Para(ModuleName) "sgmii_gbe_pcs32" -set Para(lib) "/home/greg/sgmii_gbepcs_v3.4/lib" -set Para(CoreName) "SGMII/Gb Ethernet PCS" -set Para(family) "latticeecp2m" -set Para(Family) "ep5m00" -set Para(design) "VHDL" - -lappend auto_path "/home/greg/sgmii_gbepcs_v3.4/gui" - -lappend auto_path "/home/greg/sgmii_gbepcs_v3.4/script" -package require Core_Generate - -lappend auto_path "/opt/lattice/ispLEVER8.1/isptools/ispcpld/tcltk/lib/ipwidgets/ispipbuilder/../runproc" -package require runcmd - -set Para(install_dir) "/opt/lattice/ispLEVER8.1/isptools/ispcpld/tcltk/lib/ipwidgets/ispipbuilder/../../../../.." - -set Para(result) [GenerateCore] diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo deleted file mode 100755 index d3c4b97c352a5cfa8fff25b327440ad74a0271e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35501 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 diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.cmd b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.cmd deleted file mode 100644 index 7f1592a..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.cmd +++ /dev/null @@ -1,14 +0,0 @@ -PROJECT: sgmii_gbe_pcs32 - working_path: "/home/greg/projects/trbnet/gbe2_ecp2m/ipcores/sgmii_gbe_pcs32/syn_results" - module: sgmii_gbe_pcs32 - - verilog_file_list: "/opt/lattice/ispLEVER8.1/isptools/ispcpld/tcltk/lib/ipwidgets/ispipbuilder/../../../../../cae_library/synthesis/verilog/ecp2m.v" "/home/greg/projects/trbnet/gbe2_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32_wrapper.v" "/home/greg/sgmii_gbepcs_v3.4/lib/../sgmii_pcs_eval/username/src/ertl/ertl.v" - - suffix_name: edi - output_file_name: sgmii_gbe_pcs32 - write_prf: false - vlog_std_v2001: true - disable_io_insertion: true - STYFILENAME: dummy.sty - -force_gsr: false diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc deleted file mode 100755 index c91da93..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc +++ /dev/null @@ -1,26 +0,0 @@ -[Device] -Family=ep5m00 -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=IPCFG -CoreStatus=Demo -CoreName=SGMII/Gb Ethernet PCS -CoreRevision=3.2 -ModuleName=sgmii_gbe_pcs32 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=06/17/2011 -Time=11:34:20 - -[Parameters] -RX_CTC=2 -RX_CTC_LOW=16 -RX_CTC_HIGH=32 -EasyConnect=1 diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo deleted file mode 100755 index 4bfd6e06e5be71df4f7969a47cabece5ca352283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377069 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 diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_bb.v b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_bb.v deleted file mode 100755 index 8930efc..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_bb.v +++ /dev/null @@ -1,127 +0,0 @@ -//============================================================================= -// Verilog module generated by IPExpress 12/10/2009 15:57:55 -// Filename: sgmii_gbe_pcs32_bb.v -// Copyright(c) 2008 Lattice Semiconductor Corporation. All rights reserved. -//============================================================================= - -//--------------------------------------------------------------- -// sgmii_gbe_pcs32 synthesis black box definition -//--------------------------------------------------------------- - -/* WARNING - Changes to this file should be performed by re-running IPexpress -or modifying the .LPC file and regenerating the core. Other changes may lead -to inconsistent simulation and/or implemenation results */ - - - - - - -module sgmii_gbe_pcs32 ( - // Control Interface - rst_n, - signal_detect, - gbe_mode, - sgmii_mode, - operational_rate, - debug_link_timer_short, - rx_compensation_err, - - // G/MII Interface - tx_clock_enable_sink , - tx_clock_enable_source , - tx_clk_125, - tx_d, - tx_en, - tx_er, - - rx_clock_enable_sink , - rx_clock_enable_source , - rx_clk_125, - rx_d, - rx_dv, - rx_er, - col, - crs, - - // 8-bit Interface - tx_data, - tx_kcntl, - tx_disparity_cntl, - - serdes_recovered_clk, - rx_data, - rx_kcntl, - rx_even , - rx_disp_err , - rx_cv_err , - rx_err_decode_mode , - - // Managment Control Outputs - mr_an_complete, - mr_page_rx, - mr_lp_adv_ability, - - // Managment Control Inputs - mr_main_reset, - mr_an_enable, - mr_restart_an, - mr_adv_ability - ); - - - -// Control Interface -input rst_n ; -input signal_detect ; -input gbe_mode ; -input sgmii_mode ; -input [1:0] operational_rate ; -input debug_link_timer_short ; -output rx_compensation_err ; - -// G/MII Interface -input tx_clock_enable_sink; -output tx_clock_enable_source; -input tx_clk_125 ; -input [7:0] tx_d ; -input tx_en ; -input tx_er ; - -input rx_clock_enable_sink; -output rx_clock_enable_source; -input rx_clk_125 ; -output [7:0] rx_d ; -output rx_dv ; -output rx_er ; -output col ; -output crs ; - -// 8-bit Interface -output [7:0] tx_data ; -output tx_kcntl; -output tx_disparity_cntl; - -input serdes_recovered_clk ; -input [7:0] rx_data ; -input rx_even ; -input rx_kcntl; -input rx_disp_err ; -input rx_cv_err ; -input rx_err_decode_mode ; - -// Managment Control Outputs -output mr_an_complete; -output mr_page_rx; -output [15:0] mr_lp_adv_ability; - -// Managment Control Inputs -input mr_main_reset; -input mr_an_enable; -input mr_restart_an; -input [15:0] mr_adv_ability; - - - -endmodule - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_beh.v b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_beh.v deleted file mode 100755 index aa3390e..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/sgmii_gbe_pcs32_beh.v +++ /dev/null @@ -1,5165 +0,0 @@ -// sgmii_pcs_core_beh_pp.v generated by Lattice IP Model Creator version 1 -// created on Wed Mar 11 09:41:50 CST 2009 -// Copyright(c) 2007 Lattice Semiconductor Corporation. All rights reserved -// obfuscator_exe version 1.mar0807 - -// top - - -`define SGMII_NO_ENC - -`define SGMII_YES_CTC_DYNAMIC - -`define SGMII_FIFO_FAMILY_ECP2M - -`define SGMII_YES_SINGLE_CLOCK - - - - -`timescale 1 ns / 100 ps -module xwfb762 (icdbb13, fndd899, dzec4ce, ww62677, nt133b8, je99dc6, - gocee32, ay77190, dob8c81, gbc640b, db3205d, cb902ef, fp8177d, - pubbee); -input [17:0] icdbb13; -input fndd899; -input dzec4ce; -input ww62677; -input nt133b8; -input je99dc6; -input gocee32; -input [9:0] ay77190; -input [9:0] dob8c81; -output [17:0] gbc640b; -output db3205d; -output cb902ef; -output fp8177d; -output pubbee; -reg [17 : 0] hqbd2d7; -reg jpe96ba; -reg uv4b5d7; -reg pf5aebd; -reg jpd75ef; -reg fpbaf7e; -reg thd7bf6; -reg [9 : 0] jebdfb7; -reg [9 : 0] ayefdbb; -reg [2047:0] bl7edd9; -wire [8:0] nrf6ece; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -localparam zmb7676 = 9,wlbb3b3 = 32'hfdfff40b; -localparam [31:0] czd9d9d = wlbb3b3; -localparam vi76760 = wlbb3b3 & 4'hf; -localparam [11:0] gq9d818 = 'h7ff; -wire [(1 << vi76760) -1:0] kd60607; -reg [zmb7676-1:0] yz181ef; -reg [vi76760-1:0] oh7beb [0:1]; -reg [vi76760-1:0] qgefae7; -reg ww7d739; -integer xweb9c8; -integer ay5ce43; - -AND2 ofe7218 (.A(ww62677), .B(fnc8624), .Z(su43126)); INV ux18931 (.A(qgc498c), .Z(fnc8624)); AND2 ir26308 (.A(nt133b8), .B(tw8c221), .Z(dz6110a)); INV ux8857 (.A(of442bd), .Z(tw8c221)); OR2 gqaf61 (.A(je99dc6), .B(gocee32), .Z(vvec21b)); XOR2 nr610df (.A(wl86ff), .B(yk437fc), .Z(pu1bfe1)); XOR2 hodff0b (.A(yk437fc), .B(jpfc2d8), .Z(xwe16c6)); XOR2 xyb633 (.A(jpfc2d8), .B(hbd8cdc), .Z(shc66e6)); XOR2 ux33735 (.A(hbd8cdc), .B(mrdcd6f), .Z(hbe6b7c)); XOR2 zm35be7 (.A(mrdcd6f), .B(ip6f9da), .Z(lq7ced5)); XOR2 she76ab (.A(ip6f9da), .B(nedaae1), .Z(rgd570b)); XOR2 uxab85b (.A(nedaae1), .B(hoe16e9), .Z(zmb74b)); XOR2 cz5ba5b (.A(hoe16e9), .B(nre96ef), .Z(al4b77f)); XOR2 kd5bbfd (.A(nre96ef), .B(ykeff6e), .Z(kd7fb71)); XOR2 gbfdb8c (.A(ykeff6e), .B(dz6e32c), .Z(vv71966)); XOR2 pu8cb37 (.A(al659bb), .B(sj2cddc), .Z(jc66ee4)); XOR2 rv37723 (.A(sj2cddc), .B(gbdc8fc), .Z(jce47e4)); XOR2 qv23f23 (.A(gbdc8fc), .B(hbfc8e9), .Z(lqe474f)); XOR2 gd23a7b (.A(hbfc8e9), .B(hbe9eed), .Z(bl4f76e)); XOR2 th7bb77 (.A(hbe9eed), .B(wjeddf6), .Z(rt6efb4)); XOR2 ea77da7 (.A(wjeddf6), .B(blf69c4), .Z(irb4e26)); XOR2 pua7135 (.A(blf69c4), .B(ayc4d57), .Z(gd26ab9)); XOR2 ri355cd (.A(ayc4d57), .B(dm57357), .Z(gqb9aba)); XOR2 fncd5d1 (.A(dm57357), .B(dm57475), .Z(jrba3aa)); XOR2 ayd1d57 (.A(dm57475), .B(qt755c6), .Z(zzaae34)); defparam rg571a7.initval = 16'h6996 ; ROM16X1 rg571a7 (.AD3(yxc69d3), .AD2(ks34e9c), .AD1(fca74e1), .AD0(fc3a70a), .DO0(wjd3853)) ; defparam hq9c29d.initval = 16'h6996 ; ROM16X1 hq9c29d (.AD3(gqa75b), .AD2(ea53ad9), .AD1(sw9d6c9), .AD0(faeb649), .DO0(kd5b24a)) ; defparam qtd9254.initval = 16'h6996 ; ROM16X1 qtd9254 (.AD3(fca74e1), .AD2(fc3a70a), .AD1(ip54b06), .AD0(ip54b06), .DO0(ux2c1a6)) ; defparam en60d35.initval = 16'h6996 ; ROM16X1 en60d35 (.AD3(ks34e9c), .AD2(fca74e1), .AD1(fc3a70a), .AD0(ip54b06), .DO0(fa66258)) ; defparam ec312c2.initval = 16'h6996 ; ROM16X1 ec312c2 (.AD3(faeb649), .AD2(yxc69d3), .AD1(ks34e9c), .AD0(ux2c1a6), .DO0(mg82af9)) ; defparam sw157c8.initval = 16'h6996 ; ROM16X1 sw157c8 (.AD3(sw9d6c9), .AD2(faeb649), .AD1(yxc69d3), .AD0(fa66258), .DO0(yzddb5)) ; defparam vv6edad.initval = 16'h6996 ; ROM16X1 vv6edad (.AD3(ea53ad9), .AD2(sw9d6c9), .AD1(faeb649), .AD0(wjd3853), .DO0(al7a1d4)) ; defparam hod0ea5.initval = 16'h6996 ; ROM16X1 hod0ea5 (.AD3(wjd3853), .AD2(kd5b24a), .AD1(ip54b06), .AD0(ip54b06), .DO0(en5143a)) ; defparam ux8a1d5.initval = 16'h6996 ; ROM16X1 ux8a1d5 (.AD3(wjd3853), .AD2(kd5b24a), .AD1(tud5b8a), .AD0(ip54b06), .DO0(ld6e292)) ; defparam hb71496.initval = 16'h6996 ; ROM16X1 hb71496 (.AD3(wjd3853), .AD2(kd5b24a), .AD1(xy96d51), .AD0(tud5b8a), .DO0(jrb5458)) ; defparam vxaa2c6.initval = 16'h6996 ; ROM16X1 vxaa2c6 (.AD3(bn8b1b5), .AD2(xy96d51), .AD1(tud5b8a), .AD0(ip54b06), .DO0(xlb5ea4)) ; defparam hdaf527.initval = 16'h6996 ; ROM16X1 hdaf527 (.AD3(wjd3853), .AD2(kd5b24a), .AD1(xlb5ea4), .AD0(ip54b06), .DO0(byf4138)) ; defparam jra09c2.initval = 16'h6996 ; ROM16X1 jra09c2 (.AD3(rv270b3), .AD2(zz3859e), .AD1(xjc2cf6), .AD0(fp167b6), .DO0(wyb3db6)) ; defparam vx9edb0.initval = 16'h6996 ; ROM16X1 vx9edb0 (.AD3(mgb6c3e), .AD2(qib61f0), .AD1(dbb0f81), .AD0(aa87c0f), .DO0(aa3e078)) ; defparam gof03c1.initval = 16'h6996 ; ROM16X1 gof03c1 (.AD3(xjc2cf6), .AD2(fp167b6), .AD1(ip54b06), .AD0(ip54b06), .DO0(rg47205)) ; defparam mt3902b.initval = 16'h6996 ; ROM16X1 mt3902b (.AD3(zz3859e), .AD2(xjc2cf6), .AD1(fp167b6), .AD0(ip54b06), .DO0(pfe6e08)) ; defparam nt37047.initval = 16'h6996 ; ROM16X1 nt37047 (.AD3(aa87c0f), .AD2(rv270b3), .AD1(zz3859e), .AD0(rg47205), .DO0(cmfa153)) ; defparam xwd0a99.initval = 16'h6996 ; ROM16X1 xwd0a99 (.AD3(dbb0f81), .AD2(aa87c0f), .AD1(rv270b3), .AD0(pfe6e08), .DO0(sh5441a)) ; defparam baa20d5.initval = 16'h6996 ; ROM16X1 baa20d5 (.AD3(qib61f0), .AD2(dbb0f81), .AD1(aa87c0f), .AD0(wyb3db6), .DO0(mr5165e)) ; defparam hd8b2f5.initval = 16'h6996 ; ROM16X1 hd8b2f5 (.AD3(wyb3db6), .AD2(aa3e078), .AD1(ip54b06), .AD0(ip54b06), .DO0(fa7914e)) ; defparam thc8a72.initval = 16'h6996 ; ROM16X1 thc8a72 (.AD3(wyb3db6), .AD2(aa3e078), .AD1(ww72fa5), .AD0(ip54b06), .DO0(cbbe941)) ; defparam tuf4a0c.initval = 16'h6996 ; ROM16X1 tuf4a0c (.AD3(wyb3db6), .AD2(aa3e078), .AD1(phc7fd), .AD0(ww72fa5), .DO0(gq1ff73)) ; defparam meffb99.initval = 16'h6996 ; ROM16X1 meffb99 (.AD3(byee645), .AD2(phc7fd), .AD1(ww72fa5), .AD0(ip54b06), .DO0(th454df)) ; defparam xy2a6fe.initval = 16'h6996 ; ROM16X1 xy2a6fe (.AD3(wyb3db6), .AD2(aa3e078), .AD1(th454df), .AD0(ip54b06), .DO0(yz90edd)) ; XOR2 sw876ec (.A(dz6e32c), .B(fp167b6), .Z(xjdd849)); XOR2 rtec24e (.A(fc3a70a), .B(qt755c6), .Z(me49dfe)); defparam cz4eff1.initval = 16'h0410 ; ROM16X1 cz4eff1 (.AD3(fpbfc60), .AD2(qt755c6), .AD1(fc3a70a), .AD0(ip54b06), .DO0(en60cda)) ; defparam zz66d4.initval = 16'h1004 ; ROM16X1 zz66d4 (.AD3(fpbfc60), .AD2(qt755c6), .AD1(fc3a70a), .AD0(ip54b06), .DO0(db3dcc3)) ; defparam faee61f.initval = 16'h0140 ; ROM16X1 faee61f (.AD3(wy987d3), .AD2(dz6e32c), .AD1(fp167b6), .AD0(ip54b06), .DO0(ipd3301)) ; defparam vk9980c.initval = 16'h4001 ; ROM16X1 vk9980c (.AD3(wy987d3), .AD2(dz6e32c), .AD1(fp167b6), .AD0(ip54b06), .DO0(ba14af1)) ; INV tja578a (.A(qi2bc57), .Z(yx5e2b9)); AND2 xwf15cc (.A(cb8ae62), .B(yx5e2b9), .Z(ukb98a2)); AND2 mrcc511 (.A(cb8ae62), .B(qi2bc57), .Z(doa230b)); defparam pu1185a.CSDECODE_R = 3'b000 ; defparam pu1185a.CSDECODE_W = 3'b000 ; defparam pu1185a.GSR = "ENABLED" ; defparam pu1185a.RESETMODE = "ASYNC" ; defparam pu1185a.REGMODE = "NOREG" ; defparam pu1185a.DATA_WIDTH_R = 18 ; defparam pu1185a.DATA_WIDTH_W = 18 ; PDP16KA pu1185a (.DI0(icdbb13[0]), .DI1(icdbb13[1]), .DI2(icdbb13[2]), .DI3(icdbb13[3]), .DI4(icdbb13[4]), .DI5(icdbb13[5]), .DI6(icdbb13[6]), .DI7(icdbb13[7]), .DI8(icdbb13[8]), .DI9(icdbb13[9]), .DI10(icdbb13[10]), .DI11(icdbb13[11]), .DI12(icdbb13[12]), .DI13(icdbb13[13]), .DI14(icdbb13[14]), .DI15(icdbb13[15]), .DI16(icdbb13[16]), .DI17(icdbb13[17]), .DI18(icdbb13[0]), .DI19(icdbb13[1]), .DI20(icdbb13[2]), .DI21(icdbb13[3]), .DI22(icdbb13[4]), .DI23(icdbb13[5]), .DI24(icdbb13[6]), .DI25(icdbb13[7]), .DI26(icdbb13[8]), .DI27(icdbb13[9]), .DI28(icdbb13[10]), .DI29(icdbb13[11]), .DI30(icdbb13[12]), .DI31(icdbb13[13]), .DI32(icdbb13[14]), .DI33(icdbb13[15]), .DI34(icdbb13[16]), .DI35(icdbb13[17]), .ADW0(vve93e5), .ADW1(vve93e5), .ADW2(ip54b06), .ADW3(ip54b06), .ADW4(uie5e73), .ADW5(vk2f398), .ADW6(ho79cc2), .ADW7(kqce613), .ADW8(lq73099), .ADW9(mg984cb), .ADW10(ldc2659), .ADW11(rv132cf), .ADW12(pu9967e), .ADW13(gocb3f3), .CEW(su43126), .CLKW(fndd899), .WE(vve93e5), .CSW0(ip54b06), .CSW1(ip54b06), .CSW2(ip54b06), .ADR0(ip54b06), .ADR1(ip54b06), .ADR2(ip54b06), .ADR3(ip54b06), .ADR4(icde57a), .ADR5(alf2bd0), .ADR6(an95e84), .ADR7(lfaf424), .ADR8(gb7a126), .ADR9(dmd0935), .ADR10(jr849aa), .ADR11(ym24d57), .ADR12(cb26ab8), .ADR13(ls355c5), .CER(dz6110a), .CLKR(dzec4ce), .CSR0(ip54b06), .CSR1(ip54b06), .CSR2(ip54b06), .RST(je99dc6), .DO0(gbc640b[0]), .DO1(gbc640b[1]), .DO2(gbc640b[2]), .DO3(gbc640b[3]), .DO4(gbc640b[4]), .DO5(gbc640b[5]), . -DO6(gbc640b[6]), .DO7(gbc640b[7]), .DO8(gbc640b[8]), .DO9(gbc640b[9]), .DO10(gbc640b[10]), .DO11(gbc640b[11]), .DO12(gbc640b[12]), .DO13(gbc640b[13]), .DO14(gbc640b[14]), .DO15(gbc640b[15]), .DO16(gbc640b[16]), .DO17(gbc640b[17]), .DO18(), .DO19(), .DO20(), .DO21(), .DO22(), .DO23(), .DO24(), .DO25(), .DO26(), .DO27(), .DO28(), .DO29(), .DO30(), .DO31(), .DO32(), .DO33(), .DO34(), .DO35()) ; defparam mt9f303.GSR = "ENABLED" ; FD1P3BX mt9f303 (.D(mrcc0e7), .SP(su43126), .CK(fndd899), .PD(je99dc6), .Q(wl86ff)) ; defparam kf3cbb5.GSR = "ENABLED" ; FD1P3DX kf3cbb5 (.D(co2ed68), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(yk437fc)) ; defparam of415d9.GSR = "ENABLED" ; FD1P3DX of415d9 (.D(rg57660), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(jpfc2d8)) ; defparam ir2b25.GSR = "ENABLED" ; FD1P3DX ir2b25 (.D(aaac960), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(hbd8cdc)) ; defparam gqcad.GSR = "ENABLED" ; FD1P3DX gqcad (.D(fp32b4f), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(mrdcd6f)) ; defparam rt7e8d6.GSR = "ENABLED" ; FD1P3DX rt7e8d6 (.D(swa35b2), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(ip6f9da)) ; defparam gd9034b.GSR = "ENABLED" ; FD1P3DX gd9034b (.D(qvd2ef), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(nedaae1)) ; defparam ps7c711.GSR = "ENABLED" ; FD1P3DX ps7c711 (.D(jr1c457), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(hoe16e9)) ; defparam vxbf8e3.GSR = "ENABLED" ; FD1P3DX vxbf8e3 (.D(lde38f6), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(nre96ef)) ; defparam lsb7fde.GSR = "ENABLED" ; FD1P3DX lsb7fde (.D(meff796), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(ykeff6e)) ; defparam kfb1422.GSR = "ENABLED" ; FD1P3DX kfb1422 (.D(bl508a5), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(dz6e32c)) ; defparam aa2edd6.GSR = "ENABLED" ; FD1P3DX aa2edd6 (.D(pu1bfe1), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(oh8a7a4)) ; defparam qg53d25.GSR = "ENABLED" ; FD1P3DX qg53d25 (.D(xwe16c6), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(ld4f71c)) ; defparam vv7b8e7.GSR = "ENABLED" ; FD1P3DX vv7b8e7 (.D(shc66e6), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(uif5fa8)) ; defparam jrafd41.GSR = "ENABLED" ; FD1P3DX jrafd41 (.D(hbe6b7c), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(jp7e0e8)) ; defparam ayf0747.GSR = "ENABLED" ; FD1P3DX ayf0747 (.D(lq7ced5), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(hbc2b1e)) ; defparam ec158f6.GSR = "ENABLED" ; FD1P3DX ec158f6 (.D(rgd570b), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(rv816fe)) ; defparam hqb7f6.GSR = "ENABLED" ; FD1P3DX hqb7f6 (.D(zmb74b), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(co9d6b8)) ; defparam hoeb5c1.GSR = "ENABLED" ; FD1P3DX hoeb5c1 (.D(al4b77f), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(xw57c80)) ; defparam qvbe403.GSR = "ENABLED" ; FD1P3DX qvbe403 (.D(kd7fb71), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(gbedb34)) ; defparam qg6d9a4.GSR = "ENABLED" ; FD1P3DX qg6d9a4 (.D(vv71966), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(ep266b)) ; defparam nt1335d.GSR = "ENABLED" ; FD1P3DX nt1335d (.D(dz6e32c), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(ay72dd2)) ; defparam zm96e90.GSR = "ENABLED" ; FD1P3DX zm96e90 (.D(wl86ff), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(uie5e73)) ; defparam vidfd5b.GSR = "ENABLED" ; FD1P3DX vidfd5b (.D(yk437fc), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(vk2f398)) ; defparam hod0902.GSR = "ENABLED" ; FD1P3DX hod0902 (.D(jpfc2d8), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(ho79cc2)) ; defparam mgb9768.GSR = "ENABLED" ; FD1P3DX mgb9768 (.D(hbd8cdc), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(kqce613)) ; defparam mt2a70.GSR = "ENABLED" ; FD1P3DX mt2a70 (.D(mrdcd6f), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(lq73099)) ; defparam yz8b71.GSR = "ENABLED" ; FD1P3DX yz8b71 (.D(ip6f9da), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(mg984cb)) ; defparam fn7edcd.GSR = "ENABLED" ; FD1P3DX fn7edcd (.D(nedaae1), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(ldc2659)) ; defparam qib33fb.GSR = "ENABLED" ; FD1P3DX qib33fb (.D(hoe16e9), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(rv132cf)) ; defparam vi52aeb.GSR = "ENABLED" ; FD1P3DX vi52aeb (.D(nre96ef), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(pu9967e)) ; defparam czed6ae.GSR = "ENABLED" ; FD1P3DX czed6ae (.D(ykeff6e), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(gocb3f3)) ; defparam ea7756d.GSR = "ENABLED" ; FD1P3DX ea7756d (.D(dz6e32c), .SP(su43126), .CK(fndd899), .CD(je99dc6), .Q(wy987d3)) ; defparam ic72455.GSR = "ENABLED" ; FD1P3BX ic72455 (.D(tj91548), .SP(dz6110a), .CK(dzec4ce), .PD(vvec21b), .Q(al659bb)) ; defparam vi479cb.GSR = "ENABLED" ; FD1P3DX vi479cb (.D(qte72d5), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(sj2cddc)) ; defparam qiac87a.GSR = "ENABLED" ; FD1P3DX qiac87a (.D(gq21e87), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(gbdc8fc)) ; defparam jr38351.GSR = "ENABLED" ; FD1P3DX jr38351 (.D(and471), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(hbfc8e9)) ; defparam ba8c93f.GSR = "ENABLED" ; FD1P3DX ba8c93f (.D(mg24fde), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(hbe9eed)) ; defparam uif0ed0.GSR = "ENABLED" ; FD1P3DX uif0ed0 (.D(aa3b409), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(wjeddf6)) ; defparam ui494f6.GSR = "ENABLED" ; FD1P3DX ui494f6 (.D(su53d87), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(blf69c4)) ; defparam yz39ff9.GSR = "ENABLED" ; FD1P3DX yz39ff9 (.D(mr7fe6a), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(ayc4d57)) ; defparam al543f5.GSR = "ENABLED" ; FD1P3DX al543f5 (.D(ymfd6c), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(dm57357)) ; defparam kd60c53.GSR = "ENABLED" ; FD1P3DX kd60c53 (.D(qi314e7), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(dm57475)) ; defparam nt38a54.GSR = "ENABLED" ; FD1P3DX nt38a54 (.D(gd2953a), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(qt755c6)) ; defparam byd5d12.GSR = "ENABLED" ; FD1P3DX byd5d12 (.D(jc66ee4), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(sj95ca1)) ; defparam yzae50c.GSR = "ENABLED" ; FD1P3DX yzae50c (.D(jce47e4), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(ls20f3f)) ; defparam cb79fa.GSR = "ENABLED" ; FD1P3DX cb79fa (.D(lqe474f), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(fpa5ac0)) ; defparam hd2d606.GSR = "ENABLED" ; FD1P3DX hd2d606 (.D(bl4f76e), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(uxbe6f6)) ; defparam nrf37b5.GSR = "ENABLED" ; FD1P3DX nrf37b5 (.D(rt6efb4), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(ip7f3bf)) ; defparam vvf9dfd.GSR = "ENABLED" ; FD1P3DX vvf9dfd (.D(irb4e26), -.SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(ww781a8)) ; defparam xwc0d40.GSR = "ENABLED" ; FD1P3DX xwc0d40 (.D(gd26ab9), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(ba1e4f6)) ; defparam wjf27b2.GSR = "ENABLED" ; FD1P3DX wjf27b2 (.D(gqb9aba), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(gdabfd5)) ; defparam xj5fead.GSR = "ENABLED" ; FD1P3DX xj5fead (.D(jrba3aa), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(ps79094)) ; defparam vvc84a2.GSR = "ENABLED" ; FD1P3DX vvc84a2 (.D(zzaae34), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(gqb3bde)) ; defparam uk9def0.GSR = "ENABLED" ; FD1P3DX uk9def0 (.D(qt755c6), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(gqc04)) ; defparam db6021.GSR = "ENABLED" ; FD1P3DX db6021 (.D(al659bb), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(icde57a)) ; defparam rgd540c.GSR = "ENABLED" ; FD1P3DX rgd540c (.D(sj2cddc), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(alf2bd0)) ; defparam enf7f9b.GSR = "ENABLED" ; FD1P3DX enf7f9b (.D(gbdc8fc), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(an95e84)) ; defparam cb33fe6.GSR = "ENABLED" ; FD1P3DX cb33fe6 (.D(hbfc8e9), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(lfaf424)) ; defparam xl28fcf.GSR = "ENABLED" ; FD1P3DX xl28fcf (.D(hbe9eed), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(gb7a126)) ; defparam ls93ebd.GSR = "ENABLED" ; FD1P3DX ls93ebd (.D(wjeddf6), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(dmd0935)) ; defparam wwe0e99.GSR = "ENABLED" ; FD1P3DX wwe0e99 (.D(blf69c4), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(jr849aa)) ; defparam uk2b8fe.GSR = "ENABLED" ; FD1P3DX uk2b8fe (.D(ayc4d57), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(ym24d57)) ; defparam rt4f2d3.GSR = "ENABLED" ; FD1P3DX rt4f2d3 (.D(dm57357), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(cb26ab8)) ; defparam osd1d61.GSR = "ENABLED" ; FD1P3DX osd1d61 (.D(dm57475), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(ls355c5)) ; defparam ba353e8.GSR = "ENABLED" ; FD1P3DX ba353e8 (.D(qt755c6), .SP(dz6110a), .CK(dzec4ce), .CD(vvec21b), .Q(fpbfc60)) ; defparam xy86158.GSR = "ENABLED" ; FD1S3DX xy86158 (.D(oh8a7a4), .CK(dzec4ce), .CD(je99dc6), .Q(shc3703)) ; defparam tw1b81d.GSR = "ENABLED" ; FD1S3DX tw1b81d (.D(ld4f71c), .CK(dzec4ce), .CD(je99dc6), .Q(neeba75)) ; defparam zk5d3ab.GSR = "ENABLED" ; FD1S3DX zk5d3ab (.D(uif5fa8), .CK(dzec4ce), .CD(je99dc6), .Q(uv5bd24)) ; defparam uide925.GSR = "ENABLED" ; FD1S3DX uide925 (.D(jp7e0e8), .CK(dzec4ce), .CD(je99dc6), .Q(oh29703)) ; defparam ip4b81d.GSR = "ENABLED" ; FD1S3DX ip4b81d (.D(hbc2b1e), .CK(dzec4ce), .CD(je99dc6), .Q(nrec274)) ; defparam bl613a7.GSR = "ENABLED" ; FD1S3DX bl613a7 (.D(rv816fe), .CK(dzec4ce), .CD(je99dc6), .Q(pu3ff3b)) ; defparam suff9da.GSR = "ENABLED" ; FD1S3DX suff9da (.D(co9d6b8), .CK(dzec4ce), .CD(je99dc6), .Q(vid0f0a)) ; defparam uk87852.GSR = "ENABLED" ; FD1S3DX uk87852 (.D(xw57c80), .CK(dzec4ce), .CD(je99dc6), .Q(sj908ca)) ; defparam zz84654.GSR = "ENABLED" ; FD1S3DX zz84654 (.D(gbedb34), .CK(dzec4ce), .CD(je99dc6), .Q(yma69d4)) ; defparam ec34ea1.GSR = "ENABLED" ; FD1S3DX ec34ea1 (.D(ep266b), .CK(dzec4ce), .CD(je99dc6), .Q(tj948d)) ; defparam dz4a46e.GSR = "ENABLED" ; FD1S3DX dz4a46e (.D(ay72dd2), .CK(dzec4ce), .CD(je99dc6), .Q(kq7758f)) ; defparam hdbac79.GSR = "ENABLED" ; FD1S3DX hdbac79 (.D(sj95ca1), .CK(fndd899), .CD(vvec21b), .Q(cmce96b)) ; defparam xj74b58.GSR = "ENABLED" ; FD1S3DX xj74b58 (.D(ls20f3f), .CK(fndd899), .CD(vvec21b), .Q(ldc7df2)) ; defparam ks3ef96.GSR = "ENABLED" ; FD1S3DX ks3ef96 (.D(fpa5ac0), .CK(fndd899), .CD(vvec21b), .Q(bnb0962)) ; defparam nt84b17.GSR = "ENABLED" ; FD1S3DX nt84b17 (.D(uxbe6f6), .CK(fndd899), .CD(vvec21b), .Q(phbf54d)) ; defparam wwfaa6f.GSR = "ENABLED" ; FD1S3DX wwfaa6f (.D(ip7f3bf), .CK(fndd899), .CD(vvec21b), .Q(go7861c)) ; defparam alc30e0.GSR = "ENABLED" ; FD1S3DX alc30e0 (.D(ww781a8), .CK(fndd899), .CD(vvec21b), .Q(qi5b38)) ; defparam fp2d9c1.GSR = "ENABLED" ; FD1S3DX fp2d9c1 (.D(ba1e4f6), .CK(fndd899), .CD(vvec21b), .Q(hqe431)) ; defparam me7218b.GSR = "ENABLED" ; FD1S3DX me7218b (.D(gdabfd5), .CK(fndd899), .CD(vvec21b), .Q(os598c7)) ; defparam wjcc638.GSR = "ENABLED" ; FD1S3DX wjcc638 (.D(ps79094), .CK(fndd899), .CD(vvec21b), .Q(goc453f)) ; defparam zz229f8.GSR = "ENABLED" ; FD1S3DX zz229f8 (.D(gqb3bde), .CK(fndd899), .CD(vvec21b), .Q(thc74dd)) ; defparam ba3a6ef.GSR = "ENABLED" ; FD1S3DX ba3a6ef (.D(gqc04), .CK(fndd899), .CD(vvec21b), .Q(pf7b9f0)) ; defparam uvdcf86.GSR = "ENABLED" ; FD1S3DX uvdcf86 (.D(shc3703), .CK(dzec4ce), .CD(je99dc6), .Q(bn8b1b5)) ; defparam bna5251.GSR = "ENABLED" ; FD1S3DX bna5251 (.D(neeba75), .CK(dzec4ce), .CD(je99dc6), .Q(xy96d51)) ; defparam ww7d1e4.GSR = "ENABLED" ; FD1S3DX ww7d1e4 (.D(uv5bd24), .CK(dzec4ce), .CD(je99dc6), .Q(tud5b8a)) ; defparam ls455a.GSR = "ENABLED" ; FD1S3DX ls455a (.D(oh29703), .CK(dzec4ce), .CD(je99dc6), .Q(gqa75b)) ; defparam ec97337.GSR = "ENABLED" ; FD1S3DX ec97337 (.D(nrec274), .CK(dzec4ce), .CD(je99dc6), .Q(ea53ad9)) ; defparam mec1afa.GSR = "ENABLED" ; FD1S3DX mec1afa (.D(pu3ff3b), .CK(dzec4ce), .CD(je99dc6), .Q(sw9d6c9)) ; defparam pu8cf88.GSR = "ENABLED" ; FD1S3DX pu8cf88 (.D(vid0f0a), .CK(dzec4ce), .CD(je99dc6), .Q(faeb649)) ; defparam ph19281.GSR = "ENABLED" ; FD1S3DX ph19281 (.D(sj908ca), .CK(dzec4ce), .CD(je99dc6), .Q(yxc69d3)) ; defparam fa7cff8.GSR = "ENABLED" ; FD1S3DX fa7cff8 (.D(yma69d4), .CK(dzec4ce), .CD(je99dc6), .Q(ks34e9c)) ; defparam mt1d464.GSR = "ENABLED" ; FD1S3DX mt1d464 (.D(tj948d), .CK(dzec4ce), .CD(je99dc6), .Q(fca74e1)) ; defparam tj288f3.GSR = "ENABLED" ; FD1S3DX tj288f3 (.D(kq7758f), .CK(dzec4ce), .CD(je99dc6), .Q(fc3a70a)) ; defparam byf4ab7.GSR = "ENABLED" ; FD1S3DX byf4ab7 (.D(cmce96b), .CK(fndd899), .CD(vvec21b), .Q(byee645)) ; defparam hodf65c.GSR = "ENABLED" ; FD1S3DX hodf65c (.D(ldc7df2), .CK(fndd899), .CD(vvec21b), .Q(phc7fd)) ; defparam tj13a0c.GSR = "ENABLED" ; FD1S3DX tj13a0c (.D(bnb0962), .CK(fndd899), .CD(vvec21b), .Q(ww72fa5)) ; defparam oh39b78.GSR = "ENABLED" ; FD1S3DX oh39b78 (.D(phbf54d), .CK(fndd899), .CD(vvec21b), .Q(mgb6c3e)) ; defparam je2f10b.GSR = "ENABLED" ; FD1S3DX je2f10b (.D(go7861c), .CK(fndd899), .CD(vvec21b), .Q(qib61f0)) ; defparam cmd105e.GSR = "ENABLED" ; FD1S3DX cmd105e (.D(qi5b38), .CK(fndd899), .CD(vvec21b), .Q(dbb0f81)) ; defparam gq888a2.GSR = "ENABLED" ; FD1S3DX gq888a2 (.D(hqe431), .CK(fndd899), .CD(vvec21b), .Q(aa87c0f)) ; defparam pu8ced2.GSR = "ENABLED" ; FD1S3DX pu8ced2 (.D(os598c7), .CK(fndd899), .CD(vvec21b), .Q(rv270b3)) ; defparam wy982b2.GSR = "ENABLED" ; FD1S3DX wy982b2 (.D(goc453f), .CK(fndd899), .CD(vvec21b), .Q(zz3859e)) ; defparam aa8801f.GSR = "ENABLED" ; FD1S3DX aa8801f (.D(thc74dd), .CK(fndd899), . -CD(vvec21b), .Q(xjc2cf6)) ; defparam wjc6185.GSR = "ENABLED" ; FD1S3DX wjc6185 (.D(pf7b9f0), .CK(fndd899), .CD(vvec21b), .Q(fp167b6)) ; defparam vv6b6ef.GSR = "ENABLED" ; FD1S3BX vv6b6ef (.D(ykdbbf4), .CK(dzec4ce), .PD(vvec21b), .Q(of442bd)) ; defparam byf438e.GSR = "ENABLED" ; FD1S3DX byf438e (.D(doe394), .CK(fndd899), .CD(je99dc6), .Q(qgc498c)) ; defparam bn947f8.GSR = "ENABLED" ; FD1S3BX bn947f8 (.D(ym1fe39), .CK(dzec4ce), .PD(vvec21b), .Q(fp8177d)) ; defparam sj3926f.GSR = "ENABLED" ; FD1S3DX sj3926f (.D(su49be4), .CK(fndd899), .CD(je99dc6), .Q(pubbee)) ; CU2 nee42eb (.CI(vve93e5), .PC1(yk437fc), .PC0(wl86ff), .CO(tueb653), .NC1(co2ed68), .NC0(mrcc0e7)); CU2 hoca6a5 (.CI(tueb653), .PC1(hbd8cdc), .PC0(jpfc2d8), .CO(hda5628), .NC1(aaac960), .NC0(rg57660)); CU2 byc51c2 (.CI(hda5628), .PC1(ip6f9da), .PC0(mrdcd6f), .CO(rtc259e), .NC1(swa35b2), .NC0(fp32b4f)); CU2 wyb3dea (.CI(rtc259e), .PC1(hoe16e9), .PC0(nedaae1), .CO(qgea1e2), .NC1(jr1c457), .NC0(qvd2ef)); CU2 gd3c430 (.CI(qgea1e2), .PC1(ykeff6e), .PC0(nre96ef), .CO(je30903), .NC1(meff796), .NC0(lde38f6)); CU2 pu206f9 (.CI(je30903), .PC1(ip54b06), .PC0(dz6e32c), .CO(dzf97da), .NC1(), .NC0(bl508a5)); CU2 hb5f6b0 (.CI(vve93e5), .PC1(sj2cddc), .PC0(al659bb), .CO(zzb0cdc), .NC1(qte72d5), .NC0(tj91548)); CU2 tj9b9dd (.CI(zzb0cdc), .PC1(hbfc8e9), .PC0(gbdc8fc), .CO(hbddf20), .NC1(and471), .NC0(gq21e87)); CU2 jce418b (.CI(hbddf20), .PC1(wjeddf6), .PC0(hbe9eed), .CO(lf8b6b8), .NC1(aa3b409), .NC0(mg24fde)); CU2 zxd71e3 (.CI(lf8b6b8), .PC1(ayc4d57), .PC0(blf69c4), .CO(rte3cf4), .NC1(mr7fe6a), .NC0(su53d87)); CU2 db9e9d6 (.CI(rte3cf4), .PC1(dm57475), .PC0(dm57357), .CO(end6ed2), .NC1(qi314e7), .NC0(ymfd6c)); CU2 hoda55d (.CI(end6ed2), .PC1(ip54b06), .PC0(qt755c6), .CO(xw5d5ed), .NC1(), .NC0(gd2953a)); FSUB2 ne57b59 (.A1(yk437fc), .A0(wl86ff), .B1(gq1ff73), .B0(yz90edd), .BI(vve93e5), .BOUT1(of5bb89), .BOUT0(), .S1(blddc4d), .S0(viee26e)); FSUB2 jp71372 (.A1(hbd8cdc), .A0(jpfc2d8), .B1(fa7914e), .B0(cbbe941), .BI(of5bb89), .BOUT1(oub3782), .BOUT0(), .S1(nt9bc11), .S0(qgde08f)); FSUB2 kqf0478 (.A1(ip6f9da), .A0(mrdcd6f), .B1(sh5441a), .B0(mr5165e), .BI(oub3782), .BOUT1(hq1542), .BOUT0(), .S1(ecaa12), .S0(nr55090)); FSUB2 nga8487 (.A1(hoe16e9), .A0(nedaae1), .B1(wyb3db6), .B0(cmfa153), .BI(hq1542), .BOUT1(aydb909), .BOUT0(), .S1(shdc849), .S0(bye424c)); FSUB2 co21263 (.A1(ykeff6e), .A0(nre96ef), .B1(rg47205), .B0(pfe6e08), .BI(aydb909), .BOUT1(icce216), .BOUT0(), .S1(xj710b1), .S0(aa8858e)); FSUB2 fa42c70 (.A1(ip54b06), .A0(xjdd849), .B1(ip54b06), .B0(ip54b06), .BI(icce216), .BOUT1(), .BOUT0(), .S1(), .S0(fp16be0)); VHI dbb5f07 (.Z(vve93e5)); FSUB2 xw7c1ff (.A1(jrb5458), .A0(byf4138), .B1(sj2cddc), .B0(al659bb), .BI(vve93e5), .BOUT1(rgd0889), .BOUT0(), .S1(rv8444a), .S0(jr22256)); FSUB2 ls112b6 (.A1(en5143a), .A0(ld6e292), .B1(hbfc8e9), .B0(gbdc8fc), .BI(rgd0889), .BOUT1(yz9ac49), .BOUT0(), .S1(czd624d), .S0(anb126c)); FSUB2 zm89364 (.A1(yzddb5), .A0(al7a1d4), .B1(wjeddf6), .B0(hbe9eed), .BI(yz9ac49), .BOUT1(fc116be), .BOUT0(), .S1(db8b5f3), .S0(jp5af9f)); FSUB2 nrd7cff (.A1(wjd3853), .A0(mg82af9), .B1(ayc4d57), .B0(blf69c4), .BI(fc116be), .BOUT1(ipfdd40), .BOUT0(), .S1(tueea05), .S0(wj7502b)); FSUB2 twa815c (.A1(ux2c1a6), .A0(fa66258), .B1(dm57475), .B0(dm57357), .BI(ipfdd40), .BOUT1(ym1f04f), .BOUT0(), .S1(qi2bc57), .S0(mec13c4)); FSUB2 vx9e20 (.A1(ip54b06), .A0(me49dfe), .B1(ip54b06), .B0(ip54b06), .BI(ym1f04f), .BOUT1(), .BOUT0(), .S1(), .S0(cb8ae62)); AGEB2 zxf90a3 (.A1(sj2cddc), .A0(al659bb), .B1(jrb5458), .B0(byf4138), .CI(dz6110a), .GE(fnf64cb)); AGEB2 rib265f (.A1(hbfc8e9), .A0(gbdc8fc), .B1(en5143a), .B0(ld6e292), .CI(fnf64cb), .GE(fada633)); AGEB2 czd319a (.A1(wjeddf6), .A0(hbe9eed), .B1(yzddb5), .B0(al7a1d4), .CI(fada633), .GE(lfa0b69)); AGEB2 aa5b4e (.A1(ayc4d57), .A0(blf69c4), .B1(wjd3853), .B0(mg82af9), .CI(lfa0b69), .GE(zz8e2af)); AGEB2 dz7157f (.A1(dm57475), .A0(dm57357), .B1(ux2c1a6), .B0(fa66258), .CI(zz8e2af), .GE(vif4de2)); AGEB2 oua6f13 (.A1(ip54b06), .A0(en60cda), .B1(ip54b06), .B0(db3dcc3), .CI(vif4de2), .GE(goce132)); FADD2 gb70991 (.A1(ip54b06), .A0(ip54b06), .B1(ip54b06), .B0(ip54b06), .CI(goce132), .COUT1(), .COUT0(), .S1(), .S0(ykdbbf4)); AGEB2 tu7cf8d (.A1(yk437fc), .A0(wl86ff), .B1(gq1ff73), .B0(yz90edd), .CI(su43126), .GE(xw5d2c7)); AGEB2 vve963b (.A1(hbd8cdc), .A0(jpfc2d8), .B1(fa7914e), .B0(cbbe941), .CI(xw5d2c7), .GE(kdfd5c3)); AGEB2 eaeae1c (.A1(ip6f9da), .A0(mrdcd6f), .B1(sh5441a), .B0(mr5165e), .CI(kdfd5c3), .GE(oua53b)); AGEB2 rg529d9 (.A1(hoe16e9), .A0(nedaae1), .B1(wyb3db6), .B0(cmfa153), .CI(oua53b), .GE(gb5e468)); AGEB2 kdf2344 (.A1(ykeff6e), .A0(nre96ef), .B1(rg47205), .B0(pfe6e08), .CI(gb5e468), .GE(ou2e02a)); AGEB2 en70150 (.A1(ip54b06), .A0(ipd3301), .B1(ip54b06), .B0(ba14af1), .CI(ou2e02a), .GE(xy250b7)); FADD2 zz285bb (.A1(ip54b06), .A0(ip54b06), .B1(ip54b06), .B0(ip54b06), .CI(xy250b7), .COUT1(), .COUT0(), .S1(), .S0(doe394)); AGEB2 vvd7710 (.A1(ay77190[1]), .A0(ay77190[0]), .B1(rv8444a), .B0(jr22256), .CI(dz6110a), .GE(ou34b02)); AGEB2 nta5811 (.A1(ay77190[3]), .A0(ay77190[2]), .B1(czd624d), .B0(anb126c), .CI(ou34b02), .GE(sh75b56)); AGEB2 riadab5 (.A1(ay77190[5]), .A0(ay77190[4]), .B1(db8b5f3), .B0(jp5af9f), .CI(sh75b56), .GE(sh51a76)); AGEB2 wy8d3b4 (.A1(ay77190[7]), .A0(ay77190[6]), .B1(tueea05), .B0(wj7502b), .CI(sh51a76), .GE(ep28a7)); AGEB2 hq1453c (.A1(ay77190[9]), .A0(ay77190[8]), .B1(qi2bc57), .B0(mec13c4), .CI(ep28a7), .GE(do1b4e6)); AGEB2 lqda732 (.A1(ip54b06), .A0(doa230b), .B1(ip54b06), .B0(ukb98a2), .CI(do1b4e6), .GE(sj955b9)); FADD2 dbaadcd (.A1(ip54b06), .A0(ip54b06), .B1(ip54b06), .B0(ip54b06), .CI(sj955b9), .COUT1(), .COUT0(), .S1(), .S0(ym1fe39)); AGEB2 qgcb3e2 (.A1(blddc4d), .A0(viee26e), .B1(dob8c81[1]), .B0(dob8c81[0]), .CI(su43126), .GE(wy884a3)); AGEB2 zk42518 (.A1(nt9bc11), .A0(qgde08f), .B1(dob8c81[3]), .B0(dob8c81[2]), .CI(wy884a3), .GE(sj1de2c)); AGEB2 ayef164 (.A1(ecaa12), .A0(nr55090), .B1(dob8c81[5]), .B0(dob8c81[4]), .CI(sj1de2c), .GE(zm173b)); AGEB2 twb9da (.A1(shdc849), .A0(bye424c), .B1(dob8c81[7]), .B0(dob8c81[6]), .CI(zm173b), .GE(wl90856)); AGEB2 fp842b4 (.A1(xj710b1), .A0(aa8858e), .B1(dob8c81[9]), .B0(dob8c81[8]), .CI(wl90856), .GE(ou31068)); AGEB2 gq88340 (.A1(ip54b06), .A0(fp16be0), .B1(ip54b06), .B0(ip54b06), .CI(ou31068), .GE(gq5871)); VLO cb2c389 (.Z(ip54b06)); FADD2 xye26e (.A1(ip54b06), .A0(ip54b06), .B1(ip54b06), .B0(ip54b06), .CI(gq5871), .COUT1(), .COUT0(), .S1(), .S0(su49be4)); assign db3205d = of442bd; assign cb902ef = qgc498c; - -always@* begin hqbd2d7<={icdbb13>>1,nrf6ece[0]};jpe96ba<=nrf6ece[1];uv4b5d7<=nrf6ece[2];pf5aebd<=nrf6ece[3];jpd75ef<=nrf6ece[4];fpbaf7e<=nrf6ece[5];thd7bf6<=nrf6ece[6];jebdfb7<={ay77190>>1,nrf6ece[7]};ayefdbb<={dob8c81>>1,nrf6ece[8]};end -always@* begin bl7edd9[2047]<=fndd899;bl7edd9[2046]<=dzec4ce;bl7edd9[2044]<=ww62677;bl7edd9[2040]<=nt133b8;bl7edd9[2032]<=je99dc6;bl7edd9[2016]<=gocee32;bl7edd9[1984]<=ay77190[0];bl7edd9[1920]<=dob8c81[0];bl7edd9[1023]<=icdbb13[0];end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[0]};jpe96ba<=nrf6ece[1];uv4b5d7<=nrf6ece[2];pf5aebd<=nrf6ece[3];jpd75ef<=nrf6ece[4];fpbaf7e<=nrf6ece[5];thd7bf6<=nrf6ece[6];jebdfb7<={ay77190>>1,nrf6ece[7]};ayefdbb<={dob8c81>>1,nrf6ece[8]};end -always@* begin bl7edd9[2047]<=fndd899;bl7edd9[2046]<=dzec4ce;bl7edd9[2044]<=ww62677;bl7edd9[2040]<=nt133b8;bl7edd9[2032]<=je99dc6;bl7edd9[2017]<=gocee32;bl7edd9[1987]<=ay77190[0];bl7edd9[1926]<=dob8c81[0];bl7edd9[1023]<=icdbb13[0];end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[0]};jpe96ba<=nrf6ece[1];uv4b5d7<=nrf6ece[2];pf5aebd<=nrf6ece[3];jpd75ef<=nrf6ece[4];fpbaf7e<=nrf6ece[5];thd7bf6<=nrf6ece[6];jebdfb7<={ay77190>>1,nrf6ece[7]};ayefdbb<={dob8c81>>1,nrf6ece[8]};fpba667<=nrf6ece[9];wjd333f<=nrf6ece[10];do999fc<=nrf6ece[11];mrccfe2<=nrf6ece[12];ay67f15<=nrf6ece[13];vk3f8a9<=nrf6ece[14];rtfc54a<=nrf6ece[15];kde2a56<=nrf6ece[16];wy152b5<=nrf6ece[17];gqa95a9<=nrf6ece[18];xj4ad49<=nrf6ece[19];go56a4e<=nrf6ece[20];lfb5271<=nrf6ece[21];iea938e<=nrf6ece[22];kq49c71<=nrf6ece[23];mr4e389<=nrf6ece[24];dz71c4d<=nrf6ece[25];db8e26f<=nrf6ece[26];jp7137f<=nrf6ece[27];tw89bfe<=nrf6ece[28];fa4dff3<=nrf6ece[29];yx6ff9b<=nrf6ece[30];kd7fcdd<=nrf6ece[31];fafe6ec<=nrf6ece[32];xjf3763<=nrf6ece[33];hd9bb1f<=nrf6ece[34];xjdd8ff<=nrf6ece[35];rtec7fe<=nrf6ece[36];fa63ff7<=nrf6ece[37];ie1ffbb<=nrf6ece[38];cmffdd9<=nrf6ece[39];tufeec8<=nrf6ece[40];alf7642<=nrf6ece[41];epbb215<=nrf6ece[42];ofd90ad<=nrf6ece[43];blc856d<=nrf6ece[44];ne42b6e<=nrf6ece[45];aa15b72<=nrf6ece[46];jeadb90<=nrf6ece[47];os6dc82<=nrf6ece[48];fn6e410<=nrf6ece[49];ic72086<=nrf6ece[50];qv90431<=nrf6ece[51];ks8218d<=nrf6ece[52];gq10c69<=nrf6ece[53];fc86348<=nrf6ece[54];sw31a43<=nrf6ece[55];qi8d219<=nrf6ece[56];dm690c8<=nrf6ece[57];xw48643<=nrf6ece[58];go4321a<=nrf6ece[59];db190d1<=nrf6ece[60];rtc868f<=nrf6ece[61];kq4347e<=nrf6ece[62];gq1a3f1<=nrf6ece[63];icd1f88<=nrf6ece[64];wl8fc40<=nrf6ece[65];bl7e204<=nrf6ece[66];psf1027<=nrf6ece[67];ou8813a<=nrf6ece[68];pf409d0<=nrf6ece[69];vk4e87<=nrf6ece[70];tj2743b<=nrf6ece[71];ng3a1de<=nrf6ece[72];hod0ef3<=nrf6ece[73];mg8779a<=nrf6ece[74];wy3bcd1<=nrf6ece[75];wwde688<=nrf6ece[76];jpf3440<=nrf6ece[77];yz9a207<=nrf6ece[78];wwd103c<=nrf6ece[79];gq881e1<=nrf6ece[80];dz40f08<=nrf6ece[81];ep7847<=nrf6ece[82];ir3c23c<=nrf6ece[83];pse11e4<=nrf6ece[84];mt8f23<=nrf6ece[85];by4791d<=nrf6ece[86];kf3c8ea<=nrf6ece[87];jce4755<=nrf6ece[88];qv23aab<=nrf6ece[89];ux1d55d<=nrf6ece[90];uieaaed<=nrf6ece[91];fn55769<=nrf6ece[92];cbabb4f<=nrf6ece[93];ps5da7d<=nrf6ece[94];ened3ea<=nrf6ece[95];fa69f55<=nrf6ece[96];ld4faaa<=nrf6ece[97];os7d556<=nrf6ece[98];kqeaab0<=nrf6ece[99];dz55581<=nrf6ece[100];ntaac0f<=nrf6ece[101];yk5607f<=nrf6ece[102];vxb03f8<=nrf6ece[103];nt81fc6<=nrf6ece[104];ecfe37<=nrf6ece[105];mr7f1b8<=nrf6ece[106];alf8dc5<=nrf6ece[107];ipc6e2d<=nrf6ece[108];ph3716c<=nrf6ece[109];twb8b67<=nrf6ece[110];dmc5b3b<=nrf6ece[111];fp2d9db<=nrf6ece[112];jc6cede<=nrf6ece[113];os676f2<=nrf6ece[114];ym3b790<=nrf6ece[115];qgdbc81<=nrf6ece[116];osde409<=nrf6ece[117];wjf2048<=nrf6ece[118];yz90245<=nrf6ece[119];zz8122d<=nrf6ece[120];vx916e<=nrf6ece[121];rg48b76<=nrf6ece[122];rt45bb3<=nrf6ece[123];nt2dd9f<=nrf6ece[124];xj6ecfe<=nrf6ece[125];by767f7<=nrf6ece[126];ksb3fbb<=nrf6ece[127];cb9fdd8<=nrf6ece[128];hofeec5<=nrf6ece[129];ipf762a<=nrf6ece[130];qvbb155<=nrf6ece[131];hbd8aad<=nrf6ece[132];rgc556e<=nrf6ece[133];hq2ab72<=nrf6ece[134];fn55b93<=nrf6ece[135];xyadc9e<=nrf6ece[136];zx6e4f2<=nrf6ece[137];me72796<=nrf6ece[138];vk93cb1<=nrf6ece[139];bn9e58b<=nrf6ece[140];wjf2c5e<=nrf6ece[141];tw962f4<=nrf6ece[142];gdb17a2<=nrf6ece[143];xl8bd14<=nrf6ece[144];ip5e8a6<=nrf6ece[145];dmf4535<=nrf6ece[146];xya29aa<=nrf6ece[147];xy14d53<=nrf6ece[148];ksa6a9a<=nrf6ece[149];xy354d1<=nrf6ece[150];dbaa68a<=nrf6ece[151];su53456<=nrf6ece[152];yz9a2b0<=nrf6ece[153];wwd1584<=nrf6ece[154];ir8ac21<=nrf6ece[155];qg5610c<=nrf6ece[156];jrb0860<=nrf6ece[157];zz84307<=nrf6ece[158];sw2183e<=nrf6ece[159];hdc1f0<=nrf6ece[160];kd60f86<=nrf6ece[161];ux7c34<=nrf6ece[162];ec3e1a4<=nrf6ece[163];mef0d21<=nrf6ece[164];vk86909<=nrf6ece[165];mg3484a<=nrf6ece[166];wla4251<=nrf6ece[167];ou2128d<=nrf6ece[168];fp9469<=nrf6ece[169];vv4a34e<=nrf6ece[170];wj51a77<=nrf6ece[171];co8d3bc<=nrf6ece[172];vi69de0<=nrf6ece[173];ip4ef02<=nrf6ece[174];qg77814<=nrf6ece[175];wybc0a0<=nrf6ece[176];wwe0500<=nrf6ece[177];qv2801<=nrf6ece[178];zm1400c<=nrf6ece[179];hda0063<=nrf6ece[180];ym31f<=nrf6ece[181];ls18f8<=nrf6ece[182];rvc7c3<=nrf6ece[183];lq63e1e<=nrf6ece[184];ec1f0f3<=nrf6ece[185];uvf8798<=nrf6ece[186];ipc3cc4<=nrf6ece[187];ng1e624<=nrf6ece[188];pff3122<=nrf6ece[189];sw98917<=nrf6ece[190];ayc48b8<=nrf6ece[191];ec245c1<=nrf6ece[192];db22e09<=nrf6ece[193];ux1704f<=nrf6ece[194];ngb827c<=nrf6ece[195];cmc13e2<=nrf6ece[196];tj9f10<=nrf6ece[197];hb4f887<=nrf6ece[198];jc7c43e<=nrf6ece[199];yxe21f2<=nrf6ece[200];aa10f94<=nrf6ece[201];ie87ca0<=nrf6ece[202];mg3e500<=nrf6ece[203];alf2801<=nrf6ece[204];bn9400c<=nrf6ece[205];xla0067<=nrf6ece[206];wy33f<=nrf6ece[207];vk19f8<=nrf6ece[208];tjcfc3<=nrf6ece[209];ea67e1f<=nrf6ece[210];ba3f0f9<=nrf6ece[211];qtf87cb<=nrf6ece[212];czc3e5c<=nrf6ece[213];qi1f2e4<=nrf6ece[214];nrf9720<=nrf6ece[215];cmcb906<=nrf6ece[216];ui5c830<=nrf6ece[217];rge4180<=nrf6ece[218];ba20c03<=nrf6ece[219];bn601a<=nrf6ece[220];ng300d7<=nrf6ece[221];an806ba<=nrf6ece[222];db35d4<=nrf6ece[223];co1aea7<=nrf6ece[224];jpd7539<=nrf6ece[225];fpba9ce<=nrf6ece[226];qgd4e76<=nrf6ece[227];hqa73b0<=nrf6ece[228];wl39d82<=nrf6ece[229];aycec15<=nrf6ece[230];fa760a8<=nrf6ece[231];tjb0543<=nrf6ece[232];uk82a1e<=nrf6ece[233];ec150f0<=nrf6ece[234];twa8781<=nrf6ece[235];ui43c0b<=nrf6ece[236];fc1e058<=nrf6ece[237];ayf02c2<=nrf6ece[238];bn81610<=nrf6ece[239];jeb086<=nrf6ece[240];dm58433<=nrf6ece[241];rtc219b<= -nrf6ece[242];ks10cdf<=nrf6ece[243];ls866f8<=nrf6ece[244];qv337c3<=nrf6ece[245];db9be1d<=nrf6ece[246];psdf0ef<=nrf6ece[247];enf877a<=nrf6ece[248];kdc3bd4<=nrf6ece[249];ep1dea4<=nrf6ece[250];suef524<=nrf6ece[251];kd7a920<=nrf6ece[252];ead4904<=nrf6ece[253];qva4820<=nrf6ece[254];ou24104<=nrf6ece[255];do20821<=nrf6ece[256];pu410a<=nrf6ece[257];ri20852<=nrf6ece[258];xy4292<=nrf6ece[259];co21492<=nrf6ece[260];ksa491<=nrf6ece[261];lq52489<=nrf6ece[262];sw9244a<=nrf6ece[263];wy92250<=nrf6ece[264];fp91280<=nrf6ece[265];ba89407<=nrf6ece[266];pf4a03a<=nrf6ece[267];bl501d7<=nrf6ece[268];wl80ebf<=nrf6ece[269];an75fd<=nrf6ece[270];fc3afed<=nrf6ece[271];thd7f6a<=nrf6ece[272];lfbfb57<=nrf6ece[273];offdabe<=nrf6ece[274];qted5f5<=nrf6ece[275];yx6afad<=nrf6ece[276];jc57d6d<=nrf6ece[277];irbeb6b<=nrf6ece[278];osf5b5c<=nrf6ece[279];lsadae1<=nrf6ece[280];ea6d70a<=nrf6ece[281];hb6b851<=nrf6ece[282];cm5c28f<=nrf6ece[283];hoe1479<=nrf6ece[284];yma3cb<=nrf6ece[285];uv51e59<=nrf6ece[286];oh8f2cc<=nrf6ece[287];rg79665<=nrf6ece[288];iccb32a<=nrf6ece[289];ui59951<=nrf6ece[290];shcca88<=nrf6ece[291];yx65445<=nrf6ece[292];fc2a22d<=nrf6ece[293];kd5116a<=nrf6ece[294];ou88b55<=nrf6ece[295];th45aa9<=nrf6ece[296];db2d54f<=nrf6ece[297];yx6aa7f<=nrf6ece[298];ld553fd<=nrf6ece[299];wya9fef<=nrf6ece[300];rt4ff78<=nrf6ece[301];mr7fbc6<=nrf6ece[302];wjfde34<=nrf6ece[303];ayef1a5<=nrf6ece[304];ui78d28<=nrf6ece[305];mrc6941<=nrf6ece[306];end -always@* begin bl7edd9[2047]<=fndd899;bl7edd9[2046]<=dzec4ce;bl7edd9[2044]<=ww62677;bl7edd9[2043]<=tu57f16;bl7edd9[2040]<=nt133b8;bl7edd9[2038]<=jr22256;bl7edd9[2032]<=je99dc6;bl7edd9[2029]<=vve93e5;bl7edd9[2017]<=gocee32;bl7edd9[2013]<=go7861c;bl7edd9[2010]<=rv8444a;bl7edd9[2003]<=sj955b9;bl7edd9[1990]<=tueb653;bl7edd9[1987]<=ay77190[0];bl7edd9[1982]<=uvfde54;bl7edd9[1980]<=an95e84;bl7edd9[1979]<=dbb0f81;bl7edd9[1973]<=anb126c;bl7edd9[1963]<=rv132cf;bl7edd9[1958]<=su43126;bl7edd9[1957]<=thc74dd;bl7edd9[1953]<=cbbe941;bl7edd9[1942]<=ym24d57;bl7edd9[1932]<=fp32b4f;bl7edd9[1929]<=blddc4d;bl7edd9[1926]<=dob8c81[0];bl7edd9[1923]<=lf8b6b8;bl7edd9[1921]<=al4b77f;bl7edd9[1917]<=do1b4e6;bl7edd9[1914]<=os598c7;bl7edd9[1913]<=lfaf424;bl7edd9[1911]<=qi5b38;bl7edd9[1903]<=irb4e26;bl7edd9[1898]<=rgd0889;bl7edd9[1879]<=pu9967e;bl7edd9[1876]<=nrec274;bl7edd9[1872]<=xw57c80;bl7edd9[1868]<=qgc48c9;bl7edd9[1866]<=fp167b6;bl7edd9[1863]<=ou2e02a;bl7edd9[1858]<=fa7914e;bl7edd9[1837]<=cb26ab8;bl7edd9[1816]<=swa35b2;bl7edd9[1810]<=qgde08f;bl7edd9[1805]<=fnc8624;bl7edd9[1802]<=uk1f0b6;bl7edd9[1799]<=ymfd6c;bl7edd9[1795]<=kd7fb71;bl7edd9[1786]<=ukb98a2;bl7edd9[1783]<=zzaae34;bl7edd9[1780]<=zz3859e;bl7edd9[1778]<=gb7a126;bl7edd9[1775]<=aa87c0f;bl7edd9[1770]<=hbc2b1e;bl7edd9[1758]<=gd26ab9;bl7edd9[1748]<=czd624d;bl7edd9[1710]<=gocb3f3;bl7edd9[1704]<=sw9d6c9;bl7edd9[1701]<=ux2c1a6;bl7edd9[1699]<=db8b5f3;bl7edd9[1696]<=gbedb34;bl7edd9[1689]<=yz129fb;bl7edd9[1685]<=pf7b9f0;bl7edd9[1679]<=pu1bfe1;bl7edd9[1678]<=ba14af1;bl7edd9[1668]<=jpfc2d8;bl7edd9[1627]<=ls355c5;bl7edd9[1624]<=me49dfe;bl7edd9[1605]<=jcee6d6;bl7edd9[1589]<=wjd3853;bl7edd9[1584]<=hda5628;bl7edd9[1573]<=of5bb89;bl7edd9[1572]<=al659bb;bl7edd9[1567]<=ldc7df2;bl7edd9[1562]<=tw8c221;bl7edd9[1557]<=qte72d5;bl7edd9[1556]<=ou34b02;bl7edd9[1551]<=qi314e7;bl7edd9[1548]<=meff796;bl7edd9[1543]<=vv71966;bl7edd9[1524]<=doa230b;bl7edd9[1521]<=rg57660;bl7edd9[1519]<=icde57a;bl7edd9[1513]<=goc453f;bl7edd9[1512]<=yk437fc;bl7edd9[1509]<=dmd0935;bl7edd9[1504]<=su53d87;bl7edd9[1502]<=hqe431;bl7edd9[1499]<=bl4f76e;bl7edd9[1493]<=oh29703;bl7edd9[1492]<=rv816fe;bl7edd9[1469]<=gqb9aba;bl7edd9[1466]<=uif5fa8;bl7edd9[1448]<=jp5af9f;bl7edd9[1421]<=lfa0b69;bl7edd9[1417]<=byf4138;bl7edd9[1415]<=cmce96b;bl7edd9[1404]<=co2ed68;bl7edd9[1402]<=gq1ff73;bl7edd9[1400]<=aa3b409;bl7edd9[1398]<=jce47e4;bl7edd9[1377]<=kq7758f;bl7edd9[1374]<=uic45be;bl7edd9[1373]<=wy987d3;bl7edd9[1361]<=pu3ff3b;bl7edd9[1359]<=aa8858e;bl7edd9[1355]<=bn8b1b5;bl7edd9[1354]<=dm57357;bl7edd9[1350]<=wj7502b;bl7edd9[1349]<=vid0f0a;bl7edd9[1344]<=ep266b;bl7edd9[1343]<=xj710b1;bl7edd9[1341]<=sh51a76;bl7edd9[1330]<=zz94fdd;bl7edd9[1326]<=xy96d51;bl7edd9[1323]<=oh8012e;bl7edd9[1322]<=vif4de2;bl7edd9[1310]<=xwe16c6;bl7edd9[1308]<=ipd3301;bl7edd9[1305]<=tueea05;bl7edd9[1301]<=sj908ca;bl7edd9[1289]<=hbd8cdc;bl7edd9[1286]<=ou31068;bl7edd9[1280]<=sj95ca1;bl7edd9[1279]<=icce216;bl7edd9[1271]<=ieb9fef;bl7edd9[1224]<=do3f773;bl7edd9[1210]<=tud5b8a;bl7edd9[1207]<=fpbfc60;bl7edd9[1201]<=sw213fa;bl7edd9[1199]<=qgc498c;bl7edd9[1195]<=en60cda;bl7edd9[1193]<=bye424c;bl7edd9[1163]<=gbdc8fc;bl7edd9[1162]<=ps736b2;bl7edd9[1155]<=cmfa153;bl7edd9[1144]<=hbe6b7c;bl7edd9[1136]<=xy250b7;bl7edd9[1130]<=blf69c4;bl7edd9[1125]<=ipfdd40;bl7edd9[1120]<=qvd2ef;bl7edd9[1112]<=al7a1d4;bl7edd9[1110]<=yma69d4;bl7edd9[1104]<=kdd64f3;bl7edd9[1098]<=nt9bc11;bl7edd9[1096]<=sj2cddc;bl7edd9[1086]<=ww72fa5;bl7edd9[1076]<=xlb5ea4;bl7edd9[1067]<=blf31ce;bl7edd9[1065]<=thc2d84;bl7edd9[1060]<=mr5165e;bl7edd9[1054]<=rte3cf4;bl7edd9[1053]<=hoe16e9;bl7edd9[1051]<=su49be4;bl7edd9[1048]<=qgea1e2;bl7edd9[1039]<=uie5e73;bl7edd9[1026]<=fpa5ac0;bl7edd9[1023]<=icdbb13[0];bl7edd9[1021]<=fn4afe2;bl7edd9[1006]<=qib61f0;bl7edd9[1001]<=ym1fe39;bl7edd9[995]<=aaac960;bl7edd9[991]<=cz7fbca;bl7edd9[990]<=alf2bd0;bl7edd9[981]<=ldc2659;bl7edd9[978]<=xjc2cf6;bl7edd9[976]<=xw5d2c7;bl7edd9[971]<=jr849aa;bl7edd9[964]<=viee26e;bl7edd9[961]<=mr7fe6a;bl7edd9[960]<=zmb74b;bl7edd9[957]<=rv270b3;bl7edd9[951]<=rt6efb4;bl7edd9[938]<=ea53ad9;bl7edd9[936]<=co9d6b8;bl7edd9[931]<=ykeff6e;bl7edd9[901]<=jr3e16;bl7edd9[891]<=jrba3aa;bl7edd9[885]<=jp7e0e8;bl7edd9[850]<=fa66258;bl7edd9[849]<=yz9ac49;bl7edd9[839]<=gd1d5e2;bl7edd9[812]<=ym1f04f;bl7edd9[802]<=sj1de2c;bl7edd9[794]<=mg82af9;bl7edd9[786]<=jrb5458;bl7edd9[783]<=phc7fd;bl7edd9[778]<=tj91548;bl7edd9[774]<=lde38f6;bl7edd9[760]<=mga9411;bl7edd9[756]<=wl86ff;bl7edd9[752]<=hbddf20;bl7edd9[749]<=lqe474f;bl7edd9[746]<=gqa75b;bl7edd9[733]<=ld4f71c;bl7edd9[710]<=wjeddf6;bl7edd9[708]<=go59655;bl7edd9[707]<=byee645;bl7edd9[702]<=mrcc0e7;bl7edd9[701]<=yz90edd;bl7edd9[700]<=mg24fde;bl7edd9[699]<=jc66ee4;bl7edd9[688]<=fc3a70a;bl7edd9[687]<=goce132;bl7edd9[679]<=shdc849;bl7edd9[677]<=gqc04;bl7edd9[674]<=faeb649;bl7edd9[671]<=aydb909;bl7edd9[670]<=ph84dcf;bl7edd9[663]<=shc3703;bl7edd9[661]<=dm57475;bl7edd9[652]<=fc116be;bl7edd9[650]<=yxc69d3;bl7edd9[643]<=ph9e71b;bl7edd9[640]<=ay72dd2;bl7edd9[639]<=fp16be0;bl7edd9[635]<=rv373fd;bl7edd9[612]<=wy884a3;bl7edd9[605]<=neeba75;bl7edd9[599]<=of442bd;bl7edd9[597]<=db3dcc3;bl7edd9[596]<=ecaa12;bl7edd9[581]<=en5143a;bl7edd9[577]<=oua53b;bl7edd9[572]<=shc66e6;bl7edd9[568]<=doe394;bl7edd9[562]<=mec13c4;bl7edd9[556]<=fada633;bl7edd9[555]<=ks34e9c;bl7edd9[552]<=zkdac9e;bl7edd9[530]<=kdfd5c3;bl7edd9[526]<=nedaae1;bl7edd9[525]<=ng9c6f6;bl7edd9[513]<=ls20f3f;bl7edd9[510]<=xjdd849;bl7edd9[503]<=phbf54d;bl7edd9[495]<=ep28a7;bl7edd9[490]<=mg984cb;bl7edd9[482]<=end6ed2;bl7edd9[480]<=rgd570b;bl7edd9[465]<=nre96ef;bl7edd9[450]<=swbc266;bl7edd9[425]<=zz8e2af;bl7edd9[419]<=aa3e078;bl7edd9[406]<=cb8ae62;bl7edd9[401]<=fafbb9b;bl7edd9[389]<=je30903;bl7edd9[387]<=rtc259e;bl7edd9[373]<=uv5bd24;bl7edd9[366]<=oh8a7a4;bl7edd9[355]<=hbe9eed;bl7edd9[354]<=lf9fd1;bl7edd9[351]<=vvec21b;bl7edd9[350]<=zzb0cdc;bl7edd9[344]<=tj948d;bl7edd9[343]<=ykdbbf4;bl7edd9[339]<=hq1542;bl7edd9[338]<=gqb3bde;bl7edd9[335]<=lfb09b9;bl7edd9[321]<=ng93ce3;bl7edd9[298]<=oub3782;bl7edd9[290]<=ld6e292;bl7edd9[288]<=ip6f9da;bl7edd9[278]<=hbfc8e9;bl7edd9[276]<=zm173b;bl7edd9[263]<=wyb3db6;bl7edd9[251]<=mgb6c3e;bl7edd9[245]<=lq73099;bl7edd9[241]<=qt755c6;bl7edd9[240]<=lq7ced5;bl7edd9[232]<=rg47205;bl7edd9[225]<=dz6110a;bl7edd9[212]<=ayc4d57;bl7edd9[209]<=th454df;bl7edd9[203]<=qi2bc57;bl7edd9[194]<=dz6e32c;bl7edd9[193]<=jr1c457;bl7edd9[177]<=yzddb5;bl7edd9[175]<=and471;bl7edd9[172]<=fca74e1;bl7edd9[169]<=ps79094;bl7edd9[167]<=sh75b56;bl7edd9[160]<=wl90856;bl7edd9[149]<=nr55090;bl7edd9[145]<=fnf64cb;bl7edd9[144]<=mrdcd6f;bl7edd9[125]<=bnb0962;bl7edd9[122]<=kqce613;bl7edd9[120]<=xw5d5ed;bl7edd9[116]<=pfe6e08;bl7edd9[109]<=ip54b06;bl7edd9[104]<=kd5b24a;bl7edd9[97]<=dzf97da;bl7edd9[87]<=gq21e87;bl7edd9[84]<=gdabfd5;bl7edd9[83]<=zz16c26;bl7edd9[72]<=sh5441a;bl7edd9[61]<=ho79cc2;bl7edd9[60]<=gd2953a; -bl7edd9[58]<=gb5e468;bl7edd9[54]<=gq5871;bl7edd9[48]<=bl508a5;bl7edd9[42]<=ba1e4f6;bl7edd9[30]<=vk2f398;bl7edd9[21]<=ww781a8;bl7edd9[10]<=ip7f3bf;bl7edd9[5]<=uxbe6f6;end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[1]};ie9813c<={blcd797>>1,nrf6ece[2]};dmc09e1<=nrf6ece[3];do4f0b<=nrf6ece[4];fp2785b<={oub3c7c>>1,nrf6ece[5]};kf3c2df<={jr9e3e0>>1,nrf6ece[6]};fae16fc<={hof1f06>>1,nrf6ece[7]};jeb7e3<={ir8f833>>1,nrf6ece[8]};en5bf1b<={rg7c19c>>1,nrf6ece[9]};xwdf8dd<={ice0ce2>>1,nrf6ece[10]};vvfc6eb<=nrf6ece[11];rte375e<=nrf6ece[12];xy1baf6<=nrf6ece[13];vvdd7b3<=nrf6ece[14];dmebd9f<={ou10f1c>>1,nrf6ece[15]};yx5ecfb<=nrf6ece[16];dzf67dd<=nrf6ece[17];aab3eef<={fne3804>>1,nrf6ece[18]};an9f778<=nrf6ece[19];nefbbc4<=nrf6ece[20];fndde22<={uk9f9>>1,nrf6ece[21]};ayef116<=nrf6ece[22];ui788b0<=nrf6ece[23];kqc4581<=nrf6ece[24];fp22c08<=nrf6ece[25];lf16047<=nrf6ece[26];vxb023e<={sh4bef4>>1,nrf6ece[27]};nt811f6<=nrf6ece[28];cb8fb6<=nrf6ece[29];zk47db5<=nrf6ece[30];sw3edaa<=nrf6ece[31];thf6d50<=nrf6ece[32];ukb6a86<=nrf6ece[33];fpb5430<=nrf6ece[34];phaa186<=nrf6ece[35];nr50c36<=nrf6ece[36];je861b6<={ww5c9fe>>1,nrf6ece[37]};zm30db3<=nrf6ece[38];vk86d9b<=nrf6ece[39];oh36cda<=nrf6ece[40];gqb66d4<=nrf6ece[41];ymb36a1<=nrf6ece[42];ph9b509<=nrf6ece[43];dmda84e<=nrf6ece[44];end -always@* begin bl7edd9[2047]<=zxf9af2[0];bl7edd9[2046]<=blcd797[0];bl7edd9[2044]<=pf6bcbe;bl7edd9[2040]<=qt5e5f7;bl7edd9[2032]<=oub3c7c[0];bl7edd9[2017]<=jr9e3e0[0];bl7edd9[1987]<=hof1f06[0];bl7edd9[1926]<=ir8f833[0];bl7edd9[1805]<=lf91727;bl7edd9[1804]<=rg7c19c[0];bl7edd9[1803]<=bn27e4b;bl7edd9[1761]<=qva4c8b;bl7edd9[1668]<=uif05d3;bl7edd9[1562]<=zz8b93f;bl7edd9[1560]<=ice0ce2[0];bl7edd9[1558]<=do3f25f;bl7edd9[1550]<=qi878e0;bl7edd9[1475]<=qv2645c;bl7edd9[1464]<=uide932;bl7edd9[1288]<=co82e98;bl7edd9[1076]<=ww5c9fe[0];bl7edd9[1072]<=fp6710;bl7edd9[1069]<=hbf92fb;bl7edd9[1052]<=an3c700;bl7edd9[1023]<=gbe_mode;bl7edd9[902]<=rv322e4;bl7edd9[901]<=je4fc9;bl7edd9[880]<=vif4991;bl7edd9[834]<=fafe0ba;bl7edd9[775]<=ou10f1c[0];bl7edd9[732]<=zkfbd26;bl7edd9[528]<=sj174c0;bl7edd9[450]<=uk9f9[0];bl7edd9[417]<=xy3fc17;bl7edd9[387]<=qte21e3;bl7edd9[366]<=vv5f7a4;bl7edd9[225]<=aye013f;bl7edd9[208]<=xl27f82;bl7edd9[193]<=do9c43c;bl7edd9[183]<=sh4bef4[0];bl7edd9[112]<=lf1c027;bl7edd9[104]<=hoe4ff0;bl7edd9[96]<=ux33887;bl7edd9[91]<=ipc97de;bl7edd9[56]<=fne3804[0];end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[1]};dmc09e1<=nrf6ece[2];do4f0b<=nrf6ece[3];uk3b4aa<=nrf6ece[4];lqda551<=nrf6ece[5];zxd2a8a<={pfe37e6>>1,nrf6ece[6]};fp2785b<={oub3c7c>>1,nrf6ece[7]};kf3c2df<={jr9e3e0>>1,nrf6ece[8]};fae16fc<={hof1f06>>1,nrf6ece[9]};jeb7e3<={ir8f833>>1,nrf6ece[10]};en5bf1b<={rg7c19c>>1,nrf6ece[11]};xwdf8dd<={ice0ce2>>1,nrf6ece[12]};vvfc6eb<=nrf6ece[13];rte375e<=nrf6ece[14];xy1baf6<=nrf6ece[15];vvdd7b3<=nrf6ece[16];zk47db5<=nrf6ece[17];sw3edaa<=nrf6ece[18];rtdd291<=nrf6ece[19];nr50c36<=nrf6ece[20];je861b6<={ww5c9fe>>1,nrf6ece[21]};zm30db3<=nrf6ece[22];zz91ffa<=nrf6ece[23];cb8ffd6<=nrf6ece[24];cb8fb6<=nrf6ece[25];dmebd9f<={ou10f1c>>1,nrf6ece[26]};dzf67dd<=nrf6ece[27];yx5ecfb<=nrf6ece[28];uxb4845<=nrf6ece[29];ira422d<=nrf6ece[30];vxb023e<={sh4bef4>>1,nrf6ece[31]};lf16047<=nrf6ece[32];fp22c08<=nrf6ece[33];zz2da6f<=nrf6ece[34];me6d37e<=nrf6ece[35];rg69bf1<={nre371c>>1,nrf6ece[36]};by4df8a<=nrf6ece[37];sh6fc53<=nrf6ece[38];pf7e29d<=nrf6ece[39];xwf14ef<=nrf6ece[40];phaa186<=nrf6ece[41];ukb6a86<=nrf6ece[42];wy9dea9<=nrf6ece[43];vk86d9b<=nrf6ece[44];oh36cda<=nrf6ece[45];gqb66d4<=nrf6ece[46];ymb36a1<=nrf6ece[47];ph9b509<=nrf6ece[48];dmda84e<=nrf6ece[49];end -always@* begin bl7edd9[2047]<=blcd797[0];bl7edd9[2046]<=pf6bcbe;bl7edd9[2044]<=qt5e5f7;bl7edd9[2041]<=hdaff1b;bl7edd9[2034]<=en7f8df;bl7edd9[2021]<=pfe37e6[0];bl7edd9[2017]<=ww5c9fe[0];bl7edd9[1995]<=oub3c7c[0];bl7edd9[1986]<=hoe4ff0;bl7edd9[1943]<=jr9e3e0[0];bl7edd9[1925]<=ph38769;bl7edd9[1908]<=hbf92fb;bl7edd9[1864]<=ri1b8e6;bl7edd9[1855]<=qte21e3;bl7edd9[1838]<=hof1f06[0];bl7edd9[1803]<=uvc3b4e;bl7edd9[1769]<=zma78dc;bl7edd9[1680]<=yxdc733;bl7edd9[1662]<=uide932;bl7edd9[1628]<=ir8f833[0];bl7edd9[1559]<=zkfbd26;bl7edd9[1501]<=sh4bef4[0];bl7edd9[1490]<=oh3c6e3;bl7edd9[1487]<=ux33887;bl7edd9[1312]<=dze399d;bl7edd9[1276]<=vif4991;bl7edd9[1209]<=rg7c19c[0];bl7edd9[1155]<=lf91727;bl7edd9[1070]<=ou10f1c[0];bl7edd9[1048]<=xl27f82;bl7edd9[1023]<=gbe_mode;bl7edd9[1008]<=zz8b93f;bl7edd9[954]<=ipc97de;bl7edd9[932]<=nre371c[0];bl7edd9[927]<=do9c43c;bl7edd9[791]<=sj174c0;bl7edd9[750]<=epa4aa7;bl7edd9[743]<=fp6710;bl7edd9[577]<=vx1ccef;bl7edd9[524]<=ym9dfb4;bl7edd9[504]<=ri89c38;bl7edd9[395]<=co82e98;bl7edd9[375]<=nr74954;bl7edd9[371]<=ice0ce2[0];bl7edd9[262]<=qv2645c;bl7edd9[197]<=uif05d3;bl7edd9[187]<=qi878e0;bl7edd9[98]<=fafe0ba;bl7edd9[93]<=an3c700;bl7edd9[49]<=xy3fc17;end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[2]};dmc09e1<=nrf6ece[3];do4f0b<=nrf6ece[4];kf9af7f<={aa90a>>1,nrf6ece[5]};fp2785b<={oub3c7c>>1,nrf6ece[6]};kf3c2df<={jr9e3e0>>1,nrf6ece[7]};fae16fc<={hof1f06>>1,nrf6ece[8]};jeb7e3<={ir8f833>>1,nrf6ece[9]};en5bf1b<={rg7c19c>>1,nrf6ece[10]};xwdf8dd<={ice0ce2>>1,nrf6ece[11]};vvfc6eb<=nrf6ece[12];rte375e<=nrf6ece[13];xy1baf6<=nrf6ece[14];vvdd7b3<=nrf6ece[15];je861b6<={ww5c9fe>>1,nrf6ece[16]};zm30db3<=nrf6ece[17];zz91ffa<=nrf6ece[18];cb8fb6<=nrf6ece[19];dmebd9f<={ou10f1c>>1,nrf6ece[20]};dzf67dd<=nrf6ece[21];yx5ecfb<=nrf6ece[22];vk86d9b<=nrf6ece[23];oh36cda<=nrf6ece[24];gqb66d4<=nrf6ece[25];ymb36a1<=nrf6ece[26];ph9b509<=nrf6ece[27];dmda84e<=nrf6ece[28];end -always@* begin bl7edd9[2047]<=ay534c0;bl7edd9[2046]<=blcd797[0];bl7edd9[2044]<=pf6bcbe;bl7edd9[2040]<=qt5e5f7;bl7edd9[2032]<=aa90a[0];bl7edd9[2017]<=oub3c7c[0];bl7edd9[1987]<=jr9e3e0[0];bl7edd9[1926]<=hof1f06[0];bl7edd9[1804]<=ir8f833[0];bl7edd9[1803]<=xl27f82;bl7edd9[1560]<=rg7c19c[0];bl7edd9[1558]<=xy3fc17;bl7edd9[1550]<=ww5c9fe[0];bl7edd9[1072]<=ice0ce2[0];bl7edd9[1069]<=fafe0ba;bl7edd9[1052]<=hoe4ff0;bl7edd9[1023]<=gbe_mode;bl7edd9[901]<=qi878e0;bl7edd9[775]<=qte21e3;bl7edd9[450]<=an3c700;bl7edd9[387]<=do9c43c;bl7edd9[366]<=sj174c0;bl7edd9[225]<=ou10f1c[0];bl7edd9[193]<=ux33887;bl7edd9[183]<=co82e98;bl7edd9[112]<=zkfbd26;bl7edd9[96]<=fp6710;bl7edd9[91]<=uif05d3;bl7edd9[56]<=ph38769;end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[2]};dmc09e1<=nrf6ece[3];do4f0b<=nrf6ece[4];uk3b4aa<=nrf6ece[5];lqda551<=nrf6ece[6];kf9af7f<={aa90a>>1,nrf6ece[7]};fp2785b<={oub3c7c>>1,nrf6ece[8]};kf3c2df<={jr9e3e0>>1,nrf6ece[9]};fae16fc<={hof1f06>>1,nrf6ece[10]};jeb7e3<={ir8f833>>1,nrf6ece[11]};en5bf1b<={rg7c19c>>1,nrf6ece[12]};xwdf8dd<={ice0ce2>>1,nrf6ece[13]};vvfc6eb<=nrf6ece[14];rte375e<=nrf6ece[15];xy1baf6<=nrf6ece[16];vvdd7b3<=nrf6ece[17];je861b6<={ww5c9fe>>1,nrf6ece[18]};zm30db3<=nrf6ece[19];zz91ffa<=nrf6ece[20];cb8fb6<=nrf6ece[21];dmebd9f<={ou10f1c>>1,nrf6ece[22]};dzf67dd<=nrf6ece[23];yx5ecfb<=nrf6ece[24];uxb4845<=nrf6ece[25];ira422d<=nrf6ece[26];vk86d9b<=nrf6ece[27];oh36cda<=nrf6ece[28];gqb66d4<=nrf6ece[29];ymb36a1<=nrf6ece[30];ph9b509<=nrf6ece[31];dmda84e<=nrf6ece[32];end -always@* begin bl7edd9[2047]<=ay534c0;bl7edd9[2046]<=blcd797[0];bl7edd9[2044]<=pf6bcbe;bl7edd9[2041]<=qt5e5f7;bl7edd9[2035]<=hdaff1b;bl7edd9[2022]<=en7f8df;bl7edd9[1996]<=aa90a[0];bl7edd9[1945]<=oub3c7c[0];bl7edd9[1922]<=nr74954;bl7edd9[1842]<=jr9e3e0[0];bl7edd9[1797]<=epa4aa7;bl7edd9[1776]<=ou10f1c[0];bl7edd9[1637]<=hof1f06[0];bl7edd9[1622]<=fp6710;bl7edd9[1546]<=xl27f82;bl7edd9[1504]<=an3c700;bl7edd9[1468]<=ph38769;bl7edd9[1391]<=ww5c9fe[0];bl7edd9[1226]<=ir8f833[0];bl7edd9[1197]<=ux33887;bl7edd9[1044]<=xy3fc17;bl7edd9[1023]<=gbe_mode;bl7edd9[961]<=qi878e0;bl7edd9[888]<=zkfbd26;bl7edd9[811]<=ice0ce2[0];bl7edd9[734]<=hoe4ff0;bl7edd9[695]<=qte21e3;bl7edd9[405]<=rg7c19c[0];bl7edd9[347]<=do9c43c;bl7edd9[328]<=sj174c0;bl7edd9[164]<=co82e98;bl7edd9[82]<=uif05d3;bl7edd9[41]<=fafe0ba;end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[5]};lf22e73<=nrf6ece[6];gd1739f<=nrf6ece[7];ecb9cfc<=nrf6ece[8];mece7e1<=nrf6ece[9];by73f09<=nrf6ece[10];ir9f84a<={qi82738>>1,nrf6ece[11]};fnfc255<={fp139c1>>1,nrf6ece[12]};rge12ae<={ba9ce0f>>1,nrf6ece[13]};db9573<={wje707a>>1,nrf6ece[14]};fn4ab9e<={nt383d4>>1,nrf6ece[15]};vv55cf6<=nrf6ece[16];wlae7b6<=nrf6ece[17];ps73db4<=nrf6ece[18];rv9eda2<=nrf6ece[19];zxf6d17<=nrf6ece[20];qib68be<=nrf6ece[21];yzb45f0<={fpbf92d>>1,nrf6ece[22]};jea2f84<=nrf6ece[23];qv17c23<={dme4b77>>1,nrf6ece[24]};mtbe11d<=nrf6ece[25];ykf08ed<={jr2ddd2>>1,nrf6ece[26]};ph84769<={rt6ee96>>1,nrf6ece[27]};sj23b4e<={ea774b7>>1,nrf6ece[28]};kf1da75<={thd2dcf>>1,nrf6ece[29]};qted3ac<={je96e7f>>1,nrf6ece[30]};xw69d65<={hqb73fb>>1,nrf6ece[31]};yx4eb2a<={gqb9fdb>>1,nrf6ece[32]};qt75954<={dmcfed9>>1,nrf6ece[33]};aaacaa5<={en7f6ca>>1,nrf6ece[34]};wj65528<=nrf6ece[35];pu2a945<=nrf6ece[36];qt54a2b<=nrf6ece[37];jra515c<=nrf6ece[38];rv28ae7<=nrf6ece[39];dz4573e<=nrf6ece[40];ym2b9f6<=nrf6ece[41];ic5cfb1<=nrf6ece[42];ale7d88<=nrf6ece[43];uk3ec45<=nrf6ece[44];jpf6228<=nrf6ece[45];yzb1147<=nrf6ece[46];ie88a3c<=nrf6ece[47];xj451e1<={rtd8916>>1,nrf6ece[48]};fp28f0e<=nrf6ece[49];jc47876<=nrf6ece[50];wl3c3b2<=nrf6ece[51];xwe1d94<=nrf6ece[52];tweca2<=nrf6ece[53];by76512<={cbb13f9>>1,nrf6ece[54]};lsb2893<=nrf6ece[55];lf9449a<=nrf6ece[56];xya24d7<=nrf6ece[57];ux126ba<=nrf6ece[58];ng935d4<={ofcc7af>>1,nrf6ece[59]};kf9aea2<=nrf6ece[60];vvd7515<=nrf6ece[61];xlba8ae<=nrf6ece[62];ead4576<=nrf6ece[63];twa2bb1<=nrf6ece[64];qi15d8b<={pfe367a>>1,nrf6ece[65]};iraec58<=nrf6ece[66];lq762c5<=nrf6ece[67];ohb162b<={sh7aca3>>1,nrf6ece[68]};end -always@* begin bl7edd9[2047]<=sgmii_mode;bl7edd9[2046]<=mr_main_reset;bl7edd9[2044]<=mr_restart_an;bl7edd9[2040]<=mr_an_enable;bl7edd9[2033]<=mr_adv_ability[1];bl7edd9[2019]<=ip70450;bl7edd9[1999]<=godb2ab;bl7edd9[1991]<=sj8a10b;bl7edd9[1981]<=lf22d89;bl7edd9[1958]<=bl4fe63;bl7edd9[1950]<=tucaac5;bl7edd9[1947]<=ho57893;bl7edd9[1934]<=zx5085d;bl7edd9[1914]<=hd16c4f;bl7edd9[1892]<=ene2fe4;bl7edd9[1868]<=of7f31e;bl7edd9[1852]<=dz5562a;bl7edd9[1851]<=nt383d4[0];bl7edd9[1847]<=qibc49b;bl7edd9[1820]<=db842ee;bl7edd9[1783]<=rtd8916[1];bl7edd9[1780]<=qib627f;bl7edd9[1737]<=cb17f25;bl7edd9[1689]<=rtf98f5;bl7edd9[1657]<=mtab157;bl7edd9[1654]<=cmc1ea6;bl7edd9[1647]<=cze24d8;bl7edd9[1610]<=dme4b77[0];bl7edd9[1608]<=lq7c6cf;bl7edd9[1593]<=ym21776;bl7edd9[1523]<=dmcfed9[0];bl7edd9[1519]<=suc48b6;bl7edd9[1513]<=cbb13f9[0];bl7edd9[1426]<=fpbf92d[0];bl7edd9[1404]<=hqb73fb[0];bl7edd9[1330]<=ofcc7af[1];bl7edd9[1267]<=ne58abc;bl7edd9[1260]<=ld40f17;bl7edd9[1246]<=ir126c4;bl7edd9[1225]<=vk1ebe3;bl7edd9[1199]<=ea774b7[0];bl7edd9[1173]<=pu25bba;bl7edd9[1169]<=pfe367a[0];bl7edd9[1163]<=sh7aca3[1];bl7edd9[1139]<=qi82738[0];bl7edd9[1023]<=gbe_mode;bl7edd9[999]<=en7f6ca[0];bl7edd9[990]<=sw245b1;bl7edd9[979]<=pu89fcc;bl7edd9[973]<=ba2af12;bl7edd9[946]<=an3c5fc;bl7edd9[925]<=wje707a[0];bl7edd9[891]<=xl9b122;bl7edd9[805]<=thfc96e;bl7edd9[804]<=vxaf8d9;bl7edd9[761]<=gqb9fdb[0];bl7edd9[702]<=je96e7f[0];bl7edd9[612]<=ne63d7c;bl7edd9[599]<=rt6ee96[0];bl7edd9[581]<=bycf594;bl7edd9[486]<=nec55e2;bl7edd9[473]<=qv78bf;bl7edd9[462]<=ba9ce0f[0];bl7edd9[445]<=vk93624;bl7edd9[402]<=cmf5f1b;bl7edd9[351]<=thd2dcf[0];bl7edd9[299]<=jr2ddd2[0];bl7edd9[290]<=hq1b3d6;bl7edd9[231]<=fp139c1[0];end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[1]};czdc8a0<=nrf6ece[2];dme4504<=nrf6ece[3];gd1739f<=nrf6ece[4];hq1411f<=nrf6ece[5];tja08fb<={jceec52>>1,nrf6ece[6]};ng47de<=nrf6ece[7];cb23ef2<={th7b8fa>>1,nrf6ece[8]};ks1f795<={aldc7d6>>1,nrf6ece[9]};psfbca8<={the3eb5>>1,nrf6ece[10]};sude542<={qi1f5af>>1,nrf6ece[11]};czf2a10<={kqfad78>>1,nrf6ece[12]};qv95084<=nrf6ece[13];lsa8425<=nrf6ece[14];jc4212b<=nrf6ece[15];ym1095b<=nrf6ece[16];vx84ad8<=nrf6ece[17];ri256c7<=nrf6ece[18];aa2b63b<=nrf6ece[19];wj5b1d8<=nrf6ece[20];jpd8ec4<=nrf6ece[21];jpc7626<=nrf6ece[22];ym3b137<=nrf6ece[23];thd89b9<=nrf6ece[24];icc4dce<=nrf6ece[25];sj26e71<=nrf6ece[26];lf3738d<=nrf6ece[27];mgb9c6f<=nrf6ece[28];ykce379<=nrf6ece[29];vv71bc9<=nrf6ece[30];ou8de4f<=nrf6ece[31];sh6f279<=nrf6ece[32];jc793cc<=nrf6ece[33];yxc9e62<=nrf6ece[34];vv4f315<=nrf6ece[35];vi798af<=nrf6ece[36];uvcc57b<={ohd46e>>1,nrf6ece[37]};ic62bdc<={of6a374>>1,nrf6ece[38]};gq15ee1<=nrf6ece[39];hdaf708<=nrf6ece[40];bl7b846<=nrf6ece[41];mrdc236<=nrf6ece[42];jce11b5<=nrf6ece[43];qv8dab<=nrf6ece[44];go46d5d<=nrf6ece[45];yz36ae8<=nrf6ece[46];lfb5744<=nrf6ece[47];kfaba26<=nrf6ece[48];by5d135<=nrf6ece[49];ale89ab<=nrf6ece[50];wj44d5c<=nrf6ece[51];an26ae5<=nrf6ece[52];vk3572d<={sj2673b>>1,nrf6ece[53]};mtab96a<={gd339dc>>1,nrf6ece[54]};qg5cb55<={vk9cee4>>1,nrf6ece[55]};end -always@* begin bl7edd9[2047]<=rx_data[0];bl7edd9[2046]<=rx_kcntl;bl7edd9[2044]<=baa25a8;bl7edd9[2040]<=sj8a10b;bl7edd9[2032]<=rx_even;bl7edd9[2016]<=jceec52[0];bl7edd9[1985]<=xy9922f;bl7edd9[1922]<=th7b8fa[0];bl7edd9[1867]<=tw2fc19;bl7edd9[1804]<=sh7f840;bl7edd9[1797]<=aldc7d6[0];bl7edd9[1761]<=mg243fc;bl7edd9[1686]<=xj7e0cb;bl7edd9[1623]<=gd339dc[0];bl7edd9[1561]<=thfc204;bl7edd9[1558]<=ks1f1a4;bl7edd9[1547]<=the3eb5[0];bl7edd9[1542]<=th61a8d;bl7edd9[1490]<=fac0bf0;bl7edd9[1475]<=mg21fe1;bl7edd9[1413]<=wjf87c6;bl7edd9[1409]<=ec586a;bl7edd9[1324]<=icf065f;bl7edd9[1200]<=rv197c3;bl7edd9[1199]<=vk9cee4[1];bl7edd9[1074]<=zke1026;bl7edd9[1068]<=qtf8d20;bl7edd9[1047]<=qi1f5af[0];bl7edd9[1037]<=ohd46e[0];bl7edd9[1023]<=mr_main_reset;bl7edd9[933]<=sw5f83;bl7edd9[902]<=ieff08;bl7edd9[880]<=gda487f;bl7edd9[811]<=sj2673b[0];bl7edd9[779]<=yxc3e34;bl7edd9[771]<=mt2c351;bl7edd9[745]<=kq7817e;bl7edd9[706]<=bl5f0f8;bl7edd9[704]<=fc20b0d;bl7edd9[600]<=ls832f8;bl7edd9[440]<=xj7490f;bl7edd9[405]<=vk4ce7;bl7edd9[372]<=phaf02f;bl7edd9[353]<=wwcbe1f;bl7edd9[352]<=yza4161;bl7edd9[220]<=th6e921;bl7edd9[202]<=pf4099c;bl7edd9[186]<=lfb5e05;bl7edd9[176]<=wy3482c;bl7edd9[110]<=ou8dd24;bl7edd9[101]<=oh8133;bl7edd9[93]<=gbd6bc0;bl7edd9[88]<=gbc6905;bl7edd9[55]<=en51ba4;bl7edd9[46]<=kqfad78[0];bl7edd9[27]<=of6a374[0];end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[2]};czdc8a0<=nrf6ece[3];dme4504<=nrf6ece[4];blf6706<={oh26038>>1,nrf6ece[5]};ksb3837<={zm301c4>>1,nrf6ece[6]};ba9c1b8<={sj80e22>>1,nrf6ece[7]};yke0dc3<=nrf6ece[8];db6e18<=nrf6ece[9];bn370c6<=nrf6ece[10];lsb8637<=nrf6ece[11];ofc31ba<=nrf6ece[12];oh18dd5<=nrf6ece[13];wjc6eac<=nrf6ece[14];xl37564<=nrf6ece[15];hdbab27<=nrf6ece[16];hod593e<={zz3850f>>1,nrf6ece[17]};end -always@* begin bl7edd9[2047]<=signal_detect;bl7edd9[2046]<=rx_data[0];bl7edd9[2044]<=rx_kcntl;bl7edd9[2040]<=baa25a8;bl7edd9[2033]<=oh26038[0];bl7edd9[2018]<=zm301c4[0];bl7edd9[1988]<=sj80e22[0];bl7edd9[1929]<=ux7115;bl7edd9[1811]<=lf388ad;bl7edd9[1574]<=qgc456f;bl7edd9[1247]<=cm78e14;bl7edd9[1101]<=bn22b78;bl7edd9[1023]<=mr_main_reset;bl7edd9[894]<=zz3850f[1];bl7edd9[623]<=of6f1c2;bl7edd9[447]<=zxc70a1;bl7edd9[311]<=zmade38;bl7edd9[155]<=co15bc7;end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[3]};hq9c6d4<={fc83c7c>>1,nrf6ece[4]};xje36a3<=nrf6ece[5];tw1b51e<=nrf6ece[6];jcda8f2<={al41dd5>>1,nrf6ece[7]};kqd4793<={ip51c9c>>1,nrf6ece[8]};oua3c99<={xl8e4e4>>1,nrf6ece[9]};do1e4c9<=nrf6ece[10];mrf264a<=nrf6ece[11];vk93255<={ba9c9cb>>1,nrf6ece[12]};vk992aa<=nrf6ece[13];enc9553<=nrf6ece[14];nr4aa9c<={gd39696>>1,nrf6ece[15]};hb554e6<=nrf6ece[16];tjaa737<=nrf6ece[17];qg539be<=nrf6ece[18];ls9cdf1<=nrf6ece[19];zxe6f8a<=nrf6ece[20];ph37c57<=nrf6ece[21];qvbe2be<=nrf6ece[22];faf15f5<=nrf6ece[23];oh8afaa<=nrf6ece[24];cb8fb6<=nrf6ece[25];vxb023e<={sh4bef4>>1,nrf6ece[26]};kqf551c<=nrf6ece[27];fp22c08<=nrf6ece[28];yx54707<=nrf6ece[29];wya383d<=nrf6ece[30];rv1c1e9<=nrf6ece[31];wwe0f4f<=nrf6ece[32];nt811f6<=nrf6ece[33];vx3d3c4<=nrf6ece[34];rte9e26<=nrf6ece[35];dz4f136<=nrf6ece[36];go789b7<=nrf6ece[37];cmc4db9<=nrf6ece[38];wl26dc9<=nrf6ece[39];qv36e4d<=nrf6ece[40];xyb726c<={ykeaf80>>1,nrf6ece[41]};kf3c2df<={jr9e3e0>>1,nrf6ece[42]};fae16fc<={hof1f06>>1,nrf6ece[43]};lq4d8c5<={suf005d>>1,nrf6ece[44]};tu6c62b<={oh802e8>>1,nrf6ece[45]};vi6315b<=nrf6ece[46];ep18ada<=nrf6ece[47];tuc56d4<=nrf6ece[48];wy2b6a2<=nrf6ece[49];vvfc6eb<=nrf6ece[50];lqda884<=nrf6ece[51];ayd4423<=nrf6ece[52];nga2119<=nrf6ece[53];qi108ca<=nrf6ece[54];jr84650<=nrf6ece[55];wl23286<=nrf6ece[56];nt19434<={gq34695>>1,nrf6ece[57]};rgca1a7<={uka34a8>>1,nrf6ece[58]};vk86d9b<=nrf6ece[59];oh36cda<=nrf6ece[60];qi34ef2<={kf95007>>1,nrf6ece[61]};baa7791<={pua803d>>1,nrf6ece[62]};ym3bc8a<=nrf6ece[63];mede450<=nrf6ece[64];gbf2280<=nrf6ece[65];bn91405<=nrf6ece[66];wl8a02f<={zkebc66>>1,nrf6ece[67]};fn5017d<={sh5e333>>1,nrf6ece[68]};end -always@* begin bl7edd9[2047]<=hbe6383;bl7edd9[2046]<=gbe_mode;bl7edd9[2044]<=operational_rate[0];bl7edd9[2040]<=fc83c7c[0];bl7edd9[2032]<=pu1e3e2;bl7edd9[2018]<=jr9e3e0[0];bl7edd9[2017]<=dmf1f12;bl7edd9[1989]<=hof1f06[0];bl7edd9[1987]<=al41dd5[0];bl7edd9[1931]<=suf005d[0];bl7edd9[1927]<=ip51c9c[0];bl7edd9[1865]<=ykcb4b4;bl7edd9[1859]<=vv5f7a4;bl7edd9[1844]<=ls93934;bl7edd9[1815]<=oh802e8[0];bl7edd9[1806]<=xl8e4e4[0];bl7edd9[1682]<=vv5a5a1;bl7edd9[1674]<=uka34a8[0];bl7edd9[1671]<=qgeaaec;bl7edd9[1640]<=xy9c9a3;bl7edd9[1582]<=je1744;bl7edd9[1565]<=kq72727;bl7edd9[1488]<=vk93f55;bl7edd9[1485]<=zz224e4;bl7edd9[1326]<=sh4bef4[0];bl7edd9[1317]<=bld2d0e;bl7edd9[1300]<=xl27f82;bl7edd9[1297]<=cb7af1;bl7edd9[1295]<=zx55761;bl7edd9[1233]<=pse4d1a;bl7edd9[1210]<=hbf92fb;bl7edd9[1189]<=kq77722;bl7edd9[1172]<=anb43bb;bl7edd9[1116]<=vkba22;bl7edd9[1105]<=kf95007[0];bl7edd9[1092]<=zkebc66[1];bl7edd9[1087]<=vi5d87d;bl7edd9[1082]<=fc93939;bl7edd9[1023]<=tu76293;bl7edd9[1009]<=ykeaf80[0];bl7edd9[932]<=gd39696[0];bl7edd9[929]<=an9faab;bl7edd9[922]<=kf12726;bl7edd9[837]<=gq34695[0];bl7edd9[744]<=mrf27ea;bl7edd9[742]<=fp6710;bl7edd9[663]<=zkfbd26;bl7edd9[648]<=gqf5e;bl7edd9[605]<=zx64793;bl7edd9[594]<=rieee4;bl7edd9[586]<=vk96877;bl7edd9[552]<=xy3fc17;bl7edd9[546]<=tj3d78c;bl7edd9[543]<=gdabb0f;bl7edd9[504]<=ksfabe;bl7edd9[466]<=fp272d2;bl7edd9[418]<=ir268d2;bl7edd9[372]<=do1e4fd;bl7edd9[371]<=yxe8893;bl7edd9[331]<=gdbb911;bl7edd9[324]<=rt401eb;bl7edd9[297]<=ana1ddc;bl7edd9[252]<=jp61f57;bl7edd9[233]<=vie4e5a;bl7edd9[185]<=rg5d112;bl7edd9[162]<=pua803d[0];bl7edd9[136]<=sh5e333[1];bl7edd9[126]<=blec3ea;bl7edd9[116]<=ba9c9cb[0];end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[0]};xje36a3<=nrf6ece[1];tw1b51e<=nrf6ece[2];jcda8f2<={al41dd5>>1,nrf6ece[3]};kqd4793<={ip51c9c>>1,nrf6ece[4]};oua3c99<={xl8e4e4>>1,nrf6ece[5]};do1e4c9<=nrf6ece[6];mrf264a<=nrf6ece[7];vk93255<={ba9c9cb>>1,nrf6ece[8]};vk992aa<=nrf6ece[9];enc9553<=nrf6ece[10];nr4aa9c<={gd39696>>1,nrf6ece[11]};hb554e6<=nrf6ece[12];tjaa737<=nrf6ece[13];qg539be<=nrf6ece[14];ls9cdf1<=nrf6ece[15];zxe6f8a<=nrf6ece[16];ph37c57<=nrf6ece[17];qvbe2be<=nrf6ece[18];faf15f5<=nrf6ece[19];oh8afaa<=nrf6ece[20];cb8fb6<=nrf6ece[21];vxb023e<={sh4bef4>>1,nrf6ece[22]};kqf551c<=nrf6ece[23];fp22c08<=nrf6ece[24];yx54707<=nrf6ece[25];wya383d<=nrf6ece[26];rv1c1e9<=nrf6ece[27];wwe0f4f<=nrf6ece[28];nt811f6<=nrf6ece[29];vx3d3c4<=nrf6ece[30];rte9e26<=nrf6ece[31];dz4f136<=nrf6ece[32];go789b7<=nrf6ece[33];cmc4db9<=nrf6ece[34];wl26dc9<=nrf6ece[35];qv36e4d<=nrf6ece[36];xyb726c<={ykeaf80>>1,nrf6ece[37]};wl8a02f<={zkebc66>>1,nrf6ece[38]};fn5017d<={sh5e333>>1,nrf6ece[39]};end -always@* begin bl7edd9[2047]<=pu1e3e2;bl7edd9[2046]<=dmf1f12;bl7edd9[2044]<=al41dd5[0];bl7edd9[2040]<=ip51c9c[0];bl7edd9[2033]<=xl8e4e4[0];bl7edd9[2019]<=kq72727;bl7edd9[1991]<=fc93939;bl7edd9[1934]<=ba9c9cb[0];bl7edd9[1898]<=vk96877;bl7edd9[1821]<=vie4e5a;bl7edd9[1749]<=anb43bb;bl7edd9[1707]<=kq77722;bl7edd9[1666]<=an9faab;bl7edd9[1595]<=fp272d2;bl7edd9[1450]<=ana1ddc;bl7edd9[1440]<=mrf27ea;bl7edd9[1384]<=hbf92fb;bl7edd9[1370]<=sh4bef4[0];bl7edd9[1366]<=gdbb911;bl7edd9[1284]<=vv5f7a4;bl7edd9[1142]<=gd39696[0];bl7edd9[1125]<=ykeaf80[0];bl7edd9[1041]<=zx55761;bl7edd9[1023]<=fc83c7c[0];bl7edd9[949]<=bld2d0e;bl7edd9[853]<=rieee4;bl7edd9[833]<=vk93f55;bl7edd9[720]<=do1e4fd;bl7edd9[692]<=zx64793;bl7edd9[685]<=zkfbd26;bl7edd9[562]<=ksfabe;bl7edd9[520]<=qgeaaec;bl7edd9[474]<=vv5a5a1;bl7edd9[407]<=sh5e333[1];bl7edd9[281]<=jp61f57;bl7edd9[237]<=ykcb4b4;bl7edd9[203]<=zkebc66[1];bl7edd9[140]<=blec3ea;bl7edd9[70]<=vi5d87d;bl7edd9[35]<=gdabb0f;end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[0]};xje36a3<=nrf6ece[1];tw1b51e<=nrf6ece[2];oua3c99<={xl8e4e4>>1,nrf6ece[3]};do1e4c9<=nrf6ece[4];mrf264a<=nrf6ece[5];oh8afaa<=nrf6ece[6];cb8fb6<=nrf6ece[7];vxb023e<={sh4bef4>>1,nrf6ece[8]};kqf551c<=nrf6ece[9];fp22c08<=nrf6ece[10];yx54707<=nrf6ece[11];wya383d<=nrf6ece[12];rv1c1e9<=nrf6ece[13];nt811f6<=nrf6ece[14];rte9e26<=nrf6ece[15];dz4f136<=nrf6ece[16];go789b7<=nrf6ece[17];cmc4db9<=nrf6ece[18];wl26dc9<=nrf6ece[19];qv36e4d<=nrf6ece[20];end -always@* begin bl7edd9[2047]<=pu1e3e2;bl7edd9[2046]<=dmf1f12;bl7edd9[2044]<=xl8e4e4[0];bl7edd9[2040]<=kq72727;bl7edd9[2033]<=fc93939;bl7edd9[2019]<=gdbb911;bl7edd9[1990]<=zkfbd26;bl7edd9[1939]<=blec3ea;bl7edd9[1933]<=sh4bef4[0];bl7edd9[1831]<=jp61f57;bl7edd9[1819]<=zx64793;bl7edd9[1778]<=zx55761;bl7edd9[1615]<=ksfabe;bl7edd9[1591]<=hbf92fb;bl7edd9[1508]<=gdabb0f;bl7edd9[1135]<=do1e4fd;bl7edd9[1023]<=fc83c7c[0];bl7edd9[969]<=vi5d87d;bl7edd9[889]<=vv5f7a4;bl7edd9[444]<=vk93f55;bl7edd9[222]<=mrf27ea;end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[3]};ic53c12<={pf55c79>>1,nrf6ece[4]};bn9e091<=nrf6ece[5];uif048e<=nrf6ece[6];co82470<={uice9eb>>1,nrf6ece[7]};wl12381<=nrf6ece[8];fp91c0c<=nrf6ece[9];ph84769<={rt6ee96>>1,nrf6ece[10]};sj23b4e<={ea774b7>>1,nrf6ece[11]};ykf08ed<={jr2ddd2>>1,nrf6ece[12]};ntcde7<=nrf6ece[13];jc66f3f<=nrf6ece[14];rv379fb<=nrf6ece[15];ecbcfde<={gbf25c0>>1,nrf6ece[16]};ofe7ef1<=nrf6ece[17];do3f78d<=nrf6ece[18];fafbc6b<=nrf6ece[19];ohb162b<={sh7aca3>>1,nrf6ece[20]};end -always@* begin bl7edd9[2047]<=tx_en;bl7edd9[2046]<=tx_er;bl7edd9[2044]<=sueab8f[0];bl7edd9[2040]<=pf55c79[0];bl7edd9[2032]<=anae3ce;bl7edd9[2017]<=gd8f3a7;bl7edd9[1987]<=uice9eb[0];bl7edd9[1927]<=ld74f58;bl7edd9[1865]<=gbf25c0[0];bl7edd9[1806]<=nga7ac7;bl7edd9[1682]<=ym92e05;bl7edd9[1565]<=rt6ee96[0];bl7edd9[1317]<=wy97029;bl7edd9[1172]<=sh7aca3[1];bl7edd9[1082]<=ea774b7[0];bl7edd9[1023]<=mr_main_reset;bl7edd9[932]<=mede4b8;bl7edd9[586]<=dm484c5;bl7edd9[466]<=ym3bc97;bl7edd9[233]<=jpc7792;bl7edd9[116]<=jr2ddd2[0];end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[1]};fc35dd0<=nrf6ece[2];sjaee83<=nrf6ece[3];me7741d<=nrf6ece[4];xlba0e9<=nrf6ece[5];jcd074f<=nrf6ece[6];hq83a7b<={blf6935>>1,nrf6ece[7]};gd1d3da<=nrf6ece[8];pfe9ed5<=nrf6ece[9];nr4f6ae<={qv26bac>>1,nrf6ece[10]};ld7b577<={tw35d65>>1,nrf6ece[11]};rgdabbf<={anaeb2b>>1,nrf6ece[12]};xwd5dfb<={al7595d>>1,nrf6ece[13]};mtaefda<=nrf6ece[14];qg77ed5<=nrf6ece[15];zzbf6a8<=nrf6ece[16];zkfb547<=nrf6ece[17];zkdaa3b<=nrf6ece[18];jcd51db<=nrf6ece[19];hqa8edb<=nrf6ece[20];zk476da<=nrf6ece[21];wy3b6d3<=nrf6ece[22];aydb699<=nrf6ece[23];end -always@* begin bl7edd9[2047]<=vv74a74[0];bl7edd9[2046]<=rva53a7;bl7edd9[2044]<=cb29d3f;bl7edd9[2040]<=mr4e9fc;bl7edd9[2032]<=zx74fe4;bl7edd9[2016]<=jpfc90a;bl7edd9[1985]<=blf6935[0];bl7edd9[1922]<=irb49ae;bl7edd9[1796]<=qva4d75;bl7edd9[1544]<=qv26bac[6];bl7edd9[1302]<=cb29546;bl7edd9[1115]<=nr551ae;bl7edd9[1105]<=rg5da29;bl7edd9[1041]<=tw35d65[0];bl7edd9[1023]<=hq3f921;bl7edd9[651]<=nr452a8;bl7edd9[557]<=rt4aa35;bl7edd9[552]<=mg2bb45;bl7edd9[325]<=cm68a55;bl7edd9[276]<=mr65768;bl7edd9[162]<=uved14a;bl7edd9[138]<=coacaed;bl7edd9[69]<=al7595d[0];bl7edd9[34]<=anaeb2b[6];end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; ay5ce43>1,nrf6ece[4]};qi3b914<={rx_data>>1,nrf6ece[5]};czdc8a0<=nrf6ece[6];hq1411f<=nrf6ece[7];kq7d70f<=nrf6ece[8];faeb878<=nrf6ece[9];me5c3c3<=nrf6ece[10];jce1e19<={tx_d>>1,nrf6ece[11]};wy98a9e<=nrf6ece[12];hoc54f0<=nrf6ece[13];zz1c8b9<=nrf6ece[14];db94722<=nrf6ece[15];ksa3917<=nrf6ece[16];tja08fb<={jceec52>>1,nrf6ece[17]};mg88bdd<={fcbbb1>>1,nrf6ece[18]};dz45ee9<={tu5dd8a>>1,nrf6ece[19]};dme4504<=nrf6ece[20];vv7ba7a<={jebda89>>1,nrf6ece[21]};rtdd3d6<=nrf6ece[22];zxe9eb7<=nrf6ece[23];pf4f5be<=nrf6ece[24];al7adf7<=nrf6ece[25];end6fbc<=nrf6ece[26];twb7de5<=nrf6ece[27];wlbef2a<=nrf6ece[28];byf199c<=nrf6ece[29];vk86d9b<=nrf6ece[30];oh36cda<=nrf6ece[31];gqb66d4<=nrf6ece[32];ymb36a1<=nrf6ece[33];ph9b509<=nrf6ece[34];dmda84e<=nrf6ece[35];nt9729<=nrf6ece[36];gb4b94e<=nrf6ece[37];ay5ca74<=nrf6ece[38];mee53a0<=nrf6ece[39];oh29d01<=nrf6ece[40];en4e80c<=nrf6ece[41];nr74064<=nrf6ece[42];bna0326<=nrf6ece[43];do1937<=nrf6ece[44];fpc9bb<=nrf6ece[45];zx64ddf<=nrf6ece[46];kf26efe<={ba2a2bb>>1,nrf6ece[47]};zz377f5<=nrf6ece[48];wlbbfaf<=nrf6ece[49];xwdfd7c<={jc576ac>>1,nrf6ece[50]};tufebe3<=nrf6ece[51];ykf5f1a<=nrf6ece[52];phaf8d1<=nrf6ece[53];ps7c68f<=nrf6ece[54];vve347a<=nrf6ece[55];co1a3d6<=nrf6ece[56];cmd1eb0<=nrf6ece[57];end -always@* begin bl7edd9[2047]<=sgmii_mode;bl7edd9[2046]<=signal_detect;bl7edd9[2044]<=debug_link_timer_short;bl7edd9[2040]<=operational_rate[0];bl7edd9[2032]<=rx_data[0];bl7edd9[2017]<=rx_kcntl;bl7edd9[1987]<=rx_even;bl7edd9[1926]<=rx_disp_err;bl7edd9[1805]<=sj174c0;bl7edd9[1804]<=rx_cv_err;bl7edd9[1803]<=qt6a25d;bl7edd9[1761]<=fafe0ba;bl7edd9[1668]<=bydf425;bl7edd9[1562]<=tuebfab;bl7edd9[1560]<=rx_err_decode_mode;bl7edd9[1558]<=ri89765;bl7edd9[1550]<=mr_restart_an;bl7edd9[1475]<=uif05d3;bl7edd9[1464]<=xl27f82;bl7edd9[1288]<=uifa12a;bl7edd9[1076]<=xj5fd5b;bl7edd9[1072]<=tx_d[0];bl7edd9[1069]<=mr4bb2a;bl7edd9[1056]<=vx84a8a;bl7edd9[1052]<=jceec52[0];bl7edd9[1028]<=jc576ac[0];bl7edd9[1023]<=gbe_mode;bl7edd9[902]<=co82e98;bl7edd9[901]<=czed44b;bl7edd9[880]<=xy3fc17;bl7edd9[834]<=yx5be84;bl7edd9[775]<=mr_main_reset;bl7edd9[732]<=tu76293;bl7edd9[621]<=mtab449;bl7edd9[528]<=lqd0951;bl7edd9[514]<=ux8aed5;bl7edd9[450]<=jebda89[0];bl7edd9[417]<=kfab7d0;bl7edd9[387]<=mr_an_enable;bl7edd9[366]<=cz65516;bl7edd9[310]<=qi15689;bl7edd9[257]<=en515da;bl7edd9[225]<=baa25a8;bl7edd9[208]<=ykf56fa;bl7edd9[193]<=tx_er;bl7edd9[183]<=rtecaa2;bl7edd9[155]<=go62ad1;bl7edd9[128]<=ba2a2bb[0];bl7edd9[112]<=tu5dd8a[0];bl7edd9[104]<=tufeadf;bl7edd9[96]<=tx_en;bl7edd9[91]<=xw5d954;bl7edd9[77]<=ouac55a;bl7edd9[64]<=ri25457;bl7edd9[56]<=fcbbb1[0];bl7edd9[38]<=rgd58ab;bl7edd9[19]<=nedab15;bl7edd9[9]<=epbb562;end assign kd60607 = bl7edd9,nrf6ece = yz181ef; initial begin xweb9c8 = $fopen(".fred"); $fdisplay( xweb9c8, "%3h\n%3h", (czd9d9d >> 4) & gq9d818, (czd9d9d >> (vi76760+4)) & gq9d818 ); $fclose(xweb9c8); $readmemh(".fred", oh7beb); end always @ (kd60607) begin qgefae7 = oh7beb[1]; for (ay5ce43=0; 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⩔s)YIS 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

  • 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

    n)N^a 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ΠZv;^PhqJ+nf9ZXbH%TZDcC)R{FB=xOE6x0;VJ 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 )-9^U7vuoTs6 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'Q>NS1A>Bg+?ytsdTTV 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 diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/stdout.log b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/stdout.log deleted file mode 100755 index dac7faf..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs32/stdout.log +++ /dev/null @@ -1,42 +0,0 @@ -Running in Lattice mode - - -Starting: /opt/synplify/syn96L3/synplify_linux/linux/mbin/synbatch -Install: /opt/synplify/syn96L3/synplify_linux -Date: Thu Dec 10 15:57:42 2009 -Version: 9.6L3 - - -Arguments: -product synplify -batch /home/greg/NewHub2/hub2/ipexpress/sgmii_gbe_pcs32/syn_results/sgmii_gbe_pcs32.prj -ProductType: synplify - - - - - -Running synthesis on sgmii_gbe_pcs32:syn_results - -log file: "/home/greg/NewHub2/hub2/ipexpress/sgmii_gbe_pcs32/syn_results/sgmii_gbe_pcs32.srf" - - -Running Verilog Compiler... - -Verilog Compiler Completed -Return Code: 0 - - -Running lattice-ecp2m Mapper... - -Option not allowed with current settings and will be ignored: fixgatedclocks -Option not allowed with current settings and will be ignored: fixgeneratedclocks - -Option not allowed with current settings and will be ignored: fixgatedclocks -Option not allowed with current settings and will be ignored: fixgeneratedclocks - -lattice-ecp2m Mapper Completed with warnings -Return Code: 1 - - -exit status=0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/generate_core.tcl b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/generate_core.tcl deleted file mode 100644 index 473e9cf..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/generate_core.tcl +++ /dev/null @@ -1,43 +0,0 @@ - -#!/usr/local/bin/wish - -set Para(cmd) "" -if ![catch {set temp $argc} result] { - if {$argc > 0} { - for {set i 0} {$i < $argc} {incr i 2} { - set temp [lindex $argv $i] - set temp [string range $temp 1 end] - lappend argv_list $temp - lappend value_list [lindex $argv [expr $i+1]] - } - foreach argument $argv_list value $value_list { - switch $argument { - "cmd" {set Para(cmd) $value;} - } - } - } -} - -set Para(ProjectPath) "/home/greg/projects/trbnet/gbe2_ecp2m/ipcores/sgmii_gbe_pcs34" -set Para(ModuleName) "sgmii_gbe_pcs34" -set Para(lib) "/home/greg/sgmii_gbepcs_v3.4/lib" -set Para(CoreName) "SGMII/Gb Ethernet PCS" -set Para(arch) "ep5m00" -set Para(family) "latticeecp2m" -set Para(Family) "latticeecp2m" -set Para(design) "VHDL" -set Para(install_dir) "/opt/lattice/diamond/1.1/bin/lin/../.." -set Para(Bin) "/opt/lattice/diamond/1.1/bin/lin" -set Para(SpeedGrade) "Para(spd)" -set Para(FPGAPath) "/opt/lattice/diamond/1.1/bin/lin/../../ispfpga/bin/sol" - -lappend auto_path "/home/greg/sgmii_gbepcs_v3.4/gui" - -lappend auto_path "/home/greg/sgmii_gbepcs_v3.4/script" -package require Core_Generate - -lappend auto_path "/opt/lattice/diamond/1.1/tcltk/lib/ipwidgets/ispipbuilder/../runproc" -package require runcmd - - -set Para(result) [GenerateCore] diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.ipx b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.ipx deleted file mode 100644 index cada8be..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.ipx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.lpc b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.lpc deleted file mode 100644 index 78e9a7a..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.lpc +++ /dev/null @@ -1,26 +0,0 @@ -[Device] -Family=ep5c00 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=IPCFG -CoreStatus=Demo -CoreName=SGMII/Gb Ethernet PCS -CoreRevision=3.4 -ModuleName=sgmii_gbe_pcs34 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=10/04/2011 -Time=13:50:08 - -[Parameters] -RX_CTC=2 -RX_CTC_LOW=16 -RX_CTC_HIGH=32 -EasyConnect=1 diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.ngo b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34.ngo deleted file mode 100644 index 0b24d2558683d8840971e6923e6fcce756742a4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389472 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 TIc`B?lC!^kK^-aL7Bc>S&cFXr diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_bb.v b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_bb.v deleted file mode 100644 index 5b49cc1..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_bb.v +++ /dev/null @@ -1,143 +0,0 @@ -//============================================================================= -// Verilog module generated by IPExpress 10/04/2011 13:50:20 -// Filename: sgmii_gbe_pcs34_bb.v -// Copyright(c) 2008 Lattice Semiconductor Corporation. All rights reserved. -//============================================================================= - -//--------------------------------------------------------------- -// sgmii_gbe_pcs34 synthesis black box definition -//--------------------------------------------------------------- - -/* WARNING - Changes to this file should be performed by re-running IPexpress -or modifying the .LPC file and regenerating the core. Other changes may lead -to inconsistent simulation and/or implemenation results */ - - - - - - -module sgmii_gbe_pcs34 ( - // Control Interface - rst_n, - signal_detect, - gbe_mode, - sgmii_mode, - operational_rate, - debug_link_timer_short, - force_isolate, - force_loopback, - force_unidir, - - rx_compensation_err, - ctc_drop_flag, - ctc_add_flag, - an_link_ok, - - // G/MII Interface - tx_clock_enable_sink , - tx_clock_enable_source , - tx_clk_125, - tx_d, - tx_en, - tx_er, - - rx_clock_enable_sink , - rx_clock_enable_source , - rx_clk_125, - rx_d, - rx_dv, - rx_er, - col, - crs, - - // 8-bit Interface - tx_data, - tx_kcntl, - tx_disparity_cntl, - xmit_autoneg, - - serdes_recovered_clk, - rx_data, - rx_kcntl, - rx_even , - rx_disp_err , - rx_cv_err , - rx_err_decode_mode , - - // Managment Control Outputs - mr_an_complete, - mr_page_rx, - mr_lp_adv_ability, - - // Managment Control Inputs - mr_main_reset, - mr_an_enable, - mr_restart_an, - mr_adv_ability - ); - - - -// Control Interface -input rst_n ; -input signal_detect ; -input gbe_mode ; -input sgmii_mode ; -input [1:0] operational_rate ; -input debug_link_timer_short ; -input force_isolate ; -input force_loopback ; -input force_unidir ; - -output rx_compensation_err ; -output ctc_drop_flag ; -output ctc_add_flag ; -output an_link_ok ; - -// G/MII Interface -input tx_clock_enable_sink; -output tx_clock_enable_source; -input tx_clk_125 ; -input [7:0] tx_d ; -input tx_en ; -input tx_er ; - -input rx_clock_enable_sink; -output rx_clock_enable_source; -input rx_clk_125 ; -output [7:0] rx_d ; -output rx_dv ; -output rx_er ; -output col ; -output crs ; - -// 8-bit Interface -output [7:0] tx_data ; -output tx_kcntl; -output tx_disparity_cntl; -output xmit_autoneg; - -input serdes_recovered_clk ; -input [7:0] rx_data ; -input rx_even ; -input rx_kcntl; -input rx_disp_err ; -input rx_cv_err ; -input rx_err_decode_mode ; - -// Managment Control Outputs -output mr_an_complete; -output mr_page_rx; -output [15:0] mr_lp_adv_ability; - -// Managment Control Inputs -input mr_main_reset; -input mr_an_enable; -input mr_restart_an; -input [15:0] mr_adv_ability; - - - -endmodule - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_beh.v b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_beh.v deleted file mode 100644 index e3a0f02..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs34/sgmii_gbe_pcs34_beh.v +++ /dev/null @@ -1,5440 +0,0 @@ -// sgmii_pcs_core_beh_pp.v generated by Lattice IP Model Creator version 1 -// created on Wed Feb 23 18:52:49 CST 2011 -// Copyright(c) 2007 Lattice Semiconductor Corporation. All rights reserved -// obfuscator_exe version 1.mar0807 - -// top - - -`define SGMII_NO_ENC - -`define SGMII_YES_CTC_DYNAMIC - -`define SGMII_FIFO_FAMILY_ECP3 - -`define SGMII_YES_SINGLE_CLOCK - - - - -`timescale 1 ns / 100 ps -module tjb57bb (wlabdde, uv5eef5, wjf77ad, yzbbd6d, medeb6c, icf5b61, - puadb09, kq6d84a, xw6c250, dz61283, vx941f, th4a0fe, hb507f7, - ri83fbf); -input [17:0] wlabdde; -input uv5eef5; -input wjf77ad; -input yzbbd6d; -input medeb6c; -input icf5b61; -input puadb09; -input [9:0] kq6d84a; -input [9:0] xw6c250; -output [17:0] dz61283; -output vx941f; -output th4a0fe; -output hb507f7; -output ri83fbf; -reg [17 : 0] ng14a7f; -reg lfa53fa; -reg gd29fd7; -reg th4febc; -reg cz7f5e6; -reg wwfaf35; -reg zxd79a8; -reg [9 : 0] ecbcd47; -reg [9 : 0] pfe6a39; -reg [2047:0] ls351cf; -wire [8:0] jea8e7a; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -localparam ps473d2 = 9,wl39e93 = 32'hfdfff40b; -localparam [31:0] bycf49d = wl39e93; -localparam xjd275d = wl39e93 & 4'hf; -localparam [11:0] wy9d773 = 'h7ff; -wire [(1 << xjd275d) -1:0] jc5dccb; -reg [ps473d2-1:0] zk732d2; -reg [xjd275d-1:0] cmcb49b [0:1]; -reg [xjd275d-1:0] xjd26ce; -reg ls93676; -integer vx9b3b2; -integer ald9d96; - -AND2 mececb4 (.A(yzbbd6d), .B(fcb2d03), .Z(ng9681a)); INV ohb40d3 (.A(jra069c), .Z(fcb2d03)); AND2 ks1a73f (.A(medeb6c), .B(ls9cfc5), .Z(yxe7e2a)); INV fc3f155 (.A(wjf8aab), .Z(ls9cfc5)); OR2 je2aaea (.A(icf5b61), .B(puadb09), .Z(zk5d4fd)); XOR2 icea7eb (.A(go53f58), .B(kf9fac1), .Z(uvfd60d)); XOR2 hoeb06c (.A(kf9fac1), .B(icc1b13), .Z(sjd899)); XOR2 xw6c4cd (.A(icc1b13), .B(tj13358), .Z(fc99ac6)); XOR2 dzcd632 (.A(tj13358), .B(jc58cb6), .Z(ipc65b2)); XOR2 tj32d95 (.A(jc58cb6), .B(ymb6573), .Z(ngb2b99)); XOR2 an95cca (.A(ymb6573), .B(xw732a4), .Z(fc99523)); XOR2 faca91b (.A(xw732a4), .B(oha46d4), .Z(ep236a5)); XOR2 xy1b52c (.A(oha46d4), .B(god4b13), .Z(hda5898)); XOR2 wl2c4c6 (.A(god4b13), .B(hd131a8), .Z(mg98d46)); XOR2 gbc6a30 (.A(hd131a8), .B(baa8c22), .Z(cm46112)); XOR2 vk30891 (.A(rv8448b), .B(jr2245e), .Z(mt122f6)); XOR2 db917b4 (.A(jr2245e), .B(gb5ed3e), .Z(pff69f5)); XOR2 qvb4fae (.A(gb5ed3e), .B(co3ebab), .Z(suf5d58)); XOR2 sjaeac1 (.A(co3ebab), .B(irab06c), .Z(ho58364)); XOR2 uic1b23 (.A(irab06c), .B(lq6c8cd), .Z(hb6466a)); XOR2 an23357 (.A(lq6c8cd), .B(ldcd5e6), .Z(qt6af36)); XOR2 xw579b5 (.A(ldcd5e6), .B(rte6d59), .Z(cb36acf)); XOR2 rvb567c (.A(rte6d59), .B(qg59f34), .Z(lqcf9a0)); XOR2 ps7cd02 (.A(qg59f34), .B(mg3409f), .Z(tja04f8)); XOR2 sj27c7 (.A(mg3409f), .B(an9f1ef), .Z(off8f7c)); defparam rtc7be5.initval = 16'h6996 ; ROM16X1 rtc7be5 (.AD3(ayef977), .AD2(zk7cbb9), .AD1(yke5dcb), .AD0(aa2ee58), .DO0(yk772c1)) ; defparam mgb9609.initval = 16'h6996 ; ROM16X1 mgb9609 (.AD3(ne58241), .AD2(qgc120b), .AD1(bn9058), .AD0(ne482c6), .DO0(gb41632)) ; defparam xyb194.initval = 16'h6996 ; ROM16X1 xyb194 (.AD3(yke5dcb), .AD2(aa2ee58), .AD1(hd946ae), .AD0(hd946ae), .DO0(ou1abb8)) ; defparam zkd5dc1.initval = 16'h6996 ; ROM16X1 zkd5dc1 (.AD3(zk7cbb9), .AD2(yke5dcb), .AD1(aa2ee58), .AD0(hd946ae), .DO0(vv55280)) ; defparam yma9407.initval = 16'h6996 ; ROM16X1 yma9407 (.AD3(ne482c6), .AD2(ayef977), .AD1(zk7cbb9), .AD0(ou1abb8), .DO0(xwcff6d)) ; defparam ip7fb6a.initval = 16'h6996 ; ROM16X1 ip7fb6a (.AD3(bn9058), .AD2(ne482c6), .AD1(ayef977), .AD0(vv55280), .DO0(nta586c)) ; defparam sj2c366.initval = 16'h6996 ; ROM16X1 sj2c366 (.AD3(qgc120b), .AD2(bn9058), .AD1(ne482c6), .AD0(yk772c1), .DO0(wlaea9b)) ; defparam uv754dd.initval = 16'h6996 ; ROM16X1 uv754dd (.AD3(yk772c1), .AD2(gb41632), .AD1(hd946ae), .AD0(hd946ae), .DO0(dm661f6)) ; defparam pu30fb2.initval = 16'h6996 ; ROM16X1 pu30fb2 (.AD3(yk772c1), .AD2(gb41632), .AD1(dob2607), .AD0(hd946ae), .DO0(qi981da)) ; defparam psc0ed1.initval = 16'h6996 ; ROM16X1 psc0ed1 (.AD3(yk772c1), .AD2(gb41632), .AD1(sud174a), .AD0(dob2607), .DO0(dm5d28e)) ; defparam rte9473.initval = 16'h6996 ; ROM16X1 rte9473 (.AD3(of51cff), .AD2(sud174a), .AD1(dob2607), .AD0(hd946ae), .DO0(ykff9d5)) ; defparam pffcea8.initval = 16'h6996 ; ROM16X1 pffcea8 (.AD3(yk772c1), .AD2(gb41632), .AD1(ykff9d5), .AD0(hd946ae), .DO0(ep3c4d2)) ; defparam kde2694.initval = 16'h6996 ; ROM16X1 kde2694 (.AD3(wl9a526), .AD2(jpd2934), .AD1(jr949a7), .AD0(epa4d3e), .DO0(yz269f4)) ; defparam ec34fa5.initval = 16'h6996 ; ROM16X1 ec34fa5 (.AD3(ou3e94b), .AD2(lqf4a58), .AD1(pha52c3), .AD0(mt2961f), .DO0(sh4b0fd)) ; defparam xw587ed.initval = 16'h6996 ; ROM16X1 xw587ed (.AD3(jr949a7), .AD2(epa4d3e), .AD1(hd946ae), .AD0(hd946ae), .DO0(os5c36f)) ; defparam zke1b79.initval = 16'h6996 ; ROM16X1 zke1b79 (.AD3(jpd2934), .AD2(jr949a7), .AD1(epa4d3e), .AD0(hd946ae), .DO0(nr55112)) ; defparam nga8897.initval = 16'h6996 ; ROM16X1 nga8897 (.AD3(mt2961f), .AD2(wl9a526), .AD1(jpd2934), .AD0(os5c36f), .DO0(wwd4d46)) ; defparam coa6a30.initval = 16'h6996 ; ROM16X1 coa6a30 (.AD3(pha52c3), .AD2(mt2961f), .AD1(wl9a526), .AD0(nr55112), .DO0(iea456)) ; defparam vi522b1.initval = 16'h6996 ; ROM16X1 vi522b1 (.AD3(lqf4a58), .AD2(pha52c3), .AD1(mt2961f), .AD0(yz269f4), .DO0(fa57824)) ; defparam aabc123.initval = 16'h6996 ; ROM16X1 aabc123 (.AD3(yz269f4), .AD2(sh4b0fd), .AD1(hd946ae), .AD0(hd946ae), .DO0(xwc0665)) ; defparam fp332a.initval = 16'h6996 ; ROM16X1 fp332a (.AD3(yz269f4), .AD2(sh4b0fd), .AD1(xy2afad), .AD0(hd946ae), .DO0(wlbeb5b)) ; defparam wwf5adc.initval = 16'h6996 ; ROM16X1 wwf5adc (.AD3(yz269f4), .AD2(sh4b0fd), .AD1(wjdc2f5), .AD0(xy2afad), .DO0(fcbd6b)) ; defparam uv5eb5a.initval = 16'h6996 ; ROM16X1 uv5eb5a (.AD3(hqad6a9), .AD2(wjdc2f5), .AD1(xy2afad), .AD0(hd946ae), .DO0(uka97bb)) ; defparam en4bdd9.initval = 16'h6996 ; ROM16X1 en4bdd9 (.AD3(yz269f4), .AD2(sh4b0fd), .AD1(uka97bb), .AD0(hd946ae), .DO0(of65b65)) ; XOR2 bn2db2c (.A(baa8c22), .B(epa4d3e), .Z(gb65982)); XOR2 oh2cc14 (.A(aa2ee58), .B(an9f1ef), .Z(ou82912)); defparam je14890.initval = 16'h0410 ; ROM16X1 je14890 (.AD3(db22415), .AD2(an9f1ef), .AD1(aa2ee58), .AD0(hd946ae), .DO0(ks15d28)) ; defparam mtae940.initval = 16'h1004 ; ROM16X1 mtae940 (.AD3(db22415), .AD2(an9f1ef), .AD1(aa2ee58), .AD0(hd946ae), .DO0(je2fff9)) ; defparam uv7ffcb.initval = 16'h0140 ; ROM16X1 uv7ffcb (.AD3(ykff2e0), .AD2(baa8c22), .AD1(epa4d3e), .AD0(hd946ae), .DO0(yke0381)) ; defparam fc1c09.initval = 16'h4001 ; ROM16X1 fc1c09 (.AD3(ykff2e0), .AD2(baa8c22), .AD1(epa4d3e), .AD0(hd946ae), .DO0(of5b9b5)) ; INV aldcdad (.A(pfe6d6c), .Z(mt36b67)); AND2 tjb5b3c (.A(zmad9e7), .B(mt36b67), .Z(ui679d2)); AND2 an3ce91 (.A(zmad9e7), .B(pfe6d6c), .Z(hbd2363)); defparam ph91b1e.CSDECODE_R = 3'b000 ; defparam ph91b1e.CSDECODE_W = 3'b000 ; defparam ph91b1e.GSR = "ENABLED" ; defparam ph91b1e.RESETMODE = "ASYNC" ; defparam ph91b1e.REGMODE = "NOREG" ; defparam ph91b1e.DATA_WIDTH_R = 18 ; defparam ph91b1e.DATA_WIDTH_W = 18 ; PDP16KA ph91b1e (.DI0(wlabdde[0]), .DI1(wlabdde[1]), .DI2(wlabdde[2]), .DI3(wlabdde[3]), .DI4(wlabdde[4]), .DI5(wlabdde[5]), .DI6(wlabdde[6]), .DI7(wlabdde[7]), .DI8(wlabdde[8]), .DI9(wlabdde[9]), .DI10(wlabdde[10]), .DI11(wlabdde[11]), .DI12(wlabdde[12]), .DI13(wlabdde[13]), .DI14(wlabdde[14]), .DI15(wlabdde[15]), .DI16(wlabdde[16]), .DI17(wlabdde[17]), .DI18(wlabdde[0]), .DI19(wlabdde[1]), .DI20(wlabdde[2]), .DI21(wlabdde[3]), .DI22(wlabdde[4]), .DI23(wlabdde[5]), .DI24(wlabdde[6]), .DI25(wlabdde[7]), .DI26(wlabdde[8]), .DI27(wlabdde[9]), .DI28(wlabdde[10]), .DI29(wlabdde[11]), .DI30(wlabdde[12]), .DI31(wlabdde[13]), .DI32(wlabdde[14]), .DI33(wlabdde[15]), .DI34(wlabdde[16]), .DI35(wlabdde[17]), .ADW0(ba1ecef), .ADW1(ba1ecef), .ADW2(hd946ae), .ADW3(hd946ae), .ADW4(meef7c0), .ADW5(pf7be00), .ADW6(tudf006), .ADW7(kdf8032), .ADW8(fac0194), .ADW9(ouca2), .ADW10(ph6511), .ADW11(xl3288f), .ADW12(db9447e), .ADW13(lsa23f7), .CEW(ng9681a), .CLKW(uv5eef5), .WE(ba1ecef), .CSW0(hd946ae), .CSW1(hd946ae), .CSW2(hd946ae), .ADR0(hd946ae), .ADR1(hd946ae), .ADR2(hd946ae), .ADR3(hd946ae), .ADR4(al7fc5f), .ADR5(dmfe2fc), .ADR6(faf17e3), .ADR7(ph8bf1a), .ADR8(xj5f8d6), .ADR9(vvfc6b7), .ADR10(rte35be), .ADR11(wy1adf6), .ADR12(mrd6fb1), .ADR13(fcb7d8d), .CER(yxe7e2a), .CLKR(wjf77ad), .CSR0(hd946ae), .CSR1(hd946ae), .CSR2(hd946ae), .RST(icf5b61), .DO0(dz61283[0]), .DO1(dz61283[1]), .DO2(dz61283[2]), .DO3(dz61283[3]), .DO4(dz61283[4]), .DO5(dz61283[5]), .DO6( -dz61283[6]), .DO7(dz61283[7]), .DO8(dz61283[8]), .DO9(dz61283[9]), .DO10(dz61283[10]), .DO11(dz61283[11]), .DO12(dz61283[12]), .DO13(dz61283[13]), .DO14(dz61283[14]), .DO15(dz61283[15]), .DO16(dz61283[16]), .DO17(dz61283[17]), .DO18(), .DO19(), .DO20(), .DO21(), .DO22(), .DO23(), .DO24(), .DO25(), .DO26(), .DO27(), .DO28(), .DO29(), .DO30(), .DO31(), .DO32(), .DO33(), .DO34(), .DO35()) ; defparam hq113f.GSR = "ENABLED" ; FD1P3BX hq113f (.D(gb44fd5), .SP(ng9681a), .CK(uv5eef5), .PD(icf5b61), .Q(go53f58)) ; defparam fcadec2.GSR = "ENABLED" ; FD1P3DX fcadec2 (.D(zx7b094), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(kf9fac1)) ; defparam lsa7fee.GSR = "ENABLED" ; FD1P3DX lsa7fee (.D(qgffb9a), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(icc1b13)) ; defparam jcd0a9c.GSR = "ENABLED" ; FD1P3DX jcd0a9c (.D(hq2a714), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(tj13358)) ; defparam fca22eb.GSR = "ENABLED" ; FD1P3DX fca22eb (.D(db8bad3), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(jc58cb6)) ; defparam xl9e6b5.GSR = "ENABLED" ; FD1P3DX xl9e6b5 (.D(kf9ad77), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(ymb6573)) ; defparam jebdbe8.GSR = "ENABLED" ; FD1P3DX jebdbe8 (.D(mr6fa1c), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(xw732a4)) ; defparam wwe5146.GSR = "ENABLED" ; FD1P3DX wwe5146 (.D(dz4518e), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(oha46d4)) ; defparam zk76c4e.GSR = "ENABLED" ; FD1P3DX zk76c4e (.D(cbb1391), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(god4b13)) ; defparam pu8c74e.GSR = "ENABLED" ; FD1P3DX pu8c74e (.D(ir1d393), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(hd131a8)) ; defparam aa9dd4b.GSR = "ENABLED" ; FD1P3DX aa9dd4b (.D(al752c3), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(baa8c22)) ; defparam tj1c35c.GSR = "ENABLED" ; FD1P3DX tj1c35c (.D(uvfd60d), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(pu3a9c4)) ; defparam sud4e22.GSR = "ENABLED" ; FD1P3DX sud4e22 (.D(sjd899), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(gq82e31)) ; defparam yz17188.GSR = "ENABLED" ; FD1P3DX yz17188 (.D(fc99ac6), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(ep23a0c)) ; defparam cb1d065.GSR = "ENABLED" ; FD1P3DX cb1d065 (.D(ipc65b2), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(os6dbe6)) ; defparam cm6df30.GSR = "ENABLED" ; FD1P3DX cm6df30 (.D(ngb2b99), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(ks5795)) ; defparam co2bca8.GSR = "ENABLED" ; FD1P3DX co2bca8 (.D(fc99523), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(tjc95d)) ; defparam hb64aef.GSR = "ENABLED" ; FD1P3DX hb64aef (.D(ep236a5), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(thf328f)) ; defparam zm9947f.GSR = "ENABLED" ; FD1P3DX zm9947f (.D(hda5898), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(godb92b)) ; defparam ofdc959.GSR = "ENABLED" ; FD1P3DX ofdc959 (.D(mg98d46), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(ea62604)) ; defparam zz13020.GSR = "ENABLED" ; FD1P3DX zz13020 (.D(cm46112), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(co31697)) ; defparam rv8b4b8.GSR = "ENABLED" ; FD1P3DX rv8b4b8 (.D(baa8c22), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(ou3ee1e)) ; defparam mrf70f0.GSR = "ENABLED" ; FD1P3DX mrf70f0 (.D(go53f58), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(meef7c0)) ; defparam yx54463.GSR = "ENABLED" ; FD1P3DX yx54463 (.D(kf9fac1), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(pf7be00)) ; defparam by524e8.GSR = "ENABLED" ; FD1P3DX by524e8 (.D(icc1b13), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(tudf006)) ; defparam je83359.GSR = "ENABLED" ; FD1P3DX je83359 (.D(tj13358), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(kdf8032)) ; defparam rtf6c45.GSR = "ENABLED" ; FD1P3DX rtf6c45 (.D(jc58cb6), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(fac0194)) ; defparam ri8c3c7.GSR = "ENABLED" ; FD1P3DX ri8c3c7 (.D(ymb6573), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(ouca2)) ; defparam kfb13d4.GSR = "ENABLED" ; FD1P3DX kfb13d4 (.D(xw732a4), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(ph6511)) ; defparam uk1f82d.GSR = "ENABLED" ; FD1P3DX uk1f82d (.D(oha46d4), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(xl3288f)) ; defparam kd703d5.GSR = "ENABLED" ; FD1P3DX kd703d5 (.D(god4b13), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(db9447e)) ; defparam qv39880.GSR = "ENABLED" ; FD1P3DX qv39880 (.D(hd131a8), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(lsa23f7)) ; defparam al6034d.GSR = "ENABLED" ; FD1P3DX al6034d (.D(baa8c22), .SP(ng9681a), .CK(uv5eef5), .CD(icf5b61), .Q(ykff2e0)) ; defparam su5c4cf.GSR = "ENABLED" ; FD1P3BX su5c4cf (.D(ph133cc), .SP(yxe7e2a), .CK(wjf77ad), .PD(zk5d4fd), .Q(rv8448b)) ; defparam lq664dd.GSR = "ENABLED" ; FD1P3DX lq664dd (.D(ba93757), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(jr2245e)) ; defparam xlbafca.GSR = "ENABLED" ; FD1P3DX xlbafca (.D(tjbf2b7), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(gb5ed3e)) ; defparam rvbfc8a.GSR = "ENABLED" ; FD1P3DX rvbfc8a (.D(czf22b3), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(co3ebab)) ; defparam gq9df00.GSR = "ENABLED" ; FD1P3DX gq9df00 (.D(lq7c001), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(irab06c)) ; defparam qia202.GSR = "ENABLED" ; FD1P3DX qia202 (.D(ym8808d), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(lq6c8cd)) ; defparam me68d50.GSR = "ENABLED" ; FD1P3DX me68d50 (.D(tw35400), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(ldcd5e6)) ; defparam wl2de0.GSR = "ENABLED" ; FD1P3DX wl2de0 (.D(pub7827), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(rte6d59)) ; defparam pu3a01e.GSR = "ENABLED" ; FD1P3DX pu3a01e (.D(qv8079b), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(qg59f34)) ; defparam kddccbf.GSR = "ENABLED" ; FD1P3DX kddccbf (.D(zz32fe6), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(mg3409f)) ; defparam yz363bf.GSR = "ENABLED" ; FD1P3DX yz363bf (.D(nt8efed), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(an9f1ef)) ; defparam bl6e1ac.GSR = "ENABLED" ; FD1P3DX bl6e1ac (.D(mt122f6), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(tw354c3)) ; defparam xlaa61a.GSR = "ENABLED" ; FD1P3DX xlaa61a (.D(pff69f5), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(jrb034c)) ; defparam vx81a66.GSR = "ENABLED" ; FD1P3DX vx81a66 (.D(suf5d58), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(gqbc45e)) ; defparam ale22f0.GSR = "ENABLED" ; FD1P3DX ale22f0 (.D(ho58364), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(qv23d0e)) ; defparam tw1e875.GSR = "ENABLED" ; FD1P3DX tw1e875 (.D(hb6466a), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(ld5a8a4)) ; defparam ayd4527.GSR = "ENABLED" ; FD1P3DX ayd4527 (.D( -qt6af36), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(qgcb534)) ; defparam jp5a9a1.GSR = "ENABLED" ; FD1P3DX jp5a9a1 (.D(cb36acf), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(me78221)) ; defparam uic1108.GSR = "ENABLED" ; FD1P3DX uic1108 (.D(lqcf9a0), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(sw5867)) ; defparam ux2c339.GSR = "ENABLED" ; FD1P3DX ux2c339 (.D(tja04f8), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(vv6ee2f)) ; defparam kq7717f.GSR = "ENABLED" ; FD1P3DX kq7717f (.D(off8f7c), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(qgcb6ee)) ; defparam ip5b771.GSR = "ENABLED" ; FD1P3DX ip5b771 (.D(an9f1ef), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(ld61cba)) ; defparam bae5d6.GSR = "ENABLED" ; FD1P3DX bae5d6 (.D(rv8448b), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(al7fc5f)) ; defparam lqc0d09.GSR = "ENABLED" ; FD1P3DX lqc0d09 (.D(jr2245e), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(dmfe2fc)) ; defparam wwf0ba4.GSR = "ENABLED" ; FD1P3DX wwf0ba4 (.D(gb5ed3e), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(faf17e3)) ; defparam ps69f44.GSR = "ENABLED" ; FD1P3DX ps69f44 (.D(co3ebab), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(ph8bf1a)) ; defparam ntb093e.GSR = "ENABLED" ; FD1P3DX ntb093e (.D(irab06c), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(xj5f8d6)) ; defparam czf8e27.GSR = "ENABLED" ; FD1P3DX czf8e27 (.D(lq6c8cd), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(vvfc6b7)) ; defparam gb7f3f9.GSR = "ENABLED" ; FD1P3DX gb7f3f9 (.D(ldcd5e6), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(rte35be)) ; defparam al7abfc.GSR = "ENABLED" ; FD1P3DX al7abfc (.D(rte6d59), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(wy1adf6)) ; defparam kf179df.GSR = "ENABLED" ; FD1P3DX kf179df (.D(qg59f34), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(mrd6fb1)) ; defparam go4c0e6.GSR = "ENABLED" ; FD1P3DX go4c0e6 (.D(mg3409f), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(fcb7d8d)) ; defparam gq2ed9d.GSR = "ENABLED" ; FD1P3DX gq2ed9d (.D(an9f1ef), .SP(yxe7e2a), .CK(wjf77ad), .CD(zk5d4fd), .Q(db22415)) ; defparam gb5107f.GSR = "ENABLED" ; FD1S3DX gb5107f (.D(pu3a9c4), .CK(wjf77ad), .CD(icf5b61), .Q(ipfd144)) ; defparam qte8a24.GSR = "ENABLED" ; FD1S3DX qte8a24 (.D(gq82e31), .CK(wjf77ad), .CD(icf5b61), .Q(ks24da8)) ; defparam ux26d40.GSR = "ENABLED" ; FD1S3DX ux26d40 (.D(ep23a0c), .CK(wjf77ad), .CD(icf5b61), .Q(sw599f)) ; defparam ux2ccf9.GSR = "ENABLED" ; FD1S3DX ux2ccf9 (.D(os6dbe6), .CK(wjf77ad), .CD(icf5b61), .Q(wjcc527)) ; defparam yk6293c.GSR = "ENABLED" ; FD1S3DX yk6293c (.D(ks5795), .CK(wjf77ad), .CD(icf5b61), .Q(hoe153c)) ; defparam yma9e3.GSR = "ENABLED" ; FD1S3DX yma9e3 (.D(tjc95d), .CK(wjf77ad), .CD(icf5b61), .Q(gd188e6)) ; defparam icc4734.GSR = "ENABLED" ; FD1S3DX icc4734 (.D(thf328f), .CK(wjf77ad), .CD(icf5b61), .Q(pha0bb8)) ; defparam gq5dc6.GSR = "ENABLED" ; FD1S3DX gq5dc6 (.D(godb92b), .CK(wjf77ad), .CD(icf5b61), .Q(qi3125d)) ; defparam xy892e8.GSR = "ENABLED" ; FD1S3DX xy892e8 (.D(ea62604), .CK(wjf77ad), .CD(icf5b61), .Q(fa4211d)) ; defparam sw108eb.GSR = "ENABLED" ; FD1S3DX sw108eb (.D(co31697), .CK(wjf77ad), .CD(icf5b61), .Q(by58d6a)) ; defparam wjc6b52.GSR = "ENABLED" ; FD1S3DX wjc6b52 (.D(ou3ee1e), .CK(wjf77ad), .CD(icf5b61), .Q(lf946e3)) ; defparam wya371f.GSR = "ENABLED" ; FD1S3DX wya371f (.D(tw354c3), .CK(uv5eef5), .CD(zk5d4fd), .Q(wjf8778)) ; defparam yxc3bc4.GSR = "ENABLED" ; FD1S3DX yxc3bc4 (.D(jrb034c), .CK(uv5eef5), .CD(zk5d4fd), .Q(aa24809)) ; defparam qi24048.GSR = "ENABLED" ; FD1S3DX qi24048 (.D(gqbc45e), .CK(uv5eef5), .CD(zk5d4fd), .Q(yx416b2)) ; defparam lsb594.GSR = "ENABLED" ; FD1S3DX lsb594 (.D(qv23d0e), .CK(uv5eef5), .CD(zk5d4fd), .Q(swa3f17)) ; defparam ie1f8b9.GSR = "ENABLED" ; FD1S3DX ie1f8b9 (.D(ld5a8a4), .CK(uv5eef5), .CD(zk5d4fd), .Q(gbc9d60)) ; defparam gb4eb05.GSR = "ENABLED" ; FD1S3DX gb4eb05 (.D(qgcb534), .CK(uv5eef5), .CD(zk5d4fd), .Q(qv2ca61)) ; defparam uv6530c.GSR = "ENABLED" ; FD1S3DX uv6530c (.D(me78221), .CK(uv5eef5), .CD(zk5d4fd), .Q(ip65837)) ; defparam ep2c1bc.GSR = "ENABLED" ; FD1S3DX ep2c1bc (.D(sw5867), .CK(uv5eef5), .CD(zk5d4fd), .Q(kqe59b1)) ; defparam ux2cd88.GSR = "ENABLED" ; FD1S3DX ux2cd88 (.D(vv6ee2f), .CK(uv5eef5), .CD(zk5d4fd), .Q(ip44761)) ; defparam oh23b0c.GSR = "ENABLED" ; FD1S3DX oh23b0c (.D(qgcb6ee), .CK(uv5eef5), .CD(zk5d4fd), .Q(gb659f7)) ; defparam oh2cfbc.GSR = "ENABLED" ; FD1S3DX oh2cfbc (.D(ld61cba), .CK(uv5eef5), .CD(zk5d4fd), .Q(lqe4221)) ; defparam ec2110b.GSR = "ENABLED" ; FD1S3DX ec2110b (.D(ipfd144), .CK(wjf77ad), .CD(icf5b61), .Q(of51cff)) ; defparam thcd858.GSR = "ENABLED" ; FD1S3DX thcd858 (.D(ks24da8), .CK(wjf77ad), .CD(icf5b61), .Q(sud174a)) ; defparam ou3bed7.GSR = "ENABLED" ; FD1S3DX ou3bed7 (.D(sw599f), .CK(wjf77ad), .CD(icf5b61), .Q(dob2607)) ; defparam zxc26f2.GSR = "ENABLED" ; FD1S3DX zxc26f2 (.D(wjcc527), .CK(wjf77ad), .CD(icf5b61), .Q(ne58241)) ; defparam cbbee21.GSR = "ENABLED" ; FD1S3DX cbbee21 (.D(hoe153c), .CK(wjf77ad), .CD(icf5b61), .Q(qgc120b)) ; defparam en65607.GSR = "ENABLED" ; FD1S3DX en65607 (.D(gd188e6), .CK(wjf77ad), .CD(icf5b61), .Q(bn9058)) ; defparam yxe86e6.GSR = "ENABLED" ; FD1S3DX yxe86e6 (.D(pha0bb8), .CK(wjf77ad), .CD(icf5b61), .Q(ne482c6)) ; defparam yma973a.GSR = "ENABLED" ; FD1S3DX yma973a (.D(qi3125d), .CK(wjf77ad), .CD(icf5b61), .Q(ayef977)) ; defparam zm8c118.GSR = "ENABLED" ; FD1S3DX zm8c118 (.D(fa4211d), .CK(wjf77ad), .CD(icf5b61), .Q(zk7cbb9)) ; defparam do1452e.GSR = "ENABLED" ; FD1S3DX do1452e (.D(by58d6a), .CK(wjf77ad), .CD(icf5b61), .Q(yke5dcb)) ; defparam jr9b583.GSR = "ENABLED" ; FD1S3DX jr9b583 (.D(lf946e3), .CK(wjf77ad), .CD(icf5b61), .Q(aa2ee58)) ; defparam xjf3992.GSR = "ENABLED" ; FD1S3DX xjf3992 (.D(wjf8778), .CK(uv5eef5), .CD(zk5d4fd), .Q(hqad6a9)) ; defparam vkb2dca.GSR = "ENABLED" ; FD1S3DX vkb2dca (.D(aa24809), .CK(uv5eef5), .CD(zk5d4fd), .Q(wjdc2f5)) ; defparam hq9361a.GSR = "ENABLED" ; FD1S3DX hq9361a (.D(yx416b2), .CK(uv5eef5), .CD(zk5d4fd), .Q(xy2afad)) ; defparam do96f47.GSR = "ENABLED" ; FD1S3DX do96f47 (.D(swa3f17), .CK(uv5eef5), .CD(zk5d4fd), .Q(ou3e94b)) ; defparam vida519.GSR = "ENABLED" ; FD1S3DX vida519 (.D(gbc9d60), .CK(uv5eef5), .CD(zk5d4fd), .Q(lqf4a58)) ; defparam xw57e3a.GSR = "ENABLED" ; FD1S3DX xw57e3a (.D(qv2ca61), .CK(uv5eef5), .CD(zk5d4fd), .Q(pha52c3)) ; defparam cb9fbdd.GSR = "ENABLED" ; FD1S3DX cb9fbdd (.D(ip65837), .CK(uv5eef5), .CD(zk5d4fd), .Q(mt2961f)) ; defparam ay6d1b4.GSR = "ENABLED" ; FD1S3DX ay6d1b4 (.D(kqe59b1), .CK(uv5eef5), .CD(zk5d4fd), .Q(wl9a526)) ; defparam kf8125.GSR = "ENABLED" ; FD1S3DX kf8125 (.D(ip44761), .CK(uv5eef5), .CD(zk5d4fd), .Q(jpd2934)) ; defparam kq67614.GSR = "ENABLED" ; FD1S3DX kq67614 (.D(gb659f7), .CK( -uv5eef5), .CD(zk5d4fd), .Q(jr949a7)) ; defparam ls1f9f.GSR = "ENABLED" ; FD1S3DX ls1f9f (.D(lqe4221), .CK(uv5eef5), .CD(zk5d4fd), .Q(epa4d3e)) ; defparam rtd8fa3.GSR = "ENABLED" ; FD1S3BX rtd8fa3 (.D(mg3e8f6), .CK(wjf77ad), .PD(zk5d4fd), .Q(wjf8aab)) ; defparam vvf608b.GSR = "ENABLED" ; FD1S3DX vvf608b (.D(ec822fe), .CK(uv5eef5), .CD(icf5b61), .Q(jra069c)) ; defparam jcfe2f7.GSR = "ENABLED" ; FD1S3BX jcfe2f7 (.D(jr8bdda), .CK(wjf77ad), .PD(zk5d4fd), .Q(hb507f7)) ; defparam vidad6d.GSR = "ENABLED" ; FD1S3DX vidad6d (.D(vxb5b5d), .CK(uv5eef5), .CD(icf5b61), .Q(ri83fbf)) ; CU2 xw5de8f (.CI(ba1ecef), .PC1(kf9fac1), .PC0(go53f58), .CO(cb8f428), .NC1(zx7b094), .NC0(gb44fd5)); CU2 oh8516a (.CI(cb8f428), .PC1(tj13358), .PC0(icc1b13), .CO(kd6a9bf), .NC1(hq2a714), .NC0(qgffb9a)); CU2 hd37f61 (.CI(kd6a9bf), .PC1(ymb6573), .PC0(jc58cb6), .CO(dz61daf), .NC1(kf9ad77), .NC0(db8bad3)); CU2 ntb5f92 (.CI(dz61daf), .PC1(oha46d4), .PC0(xw732a4), .CO(mg92ffd), .NC1(dz4518e), .NC0(mr6fa1c)); CU2 osffa4e (.CI(mg92ffd), .PC1(hd131a8), .PC0(god4b13), .CO(kd4e139), .NC1(ir1d393), .NC0(cbb1391)); CU2 jr2736f (.CI(kd4e139), .PC1(hd946ae), .PC0(baa8c22), .CO(uv6fd78), .NC1(), .NC0(al752c3)); CU2 qgf5e2e (.CI(ba1ecef), .PC1(jr2245e), .PC0(rv8448b), .CO(qi2e38b), .NC1(ba93757), .NC0(ph133cc)); CU2 rt7163f (.CI(qi2e38b), .PC1(co3ebab), .PC0(gb5ed3e), .CO(ri3fdd6), .NC1(czf22b3), .NC0(tjbf2b7)); CU2 phbac95 (.CI(ri3fdd6), .PC1(lq6c8cd), .PC0(irab06c), .CO(ep95d19), .NC1(ym8808d), .NC0(lq7c001)); CU2 qia332e (.CI(ep95d19), .PC1(rte6d59), .PC0(ldcd5e6), .CO(ym2e1ac), .NC1(pub7827), .NC0(tw35400)); CU2 tw3582a (.CI(ym2e1ac), .PC1(mg3409f), .PC0(qg59f34), .CO(pu2a660), .NC1(zz32fe6), .NC0(qv8079b)); CU2 yxcc082 (.CI(pu2a660), .PC1(hd946ae), .PC0(an9f1ef), .CO(ym82969), .NC1(), .NC0(nt8efed)); FSUB2 vxa5a42 (.A1(kf9fac1), .A0(go53f58), .B1(fcbd6b), .B0(of65b65), .BI(ba1ecef), .BOUT1(bab7697), .BOUT0(), .S1(mtbb4bb), .S0(zkda5dd)); FSUB2 hbd2eea (.A1(tj13358), .A0(icc1b13), .B1(xwc0665), .B0(wlbeb5b), .BI(bab7697), .BOUT1(fcb89ca), .BOUT0(), .S1(uic4e53), .S0(lf27299)); FSUB2 cb394ce (.A1(ymb6573), .A0(jc58cb6), .B1(iea456), .B0(fa57824), .BI(fcb89ca), .BOUT1(aaa3086), .BOUT0(), .S1(sj18430), .S0(hbc2185)); FSUB2 ie10c2f (.A1(oha46d4), .A0(xw732a4), .B1(yz269f4), .B0(wwd4d46), .BI(aaa3086), .BOUT1(ofc3750), .BOUT0(), .S1(ng1ba85), .S0(thdd42b)); FSUB2 meea15f (.A1(hd131a8), .A0(god4b13), .B1(os5c36f), .B0(nr55112), .BI(ofc3750), .BOUT1(czc6875), .BOUT0(), .S1(qi343ac), .S0(yza1d60)); FSUB2 baeb04 (.A1(hd946ae), .A0(gb65982), .B1(hd946ae), .B0(hd946ae), .BI(czc6875), .BOUT1(), .BOUT0(), .S1(), .S0(ym15317)); VHI wya98b9 (.Z(ba1ecef)); FSUB2 me62e40 (.A1(dm5d28e), .A0(ep3c4d2), .B1(jr2245e), .B0(rv8448b), .BI(ba1ecef), .BOUT1(xlc1b3), .BOUT0(), .S1(ip60d9e), .S0(fp6cf4)); FSUB2 qv367a6 (.A1(dm661f6), .A0(qi981da), .B1(co3ebab), .B0(gb5ed3e), .BI(xlc1b3), .BOUT1(ria8eca), .BOUT0(), .S1(by47652), .S0(mg3b293)); FSUB2 ald9499 (.A1(nta586c), .A0(wlaea9b), .B1(lq6c8cd), .B0(irab06c), .BI(ria8eca), .BOUT1(jp6b496), .BOUT0(), .S1(rt5a4b6), .S0(vvd25b6)); FSUB2 uk92db6 (.A1(yk772c1), .A0(xwcff6d), .B1(rte6d59), .B0(ldcd5e6), .BI(jp6b496), .BOUT1(rv8b00c), .BOUT0(), .S1(ps58067), .S0(hoc033b)); FSUB2 fc19da (.A1(ou1abb8), .A0(vv55280), .B1(mg3409f), .B0(qg59f34), .BI(rv8b00c), .BOUT1(yz9f055), .BOUT0(), .S1(pfe6d6c), .S0(mec1564)); FSUB2 swab20 (.A1(hd946ae), .A0(ou82912), .B1(hd946ae), .B0(hd946ae), .BI(yz9f055), .BOUT1(), .BOUT0(), .S1(), .S0(zmad9e7)); AGEB2 ri30ecf (.A1(jr2245e), .A0(rv8448b), .B1(dm5d28e), .B0(ep3c4d2), .CI(yxe7e2a), .GE(wjd931f)); AGEB2 mrc98fd (.A1(co3ebab), .A0(gb5ed3e), .B1(dm661f6), .B0(qi981da), .CI(wjd931f), .GE(go6866d)); AGEB2 ui43369 (.A1(lq6c8cd), .A0(irab06c), .B1(nta586c), .B0(wlaea9b), .CI(go6866d), .GE(ip4ee59)); AGEB2 qg772cc (.A1(rte6d59), .A0(ldcd5e6), .B1(yk772c1), .B0(xwcff6d), .CI(ip4ee59), .GE(cb8227)); AGEB2 wj4113c (.A1(mg3409f), .A0(qg59f34), .B1(ou1abb8), .B0(vv55280), .CI(cb8227), .GE(zm25bea)); AGEB2 lf2df52 (.A1(hd946ae), .A0(ks15d28), .B1(hd946ae), .B0(je2fff9), .CI(zm25bea), .GE(lfb501b)); FADD2 jea80de (.A1(hd946ae), .A0(hd946ae), .B1(hd946ae), .B0(hd946ae), .CI(lfb501b), .COUT1(), .COUT0(), .S1(), .S0(mg3e8f6)); AGEB2 ipf7637 (.A1(kf9fac1), .A0(go53f58), .B1(fcbd6b), .B0(of65b65), .CI(ng9681a), .GE(wjedd33)); AGEB2 rt6e99c (.A1(tj13358), .A0(icc1b13), .B1(xwc0665), .B0(wlbeb5b), .CI(wjedd33), .GE(je3f115)); AGEB2 czf88ab (.A1(ymb6573), .A0(jc58cb6), .B1(iea456), .B0(fa57824), .CI(je3f115), .GE(cze8e6b)); AGEB2 lq4735c (.A1(oha46d4), .A0(xw732a4), .B1(yz269f4), .B0(wwd4d46), .CI(cze8e6b), .GE(kf1ddcf)); AGEB2 pseee7c (.A1(hd131a8), .A0(god4b13), .B1(os5c36f), .B0(nr55112), .CI(kf1ddcf), .GE(vx19296)); AGEB2 enc94b7 (.A1(hd946ae), .A0(yke0381), .B1(hd946ae), .B0(of5b9b5), .CI(vx19296), .GE(ofe76d1)); FADD2 ym3b68c (.A1(hd946ae), .A0(hd946ae), .B1(hd946ae), .B0(hd946ae), .CI(ofe76d1), .COUT1(), .COUT0(), .S1(), .S0(ec822fe)); AGEB2 ho420bc (.A1(kq6d84a[1]), .A0(kq6d84a[0]), .B1(ip60d9e), .B0(fp6cf4), .CI(yxe7e2a), .GE(db19146)); AGEB2 rtc8a37 (.A1(kq6d84a[3]), .A0(kq6d84a[2]), .B1(by47652), .B0(mg3b293), .CI(db19146), .GE(nefec36)); AGEB2 fnf61b2 (.A1(kq6d84a[5]), .A0(kq6d84a[4]), .B1(rt5a4b6), .B0(vvd25b6), .CI(nefec36), .GE(fpbf551)); AGEB2 uifaa8f (.A1(kq6d84a[7]), .A0(kq6d84a[6]), .B1(ps58067), .B0(hoc033b), .CI(fpbf551), .GE(shc3d28)); AGEB2 pu1e944 (.A1(kq6d84a[9]), .A0(kq6d84a[8]), .B1(pfe6d6c), .B0(mec1564), .CI(shc3d28), .GE(fc1bfa4)); AGEB2 fadfd23 (.A1(hd946ae), .A0(hbd2363), .B1(hd946ae), .B0(ui679d2), .CI(fc1bfa4), .GE(vida762)); FADD2 ald3b12 (.A1(hd946ae), .A0(hd946ae), .B1(hd946ae), .B0(hd946ae), .CI(vida762), .COUT1(), .COUT0(), .S1(), .S0(jr8bdda)); AGEB2 vi4716a (.A1(mtbb4bb), .A0(zkda5dd), .B1(xw6c250[1]), .B0(xw6c250[0]), .CI(ng9681a), .GE(ep9f7e1)); AGEB2 tufbf0c (.A1(uic4e53), .A0(lf27299), .B1(xw6c250[3]), .B0(xw6c250[2]), .CI(ep9f7e1), .GE(tj13cb0)); AGEB2 lf9e587 (.A1(sj18430), .A0(hbc2185), .B1(xw6c250[5]), .B0(xw6c250[4]), .CI(tj13cb0), .GE(nef45c0)); AGEB2 zma2e02 (.A1(ng1ba85), .A0(thdd42b), .B1(xw6c250[7]), .B0(xw6c250[6]), .CI(nef45c0), .GE(vk9c4af)); AGEB2 ene257b (.A1(qi343ac), .A0(yza1d60), .B1(xw6c250[9]), .B0(xw6c250[8]), .CI(vk9c4af), .GE(wwe59b4)); AGEB2 mt2cda0 (.A1(hd946ae), .A0(ym15317), .B1(hd946ae), .B0(hd946ae), .CI(wwe59b4), .GE(qv23932)); VLO vx1c995 (.Z(hd946ae)); FADD2 kf26572 (.A1(hd946ae), .A0(hd946ae), .B1(hd946ae), .B0(hd946ae), .CI(qv23932), .COUT1(), .COUT0(), .S1(), .S0(vxb5b5d)); assign vx941f = wjf8aab; assign th4a0fe = jra069c; - -always@* begin ng14a7f<={wlabdde>>1,jea8e7a[0]};lfa53fa<=jea8e7a[1];gd29fd7<=jea8e7a[2];th4febc<=jea8e7a[3];cz7f5e6<=jea8e7a[4];wwfaf35<=jea8e7a[5];zxd79a8<=jea8e7a[6];ecbcd47<={kq6d84a>>1,jea8e7a[7]};pfe6a39<={xw6c250>>1,jea8e7a[8]};end -always@* begin ls351cf[2047]<=uv5eef5;ls351cf[2046]<=wjf77ad;ls351cf[2044]<=yzbbd6d;ls351cf[2040]<=medeb6c;ls351cf[2032]<=icf5b61;ls351cf[2016]<=puadb09;ls351cf[1984]<=kq6d84a[0];ls351cf[1920]<=xw6c250[0];ls351cf[1023]<=wlabdde[0];end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[0]};lfa53fa<=jea8e7a[1];gd29fd7<=jea8e7a[2];th4febc<=jea8e7a[3];cz7f5e6<=jea8e7a[4];wwfaf35<=jea8e7a[5];zxd79a8<=jea8e7a[6];ecbcd47<={kq6d84a>>1,jea8e7a[7]};pfe6a39<={xw6c250>>1,jea8e7a[8]};end -always@* begin ls351cf[2047]<=uv5eef5;ls351cf[2046]<=wjf77ad;ls351cf[2044]<=yzbbd6d;ls351cf[2040]<=medeb6c;ls351cf[2032]<=icf5b61;ls351cf[2017]<=puadb09;ls351cf[1987]<=kq6d84a[0];ls351cf[1926]<=xw6c250[0];ls351cf[1023]<=wlabdde[0];end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[0]};lfa53fa<=jea8e7a[1];gd29fd7<=jea8e7a[2];th4febc<=jea8e7a[3];cz7f5e6<=jea8e7a[4];wwfaf35<=jea8e7a[5];zxd79a8<=jea8e7a[6];ecbcd47<={kq6d84a>>1,jea8e7a[7]};pfe6a39<={xw6c250>>1,jea8e7a[8]};qgf59ea<=jea8e7a[9];aaacf51<=jea8e7a[10];ui67a88<=jea8e7a[11];bn3d441<=jea8e7a[12];kqea20e<=jea8e7a[13];yx51070<=jea8e7a[14];wy88385<=jea8e7a[15];al41c28<=jea8e7a[16];fce145<=jea8e7a[17];yx70a2b<=jea8e7a[18];oh8515d<=jea8e7a[19];lf28aec<=jea8e7a[20];hb45766<=jea8e7a[21];ec2bb36<=jea8e7a[22];fa5d9b1<=jea8e7a[23];dzecd8a<=jea8e7a[24];tu66c56<=jea8e7a[25];sj362b3<=jea8e7a[26];sjb159d<=jea8e7a[27];oh8acec<=jea8e7a[28];me56764<=jea8e7a[29];aab3b20<=jea8e7a[30];ym9d900<=jea8e7a[31];zxec800<=jea8e7a[32];pf64006<=jea8e7a[33];ls20037<=jea8e7a[34];ec1bb<=jea8e7a[35];gqdd8<=jea8e7a[36];db6ec1<=jea8e7a[37];bn3760e<=jea8e7a[38];mtbb077<=jea8e7a[39];bld83bd<=jea8e7a[40];ykc1def<=jea8e7a[41];puef79<=jea8e7a[42];ui77bca<=jea8e7a[43];dobde50<=jea8e7a[44];eaef283<=jea8e7a[45];by79418<=jea8e7a[46];lqca0c2<=jea8e7a[47];vv50613<=jea8e7a[48];zm8309f<=jea8e7a[49];yz184fb<=jea8e7a[50];dzc27dd<=jea8e7a[51];fp13eef<=jea8e7a[52];cb9f77f<=jea8e7a[53];dmfbbfc<=jea8e7a[54];dzddfe2<=jea8e7a[55];kqeff16<=jea8e7a[56];cz7f8b1<=jea8e7a[57];vvfc58c<=jea8e7a[58];qte2c66<=jea8e7a[59];vx16335<=jea8e7a[60];wlb19ae<=jea8e7a[61];xy8cd75<=jea8e7a[62];lq66bab<=jea8e7a[63];fc35d5b<=jea8e7a[64];sjaeadb<=jea8e7a[65];of756dd<=jea8e7a[66];irab6ec<=jea8e7a[67];ip5b764<=jea8e7a[68];ykdbb24<=jea8e7a[69];dzdd921<=jea8e7a[70];nrec90e<=jea8e7a[71];xj64876<=jea8e7a[72];sw243b6<=jea8e7a[73];ie21db1<=jea8e7a[74];doed88<=jea8e7a[75];dm76c42<=jea8e7a[76];wyb6212<=jea8e7a[77];yzb1091<=jea8e7a[78];ie8848c<=jea8e7a[79];rg42460<=jea8e7a[80];mt12303<=jea8e7a[81];db9181c<=jea8e7a[82];hq8c0e6<=jea8e7a[83];kd60732<=jea8e7a[84];zz3995<=jea8e7a[85];vx1ccae<=jea8e7a[86];ble6576<=jea8e7a[87];bn32bb6<=jea8e7a[88];ir95db6<=jea8e7a[89];wlaedb4<=jea8e7a[90];tu76da5<=jea8e7a[91];ukb6d2a<=jea8e7a[92];cob6950<=jea8e7a[93];qvb4a80<=jea8e7a[94];dba5405<=jea8e7a[95];tw2a02f<=jea8e7a[96];th5017a<=jea8e7a[97];kf80bd7<=jea8e7a[98];gq5ebd<=jea8e7a[99];ba2f5e9<=jea8e7a[100];en7af4a<=jea8e7a[101];ldd7a54<=jea8e7a[102];xybd2a7<=jea8e7a[103];hbe953a<=jea8e7a[104];fn4a9d7<=jea8e7a[105];uv54ebe<=jea8e7a[106];nga75f4<=jea8e7a[107];ri3afa2<=jea8e7a[108];ldd7d12<=jea8e7a[109];yzbe897<=jea8e7a[110];nef44bc<=jea8e7a[111];zma25e2<=jea8e7a[112];kf12f12<=jea8e7a[113];ou97895<=jea8e7a[114];ukbc4a9<=jea8e7a[115];ipe2548<=jea8e7a[116];ep12a44<=jea8e7a[117];ux95225<=jea8e7a[118];qia912d<=jea8e7a[119];xw48969<=jea8e7a[120];mr44b4b<=jea8e7a[121];xy25a5d<=jea8e7a[122];vx2d2ea<=jea8e7a[123];lq69757<=jea8e7a[124];kd4babb<=jea8e7a[125];ho5d5dc<=jea8e7a[126];uieaee3<=jea8e7a[127];dm57719<=jea8e7a[128];irbb8ca<=jea8e7a[129];qtdc654<=jea8e7a[130];rte32a5<=jea8e7a[131];zz1952e<=jea8e7a[132];jcca977<=jea8e7a[133];al54bba<=jea8e7a[134];lfa5dd4<=jea8e7a[135];aa2eea6<=jea8e7a[136];yk77531<=jea8e7a[137];phba989<=jea8e7a[138];sud4c4e<=jea8e7a[139];wya6270<=jea8e7a[140];ks31380<=jea8e7a[141];ba89c00<=jea8e7a[142];sh4e003<=jea8e7a[143];yx7001d<=jea8e7a[144];kf800ec<=jea8e7a[145];co764<=jea8e7a[146];tj3b20<=jea8e7a[147];yz1d906<=jea8e7a[148];zxec834<=jea8e7a[149];pf641a6<=jea8e7a[150];ls20d37<=jea8e7a[151];db69ba<=jea8e7a[152];ym34dd6<=jea8e7a[153];mga6eb1<=jea8e7a[154];ph37589<=jea8e7a[155];vxbac4f<=jea8e7a[156];qtd627e<=jea8e7a[157];irb13f4<=jea8e7a[158];ls89fa4<=jea8e7a[159];vv4fd23<=jea8e7a[160];th7e91e<=jea8e7a[161];zkf48f6<=jea8e7a[162];wla47b3<=jea8e7a[163];qv23d9d<=jea8e7a[164];tw1eced<=jea8e7a[165];pff676b<=jea8e7a[166];swb3b5f<=jea8e7a[167];mg9daf8<=jea8e7a[168];gbed7c0<=jea8e7a[169];xj6be05<=jea8e7a[170];dz5f02f<=jea8e7a[171];mrf817e<=jea8e7a[172];vic0bf4<=jea8e7a[173];qi5fa3<=jea8e7a[174];do2fd19<=jea8e7a[175];zx7e8cb<=jea8e7a[176];vif465e<=jea8e7a[177];ksa32f2<=jea8e7a[178];vx19790<=jea8e7a[179];cmcbc87<=jea8e7a[180];wj5e438<=jea8e7a[181];ipf21c4<=jea8e7a[182];qv90e25<=jea8e7a[183];gq8712c<=jea8e7a[184];db38961<=jea8e7a[185];eac4b0f<=jea8e7a[186];ls25879<=jea8e7a[187];cb2c3ca<=jea8e7a[188];rt61e55<=jea8e7a[189];wyf2ae<=jea8e7a[190];dm79571<=jea8e7a[191];bycab8a<=jea8e7a[192];pf55c52<=jea8e7a[193];anae296<=jea8e7a[194];xj714b4<=jea8e7a[195];cb8a5a6<=jea8e7a[196];zk52d35<=jea8e7a[197];fc969ab<=jea8e7a[198];cbb4d5b<=jea8e7a[199];swa6add<=jea8e7a[200];je356e9<=jea8e7a[201];uxab74a<=jea8e7a[202];al5ba54<=jea8e7a[203];thdd2a5<=jea8e7a[204];pfe952f<=jea8e7a[205];rt4a97f<=jea8e7a[206];mr54bfe<=jea8e7a[207];dba5ff4<=jea8e7a[208];pu2ffa6<=jea8e7a[209];qt7fd33<=jea8e7a[210];byfe99c<=jea8e7a[211];lqf4ce2<=jea8e7a[212];mga6713<=jea8e7a[213];kf33898<=jea8e7a[214];ba9c4c4<=jea8e7a[215];ale2623<=jea8e7a[216];tj1311c<=jea8e7a[217];ec988e6<=jea8e7a[218];suc4730<=jea8e7a[219];qv23980<=jea8e7a[220];vx1cc05<=jea8e7a[221];ble602e<=jea8e7a[222];zm30176<=jea8e7a[223];sj80bb2<=jea8e7a[224];sw5d95<=jea8e7a[225];sw2eca9<=jea8e7a[226];ne76549<=jea8e7a[227];dob2a4b<=jea8e7a[228];yz9525a<=jea8e7a[229];wya92d5<=jea8e7a[230];su496a9<=jea8e7a[231];uv4b548<=jea8e7a[232];pf5aa45<=jea8e7a[233];hod522f<=jea8e7a[234];qia917b<=jea8e7a[235];xw48bd9<=jea8e7a[236];nr45ecb<=jea8e7a[237];fc2f65f<=jea8e7a[238];ld7b2fa<=jea8e7a[239];shd97d7<=jea8e7a[240];eacbebd<=jea8e7a[241];nr5f5e8<= -jea8e7a[242];mefaf46<=jea8e7a[243];xjd7a30<=jea8e7a[244];pubd187<=jea8e7a[245];uve8c3a<=jea8e7a[246];yk461d4<=jea8e7a[247];pu30ea1<=jea8e7a[248];sw8750b<=jea8e7a[249];tw3a859<=jea8e7a[250];ykd42ca<=jea8e7a[251];yza1651<=jea8e7a[252];fcb28d<=jea8e7a[253];ww5946b<=jea8e7a[254];lqca359<=jea8e7a[255];uv51acb<=jea8e7a[256];mg8d65c<=jea8e7a[257];zx6b2e0<=jea8e7a[258];me59706<=jea8e7a[259];iccb831<=jea8e7a[260];qg5c188<=jea8e7a[261];ose0c41<=jea8e7a[262];bn6208<=jea8e7a[263];mg31047<=jea8e7a[264];qi88238<=jea8e7a[265];en411c0<=jea8e7a[266];ir8e04<=jea8e7a[267];vi47025<=jea8e7a[268];tj3812b<=jea8e7a[269];zkc095e<=jea8e7a[270];xy4af3<=jea8e7a[271];hq2579b<=jea8e7a[272];ym2bcdb<=jea8e7a[273];kd5e6d9<=jea8e7a[274];rtf36cc<=jea8e7a[275];lf9b667<=jea8e7a[276];wwdb33e<=jea8e7a[277];ipd99f0<=jea8e7a[278];alccf84<=jea8e7a[279];ic67c25<=jea8e7a[280];gq3e129<=jea8e7a[281];cmf0949<=jea8e7a[282];vx84a49<=jea8e7a[283];ri2524f<=jea8e7a[284];cb2927b<=jea8e7a[285];os493dd<=jea8e7a[286];me49ee8<=jea8e7a[287];dz4f741<=jea8e7a[288];jp7ba0f<=jea8e7a[289];zxdd07e<=jea8e7a[290];kde83f7<=jea8e7a[291];cz41fbd<=jea8e7a[292];ukfded<=jea8e7a[293];ld7ef68<=jea8e7a[294];off7b46<=jea8e7a[295];hqbda34<=jea8e7a[296];mred1a3<=jea8e7a[297];qg68d1d<=jea8e7a[298];su468e8<=jea8e7a[299];ou34740<=jea8e7a[300];gqa3a00<=jea8e7a[301];sj1d001<=jea8e7a[302];gbe800d<=jea8e7a[303];xj4006d<=jea8e7a[304];co36e<=jea8e7a[305];ri1b70<=jea8e7a[306];end -always@* begin ls351cf[2047]<=uv5eef5;ls351cf[2046]<=wjf77ad;ls351cf[2044]<=yzbbd6d;ls351cf[2043]<=ui4cc84;ls351cf[2040]<=medeb6c;ls351cf[2038]<=fp6cf4;ls351cf[2032]<=icf5b61;ls351cf[2029]<=ba1ecef;ls351cf[2017]<=puadb09;ls351cf[2013]<=gbc9d60;ls351cf[2010]<=ip60d9e;ls351cf[2003]<=vida762;ls351cf[1990]<=cb8f428;ls351cf[1987]<=kq6d84a[0];ls351cf[1982]<=mrf7047;ls351cf[1980]<=faf17e3;ls351cf[1979]<=pha52c3;ls351cf[1973]<=mg3b293;ls351cf[1963]<=xl3288f;ls351cf[1958]<=ng9681a;ls351cf[1957]<=gb659f7;ls351cf[1953]<=wlbeb5b;ls351cf[1942]<=wy1adf6;ls351cf[1932]<=db8bad3;ls351cf[1929]<=mtbb4bb;ls351cf[1926]<=xw6c250[0];ls351cf[1923]<=ep95d19;ls351cf[1921]<=hda5898;ls351cf[1917]<=fc1bfa4;ls351cf[1914]<=kqe59b1;ls351cf[1913]<=ph8bf1a;ls351cf[1911]<=qv2ca61;ls351cf[1903]<=qt6af36;ls351cf[1898]<=xlc1b3;ls351cf[1879]<=db9447e;ls351cf[1876]<=hoe153c;ls351cf[1872]<=godb92b;ls351cf[1868]<=tw837a6;ls351cf[1866]<=epa4d3e;ls351cf[1863]<=vx19296;ls351cf[1858]<=xwc0665;ls351cf[1837]<=mrd6fb1;ls351cf[1816]<=kf9ad77;ls351cf[1810]<=lf27299;ls351cf[1805]<=fcb2d03;ls351cf[1802]<=qg4c66b;ls351cf[1799]<=qv8079b;ls351cf[1795]<=mg98d46;ls351cf[1786]<=ui679d2;ls351cf[1783]<=off8f7c;ls351cf[1780]<=jpd2934;ls351cf[1778]<=xj5f8d6;ls351cf[1775]<=mt2961f;ls351cf[1770]<=ks5795;ls351cf[1758]<=cb36acf;ls351cf[1748]<=by47652;ls351cf[1710]<=lsa23f7;ls351cf[1704]<=bn9058;ls351cf[1701]<=ou1abb8;ls351cf[1699]<=rt5a4b6;ls351cf[1696]<=ea62604;ls351cf[1689]<=kf85586;ls351cf[1685]<=lqe4221;ls351cf[1679]<=uvfd60d;ls351cf[1678]<=of5b9b5;ls351cf[1668]<=icc1b13;ls351cf[1627]<=fcb7d8d;ls351cf[1624]<=ou82912;ls351cf[1605]<=uka31d0;ls351cf[1589]<=yk772c1;ls351cf[1584]<=kd6a9bf;ls351cf[1573]<=bab7697;ls351cf[1572]<=rv8448b;ls351cf[1567]<=aa24809;ls351cf[1562]<=ls9cfc5;ls351cf[1557]<=ba93757;ls351cf[1556]<=db19146;ls351cf[1551]<=zz32fe6;ls351cf[1548]<=ir1d393;ls351cf[1543]<=cm46112;ls351cf[1524]<=hbd2363;ls351cf[1521]<=qgffb9a;ls351cf[1519]<=al7fc5f;ls351cf[1513]<=ip44761;ls351cf[1512]<=kf9fac1;ls351cf[1509]<=vvfc6b7;ls351cf[1504]<=tw35400;ls351cf[1502]<=ip65837;ls351cf[1499]<=ho58364;ls351cf[1493]<=wjcc527;ls351cf[1492]<=tjc95d;ls351cf[1469]<=lqcf9a0;ls351cf[1466]<=ep23a0c;ls351cf[1448]<=vvd25b6;ls351cf[1421]<=ip4ee59;ls351cf[1417]<=ep3c4d2;ls351cf[1415]<=wjf8778;ls351cf[1404]<=zx7b094;ls351cf[1402]<=fcbd6b;ls351cf[1400]<=ym8808d;ls351cf[1398]<=pff69f5;ls351cf[1377]<=lf946e3;ls351cf[1374]<=mt8fd07;ls351cf[1373]<=ykff2e0;ls351cf[1361]<=gd188e6;ls351cf[1359]<=yza1d60;ls351cf[1355]<=of51cff;ls351cf[1354]<=qg59f34;ls351cf[1350]<=hoc033b;ls351cf[1349]<=pha0bb8;ls351cf[1344]<=co31697;ls351cf[1343]<=qi343ac;ls351cf[1341]<=fpbf551;ls351cf[1330]<=do2ac34;ls351cf[1326]<=sud174a;ls351cf[1323]<=tuee7bc;ls351cf[1322]<=zm25bea;ls351cf[1310]<=sjd899;ls351cf[1308]<=yke0381;ls351cf[1305]<=ps58067;ls351cf[1301]<=qi3125d;ls351cf[1289]<=tj13358;ls351cf[1286]<=wwe59b4;ls351cf[1280]<=tw354c3;ls351cf[1279]<=czc6875;ls351cf[1271]<=ieb67b8;ls351cf[1224]<=fpb0d18;ls351cf[1210]<=dob2607;ls351cf[1207]<=db22415;ls351cf[1201]<=hb7191b;ls351cf[1199]<=jra069c;ls351cf[1195]<=ks15d28;ls351cf[1193]<=thdd42b;ls351cf[1163]<=gb5ed3e;ls351cf[1162]<=wl18e80;ls351cf[1155]<=wwd4d46;ls351cf[1144]<=ipc65b2;ls351cf[1136]<=ofe76d1;ls351cf[1130]<=ldcd5e6;ls351cf[1125]<=rv8b00c;ls351cf[1120]<=mr6fa1c;ls351cf[1112]<=wlaea9b;ls351cf[1110]<=fa4211d;ls351cf[1104]<=zkd013b;ls351cf[1098]<=uic4e53;ls351cf[1096]<=jr2245e;ls351cf[1086]<=xy2afad;ls351cf[1076]<=ykff9d5;ls351cf[1067]<=kdd6f0e;ls351cf[1065]<=rv19ac2;ls351cf[1060]<=fa57824;ls351cf[1054]<=ym2e1ac;ls351cf[1053]<=oha46d4;ls351cf[1051]<=vxb5b5d;ls351cf[1048]<=mg92ffd;ls351cf[1039]<=meef7c0;ls351cf[1026]<=gqbc45e;ls351cf[1023]<=wlabdde[0];ls351cf[1021]<=an29990;ls351cf[1006]<=lqf4a58;ls351cf[1001]<=jr8bdda;ls351cf[995]<=hq2a714;ls351cf[991]<=jr9ee08;ls351cf[990]<=dmfe2fc;ls351cf[981]<=ph6511;ls351cf[978]<=jr949a7;ls351cf[976]<=wjedd33;ls351cf[971]<=rte35be;ls351cf[964]<=zkda5dd;ls351cf[961]<=pub7827;ls351cf[960]<=ep236a5;ls351cf[957]<=wl9a526;ls351cf[951]<=hb6466a;ls351cf[938]<=qgc120b;ls351cf[936]<=thf328f;ls351cf[931]<=hd131a8;ls351cf[901]<=ba898cd;ls351cf[891]<=tja04f8;ls351cf[885]<=os6dbe6;ls351cf[850]<=vv55280;ls351cf[849]<=ria8eca;ls351cf[839]<=yz29b02;ls351cf[812]<=yz9f055;ls351cf[802]<=tj13cb0;ls351cf[794]<=xwcff6d;ls351cf[786]<=dm5d28e;ls351cf[783]<=wjdc2f5;ls351cf[778]<=ph133cc;ls351cf[774]<=cbb1391;ls351cf[760]<=je18d7;ls351cf[756]<=go53f58;ls351cf[752]<=ri3fdd6;ls351cf[749]<=suf5d58;ls351cf[746]<=ne58241;ls351cf[733]<=gq82e31;ls351cf[710]<=lq6c8cd;ls351cf[708]<=wj44e94;ls351cf[707]<=hqad6a9;ls351cf[702]<=gb44fd5;ls351cf[701]<=of65b65;ls351cf[700]<=lq7c001;ls351cf[699]<=mt122f6;ls351cf[688]<=aa2ee58;ls351cf[687]<=lfb501b;ls351cf[679]<=ng1ba85;ls351cf[677]<=ld61cba;ls351cf[674]<=ne482c6;ls351cf[671]<=ofc3750;ls351cf[670]<=zxc2db3;ls351cf[663]<=ipfd144;ls351cf[661]<=mg3409f;ls351cf[652]<=jp6b496;ls351cf[650]<=ayef977;ls351cf[643]<=ph276eb;ls351cf[640]<=ou3ee1e;ls351cf[639]<=ym15317;ls351cf[635]<=ymb6cf7;ls351cf[612]<=ep9f7e1;ls351cf[605]<=ks24da8;ls351cf[599]<=wjf8aab;ls351cf[597]<=je2fff9;ls351cf[596]<=sj18430;ls351cf[581]<=dm661f6;ls351cf[577]<=cze8e6b;ls351cf[572]<=fc99ac6;ls351cf[568]<=ec822fe;ls351cf[562]<=mec1564;ls351cf[556]<=go6866d;ls351cf[555]<=zk7cbb9;ls351cf[552]<=zm3a027;ls351cf[530]<=je3f115;ls351cf[526]<=xw732a4;ls351cf[525]<=cmdbaf1;ls351cf[513]<=jrb034c;ls351cf[510]<=gb65982;ls351cf[503]<=swa3f17;ls351cf[495]<=shc3d28;ls351cf[490]<=ouca2;ls351cf[482]<=pu2a660;ls351cf[480]<=fc99523;ls351cf[465]<=god4b13;ls351cf[450]<=mtaeb3b;ls351cf[425]<=cb8227;ls351cf[419]<=sh4b0fd;ls351cf[406]<=zmad9e7;ls351cf[401]<=ri868c7;ls351cf[389]<=kd4e139;ls351cf[387]<=dz61daf;ls351cf[373]<=sw599f;ls351cf[366]<=pu3a9c4;ls351cf[355]<=irab06c;ls351cf[354]<=hq8c8df;ls351cf[351]<=zk5d4fd;ls351cf[350]<=qi2e38b;ls351cf[344]<=by58d6a;ls351cf[343]<=mg3e8f6;ls351cf[339]<=aaa3086;ls351cf[338]<=qgcb6ee;ls351cf[335]<=rg585b6;ls351cf[321]<=ba4edd;ls351cf[298]<=fcb89ca;ls351cf[290]<=qi981da;ls351cf[288]<=ymb6573;ls351cf[278]<=co3ebab;ls351cf[276]<=nef45c0;ls351cf[263]<=yz269f4;ls351cf[251]<=ou3e94b;ls351cf[245]<=fac0194;ls351cf[241]<=an9f1ef;ls351cf[240]<=ngb2b99;ls351cf[232]<=os5c36f;ls351cf[225]<=yxe7e2a;ls351cf[212]<=rte6d59;ls351cf[209]<=uka97bb;ls351cf[203]<=pfe6d6c;ls351cf[194]<=baa8c22;ls351cf[193]<=dz4518e;ls351cf[177]<=nta586c;ls351cf[175]<=czf22b3;ls351cf[172]<=yke5dcb;ls351cf[169]<=vv6ee2f;ls351cf[167]<=nefec36;ls351cf[160]<=vk9c4af;ls351cf[149]<=hbc2185;ls351cf[145]<=wjd931f;ls351cf[144]<=jc58cb6;ls351cf[125]<=yx416b2;ls351cf[122]<=kdf8032;ls351cf[120]<=ym82969;ls351cf[116]<=nr55112;ls351cf[109]<=hd946ae;ls351cf[104]<=gb41632;ls351cf[97]<=uv6fd78;ls351cf[87]<=tjbf2b7;ls351cf[84]<=sw5867;ls351cf[83]<=vvcd616;ls351cf[72]<=iea456;ls351cf[61]<=tudf006;ls351cf[60]<=nt8efed; -ls351cf[58]<=kf1ddcf;ls351cf[54]<=qv23932;ls351cf[48]<=al752c3;ls351cf[42]<=me78221;ls351cf[30]<=pf7be00;ls351cf[21]<=qgcb534;ls351cf[10]<=ld5a8a4;ls351cf[5]<=qv23d0e;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[1]};aa98036<=jea8e7a[2];rgc01b1<={zz38f51>>1,jea8e7a[3]};gqd8a<=jea8e7a[4];db6c51<=jea8e7a[5];an3628e<={ic59746>>1,jea8e7a[6]};epb1475<={cmcba31>>1,jea8e7a[7]};gd8a3ac<={vi5d188>>1,jea8e7a[8]};gb51d65<={ene8c43>>1,jea8e7a[9]};hd8eb2c<={ay4621c>>1,jea8e7a[10]};kd75966<={ec310e1>>1,jea8e7a[11]};ecacb35<=jea8e7a[12];cz659a8<=jea8e7a[13];ir2cd44<=jea8e7a[14];ho66a24<=jea8e7a[15];zm35123<={kf803b>>1,jea8e7a[16]};ria891a<=jea8e7a[17];cz448d2<=jea8e7a[18];uk24695<={kf7731>>1,jea8e7a[19]};an234a9<=jea8e7a[20];qi1a54c<=jea8e7a[21];nrd2a60<={pfe6344>>1,jea8e7a[22]};oh95307<=jea8e7a[23];uka983d<=jea8e7a[24];yk4c1e8<=jea8e7a[25];qt60f40<=jea8e7a[26];qv7a04<=jea8e7a[27];bn3d024<={ie3102c>>1,jea8e7a[28]};mre8126<=jea8e7a[29];th40935<=jea8e7a[30];ba49af<=jea8e7a[31];mg24d7b<=jea8e7a[32];kf26bd8<=jea8e7a[33];xy35ec5<=jea8e7a[34];hdaf62b<=jea8e7a[35];bl7b15e<=jea8e7a[36];rtd8af7<=jea8e7a[37];tuc57be<={ea6d36f>>1,jea8e7a[38]};wy2bdf2<=jea8e7a[39];uv5ef91<=jea8e7a[40];wjf7c8d<=jea8e7a[41];uxbe46c<=jea8e7a[42];mrf2365<=jea8e7a[43];xl91b2d<=jea8e7a[44];ks8d96e<=jea8e7a[45];lq6cb71<=jea8e7a[46];gb65b8a<=jea8e7a[47];end -always@* begin ls351cf[2047]<=hod0e3d[0];ls351cf[2046]<=force_isolate;ls351cf[2044]<=zz38f51[0];ls351cf[2040]<=blc7a8f;ls351cf[2032]<=lf3d47e;ls351cf[2017]<=ic59746[0];ls351cf[1987]<=cmcba31[0];ls351cf[1926]<=vi5d188[0];ls351cf[1805]<=mt7369;ls351cf[1804]<=ene8c43[0];ls351cf[1803]<=gq31a26;ls351cf[1761]<=qv2c039;ls351cf[1668]<=mr6f298;ls351cf[1562]<=yz39b4d;ls351cf[1560]<=ay4621c[0];ls351cf[1558]<=ym8d131;ls351cf[1550]<=kf803b[0];ls351cf[1475]<=yx601cd;ls351cf[1464]<=jp40b00;ls351cf[1288]<=ne794c4;ls351cf[1076]<=thcda6d;ls351cf[1072]<=ec310e1[0];ls351cf[1069]<=os68988;ls351cf[1056]<=go53113;ls351cf[1052]<=jp401dc;ls351cf[1023]<=gbe_mode;ls351cf[902]<=ece6d;ls351cf[901]<=pfe6344[0];ls351cf[880]<=ym5807;ls351cf[834]<=cm6de53;ls351cf[775]<=fae1007;ls351cf[732]<=ks88160;ls351cf[528]<=dmca622;ls351cf[450]<=aldcc68;ls351cf[417]<=jc4dbca;ls351cf[387]<=fp1c200;ls351cf[366]<=ie3102c[0];ls351cf[225]<=gq3b98d;ls351cf[208]<=fa69b79;ls351cf[193]<=kq43840;ls351cf[183]<=mt26205;ls351cf[128]<=suc44c0;ls351cf[112]<=kf7731[0];ls351cf[104]<=ea6d36f[0];ls351cf[96]<=ec88708;ls351cf[91]<=en44c40;ls351cf[64]<=ec98898;ls351cf[56]<=ukee6;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[2]};gqd8a<=jea8e7a[3];db6c51<=jea8e7a[4];zk42a46<=jea8e7a[5];sw15232<=jea8e7a[6];aaa9191<={vi7928a>>1,jea8e7a[7]};an3628e<={ic59746>>1,jea8e7a[8]};epb1475<={cmcba31>>1,jea8e7a[9]};gd8a3ac<={vi5d188>>1,jea8e7a[10]};gb51d65<={ene8c43>>1,jea8e7a[11]};hd8eb2c<={ay4621c>>1,jea8e7a[12]};kd75966<={ec310e1>>1,jea8e7a[13]};ecacb35<=jea8e7a[14];cz659a8<=jea8e7a[15];ir2cd44<=jea8e7a[16];ho66a24<=jea8e7a[17];ba49af<=jea8e7a[18];mg24d7b<=jea8e7a[19];jc42a1b<=jea8e7a[20];rtd8af7<=jea8e7a[21];tuc57be<={ea6d36f>>1,jea8e7a[22]};wy2bdf2<=jea8e7a[23];ls1b459<=jea8e7a[24];xwda2ca<=jea8e7a[25];th40935<=jea8e7a[26];zm35123<={kf803b>>1,jea8e7a[27]};cz448d2<=jea8e7a[28];ria891a<=jea8e7a[29];fa523cb<=jea8e7a[30];zz91e5a<=jea8e7a[31];bn3d024<={ie3102c>>1,jea8e7a[32]};qv7a04<=jea8e7a[33];qt60f40<=jea8e7a[34];pf5ad51<=jea8e7a[35];ipd6a8f<=jea8e7a[36];bnb547d<={dz64739>>1,jea8e7a[37]};jraa3ee<=jea8e7a[38];qt51f76<=jea8e7a[39];ir8fbb4<=jea8e7a[40];qg7dda4<=jea8e7a[41];bl7b15e<=jea8e7a[42];xy35ec5<=jea8e7a[43];anb485a<=jea8e7a[44];uv5ef91<=jea8e7a[45];wjf7c8d<=jea8e7a[46];uxbe46c<=jea8e7a[47];mrf2365<=jea8e7a[48];xl91b2d<=jea8e7a[49];ks8d96e<=jea8e7a[50];lq6cb71<=jea8e7a[51];gb65b8a<=jea8e7a[52];end -always@* begin ls351cf[2047]<=force_isolate;ls351cf[2046]<=zz38f51[0];ls351cf[2044]<=blc7a8f;ls351cf[2041]<=lf3d47e;ls351cf[2034]<=do20bc9;ls351cf[2021]<=ou5e4a;ls351cf[2017]<=thcda6d;ls351cf[1995]<=vi7928a[0];ls351cf[1986]<=ea6d36f[0];ls351cf[1943]<=ic59746[0];ls351cf[1925]<=fa69b79;ls351cf[1908]<=mt26205;ls351cf[1864]<=dz64739[0];ls351cf[1855]<=fp1c200;ls351cf[1838]<=cmcba31[0];ls351cf[1803]<=kqfa2f5;ls351cf[1769]<=en44c40;ls351cf[1680]<=ux239cf;ls351cf[1662]<=fae1007;ls351cf[1628]<=vi5d188[0];ls351cf[1583]<=go53113;ls351cf[1559]<=icd17a9;ls351cf[1501]<=mr4ea09;ls351cf[1490]<=hd991c;ls351cf[1487]<=ec88708;ls351cf[1312]<=bn1ce7d;ls351cf[1276]<=ym5807;ls351cf[1209]<=ene8c43[0];ls351cf[1155]<=mt39f74;ls351cf[1118]<=ec98898;ls351cf[1070]<=jp40b00;ls351cf[1048]<=byee951;ls351cf[1023]<=gbe_mode;ls351cf[1008]<=god13fa;ls351cf[954]<=ie3102c[0];ls351cf[932]<=me4c8e7;ls351cf[927]<=kq43840;ls351cf[791]<=dmca622;ls351cf[750]<=kq49d41;ls351cf[743]<=ec310e1[0];ls351cf[577]<=wje73ee;ls351cf[524]<=ece6d;ls351cf[504]<=qv2c039;ls351cf[395]<=ne794c4;ls351cf[375]<=jp401dc;ls351cf[371]<=ay4621c[0];ls351cf[262]<=yz39b4d;ls351cf[197]<=mr6f298;ls351cf[189]<=suc44c0;ls351cf[187]<=ukee6;ls351cf[98]<=cm6de53;ls351cf[93]<=kf803b[0];ls351cf[49]<=jc4dbca;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[3]};gqd8a<=jea8e7a[4];db6c51<=jea8e7a[5];epa1d8f<={zz38960>>1,jea8e7a[6]};an3628e<={ic59746>>1,jea8e7a[7]};epb1475<={cmcba31>>1,jea8e7a[8]};gd8a3ac<={vi5d188>>1,jea8e7a[9]};gb51d65<={ene8c43>>1,jea8e7a[10]};hd8eb2c<={ay4621c>>1,jea8e7a[11]};kd75966<={ec310e1>>1,jea8e7a[12]};ecacb35<=jea8e7a[13];cz659a8<=jea8e7a[14];ir2cd44<=jea8e7a[15];ho66a24<=jea8e7a[16];tuc57be<={ea6d36f>>1,jea8e7a[17]};wy2bdf2<=jea8e7a[18];ls1b459<=jea8e7a[19];th40935<=jea8e7a[20];zm35123<={kf803b>>1,jea8e7a[21]};cz448d2<=jea8e7a[22];ria891a<=jea8e7a[23];uv5ef91<=jea8e7a[24];wjf7c8d<=jea8e7a[25];uxbe46c<=jea8e7a[26];mrf2365<=jea8e7a[27];xl91b2d<=jea8e7a[28];ks8d96e<=jea8e7a[29];lq6cb71<=jea8e7a[30];gb65b8a<=jea8e7a[31];end -always@* begin ls351cf[2047]<=db3242c;ls351cf[2046]<=force_isolate;ls351cf[2044]<=zz38f51[0];ls351cf[2040]<=blc7a8f;ls351cf[2032]<=lf3d47e;ls351cf[2017]<=zz38960[0];ls351cf[1987]<=ic59746[0];ls351cf[1926]<=cmcba31[0];ls351cf[1804]<=vi5d188[0];ls351cf[1803]<=jp401dc;ls351cf[1560]<=ene8c43[0];ls351cf[1558]<=jc4dbca;ls351cf[1550]<=fae1007;ls351cf[1464]<=ec98898;ls351cf[1072]<=ay4621c[0];ls351cf[1069]<=cm6de53;ls351cf[1052]<=ea6d36f[0];ls351cf[1023]<=gbe_mode;ls351cf[901]<=ukee6;ls351cf[880]<=suc44c0;ls351cf[775]<=fp1c200;ls351cf[732]<=go53113;ls351cf[450]<=kf803b[0];ls351cf[387]<=kq43840;ls351cf[366]<=dmca622;ls351cf[225]<=jp40b00;ls351cf[193]<=ec88708;ls351cf[183]<=ne794c4;ls351cf[112]<=kqfa2f5;ls351cf[96]<=ec310e1[0];ls351cf[91]<=mr6f298;ls351cf[56]<=fa69b79;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[3]};gqd8a<=jea8e7a[4];db6c51<=jea8e7a[5];zk42a46<=jea8e7a[6];sw15232<=jea8e7a[7];epa1d8f<={zz38960>>1,jea8e7a[8]};an3628e<={ic59746>>1,jea8e7a[9]};epb1475<={cmcba31>>1,jea8e7a[10]};gd8a3ac<={vi5d188>>1,jea8e7a[11]};gb51d65<={ene8c43>>1,jea8e7a[12]};hd8eb2c<={ay4621c>>1,jea8e7a[13]};kd75966<={ec310e1>>1,jea8e7a[14]};ecacb35<=jea8e7a[15];cz659a8<=jea8e7a[16];ir2cd44<=jea8e7a[17];ho66a24<=jea8e7a[18];tuc57be<={ea6d36f>>1,jea8e7a[19]};wy2bdf2<=jea8e7a[20];ls1b459<=jea8e7a[21];th40935<=jea8e7a[22];zm35123<={kf803b>>1,jea8e7a[23]};cz448d2<=jea8e7a[24];ria891a<=jea8e7a[25];fa523cb<=jea8e7a[26];zz91e5a<=jea8e7a[27];uv5ef91<=jea8e7a[28];wjf7c8d<=jea8e7a[29];uxbe46c<=jea8e7a[30];mrf2365<=jea8e7a[31];xl91b2d<=jea8e7a[32];ks8d96e<=jea8e7a[33];lq6cb71<=jea8e7a[34];gb65b8a<=jea8e7a[35];end -always@* begin ls351cf[2047]<=force_isolate;ls351cf[2046]<=db3242c;ls351cf[2044]<=zz38f51[0];ls351cf[2041]<=blc7a8f;ls351cf[2035]<=lf3d47e;ls351cf[2022]<=do20bc9;ls351cf[1996]<=ou5e4a;ls351cf[1945]<=zz38960[0];ls351cf[1922]<=jp401dc;ls351cf[1842]<=ic59746[0];ls351cf[1797]<=kq49d41;ls351cf[1776]<=jp40b00;ls351cf[1637]<=cmcba31[0];ls351cf[1622]<=ec310e1[0];ls351cf[1546]<=mr4ea09;ls351cf[1504]<=kf803b[0];ls351cf[1468]<=fa69b79;ls351cf[1391]<=fae1007;ls351cf[1312]<=ec98898;ls351cf[1226]<=vi5d188[0];ls351cf[1197]<=ec88708;ls351cf[1044]<=jc4dbca;ls351cf[1023]<=gbe_mode;ls351cf[961]<=ukee6;ls351cf[888]<=kqfa2f5;ls351cf[811]<=ay4621c[0];ls351cf[734]<=ea6d36f[0];ls351cf[695]<=fp1c200;ls351cf[656]<=go53113;ls351cf[576]<=suc44c0;ls351cf[405]<=ene8c43[0];ls351cf[347]<=kq43840;ls351cf[328]<=dmca622;ls351cf[164]<=ne794c4;ls351cf[82]<=mr6f298;ls351cf[41]<=cm6de53;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[6]};sw9203a<=jea8e7a[7];yz901d0<=jea8e7a[8];yz80e85<=jea8e7a[9];qv742d<=jea8e7a[10];do3a16d<=jea8e7a[11];fad0b6b<={kq68466>>1,jea8e7a[12]};yz85b5a<={by42331>>1,jea8e7a[13]};rv2dad5<={ng1198b>>1,jea8e7a[14]};ay6d6ae<={je8cc5a>>1,jea8e7a[15]};bl6b571<={dm662d3>>1,jea8e7a[16]};fn5ab8e<=jea8e7a[17];fad5c77<=jea8e7a[18];yzae3ba<=jea8e7a[19];hb71dd4<=jea8e7a[20];jr8eea7<=jea8e7a[21];yk7753e<=jea8e7a[22];phba9f1<={xya2ed8>>1,jea8e7a[23]};sud4f8e<=jea8e7a[24];xya7c70<={uxbb61c>>1,jea8e7a[25]};wy3e383<=jea8e7a[26];byf1c19<={rtd8728>>1,jea8e7a[27]};nt8e0cb<={yxc3947>>1,jea8e7a[28]};kd7065f<={nt1ca3c>>1,jea8e7a[29]};ba832fc<={ph28f31>>1,jea8e7a[30]};ph197e3<={lq4798e>>1,jea8e7a[31]};gocbf1f<={mt3cc72>>1,jea8e7a[32]};dz5f8f8<={ble6395>>1,jea8e7a[33]};rtfc7c7<={ym31cae>>1,jea8e7a[34]};lde3e3e<={ph8e571>>1,jea8e7a[35]};ec1f1f7<=jea8e7a[36];uvf8fb8<=jea8e7a[37];nrc7dc5<=jea8e7a[38];aa3ee2e<=jea8e7a[39];enf7170<=jea8e7a[40];jeb8b85<=jea8e7a[41];byc5c2b<=jea8e7a[42];mg2e15b<=jea8e7a[43];of70ad8<=jea8e7a[44];mt856c5<=jea8e7a[45];sw2b62c<=jea8e7a[46];kd5b160<=jea8e7a[47];rtd8b04<=jea8e7a[48];tuc5826<={off70d0>>1,jea8e7a[49]};cb2c133<=jea8e7a[50];qt6099d<=jea8e7a[51];pu4cec<=jea8e7a[52];wl26763<=jea8e7a[53];mt33b1c<=jea8e7a[54];qi9d8e4<={ls2aa14>>1,jea8e7a[55]};nrec720<=jea8e7a[56];zk63907<=jea8e7a[57];ph1c83b<=jea8e7a[58];dme41de<=jea8e7a[59];tw20ef3<={gqa3ed3>>1,jea8e7a[60]};oh779a<=jea8e7a[61];mg3bcd5<=jea8e7a[62];uide6a8<=jea8e7a[63];thf3540<=jea8e7a[64];an9aa07<=jea8e7a[65];rgd503d<={thc86a3>>1,jea8e7a[66]};twa81eb<=jea8e7a[67];xj40f5b<=jea8e7a[68];ir7adf<=jea8e7a[69];ph3d6fc<={gqa3c49>>1,jea8e7a[70]};end -always@* begin ls351cf[2047]<=sgmii_mode;ls351cf[2046]<=force_unidir;ls351cf[2044]<=mr_main_reset;ls351cf[2040]<=mr_restart_an;ls351cf[2033]<=mr_an_enable;ls351cf[2019]<=mr_adv_ability[1];ls351cf[1999]<=ph8e571[0];ls351cf[1991]<=nr4ae92;ls351cf[1981]<=ofc342a;ls351cf[1958]<=ld550a3;ls351cf[1950]<=kf95c78;ls351cf[1947]<=bn27a48;ls351cf[1934]<=bld2597;ls351cf[1914]<=mg1a155;ls351cf[1892]<=ls8cd17;ls351cf[1868]<=xya851f;ls351cf[1852]<=pf71e24;ls351cf[1851]<=je8cc5a[0];ls351cf[1847]<=fp3d247;ls351cf[1820]<=qi92cbe;ls351cf[1783]<=ym3ee1a;ls351cf[1780]<=fad0aa8;ls351cf[1737]<=tu668bb;ls351cf[1689]<=by428fb;ls351cf[1657]<=ux8f127;ls351cf[1654]<=dm662d3[0];ls351cf[1647]<=the923e;ls351cf[1610]<=yz176c3;ls351cf[1608]<=uvd321a;ls351cf[1593]<=ls965f1;ls351cf[1523]<=ble6395[0];ls351cf[1519]<=off70d0[1];ls351cf[1513]<=yz85542;ls351cf[1426]<=qi345db;ls351cf[1404]<=lq4798e[0];ls351cf[1330]<=je147da;ls351cf[1267]<=me7893d;ls351cf[1260]<=ou3169a;ls351cf[1246]<=ui491f7;ls351cf[1225]<=qi1f699;ls351cf[1199]<=yxc3947[0];ls351cf[1173]<=uxbb61c[0];ls351cf[1169]<=ng990d4;ls351cf[1163]<=ec1a8f1;ls351cf[1139]<=twb2f8a;ls351cf[1023]<=gbe_mode;ls351cf[999]<=ym31cae[0];ls351cf[990]<=lsb8685;ls351cf[979]<=ls2aa14[0];ls351cf[973]<=ou24f49;ls351cf[946]<=bl719a2;ls351cf[925]<=ng1198b[0];ls351cf[891]<=dm47dc3;ls351cf[805]<=xya2ed8[0];ls351cf[804]<=rgda643;ls351cf[761]<=mt3cc72[0];ls351cf[702]<=ph28f31[0];ls351cf[612]<=gqa3ed3[1];ls351cf[599]<=rtd8728[0];ls351cf[581]<=ay4351e;ls351cf[556]<=gqa3c49[1];ls351cf[486]<=ykc49e9;ls351cf[473]<=hoee334;ls351cf[462]<=by42331[0];ls351cf[445]<=jc48fb8;ls351cf[402]<=lqfb4c8;ls351cf[351]<=nt1ca3c[0];ls351cf[299]<=kqdb0e5;ls351cf[290]<=thc86a3[0];ls351cf[278]<=wwd4789;ls351cf[231]<=kq68466[0];end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[4]};co9db4a<=jea8e7a[5];eneda50<=jea8e7a[6];yz901d0<=jea8e7a[7];zk69421<=jea8e7a[8];th4a10b<={vif148d>>1,jea8e7a[9]};hb5085f<=jea8e7a[10];ph842fe<=jea8e7a[11];qi217f6<=jea8e7a[12];twbfb1<={xj718b7>>1,jea8e7a[13]};dz5fd8a<={fc8c5bf>>1,jea8e7a[14]};psfec57<={su62dfa>>1,jea8e7a[15]};vvf62ba<={lf16fd1>>1,jea8e7a[16]};qvb15d7<={xyb7e8f>>1,jea8e7a[17]};yz8aebc<=jea8e7a[18];ps575e4<=jea8e7a[19];bnbaf22<=jea8e7a[20];nrd7916<=jea8e7a[21];mgbc8b7<=jea8e7a[22];zke45b9<=jea8e7a[23];ph22dcb<=jea8e7a[24];nt16e5f<=jea8e7a[25];ngb72ff<=jea8e7a[26];cob97fb<=jea8e7a[27];sucbfd8<=jea8e7a[28];vv5fec0<=jea8e7a[29];cmff607<=jea8e7a[30];xwfb039<=jea8e7a[31];ldd81cb<=jea8e7a[32];byc0e5f<=jea8e7a[33];oh72fb<=jea8e7a[34];oh397dd<=jea8e7a[35];kqcbeec<=jea8e7a[36];jp5f760<=jea8e7a[37];hofbb06<=jea8e7a[38];jpdd832<=jea8e7a[39];jpec196<=jea8e7a[40];uv60cb7<=jea8e7a[41];xl65bc<={me77a0e>>1,jea8e7a[42]};jr32de7<={ribd070>>1,jea8e7a[43]};tw96f3e<=jea8e7a[44];jeb79f3<=jea8e7a[45];swbcf9a<=jea8e7a[46];wje7cd1<=jea8e7a[47];ou3e68d<=jea8e7a[48];rtf3469<=jea8e7a[49];kf9a34f<=jea8e7a[50];osd1a7c<=jea8e7a[51];qi8d3e0<=jea8e7a[52];dm69f00<=jea8e7a[53];vv4f802<=jea8e7a[54];rg7c016<=jea8e7a[55];ice00b2<=jea8e7a[56];gq591<=jea8e7a[57];yz2c88<={mrc9186>>1,jea8e7a[58]};nt16444<={xw48c34>>1,jea8e7a[59]};twa81eb<=jea8e7a[60];xj40f5b<=jea8e7a[61];ec8899f<=jea8e7a[62];qt44cf9<=jea8e7a[63];ep267cd<=jea8e7a[64];yz33e6c<=jea8e7a[65];uv5ef91<=jea8e7a[66];wjf7c8d<=jea8e7a[67];pfcd927<={psd01ce>>1,jea8e7a[68]};end -always@* begin ls351cf[2047]<=sgmii_mode;ls351cf[2046]<=gbe_mode;ls351cf[2044]<=jp6bc27;ls351cf[2040]<=rx_data[0];ls351cf[2032]<=rx_kcntl;ls351cf[2016]<=db84fe1;ls351cf[1985]<=bld2597;ls351cf[1927]<=hq868cb;ls351cf[1922]<=rx_even;ls351cf[1867]<=eafa3d7;ls351cf[1807]<=ec3465a;ls351cf[1804]<=wj7056b;ls351cf[1797]<=vif148d[0];ls351cf[1761]<=kde8382;ls351cf[1686]<=med1eb9;ls351cf[1623]<=qi7c9;ls351cf[1567]<=eca32d0;ls351cf[1561]<=sw82b5c;ls351cf[1558]<=by661fc;ls351cf[1547]<=cb8082d;ls351cf[1542]<=zxc2d31;ls351cf[1505]<=ay4351e;ls351cf[1490]<=xyb7e8f[0];ls351cf[1475]<=cz41c15;ls351cf[1413]<=dz45987;ls351cf[1409]<=tj130b4;ls351cf[1400]<=mrc9186[0];ls351cf[1324]<=cb8f5c8;ls351cf[1200]<=fnd722c;ls351cf[1199]<=bn3e48;ls351cf[1086]<=zz19680;ls351cf[1074]<=ou15ae0;ls351cf[1068]<=zm30fe2;ls351cf[1047]<=vk416d;ls351cf[1037]<=vx1698e;ls351cf[1023]<=mr_main_reset;ls351cf[963]<=ec1a8f1;ls351cf[933]<=dbbf47a;ls351cf[902]<=vke0ad;ls351cf[880]<=ribd070[0];ls351cf[811]<=goe00f9;ls351cf[779]<=ep2cc3f;ls351cf[771]<=ec985a6;ls351cf[752]<=xw48c34[0];ls351cf[745]<=lf16fd1[0];ls351cf[706]<=zxc8b30;ls351cf[704]<=ale2616;ls351cf[700]<=blf9230;ls351cf[600]<=al7ae45;ls351cf[503]<=psd01ce[1];ls351cf[440]<=me77a0e[0];ls351cf[405]<=cm5c01f;ls351cf[372]<=su62dfa[0];ls351cf[353]<=wyb9166;ls351cf[352]<=thfc4c2;ls351cf[350]<=ie1f246;ls351cf[251]<=cm6de53;ls351cf[220]<=bn8ef41;ls351cf[202]<=hb6b803;ls351cf[186]<=fc8c5bf[0];ls351cf[176]<=fc3f898;ls351cf[125]<=jc4dbca;ls351cf[110]<=gq31de8;ls351cf[101]<=riad700;ls351cf[93]<=xj718b7[0];ls351cf[88]<=uk87f13;ls351cf[55]<=coa63bd;ls351cf[46]<=ic6d48e;ls351cf[27]<=anb4c77;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[2]};co9db4a<=jea8e7a[3];eneda50<=jea8e7a[4];qge0b9f<={hoee83b>>1,jea8e7a[5]};ou5cf8<={fn741db>>1,jea8e7a[6]};mg2e7c1<={pha0ede>>1,jea8e7a[7]};ne73e08<=jea8e7a[8];an9f042<=jea8e7a[9];twa81eb<=jea8e7a[10];xj40f5b<=jea8e7a[11];ep8520<=jea8e7a[12];lq42904<=jea8e7a[13];ls14822<=jea8e7a[14];uxa4112<=jea8e7a[15];zm20895<=jea8e7a[16];je44aa<=jea8e7a[17];xl22552<=jea8e7a[18];ux12a96<={wlb1063>>1,jea8e7a[19]};end -always@* begin ls351cf[2047]<=signal_detect;ls351cf[2046]<=rx_data[0];ls351cf[2044]<=rx_kcntl;ls351cf[2040]<=db84fe1;ls351cf[2033]<=hoee83b[0];ls351cf[2018]<=fn741db[0];ls351cf[1988]<=pha0ede[0];ls351cf[1929]<=ir76f6;ls351cf[1811]<=qi3b7b5;ls351cf[1789]<=zk7620c;ls351cf[1574]<=ay4351e;ls351cf[1530]<=wlb1063[1];ls351cf[1247]<=ui493b1;ls351cf[1101]<=ec1a8f1;ls351cf[1023]<=mr_main_reset;ls351cf[894]<=wj4ec41;ls351cf[623]<=gqa9276;ls351cf[447]<=ic49d88;ls351cf[311]<=bnb524e;ls351cf[155]<=nrf6a49;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[4]};wy2155a<={wwef1be>>1,jea8e7a[5]};ouaad1<=jea8e7a[6];pf55688<=jea8e7a[7];epab447<={uk31c93>>1,jea8e7a[8]};dz5a23c<={lq79093>>1,jea8e7a[9]};kqd11e6<={pfc849a>>1,jea8e7a[10]};ou88f31<=jea8e7a[11];rg47989<=jea8e7a[12];ir3cc4a<={xy9359c>>1,jea8e7a[13]};vve6255<=jea8e7a[14];co312ae<=jea8e7a[15];pu89570<={ksb38ac>>1,jea8e7a[16]};xj4ab82<=jea8e7a[17];jp55c16<=jea8e7a[18];epae0b6<=jea8e7a[19];cz705b4<=jea8e7a[20];ou82da4<=jea8e7a[21];lf16d20<=jea8e7a[22];wyb6907<=jea8e7a[23];uxb4838<=jea8e7a[24];ira41c5<=jea8e7a[25];th40935<=jea8e7a[26];bn3d024<={ie3102c>>1,jea8e7a[27]};bn38b55<=jea8e7a[28];qt60f40<=jea8e7a[29];xl2d57b<=jea8e7a[30];cz6abdf<=jea8e7a[31];rt55efd<=jea8e7a[32];rvaf7ee<=jea8e7a[33];mre8126<=jea8e7a[34];bydfbb6<=jea8e7a[35];alfddb3<=jea8e7a[36];hoeed9d<=jea8e7a[37];dm76ceb<=jea8e7a[38];wyb675a<=jea8e7a[39];wyb3ad1<=jea8e7a[40];sw9d688<=jea8e7a[41];faeb441<={hbe6897>>1,jea8e7a[42]};epb1475<={cmcba31>>1,jea8e7a[43]};gd8a3ac<={vi5d188>>1,jea8e7a[44]};gq882b1<={mt12fc2>>1,jea8e7a[45]};cz41588<={ec97e15>>1,jea8e7a[46]};qiac44<=jea8e7a[47];cm56220<=jea8e7a[48];anb1100<=jea8e7a[49];ym88804<=jea8e7a[50];ecacb35<=jea8e7a[51];fc2010c<=jea8e7a[52];ie863<=jea8e7a[53];ri4319<=jea8e7a[54];gq218ca<=jea8e7a[55];phc650<=jea8e7a[56];vi63286<=jea8e7a[57];fp19432<={yz33c09>>1,jea8e7a[58]};faca197<={lf9e04c>>1,jea8e7a[59]};uv5ef91<=jea8e7a[60];wjf7c8d<=jea8e7a[61];ph32ef3<={ph9986>>1,jea8e7a[62]};ou9779e<={yk4cc37>>1,jea8e7a[63]};sjbbcf0<=jea8e7a[64];qgde784<=jea8e7a[65];nrf3c20<=jea8e7a[66];bn9e106<=jea8e7a[67];uif0836<=jea8e7a[68];jr841b1<=jea8e7a[69];vk20d8e<=jea8e7a[70];fp6c72<=jea8e7a[71];qv36396<=jea8e7a[72];cbb1cb5<=jea8e7a[73];vx8e5ad<=jea8e7a[74];ui72d6f<=jea8e7a[75];do96b78<={qg72b18>>1,jea8e7a[76]};ntb5bc3<={yz958c0>>1,jea8e7a[77]};end -always@* begin ls351cf[2047]<=an_link_ok;ls351cf[2046]<=ic626ef;ls351cf[2044]<=gbe_mode;ls351cf[2040]<=operational_rate[0];ls351cf[2032]<=wwef1be[0];ls351cf[2018]<=hbe6897[0];ls351cf[2017]<=os78df0;ls351cf[1989]<=cmcba31[0];ls351cf[1987]<=qtc6f81;ls351cf[1931]<=vi5d188[0];ls351cf[1927]<=uk31c93[0];ls351cf[1865]<=ksb38ac[0];ls351cf[1859]<=an80a07;ls351cf[1844]<=rg7cc46;ls351cf[1815]<=mt12fc2[0];ls351cf[1806]<=lq79093[0];ls351cf[1682]<=ba9c560;ls351cf[1674]<=yz33c09[0];ls351cf[1671]<=ks88160;ls351cf[1640]<=pfe6233;ls351cf[1582]<=ec97e15[0];ls351cf[1565]<=pfc849a[0];ls351cf[1488]<=qgea028;ls351cf[1485]<=ec88708;ls351cf[1326]<=jp40b00;ls351cf[1317]<=ale2b03;ls351cf[1300]<=lf9e04c[0];ls351cf[1297]<=ng30dca;ls351cf[1295]<=jr281e8;ls351cf[1233]<=gq3119e;ls351cf[1210]<=ay6df50;ls351cf[1189]<=mt1d06e;ls351cf[1172]<=mgac0e8;ls351cf[1124]<=xwc5cac;ls351cf[1116]<=vxbf0a9;ls351cf[1105]<=cm6de53;ls351cf[1094]<=ep9ae18;ls351cf[1092]<=bn3729a;ls351cf[1087]<=sj7a3f;ls351cf[1082]<=vi424d6;ls351cf[1023]<=mr_main_reset;ls351cf[1009]<=do3f9a2;ls351cf[932]<=kdd6715;ls351cf[929]<=vv50140;ls351cf[922]<=vv4f988;ls351cf[837]<=me46781;ls351cf[744]<=su7d405;ls351cf[742]<=uk153e6;ls351cf[663]<=cz41bad;ls351cf[648]<=tu661b9;ls351cf[605]<=ie3102c[0];ls351cf[594]<=lf3a0d;ls351cf[586]<=uk1581d;ls351cf[562]<=yz18b95;ls351cf[552]<=jc4dbca;ls351cf[547]<=ww535c3;ls351cf[546]<=do86e53;ls351cf[543]<=vv40f47;ls351cf[504]<=xw47f34;ls351cf[466]<=mt9ace2;ls351cf[418]<=uk88cf0;ls351cf[400]<=yz958c0[1];ls351cf[372]<=en44c40;ls351cf[371]<=jpc2a7c;ls351cf[331]<=kde8375;ls351cf[324]<=yk4cc37[0];ls351cf[297]<=sh60741;ls351cf[281]<=bab862e;ls351cf[273]<=faca6b8;ls351cf[252]<=kde8fe6;ls351cf[233]<=xy9359c[0];ls351cf[200]<=qg72b18[1];ls351cf[185]<=uvf854f;ls351cf[162]<=ph9986[0];ls351cf[140]<=zxd70c5;ls351cf[136]<=ksb94d7;ls351cf[126]<=rv3d1fc;ls351cf[116]<=sj126b3;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[1]};ouaad1<=jea8e7a[2];pf55688<=jea8e7a[3];epab447<={uk31c93>>1,jea8e7a[4]};dz5a23c<={lq79093>>1,jea8e7a[5]};kqd11e6<={pfc849a>>1,jea8e7a[6]};ou88f31<=jea8e7a[7];rg47989<=jea8e7a[8];ir3cc4a<={xy9359c>>1,jea8e7a[9]};vve6255<=jea8e7a[10];co312ae<=jea8e7a[11];pu89570<={ksb38ac>>1,jea8e7a[12]};xj4ab82<=jea8e7a[13];jp55c16<=jea8e7a[14];epae0b6<=jea8e7a[15];cz705b4<=jea8e7a[16];ou82da4<=jea8e7a[17];lf16d20<=jea8e7a[18];wyb6907<=jea8e7a[19];uxb4838<=jea8e7a[20];ira41c5<=jea8e7a[21];th40935<=jea8e7a[22];bn3d024<={ie3102c>>1,jea8e7a[23]};bn38b55<=jea8e7a[24];qt60f40<=jea8e7a[25];xl2d57b<=jea8e7a[26];cz6abdf<=jea8e7a[27];rt55efd<=jea8e7a[28];rvaf7ee<=jea8e7a[29];mre8126<=jea8e7a[30];bydfbb6<=jea8e7a[31];alfddb3<=jea8e7a[32];hoeed9d<=jea8e7a[33];dm76ceb<=jea8e7a[34];wyb675a<=jea8e7a[35];wyb3ad1<=jea8e7a[36];sw9d688<=jea8e7a[37];faeb441<={hbe6897>>1,jea8e7a[38]};uif0836<=jea8e7a[39];jr841b1<=jea8e7a[40];vk20d8e<=jea8e7a[41];fp6c72<=jea8e7a[42];qv36396<=jea8e7a[43];cbb1cb5<=jea8e7a[44];vx8e5ad<=jea8e7a[45];ui72d6f<=jea8e7a[46];do96b78<={qg72b18>>1,jea8e7a[47]};ntb5bc3<={yz958c0>>1,jea8e7a[48]};end -always@* begin ls351cf[2047]<=wwef1be[0];ls351cf[2046]<=os78df0;ls351cf[2044]<=qtc6f81;ls351cf[2040]<=uk31c93[0];ls351cf[2033]<=lq79093[0];ls351cf[2019]<=pfc849a[0];ls351cf[1991]<=vi424d6;ls351cf[1934]<=sj126b3;ls351cf[1929]<=qg72b18[1];ls351cf[1898]<=uk1581d;ls351cf[1821]<=xy9359c[0];ls351cf[1810]<=yz958c0[1];ls351cf[1749]<=mgac0e8;ls351cf[1707]<=mt1d06e;ls351cf[1666]<=vv50140;ls351cf[1630]<=ww535c3;ls351cf[1595]<=mt9ace2;ls351cf[1506]<=yz18b95;ls351cf[1450]<=sh60741;ls351cf[1440]<=su7d405;ls351cf[1384]<=ay6df50;ls351cf[1370]<=jp40b00;ls351cf[1366]<=kde8375;ls351cf[1284]<=an80a07;ls351cf[1212]<=ep9ae18;ls351cf[1142]<=kdd6715;ls351cf[1125]<=do3f9a2;ls351cf[1041]<=jr281e8;ls351cf[1023]<=mr_main_reset;ls351cf[964]<=xwc5cac;ls351cf[949]<=ale2b03;ls351cf[853]<=lf3a0d;ls351cf[833]<=qgea028;ls351cf[815]<=faca6b8;ls351cf[753]<=bab862e;ls351cf[720]<=en44c40;ls351cf[692]<=ie3102c[0];ls351cf[685]<=cz41bad;ls351cf[562]<=xw47f34;ls351cf[520]<=ks88160;ls351cf[474]<=ba9c560;ls351cf[407]<=ksb94d7;ls351cf[376]<=zxd70c5;ls351cf[281]<=kde8fe6;ls351cf[237]<=ksb38ac[0];ls351cf[203]<=hbe6897[0];ls351cf[140]<=rv3d1fc;ls351cf[70]<=sj7a3f;ls351cf[35]<=vv40f47;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[1]};ouaad1<=jea8e7a[2];pf55688<=jea8e7a[3];kqd11e6<={pfc849a>>1,jea8e7a[4]};ou88f31<=jea8e7a[5];rg47989<=jea8e7a[6];ira41c5<=jea8e7a[7];th40935<=jea8e7a[8];bn3d024<={ie3102c>>1,jea8e7a[9]};bn38b55<=jea8e7a[10];qt60f40<=jea8e7a[11];xl2d57b<=jea8e7a[12];cz6abdf<=jea8e7a[13];rt55efd<=jea8e7a[14];mre8126<=jea8e7a[15];alfddb3<=jea8e7a[16];hoeed9d<=jea8e7a[17];dm76ceb<=jea8e7a[18];wyb675a<=jea8e7a[19];wyb3ad1<=jea8e7a[20];sw9d688<=jea8e7a[21];uif0836<=jea8e7a[22];jr841b1<=jea8e7a[23];vk20d8e<=jea8e7a[24];fp6c72<=jea8e7a[25];end -always@* begin ls351cf[2047]<=wwef1be[0];ls351cf[2046]<=os78df0;ls351cf[2044]<=qtc6f81;ls351cf[2040]<=pfc849a[0];ls351cf[2033]<=vi424d6;ls351cf[2019]<=sj126b3;ls351cf[1990]<=cz41bad;ls351cf[1939]<=rv3d1fc;ls351cf[1933]<=jp40b00;ls351cf[1831]<=kde8fe6;ls351cf[1819]<=ie3102c[0];ls351cf[1778]<=ks88160;ls351cf[1615]<=xw47f34;ls351cf[1591]<=ay6df50;ls351cf[1508]<=vv40f47;ls351cf[1271]<=ww535c3;ls351cf[1182]<=do3f9a2;ls351cf[1135]<=en44c40;ls351cf[1023]<=mr_main_reset;ls351cf[969]<=sj7a3f;ls351cf[889]<=vv50140;ls351cf[635]<=faca6b8;ls351cf[495]<=ep9ae18;ls351cf[444]<=qgea028;ls351cf[317]<=ksb94d7;ls351cf[222]<=su7d405;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[4]};xjdd188<={ri20af6>>1,jea8e7a[5]};uve8c47<=jea8e7a[6];yk4623c<=jea8e7a[7];ou311e1<={vkb206f>>1,jea8e7a[8]};gq88f08<=jea8e7a[9];fa47841<=jea8e7a[10];nt8e0cb<={yxc3947>>1,jea8e7a[11]};kd7065f<={nt1ca3c>>1,jea8e7a[12]};byf1c19<={rtd8728>>1,jea8e7a[13]};mr4151c<=jea8e7a[14];swa8e4<=jea8e7a[15];uv54720<=jea8e7a[16];qia3905<={zxecd89>>1,jea8e7a[17]};vx1c829<={ne66c4e>>1,jea8e7a[18]};zke414e<=jea8e7a[19];ng20a73<=jea8e7a[20];qi539a<=jea8e7a[21];twa81eb<=jea8e7a[22];xj40f5b<=jea8e7a[23];dm73425<=jea8e7a[24];cb9a12b<=jea8e7a[25];ph3d6fc<={gqa3c49>>1,jea8e7a[26]};end -always@* begin ls351cf[2047]<=force_unidir;ls351cf[2046]<=tx_en;ls351cf[2044]<=tx_er;ls351cf[2040]<=ph8415e[0];ls351cf[2032]<=ri20af6[0];ls351cf[2017]<=wy57b2;ls351cf[1987]<=en5ec81;ls351cf[1927]<=vkb206f[0];ls351cf[1865]<=cm7d9b1;ls351cf[1806]<=qv9037b;ls351cf[1682]<=zxecd89[0];ls351cf[1565]<=nt81bdd;ls351cf[1326]<=gqa3c49[1];ls351cf[1317]<=ne66c4e[0];ls351cf[1189]<=ec1a8f1;ls351cf[1172]<=yzb139d;ls351cf[1082]<=yxc3947[0];ls351cf[1023]<=mr_main_reset;ls351cf[932]<=uiefb36;ls351cf[663]<=xjec750;ls351cf[594]<=ay4351e;ls351cf[586]<=wl36273;ls351cf[466]<=blddf66;ls351cf[331]<=ou9d8ea;ls351cf[297]<=je89cec;ls351cf[233]<=rtd8728[0];ls351cf[116]<=nt1ca3c[0];end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[1]};jc42507<=jea8e7a[2];an1283b<=jea8e7a[3];ph941dd<=jea8e7a[4];fpa0eef<=jea8e7a[5];gd777e<=jea8e7a[6];aa3bbf5<={uvcc12a>>1,jea8e7a[7]};fnddfa8<=jea8e7a[8];ayefd46<=jea8e7a[9];bl7ea31<={ba25523>>1,jea8e7a[10]};kqf518e<={do2a91b>>1,jea8e7a[11]};baa8c70<={yx548db>>1,jea8e7a[12]};cm46382<={uxa46dc>>1,jea8e7a[13]};uk31c11<=jea8e7a[14];jr8e089<=jea8e7a[15];en7044f<=jea8e7a[16];ec8227c<=jea8e7a[17];ls113e1<=jea8e7a[18];xy89f0b<=jea8e7a[19];nr4f85b<=jea8e7a[20];fa7c2de<=jea8e7a[21];rge16f2<=jea8e7a[22];bab793<=jea8e7a[23];end -always@* begin ls351cf[2047]<=fc30929[0];ls351cf[2046]<=tj8494b;ls351cf[2044]<=aa24a5f;ls351cf[2040]<=ri252f8;ls351cf[2032]<=cb297c3;ls351cf[2016]<=ym211e0;ls351cf[1985]<=uvcc12a[0];ls351cf[1922]<=kd60954;ls351cf[1796]<=tw4aa4;ls351cf[1544]<=ba25523[6];ls351cf[1302]<=xy11828;ls351cf[1115]<=qt60a12;ls351cf[1105]<=gbdcb11;ls351cf[1041]<=do2a91b[0];ls351cf[1023]<=qgc423c;ls351cf[651]<=ea62305;ls351cf[557]<=ls8c142;ls351cf[552]<=sudb962;ls351cf[325]<=ep2c460;ls351cf[276]<=ri1b72c;ls351cf[162]<=ice588c;ls351cf[138]<=an236e5;ls351cf[69]<=uxa46dc[0];ls351cf[34]<=yx548db[6];end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96>1,jea8e7a[7]};ho73b69<={rx_data>>1,jea8e7a[8]};co9db4a<=jea8e7a[9];zk69421<=jea8e7a[10];kfa1f51<=jea8e7a[11];swfa8c<=jea8e7a[12];su7d460<=jea8e7a[13];qgea300<={tx_d>>1,jea8e7a[14]};rt50ee8<=jea8e7a[15];ou87746<=jea8e7a[16];xj4a480<=jea8e7a[17];qg49292<=jea8e7a[18];cm49490<=jea8e7a[19];th4a10b<={vif148d>>1,jea8e7a[20]};tj22a0a<={uk97c52>>1,jea8e7a[21]};qi15057<={sjbe291>>1,jea8e7a[22]};eneda50<=jea8e7a[23];kd415cb<={zkda3ae>>1,jea8e7a[24]};coae5c<=jea8e7a[25];vi572e0<=jea8e7a[26];ukb9702<=jea8e7a[27];gocb810<=jea8e7a[28];ay5c080<=jea8e7a[29];qge0401<=jea8e7a[30];ux2009<=jea8e7a[31];uv5ef91<=jea8e7a[32];wjf7c8d<=jea8e7a[33];uxbe46c<=jea8e7a[34];mrf2365<=jea8e7a[35];xl91b2d<=jea8e7a[36];ks8d96e<=jea8e7a[37];cm4c5d2<=jea8e7a[38];ui62e90<=jea8e7a[39];an17481<=jea8e7a[40];lfba40c<=jea8e7a[41];thd2067<=jea8e7a[42];gd9033e<=jea8e7a[43];lf819f5<=jea8e7a[44];rvcfaf<={fafbf50>>1,jea8e7a[45]};os67d7f<=jea8e7a[46];co3ebf9<=jea8e7a[47];suf5fc8<={meea09c>>1,jea8e7a[48]};tjafe41<=jea8e7a[49];wj7f20f<=jea8e7a[50];dzf907d<=jea8e7a[51];dzc83ee<=jea8e7a[52];en41f76<=jea8e7a[53];ksfbb5<=jea8e7a[54];go7dda8<={bl7b16b>>1,jea8e7a[55]};dmeed41<=jea8e7a[56];xw76a0b<=jea8e7a[57];dbb505a<=jea8e7a[58];xya82d6<=jea8e7a[59];cz416b3<=jea8e7a[60];end -always@* begin ls351cf[2047]<=sgmii_mode;ls351cf[2046]<=signal_detect;ls351cf[2044]<=debug_link_timer_short;ls351cf[2040]<=force_isolate;ls351cf[2032]<=force_loopback;ls351cf[2017]<=force_unidir;ls351cf[1987]<=operational_rate[0];ls351cf[1926]<=rx_data[0];ls351cf[1805]<=ne794c4;ls351cf[1804]<=rx_kcntl;ls351cf[1803]<=db84fe1;ls351cf[1761]<=jc4dbca;ls351cf[1668]<=oh907df;ls351cf[1562]<=dmca622;ls351cf[1560]<=rx_even;ls351cf[1558]<=zkda3ae[0];ls351cf[1550]<=tx_er;ls351cf[1475]<=cm6de53;ls351cf[1464]<=ba86b0c;ls351cf[1288]<=vk83efd;ls351cf[1242]<=db2d7f3;ls351cf[1076]<=go53113;ls351cf[1072]<=rx_disp_err;ls351cf[1069]<=ead1d72;ls351cf[1056]<=fafbf50[0];ls351cf[1052]<=mr_an_enable;ls351cf[1028]<=co82707;ls351cf[1023]<=gbe_mode;ls351cf[902]<=mr6f298;ls351cf[901]<=sjbe291[0];ls351cf[880]<=je35862;ls351cf[874]<=th5fcff;ls351cf[834]<=lf320fb;ls351cf[775]<=tx_en;ls351cf[732]<=mt90d61;ls351cf[621]<=tuc5afe;ls351cf[528]<=mg1f7ea;ls351cf[514]<=pf504e0;ls351cf[450]<=uk97c52[0];ls351cf[437]<=zx6bf9f;ls351cf[417]<=hq8641f;ls351cf[387]<=tx_d[0];ls351cf[366]<=os721ac;ls351cf[310]<=rtd8b5f;ls351cf[257]<=meea09c[0];ls351cf[225]<=vif148d[0];ls351cf[208]<=hdb0c83;ls351cf[193]<=rx_err_decode_mode;ls351cf[183]<=wlae435;ls351cf[155]<=bl7b16b[0];ls351cf[128]<=yxfd413;ls351cf[112]<=mr_restart_an;ls351cf[104]<=xw76190;ls351cf[96]<=rx_cv_err;ls351cf[91]<=rv8eb90;ls351cf[77]<=pscf62d;ls351cf[64]<=rgdfa82;ls351cf[56]<=mr_main_reset;ls351cf[38]<=oh39ec5;ls351cf[19]<=pu9c1cf;ls351cf[9]<=xl13839;end assign jc5dccb = ls351cf,jea8e7a = zk732d2; initial begin vx9b3b2 = $fopen(".fred"); $fdisplay( vx9b3b2, "%3h\n%3h", (bycf49d >> 4) & wy9d773, (bycf49d >> (xjd275d+4)) & wy9d773 ); $fclose(vx9b3b2); $readmemh(".fred", cmcb49b); end always @ (jc5dccb) begin xjd26ce = cmcb49b[1]; for (ald9d96=0; ald9d96 0} { - for {set i 0} {$i < $argc} {incr i 2} { - set temp [lindex $argv $i] - set temp [string range $temp 1 end] - lappend argv_list $temp - lappend value_list [lindex $argv [expr $i+1]] - } - foreach argument $argv_list value $value_list { - switch $argument { - "cmd" {set Para(cmd) $value;} - } - } - } -} - -set Para(ProjectPath) "/home/greg/projects/trbnet/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35" -set Para(ModuleName) "sgmii_gbe_pcs35" -set Para(lib) "/home/greg/sgmii_gbepcs_v3.5/lib" -set Para(CoreName) "SGMII/Gb Ethernet PCS" -set Para(arch) "ep5c00" -set Para(family) "latticeecp3" -set Para(Family) "latticeecp3" -set Para(design) "VHDL" -set Para(install_dir) "/opt/lattice/diamond/1.4.2.105/bin/lin/../.." -set Para(Bin) "/opt/lattice/diamond/1.4.2.105/bin/lin" -set Para(SpeedGrade) "Para(spd)" -set Para(FPGAPath) "/opt/lattice/diamond/1.4.2.105/bin/lin/../../ispfpga/bin/sol" - -lappend auto_path "/home/greg/sgmii_gbepcs_v3.5/gui" - -lappend auto_path "/home/greg/sgmii_gbepcs_v3.5/script" -package require Core_Generate - -lappend auto_path "/opt/lattice/diamond/1.4.2.105/tcltk/lib/ipwidgets/ispipbuilder/../runproc" -package require runcmd - - -set Para(result) [GenerateCore] diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.ipx b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.ipx deleted file mode 100644 index 5e5982e..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.ipx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.lpc b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.lpc deleted file mode 100644 index 38611bd..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.lpc +++ /dev/null @@ -1,26 +0,0 @@ -[Device] -Family=ep5c00 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=IPCFG -CoreStatus=Demo -CoreName=SGMII/Gb Ethernet PCS -CoreRevision=3.5 -ModuleName=sgmii_gbe_pcs35 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=06/19/2012 -Time=09:57:17 - -[Parameters] -RX_CTC=2 -RX_CTC_LOW=16 -RX_CTC_HIGH=32 -EasyConnect=1 diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.ngo b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35.ngo deleted file mode 100644 index a1ce723aa77bc106b0319797e0c73625ab824b09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389045 zcmb4s34B~ty?>LIG6G^mz+|#b(kzqGHZzlCW|FozNxCG^C3JzX&ZJ4&MA{}KT>>IR z6kbq-u!rqAB7e=pr!S&t9-@pO5)d&W4zeZziUr-cYN25&UkNoe^t!_kGHCY_|D#%_CR2P zCuidz!41s~Tk5x*NpeEK>(*8+j|A3&Av{DxH_EbLlto1b3%3B&i*~|z5QngfM4LrJ%1E(nfnIf9r3=lvm<1VfVuGG zLEtkE#&@;%?BBaD9$etbduKwS_VvZvyW19c@_$6>jDwN~ffqdB5r|%JRKeu$y8vbm z?CFMv3#g?0?wF40*s&`fBGNaPO)0_FeRi-ec&Pw(Z~7v$t~>a&%P!NE!T=P0j1;n`-Gn zI50uMjqD)2wrm%$&418g-%0DOvHo;TcQ>ss{;nL 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

    >V5_kJ7=Xv8uDolP2szoNZuuJ0ft_ z?=?h~{F;VN_STb>N9o}GhDxVXz(;0D+rjXTsO=m~6IJqS8ah`i{WYaS?hSD9jf}3g zs7tqjoSFXt4EPYQ_?1PTA!UC}LnnK)PfDb8@PW8WXVeGd+9I7DV0cf|b`CkSWSYu4 z*;NXK4nC1r>AZE|%})?#Cm7xrwVlIF-0x(UR}?yDML0TJ!zcfNbasK^!*FqD;jz)C zwN7?jNTD;Fx6Xl~htPw~egwmMLEFJ|t4&KMyP&1e!A%jWvvz)&?vHfp!GL?fiZ*3D zINP*zvMX^4oq-;Xj;Y!fLOMTz;S)jI!86)TN+-93sL;VpBC2)v{?&au(%B7$PepC# zI7gGx$*p}Vbnqcxj!yTs;dx8(`CM7EpTY21DBoH59$z{k$Fs{kos#A@c+#2a(mv+P zFb93n!`sP4y$1|mG-xLZwARDaNtag|be9yH^H{S!j(1H+~U{#T$+uru}2p>=7dOQAOhIOsM99=rjee*wcc zB41ZTnR@Ba1~=2C(BFnR=waSdE<@-v7`6lj%}mxX_0pk@3T+CFr`OdMesIiXzasRn zVE9ht>)ye}Ls#0FE`?6wXEQUV5$78&L{f@8F={_-9&g zg#H~2Ke_}4KiS@RXh)psQs~_^9JJw@6=x#!K`{K}7C;ZgaVYyMz1F9Bm@b9h!$aR} zZhbmJ{{e=dMbOoXze#dyKBh~d(>(Mk z$+@^!vDu$s_{A$Q_?bGUUOM#9dZtUEaaB!i;cpE8@OFeg1cqNlwRRnWug~%1K_95) zphphZ>_F(lV8Cr`#k-VYN6^AY1oNN|^3coAxpojj{{@EMMbPIvnR@94zYv%%HF$=H z-U)BNjnIFC;SUk?$U3H8I`rr;)1}adc<5XD{Q3_<{{x0U0|JBBxS4wC&||brmqO$F zKGbG*f%)Bq2>mY@4vT7iiP9sL4m~d4*Z=r9=t_@kHn}eZ!{2^EtuL)*%u9#%D7vK9 z?ptqn83T#wMr!0>Oa06P1ikHD7>t zOQBoTaL`{Is+fb&%|U7|>dmgLVd^E<8sDVFbSZR8-q+44^D+qC0;Hon0)tPAG4+z6 z&G|Rd~aB02pr zylF0P3zAlsPe-xDJ$V;vX;+6@6$;(W#h}p=!)Nw+4x!tD)K!xYtyp4Km@y|#IC4t_ z@N&%lD4iZ&MhDx(xaqgMrW6@2h3%rMC&SDirzz9(uCFp2 zL6Tzv=!e6MdFjxh8m3F3d-Kq@jotG-LLU#3Nd&#<2%r}$V+@7Pdkp%~$lZAVSKbMv zKGFPID}BNfA;!FE{2x}XEK0{x&pF}4(A1}pPG^wJnS45m|DO)>bV}KZ=|o*V9mNvQ z)-(0eo1Cn$>8Ep!UTWQtNvFGw*TOf2dkot?D zvm2#J5v4<`^G*uw;GtJK|1cqRcaTmNL1%Y!Hx62z=uzl_JoF2D%058o9w40}f{uC! zEcumQYqi^=(5JbW!Lilr6RodC=$;^*YR_+GN~>3UE&_ezbApx1RYd7jdpSDOmOn%W z<`Y1watr9Z63yBnYl$PL^O|xMQ98~5qk|XW+-ug4K{`5+PWR{2Q7*#Qm43Z+$Ea1I z(1R6dbjp>di%ZFARQYnncK70?2;B>$Gh+hiHJ-*pzmsCR6xzi@U+F#ILTCd>XNjQKVyBV) zm0s)j!c3P!pTk4nJJW{igyj-QXN#b-$52QSr9-QCTNHX2550BW`M9B@Tm}i>yij~$ z_QMQgUOKdTdqbgz^U%+ZziA*s8$mix1iikt@zCo11ci3jbIt6I?e~zIbrVP=Nau^7H$)hA=>}J4%oKVg54~mNgLv7N_W|ib5%fl9 zi@CtF<~hQs_&0=)oVY*^AINkj9Ikzp5v&yP0G&PMO5jU}RtIJZJyC&1CtT9{hp`CV52UL^b3JuzZW_w#Y3-I)K8WV+NkH`H@P!^ zUsunnN9jzDb94-@-=`y;Dv)lA3h1;+GWDi$Ry!XnkJ6b@&(U#SHt{&5Qw`GX2?3q< zigBBU&ariQbnXO>&a2mScpvGU4$>WI0iBKsrrtDkI@Pf9sCDjkadb}U@D*8~bb@r3 zMnFfaW$H~sr%QyDN9o+-<>-9Y=k-=dXAnp;-2yt@LQK7B==9LB@+h6z0gjGOW5%7@ z<%2<*_r5I-0dF zk_-I|knW2L=txc64a&-;LFvo~j?T3QhhB$t&ID<0LO{n<+qBlf*B9k}lui&Qv)KbH zxXL&2z_|gWGZduzHTiVd^cz2Q!PJSfN}AhPEcxwZfsTVdd??Zqq0a*80l{-|{E|lF zq3vm=OKZI_!$Ch)-R&iWcHwt8Kv3%w^PEsxt<`<86#Ahw2mRipIqMMmZ2TZdnE<-K zlQA#d;3{nj9a5Se`g&Dx(lrQu4oD9R9xz!3VB^UCN`}Ty)-hcQjSEU@GbwO4) zE=Z4xn%T)Ird~2MN1H-F#`}87I(aTa55upeh!$EqYfv?$Zl|^MvppSTg$#S|g&k|3Y z7#(bS2lssN3ep(?(o>>qeUOf+mu`u{Sl8^2T4E{R&HU+zYZ2NF(h|Gif*X=y>ZL;u z(lK2EOrtOK)7l5=ZEvWTS zKT{V$I{>Rx>?k<*!V^+!-OjL5>phx@yN}W!^o1ZrVgl&1{!fDoq48Tpj5dKL9}`mV zz}{c<1-Szo3DWXlKD5&6&(<+@Qfu1k@uNk2Txos1+skw*ofqplI_FNekY$xoAiaKw9k*(79Y`dQC&;N)xLdrL)G*(Ya+{`B_M3EJ$yA1$3@b z`iZ8YGcl7#C&qV!^J>bsAf0g_y%Q49x!S?hn}*Icb*wyUowdp|2%ECBYUWU+GajUO z8w?0azcZ0B4fqw~IlbJqI#J%2$umx8no1lGAh$JCp~I=%=ik6PzLz9|nIf0hgB zctH9<)bHRLZ0^@IbS6hxd6drj0B4^|SIQollY+oipE($RKe!NE;#oI=F{3_iGwD(*vwL zO6SuAql44xb>$BXL^@Z1v@w-WN4a~)o$wr;lIAwtJK-qwXG$M~&=<`AfvjU(2~r{{ zfWE`jXlRQ{n?mCU2-P-`Txl{O^i?2zp2&x0{Rzihal(eO(xC74FsP)9v-2BJ?#N zZ4p7wcQN(Sq3>5LMxnRz&^N4o^;(3!7NqY)&=1r$9(tj26;bFE5B+nezq=vyB#^!r zK|dI8JoLjgOqW7$=b>L8s@aIp*MYQ61pP>csh4i>M*~ckLho>LzP|G^|Cb1TJxD(| z1kLQRBk=X&d|&V4p>1z{@-9N(0Mbqo^b<$m>oDZix}JxQcYpnNgvM`l{wRWeD#FxD zH~5l#U+?Cj+f6dwjnFrOgrD}vdq%HxDNB#Q*UJKoHud!$9y-!#WFLgS38bGz&=C_; zFTK{!)iGTPz0bonvtctQk&A0GNPBApwSN8xeElNiL8p1>omV{B5utAe3BQR_+~6xB zOuh74M;%O;)_Ok=JtDBCGeX}2(yt=umy=Arbm&*|eSLt3{?PH;VuYRo(r+T@Rk6lH z*SVQ4t@S}3`p9t<%WV#eO$j_xCHvQu6Q(jT<~U%#zo z>ZL=gV?BjF#6u6?*Xullz7?cDMbK*$f0Yicj`bA!FCN-4e9g-UJq@J8BIuZ=@wHaR zdJ6py551|b*A)nT8%TePptGM7A@HTwS{>^NH2Ea8I!jr-VgA1eJsl*`q4?Z4PZ|fU zj`b9}Jj_9#)VIop(6@u!EF@@V>*9?!xH{HT=oUP5`_C^=BlHZAn~R`7P_E6=4X%#$ z6uKo3-8#LAK;HrKQ6lI~na0;z9qTDH@X+0MbRk`eALLdd=x_XuhgQdW3f-EA{`cnh z{zm9KK|Wdpy#*Q%t&a5+x=oC0X4eJIMSGUt1@bXkn!6W#Rtu;j>gwo9qTEyhKK&S%^hKco(Xb$5%l-5#zU)PJ%#STLm%5>%6uKi1J^8fOzajK2kdG5VZ%;HHdX-`^3f(EiHM40WY^i(j+tEP}>chTN~@7S6rLos;A`%q4y8k@ZwRH(Cf?Uq&W%5e(D)^4W1XPZhkVRv zr9&T1GhGVZNA-2vu+{Vhx!rpJ&s;}FI2W9r$iO>&&+)w1|bY0`2Tjv{mfa>c#n#h#J*C6yGAomye+Iq|p z7`$zMtsT6tr*!B=3?2gcWRb7iE9xSHi+!z8Xj5Mg40FxQ)@RKqgnks{Qv|-Yc8LC8 z1{Xtjv@=}_eVXd)J(^pl?;L^9i$Fd#QoNa2J877D>9y{x(5BGUs;}FI*IqGt3qn5z za+S!}U4s7?w77+LQ)p9Yr|Rpr;ZK(}UxLt!K|WpN>+b2sL-+JCT?##z_qD4{4|4bM zILL!UzSb$~r5jwY(5BF5gt%rlB5^Dkub%*Uh{)Hy5{!B2(CY4J3O!Wy^&U+?`x?2) zeG=p|!-8gJv^O5wq|m0&F5cJQtXnk%p~E1bCGd5n`dt@Mt%c33^0)w_O`*?Gecd)3 z@a?-0p`QZzY>}_~M45WY&{ngP=~C!(-HNZIPWS_}Jd?h|VidcTJ=_}t+?A4ce9AYbSfKo3a& zU(mu9Zgu3faNPmk;O}iNpMcQMf;>tmfF9^Cl7yOqbUBaDc1z7T>dn5c+wL$9e?@9}Y~tbm$RYrc0ppWjYRe)|y`A*~beY zkGBh;-HmVI+y@~jbh(y;et*~3_apR+AYYmhKwscy%uB8{x38N*x6p9VC%rHn3oc&) z@`Shm`oehQq4(D?T?*ZjH~5@A?QTTqmq5N;FlbswIhlINwdVG@5NP>IzBg+zxZ`+) zj$*W^4MDS^hG}Q$-io80Fe5xz^T8B6-l$f}F3{CU&nx z=#?PfDuN#8Wa_0uk54jPTI<{Rj`SF7#D&nWfP9-%O5 zC$)YR;^jc5!GhJHiyLev@ zd|}~2gkA;mog!af4NSds=xg$8J(KUlyV%eE5TRcO`EJqNY?5+;ln$N$@@IJ#@9SBi zZ+0Pc9mw~Hnwjqi41QxBvlumafcN#rvE%n3^cx`07Ww)X4^uC_)>D)wN}=!LeLb%1 zxla-LO_1*u`TEu)xVWap8EpzZm-ltcT|c~o(5pe7Bl7j_PNrURt+|hWQs^K*Xnrzm z1DS`v1@b(RuV-W$4Q=)3x9|mau1k4yc(Xqd`fZRO&o{o5H76X4(C>i!kX-;B2r~VWeQmwZ$#ki&L%grY zENV+u6=EPiViG{li81xkq34B}E`?sC;c9(yvIp5w`7X$hihO;)hN+hh9nAOjV&2z( zq=vLY=(Qj}rWMqBfwS?@3+tIKt@RVUuit<5E)PP#2lC@0Uq2LJ>ZRBE5eL(y&|%)! z57a$038B}4{G`a&A*CNK9ePo19`w_^uOGE;Agc=RgZz}p*NcIvmk#}Sg6Yy)F9oid znf_TxW~3j0yhP;dC*4fFbm*s;YWBKb#{0UH`K3n?`a_VP(FmH^(|)F3I`mQ})1|eJ z@V=gV#*R4%9S8YYk*}XoE|AippAF?fFXw&T?yjGPBJ_HYpA-4|IW1E!9eR0^>C#%i z!25dsnB%WT=#M~tUgYZ+YM6TI&?|IImqM>7P^#>)wu|z^R9=Z6J9kxf^@zFIpz}3d0*SKbkz9?rSqPj zqw{;m^{*qHuRvbw70~&hu4(D0a~4YH{TN4QP|ITmBb~27UKbG1iPtnO9d#Z<>3o>t z=-fK|lVM0_6UZOL1#~`YVrQvy8%pP+GLFtK8)kowbdn&)>jiZ1glO*9G)-BZ?@&4$ zbR3;k3uYLR&Nm=`3<5fzG_kYPIS{3@(aF(yeBj+7q_Y|1PfP+j8&ged9d%wr=_LFd zoo_bYaTC(n0`jLW0i8r`)6!ArN|erL{31c?Jttp}biM`oGk-oEwrS4#xt*ueKZf(2 zN(YO|?nuTNQPGW5++2x5f5G24PM?w_k21ak`HNZs^cQi4Q~I<@oflE)uaqX*y>0lJ z+7Ox1Zw2`)p8)zRXXByOIS_^3#LwuzSavj+)bLmvS&L=2zeUgKIyX&`KA#^>+ zKZy*!)7f}vb?!i+cPBXLu2+p2jnF@V{Ih6%VppQ^(CR#aLhp%l(4I*LPD1G2Anz5e zPt?~m9$K9fQ0RTUufK_3dkI4S4Dv4`U+;#-L#yLIg--Lnu6%lQHA3$J`B#yze-1Ss zS{>^t^nTvgLz16$N9esE|0eSF-rB}Pt7AQdKEV5WU;K=_5qclUzl(hRi>vX_>R3;q z55~A=_UpzigAw`{kpIvKuIpcqz}MmO_heZZIkYw1U&&|}aonU`bAP3$2oR`Ui*+XD#BQp5$p2kC~V?Bj#7vP|WN344h z`Y;&VB?Yza>}Wi+I@VKY4e#q#?geDz`U{L2fv+v<`+-XDNY$~PLU-VOT?PlcAoSm0 z>>%*9MSVX|>Coy}PoX>dID>C$`77Remj46BjdO!-qQ7Q|L~-uRj|*;bVmU z7mS?*zP2nhHQv|iSWls~ysxL;Y{%XVJ5i%nSWlsi{B`{$jM|RSt-vUU1kmdH zfl7x~$9f9go3Hhd*3X}h&;UkLKme`2AEyh@ZQ;9=v6s!>jL@yYXcpDF4(}1NztW-Av7SO(O?tVS34UI zt&a5sy6X-oE6;x2q1%eu=FnrR3vr?A*jvs)4sF0__vLdq3fes4Lq!{ouDKspzspFx z+`-m0z{PbPi4t)81BsbV!l@lt2mASa!+^x88}|vX?tcUddG(E6yy4d?kXKtUo}?4- z%HxpZ)jiKuloz+zU*W~QR)EB1d0n9B5?=a&+Cp9fU}8n333;^xCqxQ)of5pzy7f`y)gFweItBJRA$td_ACC_6 zabiEJ$4&?@9H_m_o?1>f*S^L% zSsdkcRv|BWW9IQg9eN_K4qzM_6!=lEW92A*{2%Sb^vM5;y|`FUN!N z{0379rF}IuFP|ol*QlC8UVWqK?w(P|s}mSUH5hXgUV0rXNAY8y4Ru^x)?VBRMb(cj z6MVjGzdF##;)uQUQv-#(Mwuoa?1xX&n|B6dOVr=+|meOqG)g6r2 zG?;!W*JHJV)m!DIo5|}sE&)v^0Eza@^RE&HhfJ%?nn4jUfdW)c}<1_UdEw5_lnuLK+wD= z7;hBy6GOFJ*|~P_Qu;>4UbeH-Ts~?qCX@daUbfyk7EgIi2^aD@$MM|S=XW5l6ToGvJjZy8caQJVACXrtFwPRpbMpJ8ti2leC+o+~8D<~Cfwr$=_d_=Io`v$d zFHzX;Z}m_6r}k~+WdP&7bpm_kjmQ7t$NYPrY`b>^c&^#@rH;3h7j7smxUZcNz45PW zyCE+Lj13Q@DebKds)HtMuXo%Z28xarL+GuY6;Dvv#7Ww`w?-=~XK3lPTAXu!*bd(bd066G@^T#n_s1y=KvVO=%#6llv0wdX(GH z%-Z`(`FecA;{I`3&5S-jpd8sHkUuA2U5|y|rc8RJ)fwd~z0zq&$NZ~sL(&*W+li8V zU2Ce>TNc;jw3<`uKfD{cN+Ex)&Gop?Tvz8B8Cd&e#U;K=N4ef@GWl2jw3;nFM~y=+ z74qMSwoc2kKjnJA&cxNdr*hZqPCJpy1^MsUjPI?+Ul!vDZj1cS{XRX8 z)}!HfZ7A1=DKppLy1v&8?uJ}$$p0W=t(V~gTxd^gCyD~xCSf4{W!(14RU$r%MY%q% zGI8a<**q-u?jYpyKz_W!n#)SBw7!t~ebF7j+4jm+e6EwHqg;z~t+>8homz`rUdUhA z(n_uoVQz2lT;i80DObYmU#M62nz>t$%LnknZ}0u-7Uc3n{)*P>^+e6Safx5Aq;lmqGrI ztSCge)gPzIhi(KW9|4VE2dMmnbT(>)UI;z)imU^9b@A>5Z@ifTa z)LOk>b8vfm*K4@0E9Kf+ZRKC#C2uRp6@dILm96xzSZd$6#IImdu5IRVPLJ;XE9ZXD z3%O2*{6B2QIjxvy;+*7vq9N@cOU0ZX<=SB}z8_Y3)Y+d+M6NR+|1Z1oeT&g=wEGTu z4vvm<|Z^~!^6jH?T%b$LVk;#f5j_#xv|XJxKLhyz_?^qHolkd zo0wi=ZkBT4R~b$7Ok4c3hCRItx%xr=u8_5V$zvK#FG)i-znZo{l5&*}lG<9z)%)i# zFDKzr+E~=%7XS24HFCFcPEddTsao^LtFfp#!h}0 zxy}Y9yRnse$xAC4*ASx*Fu(7;B`I-%Wj#(&db^S998lV~wjQ6x28V4#8^(2=g+&5( zjz_NZK{+bkN-lY=C*!)g!OXRzna5GCE*AH-Tl`;sazZ_FT>#3lHutsr+)l^~K^fPr z7J9Yltdy%;iWZ&Gt_wjqF4aoChYg|q*wP^E3Ok)eM1&MUj&M? zx|Lk=5>mz`uR&q${l7_xtC!!3>z>>h&m-5xp!9UMl1pA+%D8T?(NtV=6bVv!VBjtLas|eafhtA z_W8bcVT9Y`Ts%zv*Zr#)>qpxtS09UZ;?3rp%GKA9>oQP$HtobdbA6QJ_V&&-QrD1j zonqEY>Fs>I?fW~B>vB*|w$ZD&pvhp5jSGupZRmKl^zNu3o&7l4@Z6Acl?P1qsFXx+ z2?dLgYXB%^igi7fNNY>9akRX)gmM+17T71QlKb^^lwG?PQ(kKv2#}+HgsIiB^yDddAG^@n(?px*%xc!u#4l^Ug4GT?xwhsx_C@b1TCS zEs#2+TqW|F7t($iH@%%GxzfSoX+2(?G;uj^iomSgw~^~AP%esFbM5OmN9MP`9((($ zC9aF=OkyMyzNL#}H;8E7|e zGC0EXK?Y4P@g;Vh%kaA*B+izr=+;V}AN8+mDouLf{KWc4_S}zL*Mc%AV69ilO<|so z;1VA!*SU(%(EWyUL9wUNaIQ9=Bi0g7uEA!#y1T2!rOr4Txk8|XZ1gIs)%!D@tLVv; z(H`}$qNk(AIO<4RK@LAl<>?~CrNFxX@DSX7fR z#IbgwXtduL$GC8Dm$nJ6(_=i2a^0M3#dTC|@iWLZ1eBX>+SQ_O>v%pwulcGWPUBkZ zG{!NmtpQ^k(@U(6q+B<|t+;OgXVj<2bsZ?T)>!*j(U);U-kM&KW<#9DH8W(4V_fev z8RHmNzj_`=xvCW_u4~GV`wzLU2j%u$8?H-@KB93Ai155g{V@L$?Kp{JT!V~SYyKtH zcT%o9&Fww<*GUT!Xd?RtP=?#I_eIC13=A4qw`xP2#^sbWWL!NfjOmzOVvQ-~8d+tf z*9}THvX1XYP)1bP=q36M;a`3Wzdto(WMEvUC5>^6ORVjoT=$vVd(^9cj~ukwySUsL+!F6$+nM+w+k_SccC3Y7b8>akdwOJ!We|4Ma6 zxeUK{sr#4VXDCS=)9cbWXQf&WASEVnHiViwzqS;eK*p=LfHJnlhU?D?gFQ{J9gT)KjSGzF*!5U)s1(Qa z67LjHuE!dz^txtkd(scx3QBFA4cFFY1B0elt_4?jV>*pXkmPT9wz_m^;mM8&QH0X3R-dXb9+`H*KMHG zsn&Y!GuLRn-`hLav2~o6aYf8rPX{i`>GeKx4FlzAo9l6(xxyiCZ?9a%;>UFwz7?=5a>^?BQXYI(NkZU+7bHmp4So)}w z=Yu-1cA~V_Z-}Gq7Y~#F_pa9i`gKdW=9%^CKDh3mifhPy$DN?OW7DpdKBns~xE>F4 z4#Gg%d*ilOF2l#xDcAe;Ccnq|iD!;*ABJ3af%0CJwO*FjV{7J3o^bFoP_6|PX0G1; zybpGg``Wuf`Ot68Rr+KL&qvqGVx1^YL;l~ZUd8`4^R$%f6EJi2R4(2z@(1J^0ZKe( z!}XM2O9zH)Q-j2{xXy~J>!Lv=$Tbp_MKv~DPaA!l`F(5jDmkn|;`+>K#Wi%i`&Q(t z0VM%8T+af}=YZ&C_~m0-kINdYxLzA@CFzIm0cEMpc%pPt?7(szoy+s1T#Xjv=$=ad z4?1{|>t0a4blT{JFFI)3fzb;;*rIKeYh}txuOV5vLFBp*lobs&T+i#*^?~6!u~Fjs z)}o#0sl3uFFKHd`0pP;VDQX+_`;8WU-`js~Z2bwy6$a%e8^14-*6|(yu01Uh*RM5Jdc9e5 z?z71CASg{i8@(Qh@O<>^u{C~QoUQQus9wKYjB|SXE4{BRMXoWR{AM%GDSD!Y=W}4V z+R6P;bJR+&SLSXe_m2;Ovejl>SoD;+U2T;1m?uqKJ?Kh=us?2Fo*g4@IuWprBo|4VScz_W}w+TwbA_U&I@My|)9pp#8K7LN&-xYFJY z&1jrcauM+Ss9r}jo45+Hm7@~hk#=G{6dWG6*2`-BMB4XMGU774M@+ent~GJtdVmd! z*2j?R2`D(K+M28PF)h4&!taj?8{#s%-!ARVPo?kI7Id-j`;F25fe$`Mt_e`!u<6RARm!i`=<9Z>-x4+trH`{9MX)O2|sDOOw04L$1kCaI&3V$3%HPx_^}%Uu}rX zkn3{&T*_7MG;tM_1W(&M_%`IKhk{e>+WY$h1_oA-X>0aKJ%W7QvgcOv8bJ2^v1C9a z&yRAQ-el%-HIC^Q9*JDfK|!F=x*m(wW}c6(mpqq3^@6l(ls-q6uNm#RXt|%~N4UC| zn#cDAXSRIR_L!Z>^*j{xvuRgLE3u*vc1({PFpD8&JL%prC)H zwR~w(QTgPj5?!c#@`{Wu8OfKPAC*sD&0#B_K`K&3OulJOA&Vwoks~CQsjECB~k42+H>&6kM4$K;quF&+^F&RWg#VR6Nw75>WZ%MK1R838{p95wrIdouCS- zxcBvlia3<-hK7vf3kKTHUWeoM?5R*NB&{9HSiXE6g%%^Di#P28r1JIFi%asemrqC~ zE42^3dqBT%r4&a z{IF1vHsr9EPe>)?n}LOEhpRbyu&^RnWdQ)%Pby&(LuNbqJPe>)?dpX5fgnXVxDGr5$qLWk+ zhw?oT$xyy2a~*z^?DI-7jJrgR6coKpuK!T zDk0yi2Cw36-|4cX6{L#Ja!T?&WifEs>&08O`_<7X-~XUsg1?pW$x9wH>Uk{(F7k3o zd-;S^LcUo^Aq$r;XyJVq7-UB8doGrt_np=9%OsR<1{6%jy8+|O^xiJs^y0=yO-d_- z4}kZ{tBdXB6H*EJW{1u4^$$pK)cY<&a<-AXp@Qk5jO3f(IPc!WdZ2tSL&3DP8}Yr# zmwvHP`L1+u6j}@n?R(c@)%MAYuI=R$QVIFypg3F>?tPVV9F^~?gh+?-y{4Mw+sjSc zq|_fpQ!hpNW1bFnE*XsIQVH*yYw#*A-@`R#`NUF6D&Gf*4CUJspAbO#8ld34W*hnB71gbm zPg>=E0OS)=3HjcxmZYjDo;C)gIO2VU%bg+)FW$w~8OrzO#Kwgv->XpYNz6t*c>#ax z<=dkdjTSd$;kk9@INOW2R7fS{d)F^y;oc_}IqTy-!@@`Eeajsg$~W_rW8XmeWTdims6DOxYzyp)lTbsg^+WZ~W?J{hWeU*T^p{9NjNKU8HX-}Mv2 zol(BoP_Q;?BVUJHZsNemC%<*ldijJ@!u!MXKlUcqU4eX{(myi8H9#rmV=>5XjPf)(O zPE8 zzKICLHX+}$wZ=H=eI-xp$g~(#zR7-LIwoH|ip@5fE=6R10i?J(68C(KF^Q-?R#DLdZ8gY>Z>_ zy~LyFQ+zsIS~4TRBk8#+k>%xPV;u9oR~=GZ9ZB~}y)ll-mo~RYNbRYKcOYIQSU2mv6oL@WgsrzNvUvb5a~MJfx_N)1DDx4ijeP(BsWWuW2CrqoKhUZ zLdlzYjqCEI&lRRHU0VB^N90S3qw=MnOXU+%3Hg3jIE#?)SHBcjfi?^uhN1HHvAB5o zuvu^Wn2xONyE;DpEtKzFDD)()FW$6bw7%;QKRQo~OXMs0y@nT!#!>H^+hmMm-uGVI z7)LMOG(OgKY)bHSLcYzq4dH#iCq+8Ecu%Xe_dZ=d;e9(ACPc1&5apW(g{Rh7%U7~B z$W2fW0#e*R@L#sk;>Jka{3ah_WjAD*hQWq>9*^|5c0|6IVNA+&rhc5 z&?1xysc2k)#BHtQ>4bdE%~BlozHRs~+o<=QvzLq4Qob(R1LQ5W7!;o6x0cWF1MUQm zdS5A^f3S@r$A|=CtVQD-ByM4?F&&l9@YCotU5XU9W6+q6Uc4n@ph40x`Iew1w$XE` zd_pQ37a;ll8RhAOe1GXSg!k=8h;-nQCUmg2B-pk%2o0Xdh+_l0buN|s8<*P`(J zgnT>WQd|W&m%K^HHtKx?o%Zrsb{zvZ{In9~dmjo1*v$8p9u?vygnY;Njd4uAxvXE9BeFqi_vA-ic889yg>z?;D)y zUB^K8g1b?^`A~SR&9FJG82|sejuk2|ukgN=31ggn*RdzW)9Lc5SuIi=kxy+~DdJGR zTQa?Pum9P5Cd&5#6y9VvY~I(d>0WQz3g2GX3+4L|3ajf{*>$Xma6BR3_o^{2 zv#w*E^hc2t9GJ%A3@=R%{KDwYuC}FwaL^c?<6k< zEp7^nR`hQ`iX-yLUmsut7x~TqF1B5VdZd%*C%o?{{Yuc~Q;*TBm&!LOWR`EQZJ%f8 zQL|9KkD>7CDr@>M`HrrX;;4MmyW^VoO|6&GRS^k< zR6;(nDqqNVLWrL$yw9n#Q15#snW21-239_a@-2kIm$R(BulU#oZdS)?>*43=gnT`NQd|X* zzE?!Vq4!1i()Q_Hhd$#{IHl=^W$jx~zC}>@dM0gOE0zeQwWXPL9cgx{d_pQAU%pew z!k=~AtyiV+K1GtREYy_M4yWdC!dHhLQP>}Oj|bTw`HDmPqeG>3=mGM_!_|Q2xsLqg z3Dj{hsBQ)Nk_qrO$3h;?#$GpkEWqz zRp4Hxfcpy?T8_DV(G2e8jU?rl_}7c*P(YsQfP0e)?q8e1{R?IJ9YdQj^j(M?+X~>`k^m()Ktj!R zxa03vTooaqKQYfgG0)4ZN$77sxObp7+iA+34sf?5!Tmc`;@>#9|Hbdl%%b-G3xfMU z0Oi$2a^7xCwYwgA{prV$C#wbb7<9RhSogH8fK!*|Lf6lTE}j!Ap>RPX{t7U$;5oGc z_bTWzjGkBC1g9=hpyv&h6L`mq}5bjRMpX?-|^BQrl1J}?B z61uP!cdVm+DhXZGgnI+V_(`ZD1Sf8<0au`bg!;#E4`XaD30)e1zU?p)J2KX@upsVf5{bY%nd?N|k_WD^Np?F7$NDew%cB%wig>@YvL z@2n-EYaQUZCJCMpwH~U5zDFqF?jIw^24jAMW8k@@nS`#Zfxbt!fcvfl30;q6zdj0{ z8(K){#t`&9HjG~*2$9fDaon+P7dc4imLTo`z0Qe{&`=dTx1!eX_(^D34fN?0g1oQk zdAG;mltp+=Pp1~{P@r@O(hYAUDTmkNUJ0H%X)bqR%$;%Y+)Z=28;{*x33&}P*#_gd(6eSn1S!(;d1eUpn?$CoTTqwu^TH09_Rct+Pi z&(Eqz$}sK^#G&U8G|vaIZXc|}-`Ga33c9`%B%#Nua95z0N>e`W2hX?`=(W0q92+0OJp{c@jgZiUYTU6!`JjP> zo#PL^jtme zc=e2;3QocErr>#}=8|JChH!U6;ne{WnucYVmJ5Zat0eSNE_fo1P!Me-q3KPy<2uis zNfMfYWHXTL%VrXqiDWa8ELl%NxDMIV;D^G;sP$P1@XV@(!WlG|*Zts`-2#R8r%1{- zFwZwI&y{r~G}i&1H1f#(#GudNEm*2JITlx;PiIW|9%cEs0s0(?Hs@E8 zV+)S_#G4KQuP}C40#}+4{==EGES`Z_lPXUVN)I!lm)g+YgL(vjE_BO4D z&#Iv4(-;&jQpvH;@vqOw@fH$V+5|?1NM|}=919*I24~0f&8odB(x!gdjz_F;v}J;9Z+0W0o~_0NazT)!Nd1ggZB`cvZEjW zY5^}<0*L=cajyn%Cwkst3jWmu`8Vg1W9aYR+%TyB(op9Jcsqx{+p~cj>jn5%0=#)D z3FYCjJUo^kB_YL$f2AO=Uo#06L~sv*w>PEkjh1`IK>3u0iZQ;}3Eq+#lCmU)djxv; zXlYfXQdRJJD4Cc1)eQM-0wkpmQ~Dy{J&CgTk@}=2P*hsJlWV|xGM2F~wa~X2|B6EX zk}PswSqOJ0C|*Aao!*2yw%#2nC%#?p?N^D%X)fnDz{q_0DKAG0mnFe_ z20b42W^(3At4z&o%3yjRiCRmgG`vRoY}DF+2`$N#UPp=%ZV z3&$FDHRRY}0BtiHz1E#zlQ@Us_H@1NH#u&H` zZXn01s&QBGIJJID6?kt^z%_*)8;a-MisyY@K~mlp$2|<*VM!9Y9m{aL1ItfY?g)VQ zjx2CJmP?KeM+?KzLLRk#7h1RrEer>8?Cu2awcs7mL_#Cc-be+!*HU};0C;QA-jxAz z?7m#^-iz16SB)ezDvWyokJDW4$NcV(fp>HZIraeN@&M)%j*!rUxQFo?d$^K>#)NSX zfcK#q5_+f!_XcqFswJU^qqtXN>L>|4>Id&5Ezt7_nrAH@tE~q2DM@ndu@vqRaE+%d zj|ai~IDl)KLXM4Z#2rUu)9XlR0WOvuR|V!oQ$C}D_vvQv zPI8j-upjnLc7nIQo`mXKaF2oa`4|bkfc9PhaIY?{s?XXF3TmymSKsO;i&nj7zr(R zg7*u&qv%Ghe;EevmjQ4e;vmNwu^t+u;O;~%tU&8408Y$~lVjL3dsm{pRkT*HXZEg2 zfNQx*j(wBDJp$fj6$vF#>u;OEwJSkFt8xD>4&F6R5?YJrtx4eCKtkV#aYyS9)RE8+ zXyJ!?aGzCALhD1gJHfkwmS{a5+YrvetxZ-R$onopKbt@;t=R zZ_=SqexwRG6yhltvd<;Sd3M-+#u+V8-WdlIE0bEv9%nc#@;rE;`?u$y{D=SW?h z42K;{b>&aCD$zj?_-`H$<((pApsD5At+dvHGpF>LcK1N}p)v4~TOL+NB`J%P*=1dx z?G5D}vECDYp66*`k+N;4>R~FBcc>r(Vl8ElBNU62ZLWy@?>HzwxQYyn&1d z75|K4ltUeO7V#40Lx`u$&r`U6w!h?q;uTQd7KdaDog_~jj^($lvq;%)VV8xEL3x`H zcs{1JNm3pku}FE)qmk`rKzSC{dmJxXmS>kri{V9{}*NtfwCs_xqN`X3y_YK#Gyv4(=9*CK{{TZj@|&3_XF_!<=4`& zTcomEgXA_zOUG`$%C?|Bzb3UfcC%LQ!2aPEr*4J9KHQ3?}C1{KCZ>F z37Ybp6nI7|Bo0f=rhdxL^<&3R(~&qj0aT7{vF8q&j?^`sFe=YR8^da}bJ_5sY%_M1 z?@$FvdFixW*-&IYizFj9*o0vDMQEeENsD6>h~@pW$Rr|9cV7rQ&9a*vWSUWnV-vpR z2jS3$ttD%NN%Aga)r7;zu5)U#q1(tHkY8;ZGV>pt%U%L`HO*u`n`A+@Hd*{@v^b^B zq9_;p8X8V)8{*hk$8dVv80T$3qd3WJjJp6!3^>)z-sQK#wC_d4uBg0+6`o$J~kV8_1Oa z^`aUZu8(4dyfv;*R6|^bTnW8Qge(6ShnZ_$Wye0VN|Ea`P%lo}aD85FV9>ahRT<(k zCH%aChjl%GrWx~Ia#)#Y*j z2xSh+n!Oa%OX_X7B!AZQlIm9DlIxcF*VhVXAU?$^CQqyBZ4CD%~{K0gt;mVtU{ ziw&1_O&tKPHTrc#xr!quz4H3!{&U>e7m@1=P%p2v;riam%O~pb2T6y^&=Ps1V@Ri6 zk3S`haZInK1|CPadW1tJuKe=wg`>`YAGwx;Iv{4lwMq9=!S%Z_POHcDPHvCX8LLMt zuC2h+5iaF+?6cUTLA_n=+P*^FeIusI{t{H2N3m{Ko9lQ!g6mI72d3BGenUEqYp25) z$MpI)&f_T8tBqN07}s%!MqW#t{}kdhf;zB9#>wGD{V&K*C&l++X1q%w@ieZ9#Idf2 z$9Y2-hflvqm~6y!{;Yt(^f%>m{zTJXfqG??wP}1@#!lAE#4|9B5779zwA6Ufic&w* z;lnf0^a@a~N^@FXYHe^rvdFyDLNQ{RJo*!+b5?h#MAIuly*g-9YBqw}FVhCah-vZ^ zP?)~y`s2?>)2l!ohUESk)ipkAB*+_8Ur|4p-d8*V!Ps}_Ul^Dc1Q zfTmZ2dYzp+ijO{J?v7XJ*hFxpC;FA%;Kr6+I~`500rmPcchsAnf&Tq3HM>jHOZ{o3 z!SsgOxmcCiYeB_nb?HjbO<(QYf79$%mYeQ1!PwybRIcWr>F?2Wi;d}P@hW9o=7NW+ z`MK1?>x^~1d-_r3XnGx}H#XUr9^ArD&)hVd6d>nQ(+?U;Jt=3_t!VlOP;bHu%y4Dd5UxTLC zgL-q!#`G;gW_UkL|URk&)l@Yrl$Mm8cdHG+x{Lj{S&A|Yi&%ksfYbCjcd-hV#G9= z&k%x7ntS?ZXnG^4x7FB~W-}rCWm=mtA?MOkW8DhVuh%UmZ<_rK>aZ#s)5GgIdB%df zKhgb!n#P_;m_GTNRh4M^7f|t8qV;us7q`40buF-o>HIqz4W{>`)^ZA{<2 z|E2Z_Y+}0Sj{$?}bw%eDq3K^i9gepPmaQ3^2_r?%Sa6TPrlxU?lMsA+%_MB1vp0c? z3#F`0*Mzy^nVY^R!Otb8$r37I`qky%;w)MAZ=l{4wK08PD@>2V9+_>l)cCkUm_9c( zp%a?k4C>tx8`Gm>{PfIA9p7-xoNVJj%~y=S-vJpy=_ZQH#EH!)S7A=)3r{1dgi9_ zNrbi$(`0p=Fn#bv7hH&@n?b!NWMleqKR-Ql)8ixjTw+zW=60n?OyU8Zngm=Gk|i zgr;|bifeqWOFcQV|E5KoKunW0^Fr_)b32bh)Bk`vCT?T;x%&M!ZD6u^GqD`QtA24ew9#9{xwlO`uY5z@&Hi4KX?}!M~iAzrZJu53G3)I?>jp-SB$Cq(k8`=a~ zYFzX#OcxFv{vDcb1L|WHHl}B`qWchS0yRAZ45m+UZ0U`r+k!eSU}L(WX8#2jZ2~nt z%5O0J+=i1Epy_N-A6IQm&(g2Wj0N|IHi4SPcL#*v!KrQMq3Ik@$2)CIzwY1vQj0c$ zn!eiTWPV+?Os+p6-{>p_34O>X|^g%Hl`OkiCMB`T-P4aCJ@u)eJ;&3K5TTI z{oOlg`Up^;3&^Gq(w^?)TZGIoGu=0gd894a%4n#lEo3EmQk;f>0cTUYdwxQk&Y(V@ zHgBrqi1{$0MC)?G6F3`s zJop9T90lqNwKkO{=FJWa4qNlA0%%swg`XaU7sdYqY@;b8ZI)XQ@8g zqP~N#RSI?Db3&&e&at3I@X>&Au%=g*n1?$sIBZ?Nu1=!XfOGtcxEFD{fI28TP_3#5n=fS88l3%c9+B z6%Kn_NXJ=aYkA#1CTN?uvex3Llx-v~v+>Tl8h$QOhrB4R z;o#z`duHVhMw}BteJv^D=<7dHt+;zy4bbL^s(+kwsW7ekSHwQ8l{1+$3CZ#6dzTtvz&Rrb!ABU#%K%JB3 zj=JDYmHc$OQv0!SvR=(PUpBolVlaKij_#OoPClsk{T|8nbkpp;6JkDN)A$Jiavs@8 zsma#@c&QJK+ymyj?`= z`bVRO$D#K+H0=iUy(Sye9paokW5EqCo>9}gD-EUYtbDo!UWKN8pneduHtp@`=j53S z-Vo;J64T_{Iil3x-*x_TOIPrts4laQDuUnvxIJukORDnC7Q(>@)W3a*My^U%or1s{^Z@M)kfaoCvlx8k}!xrSrYQsd39DD@RXZ`+2Z z1EAt3)2s#W+sseTywqhOel9Jw*VvH8haN+oqMeSWTdYmvr!M*FnVUYniJwbMlkZZA zQa{(YlC)-LfQp}+u`D%ykCUICx#@oO{9I}pKYJxi|KRVA%Zzf)1og9|wQ27;4t{#( zrh|3-TwRM$_kj`bE8s z=>a-<=B6tvIW{%@jT2`n1(ZC;<4c@3AlHSUe&?{^lI&^zB}QGOerP@7 z_xy|ujO)6XF^+MG(H`YmXZEk23$vcR{+zMMbrGoenNCap!fyl`^47TI*Wek~jV*?B z+MB;(0hI1v-T}HFQm*y&rg}ubU)N!CBXV5~YAS5QRaI@Ur`6*vRfafCuc1bM#)V%j zG^S&EiLQ)tZ48>Y^8bv#Gh!-US~(S<{$zT#)NwKrk?$WG^47TS2pHltF3|@OZCE`H zmo#KtV(3h{no=e%HJQxmcX1H8`h)sQ!bUI2p2l^TQA5UMcr#1qGQ5u{>QRiVDc9zx zi3_jC;hlaQja-+2`dhsXmxW&VmGphnOAMR@ml$+Yu4aq&{^YvqMVs~@*QKCtb=q*< zt@|nFt?4z=>|gl3bt5aQM=^{QTw+*Ex&AcQBl`W)xj(#sT$h2m&8{Br0fRk_OS%>` z|GF>NkWTZjQDI{o^Dl9IQ?9=&P4%e$m^yvPp0&tzIjH#ITg!Gr)Q=3gIFj3r_z$N{{mJ zy~!?LAy*~1+EiQDBYy4FU{9;ZT8V+_^;pV~PV=wFgT^@KUt$iGa*}u}p9gItiq$$_I4JIz-%-D(^*)Jm3mEgj!2<|hN zVY##JU-)fwBP;VSv0hd9m$;TG*P%`mm-=t$${VxE%CoD$)zNO8Q|B<))AX8HXNc4M z>lxJ;N4fA9C5&-QFL7^8xpJFKT-e@!p8B~6xvmD+VNn~s#OJH9%o^9^kkKBkNBmm0 zF^+N>o+Jpp#0)0oIM_!6WMJ)tJa%C9DCU5Ke~EE9!X|I>e`H2s2!7Z)V#8%M{*uQu zj7u6nYVExhml#u0u3qMT$aP5Uzu8&ik?T5e6$EX#tlF;`7Je_YGQGs(0a1^lAEjLQ zL2HxW9~T?bcv>!UT@S9J78@?{tVj6$n^BX086Lvveve<%Hl}0s_$rU0kE6+_*weXi zT$ojL+DpiF1Gv-%8!oGH;jB2%oG`F@oLy~LC*4TE) zbtAaEiVc@^Z>?RA(lx5JUkjW@2FCS9#2Cl8#Jw)#GVA41T0T2<2Dz`j30!`={xNFw zC5=l=y6bv*!W@AvHDFwC)$mA?j&k8I?(jIuRhDJetEgdWax!_yUj?qdO*VR2amoJ7 z>QQE;T=@GkoI!Aj&mB>&fO(wbDry)ty!v0{x*1%j*^G1WtL=uoHNEzgOJ4rT^y(ky z`BAQZs+C^PfAS4^8SfTwo$1(jy$sLj^m_DK=_Rj{Wn33ENnGb7&0HrX?uyz3+ue!ZEiZ~cck^-Ga!D7elG z+io#y*q}p(O7&hds z>1EMQ7#{uVT!sguB#zai`05uTic+=5dbe!sd(0pDRJG zJHU0d-8e@Y%WM86k7-yviYH=RFY>#9Tr*uSuNbFMuE7?5e|qA7W6u8#xrT!)RAEz( z7UM$i$1$Tl%9X}oTaSkMN6K}BVyegPd(`LN&$|q{?gZEMxfyUt8fyKv)%a_X(Kof{ z9b)W8xvI?di1*v${(1gHxS)b z&qS`f!F8)$KeX8BBaAEUO)utOa-YfC)lZYg`eyCdg?fIJ>-MCn9=lyvdAw5UMy?Uy z8Wy*yM``YPFMcl`$8x{tOyqyz_hMd@a@|>D;&NRV9a#7wwud<*!8JT&!)2kD_cMjt zB=)FYmi-X+aoQ%h#9Slg8tFH2;W&E9fUn7XP7Sz5IIX$xcfbsJGriL0CmGki-q(t` zGs<b_Q*3uati`56LhC*(GbwO?Z1nsPm6abJ5+_%io5w;KuErr+1P?$4U`LXTYJ8V#<;V;ShRQfe<5mo%=`=D)1wnZz75 z<*KVObA=;^|C9YEayO(j1BA_i`IbxeVWoAq=!0 z4PPu3Ttk7EiE>S|7=I0}+uY}*rq~_!|Ks$9gJA3Lb>pLU{m|`eD#CZ^xJ}5kASNoY0ZVd-pT7juSd(D zal!R(+Q#b0WGQLfj`e(!p*d3NDB!r#r<5uS*S1q`r6*hWVw5$00ojh;u_vH6ljd6s_xRG?s z@5S6d)$1Lni3|O{Vfm+Iy!sfp-nP51wHU9ajZIlQA--&@*Q4e7iM7CaDOW6F;&L^_ zMyW{VSQL0;QTsW}FP~UqQ=ZG;9<@(gD7xs@c7eu1S zH33{p?DYD<*e+@9>T~r*2I}|tOW?*h)=r3zB9Z!L*Q4lfDc9#wt9qRF!Dpm@d=gxr z)!Wpg#e8AfJRoboEarXjcZ7|sj7!{uQ!bqLGqv~kXJs{=`U7&|kGg*0u;G%%TH5s} zj{#Xb(GWH=Fu%8&XA)yF%Jo&Fi3|Py$*k88L9VC3)fltkS|2jl)41fmkk#XKvwz|5 zvm4IU>Ty(<$5F1YD@$94llz#J( z>uGR(8@1+=pCM@1qwGt}zvRA&`MvxF1=eq0?UcCI#!Xz#n<8I?zWg1zo&ndI25To9tIzmNSkw@>~T*Q0o@L+df6n7CYx^`4(D`Utt61=kO`He6CWuIVMuDcR~}IWH&H zs!*;UQzowbVU^{x#@ea!Mmw8->?Znmrv;IY{Dd5^}GcJ_J zrW)707Na(-ACmhVd%eWEP0F>?Z_*3b!Mrwc^r6W00=Qb7HhM|@9^_cJ00RvL5=4#w9*^C;Ur%5RUs7c!uitWF(G_ zCq%zSxZGJG6IcG()yIGE^BCls3a&jtYrW*Jc57VE>aCODnjA6Kt$jU;d1T6!Z5~hH zI=-&MP9V=arh&Vy-FU*Py_ef6=3lbU5iUr(pJRHxq4QHNoX$(HM^{VMi9=@Hj$9FN zx3kg9@_ze`dZRYBTxo3w;}XxjDc2$9aWr0!%c7IXc=aW4cd!{p?{hug6gRTk*Q1!< zrd*w(X1yjg^qLV}gIv?WeQ1rff640xHUD}_8t*Z^zzDr!DaS)o`(D{{7XFZqFf$xKZN7e zV@A&(j$94kcH8tr2fQA|+GNUglKFbX_I`cGB^M#rtKjZqcRgZ*tZi6k&A;Sl*|zPf zWqZGrXUFRCl%%O1yY~xi7|?hfa?Jww$#Ls?v~2I^J9*}!9_432_Wt!)il0mMDz7qg zxvTC7KGB3+uYtR)!kWt?jU6<4#&{)^Y@TFlA$GEJrB1o61i4-ZcR#y!LefUl zYhUM?#MjP+Uh6}WUgtWk^qN}tFRs7MnFH=1?7LoR+OT?*>U%GGiTARoUKcc&xbWwd z$FKT$8*;q??(^&Roy)2o<^GCsrL}XcAG)PV(yM>W#N`geW;zBwj9gK0Uu>tB)JJRW zgnVz!^co-G_PBrXF!^7vN6%pWo`vdld9{fP@6!h6E+zf;o8Z2z(poQB2hH!-JBcl_ z5qpHoxb2n8@EnYCRW_NqHby&yyql0~F1W8~wBeH4Dve8St1{yfbB&bi>W~%Jf<=#$ z=V@<&`>LP~m-IYJyB_7|Q5kW0#auS!y4FIklE!`w^u2($!F`R5UY7G;z7(&wjO)?x zz6j;IuEMNWNuzU__iohd9dM`rm@Z!jBY$*Jt4HZxH#7h8isuxR>n0rUr2X7^_mals zl8xUY*Sp}pAz@RG(!GzyHLH35^%C>jlwR$F8MWb(+IGg}c~Tm` zWTcnpdfhiE*PXRiT!+`L8;D%ps;&R_v@%t^wtB`8}xF1Z})T8J(gkBp`>3TuhntVE5wR~T6eUhI`xgLp_xC+i} z2@HFBEOLDW?uTn_xWw~&oy+}Zl;_Rs5xl}4iDO(i=F~P4$HreB{XC9xjWhQ{IFIQ{ zJ@)`|#liiU-f!ou$5iTH`X0C%`R@JE&fqll(9A5^IGi7fxBF_mB8oba~bBfLxz|yRO;2|xt=xOceqC+KfR^%;mEZR+|Pgwm$bfx>6LaLP3v)A zxeV(&8JD@=?$OBIaxDS(G>45|L(u`* zhW5026z}*G26jD4_vKnUA)X=V{^kBb;rUU${uecI;d7W@rjyrtb3O(4^m=P9xqcW| z+O@~Hu-zy$tVp6RxrlYrk%)hJ3}r2Cf*lam-X~=5i9?-4=zu3ximcE1+;l z0MGCZQ^0qd6I@R@NT@o3JHF?=y^4hHtjE2QevTYNkA!e{g6|q9IaZs*9gmZV8}N-& z@vmm+c3uq$jZeXemtar4vz~+|0Qkq%fbU5f!j-+gC!L`D)zjw013U)fIGfF zdYei@ulm8)fX8Ril(R6^tQzpm4wGZEn{aP{ynJeX4#v;%LmpX90=}ppN{3cKmr*q& z^kx!H?h*&z6G0N18^yhv{t`Wg-VQlX(NVfmJ0`BqZu##$)58Oa9FJikJYuj;_N zvXZ1+S%G^l^lBR;p;a;5YrwfNLPFnQ%5UnR>nd8JWF_>yI10Y+;^f$OwYUfIT_k#J zHQHO<0KT=9Wo-oi3PC>J7GlbED)_!{2H%e{k<2!94`N-)Z@_;IZFR;M*D^$F^b)Tk+iH6bb!-IsB0ezHRi_HnhC07JR4E65*3% z-}WHnA3-hbh=6ZL2t0Eu$ayUa_})o^=WS|lX9#?MH-TGiBFFy0^Zp5f8)`}D-#G4J z@O}a$w5tX87_&n;)cT$T{#6To+K^*?+K|73&?nnLLfK*51JEZYLP7@t z{*{0}?Sdo(n5tbh^f{Ow>ww1&#$$&l*4DQ%$3$Z9;&e%p?_heCPVFhO8RA-`=MZMNl7to!p*$-b)T1r+`<=GKZU0NKwP|LQc;7eBWbhHU5yR8y@ja&`ZWRzco4ajnm zjEo#vV^n?+I^G8n64w@gqMkN8<^9nC7AHv@>1po^Vda+H>;T_KRazWt0LylwjdvYd z9BbIi&qW(AQfACAZ+ZgHEkC1$G@U#hZFI}~ATwKSg*I51RMz4o-IA7$by{Vlp&6gj z;#d=1em>^+rpAY>2`1K4u^+C6u5)U#q1(tH6u25UCYF7Jz3XS--BC??Sdsa-kIIcL%PCjXyNeQTS5u?o>12Vs%6EC-xW@ zt3w{g^b#xU1lN-xl7?)QYn8*qg?BB_R^<;vy_SLZAMC>{>#;7zaxvE9#9BjKhV}T2 zo*&^-dnT;7It;z82D!cf@4wA9T$3sc3|c+5hO3@l8zfJ{Rq!nvRT}+1|KX+!hi=P7 zuI1qUufm3lU5g|itP71xx)wCOo{Nw)WFvLP>TybdMrd)&zu5Io;%PnJ6f)~I(Xpb@ z-Hcpcf_Hb+hHGljkhjJaF~(_J(<6p-8rO^#V;tjprGdv$y{0#txZIcd>w=3vMXpBh zW#!s%z3S)r2))ELMYLglKTG!;p_k0hxMnx;{3zGO=Jw0oFVt}LfNPNJEAZjh>8$;J z4mu#)1Q%!{kO8xM%t~a6SZ@|}Hu`$iYB1E*zO$%&V zYP<^;rayRL?8#{QTkwIy#`IT>#4On|H!ZqdVw&7S3DbY9o_;-=PJ-`XurV!qxXewj ztYFa0&B*jF)c3U%uTP-8!}RA`FGDQo}{**>DA!t&}3u!oBvaA zKM=2HV@zH#?BWvRDr$OTL@)K`+?}^<#Kbvkz;{T}#xxrS^DM2dYkSiIo4OfJO$fm& zZ_NG{O|J!C$Apb((c5G$xaj$)X}rf4rh_#vuSC<|gYVFojp^@dNr}mpx#`tJ6Q7C1Sk3!Qwfe+_Kq*0dMUvF%M;9}@OOO10`!gTLN4@^PR z8^L#!-^TRM)%!1aQ!YQ3)-_I_8cdIB3Zdzr!FRM`WBS)RetPDDi?KK{P3Gl<>FibA zh=>0IzGECVrhjwpzv;~pel9UhrjUi{af>ed2~FdKf&*+!Z)t^TaaTf35+VjV??-y!O8?XnGU)j%~6rE$&A$H!bdOXsMqv4huiJ zdfl05`Zw@(N!pkeL;K84i)j*Kx}bv1q#19Ad)!lz)!cp+GHeE4*M!WVPXql?VNhPX z?cA0y#A&xH+iQ(+>~>{G#2CkJ??jhKxX2@i^y!u!ZJWm)z2iIN`W<}T(k?-ri%tEJ z{81Z?i%lGAaT?b@7F_?vNgA>dT^X0SU8H)QRAu5S927qBxT{wq*B0;{Uu&b+E*$@{ zO>l|2AokepuxR{99Mel&B!Ww{a+Irk(!}NZUA@0UPBC(A1>Xs2ZmjEN#kE^%#u%5( z%D99Z3og+P5iXZvz8&^%sQCV$fzKgVGx)j(ZS<0+1+;p!nm!P1*WUFKjTGg=2P^6R zmDjc5jj>miA=e+^>(OAtwa4h=j0>MU80uE5M=@3sTw)L-^b&(2%7rppaJg%{l11#> zz}FL6$t6ZJf=diD1eX}L5H9jaC!NdnX!6d@MWkQ)6MVg@Y`CO4)AY&?oAr|04(4BC zs4KWc+d;VU`htloZ(Xc+&9o?TZ3kao!kP=82pJeO{}MM8#2)i|G1BLH@$<<4f=k>@ zP_AUk#DyQ@cx~H&?a1{P_!PyOOP)&Cxa2mJaqX+$iyo5t*Pl)^m$SAu_l+gUwF7(w zwKiPR6s%T{5ae3udiCjG)Rnbg_)N{1ju68#nBf?5+7E++Y19rq}5?F3(OgAEsZ+@{&nxY)xwEl%U=9O4{= zf$F6_DCFr_J&Hb)*5e{Gm;310-AB(Jk6izNuN17ge3FkdE_^0#WMFhM?_|4ae{maw zI%s-Lk8mxBHjGOiJJ@rHcA9ees!jEXT<5<3>u<=l8+@nM+vp|r#~PR17cwq!-@EsE z6#W(D!UYiN?F9PQnpyepBG(@91)MfqV(L!lCFW1LUR*!&|K7Q_>)uGY`o+y$C5>l} zeY`X)>mc;MGwu9K+#Lxnxz31Q#%-@$hCYCD1uLw$#%vqW5xLrc?;O94Ug8d2a7jK# z{cE4Oa777EOS#UEnYeIq{mh9wQpnX7eCI`MxTLXz=3nyIAtSwfV*E?FE;j3hT+@fF zI0U(}!H269q=^{4{dzmZ%O~_Qw-Y=K`G2qV=o8}r%5_P?q!;@Aq`HePN3I<3^^e+c zNn>G6FL@lAkzR&z0OcBB9#3?s^((uNe+jt`0^j9|4cCWy4=nVO+t7@-eBwC@xJPk`fH>ebDo9k& zh=LIiM-+?*7!@&YIBpnGxlutQZX+T_K%EN;5fMk+qH;BE82A4@)m>BFnQlJ@^8E8W z4XNr=^}cngy1JHgsv`*-UZ#FY*H`9yh;993UCMf7>osGXcn`tuNX7|X=Vta3!%l4; zG_~zp;I$VGJEz8)mmwdeFV%LL1MAD0mooieIqm(Z77hik3o`pvIABsR!m@{~l6vJi%*RX1m9>`25r6o(o=k)3A%|+Pzi(Wtt=D`ZDWK zjK5mct)?%vVDgLfVVUi;9n2@&ghv>bn7GOGVnJ(~M8jhCtK)9X>K zD+pc_!x_A~yq%LX?)rt`wJ#03%GN7N-^Dkt;b<%{?5FD!>hUb>3TKl&{7XnzblA&x(=MixBRx&8M^CxCJXa^d??n*H%+n0sLaN}fC?d2&uqA$)OH)xGKnftw^_DEqV5XJ>vR&zUL^#Ybh?=?^es9?)mtufjm6~mmZb)tAspG^or!^S%|+H$)Kd5RDyaLV0%4((Ja?wZ6%(Pm3aR@8In@1{ zGR|dDHLeJ`W(mBzE2;b9a_W9>J>R>B$WvWUuA3@EsDZja2)z4CIdoqbR}Q)62)z5j z@u4c@+ral8sKix5u1bNo7S(S|Bv|2+}5v( zZK%NIA=k6T9NL(|1zo=?@IF8;9{_#1klY+2&*m_>Ue0I9597F^3?uh~hSUsKd=K^cdBL-~Fy#5+zP{N6;K-)qUevYzk#3D$pr^;W_2 zFL3!2TvC;M@9#=nCFI&xj*vH}6qkd%Z5$kGQ-upLZL2xdwi#C)xwgkRgp+Q(?aRm= z%0Cf?Pk9@x4QvaMhBFS2@XhSOix-^_tSep)MG9T-{8rUn3mq8pf4Fu3rSRZb|ZX ztDoZo);r`+XUb1Ux^FvfHmS?5z<|N z_hx%h+5t#60O?jWv*f^haz@I5C(2hGBX2RDj?ImHZ%`#UM}Qd#E`y<$!L{TaQpNX% z!c6MSD&5n=>nSF$y9v3J@;xtd@uKW|i*)`ZdHq#1I4SZBmXbHU3j(R%V?1mVUW z2|^c^;3D!~kl+v|2;Pgz$va-$8y}@!=p7#>@5N1gZ)%FXb8+u#p_dB$HMW|(;=SpehI`ZEcnZQSc^&RupHDq65Uj6{ zkncSw^~e?XVhQrbV$`F9;CVv>d2gu3Xsvv%6I_i-pByVz%_r@gkAQ74!A@6LA zl}T`!Q%T-ACDdb|GER4M1ul4?@nQ^lE9)qDWtck8jB#i#u3HlLUzG1wLLJso;bFym zZ(cQdD==1^DN3}!N#6MwrO&MAdkes20n+fip%3->%^~I~Q|qbEhBE1YlXKRAMJp(D zLJ1dH6Qx0q)JVx;$L2`MHfI$NeuV-THj?M7xRe~J&G|Xcy_8SSsEPNkpkNH}6Jok# zaW5;$yjON?KA(cuH=z&`eb}+uyx5#)t|KvSCL~e#sVP0rKGU_85VK_acSFzhq2NrY zVl1jeOq%*eie-rmJlnY{$0aFvork=)k}g@eqRv9HZJTN5-$KC|rD!_My5yikDl8=1 z+*tn4A_`82J|k(#KeU;vnP<+Q?=Sxfk0L5?d`#w9Tq5%vbXJAb{9bL(Ij}1Qf5pp+ zn?MfCjA_s%NaWhCFlcuUMR*;4hH8DXvTQ8<{S< zL9+eq)%S0s;Lnh}pJ2@Mu`wz=!-3(lnA50I=V(Ip3Uvy#lI>GgGrg5Nh|f)LgvwZ|!RB5I>jYEFBk zL&xXi0gtd8Ce>P}7MxYj9h;03-Cl5Z19yFToYpZ0Z-m@=c>F|Kt?LZlRKwk;9;dzJ zf)6F|l8fna+AA_N9JpOLigC3UY;cN)yoX3VXfNcz_%iYyBsnX;E(~?_w94noGl`?P zRcM_;@P-t347!~1rNSgoms37mm|p5~$|nrdSUpbpe_^64<-{~NScbt#pC%bMqXHcc z`(a@kuf<`5abBsYP%JK_{jhM_*`NDdygybMI+CkjIj=OZIRBI%78V;sjEK}XTCn6` zh|?C5u<&4v6ALz;4t2&jv5@51uU5wK!brhqj!a$!g|CM@tOu|C$W@rM;pHfm`JnE! z1sg147~%vk8Rq{XXTR`9?&)?Ycn$Sf@ruT;Nr2aZZnaRtg*X6?9GGD<=awpIpbo9;Vkyt!^m|!W{j2!A6dWq(9yU|E1ZS4(|Su?hNQRq7p%P8V*0@oR1ua-C!cJsyva_OpYwf4H>q1*hgx^XjrHb>ede zhAFvS$u-<*Q)+Fpz{wS~HpEEB+17PgGt2N#C>+b&3Oc-fRso>9k?T~44fG``krw}C z53Ohm=+ljELft(3UJ2;#SX{U1&Gdm9!)FhzXbb34qjmcMkA8dvpnH(3w8^H_m&F;D ze+qh6o0&G|gK%f1g+v<37S z_0sGZU%Pne*?{g%F0AfY_hwhsW|n$a>sp&nae4uLwy~~z?eq-+ST>cJ?Kca zNnaZJ+=jHmcQ}?-O>GD0KIFo>m3677r8`4a*XB~&_h!@0&Fp+t*E<|1_)eMw=)UAS zFJ%LLos(JfFMDWh`pjvC!Y@#Dy~AN5 zX7ePn0eV+^v-uI3m`lxjk_!5*oHJ3CxkcoLGM4ovPqa+P~*pzkV_$+L%ER4vmAXzT|o=v8^={{iS?a!n>1=({Ur^6a7SA(>V{ z-(PBg-g3@SF9CWGxvsM7&F*QC$+L%6rm+J00b`f)+8vK#_bGQUxu)2)@cYBN5B)$| zV+_rv0ZQTD9I|~bpofs_8oL(0IGsHEQmZ~eK*RDtL4R_@!p8wUlw8+V+0-@f0cyYO zp;ezCpkdgcpd<78j05yAa!s$afqp2p`_QUS5YVujP|(|o9=`z4E^=KLw}F0S4-~HY z1OW}R3m>JtR?EMr}}S3my(pwXS&U{}{m>USSn^$7wR zMkT7$-Df`7AJATM-Dp?WHR+K?_RUQ72?BbKv92ebJQy|txju5uj@i`p(&F7OwdxZD zG)!Vtso$D9^b|n*$#t_$UF&;244-|eRi7ZB=Njv}a-S=|1ayF0x7gIRz9F@H(5g=m z(DRISoj<2>IiQ2&y49wx^K%@)?Uzpg^s(f+yWG02VU#MgZBqEI&NS6NiGaRWm3oI`*^HsL1Nt~}-4nHe zR@+Fb)Vm6;wvGh!{l-#%xOUzXfIgmF_t};D$-3Py^|LXVRzSmoPc^fTe*A6(pih8d zpIxb!TZ~f7rM92$t*9|U!$43$U%BL<=K*~p>;@w?3V)$mCbv_#J@kuCnO2ngAv~a( z0e07p@yDpD51>n6mRM>7y)q$_XAk{KgG?)+Vcw{qpG_S&3eYE!i|sWn*TY}igHpfl zFhRq5QbDiUIV}R{lVMb8SJ!WNWb*7wy*f=>l=^X1*I34h4@YF~aM*0x)%BWmQ?Y}# zUqMQbt+Z7IJWR6GI~+Sg=l28jDKH+jtLwMZ%(I79v_+|5gsPy2Jm1+1=u^q{WZ0&z z*QM(#duT;lK*QoyL3iHQvg>R_Hgx=M)l#MBwRzSl5SVHe`Oq_gMS3sXZ zuIGwv6#l^;D139w1P%LQ1wC?o$y7j(AlHgQ8|V+?GP!DI=2F`~Tptz6w4&5?g=y%H z@ndJTJqgew$@N0M4fNI~nOs5d>gz+b69K(aDZFF+I_h>BphuDGMLUJ7LUg%33V`do6YvxELV-5IJ!dh5wjlo;|dpEufReE~QiQ;I9FFKDpkr>r$H1^`)TA3b%i* zmHm={#)^?D_2&z3I2O=Ra{bq?nOT*3SD_Vc0ll#)4UH*4d(VY{z5w1Uc3sL(7Vm2_ zw0#TzCEY{?^d_Ui-(J~R3Fr&S^?tKWT`R+_>=mwzIvJWBaCC*^&}QG#6IKEGB64kR zq3~SIeiBZkrryjSLmr-;rShS%qhqg$W~WRmH1VPFm6E&ZZSLX5k?TXd2TqwHD(GE( z;MAm9Xaep=vgvh=nxX9fw?l(+cQR zr2)DqXLff$m%*8*+cJDBGU@!FO7A5%7MSm0`z6@X0xelxVy>Z z*+cJRR(NC7Q0g8VcCe}IL^#XU+9pzl6#8E?g0POcqx&Yp*zM0UhY~4=yGy3MQxxDZTi2UZ97uymf7(I!@%&$ttF{>VJw2&>zS0I|2F{a{V2)DRnK%^jw#^#=XgI~@cx<4LaLVL%(Dp67f2B+-py3iMp*zMu{=36{fWDU8?d)Ef zMHZ#r)ltd-Q>oeGSV4bSb;N;yo<{CmyFPqizGSXSy{pj0F_~7Bnp88};b`CWH#Yj4 zPVT*`Y!p5ytu#AmdxZ~9cftaCpSnyRmC^Z!R6cMGILsjT-f=Src^DWRuH_FLbRVb{ zrrH<f;I&_I1~2!%HB-V*-wR&Xk-KBQ4KGiz0Z-!v2XI52@af@W zCX8{KFPoXG=F6tGLIke^!x_BrjjZ7h@0AB$Gs%5`!-khXX~5HY1xpQaIxn?-!gXuU zOU+6IuTB;|P)8;YKW6#?;B`H@J5|{53K{E1uSey+!W_6BjX%k&Wt^t3)6$QH;03Q~ zi^B|q$&XJ3uNb)xZMNZM)xOO2lNB$odMgNCU8^&Axdv8U?Kzh>1aBaBmzWJNQ(MyY z^-6=(h18d2`@(?&MmeD`!*e8fIm5-*DP}Ph}iJ5XkR$G#fYapk1sln zaooO)KjyFTQqPg#1^AZr=yFxgD!u6}@Vb%Qy&7$J9bG2#N8Wn7ADKo~`ZD{QYVBSv zVWfE()*uA0UWp7|?%eV_*Vg?2UN@1uZ;L)O-G5otqq$EI`f5>U_WDx#7rbzuL`!|S z3ln+Uum1$RW|RAf7Vq&iuU6InYqA@`AX{i>SXrt8t{ zH>~$x=DtI#N9B{I>QVW)30{Mf8T#sbhU4y^2i^`|H2&vS_>-GkD?9=0MTOy}|1ia(nFh)eB2FU;Zgx7u9MpB2MQuK4y&5c$v+8 zG<~VH1Hmg;m%*!Ni6h=Vd@^{=C3nECU%f1Bz|;GQiN?M|Z(oZm4RZSXQ5nmn+m~TE zMesU0^SzD3q>r8R{Cx1bmE7S%oAx!y*thGvt{@`^t)D12>Q&=~gHnugn!eOKK=3*) z)2G@!wCUqS-5T(kNA6>5ZFs4vp{mEjB1Sx|zgIg;tQ)N!wR0F)Hmxs@+Ab8lN-8tz z(e0`qS9m!06Z6S^Vz~`3wKAf3sWl?T)AXg5tRyeV-NXw=ILUay>y-QqUOmr^ytaP+ zrQo%I+{1IMd71kv{k^R=fzrHiK$gV&S6-e^(`{4mI=v}_m;0#3N3Z^i7q)LB_i1+h zmzBQM!d99W4xwtviw~_b#%b+Ky*~u6k(uuyj8`vxK7Sc_Rgrr{)LLIS*2j>y-tNtP zf>w`Lr|U=ROP(0R={Zj0rTS#S3&Vz%???3aV^_IWg4gZjKGSYIVa3bLLE|+wW#F&3 zd$Xma#!K~wg4c+W3|_tV^{n6U@j>8q2f4?TS?deO$QkhT_Vq!HAx`hVl-){NUmj)E zk=7Rusgr31ud_=tc%j|DUQ@oUe zxZnlP>6Z1_b4g-R``3R4uZ84}CT#SzB8`B&bzbJVkH*V9=C|dAd}36_?iyYTjXb7Ia?bIi=87i!}?a|59rRg4Z<`{Z~)VPp>|DCwSdU?y1Gryl^z5 zK{tB4H_yMc=kXVZK~B`84D%r?joL*dQ!%LYM zs(MrwkBq1BQU;hDr|B!*G!48`l9t#$;q&cU_Fw&;X*xIZL=W(~pWHaC%(S+io~OkU zGNUvv?+p!xIE@z$s58dd_g`xKDD)MJW$?oI{`c+O`hwR3IEl}0TzFGj?~2##h>?TP zmv>I3F;06PZ>})LY3)mmVFj;+o(x`i9$l3W0wQ-Y&Kb06_nwDRhP?ImrQAJKJ=T;P zbTc@G_0}^mcC^@A30!{4rPiexhHE zloh;|#xr^K_nevYCXc@!CHE6{&tq%zQd?hw*D{Ot)!$P*`j0W-^%%LIwrgK=W%0N@ z+rEd=Lipof_2v1=tgmM*+SiywXx!sGj$T6UTD$gTdKc=vGUt!G&g<)ZDJ%4a6SOm) z$0L&m9#ix-cs)+;=WN=S+1*a#)#8Yo?An)_UkP3>WcK$x$0W{nTy;8l)!+pEh)ugU zjjMEhWzIXK4*36nuSaz{l;E|pK2u)>g)a?0?LF{%0;fnfTJ!QQa7s+ozD!)jdt1uz z|NqWQnP>@KuVucsd-nGnx;^J`@LEdlSIewxF7r2El7pbEdwIOgc}S z;s>uM$^ClDhS$cF%tz_#qe4SmcKX5r&oZsxwWd6iSAWkFC0z!C*Hh$v)2@BBHZQf4 zEO@Q8cpm$E?udQ@!`0lU$z7kc)|Y;+E|)Q_Fa1pWEdQ?UdLSLI3t$6)<>68-i zdWPJaY}yw-CSa&DotNoZ$dZ?`B@nzm%4}bS$JXuWymdQxJxlH_B{uC|wFlMi)tVpo zp*HjGzT8{r+%J#r3SQ5V`(vB;qvg7@1-ZYl8RvMd=8t>AYg&5VBzWQLF)g1*@EW$|v^wy5 zp4?v-+vv+QhiwIYU1x4z|FfvaO||>Aui61#FOa*XDQ9{ez%*xW1zzevFQKm=Dy{Uj zD(`JKc;TxFP31QFGVM{d0?hui=IjezE6M$3lGT0DDNKVg3MZ0BkC=#oiae`NOe;B|Vzz~a2zTf4ME`d+yfY;09=I^W+ZA;Vb-n4$y3i`S}Y2?LU z!)n=2Kwl%KeE|BouaKvW&3FPIVUYQt4{Zfrm&Ij%+`fXN%5vIkUvhKb*`WR5`lnI< zVi`fA+!vkYbrQYTZ5|%`|={)v-s}Dv-#wEP9Qv2i@(b8&KJy9 zAl(Y2yRwnf)j{fo268_yLNCV1_hJ|*VZQg0hlczFp3w#lyW#S7Yz6~Om4Po+az^Cg6iV|&XAm7Gn^7*5j?t>^UC%LwW+S~-4Z7Rq41_Gf0 z=$jkh;8Vkr_$rj|!zjKHB|;x1Xjrm@d>;#4Zv~gFbvTGZXmDF8`L^L(CXE99lX~)f z0$Y<~N;#KLo#e++G<`RV(Do<|xgv&dL_eFN=&-9*0AMCjW(@_k!D z{R%vs%m0eW-?fz7_lnSWDD8KJqU^t+wD`b<_YZ;h zM>YBWh>-8kDwg~U*G|;$-vaM%#Q&X7zJCP5KS|_JN4~Zk^0z4@e@-L$wNTpxa=?|# zn((*By>_^lTg;){7;>nhA*XU_{dr01{c{DmQzAt8_Tpa6G^EtQ_x5hUee8?>7U9so z`Q+cHfrgx!;82Ge+^;6r33VLmh}=8Y(2%iV4((ro`*@DlCOPClE{&0ZU8`_EM&9=#e6JgF=~hL);T0U}5ygcTxx9fxPUtI@f(^B}*NdPpq}x!!_j*_3 zijbcd@9;0Kf&_Wrk8!9kc=iSJLZO#JNESxOyQ!S-9Z^XB!yC!pUxbRlx_^?q4Wd>C z#K=D&j5NjFtcTBbK8H?k zBHs?Qtj|T+&j7+14#bLkBU0oa5y$t`M7mK`6s#yF9~PaF?o8an7oN25X8Om3#dkCP z=S2A)PQvw{0~A*ihj2Kp|GYT)+$j!4fe>|&uSg(VP*45~@Z<~>^?s3){1>LkH^j-3 z~k~ZYdM5WqjMF@BDE3dpRXzpNUZLTO{fVl454p_r?+n$-JWbk6J^)Z>qR) z>yrH(Q47i3zVUo~l*z}1URrr=k_{Lo9ug;sgCiLWe)Q}9caeeVV-xx^~ZoG;og!`FJg zK-u$TiQM<4OXR*blGf*k^B&)ug71`a$HjT#OEa!yLYBxNnRm_37f+(#dPufSNXd8W zEhKYeKOQ}rg6r_0{3Fmg&$V?HlI>p{l{|!kYpb{`*7NKKD<&R}K}!bocF+C&{_PZe zyB3{tvqaxy#k1`*_vcNcV11Hb3%aEHbt}m>OUH&wDEJm6`K1C_IHXL_2K8q2oGtX@ zatf}2cl@(S4CN=md^IGH39# z{G(~$96YQqd2~swE8y?%pgYjxw5}s~Z4LQHRdF0^SadwW|DnafKny>iXkAke3PF5A4Z{VF zV+=7w2v(Gn?=#t^wV_B50|?(o36=vtZ8#J98_xXq4m3Q&%27E9m>{uN?$vy!94i)Mg1iw{rKPmz2u1JbU2rxPspA;s5Xy z;dSyp7`1_Zl4NpJOqQj7N;E=FFQ75pSJ3-U`_DOmUPa!xox+!;lV=ZITO(-;Xv{lw zXdFGzeB{s90s0N{J`^^WS{^;%dp07IGqgX(b@*JZF>Y9bV1lMJacldoc*b(qkoQr$=BV|5Oey;|@p7FkiqHh+e+v50vg3GL_$~52X4f3G zPI~vCUn@32W2&p5cPv;p0nqj2UDBdCrn{cR9z6f5DT`8LwydD@zggTL&~KCX@nUoR zr=eFlB=hVQuG)^M>sn*i^WW`n90%yNloiQ`N?kp zy^g$3IBcNbsNVfjD~$Rg3CspZS{t!7zS49)8-s?_d9 z;;fJN$oo{%26}D2OrCwI*QFm!QEDveDCptcPw=4Bn3X=Auz}V_GP~Ep*PBYs!y^Sf z^r^8}h0Fafd6(7NKx+f5-Gf%NxzxNQrJ#RVSo9H~H<0%~aU19j;oVpG#s-;IC>$$Z z3i|XzM%Ds)BYA79Y@k1g%H-MC^(JJl{RA`?)D-mJi@tdP(C?G?nV1c9!yYuV5920i ztn4Z1!&iy(H9sKlv*k9>A0=e+>`Sd^i&A58P(kl?$k9ij)SJlrT+{}7Yr2(Y56ufN z+D|~Qtdh_e!@cwKPmck5GkKSnnxWGpmrv?ta)#E%aN4wk+Um z=}`4$3UnICyQ0j7jy5ymvwZ_ymn+WEFlOWaCy z^vR&4!;88~J4*}7`CY$-yf0ww(sG!o%`Z85>uBe@GFd#(J4b2RKhbry*sa6OIJ_2Rd8H`yyujmfHETm7B7*u92n#hZI#=B~^t_ zgU-j~#g>UR9V5rqc(SwwnKYeujg__EmRLW~*+$-1T6F5^%4$w`%&k*d+Dek7S)RmRG&>3+Q}G-b8~n9qgF2Djj{%F-_-IGSJz7M7tW$*-qZqn{4Q` zZ)G~#YN@2d`#Y-b?Eh#-o_Bmk-Z#jGj2t?J?9r*5c-0=Z+dL#Xba(-ymjbwY~;N7C$xi& zGeu`w)%Y2p^CfxL*bFfA6?{(KI&>TjoEQI?4)4_|I$!79%g+E38I_MoD3$~n{i3p$PDU7KT5S=ycnXV5xy@*O%GO*`0;RCLBK+Ia)$d`;f< zc1`)PgiPK#bh^mwG&Rdl}X^!?AE^9_054cll(+oj?>T8B=zq~s$iD_LxyGkS6V zNucvBd6RZcxkpqcZyh??76Ruf=wPc?X{TuWg9AZl2X=sM#>$4lWb4rBT`h|z=)513 zbh>tokLv7y8Fc=KP3O3|vgAS(cBSQy=~yjJ*slCz4_l@c&}uLN=pLind;#e1u&3Q( zY?FpAOf%0O`iS(qO+Yt94W+(o`4=w$`g?4d$81Vnlz!l{haM0!m3m950s8ZEPCg#c z*ahEGZUa5ALMG21dJxI9qSV;g*P9*`{?JoD)dKnlZ1_iQpa-X9^6a69mdmsP8uM2L zed>45oB`+`VNYOJYFDXDo;|cXA=3)zl(E!p?hU|XF!v{zE7+C#tkM?RH(ysg*K0L+|l4UEk5kq$^d>`6@2ypgI1%xby9xvy;4E+CBdxQcQ(^*;kCV2h3>&bYq3sK%ZSsU6xg} zqi)xfz|yR0$HbF=2Zvu_>6I}z?{GI7G#j6A9{d9b&7RSxRv(zxsB|5s<%FHM7E*D- zPTZ#!W&|%-e6_T*1h2a;9MK-Un#sE(Vt!Pm{ik7Yo91Qank6qa=@-0UZDzsi=xH%@ zPPxC4_xq#`FEz?-9bRhoFL+_{ZpEv)x-)qFPTrqNY%ms$@Hy#BCkU+xlambrhD_jkMYr3S#Q!%Hm;2ws0%wy&j& zM#sVHFY^9n*S^$9xOI4`6$0kPmW>wetIg-){H(vp*T$}WsUdNz@G>kF2wu4jR=fhE zzdQ!|`iFe&?b??b8@CQGwPqlA5oPe|`)>2xs%`CZa`K>0Dzs_$=QL_PqoH4g`JN$8 z^j`!cK4aX_8X405N0~IgAfH-m7rZ*6-`9-6Reyg)>cbx!W`b86^6lGb!|Q^2iJT^BNa7#xXB8FgC`C{@&0h3tkS*7|PgB_}UcSHtM7K;MJCV`&U@=f&sQ6Z~Z-_ zHd|Q_{2qcCc+4QD`78M^&Ns$s?;&N-A$WE2Wa!J+KHllsY5Rd!JMtamwB`j(mJeJK+ej??rtp-$!}c;RtxS&#irZM=Hf3CDm}d-5I9Y{To45}6P3 z*7c<}vC_PJ$|OVaQdT2rUNCZ(`3YWKGV2lNN_-Nz>J;$GC0}Q|dR*Tu^HIFa9I_iv zD8nqlt4HSZh;x^s8`iA>uRQW~YqHiCjPWyhDZ`zA)0a%g|0{hxNitsW>J`hVN9Tn2 zt0(Ln23~uSuV>l+Ctk{$Oz`TP*}lN5+uDCtffr2h3T)aJ+#F>2R6QzdGo>$c8@KJh zV8|@<6TA+u$R^Bm+m+NOP3_V;_jYeU$iuj4cI)w$Bsb>4eZ!Rr9>9cRmYa*Ron1VtGlhkOD%>AeVx{5#p{|_;m6?BiF~J%H7}p3AJ@lUd!R3$GT9Kk zMkX?O9hs~d+AtEl4kq6SyXR5a)hKHWj*?Qg+D)h@eJ@fgnXm3 z8AlHynYV2BaKlO%<81pcI3r0pp|3HS`tpq_eYf&JY>wm|O1?2E>v}Zf>EnB~=&5)q zJdV@)d-K>wdk?8Op5S#}GDBZD$MNFO@h-sa8m}wrP5Q#I zv@Pqg;EkNgNB)g*Ox|JSyP(*Hmm0^V+ZSBOWZp_&3NNiMzge#uFSQ0L^fe)xldH{Z z4e^`P9DeB&C-lsiB!!b_ZE!bW=i z(CFZ&mTuNeuP+MFQm$`4Pd7E!6Hd=^{faHprYzE;lV=Y{BW|Cj%>4S6S)>hfTzRQX z%dRlo39?t6DGn0sQz?H!edUE2>VuB{MSbst=bi)gbs^uRG8^@oRi&xVtWr&VrkQf* zJy)N3)Mc+er7BUCVOGmk%}Om&eT7h>_7f@<>QmcbLVY+Wre*8p#&-@_ox%$kD6!z*)tIyn5*{e^fN~!Ofh*FDeeQN(twLY~m$E`0o#wpK!aIG!F zGdlsUbOTGYKV0dvAI>g2v+s+yL2KQ~`xP7n-zWjt1pR!6fVYYQ-ctPxhk&n{0zUX> z!(Kdx0)avb_#3IqX0FdbumX;HWu&>(1xjMt*$?m_!@ZGlTv6QxFK{OETvMo@?+}QT zQy_x31022}IW~&Rsh{r7I>X+%HmAu!QFfy^;?Yi6z#1{qO^xDm>L)A&u7Tt=kc1&I?o~h&6*biDI)O0F zLA~dq=C&vJ-gFNIrZto6u3`?&NWje!`hLSDy}(Ts zxIFqP1A*Di6qsE{y=Mx%n@gy7L#=+wK%f%kt1PD8vqUbpR8#NkJ^CpFfw>6^%#Bg+ z8*4ewc?7A5e#$^#elcR2sQ2uAzPBI(Dfm0UatWc^Vz|Q8drq7~Rj8HO@WNjwByVq` z!0olvyHe=o&U{G0|M4ABqJ?1!EW{Zdx0G|byUHMi(+R{W1A#?V6j)RW-8AsMd&(gN zXXdY}IdpF|F8GRn>)_CRDO_>#e^<$&2cV?~i2Oh1aAt_`NmL({#ET*4T5cp4$0{=nz21gkE znHpSW`dI~mXL0XY+#6QQ_m;&_Cd`Ksw9D>Vo;GG%@yeV?o5XOBc1>P3r z+gOYHaWE)k$q#UE1ODF>=Fp}D1vZw0Zxx3coVbtw-zE-yScMA+d5s+U7-hf*lC?7q z0^7iBTZw+gK_G>DI2}bh;~?;9m;#?7MM|XGj@-8w>t`GUK1)*IGt}6mYR>Zu2L(Py z%yywOIPV9(bmrjKCZ`9s{%Xb08(!ePZb|7czSj%$?mCfz^8whPi(>J=!9p@`ap3)Y z3eNLzA+=1&HCkJaFz1;&?$z_Iq2R5htQ=j^{jj#6VwP;5J9^nM6r2mmjkQwp3oFTX zcSdJyqTnqhP`1p|S761n?dIR68OTkZ3qC4}YeZO-so|Q47g7uhw+g3dwv5+=Aw)l|5c( zA(`_=`P5+){Mbo>n@e;_xAl1j&lFtnv^dWIuV9wMXvgL}gOg7=c)K{y055V~QhV%! zw}H|6N|{=848i$L+&M_OL100lBf^C4L&k}YClqpU=cC7|^AXVLNV#iK&lJ3-i~=u5 zIgV>wyf}lOL%TQ1R-nCvgZ#iwbLeu~%QrX`xHA$QhtjFD3-F@XJo>P!L* zqGX&HVg)Zs@Gwh@Lx!e<0TKnLKY~GA5Ax#^02s)z6#vwj1Q^R{QG$+UnW$%{3F>DO z=&&+wXq0;(Uphk`TAB|ASY0r3HlUs4pNV&`C3K*0_n}9|Wm*A^aiTJmTVHV>oQ3jw zlK=XA8|a9rD9!?vkY%aIMorMBg8^>q-1A{T_ac9c%+S);1jAREoS}ua8V0e(xM2xa zu2!cUFDOESEGt13MQGy6MuR3MhG!MmynIZU>y(XeDkr4kdwE19w z<41|rrvmcNa+smhnz*1wCT|^0sGL>mm6@XlQ3hbH=v|3|8AkibUou7yYK0CZpS-(=Suwcc*`pf66EpfS)?Pr}R{eG`E0NB-F@nq#{DC#0X@ z>`SehvMBZQ#-?}By&odyyh1=Xo9jOfeMzZgo;|c`JEE>l2LoKWW6K$UKAik>8f~C2 zt=@fTr7;1$+-XqwXAQ-70s08?-`rpWJ<+lI&`M(hx~|Xwz4OS&VVRoOpZt~eHqfe- zX0LFiF#&Bl7+}fT$43CVi2S$I*+8pSnmx4An1IF%TDI^V4%+!cKA;DXe{PKp^rZi@ zuNMacSazttF1{dkE1I{fkt z5kL-|r@ z0_Z{HUr=U-PQOwrOfORH<*E&~c25)9;EmG?O&pW%;oz}-WW$X-xEf4;tW%gqIB7c5 zJw{FJIUQ9zLFb1$Suvoq^_#1UKxYW~Z!fl?GpnR^>1e}UsU5S&c74Mkmx0bu^50ov zL+7T7)}^D0$J#M_Z1=kOyvspn82RrC+t8Wa+`4qM$xd234JkuqjUN3F@3Febf49em zPNk{a+Vi%f&C=3zo=3-kX)4=L4y>Jh8JeK z8FW14zpv0nJM)WMmyR|smUPS>+s7SuK6b$JyySntuI=0wYh60pgg#Bjc_-8>jdLF%USvhKUqhS{|URc^FS-Vvs6DOw6iv8XgeKm;&U|e!sLIl z#dJCSMqgapy4q3w7}GI(Y{$0;&IO&L$-k`DrYXlAtxHGsV}cI0TGUG-QFYzBpmPlQ zao)Q1c;}(g)}^ERF+m5rJBm(i+h&avcwHeo~O;riC4qxvyH=lz(ZgIWGU&xR(@ zIgb1*qGmej`R-#?MmpK8@+?Wov;x}X1pL*eZ*B+l@#KG@#Z#1quBnsBvmcT_VTNvq z8cKcjag%ZZeFFLGnruq_WbN)lKh+@9ic)Vey2Fl|^*!{NcOv;$HrPNfOUUHem-;_R znN~n=4I4^5&RP8ypi9XAa@+>`nHrfqd+2A)&?YC~)0W?gyLl&(|J5=Z=;iUlT98Q5TM5CF5bQ{2ar_2W&G&4W!dK%(1vu^Bt8spfU z&iG^g!fXw@{W6|wgSSds@`8KO$e)AzgV(9#f2-PtmwJK~FV)BxPnery*H_|k9P?r; z4P%_fYgJ6fF)#jrMN3}(*Bd(@dG!h4bsG8Cwdj@7`qH*qI4{NPytvF;@lxx|ir1TD zl+$>rl^&rlYqylaL;F1kUZ<1)-4+jTn%CtCL*9Bls=W@y%d8vwdQ@#d@S0ngp)a`0 zJTrJ>K6sUq|G&*P^{8!EF*l_zwfwJmnRRH-OYQv#UNGQkS&wjg8t1t34e&aH{2x^O zf8wP!h6FEnDuWl?EK0xZ1j2bE$PXiw7Q+$EodFgVnf0h%DN0}FXF+TCrZ%8IkLtN) zUTmJwQeQC7|D)&&CwPq{|5m3BFH@cA?Mv+{NnVmW|Icyu^{Ac&!RwRK3|{!$=~tDX zwF9qFFzqR~;iZ-wfv5A*woN66tjxM$JtWH@cx_Ku@p`ZJ?03NHOqeRAvf!m{@$Mck zwJaxi!T6_TJwjilRDd%t@+e6T zGV)^6x0dw?_uHLqUwsI?&Zj`G-FthYL*}D+T>>R*KiPl5nzzOnXa9cu7>dw-q8?#5 zoWZM2;Uec)?!TfiEH1No9@QSG;-z+j6)&|f&T-m!LUG_YZM>??K14lQyFC?;`)V)n zx_|;5?4C!f@x7YADqfl6d#M-xU-8;jDdPpNF`4ZPZcmp#)gRTJcOeBFB{upp;pyWE zHO*7J6duQE`ZABLHGQf1mEdLV_O!n5XzuSXqQF5(8(zCQE;Q><<7Iw6G+rrF`|@3w z*}nXLljsk}|ZFs4974)F%OU)gWz7(F)mszhGua%9adYq80+tagc&$}O# z$5Wtly_vG~oX{=fWb+YzJ1~8fuuQLS9rvAU%1m+j9H&{grPCI3T#K|Ri?qlchSIpB z{TM@dPPE9cFAy_u!yNZ1{?&f4-qYNk0^7??aiuJ$*6T!bE6>*LDbeAtDAac`1$vW> z`pm`E)Yn2)LVczuTyuMBQC#6Qw#(`>&w}jLr&J}XGR$iEENN0zHOHy-MWIrmKDF>C z)R(o}(}An6!*i84fdc(o48YT^Z&%f4evpOV&K{}HJYlp~pHh`l-xrQd^({-7;)MFt z3L>j7bWSv9AI(drOIcX^Bki{{XmeDHahbp33g4cdZ%4FS&NpiC#{tb0Y@6SX{LeR1 zXf*!d4dDD|;&)$l&@$+{j6HoQbgl<C{wQL>)zT?uc3k8nN3dGhDX_#3UBZN)5kVWaTc z>9e$uL*wxhzpj#oXg0Pj)gT8*{_f$>><03l3zO&dA_PNr<@vw{@XGT+7|y3XAB4eu+Vepe>Zd&)gn@tB z^FcTUq&**mLjgP=G%pNcY@PPP5a!tM!We)-1ejIj)4-ciqjjR}w}-*8ga+JD%lGam zq~Ps2G@!PMLwAO0z^k~YeN=8?6fwB>n$Y}R9vbj^ga#ypWHsVfrEukQy6PkiSY1g2 z-Vk{A)YE`94jS-g3E#W7kp^t8qXChpFb z=dwCN1FkBkKI>{Z^d>@6Bh>Sc8V;?2`XNVz@XVq(+V^+)Gl~5DUG0mz;`53> z6ysxzBHi1N`q`;}Rabn@ac2`g{wUD-GmyX4;iHivw7yh)Iam8uE`N5Czm;qF)L`3~ z{_SD@pdf#H*zgI%p7n;07xH&zdxzu9^S>#4-Vokn$BGhdL^@{$^*%w|d*1`8B=tT? z-1`6?Wyd1jDdOHHq&WfiPOsuzHpd}_dn3fXhB`>$9uIyf_#sOrsGH`dumwHXh$MA6 zDZ=-*Iv|zMz3te2g1zlD|2lTNVE;PJqmJD**rQJKp<_1>_My|f=GZ-iz2-DOId&`Q zJqLLT&p38RVb3_t7mnRn*cVQ@F0lWga&BO+K<(SZ{P|D*_OSM~;oz51;;#*B-xn62 z8{HdU4IUfjGBoDkXa@VTNyjY)j8)I-`=gT-f2@zr4MJHg^}s-2qkF9Qd^MV^P@ zO`<(3J78^y?>wsyQSujXyS!h_2;bq}>9yp!k~s8zGkJc5ALnFID?j9rX9`~peD6p6 zRYByrHitt$Av8Tgo*51fp^bTFmXPOqaqky|ZYU;?_Dt_Y=%y%nX6LiyuL#{-NX5TZ zbEp}ix%eLS#3l~?7NKGD>uJcdr5ySlZ=V$nG-P>d@6b$k{e4|@(}#>K@DOA-XV=t)DWkl&5eBTQ1IO1p`I_~ zb0{DAeT;K!R|&lw7N-HhQtJ7PgYR{&qyg?Y6&zO1p)OGxFf4}(dWk%{mQaDSmJ0gU z^Sy3Z9qtd`!{Y?c?j9-_gqTxA8G1OWU^sML9A!x-q()RxK|n}4o2bBpn4rj|XEPOq z>ZqV=4omh*QNi&gR8UaKq2BdC&ZmL_qI?ClR8Uk-1t-?v7sZJv1HpT~?yUX~Xr<4EP{UEY{<+L3?OA3Nb07$7w_N(DkJ}eAnZ&0emPH#}iG*KgpS=pxUZo?-w_HJ? zCo6e6pr~kIt$6Rt0%rzNukHVbB1gygAS>% zkZjYq-;-BCl6ZQhqYwI{%0e>d$e{-<-! zX;Y}s({&WQQO0Q#snD_to=nNKzoT3f`cFAesq{D-&+2RLz3Ea4Re9LET9>r(tnM}V zAk@Td5%#XuC2c&bT@z#PQfNUndspj{HlEcRXAXIXLh~EgyIM+q5s_Lmc!0ON^N!M+ zA(_wK)skmHgN0<S~hrx2!?m?TO`YtQO)SD&$iLbq11ceRu(EVsxrXJcuti$ZhJ z4(3R`Ym>%MRWmf#q^H(Ac|*5D?zVhAt_y67c-0=yO1DtGd{*`^I_GL=^SvgXi0P6& zXE$3&?swn2cRxs>cY*U@QkQf#R9i@P{Ot3En<0s(e6g(cE{AG+8D{hjZ+>&qSPH#U z$P-3A&(3d_TI9L!DY3buDTGN1CYrirw^P#X+EAi>X#3FHD6|gRye}bnzF%jN=ibBW z-G@?WZJZ~zQgTC$g(Q^}J$(^{-ma(MJyP$^wN@qC>!sMG=ToRY$rEXr=UY~q&r7`j z!*>*V3;L{PLGBB?9b%==+;58(j)Elgd6!3*?EIBgp6&a*JTpO|H6;{W7}X_v4llDP zQM=E#H2p=PH}PcN8P+AcOewUGY&(9xW6=L&a*728U9ww|70))uGH)2?Zka>1H z+)7J1KW@6>cnYn8=Bx5$o?@~P!m$>?hZ1_6whRzT6DbbCEel-=zE>j`Hw;hy?|EyRHH80^%E;C<-IlIm=ht1x_na9CF-c>!deUT z+}mdS52J?X3$Z*Sc{-nOwvcT9dfwG%QD{XeFXTv`@8w%aw%azeFP`<~=oM-t&z?^w zEhO7Mzq4m|3O$Fm`FNV=N~=0*bKcY^@YZ-1`dlJ;_QV8A?_~{I%BdQ+ZwZB-NuYhE zBu}xh6TgZFVouMV{@~?RY5&Nz}&LDqXVQ;v5Ufc4OL?Poofy z3ktqnEA!lB#j|Zm(N#cSSVLH@(k0!mTS>M#cj&B{6uJ{U-%3kPNca1O66KUEUVb_x zOQ6rRWV;IPEACBE@ZDmGb4)46-B(3e$dW9tYT&s0(T+q??mt{&;WYF>G2&9XT-VwP zS?(^SYP@;f5=R#bJygxhQBpFIZU+X*yq$|W_M%X{iGmGvx@4CD>1V(onfup>7ce@D zLzkQ5Qqo^-f!_XxijOchjDzQkC%JODfA$o)eoQpR3XmZI3=xh1A5y( zmjwDlGDgAoW!vmBHfE7$o9%)5`%q{xTJ}b#%=4^#3(1@lukKt+p$Aa*|E6?FZP_mL zaD;+e3;6BAu7gt`2FLdAE2+G;6W)H zXn*7Gms-&l&{(ul(5vU(ibj}MPQioi>Uv;g_o0I_sc7NunejAq$N0=qFZBZSl@!d6 z+m!mKGMU~^;lrR8vTEU2v65-I)V#nZOWiSkPv_}1fSydj&Q&(h{UMTBfOYJR}X&IUqB9+4D#fKdO=&2O!Y1gHc zDaoi2ZUvE1+6U*a=eJMZQ-tTcf`=VsM^wo zu2(2_`j5Fo!J&eJeJjlzq;CaQhz%Sx8z-zG8{#xy6s#5-oX~;B_qpk8s-XQsqP58ZYeb7&(jrOZlSbc;>*oj6cPzU0lX9FWwSr zsW0%FzxaR-;5Chc17cb5`o3A_&3GCwZBWAT|H=!yQZlXJwOkt&%{G40Z+PY2-T!+6 zcul8ZadQ^DevnxU4jM0QSoMGN`XeqA3treJv(VQYi(c*vUNa~-G?E3cA7$1CUfRI$ z|K{~)LM9fxo-eWDb#CXc2ZPsj6m-{S!RsfPwSkv5wEe$%{gsl51+OKR?SB1*m%(Z$ zZzcu(jx2cn?38({_N5KZIsV_<*FWjBf>%6YrLVIlR(%Iv*HbW5mIbe0(s?Uho8zD) ze*ek~`>48@7##3+szv+yb=(K5z$-?wYas0pYY7>=dg}$({Yr*Rj zM-_Ia^KPKv@!>4=^{Z3nt$1luJdXc&UTtGCE%V|HuMA!Vg=bvKn^SqSC|DA=;icY| zz|;GCHCmFqBo_bw@4VFOlX>wLp#`reJJs9=UN=&3c#DB%`aPsxrHYptKxWTNjhThM zupybjtG{Re2~d2jj0r`Bf?TY+4EAPTET0B1+OuQKPTV!C3wxI;0QZ? zwKgv`0%Klmw2+~%F^M5#KOPBQb0|1EoA>r_k=@r<`;<(}yh63rIiwj-cG&~7OT1o@ z(-ptpcp6HB{TE?i$vBtjrjxuc%chftoz_e0bwf(tpH+sGVrTX;(oG^wcntnUCTn73+X zYrHn6%+`2KPnoUpTA(j&w#I9S%506-9(`%Ewa_ByI&HQVy1U+Bw#I9u%506-{rqXO zHD2*kW^26G=kF=a)_9dqnXT~}l`>o7wJl|~#%p5AY>n5_l-U}u!6~yfUb|CfYrN*C z%+`3VP?@dq`j;|WlXohV z87J>>C^Jsp8Bu1OyrZJbIC&>VnQ`(CjxyuqogZb!$vZ~MjFWeo*o;%{WU)c3X6(v) zU2N>CcC^^MRWtPEy)k9z%X@0d&{yom-HuWTLtoy*Q-;1`@9$3B6NbLLXQ&K)d9P6! z`tly7GW6xWO=alId!owFm-kYYp)c>jDnno1yH$q1yyvS7eR;1~8T#@bGaLHqMmtI1 zZLi`kybTOVQ{0zHR^G~;6{s^QLD$<7{hF@>^Do3 zoavF07d49)CpM;CiCVekl5r3@GVX&jc#iDwgctL1!Hx%n} z!eB>_lf1>tLW`Rf=l`)BFJ2j1+>I4_oG`A@;%*YSkQ1*DEpE0b3F5>{M2nl_7_jleM+$>z^2#yfvm`inby8O+;fa8RIWK>+Furnc{p?ffE;%oM zvoJaA>S{ae8-|yhPv&1{_Nd9`4+-L&Tz<)U`J06w+|_E7I44~?cHS%$?ThS7qwP+A z(Y|D6>wV{ilW0@p?N>|V<&$V%rP#05IpPY|G)H|=xJou1zL~C)D1-8?fWwO z)za8JDB6s?dX3Lwi8eF0UgIUCXr*EM)%xA?LQ=H{n~F zdimy`Q@azM7U$1A7Tft#_|o6>|Fw2BEg#(5DbAmA>T_P9`6qbC+K0utsNj&s8U7`7>W6AW<^-lYRzqiXb|2#i%U2}2%kW%lwLi3M4d+zt* zoR?Maynao>W$KK1w*6c6&bj>Svj1u>-~6+9N9sz+Ij8ti&V~PLp!vVwdz9nrpQea& z_W$0`%QycFKJTy=7_Bj^5qA1SSOs`jfrdz=6L9sXa_Ws_h{ zXtg+3@wa9c*v*{v&MP!>wlwG6EzVza>z!9<QQU*>|v=hM@dEx1B z#38YM?^f#x(E0q0I2s{wp-Nw4B-&3jTR&GJ@#iq92@=c2*A$6MMY|e_zlhchiNA>! zkHm@^j%bd=6%o=kNc=;z7D!wzT1zBWiq;B=f9BKI8i^Y~YJi-GIcCwWRh)JSEzVNIWB23KGwXb`uiM$J3XJ#0v$aG&miix#5fw%>!ox(KI+? zOX$<#gqP%nvyo^W;A|41mJVmrT9OaW_+pX)=Qa5xKb$Qiq>ga54wE{;X?%`o^k<;C!Ky+QV@6kazqMICJW#Jql+}p~v8SMe=op z^Hrh8;mnnM*>LvBBle)t>RPwz5=ZA8XFT(kem(d<@4wve4;2e=l z?Ik!zR+DM&{=eR;re>fMGlLo-KD24PEoIh2N2Ew^Glk_&6 z<&~s&;9M&C-i32n4YhnY<-F$@1m|xu?_fA9@)>;}&aGb35IDD$k%q##BTV`L&Ydz_ z0i3&XseK6N?po3?IQNM55uAHP8xH6GLPkG^^MIE$0?vb#q>*qQ2B{FvBU0%oIFCwn zG@P|^L}TDQE?LIHc|vOb1kS&+ICdPIr%Fhl!g(g1R0L<83q|vi=0VYA#1Bw9q)?j=CB2wb2E|AqEr8;eEDND@ z65o$dOz|y(k|DmIpajMDGnAXbv5TSHBEE7cVeu`2(ph{&a|RzitHnB@;B&z6%`L3!RJt%lOQlC%cOi;@bzMppYZ>Lm4K%8Ymx$?*J6}j?Hlp%7_yB4nZjt-(e{7-In7Blrbu!N1==@ zA{~P=E}m2i<8betvzN?^AimwTj zwc=|EWu5r0hO$1NBbq_kD86_oo5a@~%4YFh14XW1qFO-NTE`JBp==jlD=0g~*BVN- zIiSIfn`^DD|$^r2uLOEE&5l$$F#iu|yB0d$$G4Ulq zIgv?UGL%zUr1ntiyrdK;a;}TI3Cj6mYN=49hbJlx%0=T6cid0cxWnQaaSeQk4&ClYD9h)TZSmKh$RNq>fPI^GThcUXwsFp|&U_1)#P9 zDFbTjd{Pia}6g%~0Exl5T-|oy>bH)WlqBVW`d;QfH{DXtzPVzLwhUP+eK1 zJD?_4lJ11sUTV1u>W#(J?uL4kO3H+qD%w3z-6_=Wh3b*a_d(UY)b5AsEhIevwL>lG zL8v~H)CHj`BYS${#OHiK>ttZr{B+JWCpRQrF7u1MJ>J3%S z{8713yBAaI1GPsbsV~%*vPrK)?J1f2L474m?G31MzK?nnYH!it=0!4j@q($+J4nxvUlI0^LEfyM%q+eyk$4L5JGLJw~ zh2$HFq?HmaM3Q_4iyDQb${gk!jimKiq%la^P)r(&q|Nc9Pmr`Fk2DTR+hn#+kyKqo z&1%-zBid(3+9xB%BWZsnqZ5!+e;%5Mq(fe6laO?{m^2wlNApQjkaVn;RE(tK5z^;K z`djAx0!gQ8sC|i~GZmz%NIIKK`U*+sQb=DT>3kjO8zlWJ6_mi`$fEWwT+vmeX>i4w zr0?K@jGYeGRoT?OhwEz5X22D%Qkw}^^Ab`iT&-m6EVx=1Q=11@FrV}TTsI5NhwIib zwFPk9mPz^%t~+JyPjF?*9E;()PqZa)Jt*2TxE>PiSGXP(?RU5y_cBWbTu<2Gh*}QU zlR2ana6MH)S_#)PGU5-ox)o4c1y=;5)o?wVLs|pZa}}gYxVnc)YvFpKjPxg5Ipw5v zaP>?ft%vL7V$ue%9P5U$}7(jmA$t|c9YYousL;3}-9b`-AB zxg@Lo;}gku9IkOi)K0?nSpw-4T$4mQ4Hv&wbVQwjOYY`G)xq_7HGOB{`ZAmJ4_s44 zI|tX-qMe89n@UD6!1Zkw>0h{}$&p`#OTL%4zJGLmUu;LCqu`pUlA__V9&WR>7`SHF zkQ%@>m(@qd!ZlB{hH%Xnii2xG3Vnd)_g%$!H>6CnU21*BKe1!gaQq(d*$lUq(uT>tD(2LUME= zwPYkWkP$Z^IaajxNRCq(y%EVMC#4{{aTVz%BsVD~r6T$22q_K8&1y+*BsVW2d63*9 zg`^?5rBt9JxwT2ni{v(vrGvHFj!-(1uM0EkLvkWW9g*y+Aaz3W4N|>{oap(3T(tSwI%p={8G}J&NSVrK-n}{Dh3?isUED7=0YcPpc$r-JNGDNlzd-QbBqW z$lpnkQWwZkK9AIL8POf7ORMR70jcsYSoDiX z{UeWB52UV=Xbw`>NTn|!byG2;J(0T8B)yE(>RM7Sr0$dYUPWq6Cbiy3J!pd?Iv1&j z%1Eyv^+-0U4^ofH*uF@um3d!B>WKtK`yus|m-Gfw>vBnNBK2Z5DGzB;GNM1y8e~%& zfV75%q_>dPC_);Dw8qt>w~^LDs(J@$t-{paMOvFOQa;kImFfo}?K+w5J*4@H8GRpV zeyL>`()NX^eT20AGIlu94p&qA7->g~NF$I|n?)LlwBt3TLZqF{CyhedsRYt!q@6A$ zjX_#n4rwgXcr(%w{Rz^}NxpG#H?@O~=uhFkTC^g#<7JNVa9>l$=mfay|DTx%ck5hg zli*HJNt5BewwN>pZutfy+FI=@(M#=fxSh46FW^>7NngU9Bw41yog7c?E4Xi{Bz+C{ zjS~F^?whixS!-#f){?%3+g(bU2Dc{B@8I^vQ=1NVhf31-aQg~LGvKa&pJ&3|v6fmX z+-3o37Tg)xq}gzXRMH%{<;msfxp3bq@5?;6J7+Tb1KhWJN%P^pqncC(_gy8V1#o9d zzJ+k#t5W+B?)zlkMQ}e*M(roKAF{y_{WIJTSCAIN{b(Mk9PX|W(h|6{<4H^5exi!B z4DP3-`d{FFCX3pyaR0|7{RX#OQ%6_8EmzIa%i(@GfzcIkzmiW{33o5aw+ilDsbDqS zePy;aaKBzkpS51u8)4E~xbtM*Kj9uAzIAZFRmA9exZkcLZGijTe9}g^2Z6K+?)NfD z){1BE%WRwB9vY#x1@3|}(pI>KnWSxSe|91$R*bX%F1vMcWJaM5%rs+>^5z-4A!M%x10D_C*%818{#Sl^(R#qf@CJ zg8Q2i(qU@_ImvPa?rBxjj>A1mMx20qPA;{RaLdWSuvxh;a*rvIs^Bj zLQrYYRD z5z^Igp9qth!F{HP6c6`Vz6UYQ;XY?ej+krUKA%Tw0r$VGIi@At7t5%%f+s4M)Eb^> zRu$6*o(7^Nz|%0E(QDy}y7r+FSV zs|ixhLowIG(>j4#5jsuZ+C| zo`))_-38C1#iUGl9+yh*h3CmaYWKtQOdjb$cp_OOtNm0ycgH*o&x>+IkHV8v$7ol0 zUKYxR=hbRzPr~zB1?g#cUYB{h!SiMrwFo=|%1O_`^S03Q@Vrw)tvfvVGVcrU47Mdl z%!}~6FZJcX^Fa}{m*Dx(OX>;Fuqx8a@C?r(y#mh&kb1#0QbxQA&nS~xZ+J$_Y`O4^ zEui)qJmV5bec<`DjMNvN&oW7`!!tqh^@C@kgh#HMVy43LkC(o$;5k=H`Wl`KLf^o1 zQKBW#qT(6-7Fu*AX&ST!g{1GGH5A`;Xb|7`&>D$v2DGchHxpV@iIzfZCNv9LyhLY1 zyC#?U=0IyvOPULEDG z6*Br0wEDBf&(PY}Qd7xAt&0Eaquh2TkZ~r%F zzHDm0L-S{mDxh^NB`t?$%3s6^Xc@NTh*=3OD6{U(6VHXbpkF5wj6m*Fw@JXxUk$Drj8CwnQg-S+uLF*AF?S__9 zLHY|?Px0-6_KH-n7n)qj#O#CCTgL8(_F5iC)IjT7Kso^J4VmpAwEm!W2-*ON9)|X| zEjeP2KzpZ*bQD^?%ytagpjv9R(B6|Q$Ds`gQ#%1|XgTR5w1O5bI?A?B%Oygu8wp8T9F*vztF~;)Gk7s zP+?O82ee6rq$p@p;z`laipxnc(7p(h8bF(BgQGz#w69n}gND$)$)*+ut)z+sXw!;F zji60WAT@^eeKqMSXfq|+1lp_=YE7ZdX7vrOhBjBF)(qN$d{R8LAH~-k+9H|b8fZU9 z7;OPgRYp^w?UJf)g7#M~wNz+(ZE!S5gSJoRa6_w+NHw`)eCg0mlvDFT`@4u_KyN6s`Jp3=T1V)OWsXkJn@ARGHQlC?B>=ryDSa8xo9B>% z&|8E_A?U4C(#_CY*O6|4o={G@6?)rDQW$!>cv5HRiPfarpeqs5?a)=x?tt#fqjo3s z8)UY-ptqOk-Oy8nGNGrI({~Sax!cmFBRvoOiE2`J=ucIWUV#3L`DoNi$-xelKgT5n$^d0n_#iZ%bcO{U%hrYXtGz0pc zEYeKqduvG6D%ATUq*>4p${e$yA2zAYfqq1eV=nY#l5ZaL+EPY;fPNyLG#~oOTv8eI zQy?vXep>P^gnmY5`w{xtd`1^R|EHSt6ZG?8($CN@l#>=izo?SR;dPXemcSb=6)c4} zCXd=Ocw@b!U*K(6Nct7txLVS0@HUbPeuuZQR8RqLlN?5u!+W(2js`2>Z5AP|gg3sN z^as4xsH9c!wx}kphPRa*7T&fd=}&mCD6zK+@^c#}b@g7=09X*0a_XTmM;riiu`>0cEwx((?iVbXS_Pm|epAbn;wwVg^d+^V{YbBn5j99(A;)n5>3^g! zdJyTW#CHhkYf7mdM*7+U(h;Pu%OxE}`uZBuF{E$KC)FZ-YbNP9(zjKUP9S}U_)a3d zTC~5BzDM$%LV8UOeW#IrK;}Jz^ut1RNIzP^=vk!KW|96u`bimk4(X@ssGUc8T@~p9 z($D3S{zdu)kS-$q-y)l0tp#%AuP!zQz7Xe)jf1ZZo;uZ+L{%3BD0tk_q3)JW>EY`IjU%1HLg?)PnGRl0yo?_i2Q5Gkl-P5#0jc z1o7Pp-z1e$Yu$Uf29E7)?O{<#?KW%Q3puvi;hQS6-C^x_k;&+t@RgXPyWpEvK)M^g z>2)M)w~LuF_8$0VRZ+Xw+EoLj`>Z`QvPnr(aazq6%+Kcufj2o*N9R}kj(LREaRz__&43A3s z7=~6%8Ue%WC5?pPld1|~_$4|DMklFYG>m{r-xwIdQqou$H>;#iV011aje{ZAb+Mnq zxJ!<_2u5ZWqo2XJr;;=t#(f2(2{5|Uk|x48(8EG1f z953lR7(G)+(_y?UzVBi5%BMC1MsKNQCXCl?$q`!$qmN{n1><$eG8;y}0!HV+cvJGt zg^?%u=D`?H$>T?0d|He)Mcl$6uA7RI!E z(w{J4V+mqJX7{uprtA(*WOzk*~os#7Qj9n_VlQ4GY zlm3RkmuRQp&y7$!4S(Nk(i!-NO0*9C0?Bd~{tso|^YD+9=mq!-^El#P_(x}wF2X;S zT0`r3$#LX?of(?#_vGB`ZM8k&g7lT?H{9i;!*8VJ0%Sesj z|0ajj82*wv(pB(Jli8ZUKfQ!nQ}}0?qZW)0iG|C3~H z3;#;V+z$TLlFteM+Cq*{;9nO{QsG}O^Ii|Xd~eav1^?zuMw8*+B4clWe_MoFd-%84 zl5T{*I+v6J|89_Og8#1^QY!p=DoAPY@AHz}@b9lAdEh^gMbh9uSWVL5KO7->;Xfi; z2l$T_QcH*bcs$7m|A_*U0sr5bBtQJ8BP0|4e?$wwFV|}gGvJpFl7>O}|CM<|@L!ZH zH=|>ejJO3IW5UdGD>^o)AcfIUz7c8I866vmb{jfgC0Xu8$5v9`eK2FIIl_8UWkojW z0Vrq7NDsnnBJXn-m{;dg%YqpnPkIPu^E#6Cd`glHj)srIY*k8n3}zcIsVmHcO48#n z+eS#%{$K4R%M&mYtEfE*Q;{Qj3Z_~^?P-`vIizP`x@0!%2^2YRSX&^QT@o059%fbv zsXNSvMSB6}BL&oYK*=g5<-n9HOKZVr^SN4TJz>hfF4kJerhE%)Elq6Zlrj1$oO7l6 z-Y{Q|P_t- zJ};ziEX+xnBO7=9l984Cd4tYU5#kT|k-uv&2i92=iN+ zZ4%7yq~^&mXNMV`0&|XJE`~WThuY^b=S%fpz$~k#_9e`P`J|~Z7un!w_!Z2>;`kcn4D(<%qvbFUN%c!$9#N?+g?UuwT?VsOe80jxDV6>P z^KTjPJIvGZ98m%DOf_ja%(GI<3YhUHKctAxJ28J zKyn>5Ye}s3d87kSUo=Sv5lAT`9fH~|pL7_3G^zdw)Msm{9Yw$+zGG0cbE#PiJ$b{V z<4_-#*-jvkUP|pG)W-@*ed> zr;yGe@JJ5nJOYnJNEZ<3T4PgO0|cG}DHeg}b4ftpC60(|gup8))EXnutB7pT$dFI(arYo&M?6Q|i;SHGqz934 zKx*!Sj6-?U9zw>^6w<@UI95S=6d7{G6W0|Pr^J_yj5?Y3No1VMrtfKF{F^}PhM=Q{ z6hSaX=y?R=>ZrYdVB;!M4+NW*kX}MCzKHZPf-Q1Ly%20uN$QPY+j7!t2+IG-aeWY! z?A?V6x^bG`)#rGzH?IlYdf+-U1kKj#G%K!w^B=cJcdcqt#5JBA}y^Wx^g7gl8 z>BXdX5j4D{d;~kjlLjH!DW5bL!F%#Z?;&_!F6n&)AIKzqfZ#(i!dlY%;bLmT5PVE% zID$`?Q2Q9cZlaAqFd`#HBKT|pqt@bu&sCE~A=o`a8jau!RirTp_K*t3BKQ)heS%=m zBGNbnd)1IWMX}W=8+a6lvhGpgwTLG($5GD2B{pO_f66ggoc!nmLXIiv;B(DuzYI2BQ(60v>c(4 zVbV&3MwOCQAvD$oN8B2O#$}P#A~Zgm^d~|Sib?Abnk4hCM@X*b;x-^OrIOK&2z?$; z+Jw*-1*9s3zLc6bBlMMI-h$BA#f)x6s3ecH4WVyE+m6t8xzu(bG`)zl6QLRTq-um_ z7Ls-$G%JU+8=={v{e{rn2(>*3%_|}8MQFZc*@sYB8MXZgEtKd1gnr7Wb`T-?ULfue zLgl5@4kNTQOgf6tFBPP72yMUTdq9(V+510}UbXjrCiS-WeJ17Fdp?t1 zv-W|mBlUr`*E6ZFz0Wi0by#~mldSVqqau=ZzG{*~vd&k{WDe_mb&X`U&Q~oZpLM>v zHlIH0eAO5(otC?hdCK==< zy>IW)OtL|EApH7D5QTxE&mzl&pnMoho`!SP-*?TdQKC<^=CJnduU?zQR@4rkM zVeh?68fovlOe(bZTqcdO_gf~7w)a{ljj{JxCXKcCSSEd9@2^aYww3lnr82X zO#05=2bnb8-UFHRy}kc2X@B>zuf}g0#@y%a~-{50!r*VD*JJm-?*xp?#zR>wai% z8GY9M(B7hz!`ic$+7f%eV$xE3uVT_Nd!J&`FZLeAq+jj*iAlfNdlQqa^XW1h9H_AO zBqlAl_ai2)u=gS+t+e+cCjDXWK}=c&YyV-A^*N;=k5p;zG)!7+?=noXKAp%_2CTE~ zZznzm(xe^s64Iod z_VUrBYJ2Hu(k^>%WRmrXQ?t&tt4c^m>}8-y)_J$Gm~;%*^3SANd+BG=aeLWk(g|2g zK9f$`%RQ6+wwHP)owApCCY`pIcqW~(mv<)B*-JZ<&f3d5lm4-nbS9m%mvbhax0iAz zU9gvNCjDzK;Y_+{FW+oaBWtbE>S|Jyy=*fn8rG7{Bk-aQ4$$FaYG108=N{1IyYho|OOlpdodq^!;Tbt=-Q)^}~ zzf6j^mtH0{x0hWeS)Y`K$%q#Aa?8|O+Dk2ytWQsQ1tja!lYEoa$olj&Tryjqo+1*p zK0Q5COJ7^uJVdfs-Rif?9PR9-lo_?U)rZEDtZwzJ6p~^upG>m4)w`M`t6TjE@g>O{)vew$k7RYL%RQS$R=0X?4mGP=y>Bkb>Q;Xv zn`CvX_Yadi_AU)V9Dz5oCK diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_bb.v b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_bb.v deleted file mode 100644 index b233912..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_bb.v +++ /dev/null @@ -1,143 +0,0 @@ -//============================================================================= -// Verilog module generated by IPExpress 06/19/2012 09:57:30 -// Filename: sgmii_gbe_pcs35_bb.v -// Copyright(c) 2008 Lattice Semiconductor Corporation. All rights reserved. -//============================================================================= - -//--------------------------------------------------------------- -// sgmii_gbe_pcs35 synthesis black box definition -//--------------------------------------------------------------- - -/* WARNING - Changes to this file should be performed by re-running IPexpress -or modifying the .LPC file and regenerating the core. Other changes may lead -to inconsistent simulation and/or implemenation results */ - - - - - - -module sgmii_gbe_pcs35 ( - // Control Interface - rst_n, - signal_detect, - gbe_mode, - sgmii_mode, - operational_rate, - debug_link_timer_short, - force_isolate, - force_loopback, - force_unidir, - - rx_compensation_err, - ctc_drop_flag, - ctc_add_flag, - an_link_ok, - - // G/MII Interface - tx_clock_enable_sink , - tx_clock_enable_source , - tx_clk_125, - tx_d, - tx_en, - tx_er, - - rx_clock_enable_sink , - rx_clock_enable_source , - rx_clk_125, - rx_d, - rx_dv, - rx_er, - col, - crs, - - // 8-bit Interface - tx_data, - tx_kcntl, - tx_disparity_cntl, - xmit_autoneg, - - serdes_recovered_clk, - rx_data, - rx_kcntl, - rx_even , - rx_disp_err , - rx_cv_err , - rx_err_decode_mode , - - // Managment Control Outputs - mr_an_complete, - mr_page_rx, - mr_lp_adv_ability, - - // Managment Control Inputs - mr_main_reset, - mr_an_enable, - mr_restart_an, - mr_adv_ability - ); - - - -// Control Interface -input rst_n ; -input signal_detect ; -input gbe_mode ; -input sgmii_mode ; -input [1:0] operational_rate ; -input debug_link_timer_short ; -input force_isolate ; -input force_loopback ; -input force_unidir ; - -output rx_compensation_err ; -output ctc_drop_flag ; -output ctc_add_flag ; -output an_link_ok ; - -// G/MII Interface -input tx_clock_enable_sink; -output tx_clock_enable_source; -input tx_clk_125 ; -input [7:0] tx_d ; -input tx_en ; -input tx_er ; - -input rx_clock_enable_sink; -output rx_clock_enable_source; -input rx_clk_125 ; -output [7:0] rx_d ; -output rx_dv ; -output rx_er ; -output col ; -output crs ; - -// 8-bit Interface -output [7:0] tx_data ; -output tx_kcntl; -output tx_disparity_cntl; -output xmit_autoneg; - -input serdes_recovered_clk ; -input [7:0] rx_data ; -input rx_even ; -input rx_kcntl; -input rx_disp_err ; -input rx_cv_err ; -input rx_err_decode_mode ; - -// Managment Control Outputs -output mr_an_complete; -output mr_page_rx; -output [15:0] mr_lp_adv_ability; - -// Managment Control Inputs -input mr_main_reset; -input mr_an_enable; -input mr_restart_an; -input [15:0] mr_adv_ability; - - - -endmodule - diff --git a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_beh.v b/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_beh.v deleted file mode 100644 index 65d30ce..0000000 --- a/gbe2_ecp3/ipcores_ecp3/sgmii_gbe_pcs35/sgmii_gbe_pcs35_beh.v +++ /dev/null @@ -1,3372 +0,0 @@ -// sgmii_pcs_core_beh_pp.v generated by Lattice IP Model Creator version 1 -// created on Fri Mar 23 11:01:38 CST 2012 -// Copyright(c) 2007 Lattice Semiconductor Corporation. All rights reserved -// obfuscator_exe version 1.mar0807 -// top -`define SGMII_NO_ENC -`define SGMII_YES_CTC_DYNAMIC -`define SGMII_FIFO_FAMILY_ECP3 -`define SGMII_YES_SINGLE_CLOCK -`timescale 1 ns / 100 ps -module vi7cf1f (uve78fb, an3c7dd, fne3eec, ie1f767, zkfbb38, xjdd9c2, - rtece16, ay670b6, tj385b0, blc2d86, lf16c36, wyb61b7, zzb0db9, - vk86dcf); -input [17:0] uve78fb; -input an3c7dd; -input fne3eec; -input ie1f767; -input zkfbb38; -input xjdd9c2; -input rtece16; -input [9:0] ay670b6; -input [9:0] tj385b0; -output [17:0] blc2d86; -output lf16c36; -output wyb61b7; -output zzb0db9; -output vk86dcf; -reg [17 : 0] icc175e; -reg ngbaf0; -reg fa5d782; -reg faebc13; -reg of5e09b; -reg uif04dc; -reg co826e0; -reg [9 : 0] xl13701; -reg [9 : 0] nt9b80e; -reg [2047:0] shdc077; -wire [8:0] eae03bd; -localparam ba1de9 = 9,ngef4b = 32'hfdffc68b; -localparam [31:0] ea77a5a = ngef4b; -localparam the9682 = ngef4b & 4'hf; -localparam [11:0] fn5a0bd = 'h7ff; -wire [(1 << the9682) -1:0] uk82f73; -reg [ba1de9-1:0] jebdcc5; -reg [the9682-1:0] dm7315a [0:1]; -reg [the9682-1:0] nec5698; -reg aa2b4c2; -integer xj5a610; -integer qtd3086; -AND2 gq98434 (.A(ie1f767), .B(uk10d0f), .Z(ng86878)); INV aa343c2 (.A(ana1e10), .Z(uk10d0f)); AND2 go78421 (.A(zkfbb38), .B(mg10847), .Z(db84238)); INV ym211c6 (.A(gd8e31), .Z(mg10847)); OR2 vx38c6b (.A(xjdd9c2), .B(rtece16), .Z(ou8d7e9)); XOR2 pf6bf48 (.A(rt5fa47), .B(yxfd23f), .Z(pfe91fc)); XOR2 ps48fe7 (.A(yxfd23f), .B(tw3f9da), .Z(blfced2)); XOR2 qte7697 (.A(tw3f9da), .B(psda5e1), .Z(fnd2f0a)); XOR2 aa97857 (.A(psda5e1), .B(vie15c8), .Z(gqae43)); XOR2 by57218 (.A(vie15c8), .B(dzc8610), .Z(cm43086)); XOR2 wl18431 (.A(dzc8610), .B(ec10c6f), .Z(pu86378)); XOR2 uk31bc3 (.A(ec10c6f), .B(gb6f0c9), .Z(qg7864c)); XOR2 czc3260 (.A(gb6f0c9), .B(uvc982f), .Z(me4c17d)); XOR2 yx60be8 (.A(uvc982f), .B(fc2fa21), .Z(me7d10b)); XOR2 wje8858 (.A(fc2fa21), .B(ym21624), .Z(fcb121)); XOR2 xw5890b (.A(osc485a), .B(mg242d1), .Z(mg21689)); XOR2 ngb449 (.A(mg242d1), .B(wwd125e), .Z(hq892f1)); XOR2 ic4978a (.A(wwd125e), .B(uv5e284), .Z(rgf1424)); XOR2 gd8a122 (.A(uv5e284), .B(ph848ae), .Z(uk24577)); XOR2 bn22bb9 (.A(ph848ae), .B(anaee78), .Z(yk773c5)); XOR2 mgb9e29 (.A(anaee78), .B(ay78a4b), .Z(hoc5259)); XOR2 gd292ca (.A(ay78a4b), .B(kd4b2a8), .Z(kq59545)); XOR2 tucaa29 (.A(kd4b2a8), .B(lsa8a57), .Z(hb452ba)); XOR2 gd295d6 (.A(lsa8a57), .B(ho575ae), .Z(phbad72)); XOR2 uvd6b96 (.A(ho575ae), .B(anae5af), .Z(ui72d7c)); defparam do96be0.initval = 16'h6996 ; ROM16X1 do96be0 (.AD3(fpaf81f), .AD2(ne7c0ff), .AD1(cme07fa), .AD0(nt3fd1), .DO0(aa1fe8e)) ; defparam qgff471.initval = 16'h6996 ; ROM16X1 qgff471 (.AD3(med1c49), .AD2(db8e248), .AD1(jp71247), .AD0(tw8923e), .DO0(ay491f2)) ; defparam fa48f90.initval = 16'h6996 ; ROM16X1 fa48f90 (.AD3(cme07fa), .AD2(nt3fd1), .AD1(oh9068d), .AD0(oh9068d), .DO0(qi1a36b)) ; defparam kqd1b58.initval = 16'h6996 ; ROM16X1 kqd1b58 (.AD3(ne7c0ff), .AD2(cme07fa), .AD1(nt3fd1), .AD0(oh9068d), .DO0(ba139a)) ; defparam lf9cd2.initval = 16'h6996 ; ROM16X1 lf9cd2 (.AD3(tw8923e), .AD2(fpaf81f), .AD1(ne7c0ff), .AD0(qi1a36b), .DO0(xybd739)) ; defparam faeb9ca.initval = 16'h6996 ; ROM16X1 faeb9ca (.AD3(jp71247), .AD2(tw8923e), .AD1(fpaf81f), .AD0(ba139a), .DO0(wy98918)) ; defparam goc48c0.initval = 16'h6996 ; ROM16X1 goc48c0 (.AD3(db8e248), .AD2(jp71247), .AD1(tw8923e), .AD0(aa1fe8e), .DO0(ph9952)) ; defparam yk4ca97.initval = 16'h6996 ; ROM16X1 yk4ca97 (.AD3(aa1fe8e), .AD2(ay491f2), .AD1(oh9068d), .AD0(oh9068d), .DO0(jpcd4c1)) ; defparam al6a60e.initval = 16'h6996 ; ROM16X1 al6a60e (.AD3(aa1fe8e), .AD2(ay491f2), .AD1(rie809), .AD0(oh9068d), .DO0(bna0256)) ; defparam do12b7.initval = 16'h6996 ; ROM16X1 do12b7 (.AD3(aa1fe8e), .AD2(ay491f2), .AD1(rib75b1), .AD0(rie809), .DO0(ofd6c5e)) ; defparam ukb62f5.initval = 16'h6996 ; ROM16X1 ukb62f5 (.AD3(nt8bd4c), .AD2(rib75b1), .AD1(rie809), .AD0(oh9068d), .DO0(su4cd40)) ; defparam xw66a01.initval = 16'h6996 ; ROM16X1 xw66a01 (.AD3(aa1fe8e), .AD2(ay491f2), .AD1(su4cd40), .AD0(oh9068d), .DO0(ld5a793)) ; defparam yxd3c9e.initval = 16'h6996 ; ROM16X1 yxd3c9e (.AD3(gbf27ae), .AD2(zm93d75), .AD1(hd9ebab), .AD0(uif5d5f), .DO0(iraeaf9)) ; defparam mr757cd.initval = 16'h6996 ; ROM16X1 mr757cd (.AD3(pf5f365), .AD2(fnf9b2e), .AD1(xjcd977), .AD0(lq6cbbf), .DO0(gb65dfa)) ; defparam mg2efd4.initval = 16'h6996 ; ROM16X1 mg2efd4 (.AD3(hd9ebab), .AD2(uif5d5f), .AD1(oh9068d), .AD0(oh9068d), .DO0(sj8e0d)) ; defparam xw4706d.initval = 16'h6996 ; ROM16X1 xw4706d (.AD3(zm93d75), .AD2(hd9ebab), .AD1(uif5d5f), .AD0(oh9068d), .DO0(al5e34f)) ; defparam nef1a7c.initval = 16'h6996 ; ROM16X1 nef1a7c (.AD3(lq6cbbf), .AD2(gbf27ae), .AD1(zm93d75), .AD0(sj8e0d), .DO0(ux18596)) ; defparam xjc2cb5.initval = 16'h6996 ; ROM16X1 xjc2cb5 (.AD3(xjcd977), .AD2(lq6cbbf), .AD1(gbf27ae), .AD0(al5e34f), .DO0(vi764fd)) ; defparam pub27eb.initval = 16'h6996 ; ROM16X1 pub27eb (.AD3(fnf9b2e), .AD2(xjcd977), .AD1(lq6cbbf), .AD0(iraeaf9), .DO0(medbb14)) ; defparam lddd8a1.initval = 16'h6996 ; ROM16X1 lddd8a1 (.AD3(iraeaf9), .AD2(gb65dfa), .AD1(oh9068d), .AD0(oh9068d), .DO0(ay772e2)) ; defparam cob9711.initval = 16'h6996 ; ROM16X1 cob9711 (.AD3(iraeaf9), .AD2(gb65dfa), .AD1(ng1100c), .AD0(oh9068d), .DO0(zx40318)) ; defparam tw18c6.initval = 16'h6996 ; ROM16X1 tw18c6 (.AD3(iraeaf9), .AD2(gb65dfa), .AD1(mrc6794), .AD0(ng1100c), .DO0(lf9e52c)) ; defparam yxf2966.initval = 16'h6996 ; ROM16X1 yxf2966 (.AD3(vxa59a6), .AD2(mrc6794), .AD1(ng1100c), .AD0(oh9068d), .DO0(swa6d19)) ; defparam kf368c9.initval = 16'h6996 ; ROM16X1 kf368c9 (.AD3(iraeaf9), .AD2(gb65dfa), .AD1(swa6d19), .AD0(oh9068d), .DO0(xj641e9)) ; XOR2 xy20f4f (.A(ym21624), .B(uif5d5f), .Z(jpe9ea6)); XOR2 rt4f536 (.A(nt3fd1), .B(anae5af), .Z(iea6de0)); defparam ir36f01.initval = 16'h0410 ; ROM16X1 ir36f01 (.AD3(iebc062), .AD2(anae5af), .AD1(nt3fd1), .AD0(oh9068d), .DO0(su6205e)) ; defparam ec102f0.initval = 16'h1004 ; ROM16X1 ec102f0 (.AD3(iebc062), .AD2(anae5af), .AD1(nt3fd1), .AD0(oh9068d), .DO0(fce507)) ; defparam ww7283b.initval = 16'h0140 ; ROM16X1 ww7283b (.AD3(bna0ec7), .AD2(ym21624), .AD1(uif5d5f), .AD0(oh9068d), .DO0(fnc7d4e)) ; defparam ou3ea76.initval = 16'h4001 ; ROM16X1 ou3ea76 (.AD3(bna0ec7), .AD2(ym21624), .AD1(uif5d5f), .AD0(oh9068d), .DO0(cb8011e)) ; INV qi8f4 (.A(do47a1), .Z(an23d0a)); AND2 vk1e855 (.A(dmf42ab), .B(an23d0a), .Z(ecaad5)); AND2 nr556a8 (.A(dmf42ab), .B(do47a1), .Z(fad51e7)); defparam baa8f3b.CSDECODE_R = 3'b000 ; defparam baa8f3b.CSDECODE_W = 3'b000 ; defparam baa8f3b.GSR = "ENABLED" ; defparam baa8f3b.RESETMODE = "ASYNC" ; defparam baa8f3b.REGMODE = "NOREG" ; defparam baa8f3b.DATA_WIDTH_R = 18 ; defparam baa8f3b.DATA_WIDTH_W = 18 ; PDP16KA baa8f3b (.DI0(uve78fb[0]), .DI1(uve78fb[1]), .DI2(uve78fb[2]), .DI3(uve78fb[3]), .DI4(uve78fb[4]), .DI5(uve78fb[5]), .DI6(uve78fb[6]), .DI7(uve78fb[7]), .DI8(uve78fb[8]), .DI9(uve78fb[9]), .DI10(uve78fb[10]), .DI11(uve78fb[11]), .DI12(uve78fb[12]), .DI13(uve78fb[13]), .DI14(uve78fb[14]), .DI15(uve78fb[15]), .DI16(uve78fb[16]), .DI17(uve78fb[17]), .DI18(uve78fb[0]), .DI19(uve78fb[1]), .DI20(uve78fb[2]), .DI21(uve78fb[3]), .DI22(uve78fb[4]), .DI23(uve78fb[5]), .DI24(uve78fb[6]), .DI25(uve78fb[7]), .DI26(uve78fb[8]), .DI27(uve78fb[9]), .DI28(uve78fb[10]), .DI29(uve78fb[11]), .DI30(uve78fb[12]), .DI31(uve78fb[13]), .DI32(uve78fb[14]), .DI33(uve78fb[15]), .DI34(uve78fb[16]), .DI35(uve78fb[17]), .ADW0(oh3c44c), .ADW1(oh3c44c), .ADW2(oh9068d), .ADW3(oh9068d), .ADW4(me4c91b), .ADW5(dz648d9), .ADW6(ou246ce), .ADW7(ep23671), .ADW8(xy1b38c), .ADW9(qtd9c62), .ADW10(kqce314), .ADW11(nr718a1), .ADW12(do8c50f), .ADW13(cm6287a), .CEW(ng86878), .CLKW(an3c7dd), .WE(oh3c44c), .CSW0(oh9068d), .CSW1(oh9068d), .CSW2(oh9068d), .ADR0(oh9068d), .ADR1(oh9068d), .ADR2(oh9068d), .ADR3(oh9068d), .ADR4(yx4e2a2), .ADR5(vv71515), .ADR6(mt8a8ae), .ADR7(yx54574), .ADR8(xya2ba5), .ADR9(wy15d2b), .ADR10(epae958), .ADR11(hb74ac5), .ADR12(jra562f), .ADR13(ou2b17f), .CER(db84238), .CLKR(fne3eec), .CSR0(oh9068d), .CSR1(oh9068d), .CSR2(oh9068d), .RST(xjdd9c2), .DO0(blc2d86[0]), .DO1(blc2d86[1]), .DO2(blc2d86[2]), .DO3(blc2d86[3]), .DO4(blc2d86[4]), .DO5(blc2d86[5]), .DO6(blc2d86[6]), .DO7 -(blc2d86[7]), .DO8(blc2d86[8]), .DO9(blc2d86[9]), .DO10(blc2d86[10]), .DO11(blc2d86[11]), .DO12(blc2d86[12]), .DO13(blc2d86[13]), .DO14(blc2d86[14]), .DO15(blc2d86[15]), .DO16(blc2d86[16]), .DO17(blc2d86[17]), .DO18(), .DO19(), .DO20(), .DO21(), .DO22(), .DO23(), .DO24(), .DO25(), .DO26(), .DO27(), .DO28(), .DO29(), .DO30(), .DO31(), .DO32(), .DO33(), .DO34(), .DO35()) ; defparam vi478a0.GSR = "ENABLED" ; FD1P3BX vi478a0 (.D(mre2814), .SP(ng86878), .CK(an3c7dd), .PD(xjdd9c2), .Q(rt5fa47)) ; defparam hda57e2.GSR = "ENABLED" ; FD1P3DX hda57e2 (.D(ld5f8b9), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(yxfd23f)) ; defparam hocfd61.GSR = "ENABLED" ; FD1P3DX hocfd61 (.D(mef5856), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(tw3f9da)) ; defparam irb13c0.GSR = "ENABLED" ; FD1P3DX irb13c0 (.D(vv4f023), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(psda5e1)) ; defparam ou1f0d5.GSR = "ENABLED" ; FD1P3DX ou1f0d5 (.D(yxc3544), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(vie15c8)) ; defparam hq252d5.GSR = "ENABLED" ; FD1P3DX hq252d5 (.D(al4b55d), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(dzc8610)) ; defparam kdedeea.GSR = "ENABLED" ; FD1P3DX kdedeea (.D(hb7baa4), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(ec10c6f)) ; defparam sj26e64.GSR = "ENABLED" ; FD1P3DX sj26e64 (.D(mgb992f), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(gb6f0c9)) ; defparam ne79b92.GSR = "ENABLED" ; FD1P3DX ne79b92 (.D(fn6e49f), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(uvc982f)) ; defparam vife21d.GSR = "ENABLED" ; FD1P3DX vife21d (.D(uk8875a), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(fc2fa21)) ; defparam dmd0156.GSR = "ENABLED" ; FD1P3DX dmd0156 (.D(wy559d), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(ym21624)) ; defparam she8601.GSR = "ENABLED" ; FD1P3DX she8601 (.D(pfe91fc), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(fa69a9c)) ; defparam jc4d4e2.GSR = "ENABLED" ; FD1P3DX jc4d4e2 (.D(blfced2), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(fp942e5)) ; defparam cba172f.GSR = "ENABLED" ; FD1P3DX cba172f (.D(fnd2f0a), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(eaea018)) ; defparam dz500c0.GSR = "ENABLED" ; FD1P3DX dz500c0 (.D(gqae43), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(gd3cf5c)) ; defparam ene7ae5.GSR = "ENABLED" ; FD1P3DX ene7ae5 (.D(cm43086), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(ld6e606)) ; defparam fa73036.GSR = "ENABLED" ; FD1P3DX fa73036 (.D(pu86378), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(pu997a9)) ; defparam gocbd4b.GSR = "ENABLED" ; FD1P3DX gocbd4b (.D(qg7864c), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(dmc506a)) ; defparam bn28352.GSR = "ENABLED" ; FD1P3DX bn28352 (.D(me4c17d), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(twbd919)) ; defparam fnec8cb.GSR = "ENABLED" ; FD1P3DX fnec8cb (.D(me7d10b), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(ipf79c5)) ; defparam ksbce2c.GSR = "ENABLED" ; FD1P3DX ksbce2c (.D(fcb121), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(zzceee)) ; defparam ay67777.GSR = "ENABLED" ; FD1P3DX ay67777 (.D(ym21624), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(tuc0cca)) ; defparam db6653.GSR = "ENABLED" ; FD1P3DX db6653 (.D(rt5fa47), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(me4c91b)) ; defparam pseb66c.GSR = "ENABLED" ; FD1P3DX pseb66c (.D(yxfd23f), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(dz648d9)) ; defparam cba4eca.GSR = "ENABLED" ; FD1P3DX cba4eca (.D(tw3f9da), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(ou246ce)) ; defparam aa31aa0.GSR = "ENABLED" ; FD1P3DX aa31aa0 (.D(psda5e1), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(ep23671)) ; defparam xj45bd5.GSR = "ENABLED" ; FD1P3DX xj45bd5 (.D(vie15c8), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(xy1b38c)) ; defparam jcf48be.GSR = "ENABLED" ; FD1P3DX jcf48be (.D(dzc8610), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(qtd9c62)) ; defparam suefb70.GSR = "ENABLED" ; FD1P3DX suefb70 (.D(ec10c6f), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(kqce314)) ; defparam ic4cd37.GSR = "ENABLED" ; FD1P3DX ic4cd37 (.D(gb6f0c9), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(nr718a1)) ; defparam su593c1.GSR = "ENABLED" ; FD1P3DX su593c1 (.D(uvc982f), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(do8c50f)) ; defparam kd6f03b.GSR = "ENABLED" ; FD1P3DX kd6f03b (.D(fc2fa21), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(cm6287a)) ; defparam tj3a29.GSR = "ENABLED" ; FD1P3DX tj3a29 (.D(ym21624), .SP(ng86878), .CK(an3c7dd), .CD(xjdd9c2), .Q(bna0ec7)) ; defparam mgacd25.GSR = "ENABLED" ; FD1P3BX mgacd25 (.D(uk34943), .SP(db84238), .CK(fne3eec), .PD(ou8d7e9), .Q(osc485a)) ; defparam jr198f9.GSR = "ENABLED" ; FD1P3DX jr198f9 (.D(rg63e74), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(mg242d1)) ; defparam gqa31c6.GSR = "ENABLED" ; FD1P3DX gqa31c6 (.D(xjc7184), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(wwd125e)) ; defparam nt27f5f.GSR = "ENABLED" ; FD1P3DX nt27f5f (.D(qtfd7fa), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(uv5e284)) ; defparam osd47c8.GSR = "ENABLED" ; FD1P3DX osd47c8 (.D(ym1f209), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(ph848ae)) ; defparam vi48da6.GSR = "ENABLED" ; FD1P3DX vi48da6 (.D(gd36998), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(anaee78)) ; defparam qgc4a28.GSR = "ENABLED" ; FD1P3DX qgc4a28 (.D(vx28a0b), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(ay78a4b)) ; defparam mr5ede2.GSR = "ENABLED" ; FD1P3DX mr5ede2 (.D(jeb78ae), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(kd4b2a8)) ; defparam os72144.GSR = "ENABLED" ; FD1P3DX os72144 (.D(cb8510c), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(lsa8a57)) ; defparam th64d07.GSR = "ENABLED" ; FD1P3DX th64d07 (.D(co341f5), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(ho575ae)) ; defparam fca8d00.GSR = "ENABLED" ; FD1P3DX fca8d00 (.D(mg34010), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(anae5af)) ; defparam ux80e29.GSR = "ENABLED" ; FD1P3DX ux80e29 (.D(mg21689), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(kq6dea3)) ; defparam yx6f518.GSR = "ENABLED" ; FD1P3DX yx6f518 (.D(hq892f1), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(ks24221)) ; defparam wy21109.GSR = "ENABLED" ; FD1P3DX wy21109 (.D(rgf1424), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(ne4d871)) ; defparam jc6c38b.GSR = "ENABLED" ; FD1P3DX jc6c38b (.D(uk24577), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(kqde7bd)) ; defparam rtf3de8.GSR = "ENABLED" ; FD1P3DX rtf3de8 (.D(yk773c5), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(hd378a0)) ; defparam cobc506.GSR = "ENABLED" ; FD1P3DX cobc506 (.D(hoc5259), .SP( -db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(ir857bb)) ; defparam mg2bddc.GSR = "ENABLED" ; FD1P3DX mg2bddc (.D(kq59545), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(uxdb2a)) ; defparam me6d955.GSR = "ENABLED" ; FD1P3DX me6d955 (.D(hb452ba), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(vi42afb)) ; defparam mg157da.GSR = "ENABLED" ; FD1P3DX mg157da (.D(phbad72), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(qi8dcd0)) ; defparam jp6e681.GSR = "ENABLED" ; FD1P3DX jp6e681 (.D(ui72d7c), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(ps738fb)) ; defparam pu9c7da.GSR = "ENABLED" ; FD1P3DX pu9c7da (.D(anae5af), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(qv9f0d5)) ; defparam mrf86ac.GSR = "ENABLED" ; FD1P3DX mrf86ac (.D(osc485a), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(yx4e2a2)) ; defparam ux29433.GSR = "ENABLED" ; FD1P3DX ux29433 (.D(mg242d1), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(vv71515)) ; defparam nr7e701.GSR = "ENABLED" ; FD1P3DX nr7e701 (.D(wwd125e), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(mt8a8ae)) ; defparam jpf32c7.GSR = "ENABLED" ; FD1P3DX jpf32c7 (.D(uv5e284), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(yx54574)) ; defparam shd959b.GSR = "ENABLED" ; FD1P3DX shd959b (.D(ph848ae), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(xya2ba5)) ; defparam xj503f8.GSR = "ENABLED" ; FD1P3DX xj503f8 (.D(anaee78), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(wy15d2b)) ; defparam qtf8b73.GSR = "ENABLED" ; FD1P3DX qtf8b73 (.D(ay78a4b), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(epae958)) ; defparam sh5ec8b.GSR = "ENABLED" ; FD1P3DX sh5ec8b (.D(kd4b2a8), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(hb74ac5)) ; defparam dz7bf90.GSR = "ENABLED" ; FD1P3DX dz7bf90 (.D(lsa8a57), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(jra562f)) ; defparam zz9bb1d.GSR = "ENABLED" ; FD1P3DX zz9bb1d (.D(ho575ae), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(ou2b17f)) ; defparam kdf770e.GSR = "ENABLED" ; FD1P3DX kdf770e (.D(anae5af), .SP(db84238), .CK(fne3eec), .CD(ou8d7e9), .Q(iebc062)) ; defparam en654a8.GSR = "ENABLED" ; FD1S3DX en654a8 (.D(fa69a9c), .CK(fne3eec), .CD(xjdd9c2), .Q(ld454ea)) ; defparam ls2a756.GSR = "ENABLED" ; FD1S3DX ls2a756 (.D(fp942e5), .CK(fne3eec), .CD(xjdd9c2), .Q(pub2248)) ; defparam vx91243.GSR = "ENABLED" ; FD1S3DX vx91243 (.D(eaea018), .CK(fne3eec), .CD(xjdd9c2), .Q(uk1f410)) ; defparam qgfa080.GSR = "ENABLED" ; FD1S3DX qgfa080 (.D(gd3cf5c), .CK(fne3eec), .CD(xjdd9c2), .Q(fc164c)) ; defparam pub262.GSR = "ENABLED" ; FD1S3DX pub262 (.D(ld6e606), .CK(fne3eec), .CD(xjdd9c2), .Q(bn13340)) ; defparam ri99a06.GSR = "ENABLED" ; FD1S3DX ri99a06 (.D(pu997a9), .CK(fne3eec), .CD(xjdd9c2), .Q(zz32c7f)) ; defparam ri963fe.GSR = "ENABLED" ; FD1S3DX ri963fe (.D(dmc506a), .CK(fne3eec), .CD(xjdd9c2), .Q(kdf2b23)) ; defparam cb9591c.GSR = "ENABLED" ; FD1S3DX cb9591c (.D(twbd919), .CK(fne3eec), .CD(xjdd9c2), .Q(pse41ee)) ; defparam ls20f73.GSR = "ENABLED" ; FD1S3DX ls20f73 (.D(ipf79c5), .CK(fne3eec), .CD(xjdd9c2), .Q(an9a9d3)) ; defparam qgd4e9d.GSR = "ENABLED" ; FD1S3DX qgd4e9d (.D(zzceee), .CK(fne3eec), .CD(xjdd9c2), .Q(qte84e9)) ; defparam xw4274d.GSR = "ENABLED" ; FD1S3DX xw4274d (.D(tuc0cca), .CK(fne3eec), .CD(xjdd9c2), .Q(rt6be72)) ; defparam hb5f397.GSR = "ENABLED" ; FD1S3DX hb5f397 (.D(kq6dea3), .CK(an3c7dd), .CD(ou8d7e9), .Q(anbee41)) ; defparam enf720c.GSR = "ENABLED" ; FD1S3DX enf720c (.D(ks24221), .CK(an3c7dd), .CD(ou8d7e9), .Q(cz651af)) ; defparam nt28d7d.GSR = "ENABLED" ; FD1S3DX nt28d7d (.D(ne4d871), .CK(an3c7dd), .CD(ou8d7e9), .Q(lqee0f9)) ; defparam gb707ca.GSR = "ENABLED" ; FD1S3DX gb707ca (.D(kqde7bd), .CK(an3c7dd), .CD(ou8d7e9), .Q(kd54432)) ; defparam pua2195.GSR = "ENABLED" ; FD1S3DX pua2195 (.D(hd378a0), .CK(an3c7dd), .CD(ou8d7e9), .Q(hdaa0f5)) ; defparam bl507ae.GSR = "ENABLED" ; FD1S3DX bl507ae (.D(ir857bb), .CK(an3c7dd), .CD(ou8d7e9), .Q(os774cd)) ; defparam ntba669.GSR = "ENABLED" ; FD1S3DX ntba669 (.D(uxdb2a), .CK(an3c7dd), .CD(ou8d7e9), .Q(xj4f8b2)) ; defparam ho7c596.GSR = "ENABLED" ; FD1S3DX ho7c596 (.D(vi42afb), .CK(an3c7dd), .CD(ou8d7e9), .Q(lsb2b92)) ; defparam kf95c92.GSR = "ENABLED" ; FD1S3DX kf95c92 (.D(qi8dcd0), .CK(an3c7dd), .CD(ou8d7e9), .Q(hd94841)) ; defparam oha420e.GSR = "ENABLED" ; FD1S3DX oha420e (.D(ps738fb), .CK(an3c7dd), .CD(ou8d7e9), .Q(wj7532a)) ; defparam swa9954.GSR = "ENABLED" ; FD1S3DX swa9954 (.D(qv9f0d5), .CK(an3c7dd), .CD(ou8d7e9), .Q(nta035d)) ; defparam vk1aef.GSR = "ENABLED" ; FD1S3DX vk1aef (.D(ld454ea), .CK(fne3eec), .CD(xjdd9c2), .Q(nt8bd4c)) ; defparam kddce86.GSR = "ENABLED" ; FD1S3DX kddce86 (.D(pub2248), .CK(fne3eec), .CD(xjdd9c2), .Q(rib75b1)) ; defparam gda4691.GSR = "ENABLED" ; FD1S3DX gda4691 (.D(uk1f410), .CK(fne3eec), .CD(xjdd9c2), .Q(rie809)) ; defparam lq6c1b1.GSR = "ENABLED" ; FD1S3DX lq6c1b1 (.D(fc164c), .CK(fne3eec), .CD(xjdd9c2), .Q(med1c49)) ; defparam ay5cd66.GSR = "ENABLED" ; FD1S3DX ay5cd66 (.D(bn13340), .CK(fne3eec), .CD(xjdd9c2), .Q(db8e248)) ; defparam ie87613.GSR = "ENABLED" ; FD1S3DX ie87613 (.D(zz32c7f), .CK(fne3eec), .CD(xjdd9c2), .Q(jp71247)) ; defparam qtc9ff3.GSR = "ENABLED" ; FD1S3DX qtc9ff3 (.D(kdf2b23), .CK(fne3eec), .CD(xjdd9c2), .Q(tw8923e)) ; defparam dmee8f0.GSR = "ENABLED" ; FD1S3DX dmee8f0 (.D(pse41ee), .CK(fne3eec), .CD(xjdd9c2), .Q(fpaf81f)) ; defparam ls1e282.GSR = "ENABLED" ; FD1S3DX ls1e282 (.D(an9a9d3), .CK(fne3eec), .CD(xjdd9c2), .Q(ne7c0ff)) ; defparam ks92bcc.GSR = "ENABLED" ; FD1S3DX ks92bcc (.D(qte84e9), .CK(fne3eec), .CD(xjdd9c2), .Q(cme07fa)) ; defparam zzcce6.GSR = "ENABLED" ; FD1S3DX zzcce6 (.D(rt6be72), .CK(fne3eec), .CD(xjdd9c2), .Q(nt3fd1)) ; defparam ntba8bf.GSR = "ENABLED" ; FD1S3DX ntba8bf (.D(anbee41), .CK(an3c7dd), .CD(ou8d7e9), .Q(vxa59a6)) ; defparam zkf1773.GSR = "ENABLED" ; FD1S3DX zkf1773 (.D(cz651af), .CK(an3c7dd), .CD(ou8d7e9), .Q(mrc6794)) ; defparam end649d.GSR = "ENABLED" ; FD1S3DX end649d (.D(lqee0f9), .CK(an3c7dd), .CD(ou8d7e9), .Q(ng1100c)) ; defparam by630c7.GSR = "ENABLED" ; FD1S3DX by630c7 (.D(kd54432), .CK(an3c7dd), .CD(ou8d7e9), .Q(pf5f365)) ; defparam lqd5b3a.GSR = "ENABLED" ; FD1S3DX lqd5b3a (.D(hdaa0f5), .CK(an3c7dd), .CD(ou8d7e9), .Q(fnf9b2e)) ; defparam ym9241e.GSR = "ENABLED" ; FD1S3DX ym9241e (.D(os774cd), .CK(an3c7dd), .CD(ou8d7e9), .Q(xjcd977)) ; defparam cb80a90.GSR = "ENABLED" ; FD1S3DX cb80a90 (.D(xj4f8b2), .CK(an3c7dd), .CD(ou8d7e9), .Q(lq6cbbf)) ; defparam bn284a4.GSR = "ENABLED" ; FD1S3DX bn284a4 (.D(lsb2b92), .CK(an3c7dd), .CD(ou8d7e9), .Q(gbf27ae)) ; defparam wy3bba6.GSR = "ENABLED" ; FD1S3DX wy3bba6 (.D(hd94841), .CK(an3c7dd), .CD(ou8d7e9), .Q(zm93d75)) ; defparam ri867c3.GSR = "ENABLED" ; FD1S3DX ri867c3 (.D(wj7532a), .CK(an3c7dd), . -CD(ou8d7e9), .Q(hd9ebab)) ; defparam mrdc92b.GSR = "ENABLED" ; FD1S3DX mrdc92b (.D(nta035d), .CK(an3c7dd), .CD(ou8d7e9), .Q(uif5d5f)) ; defparam gbe20c9.GSR = "ENABLED" ; FD1S3BX gbe20c9 (.D(fc83261), .CK(fne3eec), .PD(ou8d7e9), .Q(gd8e31)) ; defparam pf617e8.GSR = "ENABLED" ; FD1S3DX pf617e8 (.D(rt5fa3a), .CK(an3c7dd), .CD(xjdd9c2), .Q(ana1e10)) ; defparam do3af23.GSR = "ENABLED" ; FD1S3BX do3af23 (.D(ksbc8d7), .CK(fne3eec), .PD(ou8d7e9), .Q(zzb0db9)) ; defparam bld72e1.GSR = "ENABLED" ; FD1S3DX bld72e1 (.D(aycb870), .CK(an3c7dd), .CD(xjdd9c2), .Q(vk86dcf)) ; CU2 gb70053 (.CI(oh3c44c), .PC1(yxfd23f), .PC0(rt5fa47), .CO(ay53911), .NC1(ld5f8b9), .NC0(mre2814)); CU2 xl22253 (.CI(ay53911), .PC1(psda5e1), .PC0(tw3f9da), .CO(qg53cd7), .NC1(vv4f023), .NC0(mef5856)); CU2 ux9ae77 (.CI(qg53cd7), .PC1(dzc8610), .PC0(vie15c8), .CO(qg77b88), .NC1(al4b55d), .NC0(yxc3544)); CU2 rt7101a (.CI(qg77b88), .PC1(gb6f0c9), .PC0(ec10c6f), .CO(co1ac37), .NC1(mgb992f), .NC0(hb7baa4)); CU2 fc86e67 (.CI(co1ac37), .PC1(fc2fa21), .PC0(uvc982f), .CO(me675cd), .NC1(uk8875a), .NC0(fn6e49f)); CU2 aab9a16 (.CI(me675cd), .PC1(oh9068d), .PC0(ym21624), .CO(xl1638a), .NC1(), .NC0(wy559d)); CU2 xl8e2b5 (.CI(oh3c44c), .PC1(mg242d1), .PC0(osc485a), .CO(vxb5fa1), .NC1(rg63e74), .NC0(uk34943)); CU2 hof43fe (.CI(vxb5fa1), .PC1(uv5e284), .PC0(wwd125e), .CO(dmfe504), .NC1(qtfd7fa), .NC0(xjc7184)); CU2 rva08e7 (.CI(dmfe504), .PC1(anaee78), .PC0(ph848ae), .CO(mre7cae), .NC1(gd36998), .NC0(ym1f209)); CU2 an95d4c (.CI(mre7cae), .PC1(kd4b2a8), .PC0(ay78a4b), .CO(cm4c960), .NC1(jeb78ae), .NC0(vx28a0b)); CU2 kf2c072 (.CI(cm4c960), .PC1(ho575ae), .PC0(lsa8a57), .CO(yk72b5b), .NC1(co341f5), .NC0(cb8510c)); CU2 ld6b623 (.CI(yk72b5b), .PC1(oh9068d), .PC0(anae5af), .CO(wl23d30), .NC1(), .NC0(mg34010)); FSUB2 hof4c2b (.A1(yxfd23f), .A0(rt5fa47), .B1(lf9e52c), .B0(xj641e9), .BI(oh3c44c), .BOUT1(dzd8704), .BOUT0(), .S1(qtc3827), .S0(bn1c13c)); FSUB2 yke09e7 (.A1(psda5e1), .A0(tw3f9da), .B1(ay772e2), .B0(zx40318), .BI(dzd8704), .BOUT1(alc3f66), .BOUT0(), .S1(aa1fb34), .S0(shfd9a1)); FSUB2 xjecd0d (.A1(dzc8610), .A0(vie15c8), .B1(vi764fd), .B0(medbb14), .BI(alc3f66), .BOUT1(jc7312e), .BOUT0(), .S1(wy98973), .S0(goc4b98)); FSUB2 ba25cc1 (.A1(gb6f0c9), .A0(ec10c6f), .B1(iraeaf9), .B0(ux18596), .BI(jc7312e), .BOUT1(xj50641), .BOUT0(), .S1(pu8320f), .S0(xl1907b)); FSUB2 vvc83df (.A1(fc2fa21), .A0(uvc982f), .B1(sj8e0d), .B0(al5e34f), .BI(xj50641), .BOUT1(ayf539a), .BOUT0(), .S1(yma9cd0), .S0(gb4e680)); FSUB2 fa73405 (.A1(oh9068d), .A0(jpe9ea6), .B1(oh9068d), .B0(oh9068d), .BI(ayf539a), .BOUT1(), .BOUT0(), .S1(), .S0(ay5c741)); VHI the3a09 (.Z(oh3c44c)); FSUB2 gbe827d (.A1(ofd6c5e), .A0(ld5a793), .B1(mg242d1), .B0(osc485a), .BI(oh3c44c), .BOUT1(dm6cf8c), .BOUT0(), .S1(su67c62), .S0(ie3e311)); FSUB2 tuf1889 (.A1(jpcd4c1), .A0(bna0256), .B1(uv5e284), .B0(wwd125e), .BI(dm6cf8c), .BOUT1(xj5a0d5), .BOUT0(), .S1(psd06ae), .S0(do83573)); FSUB2 co1ab9b (.A1(wy98918), .A0(ph9952), .B1(anaee78), .B0(ph848ae), .BI(xj5a0d5), .BOUT1(jcca8f5), .BOUT0(), .S1(al547aa), .S0(mga3d55)); FSUB2 ng1eaa9 (.A1(aa1fe8e), .A0(xybd739), .B1(kd4b2a8), .B0(ay78a4b), .BI(jcca8f5), .BOUT1(by58fcd), .BOUT0(), .S1(xjc7e6a), .S0(do3f356)); FSUB2 hbf9ab3 (.A1(qi1a36b), .A0(ba139a), .B1(ho575ae), .B0(lsa8a57), .BI(by58fcd), .BOUT1(fafea05), .BOUT0(), .S1(do47a1), .S0(xya8150)); FSUB2 dz40a83 (.A1(oh9068d), .A0(iea6de0), .B1(oh9068d), .B0(oh9068d), .BI(fafea05), .BOUT1(), .BOUT0(), .S1(), .S0(dmf42ab)); AGEB2 dzc2e84 (.A1(mg242d1), .A0(osc485a), .B1(ofd6c5e), .B0(ld5a793), .CI(db84238), .GE(mg34ebd)); AGEB2 vka75e9 (.A1(uv5e284), .A0(wwd125e), .B1(jpcd4c1), .B0(bna0256), .CI(mg34ebd), .GE(ps52ebf)); AGEB2 co975fb (.A1(anaee78), .A0(ph848ae), .B1(wy98918), .B0(ph9952), .CI(ps52ebf), .GE(yxc6fde)); AGEB2 nt37ef4 (.A1(kd4b2a8), .A0(ay78a4b), .B1(aa1fe8e), .B0(xybd739), .CI(yxc6fde), .GE(vx37459)); AGEB2 rvba2cf (.A1(ho575ae), .A0(lsa8a57), .B1(qi1a36b), .B0(ba139a), .CI(vx37459), .GE(nrf9e15)); AGEB2 hocf0af (.A1(oh9068d), .A0(su6205e), .B1(oh9068d), .B0(fce507), .CI(nrf9e15), .GE(xjd8c37)); FADD2 qtc61be (.A1(oh9068d), .A0(oh9068d), .B1(oh9068d), .B0(oh9068d), .CI(xjd8c37), .COUT1(), .COUT0(), .S1(), .S0(fc83261)); AGEB2 th5ad04 (.A1(yxfd23f), .A0(rt5fa47), .B1(lf9e52c), .B0(xj641e9), .CI(ng86878), .GE(lf3d99f)); AGEB2 theccff (.A1(psda5e1), .A0(tw3f9da), .B1(ay772e2), .B0(zx40318), .CI(lf3d99f), .GE(off2943)); AGEB2 jr94a1c (.A1(dzc8610), .A0(vie15c8), .B1(vi764fd), .B0(medbb14), .CI(off2943), .GE(lf37e37)); AGEB2 lfbf1be (.A1(gb6f0c9), .A0(ec10c6f), .B1(iraeaf9), .B0(ux18596), .CI(lf37e37), .GE(dobd9a4)); AGEB2 hbecd23 (.A1(fc2fa21), .A0(uvc982f), .B1(sj8e0d), .B0(al5e34f), .CI(dobd9a4), .GE(ldf336a)); AGEB2 ng99b57 (.A1(oh9068d), .A0(fnc7d4e), .B1(oh9068d), .B0(cb8011e), .CI(ldf336a), .GE(bld7356)); FADD2 qib9ab6 (.A1(oh9068d), .A0(oh9068d), .B1(oh9068d), .B0(oh9068d), .CI(bld7356), .COUT1(), .COUT0(), .S1(), .S0(rt5fa3a)); AGEB2 yx7526e (.A1(ay670b6[1]), .A0(ay670b6[0]), .B1(su67c62), .B0(ie3e311), .CI(db84238), .GE(ana12fe)); AGEB2 xl97f5 (.A1(ay670b6[3]), .A0(ay670b6[2]), .B1(psd06ae), .B0(do83573), .CI(ana12fe), .GE(fn74e8d)); AGEB2 ria746f (.A1(ay670b6[5]), .A0(ay670b6[4]), .B1(al547aa), .B0(mga3d55), .CI(fn74e8d), .GE(ofd3065)); AGEB2 qi9832c (.A1(ay670b6[7]), .A0(ay670b6[6]), .B1(xjc7e6a), .B0(do3f356), .CI(ofd3065), .GE(nt9f2f)); AGEB2 ld4f97f (.A1(ay670b6[9]), .A0(ay670b6[8]), .B1(do47a1), .B0(xya8150), .CI(nt9f2f), .GE(xjf30e3)); AGEB2 ec9871f (.A1(oh9068d), .A0(fad51e7), .B1(oh9068d), .B0(ecaad5), .CI(xjf30e3), .GE(ipccfc7)); FADD2 ui67e3d (.A1(oh9068d), .A0(oh9068d), .B1(oh9068d), .B0(oh9068d), .CI(ipccfc7), .COUT1(), .COUT0(), .S1(), .S0(ksbc8d7)); AGEB2 lq5ddbc (.A1(qtc3827), .A0(bn1c13c), .B1(tj385b0[1]), .B0(tj385b0[0]), .CI(ng86878), .GE(xl13484)); AGEB2 mt9a426 (.A1(aa1fb34), .A0(shfd9a1), .B1(tj385b0[3]), .B0(tj385b0[2]), .CI(xl13484), .GE(eca69e9)); AGEB2 aa34f49 (.A1(wy98973), .A0(goc4b98), .B1(tj385b0[5]), .B0(tj385b0[4]), .CI(eca69e9), .GE(ip4bdc0)); AGEB2 sh5ee04 (.A1(pu8320f), .A0(xl1907b), .B1(tj385b0[7]), .B0(tj385b0[6]), .CI(ip4bdc0), .GE(db2d4da)); AGEB2 yx6a6d7 (.A1(yma9cd0), .A0(gb4e680), .B1(tj385b0[9]), .B0(tj385b0[8]), .CI(db2d4da), .GE(sue0cf8)); AGEB2 hd67c0 (.A1(oh9068d), .A0(ay5c741), .B1(oh9068d), .B0(oh9068d), .CI(sue0cf8), .GE(cb3c91c)); VLO xwe48e5 (.Z(oh9068d)); FADD2 kf23951 (.A1(oh9068d), .A0(oh9068d), .B1(oh9068d), .B0(oh9068d), .CI(cb3c91c), .COUT1(), .COUT0(), .S1(), .S0(aycb870)); assign lf16c36 = gd8e31; assign wyb61b7 = ana1e10; -always@* begin icc175e<={uve78fb>>1,eae03bd[0]};ngbaf0<=eae03bd[1];fa5d782<=eae03bd[2];faebc13<=eae03bd[3];of5e09b<=eae03bd[4];uif04dc<=eae03bd[5];co826e0<=eae03bd[6];xl13701<={ay670b6>>1,eae03bd[7]};nt9b80e<={tj385b0>>1,eae03bd[8]};end -always@* begin shdc077[2047]<=an3c7dd;shdc077[2046]<=fne3eec;shdc077[2044]<=ie1f767;shdc077[2040]<=zkfbb38;shdc077[2032]<=xjdd9c2;shdc077[2017]<=rtece16;shdc077[1987]<=ay670b6[0];shdc077[1926]<=tj385b0[0];shdc077[1023]<=uve78fb[0];end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[0]};ngbaf0<=eae03bd[1];fa5d782<=eae03bd[2];faebc13<=eae03bd[3];of5e09b<=eae03bd[4];uif04dc<=eae03bd[5];co826e0<=eae03bd[6];xl13701<={ay670b6>>1,eae03bd[7]};nt9b80e<={tj385b0>>1,eae03bd[8]};end -always@* begin shdc077[2047]<=an3c7dd;shdc077[2046]<=fne3eec;shdc077[2044]<=ie1f767;shdc077[2040]<=zkfbb38;shdc077[2032]<=xjdd9c2;shdc077[2017]<=rtece16;shdc077[1987]<=ay670b6[0];shdc077[1926]<=tj385b0[0];shdc077[1023]<=uve78fb[0];end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[0]};ngbaf0<=eae03bd[1];fa5d782<=eae03bd[2];faebc13<=eae03bd[3];of5e09b<=eae03bd[4];uif04dc<=eae03bd[5];co826e0<=eae03bd[6];xl13701<={ay670b6>>1,eae03bd[7]};nt9b80e<={tj385b0>>1,eae03bd[8]};puad6d2<=eae03bd[9];rt6b693<=eae03bd[10];cz5b49e<=eae03bd[11];dmda4f4<=eae03bd[12];nrd27a2<=eae03bd[13];je93d16<=eae03bd[14];jr9e8b3<=eae03bd[15];lqf459f<=eae03bd[16];jea2cfa<=eae03bd[17];rv167d3<=eae03bd[18];oub3e9e<=eae03bd[19];ir9f4f0<=eae03bd[20];ykfa784<=eae03bd[21];shd3c21<=eae03bd[22];db9e10d<=eae03bd[23];kqf086e<=eae03bd[24];hd84371<=eae03bd[25];ec21b8e<=eae03bd[26];yzdc70<=eae03bd[27];vv6e385<=eae03bd[28];jp71c2e<=eae03bd[29];zz8e177<=eae03bd[30];cz70bbf<=eae03bd[31];ux85dfd<=eae03bd[32];ie2efed<=eae03bd[33];kq77f69<=eae03bd[34];dbbfb48<=eae03bd[35];czfda46<=eae03bd[36];yxed235<=eae03bd[37];jc691ad<=eae03bd[38];tu48d6b<=eae03bd[39];ea46b5b<=eae03bd[40];hq35ad8<=eae03bd[41];hqad6c3<=eae03bd[42];fn6b61b<=eae03bd[43];kd5b0de<=eae03bd[44];rtd86f4<=eae03bd[45];yxc37a7<=eae03bd[46];pu1bd3d<=eae03bd[47];gode9eb<=eae03bd[48];nef4f59<=eae03bd[49];doa7acb<=eae03bd[50];vx3d65b<=eae03bd[51];pseb2de<=eae03bd[52];kq596f2<=eae03bd[53];sucb791<=eae03bd[54];yx5bc89<=eae03bd[55];ayde44d<=eae03bd[56];off2268<=eae03bd[57];nt91345<=eae03bd[58];ng89a2f<=eae03bd[59];jc4d17b<=eae03bd[60];yk68bda<=eae03bd[61];hb45ed0<=eae03bd[62];je2f687<=eae03bd[63];rt7b43a<=eae03bd[64];neda1d7<=eae03bd[65];ned0eba<=eae03bd[66];ie875d2<=eae03bd[67];ri3ae91<=eae03bd[68];ldd748a<=eae03bd[69];vxba456<=eae03bd[70];vvd22b7<=eae03bd[71];xl915be<=eae03bd[72];qv8adf7<=eae03bd[73];cm56fbc<=eae03bd[74];dob7de1<=eae03bd[75];yzbef0a<=eae03bd[76];off7854<=eae03bd[77];gqbc2a4<=eae03bd[78];zke1520<=eae03bd[79];mga903<=eae03bd[80];yx54818<=eae03bd[81];uxa40c4<=eae03bd[82];zm20625<=eae03bd[83];ph312b<=eae03bd[84];wl1895f<=eae03bd[85];goc4afc<=eae03bd[86];ba257e1<=eae03bd[87];co2bf0b<=eae03bd[88];rt5f859<=eae03bd[89];zxfc2cf<=eae03bd[90];vie167e<=eae03bd[91];hqb3f3<=eae03bd[92];me59f9b<=eae03bd[93];facfcd8<=eae03bd[94];vv7e6c2<=eae03bd[95];vvf3617<=eae03bd[96];rv9b0bf<=eae03bd[97];vvd85fe<=eae03bd[98];fnc2ff7<=eae03bd[99];qv17fbe<=eae03bd[100];ntbfdf5<=eae03bd[101];dmfefae<=eae03bd[102];czf7d72<=eae03bd[103];qvbeb94<=eae03bd[104];ayf5ca4<=eae03bd[105];epae521<=eae03bd[106];ay7290c<=eae03bd[107];bn94860<=eae03bd[108];sja4306<=eae03bd[109];ie21835<=eae03bd[110];fpc1a8<=eae03bd[111];uv60d46<=eae03bd[112];xl6a34<=eae03bd[113];do351a6<=eae03bd[114];xya8d32<=eae03bd[115];ww46992<=eae03bd[116];uk34c90<=eae03bd[117];gqa6481<=eae03bd[118];ph32408<=eae03bd[119];sw92047<=eae03bd[120];yz90238<=eae03bd[121];zz811c5<=eae03bd[122];ux8e2e<=eae03bd[123];ne47175<=eae03bd[124];hd38bab<=eae03bd[125];lqc5d5f<=eae03bd[126];ou2eafb<=eae03bd[127];ip757d9<=eae03bd[128];mtabecc<=eae03bd[129];th5f665<=eae03bd[130];jcfb32e<=eae03bd[131];czd9973<=eae03bd[132];enccb9c<=eae03bd[133];qt65ce5<=eae03bd[134];ou2e72c<=eae03bd[135];dm73960<=eae03bd[136];xy9cb02<=eae03bd[137];ose5812<=eae03bd[138];an2c090<=eae03bd[139];al60485<=eae03bd[140];wl242d<=eae03bd[141];an1216d<=eae03bd[142];kf90b6c<=eae03bd[143];mt85b64<=eae03bd[144];zz2db25<=eae03bd[145];me6d92e<=eae03bd[146];ne6c970<=eae03bd[147];xj64b82<=eae03bd[148];tw25c16<=eae03bd[149];mg2e0b2<=eae03bd[150];of70590<=eae03bd[151];gq82c84<=eae03bd[152];zz16420<=eae03bd[153];bab2106<=eae03bd[154];mt90833<=eae03bd[155];db8419c<=eae03bd[156];zm20ce6<=eae03bd[157];lf6732<=eae03bd[158];qv33997<=eae03bd[159];xy9ccbc<=eae03bd[160];rte65e2<=eae03bd[161];zz32f16<=eae03bd[162];qi978b6<=eae03bd[163];ksbc5b1<=eae03bd[164];gbe2d88<=eae03bd[165];tj16c45<=eae03bd[166];ieb622f<=eae03bd[167];qvb1179<=eae03bd[168];wy88bcc<=eae03bd[169];fn45e61<=eae03bd[170];tw2f30f<=eae03bd[171];rg7987a<=eae03bd[172];ofcc3d3<=eae03bd[173];pf61e9c<=eae03bd[174];gqf4e6<=eae03bd[175];gb7a731<=eae03bd[176];end398d<=eae03bd[177];tw9cc6d<=eae03bd[178];lde636a<=eae03bd[179];aa31b56<=eae03bd[180];co8dab1<=eae03bd[181];yk6d589<=eae03bd[182];kd6ac49<=eae03bd[183];ay5624d<=eae03bd[184];kfb1268<=eae03bd[185];ba89344<=eae03bd[186];me49a22<=eae03bd[187];by4d111<=eae03bd[188];me6888a<=eae03bd[189];of44450<=eae03bd[190];lf22284<=eae03bd[191];ba11426<=eae03bd[192];wl8a133<=eae03bd[193];fn5099d<=eae03bd[194];zz84cee<=eae03bd[195];yz26777<=eae03bd[196];cb33bbc<=eae03bd[197];ou9dde4<=eae03bd[198];vieef20<=eae03bd[199];kq77903<=eae03bd[200];aabc818<=eae03bd[201];hoe40c1<=eae03bd[202];zm2060b<=eae03bd[203];ph305b<=eae03bd[204];wl182df<=eae03bd[205];kqc16fd<=eae03bd[206];dob7e8<=eae03bd[207];ip5bf43<=eae03bd[208];dmdfa1d<=eae03bd[209];qtfd0eb<=eae03bd[210];cze875c<=eae03bd[211];os43ae5<=eae03bd[212];kf1d728<=eae03bd[213];tueb945<=eae03bd[214];ui5ca2b<=eae03bd[215];qge5158<=eae03bd[216];vx28ac1<=eae03bd[217];jp4560e<=eae03bd[218];uk2b076<=eae03bd[219];zk583b0<=eae03bd[220];icc1d83<=eae03bd[221];riec19<=eae03bd[222];lq760ca<=eae03bd[223];phb0653<=eae03bd[224];pu8329e<=eae03bd[225];xl194f3<=eae03bd[226];tuca79f<=eae03bd[227];ea53cfb<=eae03bd[228];vx9e7d9<=eae03bd[229];blf3ece<=eae03bd[230];ir9f676<=eae03bd[231];zkfb3b4<=eae03bd[232];ald9da3<=eae03bd[233];meced1c<=eae03bd[234];xw768e0<=eae03bd[235];cbb4702<=eae03bd[236];oua3814<=eae03bd[237];fp1c0a1<=eae03bd[238];eae050f<=eae03bd[239];cb2879<=eae03bd[240];ri143cc<=eae03bd[241];uxa1e63<= -eae03bd[242];ukf31c<=eae03bd[243];ne798e1<=eae03bd[244];ipcc70b<=eae03bd[245];rg6385c<=eae03bd[246];db1c2e3<=eae03bd[247];pse171f<=eae03bd[248];lsb8fb<=eae03bd[249];os5c7da<=eae03bd[250];ble3ed1<=eae03bd[251];co1f68f<=eae03bd[252];dmfb478<=eae03bd[253];fada3c3<=eae03bd[254];ayd1e1a<=eae03bd[255];kf8f0d0<=eae03bd[256];kq78685<=eae03bd[257];gbc3428<=eae03bd[258];aa1a145<=eae03bd[259];ned0a28<=eae03bd[260];kf85142<=eae03bd[261];fp28a14<=eae03bd[262];ld450a6<=eae03bd[263];nt28536<=eae03bd[264];zk429b7<=eae03bd[265];tw14dba<=eae03bd[266];eca6dd2<=eae03bd[267];cb36e91<=eae03bd[268];pub748c<=eae03bd[269];vxba463<=eae03bd[270];vvd231f<=eae03bd[271];xl918fe<=eae03bd[272];ls8c7f6<=eae03bd[273];ps63fb2<=eae03bd[274];ks1fd93<=eae03bd[275];tufec99<=eae03bd[276];blf64ca<=eae03bd[277];lsb2657<=eae03bd[278];ng932bb<=eae03bd[279];je995da<=eae03bd[280];lqcaed3<=eae03bd[281];ps5769a<=eae03bd[282];anbb4d2<=eae03bd[283];hoda695<=eae03bd[284];shd34aa<=eae03bd[285];yz9a554<=eae03bd[286];zxd2aa4<=eae03bd[287];gd95527<=eae03bd[288];lfaa93d<=eae03bd[289];kd549ef<=eae03bd[290];mta4f7c<=eae03bd[291];lf27be4<=eae03bd[292];hd3df27<=eae03bd[293];kqef93f<=eae03bd[294];by7c9f9<=eae03bd[295];pse4fcb<=eae03bd[296];jr27e5a<=eae03bd[297];pu3f2d7<=eae03bd[298];zxf96bb<=eae03bd[299];uicb5de<=eae03bd[300];pf5aef1<=eae03bd[301];jpd778f<=eae03bd[302];epbbc7e<=eae03bd[303];icde3f4<=eae03bd[304];zkf1fa0<=eae03bd[305];wl8fd03<=eae03bd[306];end -always@* begin shdc077[2047]<=an3c7dd;shdc077[2046]<=fne3eec;shdc077[2044]<=ie1f767;shdc077[2040]<=zkfbb38;shdc077[2032]<=xjdd9c2;shdc077[2030]<=vxb5fa1;shdc077[2028]<=tw8923e;shdc077[2017]<=rtece16;shdc077[2012]<=ym1f209;shdc077[2008]<=kdf2b23;shdc077[2005]<=fc83261;shdc077[1992]<=psd06ae;shdc077[1988]<=uxdb2a;shdc077[1987]<=ay670b6[0];shdc077[1977]<=gd36998;shdc077[1969]<=fpaf81f;shdc077[1962]<=xjd8c37;shdc077[1937]<=mga3d55;shdc077[1928]<=vi42afb;shdc077[1926]<=tj385b0[0];shdc077[1906]<=dmfe504;shdc077[1891]<=pse41ee;shdc077[1877]<=db84238;shdc077[1876]<=ho73e4e;shdc077[1866]<=lsb2b92;shdc077[1842]<=qg77b88;shdc077[1837]<=qtc3827;shdc077[1831]<=cb8510c;shdc077[1826]<=xj5a0d5;shdc077[1809]<=qi8dcd0;shdc077[1805]<=cm6287a;shdc077[1804]<=uk10d0f;shdc077[1803]<=me4c17d;shdc077[1801]<=ksbc8d7;shdc077[1764]<=vx28a0b;shdc077[1761]<=kqce314;shdc077[1748]<=gd3cf5c;shdc077[1746]<=xl1907b;shdc077[1739]<=ofd3065;shdc077[1734]<=ne7c0ff;shdc077[1733]<=ux18596;shdc077[1727]<=fc164c;shdc077[1707]<=vx960d;shdc077[1705]<=xj641e9;shdc077[1696]<=dmc506a;shdc077[1684]<=zm93d75;shdc077[1683]<=gb4e680;shdc077[1681]<=uvd9701;shdc077[1668]<=hoc5259;shdc077[1660]<=oh3c44c;shdc077[1636]<=fn6e49f;shdc077[1633]<=mrc6794;shdc077[1628]<=nt9f2f;shdc077[1627]<=shfd9a1;shdc077[1614]<=co341f5;shdc077[1607]<=xl1638a;shdc077[1604]<=al547aa;shdc077[1587]<=qte84e9;shdc077[1578]<=gb6f0c9;shdc077[1574]<=vid06a9;shdc077[1571]<=ps738fb;shdc077[1567]<=qi1a36b;shdc077[1563]<=oh9068d;shdc077[1562]<=bna0ec7;shdc077[1560]<=mg10847;shdc077[1558]<=me7d10b;shdc077[1555]<=pf5f365;shdc077[1554]<=ipccfc7;shdc077[1550]<=pfe91fc;shdc077[1548]<=yxc6fde;shdc077[1531]<=jp71247;shdc077[1493]<=rt5fa3a;shdc077[1484]<=hb7baa4;shdc077[1481]<=jeb78ae;shdc077[1475]<=nr718a1;shdc077[1474]<=ecaad5;shdc077[1464]<=xy1b38c;shdc077[1460]<=alc3f66;shdc077[1458]<=uide76b;shdc077[1448]<=ld6e606;shdc077[1444]<=jc7312e;shdc077[1431]<=shed630;shdc077[1420]<=an9a9d3;shdc077[1418]<=iraeaf9;shdc077[1417]<=ip4bdc0;shdc077[1411]<=ph848ae;shdc077[1406]<=db8e248;shdc077[1397]<=cb8011e;shdc077[1395]<=al4b55d;shdc077[1388]<=kdc379d;shdc077[1378]<=ps79fd0;shdc077[1373]<=fc2fa21;shdc077[1371]<=ana12fe;shdc077[1366]<=jc760c3;shdc077[1362]<=lf9e52c;shdc077[1354]<=yxfd23f;shdc077[1345]<=twbd919;shdc077[1334]<=medbb14;shdc077[1323]<=gd9f8df;shdc077[1321]<=zx40318;shdc077[1320]<=hd94841;shdc077[1318]<=xj50641;shdc077[1314]<=kf90665;shdc077[1300]<=nga760e;shdc077[1288]<=kq59545;shdc077[1287]<=zzceee;shdc077[1273]<=su67c62;shdc077[1257]<=lq6cbbf;shdc077[1253]<=anae5af;shdc077[1242]<=fa69a9c;shdc077[1240]<=vie15c8;shdc077[1234]<=fafea05;shdc077[1231]<=aaa6dde;shdc077[1224]<=uk8875a;shdc077[1219]<=uv4b659;shdc077[1218]<=cz651af;shdc077[1208]<=yxc6172;shdc077[1206]<=dzd8704;shdc077[1198]<=vv4f023;shdc077[1196]<=vv6bbcf;shdc077[1190]<=tw3f9da;shdc077[1186]<=wj7532a;shdc077[1180]<=cm4c960;shdc077[1177]<=ay5c741;shdc077[1167]<=ym21624;shdc077[1161]<=do3f356;shdc077[1160]<=ofd6c5e;shdc077[1150]<=rg63e74;shdc077[1131]<=pub2248;shdc077[1126]<=nt3fd1;shdc077[1112]<=uv5e284;shdc077[1109]<=dobd9a4;shdc077[1106]<=ana1e10;shdc077[1101]<=xya8150;shdc077[1100]<=db2d4da;shdc077[1094]<=qv9f0d5;shdc077[1093]<=mg34ebd;shdc077[1086]<=lsa8a57;shdc077[1076]<=mg21689;shdc077[1072]<=su4cd40;shdc077[1069]<=fcb121;shdc077[1063]<=kd54432;shdc077[1061]<=ng86878;shdc077[1056]<=phbad72;shdc077[1055]<=kq6dea3;shdc077[1052]<=blfced2;shdc077[1048]<=xybd739;shdc077[1028]<=yx54574;shdc077[1023]<=uve78fb[0];shdc077[1015]<=qtfd7fa;shdc077[1014]<=zz32c7f;shdc077[1002]<=su6205e;shdc077[996]<=dm6cf8c;shdc077[994]<=ir857bb;shdc077[938]<=bld7356;shdc077[933]<=gbf27ae;shdc077[921]<=mgb992f;shdc077[918]<=bn1c13c;shdc077[915]<=mre7cae;shdc077[902]<=do8c50f;shdc077[901]<=qg7864c;shdc077[900]<=fad51e7;shdc077[880]<=qtd9c62;shdc077[874]<=eaea018;shdc077[873]<=wy98973;shdc077[869]<=thf3b58;shdc077[866]<=lf37e37;shdc077[863]<=med1c49;shdc077[848]<=pu997a9;shdc077[841]<=pu8320f;shdc077[840]<=ie3b2e0;shdc077[834]<=yk773c5;shdc077[830]<=ie3e311;shdc077[816]<=anbee41;shdc077[814]<=pf6b185;shdc077[803]<=wy559d;shdc077[793]<=cme07fa;shdc077[789]<=ec10c6f;shdc077[787]<=sufa0d5;shdc077[783]<=ba139a;shdc077[781]<=cb3c91c;shdc077[777]<=lqee0f9;shdc077[775]<=twb7f1d;shdc077[774]<=anaee78;shdc077[765]<=bn13340;shdc077[746]<=fnc7d4e;shdc077[742]<=qg53cd7;shdc077[737]<=xjf30e3;shdc077[732]<=ep23671;shdc077[730]<=goc4b98;shdc077[729]<=fn74e8d;shdc077[708]<=xwcfe83;shdc077[705]<=wy98918;shdc077[698]<=ldf336a;shdc077[697]<=yxc3544;shdc077[694]<=mt186f3;shdc077[689]<=eca69e9;shdc077[686]<=uvc982f;shdc077[685]<=zzb061b;shdc077[677]<=rt5fa47;shdc077[667]<=off2943;shdc077[661]<=ld5f8b9;shdc077[660]<=lf3d99f;shdc077[650]<=nta035d;shdc077[643]<=ipf79c5;shdc077[628]<=os774cd;shdc077[626]<=wl23d30;shdc077[621]<=iebc062;shdc077[620]<=vi764fd;shdc077[617]<=dmf42ab;shdc077[615]<=jpe9ea6;shdc077[609]<=sue0cf8;shdc077[599]<=mef5856;shdc077[598]<=xl13484;shdc077[595]<=ay772e2;shdc077[593]<=hd9ebab;shdc077[588]<=yma9cd0;shdc077[580]<=ld5a793;shdc077[575]<=uk34943;shdc077[565]<=rib75b1;shdc077[556]<=wwd125e;shdc077[553]<=gd8e31;shdc077[550]<=xjc7e6a;shdc077[546]<=mg242d1;shdc077[528]<=hb452ba;shdc077[527]<=tuc0cca;shdc077[514]<=mt8a8ae;shdc077[507]<=xjc7184;shdc077[501]<=fce507;shdc077[498]<=do83573;shdc077[497]<=hd378a0;shdc077[466]<=xj4f8b2;shdc077[459]<=yk72b5b;shdc077[450]<=pu86378;shdc077[437]<=fp942e5;shdc077[433]<=dzc8610;shdc077[431]<=uk1f410;shdc077[420]<=iea6de0;shdc077[417]<=uk24577;shdc077[415]<=wl36ef1;shdc077[408]<=vxa59a6;shdc077[401]<=co1ac37;shdc077[391]<=vx37459;shdc077[390]<=aycb870;shdc077[388]<=ng1100c;shdc077[387]<=gb65dfa;shdc077[368]<=pu30b95;shdc077[366]<=ou246ce;shdc077[365]<=aa1fb34;shdc077[352]<=ph9952;shdc077[348]<=ay53911;shdc077[344]<=lq5de7f;shdc077[343]<=sj8e0d;shdc077[333]<=psda5e1;shdc077[330]<=mre2814;shdc077[325]<=uif5d5f;shdc077[314]<=xjcd977;shdc077[313]<=mg34010;shdc077[310]<=ou2b17f;shdc077[308]<=do47a1;shdc077[307]<=ayf539a;shdc077[304]<=lqd52d9;shdc077[299]<=ks5aef;shdc077[287]<=me675cd;shdc077[282]<=ld454ea;shdc077[278]<=jpcd4c1;shdc077[275]<=jcca8f5;shdc077[273]<=osc485a;shdc077[257]<=vv71515;shdc077[253]<=jpe9cf9;shdc077[250]<=nrf9e15;shdc077[248]<=kqde7bd;shdc077[225]<=cm43086;shdc077[215]<=rie809;shdc077[208]<=rgf1424;shdc077[204]<=rt6be72;shdc077[195]<=kd4b2a8;shdc077[193]<=swa6d19;shdc077[183]<=dz648d9;shdc077[176]<=ps52ebf;shdc077[171]<=al5e34f;shdc077[165]<=ou8d7e9;shdc077[157]<=hdaa0f5;shdc077[155]<=jra562f;shdc077[154]<=by58fcd;shdc077[152]<=wy1aa5b;shdc077[149]<=rt40b5d;shdc077[141]<=nt8bd4c;shdc077[139]<=bna0256;shdc077[128]<=yx4e2a2;shdc077[125]<=ho575ae;shdc077[124]<=ne4d871;shdc077[112]<=gqae43;shdc077[104]<=hq892f1;shdc077[97]<=ay78a4b;shdc077[96]<=ay491f2;shdc077[91]<=me4c91b;shdc077[78]<=fnf9b2e;shdc077[77]<=hb74ac5;shdc077[74]<= -ls960a9;shdc077[64]<=ui72d7c;shdc077[62]<=ks24221;shdc077[56]<=fnd2f0a;shdc077[48]<=aa1fe8e;shdc077[38]<=epae958;shdc077[19]<=wy15d2b;shdc077[9]<=xya2ba5;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[1]};ohb4114<=eae03bd[2];jra08a4<={an8c7c>>1,eae03bd[3]};ls4526<=eae03bd[4];nt22932<=eae03bd[5];vk14997<={mrc99c0>>1,eae03bd[6]};wla4cba<={ay4ce05>>1,eae03bd[7]};mt265d4<={ic67029>>1,eae03bd[8]};lf32ea4<={fp38148>>1,eae03bd[9]};ie97526<={rgc0a46>>1,eae03bd[10]};xlba930<={ks5233>>1,eae03bd[11]};ead4986<=eae03bd[12];qva4c30<=eae03bd[13];qv26184<=eae03bd[14];pu30c24<=eae03bd[15];tw86123<={co98acd>>1,eae03bd[16]};ba3091b<=eae03bd[17];nt848db<=eae03bd[18];ec246df<={ea59a10>>1,eae03bd[19]};cb236f9<=eae03bd[20];hq1b7cc<=eae03bd[21];qgdbe62<={xw42031>>1,eae03bd[22]};psdf311<=eae03bd[23];fnf988a<=eae03bd[24];wjcc457<=eae03bd[25];yk622bc<=eae03bd[26];ba115e0<=eae03bd[27];wl8af03<={su59bc7>>1,eae03bd[28]};zk5781c<=eae03bd[29];ecbc0e3<=eae03bd[30];ice0718<=eae03bd[31];jr38c1<=eae03bd[32];xl1c60e<=eae03bd[33];vve3077<=eae03bd[34];ep183be<=eae03bd[35];wwc1df5<=eae03bd[36];zmefa9<=eae03bd[37];ww77d4a<={gb7fd10>>1,eae03bd[38]};uxbea50<=eae03bd[39];gof5284<=eae03bd[40];uka9420<=eae03bd[41];fn4a101<=eae03bd[42];zx5080f<=eae03bd[43];db8407e<=eae03bd[44];zm203f6<=eae03bd[45];ng1fb3<=eae03bd[46];ecfd9b<=eae03bd[47];end -always@* begin shdc077[2047]<=ph28231[0];shdc077[2046]<=force_isolate;shdc077[2044]<=an8c7c[0];shdc077[2041]<=ic463e5;shdc077[2034]<=qi31f29;shdc077[2021]<=mrc99c0[0];shdc077[2017]<=qg68406;shdc077[1995]<=ay4ce05[0];shdc077[1986]<=xw42031[0];shdc077[1943]<=ic67029[0];shdc077[1925]<=gq1018b;shdc077[1908]<=vx38f0f;shdc077[1864]<=aaffa2;shdc077[1855]<=co98acd[0];shdc077[1838]<=fp38148[0];shdc077[1803]<=kf80c59;shdc077[1769]<=vvc787f;shdc077[1680]<=gb7fd10[0];shdc077[1662]<=dmc5668;shdc077[1628]<=rgc0a46[0];shdc077[1559]<=jr62cd;shdc077[1501]<=go78e3c;shdc077[1490]<=oh3c3fe;shdc077[1487]<=ww4662b;shdc077[1312]<=zkfe884;shdc077[1276]<=ym2b342;shdc077[1209]<=ks5233[0];shdc077[1155]<=lsa2112;shdc077[1070]<=ym3166f;shdc077[1048]<=nt22486;shdc077[1023]<=gbe_mode;shdc077[1008]<=vvcd080;shdc077[954]<=fnc71e1;shdc077[932]<=lqe1ff4;shdc077[927]<=an33159;shdc077[750]<=ip6f1c7;shdc077[743]<=fa48cc5;shdc077[577]<=vif4422;shdc077[524]<=lf84490;shdc077[504]<=ea59a10[0];shdc077[375]<=dzcde38;shdc077[371]<=ep29198;shdc077[262]<=aa10892;shdc077[197]<=ep90da0;shdc077[187]<=su59bc7[0];shdc077[98]<=wy921b4;shdc077[93]<=lf8b378;shdc077[49]<=sj12436;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[2]};ls4526<=eae03bd[3];nt22932<=eae03bd[4];jp553cf<=eae03bd[5];gqa9e7f<=eae03bd[6];th4f3f8<={ayead3e>>1,eae03bd[7]};vk14997<={mrc99c0>>1,eae03bd[8]};wla4cba<={ay4ce05>>1,eae03bd[9]};mt265d4<={ic67029>>1,eae03bd[10]};lf32ea4<={fp38148>>1,eae03bd[11]};ie97526<={rgc0a46>>1,eae03bd[12]};xlba930<={ks5233>>1,eae03bd[13]};ead4986<=eae03bd[14];qva4c30<=eae03bd[15];qv26184<=eae03bd[16];pu30c24<=eae03bd[17];ice0718<=eae03bd[18];jr38c1<=eae03bd[19];rt5a511<=eae03bd[20];zmefa9<=eae03bd[21];ww77d4a<={gb7fd10>>1,eae03bd[22]};uxbea50<=eae03bd[23];do11dfa<=eae03bd[24];jr8efd2<=eae03bd[25];ecbc0e3<=eae03bd[26];tw86123<={co98acd>>1,eae03bd[27]};nt848db<=eae03bd[28];ba3091b<=eae03bd[29];ri961cf<=eae03bd[30];rvb0e7a<=eae03bd[31];wl8af03<={su59bc7>>1,eae03bd[32]};ba115e0<=eae03bd[33];yk622bc<=eae03bd[34];wj7ae6b<=eae03bd[35];zxd735c<=eae03bd[36];aab9ae6<={pu2fa51>>1,eae03bd[37]};jpcd731<=eae03bd[38];bl6b98e<=eae03bd[39];go5cc77<=eae03bd[40];lde63b8<=eae03bd[41];wwc1df5<=eae03bd[42];vve3077<=eae03bd[43];su7718e<=eae03bd[44];gof5284<=eae03bd[45];uka9420<=eae03bd[46];fn4a101<=eae03bd[47];zx5080f<=eae03bd[48];db8407e<=eae03bd[49];zm203f6<=eae03bd[50];ng1fb3<=eae03bd[51];ecfd9b<=eae03bd[52];end -always@* begin shdc077[2047]<=force_isolate;shdc077[2046]<=an8c7c[0];shdc077[2044]<=ic463e5;shdc077[2040]<=qi31f29;shdc077[2032]<=qva4f56;shdc077[2017]<=rv27ab4;shdc077[1987]<=ayead3e[0];shdc077[1926]<=mrc99c0[0];shdc077[1805]<=ba20be9;shdc077[1804]<=ay4ce05[0];shdc077[1803]<=zkfe884;shdc077[1761]<=su59bc7[0];shdc077[1668]<=lqe1ff4;shdc077[1562]<=ym5f4a;shdc077[1560]<=ic67029[0];shdc077[1558]<=ng837ab;shdc077[1550]<=ww4662b;shdc077[1475]<=lf8b378;shdc077[1464]<=medb224;shdc077[1288]<=vvc787f;shdc077[1076]<=pu2fa51[0];shdc077[1072]<=fp38148[0];shdc077[1069]<=fc1bd5b;shdc077[1056]<=vif4422;shdc077[1052]<=an33159;shdc077[1028]<=sj12436;shdc077[1023]<=gbe_mode;shdc077[902]<=ym3166f;shdc077[901]<=gb7fd10[0];shdc077[880]<=gbd9120;shdc077[834]<=sh5163f;shdc077[775]<=fa48cc5;shdc077[732]<=dmc5668;shdc077[528]<=thc7f7a;shdc077[514]<=nt22486;shdc077[450]<=aaffa2;shdc077[417]<=bl4a2c7;shdc077[387]<=ep29198;shdc077[366]<=ym2b342;shdc077[257]<=lf84490;shdc077[225]<=tw35e83;shdc077[208]<=nre9458;shdc077[193]<=ks5233[0];shdc077[183]<=co98acd[0];shdc077[128]<=aa10892;shdc077[112]<=fnc71e1;shdc077[104]<=os7d28b;shdc077[96]<=rgc0a46[0];shdc077[91]<=ip6f1c7;shdc077[64]<=lsa2112;shdc077[56]<=go78e3c;shdc077[19]<=ep90da0;shdc077[9]<=wy921b4;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[3]};ls4526<=eae03bd[4];nt22932<=eae03bd[5];vk25af2<={gb5e68a>>1,eae03bd[6]};vk14997<={mrc99c0>>1,eae03bd[7]};wla4cba<={ay4ce05>>1,eae03bd[8]};mt265d4<={ic67029>>1,eae03bd[9]};lf32ea4<={fp38148>>1,eae03bd[10]};ie97526<={rgc0a46>>1,eae03bd[11]};xlba930<={ks5233>>1,eae03bd[12]};ead4986<=eae03bd[13];qva4c30<=eae03bd[14];qv26184<=eae03bd[15];pu30c24<=eae03bd[16];ww77d4a<={gb7fd10>>1,eae03bd[17]};uxbea50<=eae03bd[18];do11dfa<=eae03bd[19];ecbc0e3<=eae03bd[20];tw86123<={co98acd>>1,eae03bd[21]};nt848db<=eae03bd[22];ba3091b<=eae03bd[23];gof5284<=eae03bd[24];uka9420<=eae03bd[25];fn4a101<=eae03bd[26];zx5080f<=eae03bd[27];db8407e<=eae03bd[28];zm203f6<=eae03bd[29];ng1fb3<=eae03bd[30];ecfd9b<=eae03bd[31];end -always@* begin shdc077[2047]<=fa47021;shdc077[2046]<=force_isolate;shdc077[2044]<=an8c7c[0];shdc077[2041]<=ic463e5;shdc077[2035]<=qi31f29;shdc077[2022]<=gb5e68a[0];shdc077[1996]<=mrc99c0[0];shdc077[1945]<=ay4ce05[0];shdc077[1922]<=lsa2112;shdc077[1842]<=ic67029[0];shdc077[1797]<=aa10892;shdc077[1776]<=ym2b342;shdc077[1637]<=fp38148[0];shdc077[1622]<=fa48cc5;shdc077[1546]<=lf84490;shdc077[1504]<=dmc5668;shdc077[1468]<=ip6f1c7;shdc077[1391]<=zkfe884;shdc077[1226]<=rgc0a46[0];shdc077[1197]<=ww4662b;shdc077[1044]<=nt22486;shdc077[1023]<=gbe_mode;shdc077[961]<=vif4422;shdc077[888]<=co98acd[0];shdc077[811]<=ep29198;shdc077[734]<=ng837ab;shdc077[695]<=gb7fd10[0];shdc077[405]<=ks5233[0];shdc077[347]<=an33159;shdc077[164]<=ep90da0;shdc077[82]<=wy921b4;shdc077[41]<=sj12436;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[3]};ls4526<=eae03bd[4];nt22932<=eae03bd[5];jp553cf<=eae03bd[6];gqa9e7f<=eae03bd[7];vk25af2<={gb5e68a>>1,eae03bd[8]};vk14997<={mrc99c0>>1,eae03bd[9]};wla4cba<={ay4ce05>>1,eae03bd[10]};mt265d4<={ic67029>>1,eae03bd[11]};lf32ea4<={fp38148>>1,eae03bd[12]};ie97526<={rgc0a46>>1,eae03bd[13]};xlba930<={ks5233>>1,eae03bd[14]};ead4986<=eae03bd[15];qva4c30<=eae03bd[16];qv26184<=eae03bd[17];pu30c24<=eae03bd[18];ww77d4a<={gb7fd10>>1,eae03bd[19]};uxbea50<=eae03bd[20];do11dfa<=eae03bd[21];ecbc0e3<=eae03bd[22];tw86123<={co98acd>>1,eae03bd[23]};nt848db<=eae03bd[24];ba3091b<=eae03bd[25];ri961cf<=eae03bd[26];rvb0e7a<=eae03bd[27];gof5284<=eae03bd[28];uka9420<=eae03bd[29];fn4a101<=eae03bd[30];zx5080f<=eae03bd[31];db8407e<=eae03bd[32];zm203f6<=eae03bd[33];ng1fb3<=eae03bd[34];ecfd9b<=eae03bd[35];end -always@* begin shdc077[2047]<=force_isolate;shdc077[2046]<=fa47021;shdc077[2044]<=an8c7c[0];shdc077[2040]<=ic463e5;shdc077[2033]<=qi31f29;shdc077[2019]<=qva4f56;shdc077[1999]<=ep90da0;shdc077[1991]<=rv27ab4;shdc077[1934]<=gb5e68a[0];shdc077[1892]<=zkfe884;shdc077[1851]<=ep29198;shdc077[1820]<=mrc99c0[0];shdc077[1737]<=ng837ab;shdc077[1654]<=fa48cc5;shdc077[1610]<=ym2b342;shdc077[1593]<=ay4ce05[0];shdc077[1523]<=sj12436;shdc077[1426]<=ip6f1c7;shdc077[1404]<=lf84490;shdc077[1260]<=ww4662b;shdc077[1199]<=vif4422;shdc077[1173]<=dmc5668;shdc077[1139]<=ic67029[0];shdc077[1023]<=gbe_mode;shdc077[999]<=wy921b4;shdc077[946]<=gb7fd10[0];shdc077[925]<=ks5233[0];shdc077[805]<=co98acd[0];shdc077[761]<=nt22486;shdc077[702]<=aa10892;shdc077[599]<=gbd9120;shdc077[473]<=an33159;shdc077[462]<=rgc0a46[0];shdc077[351]<=lsa2112;shdc077[299]<=medb224;shdc077[231]<=fp38148[0];end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[6]};tu795c3<=eae03bd[7];zkcae1a<=eae03bd[8];xw570d2<=eae03bd[9];lsb8692<=eae03bd[10];ofc3492<=eae03bd[11];mg1a495<={cb850a4>>1,eae03bd[12]};hbd24a8<={tj28524>>1,eae03bd[13]};mg92546<={vi42927>>1,eae03bd[14]};aa92a30<={ng1493a>>1,eae03bd[15]};oh95181<={kfa49d2>>1,eae03bd[16]};vka8c0d<=eae03bd[17];go4606a<=eae03bd[18];ba30351<=eae03bd[19];jr81a8a<=eae03bd[20];and457<=eae03bd[21];gb6a2bc<=eae03bd[22];sh515e4<={gb7a77f>>1,eae03bd[23]};cb8af25<=eae03bd[24];vi5792c<={sw9dfed>>1,eae03bd[25]};ymbc963<=eae03bd[26];rge4b19<={al7fb41>>1,eae03bd[27]};xy258ca<={enfda0c>>1,eae03bd[28]};ux2c652<={ofed065>>1,eae03bd[29]};dm63295<={wj41969>>1,eae03bd[30]};rv194aa<={bncb4d>>1,eae03bd[31]};xwca557<={sh65a6f>>1,eae03bd[32]};lq52abb<={hd2d37c>>1,eae03bd[33]};yz955db<={dm69be7>>1,eae03bd[34]};zzaaedd<={tu4df3a>>1,eae03bd[35]};rg576ef<=eae03bd[36];qvbb77a<=eae03bd[37];eadbbd5<=eae03bd[38];zxddea9<=eae03bd[39];eaef54e<=eae03bd[40];cz7aa70<=eae03bd[41];tud5384<=eae03bd[42];iea9c23<=eae03bd[43];ip4e118<=eae03bd[44];wj708c5<=eae03bd[45];zz8462d<=eae03bd[46];ux2316e<=eae03bd[47];wl18b74<=eae03bd[48];hoc5ba4<={suefa11>>1,eae03bd[49]};lf2dd23<=eae03bd[50];hb6e91e<=eae03bd[51];fn748f7<=eae03bd[52];sja47bf<=eae03bd[53];kf23dfd<=eae03bd[54];xy1efed<={rg48ada>>1,eae03bd[55]};uvf7f6b<=eae03bd[56];fpbfb5c<=eae03bd[57];shfdae6<=eae03bd[58];wjed735<=eae03bd[59];vv6b9ad<={wjd3c22>>1,eae03bd[60]};kq5cd6f<=eae03bd[61];rte6b78<=eae03bd[62];ba35bc7<=eae03bd[63];lsade3b<=eae03bd[64];gb6f1da<=eae03bd[65];qg78ed4<={qvae3b8>>1,eae03bd[66]};hbc76a1<=eae03bd[67];ie3b50f<=eae03bd[68];tuda879<=eae03bd[69];med43cb<={fcb89f1>>1,eae03bd[70]};end -always@* begin shdc077[2047]<=sgmii_mode;shdc077[2046]<=force_unidir;shdc077[2044]<=mr_main_reset;shdc077[2040]<=mr_restart_an;shdc077[2032]<=mr_an_enable;shdc077[2016]<=mr_adv_ability[1];shdc077[2014]<=fcb89f1[1];shdc077[1985]<=fp9ed2a;shdc077[1927]<=gof08ae;shdc077[1922]<=lfa55f5;shdc077[1867]<=ri1427a;shdc077[1807]<=bn84571;shdc077[1804]<=hocfbe8;shdc077[1797]<=fc2afaf;shdc077[1761]<=zxe967d;shdc077[1686]<=uxa13d3;shdc077[1623]<=vk8915b;shdc077[1567]<=lf22b8e;shdc077[1561]<=ic7df42;shdc077[1558]<=enfda0c[0];shdc077[1547]<=ne57d7b;shdc077[1542]<=vi7ce9d;shdc077[1505]<=wjd3c22[1];shdc077[1490]<=sw24e94;shdc077[1475]<=sh4b3ef;shdc077[1413]<=ayeff68;shdc077[1409]<=dm69be7[0];shdc077[1400]<=sh5b4f0;shdc077[1324]<=bn9e9d;shdc077[1200]<=gb7a77f[0];shdc077[1199]<=rg48ada[0];shdc077[1086]<=ec15c77;shdc077[1074]<=suefa11[1];shdc077[1068]<=ofed065[0];shdc077[1047]<=ohbebdb;shdc077[1037]<=vk3a75c;shdc077[1023]<=gbe_mode;shdc077[1007]<=kq7713e;shdc077[963]<=jr9e115;shdc077[933]<=ps4284f;shdc077[902]<=ww59f7d;shdc077[880]<=ep1d2cf;shdc077[811]<=ba1122b;shdc077[779]<=al7fb41[0];shdc077[771]<=tu4df3a[0];shdc077[752]<=byda784;shdc077[745]<=kfa49d2[0];shdc077[706]<=sw9dfed[0];shdc077[704]<=hd2d37c[0];shdc077[700]<=gq2b69e;shdc077[600]<=th4f4ef;shdc077[503]<=rv8ee27;shdc077[440]<=ble3a59;shdc077[405]<=tu42245;shdc077[372]<=ng1493a[0];shdc077[353]<=end3bfd;shdc077[352]<=sh65a6f[0];shdc077[350]<=rt456d3;shdc077[251]<=vv71dc4;shdc077[220]<=os5c74b;shdc077[202]<=wje8448;shdc077[186]<=vi42927[0];shdc077[176]<=bncb4d[0];shdc077[125]<=qvae3b8[0];shdc077[110]<=pseb8e9;shdc077[101]<=me7d089;shdc077[93]<=tj28524[0];shdc077[88]<=wj41969[0];shdc077[55]<=qi9d71d;shdc077[46]<=cb850a4[0];shdc077[27]<=uvd3ae3;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[4]};wje70fc<=eae03bd[5];nt387e4<=eae03bd[6];zkcae1a<=eae03bd[7];gq1f934<=eae03bd[8];pffc9a1<={bl7b70e>>1,eae03bd[9]};xwe4d0f<=eae03bd[10];ux2687a<=eae03bd[11];ym343d5<=eae03bd[12];kfa1ea8<={mg249fa>>1,eae03bd[13]};swf544<={ie24fd0>>1,eae03bd[14]};yx7aa21<={fp27e80>>1,eae03bd[15]};ned510c<={je3f407>>1,eae03bd[16]};nga8863<={ayfa03b>>1,eae03bd[17]};wj4431a<=eae03bd[18];uk218d4<=eae03bd[19];xlc6a0<=eae03bd[20];ho63506<=eae03bd[21];uk1a832<=eae03bd[22];uid4191<=eae03bd[23];tja0c89<=eae03bd[24];ph644e<=eae03bd[25];xl32277<=eae03bd[26];hd913bf<=eae03bd[27];ri89dff<=eae03bd[28];qt4effb<=eae03bd[29];cm77fdc<=eae03bd[30];rvbfee0<=eae03bd[31];icff706<=eae03bd[32];tufb831<=eae03bd[33];aldc18a<=eae03bd[34];qge0c55<=eae03bd[35];rv62a8<=eae03bd[36];ks31547<=eae03bd[37];cb8aa38<=eae03bd[38];xj551c4<=eae03bd[39];pua8e27<=eae03bd[40];lq4713a<=eae03bd[41];rv389d3<={lf382f0>>1,eae03bd[42]};mec4e9f<={mec1786>>1,eae03bd[43]};zz274f9<=eae03bd[44];je3a7ce<=eae03bd[45];czd3e73<=eae03bd[46];ep9f39d<=eae03bd[47];vvf9cec<=eae03bd[48];suce767<=eae03bd[49];xw73b39<=eae03bd[50];aa9d9ca<=eae03bd[51];pfece50<=eae03bd[52];kq67286<=eae03bd[53];ux39430<=eae03bd[54];hoca184<=eae03bd[55];pf50c23<=eae03bd[56];zm8611e<=eae03bd[57];xy308f3<={ip5e6ab>>1,eae03bd[58]};hd8479b<={blf355c>>1,eae03bd[59]};hbc76a1<=eae03bd[60];ie3b50f<=eae03bd[61];vvf37aa<=eae03bd[62];rv9bd57<=eae03bd[63];wwdeabf<=eae03bd[64];kqf55f9<=eae03bd[65];gof5284<=eae03bd[66];uka9420<=eae03bd[67];rvbf23b<={ipe8b9b>>1,eae03bd[68]};end -always@* begin shdc077[2047]<=sgmii_mode;shdc077[2046]<=gbe_mode;shdc077[2044]<=zzbf298;shdc077[2041]<=hb5a0eb;shdc077[2040]<=rx_data[0];shdc077[2035]<=rgd075e;shdc077[2033]<=rx_kcntl;shdc077[2024]<=ie3b2ed;shdc077[2022]<=tw83af3;shdc077[2018]<=su531f3;shdc077[2001]<=uvd9769;shdc077[1997]<=yz1d79a;shdc077[1988]<=lfa55f5;shdc077[1954]<=uicbb4d;shdc077[1946]<=byebcd5;shdc077[1929]<=rx_even;shdc077[1874]<=kd51cbd;shdc077[1860]<=jc5da68;shdc077[1851]<=ipe8b9b[1];shdc077[1845]<=ip5e6ab[0];shdc077[1811]<=bl7b70e[0];shdc077[1789]<=hod01d9;shdc077[1721]<=kq5cf5d;shdc077[1700]<=nt8e5ec;shdc077[1673]<=iped342;shdc077[1643]<=blf355c[0];shdc077[1574]<=sudbf39;shdc077[1530]<=sj80ecb;shdc077[1486]<=vif4422;shdc077[1395]<=qte7ae8;shdc077[1353]<=ic72f67;shdc077[1317]<=pubd9c1;shdc077[1311]<=tw860a1;shdc077[1299]<=lq69a15;shdc077[1258]<=lq5228e;shdc077[1247]<=fp27e80[0];shdc077[1239]<=vv71dc4;shdc077[1187]<=twbc30;shdc077[1172]<=me6705e;shdc077[1151]<=gq8285a;shdc077[1102]<=su68552;shdc077[1101]<=fadf9c9;shdc077[1023]<=mr_main_reset;shdc077[1020]<=twb41d;shdc077[1012]<=ux765d;shdc077[937]<=an8a397;shdc077[925]<=lsa2112;shdc077[894]<=ayfa03b[0];shdc077[860]<=irab9eb;shdc077[743]<=vx3d745;shdc077[658]<=ks97b38;shdc077[655]<=cmf0c14;shdc077[629]<=phaa451;shdc077[623]<=ie24fd0[0];shdc077[593]<=mec1786[0];shdc077[586]<=zxece0b;shdc077[575]<=ba3050b;shdc077[551]<=fa4d0aa;shdc077[510]<=qva1683;shdc077[468]<=vx91472;shdc077[447]<=je3f407[0];shdc077[430]<=rv8ee27;shdc077[327]<=cz5e182;shdc077[314]<=aa1548a;shdc077[311]<=mg249fa[0];shdc077[296]<=lf382f0[0];shdc077[255]<=xy142d0;shdc077[157]<=ne42a91;shdc077[155]<=gbc97e4;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[2]};wje70fc<=eae03bd[3];nt387e4<=eae03bd[4];mefa1aa<={ldddfe4>>1,eae03bd[5]};zkd0d51<={wweff26>>1,eae03bd[6]};ba86a8a<={uv7f931>>1,eae03bd[7]};je35452<=eae03bd[8];vxaa292<=eae03bd[9];hbc76a1<=eae03bd[10];ie3b50f<=eae03bd[11];jc525ad<=eae03bd[12];co92d6a<=eae03bd[13];do96b51<=eae03bd[14];ntb5a8b<=eae03bd[15];doad45f<=eae03bd[16];yx6a2fb<=eae03bd[17];gb517dc<=eae03bd[18];lf8bee5<={pfc235b>>1,eae03bd[19]};end -always@* begin shdc077[2047]<=signal_detect;shdc077[2046]<=rx_data[0];shdc077[2044]<=rx_kcntl;shdc077[2040]<=su531f3;shdc077[2032]<=ldddfe4[0];shdc077[2017]<=wweff26[0];shdc077[1987]<=uv7f931[0];shdc077[1927]<=jpfc98c;shdc077[1865]<=cba1611;shdc077[1806]<=bye4c67;shdc077[1682]<=lsb08d;shdc077[1565]<=vv71dc4;shdc077[1317]<=tu5846b;shdc077[1082]<=rv8ee27;shdc077[1023]<=mr_main_reset;shdc077[932]<=sud42c2;shdc077[586]<=pfc235b[1];shdc077[466]<=pu3a858;shdc077[233]<=qg6750b;shdc077[116]<=ba8cea1;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[4]};cm43cd0<={ykcb59e>>1,eae03bd[5]};ri1e680<=eae03bd[6];vvf3402<=eae03bd[7];qv9a017<={xl27f82>>1,eae03bd[8]};lqd00bc<={ald3027>>1,eae03bd[9]};yz805e3<={ie9813c>>1,eae03bd[10]};mt2f1c<=eae03bd[11];ux178e4<=eae03bd[12];qibc725<={fp2785b>>1,eae03bd[13]};dze3928<=eae03bd[14];vx1c947<=eae03bd[15];zke4a3e<={jeb7e3>>1,eae03bd[16]};je251f2<=eae03bd[17];rv28f93<=eae03bd[18];by47c9e<=eae03bd[19];ie3e4f2<=eae03bd[20];uvf2791<=eae03bd[21];hq93c8d<=eae03bd[22];tj9e46b<=eae03bd[23];kdf235e<=eae03bd[24];hd91af5<=eae03bd[25];ecbc0e3<=eae03bd[26];wl8af03<={su59bc7>>1,eae03bd[27]};sh5eb87<=eae03bd[28];yk622bc<=eae03bd[29];kfae1e9<=eae03bd[30];yx70f4c<=eae03bd[31];mg87a65<=eae03bd[32];vx3d328<=eae03bd[33];zk5781c<=eae03bd[34];ay4ca36<=eae03bd[35];kd651b1<=eae03bd[36];zz28d8d<=eae03bd[37];me46c6e<=eae03bd[38];ux36370<=eae03bd[39];irb1b85<=eae03bd[40];ou8dc2d<=eae03bd[41];th6e169<={zm30db3>>1,eae03bd[42]};wla4cba<={ay4ce05>>1,eae03bd[43]};mt265d4<={ic67029>>1,eae03bd[44]};vx2d3ad<={gqb66d4>>1,eae03bd[45]};lq69d6f<={ymb36a1>>1,eae03bd[46]};gb4eb7a<=eae03bd[47];cz75bd4<=eae03bd[48];twadea5<=eae03bd[49];sh6f52a<=eae03bd[50];ead4986<=eae03bd[51];ead4aa4<=eae03bd[52];rva5520<=eae03bd[53];ba2a907<=eae03bd[54];ip5483b<=eae03bd[55];wla41dc<=eae03bd[56];pu20ee5<=eae03bd[57];ir772a<={hoeb5e8>>1,eae03bd[58]};qi3b955<={bl5af42>>1,eae03bd[59]};gof5284<=eae03bd[60];uka9420<=eae03bd[61];ls2aa21<={qte85fa>>1,eae03bd[62]};ld5510b<={xw42fd5>>1,eae03bd[63]};xya885f<=eae03bd[64];yx442fa<=eae03bd[65];ks217d4<=eae03bd[66];xybea1<=eae03bd[67];jp5f50a<=eae03bd[68];gofa856<=eae03bd[69];ykd42b0<=eae03bd[70];yza1581<=eae03bd[71];ecac0d<=eae03bd[72];kq56068<=eae03bd[73];ntb0340<=eae03bd[74];bn81a06<=eae03bd[75];ohd037<={co215fe>>1,eae03bd[76]};me681bc<={ksaff1>>1,eae03bd[77]};end -always@* begin shdc077[2047]<=an_link_ok;shdc077[2046]<=tu58fcb;shdc077[2044]<=gbe_mode;shdc077[2040]<=operational_rate[0];shdc077[2033]<=ykcb59e[0];shdc077[2019]<=vv5acf1;shdc077[1991]<=end678f;shdc077[1934]<=xl27f82[0];shdc077[1929]<=ph9b509;shdc077[1898]<=fae16fc;shdc077[1821]<=ald3027[0];shdc077[1813]<=zzb0857;shdc077[1810]<=dmda84e;shdc077[1749]<=jeb7e3[0];shdc077[1707]<=vvfc6eb;shdc077[1666]<=ui788b0;shdc077[1630]<=nr50c36;shdc077[1617]<=vxbf555;shdc077[1595]<=ie9813c[0];shdc077[1579]<=co215fe[1];shdc077[1572]<=osd4273;shdc077[1506]<=gqb66d4[0];shdc077[1450]<=en5bf1b;shdc077[1440]<=ip6f1c7;shdc077[1428]<=xw42fd5[0];shdc077[1384]<=yx5ecfb;shdc077[1370]<=vvdd7b3;shdc077[1366]<=rte375e;shdc077[1308]<=nr55e1f;shdc077[1284]<=ym3166f;shdc077[1212]<=zm30db3[0];shdc077[1202]<=vif4422;shdc077[1187]<=sufaaaf;shdc077[1174]<=ui7d6bd;shdc077[1170]<=hq99beb;shdc077[1142]<=dmc09e1;shdc077[1137]<=ea787f6;shdc077[1125]<=thf6d50;shdc077[1110]<=ksaff1[1];shdc077[1097]<=wla1399;shdc077[1041]<=lf16047;shdc077[1023]<=mr_main_reset;shdc077[964]<=ymb36a1[0];shdc077[949]<=kf3c2df;shdc077[906]<=jpf610a;shdc077[853]<=xwdf8dd;shdc077[833]<=su59bc7[0];shdc077[815]<=phaa186;shdc077[808]<=ep17eaa;shdc077[753]<=ic67029[0];shdc077[720]<=dzf67dd;shdc077[714]<=qte85fa[0];shdc077[692]<=dmebd9f;shdc077[685]<=xy1baf6;shdc077[654]<=vxaabc3;shdc077[601]<=bl5af42[0];shdc077[587]<=gb6fad7;shdc077[585]<=ho7337d;shdc077[568]<=lfaf0fe;shdc077[562]<=sw3edaa;shdc077[520]<=fp22c08;shdc077[474]<=fp2785b[0];shdc077[453]<=co1fd84;shdc077[407]<=fpb5430;shdc077[376]<=ay4ce05[0];shdc077[357]<=lsa2112;shdc077[327]<=rgd5578;shdc077[300]<=hoeb5e8[0];shdc077[293]<=thcdf5a;shdc077[292]<=qt4e66f;shdc077[281]<=zk47db5;shdc077[237]<=do4f0b;shdc077[226]<=kdc3fb0;shdc077[203]<=ukb6a86;shdc077[146]<=ep29198;shdc077[140]<=dzcde38;shdc077[70]<=nt811f6;shdc077[35]<=vxb023e;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[1]};ri1e680<=eae03bd[2];vvf3402<=eae03bd[3];qv9a017<={xl27f82>>1,eae03bd[4]};lqd00bc<={ald3027>>1,eae03bd[5]};yz805e3<={ie9813c>>1,eae03bd[6]};mt2f1c<=eae03bd[7];ux178e4<=eae03bd[8];qibc725<={fp2785b>>1,eae03bd[9]};dze3928<=eae03bd[10];vx1c947<=eae03bd[11];zke4a3e<={jeb7e3>>1,eae03bd[12]};je251f2<=eae03bd[13];rv28f93<=eae03bd[14];by47c9e<=eae03bd[15];ie3e4f2<=eae03bd[16];uvf2791<=eae03bd[17];hq93c8d<=eae03bd[18];tj9e46b<=eae03bd[19];kdf235e<=eae03bd[20];hd91af5<=eae03bd[21];ecbc0e3<=eae03bd[22];wl8af03<={su59bc7>>1,eae03bd[23]};sh5eb87<=eae03bd[24];yk622bc<=eae03bd[25];kfae1e9<=eae03bd[26];yx70f4c<=eae03bd[27];mg87a65<=eae03bd[28];vx3d328<=eae03bd[29];zk5781c<=eae03bd[30];ay4ca36<=eae03bd[31];kd651b1<=eae03bd[32];zz28d8d<=eae03bd[33];me46c6e<=eae03bd[34];ux36370<=eae03bd[35];irb1b85<=eae03bd[36];ou8dc2d<=eae03bd[37];th6e169<={zm30db3>>1,eae03bd[38]};jp5f50a<=eae03bd[39];gofa856<=eae03bd[40];ykd42b0<=eae03bd[41];yza1581<=eae03bd[42];ecac0d<=eae03bd[43];kq56068<=eae03bd[44];ntb0340<=eae03bd[45];bn81a06<=eae03bd[46];ohd037<={co215fe>>1,eae03bd[47]};me681bc<={ksaff1>>1,eae03bd[48]};end -always@* begin shdc077[2047]<=ykcb59e[0];shdc077[2046]<=vv5acf1;shdc077[2044]<=end678f;shdc077[2040]<=xl27f82[0];shdc077[2033]<=ald3027[0];shdc077[2019]<=ie9813c[0];shdc077[1994]<=ea787f6;shdc077[1990]<=dmc09e1;shdc077[1981]<=lf16047;shdc077[1965]<=sw3edaa;shdc077[1940]<=kdc3fb0;shdc077[1939]<=vvdd7b3;shdc077[1933]<=do4f0b;shdc077[1914]<=vxb023e;shdc077[1883]<=thf6d50;shdc077[1832]<=co1fd84;shdc077[1831]<=dmebd9f;shdc077[1819]<=fp2785b[0];shdc077[1785]<=vxaabc3;shdc077[1781]<=nt811f6;shdc077[1778]<=vvfc6eb;shdc077[1719]<=ukb6a86;shdc077[1616]<=jpf610a;shdc077[1615]<=yx5ecfb;shdc077[1591]<=kf3c2df;shdc077[1522]<=nr55e1f;shdc077[1515]<=dzcde38;shdc077[1508]<=rte375e;shdc077[1470]<=nr50c36;shdc077[1391]<=fpb5430;shdc077[1271]<=ui788b0;shdc077[1184]<=zzb0857;shdc077[1182]<=dzf67dd;shdc077[1135]<=fae16fc;shdc077[1023]<=mr_main_reset;shdc077[997]<=lfaf0fe;shdc077[990]<=fp22c08;shdc077[982]<=zk47db5;shdc077[969]<=xy1baf6;shdc077[892]<=zm30db3[0];shdc077[889]<=xwdf8dd;shdc077[735]<=phaa186;shdc077[643]<=ksaff1[1];shdc077[635]<=su59bc7[0];shdc077[495]<=ym3166f;shdc077[444]<=en5bf1b;shdc077[321]<=co215fe[1];shdc077[317]<=ip6f1c7;shdc077[222]<=jeb7e3[0];end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[1]};ri1e680<=eae03bd[2];vvf3402<=eae03bd[3];yz805e3<={ie9813c>>1,eae03bd[4]};mt2f1c<=eae03bd[5];ux178e4<=eae03bd[6];hd91af5<=eae03bd[7];ecbc0e3<=eae03bd[8];wl8af03<={su59bc7>>1,eae03bd[9]};sh5eb87<=eae03bd[10];yk622bc<=eae03bd[11];kfae1e9<=eae03bd[12];yx70f4c<=eae03bd[13];mg87a65<=eae03bd[14];zk5781c<=eae03bd[15];kd651b1<=eae03bd[16];zz28d8d<=eae03bd[17];me46c6e<=eae03bd[18];ux36370<=eae03bd[19];irb1b85<=eae03bd[20];ou8dc2d<=eae03bd[21];jp5f50a<=eae03bd[22];gofa856<=eae03bd[23];ykd42b0<=eae03bd[24];yza1581<=eae03bd[25];end -always@* begin shdc077[2047]<=ykcb59e[0];shdc077[2046]<=vv5acf1;shdc077[2044]<=end678f;shdc077[2040]<=ie9813c[0];shdc077[2032]<=dmc09e1;shdc077[2017]<=do4f0b;shdc077[1987]<=dzf67dd;shdc077[1927]<=ip6f1c7;shdc077[1865]<=sw3edaa;shdc077[1806]<=su59bc7[0];shdc077[1682]<=thf6d50;shdc077[1565]<=ui788b0;shdc077[1317]<=ukb6a86;shdc077[1189]<=nr55e1f;shdc077[1172]<=phaa186;shdc077[1082]<=ym3166f;shdc077[1023]<=mr_main_reset;shdc077[932]<=dzcde38;shdc077[663]<=ea787f6;shdc077[594]<=vxaabc3;shdc077[586]<=fpb5430;shdc077[466]<=vxb023e;shdc077[331]<=lfaf0fe;shdc077[297]<=nr50c36;shdc077[233]<=lf16047;shdc077[116]<=fp22c08;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[4]};ir29604<={pf5a753>>1,eae03bd[5]};mr4b025<=eae03bd[6];by5812d<=eae03bd[7];zkc096b<={ph9ea41>>1,eae03bd[8]};xy4b5b<=eae03bd[9];hq25adb<=eae03bd[10];xy258ca<={enfda0c>>1,eae03bd[11]};ux2c652<={ofed065>>1,eae03bd[12]};rge4b19<={al7fb41>>1,eae03bd[13]};qgdb5f4<=eae03bd[14];lqdafa0<=eae03bd[15];dzd7d03<=eae03bd[16];mtbe81f<={dz55200>>1,eae03bd[17]};vif40fc<={ksa9007>>1,eae03bd[18]};nta07e2<=eae03bd[19];xl3f17<=eae03bd[20];co1f8be<=eae03bd[21];hbc76a1<=eae03bd[22];ie3b50f<=eae03bd[23];gd17c75<=eae03bd[24];kfbe3ad<=eae03bd[25];med43cb<={fcb89f1>>1,eae03bd[26]};end -always@* begin shdc077[2047]<=force_unidir;shdc077[2046]<=tx_en;shdc077[2044]<=tx_er;shdc077[2040]<=hqb4ea[0];shdc077[2032]<=pf5a753[0];shdc077[2016]<=end3a9e;shdc077[1985]<=eaea7a9;shdc077[1922]<=ph9ea41[0];shdc077[1796]<=gof520f;shdc077[1544]<=uka9078;shdc077[1302]<=qie56;shdc077[1115]<=rv8ee27;shdc077[1105]<=dz55200[0];shdc077[1041]<=enfda0c[0];shdc077[1023]<=mr_main_reset;shdc077[728]<=fcb89f1[1];shdc077[651]<=pf401ca;shdc077[557]<=vv71dc4;shdc077[552]<=gqaa40;shdc077[364]<=qg56362;shdc077[325]<=by48039;shdc077[276]<=eac1548;shdc077[182]<=vicac6c;shdc077[162]<=ksa9007[0];shdc077[138]<=kq782a9;shdc077[69]<=al7fb41[0];shdc077[34]<=ofed065[0];end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[1]};gb60d49<=eae03bd[2];ph6a4c<=eae03bd[3];ri35266<=eae03bd[4];eca9332<=eae03bd[5];ea49991<=eae03bd[6];os4cc89<={kf85f2c>>1,eae03bd[7]};rg66449<=eae03bd[8];zz3224a<=eae03bd[9];xl91257<={eae595b>>1,eae03bd[10]};pu892bf<={yz2cad8>>1,eae03bd[11]};ui495fa<={gb656c4>>1,eae03bd[12]};ld4afd0<={qi2b625>>1,eae03bd[13]};ps57e86<=eae03bd[14];fpbf433<=eae03bd[15];uifa19f<=eae03bd[16];lqd0cf9<=eae03bd[17];tw867ca<=eae03bd[18];cb33e53<=eae03bd[19];qv9f29c<=eae03bd[20];nrf94e4<=eae03bd[21];dmca726<=eae03bd[22];go53933<=eae03bd[23];end -always@* begin shdc077[2047]<=nrcd8ab[0];shdc077[2046]<=jc6c55f;shdc077[2044]<=su62afb;shdc077[2040]<=ie157d9;shdc077[2032]<=anabec9;shdc077[2017]<=ead4576;shdc077[1987]<=kf85f2c[0];shdc077[1926]<=hq2f965;shdc077[1804]<=dm7cb2b;shdc077[1803]<=wj5eb06;shdc077[1560]<=eae595b[6];shdc077[1550]<=icc4a26;shdc077[1072]<=yz2cad8[0];shdc077[1052]<=ri25131;shdc077[1023]<=xlba8ae;shdc077[901]<=ph8bd60;shdc077[775]<=thd8944;shdc077[450]<=sw317ac;shdc077[387]<=uv5b128;shdc077[225]<=kf262f5;shdc077[193]<=qi2b625[0];shdc077[112]<=uv44c5e;shdc077[96]<=gb656c4[6];shdc077[56]<=db2898b;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086>1,eae03bd[7]};ofdce1f<={rx_data>>1,eae03bd[8]};wje70fc<=eae03bd[9];gq1f934<=eae03bd[10];qi8892d<=eae03bd[11];ip44969<=eae03bd[12];qi24b4d<=eae03bd[13];pu25a68<={tx_d>>1,eae03bd[14]};ea6214b<=eae03bd[15];wy10a58<=eae03bd[16];qg59e57<=eae03bd[17];nef1679<=eae03bd[18];bn8b3ca<=eae03bd[19];pffc9a1<={bl7b70e>>1,eae03bd[20]};ntba454<={kqf5edc>>1,eae03bd[21]};jpd22a7<={hdaf6e1>>1,eae03bd[22]};nt387e4<=eae03bd[23];cb8a9f7<={psc5e98>>1,eae03bd[24]};wj54fbc<=eae03bd[25];doa7de4<=eae03bd[26];sw3ef23<=eae03bd[27];shf7918<=eae03bd[28];mgbc8c4<=eae03bd[29];zke4621<=eae03bd[30];oh2310b<=eae03bd[31];gof5284<=eae03bd[32];uka9420<=eae03bd[33];fn4a101<=eae03bd[34];zx5080f<=eae03bd[35];db8407e<=eae03bd[36];zm203f6<=eae03bd[37];xy20283<=eae03bd[38];xy141b<=eae03bd[39];coa0da<=eae03bd[40];bl506d1<=eae03bd[41];vk8368f<=eae03bd[42];ri1b47b<=eae03bd[43];tuda3da<=eae03bd[44];icd1ed2<={ld4ff63>>1,eae03bd[45]};wl8f690<=eae03bd[46];fn7b485<=eae03bd[47];vida42f<={zxec7a5>>1,eae03bd[48]};bld217a<=eae03bd[49];sj90bd6<=eae03bd[50];yz85eb4<=eae03bd[51];pu2f5a5<=eae03bd[52];mr7ad2a<=eae03bd[53];wjd6954<=eae03bd[54];irb4aa5<={gode5c1>>1,eae03bd[55]};rva552d<=eae03bd[56];ba2a96f<=eae03bd[57];ip54b7b<=eae03bd[58];xla5bdc<=eae03bd[59];vx2dee6<=eae03bd[60];end -always@* begin shdc077[2047]<=sgmii_mode;shdc077[2046]<=signal_detect;shdc077[2044]<=debug_link_timer_short;shdc077[2040]<=force_isolate;shdc077[2032]<=force_loopback;shdc077[2016]<=force_unidir;shdc077[1985]<=operational_rate[0];shdc077[1925]<=the6c4f;shdc077[1922]<=rx_data[0];shdc077[1802]<=sj3627f;shdc077[1796]<=rx_kcntl;shdc077[1567]<=kdf2e08;shdc077[1556]<=sjb13fd;shdc077[1544]<=rx_even;shdc077[1505]<=mg1f9b1;shdc077[1415]<=cmdbcb8;shdc077[1324]<=rg63d2f;shdc077[1316]<=mg986ac;shdc077[1200]<=zkf4bdb;shdc077[1169]<=gq1ab0d;shdc077[1163]<=vif4422;shdc077[1118]<=lf84490;shdc077[1106]<=su531f3;shdc077[1087]<=aa97044;shdc077[1065]<=ng89fec;shdc077[1041]<=mr_an_enable;shdc077[1040]<=rx_disp_err;shdc077[1023]<=gbe_mode;shdc077[962]<=ldfcd89;shdc077[783]<=gode5c1[0];shdc077[752]<=mga3f36;shdc077[707]<=cmdb797;shdc077[662]<=zxec7a5[0];shdc077[658]<=ip7a61a;shdc077[600]<=ba1e97b;shdc077[584]<=kdc3561;shdc077[581]<=ieac34a;shdc077[559]<=aa10892;shdc077[553]<=hdaf6e1[0];shdc077[520]<=tx_er;shdc077[508]<=wl8810;shdc077[376]<=sj12436;shdc077[353]<=xla5edb;shdc077[331]<=czfd8f4;shdc077[329]<=vk2f4c3;shdc077[290]<=ned5869;shdc077[279]<=lsa2112;shdc077[276]<=kqf5edc[0];shdc077[260]<=tx_en;shdc077[254]<=wwc1102;shdc077[188]<=nt22486;shdc077[165]<=qt7fb1e;shdc077[164]<=psc5e98[0];shdc077[138]<=bl7b70e[0];shdc077[130]<=tx_d[0];shdc077[127]<=jeb8220;shdc077[82]<=ld4ff63[0];shdc077[69]<=mr_restart_an;shdc077[65]<=rx_err_decode_mode;shdc077[34]<=mr_main_reset;shdc077[32]<=rx_cv_err;end assign uk82f73 = shdc077,eae03bd = jebdcc5; initial begin xj5a610 = $fopen(".fred"); $fdisplay( xj5a610, "%3h\n%3h", (ea77a5a >> 4) & fn5a0bd, (ea77a5a >> (the9682+4)) & fn5a0bd ); $fclose(xj5a610); $readmemh(".fred", dm7315a); end always @ (uk82f73) begin nec5698 = dm7315a[1]; for (qtd3086=0; qtd3086 - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/statts_mem.jhd b/gbe2_ecp3/ipcores_ecp3/statts_mem.jhd deleted file mode 100644 index c179a51..0000000 --- a/gbe2_ecp3/ipcores_ecp3/statts_mem.jhd +++ /dev/null @@ -1,7 +0,0 @@ -MODULE statts_mem DEFIN statts_mem.vhd - SUBMODULE PDPW16KC - INSTANCE statts_mem_0_0_0 - SUBMODULE VLO - INSTANCE scuba_vlo_inst - SUBMODULE VHI - INSTANCE scuba_vhi_inst diff --git a/gbe2_ecp3/ipcores_ecp3/statts_mem.lpc b/gbe2_ecp3/ipcores_ecp3/statts_mem.lpc deleted file mode 100644 index c24e581..0000000 --- a/gbe2_ecp3/ipcores_ecp3/statts_mem.lpc +++ /dev/null @@ -1,53 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=RAM_DP -CoreRevision=6.1 -ModuleName=statts_mem -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=12/05/2011 -Time=22:40:38 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -RAddress=1020 -RData=8 -WAddress=255 -WData=32 -enByte=0 -ByteSize=9 -adPipeline=0 -inPipeline=0 -outPipeline=0 -MOR=0 -InData=Registered -AdControl=Registered -MemFile= -MemFormat=bin -Reset=Sync -GSR=Enabled -Pad=0 -EnECC=0 -Optimization=Speed -EnSleep=ENABLED -Pipeline=0 - -[FilesGenerated] -=mem diff --git a/gbe2_ecp3/ipcores_ecp3/statts_mem.naf b/gbe2_ecp3/ipcores_ecp3/statts_mem.naf deleted file mode 100644 index 29865ef..0000000 --- a/gbe2_ecp3/ipcores_ecp3/statts_mem.naf +++ /dev/null @@ -1,64 +0,0 @@ -WrAddress[7] i -WrAddress[6] i -WrAddress[5] i -WrAddress[4] i -WrAddress[3] i -WrAddress[2] i -WrAddress[1] i -WrAddress[0] i -RdAddress[9] i -RdAddress[8] i -RdAddress[7] i -RdAddress[6] i -RdAddress[5] i -RdAddress[4] i -RdAddress[3] i -RdAddress[2] i -RdAddress[1] i -RdAddress[0] i -Data[31] i -Data[30] i -Data[29] i -Data[28] i -Data[27] i -Data[26] i -Data[25] i -Data[24] i -Data[23] i -Data[22] i -Data[21] i -Data[20] i -Data[19] i -Data[18] i -Data[17] i -Data[16] i -Data[15] i -Data[14] i -Data[13] i -Data[12] i -Data[11] i -Data[10] i -Data[9] i -Data[8] i -Data[7] i -Data[6] i -Data[5] i -Data[4] i -Data[3] i -Data[2] i -Data[1] i -Data[0] i -WE i -RdClock i -RdClockEn i -Reset i -WrClock i -WrClockEn i -Q[7] o -Q[6] o -Q[5] o -Q[4] o -Q[3] o -Q[2] o -Q[1] o -Q[0] o diff --git a/gbe2_ecp3/ipcores_ecp3/statts_mem.sort b/gbe2_ecp3/ipcores_ecp3/statts_mem.sort deleted file mode 100644 index c7d53c5..0000000 --- a/gbe2_ecp3/ipcores_ecp3/statts_mem.sort +++ /dev/null @@ -1 +0,0 @@ -statts_mem.vhd diff --git a/gbe2_ecp3/ipcores_ecp3/statts_mem.srp b/gbe2_ecp3/ipcores_ecp3/statts_mem.srp deleted file mode 100644 index 15fab7a..0000000 --- a/gbe2_ecp3/ipcores_ecp3/statts_mem.srp +++ /dev/null @@ -1,28 +0,0 @@ -SCUBA, Version Diamond_1.3_Production (92) -Mon Dec 5 22:40:38 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n statts_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -device LFE3-150EA -type ramdps -raddr_width 10 -rwidth 8 -waddr_width 8 -wwidth 32 -rnum_words 1020 -wnum_words 255 -cascade -1 -e - Circuit name : statts_mem - Module type : RAM_DP - Module Version : 6.1 - Ports : - Inputs : WrAddress[7:0], RdAddress[9:0], Data[31:0], WE, RdClock, RdClockEn, Reset, WrClock, WrClockEn - Outputs : Q[7:0] - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : statts_mem.vhd - VHDL template : statts_mem_tmpl.vhd - VHDL testbench : tb_statts_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : statts_mem.srp - Element Usage : - PDPW16KC : 1 - Estimated Resource Usage: - EBR : 1 diff --git a/gbe2_ecp3/ipcores_ecp3/statts_mem.sym b/gbe2_ecp3/ipcores_ecp3/statts_mem.sym deleted file mode 100644 index aaac4c0b78a103ac32362f3f08b941abeeb13d07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmXw$F-yZx6ot=C)shS$gE(g>QXC{AD0YgPI%*6`#2`{lT(q?$8Jwh(gHtC5M{z9T zEE@tWNsDHT6*K~Z6?Do@ zvcA^x&VUn&0Ro-aQM#R`c~%t3mP&g}9l6kHJxX_PZZEI#Kh_@eRgp^Y8q{}VUW#0k^BeCxCx=X&BV?NENSHD{I+t9wphNMp|y zEF31f2OzbB<0GbvR#A4!vN-Q%U0_w3@-93An&O}>J7U7)_f?O5;i5RhWt}SSllyX| uI3$OXEB45q+$(m-jyx)!!sSh$*t6QT%X(2fAP?}S*eCnUExx%!{-ZzWO-(HT diff --git a/gbe2_ecp3/ipcores_ecp3/statts_mem.vhd b/gbe2_ecp3/ipcores_ecp3/statts_mem.vhd deleted file mode 100644 index 2a03d69..0000000 --- a/gbe2_ecp3/ipcores_ecp3/statts_mem.vhd +++ /dev/null @@ -1,159 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 6.1 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type bram -wp 10 -rp 0011 -rdata_width 8 -data_width 32 -num_rows 255 -cascade -1 -e - --- Mon Dec 5 22:40:38 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity statts_mem is - port ( - WrAddress: in std_logic_vector(7 downto 0); - RdAddress: in std_logic_vector(9 downto 0); - Data: in std_logic_vector(31 downto 0); - WE: in std_logic; - RdClock: in std_logic; - RdClockEn: in std_logic; - Reset: in std_logic; - WrClock: in std_logic; - WrClockEn: in std_logic; - Q: out std_logic_vector(7 downto 0)); -end statts_mem; - -architecture Structure of statts_mem is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component PDPW16KC - generic (GSR : in String; CSDECODE_R : in String; - CSDECODE_W : in String; REGMODE : in String; - DATA_WIDTH_R : in Integer; DATA_WIDTH_W : in Integer); - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute MEM_LPC_FILE of statts_mem_0_0_0 : label is "statts_mem.lpc"; - attribute MEM_INIT_FILE of statts_mem_0_0_0 : label is ""; - attribute RESETMODE of statts_mem_0_0_0 : label is "SYNC"; - -begin - -- component instantiation statements - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - statts_mem_0_0_0: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 9, DATA_WIDTH_W=> 36) - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>scuba_vlo, DI9=>Data(8), DI10=>Data(9), DI11=>Data(10), - DI12=>Data(11), DI13=>Data(12), DI14=>Data(13), - DI15=>Data(14), DI16=>Data(15), DI17=>scuba_vlo, - DI18=>Data(16), DI19=>Data(17), DI20=>Data(18), - DI21=>Data(19), DI22=>Data(20), DI23=>Data(21), - DI24=>Data(22), DI25=>Data(23), DI26=>scuba_vlo, - DI27=>Data(24), DI28=>Data(25), DI29=>Data(26), - DI30=>Data(27), DI31=>Data(28), DI32=>Data(29), - DI33=>Data(30), DI34=>Data(31), DI35=>scuba_vlo, - ADW0=>WrAddress(0), ADW1=>WrAddress(1), ADW2=>WrAddress(2), - ADW3=>WrAddress(3), ADW4=>WrAddress(4), ADW5=>WrAddress(5), - ADW6=>WrAddress(6), ADW7=>WrAddress(7), ADW8=>scuba_vlo, - BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>WrClockEn, CLKW=>WrClock, CSW0=>WE, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>RdAddress(0), - ADR4=>RdAddress(1), ADR5=>RdAddress(2), ADR6=>RdAddress(3), - ADR7=>RdAddress(4), ADR8=>RdAddress(5), ADR9=>RdAddress(6), - ADR10=>RdAddress(7), ADR11=>RdAddress(8), - ADR12=>RdAddress(9), ADR13=>scuba_vlo, CER=>RdClockEn, - CLKR=>RdClock, CSR0=>scuba_vlo, CSR1=>scuba_vlo, - CSR2=>scuba_vlo, RST=>Reset, DO0=>Q(0), DO1=>Q(1), DO2=>Q(2), - DO3=>Q(3), DO4=>Q(4), DO5=>Q(5), DO6=>Q(6), DO7=>Q(7), - DO8=>open, DO9=>open, DO10=>open, DO11=>open, DO12=>open, - DO13=>open, DO14=>open, DO15=>open, DO16=>open, DO17=>open, - DO18=>open, DO19=>open, DO20=>open, DO21=>open, DO22=>open, - DO23=>open, DO24=>open, DO25=>open, DO26=>open, DO27=>open, - DO28=>open, DO29=>open, DO30=>open, DO31=>open, DO32=>open, - DO33=>open, DO34=>open, DO35=>open); - -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of statts_mem is - for Structure - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:PDPW16KC use entity ecp3.PDPW16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe2_ecp3/ipcores_ecp3/statts_mem_generate.log b/gbe2_ecp3/ipcores_ecp3/statts_mem_generate.log deleted file mode 100644 index 5b91f8b..0000000 --- a/gbe2_ecp3/ipcores_ecp3/statts_mem_generate.log +++ /dev/null @@ -1,46 +0,0 @@ -Starting process: Module - -Starting process: - -SCUBA, Version Diamond_1.3_Production (92) -Mon Dec 5 22:40:38 2011 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2011 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -n statts_mem -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -device LFE3-150EA -type ramdps -raddr_width 10 -rwidth 8 -waddr_width 8 -wwidth 32 -rnum_words 1020 -wnum_words 255 -cascade -1 -e - Circuit name : statts_mem - Module type : RAM_DP - Module Version : 6.1 - Ports : - Inputs : WrAddress[7:0], RdAddress[9:0], Data[31:0], WE, RdClock, RdClockEn, Reset, WrClock, WrClockEn - Outputs : Q[7:0] - I/O buffer : not inserted - EDIF output : suppressed - VHDL output : statts_mem.vhd - VHDL template : statts_mem_tmpl.vhd - VHDL testbench : tb_statts_mem_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : statts_mem.srp - Estimated Resource Usage: - EBR : 1 - -END SCUBA Module Synthesis - -File: statts_mem.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe2_ecp3/ipcores_ecp3/statts_mem_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/statts_mem_tmpl.vhd deleted file mode 100644 index 9953b55..0000000 --- a/gbe2_ecp3/ipcores_ecp3/statts_mem_tmpl.vhd +++ /dev/null @@ -1,19 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 6.1 --- Mon Dec 5 22:40:38 2011 - --- parameterized module component declaration -component statts_mem - port (WrAddress: in std_logic_vector(7 downto 0); - RdAddress: in std_logic_vector(9 downto 0); - Data: in std_logic_vector(31 downto 0); WE: in std_logic; - RdClock: in std_logic; RdClockEn: in std_logic; - Reset: in std_logic; WrClock: in std_logic; - WrClockEn: in std_logic; Q: out std_logic_vector(7 downto 0)); -end component; - --- parameterized module component instance -__ : statts_mem - port map (WrAddress(7 downto 0)=>__, RdAddress(9 downto 0)=>__, Data(31 downto 0)=>__, - WE=>__, RdClock=>__, RdClockEn=>__, Reset=>__, WrClock=>__, - WrClockEn=>__, Q(7 downto 0)=>__); diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_1024x16x8_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_1024x16x8_tmpl.vhd deleted file mode 100644 index 2d1eced..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_1024x16x8_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_1024x16x8 - port (Data : in std_logic_vector(17 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(17 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(8 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_1024x16x8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 1027 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 1027 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 1027 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_2048x8_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_2048x8_tmpl.vhd deleted file mode 100755 index 343af71..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_2048x8_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_2048x8 - port (Data : in std_logic_vector(7 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(7 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_2048x8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 2051 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_2048x8x16_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_2048x8x16_tmpl.vhd deleted file mode 100644 index ceb4df6..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_2048x8x16_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_2048x8x16 - port (Data : in std_logic_vector(8 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(17 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(8 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(17 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_2048x8x16 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 2051 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_mb2_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_mb2_tmpl.vhd deleted file mode 100644 index f14d662..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_mb2_tmpl.vhd +++ /dev/null @@ -1,115 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_32kx16x8_mb2 - port (Data : in std_logic_vector(17 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(8 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic - ); - end component; - - signal Data : std_logic_vector(17 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal AmEmptyThresh : std_logic_vector(15 downto 0) := (others => '0'); - signal AmFullThresh : std_logic_vector(14 downto 0) := (others => '0'); - signal Q : std_logic_vector(8 downto 0); - signal WCNT : std_logic_vector(15 downto 0); - signal RCNT : std_logic_vector(16 downto 0); - signal Empty: std_logic; - signal Full: std_logic; - signal AlmostEmpty: std_logic; - signal AlmostFull: std_logic; -begin - u1 : fifo_32kx16x8_mb2 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - AmEmptyThresh => AmEmptyThresh, AmFullThresh => AmFullThresh, - Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full, - AlmostEmpty => AlmostEmpty, AlmostFull => AlmostFull - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 32771 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_mb_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_mb_tmpl.vhd deleted file mode 100755 index 1ad6e7d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_mb_tmpl.vhd +++ /dev/null @@ -1,115 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_32kx16x8_mb - port (Data : in std_logic_vector(15 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(7 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic - ); - end component; - - signal Data : std_logic_vector(15 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal AmEmptyThresh : std_logic_vector(15 downto 0) := (others => '0'); - signal AmFullThresh : std_logic_vector(14 downto 0) := (others => '0'); - signal Q : std_logic_vector(7 downto 0); - signal WCNT : std_logic_vector(15 downto 0); - signal RCNT : std_logic_vector(16 downto 0); - signal Empty: std_logic; - signal Full: std_logic; - signal AlmostEmpty: std_logic; - signal AlmostFull: std_logic; -begin - u1 : fifo_32kx16x8_mb - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - AmEmptyThresh => AmEmptyThresh, AmFullThresh => AmFullThresh, - Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full, - AlmostEmpty => AlmostEmpty, AlmostFull => AlmostFull - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 32771 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_tmpl.vhd deleted file mode 100755 index 3bbafb6..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_32kx16x8_tmpl.vhd +++ /dev/null @@ -1,106 +0,0 @@ --- VHDL testbench template generated by SCUBA ispLever_v8.0_PROD_Build (41) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_32kx16x8 - port (Data : in std_logic_vector(15 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(7 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(15 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); - signal WCNT : std_logic_vector(15 downto 0); - signal RCNT : std_logic_vector(16 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_32kx16x8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 32771 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_4096x32_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_4096x32_tmpl.vhd deleted file mode 100755 index 0559dd7..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_4096x32_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_4096x32 - port (Data : in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(31 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(31 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(31 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_4096x32 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 4099 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_4096x9_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_4096x9_tmpl.vhd deleted file mode 100755 index 9352be8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_4096x9_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_4096x9 - port (Data : in std_logic_vector(8 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(8 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(8 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_4096x9 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 4099 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_512x32_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_512x32_tmpl.vhd deleted file mode 100644 index 7353ce2..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_512x32_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_512x32 - port (Data : in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(31 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(31 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(31 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_512x32 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 515 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_512x64_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_512x64_tmpl.vhd deleted file mode 100644 index dc94036..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_512x64_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_512x64 - port (Data : in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(71 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(71 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(71 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_512x64 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 515 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_512x72_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_512x72_tmpl.vhd deleted file mode 100644 index 7c36749..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_512x72_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_512x72 - port (Data : in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(71 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(71 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(71 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_512x72 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 515 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx8_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx8_tmpl.vhd deleted file mode 100755 index 2096041..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx8_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_64kx8 - port (Data : in std_logic_vector(7 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(7 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_64kx8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 65539 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx9_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx9_tmpl.vhd deleted file mode 100644 index d47fc48..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_fifo_64kx9_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_64kx9 - port (Data : in std_logic_vector(8 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(8 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(8 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_64kx9 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 65539 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_ip_mem_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_ip_mem_tmpl.vhd deleted file mode 100755 index 862c84d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_ip_mem_tmpl.vhd +++ /dev/null @@ -1,174 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component ip_mem - port (DataInA : in std_logic_vector(31 downto 0); - DataInB : in std_logic_vector(31 downto 0); - AddressA : in std_logic_vector(7 downto 0); - AddressB : in std_logic_vector(7 downto 0); ClockA: in std_logic; - ClockB: in std_logic; ClockEnA: in std_logic; - ClockEnB: in std_logic; WrA: in std_logic; WrB: in std_logic; - ResetA: in std_logic; ResetB: in std_logic; - QA : out std_logic_vector(31 downto 0); - QB : out std_logic_vector(31 downto 0) - ); - end component; - - signal DataInA : std_logic_vector(31 downto 0) := (others => '0'); - signal DataInB : std_logic_vector(31 downto 0) := (others => '0'); - signal AddressA : std_logic_vector(7 downto 0) := (others => '0'); - signal AddressB : std_logic_vector(7 downto 0) := (others => '0'); - signal ClockA: std_logic := '0'; - signal ClockB: std_logic := '0'; - signal ClockEnA: std_logic := '0'; - signal ClockEnB: std_logic := '0'; - signal WrA: std_logic := '0'; - signal WrB: std_logic := '0'; - signal ResetA: std_logic := '0'; - signal ResetB: std_logic := '0'; - signal QA : std_logic_vector(31 downto 0); - signal QB : std_logic_vector(31 downto 0); -begin - u1 : ip_mem - port map (DataInA => DataInA, DataInB => DataInB, AddressA => AddressA, - AddressB => AddressB, ClockA => ClockA, ClockB => ClockB, - ClockEnA => ClockEnA, ClockEnB => ClockEnB, WrA => WrA, WrB => WrB, - ResetA => ResetA, ResetB => ResetB, QA => QA, QB => QB - ); - - process - - begin - DataInA <= (others => '0') ; - wait for 100 ns; - wait until ResetA = '0'; - for i in 0 to 259 loop - wait until ClockA'event and ClockA = '1'; - DataInA <= DataInA + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - DataInB <= (others => '0') ; - wait for 100 ns; - wait until ResetB = '0'; - wait until WrB = '1'; - for i in 0 to 259 loop - wait until ClockB'event and ClockB = '1'; - DataInB <= DataInB + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - AddressA <= (others => '0') ; - wait for 100 ns; - wait until ResetA = '0'; - for i in 0 to 518 loop - wait until ClockA'event and ClockA = '1'; - AddressA <= AddressA + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - AddressB <= (others => '0') ; - wait for 100 ns; - wait until ResetB = '0'; - wait until WrB = '1'; - for i in 0 to 518 loop - wait until ClockB'event and ClockB = '1'; - AddressB <= AddressB + '1' after 1 ns; - end loop; - wait; - end process; - - ClockA <= not ClockA after 5.00 ns; - - ClockB <= not ClockB after 5.00 ns; - - process - - begin - ClockEnA <= '0' ; - wait for 100 ns; - wait until ResetA = '0'; - ClockEnA <= '1' ; - wait; - end process; - - process - - begin - ClockEnB <= '0' ; - wait for 100 ns; - wait until ResetB = '0'; - ClockEnB <= '1' ; - wait; - end process; - - process - - begin - WrA <= '0' ; - wait until ResetA = '0'; - for i in 0 to 259 loop - wait until ClockA'event and ClockA = '1'; - WrA <= '1' after 1 ns; - end loop; - WrA <= '0' ; - wait; - end process; - - process - - begin - WrB <= '0' ; - wait until ResetB = '0'; - wait until WrA = '1'; - wait until WrA = '0'; - for i in 0 to 259 loop - wait until ClockA'event and ClockA = '1'; - end loop; - for i in 0 to 259 loop - wait until ClockB'event and ClockB = '1'; - WrB <= '1' after 1 ns; - end loop; - WrB <= '0' ; - wait; - end process; - - process - - begin - ResetA <= '1' ; - wait for 100 ns; - ResetA <= '0' ; - wait; - end process; - - process - - begin - ResetB <= '1' ; - wait for 100 ns; - ResetB <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_mac_init_mem_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_mac_init_mem_tmpl.vhd deleted file mode 100755 index 701eaf3..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_mac_init_mem_tmpl.vhd +++ /dev/null @@ -1,64 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component mac_init_mem - port (Address : in std_logic_vector(5 downto 0); - OutClock: in std_logic; OutClockEn: in std_logic; - Reset: in std_logic; Q : out std_logic_vector(7 downto 0) - ); - end component; - - signal Address : std_logic_vector(5 downto 0) := (others => '0'); - signal OutClock: std_logic := '0'; - signal OutClockEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); -begin - u1 : mac_init_mem - port map (Address => Address, OutClock => OutClock, OutClockEn => OutClockEn, - Reset => Reset, Q => Q - ); - - process - - begin - Address <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 57 loop - wait until OutClock'event and OutClock = '1'; - Address <= Address + '1' after 1 ns; - end loop; - wait; - end process; - - OutClock <= not OutClock after 5.00 ns; - - process - - begin - OutClockEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - OutClockEn <= '1' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tb_statts_mem_tmpl.vhd b/gbe2_ecp3/ipcores_ecp3/tb_statts_mem_tmpl.vhd deleted file mode 100644 index 8428650..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tb_statts_mem_tmpl.vhd +++ /dev/null @@ -1,124 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component statts_mem - port (WrAddress : in std_logic_vector(7 downto 0); - RdAddress : in std_logic_vector(9 downto 0); - Data : in std_logic_vector(31 downto 0); WE: in std_logic; - RdClock: in std_logic; RdClockEn: in std_logic; - Reset: in std_logic; WrClock: in std_logic; - WrClockEn: in std_logic; Q : out std_logic_vector(7 downto 0) - ); - end component; - - signal WrAddress : std_logic_vector(7 downto 0) := (others => '0'); - signal RdAddress : std_logic_vector(9 downto 0) := (others => '0'); - signal Data : std_logic_vector(31 downto 0) := (others => '0'); - signal WE: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal RdClockEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal WrClock: std_logic := '0'; - signal WrClockEn: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); -begin - u1 : statts_mem - port map (WrAddress => WrAddress, RdAddress => RdAddress, Data => Data, - WE => WE, RdClock => RdClock, RdClockEn => RdClockEn, Reset => Reset, - WrClock => WrClock, WrClockEn => WrClockEn, Q => Q - ); - - process - - begin - WrAddress <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 516 loop - wait until WrClock'event and WrClock = '1'; - WrAddress <= WrAddress + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - RdAddress <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 516 loop - wait until RdClock'event and RdClock = '1'; - RdAddress <= RdAddress + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 258 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - WE <= '0' ; - wait until Reset = '0'; - for i in 0 to 258 loop - wait until WrClock'event and WrClock = '1'; - WE <= '1' after 1 ns; - end loop; - WE <= '0' ; - wait; - end process; - - RdClock <= not RdClock after 20.00 ns; - - process - - begin - RdClockEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - RdClockEn <= '1' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - process - - begin - WrClockEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - WrClockEn <= '1' ; - wait; - end process; - -end architecture test; diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac3/generate_core.tcl b/gbe2_ecp3/ipcores_ecp3/tsmac3/generate_core.tcl deleted file mode 100755 index d6f3ade..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tsmac3/generate_core.tcl +++ /dev/null @@ -1,39 +0,0 @@ - -#!/usr/local/bin/wish - -set Para(cmd) "" -if ![catch {set temp $argc} result] { - if {$argc > 0} { - for {set i 0} {$i < $argc} {incr i 2} { - set temp [lindex $argv $i] - set temp [string range $temp 1 end] - lappend argv_list $temp - lappend value_list [lindex $argv [expr $i+1]] - } - foreach argument $argv_list value $value_list { - switch $argument { - "cmd" {set Para(cmd) $value;} - } - } - } -} - -set Para(ProjectPath) "/home/greg/projects/trbnet/gbe2_ecp2m/ipcores/tsmac3" -set Para(ModuleName) "tsmac3" -set Para(lib) "/home/greg/trispeed_mac_v3.4/lib" -set Para(CoreName) "Tri-Speed Ethernet MAC" -set Para(family) "latticeecp2m" -set Para(Family) "ep5m00" -set Para(design) "VHDL" - -lappend auto_path "/home/greg/trispeed_mac_v3.4/gui" - -lappend auto_path "/home/greg/trispeed_mac_v3.4/script" -package require Core_Generate - -lappend auto_path "/opt/lattice/ispLEVER8.1/isptools/ispcpld/tcltk/lib/ipwidgets/ispipbuilder/../runproc" -package require runcmd - -set Para(install_dir) "/opt/lattice/ispLEVER8.1/isptools/ispcpld/tcltk/lib/ipwidgets/ispipbuilder/../../../../.." - -set Para(result) [GenerateCore] diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac3/orcapp_head b/gbe2_ecp3/ipcores_ecp3/tsmac3/orcapp_head deleted file mode 100644 index 3b0bf92..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tsmac3/orcapp_head +++ /dev/null @@ -1,4 +0,0 @@ -#define USER_NAME tsmac3 -#define SGMII_TSMAC -#define DEVICE_ECP2M -#define DEVICE_ECP2_ECP2M diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo b/gbe2_ecp3/ipcores_ecp3/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo deleted file mode 100755 index 47d679a603be8ceb0e8a2a16f117aed5249c7e32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11279 zcma)C4Rlr2m3~S1*$8U2r;3W z1+|m0v_seUlW9kd|EZ!xtZl49BZ5Xija4+Xj7G~$ku^H;2hBpuWR2r6``i26m;3H} zYdOy)?DL)P?6c24=iamT-3*N!9WVEl&Gq3ojjSzQ{C8ga`qos(s`aU+_TcKa4QSLvTV3da0QENE_@x8CpfQQLKWXx3gGEUzo~2Ypm>Z=(RAs%T}j!AEP4 zY(={|7!NH*_kmt+<}Ho}E3IJ43e^Q;R%Kn-Ck9Nv8e^ngSiTz0JHpmkh@n; ze2Mvz{N7I^hYkhQiaM;z~(#n>zO7S`3Km7Q= z%18EXGSk-%_NVwiUXdKp{I8?)f>yP_sHRmLS8e#=MqWef58ME+;<7}yi&4R*JlEv{ z7Vwa!F&6*_Hg9zS?BLecJ{Q1_Yh6+50{FDFwlul`_O#U>b^&EP#y;YABRr4&t710- z+fKMmDP!a8u0l5lyZuOy8{x_ASic+LMccbF^uV5NHEs@j%Kmu~VFxkcgBQ29{ z_DIPw*97b{Yt(HK9F%YkfPYFpagD&rt0yKkma$4}bl3&3(e`D1E&xNmTj2uWt9M3S z0G^W%(_6=mVZxt_T?7CJ+yEB-S$f-A+qgaZ{9Yb0#cBxii}Cx%WWq$p;&mI=@B>~l zHo=|w%Y76$h?(S^%i6-_3&O>`Q1>NIC%G<8-p)w zeN{O6;cRQesGC&=GwjQTGBDU-?>Xy>xsg)r0uP%_E!?gMhnA(P?AWr(I^Mb2GYVZ; zs5;5o_ltAG)!{_hRZIDbUHMcyrdw7Y4KCsC5Bkum3)ZD-!;4c_hiX|($>-wgC9xy{=u(-vA$`+9<&V|Y=<9QhF)*$Dge$0c)7IchyP&r1IcxMy$Zuib6 z2Q%uOtxU*wHhL7x0g69UBUDVCwbFnMV*@=HRF5~OV`R0r7l-;hbM;Ni8R6FMK z{gxg`hOcair4!&#?MP}}~d@Cl-GULm6#>6*9lvd96S~Wwafg9VZ(FQJjt2tnL zpzXY^rU3(fJ7^kgX5xHxS$#P#*zVvCKB@KPm~^HwryLjep+?igtfPf0mvKjYV#qYG zW~<0FU`@)*S;j_N@pjY0ezMOPFb$qFt|38ny~KX2M@$bJZ7mI(2DAR^C}Yc-f1=|< zvC692U^OfJ7t_m~)=eshu%1nZ$hO5lN{Y4+d{fn}GMkwwV3F4xf@@FfQW=|>H>@&F zLi|NT!p_D&GCl0e_zMmTj%{~XaLjW7GoF`XPa84~Sa^58Hp;Qc9gU`ellXeKX~3A% zogTJ0{`sis!TCE;Y#NxfeyeG~v}a)gF9y3Af6nwEM71=$uMWxCSnkkZP9k8&V4tt8 zFb&Agc%IW*KBOJ8o7RMBu+i3tQ6|S>yvOvw{aeOO19o25YZ~x}-%Nuk|1f4cV9d`< z2g~spEz(hGRi+Z5YO5v{WpK0VoCFgLj)@_vo6GhMUMq71oF~-H|~HxSQhuPPL%b}2Wke;PFnHqq{3nGFb{BQ&Hk z@L7$JE32b8f?YCwWp!dc_dt~|uPVs1&-S5XN>y$B;-$FQLd&k^0MA+{eyIw=t*gYo zsvxh=o>inH;mBJZm3(^aDUIl0{XD`-222BIL8D?}Xj#~{7J7qd`+jUzy4xEk z+WWCHdFB3v^|poa>F6Uqqn~^7=VCQJv6)Fahx?+r;=C{v_*eV!WhnkYqtjv!H_Ytg z7XL1O+vl6LMP=T476Q_c?<08yNQw~Q?|Aq4r%deT@FYArn6>-(8xc|?iagRN1No19 zZsI$NGrTh#I^)uA9{vxsqP-^f@P-Qp+{5uLVusGnK~w=kC4Agq;rgw_3oD@b_Aac6 zze9cQ$6L7o!88&O?xIpeS}e?H;s1F!Ke-S_tM5L>X52yz=d@&+(WXy7#Wt5ZX5{g1 z;#EP>AT~mNjLBPyqWQe$Neu6OidsW1Oy1NKO^muQxf3XQX?m%wPu}|!t>|*`MYjbE#M_~-G>YsUcVl=>QcPYH&RBUTQbUW|zBt~X)Nr3O z6#C>vN)6kJ9T4;4?M@9ZyD62^I!;|aRi}BLDw#c3B;Yl3e z!Q|HWVh9mDn7lSAc|m}?9HKg&%>vHx_hSE2!mz36w3#XUx`;S3%wL5khw(8Mpe3MqDznD0!sE8H{s)HxMO5H7-ozC(l@kkGvSdBo8K^QYdn`)TK}2aY{D#J6Jx?i)fyb z^@DCqvI+;_znQ1$Q6{FjR3@g$Sth2*SSF^4TPCInoClLE(1S_Vk%?*clk|=vJI7o+ z$r&kn*N_X71d$?(#@!gwNs4^rK(cShD(RZqVF%0WULhZWs3`w{FWj= z<`ben*oQQil7W6VhNPI1ck&5N^CX3)WGd;xB$KAt(ry2p1Xfd|eOSvJSQp1bJz7q| z$|-V?nY+f|uT+wvQ%AJ?0q;@df7-Rs0sm60rdW#{*a3>%)1{>!>=DIosL{$0c9Eio z#u4mCU692B{6jO3d&-aQn%IH}*P@wTJL-wkMO5brsP zeX~*Po48#lGSaQp5yUza`BRq`PY?}}{W0$y>L7@h$bNS~%Or@X$mX?6;Ri7n*#}6= zABf7xeww}e-3pAm&qwwH6Iwh$WXIXynASlM`;mP|p%y_99g=$ar1|Weyx|{ULotBlUgpt%|q7hBU(Sk-NdJRPz$8Ey~z5}FiG_k z_ZwNAHCi6U4ags!d$o3oJCdx{F0GZ~7A323L@UdPNjRb()Uq?87P3~>Xqg#t4M#YA zTCPUq!(Wnyw8)Iuh^+9KR-h3*kySUUC1%7|wBqa{tv@3IqZNO{&ov^ZMTF{3K0m3% znaRLNp80A#eNN%kYe8{>BwX-ZAd+XLc>y)V>7DA-RSPtgY19zQzQuFUK%=G5=(YyV7{8YDsIv6dXnDev!l`$1)Dhy|VNCvq?gu01m6kTNwu19Kvm z&it<~ntzEhHM|3p{grKJ-pkK)zA8);95NF{s%)n3n#L~jc3?>u3e1QAUBnxD-q9GY{- za%F0I$xNHe0olwmV~0=wM46hL!cHy)WHZnBboa@F%GA^rI=Ot2%{=|tUz{0GrY6Q< za={>*IqT$b*K}pJjN)%Fx#Ez`ocU7Mh%HQ$l*3N0D`YcIYrg%&_l0RvdS+T&zR70J zsH|QZ5vKVd0G(X^$!5~4@Aj1_Q$HubPA(s1GpBDVdHKJUsUIW2Y zpE6)47pk(EQy1>L^@|Vm)R~VkU_O@X zBsnWY6w9(f{sFVVciJ%+wk>gHBor z?AvlG7&9pluyzdOpOY#9lX5sPliDz*{~kdwOmp&A zaF>~=?Plvdv$yXZeS%D|3_H03p3OX?fB8G_i%t`2V|K0sXERU#+a&*^GyXY&I&^Y% zIGZ_Z6Fs;|nHuK9&R25HK6AmGNUbt8Nx!g;Cc5V@-NpGN&>-gEs>0j!tDGH z0kWA>3;Sl?EILhM1}6WDgly)Nm9^1sVVblK%#oHH%z{sj&3Qw0YEme64(4Fy*Ny+1 z-q$9jgwFlBX3zVtq8G0hohBg#^R~(N%;fp>{c_tKyVXujXZZs*|1Q28sgg*&NRvdm z2Pu+B_aZ$K={}@JBHfR)NTdgl5{dL6(jk!^LMkLuAJQO^euWfBq=%9Ii1Y|jACa~p z?Gfowq&y-$hIB`y?MQV*>PMO*(&I>RMB0J$Mx-Z@+KBXPq%|TviIhg9-yoe4>9fREBhphyVMO{J(if4QM(QHcGe}!R+KH4!q+Li?MEX5a6_Ey!rik<`QWTMPBRvu6 zIiw~c?Lk^1(q5z_B0Z0EM5Gsxiik9XG(@Bqk%EY{59x5jz&!(K7ZAV#i@<$98CIXQ(qwqhiHR;zu=pl2XRTR)=&t*31aDzu&p{EpP8; zTz%x6-#z!-bMJlco{u{=J~>_HlrDGpo2#~cG>N}~p&iM@aLVYjTYti*NHz`G*^YTfmb z8nA_@4ucKU#N1%3n`n(Ry7AUvW7Lts=LFc^P;qWfE){dETq>Z}Y~-oDrX+NoRfV5d zQ0Ly^zCqac4UQMs+tb@ST;{00!tpc<>pSPFG`rGKZNEC6W|upvuHsmlEp=3Kv(`&h zm}+s0wC>t+`{tg+p8jMaIk;;#;cj*^@b;YsUR+R+0Xu53d)kNeC$SixiN@jHE!zjM zQguaaALei{rtp9LX%?m?Z>>(Vm`LHJ=`;&d8!oh`Sy6F%;*BjXD`1~5 z5=xZtKSwRSM@;)d(L}T{5=|t^S0oav@qY+2=#*Z)J-d5$-o6`FCVQtiq5;Ysbz@t~ z2UI|!Z^Q?z0+1Z_0a%A*N0ATUI`wz^0IuWNF%L)%l0Q>_nWxHul*hv?%r4o}?*p*7 zg_n+bKynaP6~0n^na7ZYifvoj&&%!kbk+I26V|c zA}_`AuN`7r+i(zX1wO@&m1{~i6)nHXQQtWyZ)e+Z&GwyJ@cI-^%|J3|qob-{njmFb zTznK&Rim?LSqUwb_o-Q0R-mP7cuHFE(N@i;LfeQE2$hYaA*-c~Ehkg6w3MP{Xa~O19>xL+1vZ?q48{!+9Y8u3bc-q+vX1JyN6$Cjish`lG|HBijtag|^>{Z95>wRrA#-rT(-VhkP^W2o_g!8oX?E=H# z@a($#gkefySJ$xDR7!;hD!evytAA$H;~dp;#8X&`6FG8b%xi+mmK`aN!)e@->egHk zQ*HTZ#5AGhmQROF3uY3(|CnKDM{II|;b461V!dI|(o$D#7#P^{ENHwV%|X}~yJ)5# zv7bB!uxQBl~o#?9%erP8$w$>u5C{xz8JnC6N$TCw8>m zh{68SYHd{{1cNKLczs}R)p3u3xuI(hc>_Vt{rb4aVWi5CwigybVemI;`=BKF*|aAK zb3@++gC&L}bw;8dhl#rHjA$;%0UGlS1LH%Rj~fP?9=h2Z41MZ~i%biq<-SvG7}ylP ze#S5`DfGfI!@wf^?AIIGE?&Y0L|9TA^^d8z$n`6?olf?S4-` z_t}l6IcnK6;z@!zlkUbD2a8M-n8m%iSFkmhXp7Xg)+ca!_npk(So0Rc_wLBEv-=|Cq-;AhH$E65>QXbU~&>Ep-j{;6HJ1z|*}f7%Gb)=oqv`+d_BbxsMsFxFcI%XBW7EC$o*tJfryZZBz~T3;pF7U{l#uu*56>cDB&iGJGDu|5STnq39R&BQj{o{P!x{&f zDdTHZ^D&2)Uk+F%e_r=p(Y&&&#?bu$x~DFW?eG3=#f_7nbT2D#=IhbnGIJSeFuBU* zH>NO^T!k;o5b+5{DQJ2mUlRy6cvR;q1Z50ta~ZEObjf8IZ=J-p&iS>l z@J?7~O>kJB4J!I3_fdWU>?)5EBrwX4@x($BQ{cyVk|NdO_R0@^p*EKCA<3zK-q!X!SjFo}|EjPaL+Nu*_A5}8?;#Ai0fz|q3Q#n~7= zosH4!T9~+4HCQ_3+c$B@D!IY`Ziru2$*syKC!Sx`ty_2wkW?ZQ(-})9rt_doOeZ~=m`;&0F`X%8Vmd#~#B>^#iRq**6Vn+_ zCZ2avT1#fXyAj6V>%??wLw%?AEnx?kb)UT|ei(<2j_O)O<7WfRk?? z?~Y1t8rKD2dQwPE>T)uDC`Oo8Qp)5Pj!{nQQYOzCHBg_@_Ypi{)W9v(`dWp47SFUU zf;0L;`;0E4Gd@!te>|-V;Edpa9M|P>#&|%+bupY#AfA3*jAxvPC#nnKj3iazzb15< zoUtZC?J->xXEds=Tm_DoAv}jw+tG1-7s8WTxz`uzdlR1Js;+uQ--PhASIO2%*gMVD z-H@-6i3R#vgdRf;t{BmGL5y?MKux~BC}Jdpr(0hPF;-H`US6Q@lo(9`*{5%b7;oVz z(U(Mw$kdX%C-|ZToExOxo`bhX^|P`aFjdGo@jDJbK@l&w!U4|ud$wfWkB)_rh(OYW zW{~7fK(=J=&z}FBg6Y5xk}S$+OXj@sgXmE$sl!4_o=nXm8K~QM=R+cCf=Wp83Lsmj zGZLLyCXyy3g(NH9MiNEo^xS`YYu~3LX`Cr_qH3NknfK_mpFbj!#uZZ%74dAzT=(El zdqvVXa!9hOo-LX4lY@7CB9bNyfFx__*^+_98(SXGk~)ZhB<~5bC7toE9WRNb2|;Kl zD!E2-(Z{3S+|}bBysmYcZA>ltRrVj=HBt>Ki6wXo$^7FW$0|loTgV> z7HdhJFhY`L=xoWrnu`w=Ye}7MLXt)HY)R+L*wYOnX_8e)>f0)SUSdE@ZgB+DK@+hd zcEryMu83_)350_}Cjr3p?Hc7w@&QcWs|lu)6!yiXiLnqj59uAhzw^$e)akiPxFTMQ zWJ}JwDO4s7n(l!;AjzwlY{|L%UmSdy5}vE3&LgwwoO9~k`R!U#J9Lpd_w!vL$milDwwLmJB@j_*>>%(*X`8 zamAA@=`73Nb5QHl;St<8e%Jh&u2-lrx?Q23q{|iRDY{#so~El6>J;6qP|wiC3iTJd zSD~JzYZdA=-KtQ}(WMIYJl&~KFVK|=^&;J-J?)%(lrW&V$dp0y+xNO*xPi6LcK#*DAc=jgF?MW l7bw*GbbmsfrRx)Fl5S6^ztQChb&l>%sK3+I33Z-s?*F-6OnU$T diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac3/ts_mac_eval.tar b/gbe2_ecp3/ipcores_ecp3/tsmac3/ts_mac_eval.tar deleted file mode 100644 index bd092f23d9a3a9ce48b375d3c0b1d20b4c9c9934..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368640 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%0AaR}YOKq%y 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�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,mef0f02[1]};ic538ab<=mef0f02[2];zm9c559<=mef0f02[3];kde2acb<=mef0f02[4];wy1565d<=mef0f02[5];irab2e9<=mef0f02[6];go5974c<=mef0f02[7];mecba61<=mef0f02[8];xw5d308<=mef0f02[9];go4c21e<={os5391b>>1,mef0f02[10]};dz610f0<={vk9c8d9>>1,mef0f02[11]};ic43c3c<={oh23653>>1,mef0f02[12]};end -always@* begin ng1e1e0[2047]<=ls86aa0[0];ng1e1e0[2046]<=ls35502;ng1e1e0[2044]<=lfaa812;ng1e1e0[2040]<=wl95504;ng1e1e0[2032]<=zkee699;ng1e1e0[2016]<=ne734ca;ng1e1e0[1984]<=ep9a653;ng1e1e0[1920]<=uvd329c;ng1e1e0[1793]<=ng994e4;ng1e1e0[1539]<=os5391b[0];ng1e1e0[1030]<=vk9c8d9[0];ng1e1e0[1023]<=ks10d54;ng1e1e0[13]<=oh23653[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};al4b56a<=mef0f02[1];zm9c559<=mef0f02[2];byd5aaf<=mef0f02[3];gb6abd3<={uv70d29>>1,mef0f02[4]};ntaf4ee<={hq8694d>>1,mef0f02[5]};czd3bb5<={ec34a6a>>1,mef0f02[6]};dmeed68<={lfa5351>>1,mef0f02[7]};dbb5a1a<={gd29a8f>>1,mef0f02[8]};go686bb<={rg4d47c>>1,mef0f02[9]};ie1aec9<={mr6a3e2>>1,mef0f02[10]};yzbb24e<={of51f14>>1,mef0f02[11]};gbc93ad<={sj8f8a4>>1,mef0f02[12]};ay49d6c<=mef0f02[13];kd4eb61<=mef0f02[14];ip75b0c<=mef0f02[15];lq6c32a<={wla48aa>>1,mef0f02[16]};ld61953<=mef0f02[17];dbca9e<=mef0f02[18];ip654f7<=mef0f02[19];hq2a7bd<=mef0f02[20];yk53dea<=mef0f02[21];zz9ef51<=mef0f02[22];kdf7a8f<=mef0f02[23];babd47c<=mef0f02[24];yx51f10<={wj5b24d>>1,mef0f02[25]};jc7c424<={enc9365>>1,mef0f02[26]};yxe2122<=mef0f02[27];aa10914<=mef0f02[28];lf848a0<=mef0f02[29];ou24507<=mef0f02[30];fp22839<=mef0f02[31];je141cf<=mef0f02[32];jra0e7b<=mef0f02[33];mt73de<=mef0f02[34];rgcf7ad<={jra5ef8>>1,mef0f02[35]};icdeb5e<={hb7be32>>1,mef0f02[36]};cmf5af1<=mef0f02[37];twad789<=mef0f02[38];cz5e25f<={bn32cad>>1,mef0f02[39]};dmf12fc<=mef0f02[40];xy897e2<=mef0f02[41];ip4bf12<=mef0f02[42];th5f894<=mef0f02[43];pffc4a7<=mef0f02[44];wl129f4<={co928b1>>1,mef0f02[45]};doa7d2e<={baa2c4f>>1,mef0f02[46]};sw3e973<=mef0f02[47];rgf4b98<=mef0f02[48];lfa5cc3<=mef0f02[49];aa2e61e<=mef0f02[50];vi730f0<=mef0f02[51];ou98783<=mef0f02[52];alc3c19<=mef0f02[53];ba1e0cc<=mef0f02[54];uif0662<=mef0f02[55];do83310<=mef0f02[56];fp19883<=mef0f02[57];end -always@* begin ng1e1e0[2047]<=cb25ef;ng1e1e0[2046]<=lfaa812;ng1e1e0[2044]<=ykce1a5;ng1e1e0[2040]<=uv70d29[0];ng1e1e0[2032]<=hq8694d[0];ng1e1e0[2017]<=ec34a6a[0];ng1e1e0[1987]<=lfa5351[0];ng1e1e0[1980]<=je89ef4;ng1e1e0[1963]<=xyb52f;ng1e1e0[1942]<=ksa3f8a;ng1e1e0[1926]<=gd29a8f[0];ng1e1e0[1921]<=ks152d9;ng1e1e0[1913]<=fn4f7a3;ng1e1e0[1903]<=an95b92;ng1e1e0[1879]<=nr5a97b;ng1e1e0[1837]<=wy1fc51;ng1e1e0[1805]<=rg4d47c[0];ng1e1e0[1795]<=oua96c9;ng1e1e0[1783]<=baa2c4f[0];ng1e1e0[1778]<=zx7bd1f;ng1e1e0[1758]<=jeadc94;ng1e1e0[1710]<=jra5ef8[0];ng1e1e0[1679]<=wla48aa[0];ng1e1e0[1627]<=lqfe289;ng1e1e0[1562]<=mr6a3e2[0];ng1e1e0[1543]<=wj5b24d[0];ng1e1e0[1519]<=fp1627b;ng1e1e0[1509]<=uide8fe;ng1e1e0[1499]<=hq9656e;ng1e1e0[1469]<=rt6e4a2;ng1e1e0[1398]<=shf8cb2;ng1e1e0[1373]<=hb7be32[0];ng1e1e0[1310]<=fac526c;ng1e1e0[1207]<=rgf144b;ng1e1e0[1144]<=ww49b15;ng1e1e0[1076]<=of51f14[0];ng1e1e0[1039]<=enc9365[0];ng1e1e0[1023]<=bn1ce70[0];ng1e1e0[990]<=yzb13de;ng1e1e0[981]<=xj616a5;ng1e1e0[971]<=vif47f1;ng1e1e0[960]<=cm62a5b;ng1e1e0[951]<=ngb2b72;ng1e1e0[891]<=co928b1[0];ng1e1e0[839]<=vk14915;ng1e1e0[749]<=bn32cad[0];ng1e1e0[699]<=hodf196;ng1e1e0[572]<=qv29362;ng1e1e0[490]<=gd2c2d4;ng1e1e0[480]<=ho6c54b;ng1e1e0[419]<=ale2922;ng1e1e0[245]<=sh6585a;ng1e1e0[240]<=dm4d8a9;ng1e1e0[209]<=tu7c524;ng1e1e0[122]<=tu6cb0b;ng1e1e0[104]<=sj8f8a4[0];ng1e1e0[61]<=lq4d961;ng1e1e0[30]<=kq49b2c;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f= 7'h42); - - -assign sw21a46 = zx4f6f2 & ~ofed2bb; -assign zz84348 = bna0270 & ~mg875ed & ~bn9c3a & ~sh4e1d7; - - -assign al70eaa = bldd794 & aa3404e[18]; - - - - - - -assign fpaaa53 = (bna0270 | rx_write) & wwde5f9 & ~mg875ed & ~bn9c3a; - -always@* begin zx4f6f2<=mef0f02[0];dz7b797<=mef0f02[1];eadbcbf<={epae410>>1,mef0f02[2]};wwde5f9<=mef0f02[3];ks97e44<={ep90421>>1,mef0f02[4]};pff910f<={of4bc4f>>1,mef0f02[5]};wj443f7<={vif13e4>>1,mef0f02[6]};ukfde0<={hd9bdf7>>1,mef0f02[7]};off7806<={wjf7df9>>1,mef0f02[8]};gqbc034<=mef0f02[9];yke01a0<=mef0f02[10];ecd01<=mef0f02[11];aa3404e<={tw3fb87>>1,mef0f02[12]};bna0270<=mef0f02[13];do1387<=mef0f02[14];bn9c3a<=mef0f02[15];sh4e1d7<=mef0f02[16];yx70ebd<=mef0f02[17];mg875ed<=mef0f02[18];xy3af69<=mef0f02[19];ribda57<={coa94ff>>1,mef0f02[20]};ofed2bb<=mef0f02[21];fn4aeeb<={wl9fe79>>1,mef0f02[22]};gdbbaf2<={ldf9e69>>1,mef0f02[23]};bldd794<=mef0f02[24];zkebca7<=mef0f02[25];sh5e53b<=mef0f02[26];czf29dc<=mef0f02[27];end -always@* begin ng1e1e0[2047]<=wy15c82;ng1e1e0[2046]<=epae410[0];ng1e1e0[2044]<=rx_fifo_full;ng1e1e0[2040]<=ep90421[0];ng1e1e0[2032]<=of4bc4f[0];ng1e1e0[2017]<=vif13e4[0];ng1e1e0[1987]<=hd9bdf7[0];ng1e1e0[1926]<=wjf7df9[0];ng1e1e0[1921]<=ldf9e69[0];ng1e1e0[1805]<=ipf7e64;ng1e1e0[1795]<=rgcf34f;ng1e1e0[1679]<=co87555;ng1e1e0[1562]<=ntbf324;ng1e1e0[1543]<=ps79a7b;ng1e1e0[1310]<=vk3aaa9;ng1e1e0[1144]<=fpaaa53;ng1e1e0[1076]<=jpf9927;ng1e1e0[1039]<=zxcd3db;ng1e1e0[1023]<=tu42b90;ng1e1e0[960]<=wl9fe79[0];ng1e1e0[839]<=al70eaa;ng1e1e0[572]<=psd554a;ng1e1e0[480]<=rt4a7f9;ng1e1e0[419]<=hoee1d5;ng1e1e0[240]<=coa94ff[0];ng1e1e0[209]<=alfdc3a;ng1e1e0[104]<=tw3fb87[0];ng1e1e0[30]<=xw69ede;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};zm9c559<=mef0f02[1];fp81339<=mef0f02[2];byd5aaf<=mef0f02[3];os4ce77<=mef0f02[4];qv39dc8<={ba25a85>>1,mef0f02[5]};eacee45<=mef0f02[6];kq77228<=mef0f02[7];ldc8a08<={gq3eb5e>>1,mef0f02[8]};vv45047<=mef0f02[9];ph2823e<=mef0f02[10];qt411f7<=mef0f02[11];an8fbc<=mef0f02[12];jc47de5<=mef0f02[13];uk3ef2a<=mef0f02[14];ipf7950<=mef0f02[15];ksbca84<=mef0f02[16];ice5421<=mef0f02[17];bl5084a<={do1ba48>>1,mef0f02[18]};tj84256<=mef0f02[19];wy212b6<=mef0f02[20];rv95b1<=mef0f02[21];nr4ad8e<=mef0f02[22];swb63b1<={qi1fe10>>1,mef0f02[23]};fp19883<=mef0f02[24];end -always@* begin ng1e1e0[2047]<=lfaa812;ng1e1e0[2046]<=jc4d12d;ng1e1e0[2044]<=ykce1a5;ng1e1e0[2040]<=gb44b50;ng1e1e0[2032]<=ba25a85[0];ng1e1e0[2017]<=ukf3ec;ng1e1e0[1987]<=zz22aa1;ng1e1e0[1926]<=gq3eb5e[0];ng1e1e0[1804]<=mg8d20b;ng1e1e0[1803]<=qi1fe10[0];ng1e1e0[1560]<=xw69058;ng1e1e0[1558]<=rgf144b;ng1e1e0[1550]<=co1a8dd;ng1e1e0[1072]<=by482c3;ng1e1e0[1052]<=god46e9;ng1e1e0[1023]<=bn1ce70[0];ng1e1e0[901]<=dm487f8;ng1e1e0[775]<=qtc351b;ng1e1e0[450]<=qg490ff;ng1e1e0[387]<=dm586a3;ng1e1e0[225]<=zxe921f;ng1e1e0[193]<=jeb0d4;ng1e1e0[112]<=rtdd243;ng1e1e0[96]<=of4161a;ng1e1e0[56]<=do1ba48[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};wl9fec7<=mef0f02[1];kqff63d<=mef0f02[2];jcfb1e9<=mef0f02[3];dzd8f4b<=mef0f02[4];nrc7a5e<={vif4c35>>1,mef0f02[5]};db3d2f6<={zm3f362>>1,mef0f02[6]};dze97b6<={ps6c4ff>>1,mef0f02[7]};yx4bdb7<={os627fb>>1,mef0f02[8]};end -always@* begin ng1e1e0[2047]<=hbe62f4;ng1e1e0[2046]<=uk317a6;ng1e1e0[2044]<=fp8bd30;ng1e1e0[2041]<=uv5e986;ng1e1e0[2034]<=vif4c35[0];ng1e1e0[2021]<=zm3f362[0];ng1e1e0[1995]<=ps6c4ff[0];ng1e1e0[1943]<=os627fb[0];ng1e1e0[1023]<=mrdcc5e[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f= 14'd64); - - - - -assign wy15c82 = ((~gq88319) ? (lfaa812 & ~gq3e3e7) : 1'b0) | (zzb0517 & ~qi828be) | (dob2655 & ~ba932ab) | (vvc8b97 & ux7990 & lfaa812) | (pu3a20c & lfaa812); - -assign cz65043 = al4b56a | (zxcd67f & an8a74); - - -assign nt2821d = gb44b50; -assign al410ef = gb44b50 & ea437a9; - - -assign ui43be4 = (~xl84bbc) ? hofec14 -14'd4 : fc83768; - -assign kf17a95 = 32'hffffffff; - -assign jc52b50 = ls35502; -assign fp8bd30 = ~vi7ce5c & kfa4f8f; - -assign ks24554 = al4b56a | yk5c720; - - - -assign ri4632 = cz418c8 & ir90977 & wwcb8e4 & gq3e3e7 & ~(hd9b63f | xj45cbf); - -always @ (posedge rxmac_clk or negedge reset_n) begin if (!reset_n) begin gdab323 <= 1'b0; zkd5664 <= 1'b0; mrcc8e0 <= 14'b0; ldd22e2 <= 14'b0; bn8b8b7 <= 14'b0; me5c5be <= 1'b0; ux8420 <= 1'b0; uvc64a4 <= 1'b0; ps79d12 <= 1'b0; wwce893 <= 1'b0; bl74498 <= 1'b0; hqa24c6 <= 1'b0; ir23192 <= 1'b0; fa58e7c <= 1'b0; je2f3a2 <= 1'b0; psf1bd5 <= 14'd0; ux2382f <= 14'd0; bldd558 <= 9'd0; ykeaac7 <= 1'b0; wl12632 <= 1'b0; lqfe289 <= 1'b0; end else if (rxmac_clk_en) begin ykeaac7 <= mt29d2e & ~czf29dc; if (mt29d2e && !czf29dc) bldd558 <= ayf0d93; ir23192 <= fp8bd30; fa58e7c <= wl3971c; if (czf8071) je2f3a2 <= czf8071; else if (ls35502 && !czf8071) je2f3a2 <= 1'b0; else if (zzb0517) je2f3a2 <= 1'b0; else je2f3a2 <= qifcdb; hqa24c6 <= ~vk1f9b; if (rvba149 & zm1b29c) bl74498 <= rvba149; else if (mt29d2e) bl74498 <= 1'b0; else bl74498 <= hd9b63f; if (zke407e) wwce893 <= zke407e; else if (mt29d2e) wwce893 <= 1'b0; else wwce893 <= xjf36c7; lqfe289 <= al4b56a; if (do83310) ps79d12 <= kf8527a; if (yzab1cf) wl12632 <= ayd4a7c; uvc64a4 <= al4b56a | (yk5c720 & zm1b29c); mrcc8e0 <= tj137d0; zkd5664 <= dze3901; gdab323 <= vidf437; if (zxcd67f && !hqe313) ux8420 <= ls1bd49; me5c5be <= hqe313; if (zxcd67f && !hqe313) ldd22e2 <= pff9acf; if (hqe313) begin bn8b8b7 <= pff9acf + 14'd1; end else bn8b8b7 <= 14'd0; if (tw8c4df && xl84bbc && su49641) ux2382f <= fc83768 + 14'd1; if (pf7189b && !xl84bbc && an8a74) psf1bd5 <= hofec14 + 14'd1; else if (jpf60a2) psf1bd5 <= 14'd0; end -end - - - -assign yzab1cf = jpf60a2; - - -assign lf32525 = gd3cc84 ? (ks97e6b > (ho6322e + 14'd4)) : ks97e6b > ho6322e; -assign mg9292f = (ks97e6b < 14'd64); -assign hd94979 = wwff00e; - -assign gd1df20 = (ks97e6b[6:0] != 7'd64); -assign icef904 = (hd3212e != qvbe0dd); -assign oha4bce = vx1c80f ? 1'b0 : ux7990 | xl84bbc ? hd9be86 : hq25de7 ? 1'b0 : fca2f83; - -assign zm25e74 = ~(hd9b63f | xj45cbf | ng203f3); -assign vx33b0[31] = zm145f0; -assign vx33b0[30] = vx1c80f; -assign vx33b0[29] = fn7e6d8; -assign vx33b0[28] = nrd8ff0; -assign vx33b0[27] = xjf36c7; -assign vx33b0[26] = qifcdb; -assign vx33b0[25] = xj45cbf; -assign vx33b0[24] = ng203f3; -assign vx33b0[23] = vk1f9b; -assign vx33b0[22] = th4f83c; -assign vx33b0[21] = by7c1e6; -assign vx33b0[20] = ned0a4f; -assign vx33b0[19] = uk2ef3a; -assign vx33b0[18] = ux7990; -assign vx33b0[17] = ir90977; -assign vx33b0[16] = gd3cc84; -assign vx33b0[15:14] = 2'b00; -assign vx33b0[13:0] = ks97e6b; - -assign jr32885[0] = ir90977; -assign jr32885[1] = xj45cbf; -assign jr32885[2] = hd9b63f; -assign jr32885[3] = zm145f0; -assign jr32885[4] = vx1c80f; -assign jr32885[5] = fn7e6d8; -assign jr32885[6] = th4f83c; -assign jr32885[7] = by7c1e6; -assign jr32885[8] = gd3cc84; - -always@* begin zm1b29c<=mef0f02[0];ic77429<=mef0f02[1];rvba149<=mef0f02[2];ned0a4f<=mef0f02[3];kf8527a<=mef0f02[4];je896ad<={bn1ce70>>1,mef0f02[5]};al4b56a<=mef0f02[6];qt7a94f<=mef0f02[7];ayd4a7c<=mef0f02[8];lfa53e0<=mef0f02[9];gd29f07<=mef0f02[10];th4f83c<=mef0f02[11];by7c1e6<=mef0f02[12];kqe0f32<=mef0f02[13];ux7990<=mef0f02[14];gd3cc84<=mef0f02[15];hd3212e<={dm579a3>>1,mef0f02[16]};ir90977<=mef0f02[17];xl84bbc<=mef0f02[18];hq25de7<=mef0f02[19];uk2ef3a<=mef0f02[20];cm779d1<=mef0f02[21];qte7441<={lde68d9>>1,mef0f02[22]};pu3a20c<=mef0f02[23];wwd1063<=mef0f02[24];gq88319<=mef0f02[25];cz418c8<=mef0f02[26];ho6322e<={ldcd808>>1,mef0f02[27]};xl19172<=mef0f02[28];vvc8b97<=mef0f02[29];xj45cbf<=mef0f02[30];qg72ff8<={je2fc44>>1,mef0f02[31]};wy97fc0<=mef0f02[32];jrbfe01<=mef0f02[33];wwff00e<=mef0f02[34];czf8071<=mef0f02[35];tuc038c<=mef0f02[36];xy1c62<=mef0f02[37];hqe313<=mef0f02[38];pf7189b<=mef0f02[39];tw8c4df<=mef0f02[40];tj137d0<={ui43be4>>1,mef0f02[41]};hd9be86<=mef0f02[42];vidf437<=mef0f02[43];rgd0dd1<={rge410b>>1,mef0f02[44]};pu86e8a<=mef0f02[45];tj37452<=mef0f02[46];bnba297<={sw216d2>>1,mef0f02[47]};osd14bf<=mef0f02[48];wl8a5f9<=mef0f02[49];ks97e6b<={ldd22e2>>1,mef0f02[50]};pff9acf<={bn8b8b7>>1,mef0f02[51]};zxcd67f<=mef0f02[52];zx6b3fe<=mef0f02[53];me59ff6<=mef0f02[54];facffb0<=mef0f02[55];hofec14<={psf1bd5>>1,mef0f02[56]};jpf60a2<=mef0f02[57];zzb0517<=mef0f02[58];qi828be<=mef0f02[59];zm145f0<=mef0f02[60];fca2f83<=mef0f02[61];qvbe0dd<={mrcc8e0>>1,mef0f02[62]};fc83768<={ux2382f>>1,mef0f02[63]};tw1bb43<=mef0f02[64];pfdda1b<=mef0f02[65];ened0de<=mef0f02[66];ea686f5<=mef0f02[67];ea437a9<=mef0f02[68];ls1bd49<=mef0f02[69];aydea4b<=mef0f02[70];wya92c8<={ngb200>>1,mef0f02[71]};su49641<=mef0f02[72];uv4b208<=mef0f02[73];me59045<=mef0f02[74];qt4114e<={vx33b0>>1,mef0f02[75]};an8a74<=mef0f02[76];ld453a5<=mef0f02[77];mt29d2e<=mef0f02[78];czf29dc<=mef0f02[79];pf74ba4<=mef0f02[80];vxa5d27<=mef0f02[81];rt749f1<={ym1f042>>1,mef0f02[82]};kfa4f8f<=mef0f02[83];vx27c7c<=mef0f02[84];gq3e3e7<=mef0f02[85];dmf1f39<=mef0f02[86];cb8f9cb<={ym10823>>1,mef0f02[87]};vi7ce5c<=mef0f02[88];do83310<=mef0f02[89];wl3971c<=mef0f02[90];wwcb8e4<=mef0f02[91];yk5c720<=mef0f02[92];dze3901<=mef0f02[93];vx1c80f<=mef0f02[94];zke407e<=mef0f02[95];ng203f3<=mef0f02[96];vk1f9b<=mef0f02[97];qifcdb<=mef0f02[98];fn7e6d8<=mef0f02[99];xjf36c7<=mef0f02[100];hd9b63f<=mef0f02[101];qgdb1fe<=mef0f02[102];nrd8ff0<=mef0f02[103];pfc7f86<=mef0f02[104];ri3fc36<=mef0f02[105];ayf0d93<={jr32885>>1,mef0f02[106]};do86c99<={vx9442e>>1,mef0f02[107]};an364ca<=mef0f02[108];dob2655<=mef0f02[109];ba932ab<=mef0f02[110];end -always@* begin ng1e1e0[2047]<=fa6c2d4;ng1e1e0[2046]<=pf616a3;ng1e1e0[2044]<=lsb51f;ng1e1e0[2040]<=vv5a8fb;ng1e1e0[2032]<=bn1ce70[0];ng1e1e0[2028]<=uvc64a4;ng1e1e0[2017]<=cb25ef;ng1e1e0[2008]<=lf32525;ng1e1e0[1988]<=vx33b0[0];ng1e1e0[1987]<=wl12f7d;ng1e1e0[1969]<=mg9292f;ng1e1e0[1928]<=iccec3e;ng1e1e0[1926]<=rva04bd;ng1e1e0[1891]<=hd94979;ng1e1e0[1809]<=rg761f0;ng1e1e0[1805]<=kf23e8c;ng1e1e0[1804]<=mg1550f;ng1e1e0[1803]<=yz172cd;ng1e1e0[1761]<=tuf111f;ng1e1e0[1748]<=gdab323;ng1e1e0[1734]<=oha4bce;ng1e1e0[1727]<=ym10823[0];ng1e1e0[1696]<=bn1c17d;ng1e1e0[1668]<=gd1df20;ng1e1e0[1633]<=do93194;ng1e1e0[1587]<=ps79d12;ng1e1e0[1571]<=lfb0f83;ng1e1e0[1562]<=gofa328;ng1e1e0[1560]<=hdaa879;ng1e1e0[1558]<=ignore_pkt;ng1e1e0[1555]<=zma2177;ng1e1e0[1550]<=dm579a3[0];ng1e1e0[1531]<=ri4632;ng1e1e0[1475]<=uk888fa;ng1e1e0[1464]<=bl7b98b;ng1e1e0[1448]<=mrcc8e0[0];ng1e1e0[1420]<=zm25e74;ng1e1e0[1406]<=vx84118;ng1e1e0[1345]<=yke0bef;ng1e1e0[1288]<=icef904;ng1e1e0[1287]<=fc2fbc1;ng1e1e0[1242]<=yx6f559;ng1e1e0[1218]<=gq98ca2;ng1e1e0[1131]<=yxf8210;ng1e1e0[1126]<=wwce893;ng1e1e0[1094]<=xw69ede;ng1e1e0[1076]<=zm8ca08;ng1e1e0[1072]<=en543cf;ng1e1e0[1069]<=qgcb360;ng1e1e0[1063]<=ie10bba;ng1e1e0[1056]<=ba2085b;ng1e1e0[1055]<=ykef059;ng1e1e0[1052]<=ec346cf;ng1e1e0[1028]<=ldd22e2[0];ng1e1e0[1023]<=ks10d54;ng1e1e0[1014]<=ir23192;ng1e1e0[994]<=vv400ce;ng1e1e0[902]<=of447d1;ng1e1e0[901]<=lde68d9[0];ng1e1e0[880]<=je2fc44[0];ng1e1e0[874]<=zkd5664;ng1e1e0[863]<=jc42104;ng1e1e0[848]<=ux2382f[0];ng1e1e0[834]<=ui43be4[0];ng1e1e0[816]<=wl12632;ng1e1e0[793]<=je2f3a2;ng1e1e0[777]<=vx9442e[0];ng1e1e0[775]<=hq2af34;ng1e1e0[765]<=lqfe289;ng1e1e0[732]<=wj6023b;ng1e1e0[643]<=aa5f78;ng1e1e0[621]<=sw8deab;ng1e1e0[565]<=ym1f042[0];ng1e1e0[528]<=rge410b[0];ng1e1e0[527]<=me7de0b;ng1e1e0[514]<=en5b48b;ng1e1e0[497]<=fnc8019;ng1e1e0[450]<=ksbcd1b;ng1e1e0[437]<=gb7aacc;ng1e1e0[431]<=ux8420;ng1e1e0[417]<=al410ef;ng1e1e0[408]<=hqa24c6;ng1e1e0[388]<=jr32885[0];ng1e1e0[387]<=ep855e6;ng1e1e0[366]<=tu6c047;ng1e1e0[310]<=psf1bd5[0];ng1e1e0[282]<=uif07c1;ng1e1e0[257]<=jeb691;ng1e1e0[248]<=ic59003;ng1e1e0[225]<=rgc0518;ng1e1e0[215]<=mec1084;ng1e1e0[208]<=nt2821d;ng1e1e0[204]<=bl74498;ng1e1e0[193]<=jp50abc;ng1e1e0[183]<=ldcd808[0];ng1e1e0[155]<=fcb7c6f;ng1e1e0[141]<=sw3e0f8;ng1e1e0[128]<=sw216d2[0];ng1e1e0[124]<=ngb200[0];ng1e1e0[112]<=xy1b3c0;ng1e1e0[104]<=cz65043;ng1e1e0[96]<=uxa1e7d;ng1e1e0[91]<=go59b01;ng1e1e0[78]<=wl85dd0;ng1e1e0[77]<=zz16f8d;ng1e1e0[64]<=zm42da;ng1e1e0[62]<=ea782c8;ng1e1e0[56]<=eca3678;ng1e1e0[38]<=kde2df1;ng1e1e0[19]<=me5c5be;ng1e1e0[9]<=bn8b8b7[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[3]};rvba149<=mef0f02[4];ned0a4f<=mef0f02[5];kf8527a<=mef0f02[6];gb6abd3<={uv70d29>>1,mef0f02[7]};ntaf4ee<={hq8694d>>1,mef0f02[8]};czd3bb5<={ec34a6a>>1,mef0f02[9]};dmeed68<={lfa5351>>1,mef0f02[10]};dbb5a1a<={gd29a8f>>1,mef0f02[11]};go686bb<={rg4d47c>>1,mef0f02[12]};ie1aec9<={mr6a3e2>>1,mef0f02[13]};yzbb24e<={of51f14>>1,mef0f02[14]};gbc93ad<={sj8f8a4>>1,mef0f02[15]};ay49d6c<=mef0f02[16];kd4eb61<=mef0f02[17];ip75b0c<=mef0f02[18];qv39dc8<={ba25a85>>1,mef0f02[19]};gq88319<=mef0f02[20];cz418c8<=mef0f02[21];ho6322e<={ldcd808>>1,mef0f02[22]};xl19172<=mef0f02[23];vvc8b97<=mef0f02[24];wwde5f9<=mef0f02[25];wwd1063<=mef0f02[26];ym3e93a<={xw791a7>>1,mef0f02[27]};epa4e83<={me469d7>>1,mef0f02[28]};zz2741c<=mef0f02[29];je3a0e6<=mef0f02[30];byd0733<=mef0f02[31];vk8399b<=mef0f02[32];ph1ccda<=mef0f02[33];gd336b6<={qia590>>1,mef0f02[34]};bn9b5b5<=mef0f02[35];vidadae<=mef0f02[36];end6d73<=mef0f02[37];swb6b9d<=mef0f02[38];phb5ce8<=mef0f02[39];zk73a3c<={nr5a773>>1,mef0f02[40]};qte8f11<={uk9dcf5>>1,mef0f02[41]};yz3c462<={by73d42>>1,mef0f02[42]};ofe2314<=mef0f02[43];zm118a4<=mef0f02[44];ba8c522<=mef0f02[45];me62912<=mef0f02[46];ng14891<=mef0f02[47];kfa448a<=mef0f02[48];zz22455<=mef0f02[49];kf122ae<=mef0f02[50];nt91574<=mef0f02[51];oh8aba7<=mef0f02[52];pf55d3c<=mef0f02[53];anae9e6<=mef0f02[54];bl74f35<=mef0f02[55];lsa79af<=mef0f02[56];fne6bdd<={czfd46f>>1,mef0f02[57]};je35eef<=mef0f02[58];zzaf77b<=mef0f02[59];vvddef6<={mr6f821>>1,mef0f02[60]};ykef7b6<=mef0f02[61];hb7bdb0<=mef0f02[62];pff6c31<={sw82127>>1,mef0f02[63]};ntb0c71<={zz849c8>>1,mef0f02[64]};co31c7b<={nt27238>>1,mef0f02[65]};xj71ecf<={thc8e34>>1,mef0f02[66]};gd8f67f<=mef0f02[67];hb7b3fd<=mef0f02[68];facff7c<={ec34efc>>1,mef0f02[69]};end -always@* begin ng1e1e0[2047]<=ks10d54;ng1e1e0[2046]<=fa6c2d4;ng1e1e0[2044]<=ls86aa0[0];ng1e1e0[2041]<=pf616a3;ng1e1e0[2035]<=lsb51f;ng1e1e0[2029]<=czfd46f[0];ng1e1e0[2022]<=vv5a8fb;ng1e1e0[2011]<=suea37c;ng1e1e0[1996]<=uv70d29[0];ng1e1e0[1974]<=kd51be0;ng1e1e0[1945]<=hq8694d[0];ng1e1e0[1943]<=rib86e8;ng1e1e0[1922]<=rx_fifo_full;ng1e1e0[1901]<=mr6f821[0];ng1e1e0[1842]<=ec34a6a[0];ng1e1e0[1839]<=kdc3742;ng1e1e0[1797]<=ignore_pkt;ng1e1e0[1791]<=fa471a7;ng1e1e0[1778]<=ho425c3;ng1e1e0[1776]<=ldcd808[0];ng1e1e0[1759]<=zz849c8[0];ng1e1e0[1755]<=rg7c10d;ng1e1e0[1637]<=lfa5351[0];ng1e1e0[1631]<=hq1ba15;ng1e1e0[1622]<=of51f14[0];ng1e1e0[1546]<=xw791a7[0];ng1e1e0[1535]<=vx38d3b;ng1e1e0[1531]<=ym157ea;ng1e1e0[1509]<=kf12e1b;ng1e1e0[1504]<=tu6c047;ng1e1e0[1471]<=nt27238[0];ng1e1e0[1468]<=qgcb360;ng1e1e0[1463]<=ice086a;ng1e1e0[1391]<=vk14915;ng1e1e0[1312]<=qia590[0];ng1e1e0[1226]<=gd29a8f[0];ng1e1e0[1215]<=xjdd0ab;ng1e1e0[1197]<=sj8f8a4[0];ng1e1e0[1153]<=ri9640b;ng1e1e0[1044]<=me469d7[0];ng1e1e0[1037]<=tj8169d;ng1e1e0[1023]<=reset_n;ng1e1e0[1022]<=ec34efc[0];ng1e1e0[1014]<=yzabf51;ng1e1e0[971]<=ou970dd;ng1e1e0[961]<=wj6023b;ng1e1e0[895]<=thc8e34[0];ng1e1e0[889]<=baa84b8;ng1e1e0[888]<=go59b01;ng1e1e0[879]<=sw82127[0];ng1e1e0[811]<=mr6a3e2[0];ng1e1e0[765]<=dm42afd;ng1e1e0[734]<=ba25a85[0];ng1e1e0[695]<=ale2922;ng1e1e0[656]<=ngb8296;ng1e1e0[576]<=ho52c81;ng1e1e0[518]<=ux902d3;ng1e1e0[444]<=kqf5097;ng1e1e0[405]<=rg4d47c[0];ng1e1e0[382]<=uve855f;ng1e1e0[347]<=tu7c524;ng1e1e0[328]<=hbd7052;ng1e1e0[259]<=pub205a;ng1e1e0[222]<=jr9ea12;ng1e1e0[164]<=xy3ae0a;ng1e1e0[111]<=by73d42[0];ng1e1e0[82]<=ria75c1;ng1e1e0[55]<=uk9dcf5[0];ng1e1e0[41]<=sw34eb8;ng1e1e0[27]<=nr5a773[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[1]};kd4e479<=mef0f02[2];kq723cd<=mef0f02[3];hd91e69<={gqb35c6>>1,mef0f02[4]};oh8f34e<={an9ae31>>1,mef0f02[5]};rg79a75<=mef0f02[6];pfcd3ab<={tu73a4e>>1,mef0f02[7]};end -always@* begin ng1e1e0[2047]<=ep29d6d[0];ng1e1e0[2046]<=aa82cd7;ng1e1e0[2044]<=db166b8;ng1e1e0[2040]<=gqb35c6[0];ng1e1e0[2033]<=an9ae31[0];ng1e1e0[2019]<=thd718d;ng1e1e0[1991]<=tu73a4e[0];ng1e1e0[1023]<=of653ad;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};wl9fec7<=mef0f02[1];dzd8f4b<=mef0f02[2];nrc7a5e<={vif4c35>>1,mef0f02[3]};db3d2f6<={zm3f362>>1,mef0f02[4]};dze97b6<={ps6c4ff>>1,mef0f02[5]};end -always@* begin ng1e1e0[2047]<=hbe62f4;ng1e1e0[2046]<=uv5e986;ng1e1e0[2044]<=vif4c35[0];ng1e1e0[2040]<=zm3f362[0];ng1e1e0[2032]<=ps6c4ff[0];ng1e1e0[1023]<=mrdcc5e[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[1]};ip6f847<=mef0f02[2];lq7c23d<=mef0f02[3];wl8f53<={cm531bb>>1,mef0f02[4]};bn3d4ea<={yxc6ec0>>1,mef0f02[5]};kqea756<=mef0f02[6];ww53ab0<=mef0f02[7];gq9d581<=mef0f02[8];qg56049<={bl7b7f8>>1,mef0f02[9]};vx81246<={icff1cb>>1,mef0f02[10]};ph9236<=mef0f02[11];end -always@* begin ng1e1e0[2047]<=ay625cf[0];ng1e1e0[2046]<=sj12e78;ng1e1e0[2044]<=aa973c5;ng1e1e0[2040]<=cm531bb[0];ng1e1e0[2033]<=yxc6ec0[0];ng1e1e0[2018]<=nt37604;ng1e1e0[1988]<=pfd813d;ng1e1e0[1929]<=hoc09ef;ng1e1e0[1811]<=bl7b7f8[0];ng1e1e0[1574]<=icff1cb[0];ng1e1e0[1101]<=uvf8e59;ng1e1e0[1023]<=xjec4b9;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[6]};ng1497b<={fa69d8e>>1,mef0f02[7]};tw25ed4<={kd4ec72>>1,mef0f02[8]};ng2f6a2<=mef0f02[9];xj7b512<=mef0f02[10];jcda897<=mef0f02[11];kqd44bb<=mef0f02[12];ir12eca<={jr94778>>1,mef0f02[13]};ym97655<=mef0f02[14];uxbb2a8<=mef0f02[15];jccaa2d<={ayef1cc>>1,mef0f02[16]};bl5516a<=mef0f02[17];vka8b57<=mef0f02[18];bn2d5d7<={gd3980f>>1,mef0f02[19]};ip6aebf<=mef0f02[20];lq575fd<=mef0f02[21];vxbafea<=mef0f02[22];rtd7f56<=mef0f02[23];vxbfab7<=mef0f02[24];qtfd5be<=mef0f02[25];ayeadf4<=mef0f02[26];ww53ab0<={pfd813d>>1,mef0f02[27]};gq9d581<={hoc09ef>>1,mef0f02[28]};cbbe84a<=mef0f02[29];tuf4254<=mef0f02[30];rv9515<={kdd9d10>>1,mef0f02[31]};gb54576<={pf74420>>1,mef0f02[32]};ou15dab<={gq10832>>1,mef0f02[33]};sjaed58<=mef0f02[34];ne76ac5<=mef0f02[35];bnb562a<=mef0f02[36];irab156<=mef0f02[37];ho58ab4<=mef0f02[38];rgc55a2<=mef0f02[39];hq2ad12<={hbe3c76>>1,mef0f02[40]};cm56893<={zm1e3b7>>1,mef0f02[41]};epb4499<=mef0f02[42];fca24cc<=mef0f02[43];gd12662<=mef0f02[44];fc93314<=mef0f02[45];xy998a2<=mef0f02[46];qtcc512<=mef0f02[47];ls144a1<={go782f6>>1,mef0f02[48]};xya250b<=mef0f02[49];ux1285a<=mef0f02[50];tj942d5<=mef0f02[51];kfa16af<={gq15fa4>>1,mef0f02[52]};xyb57d<=mef0f02[53];nr5abeb<=mef0f02[54];rgd5f5f<={rgf483e>>1,mef0f02[55]};rvafafa<=mef0f02[56];ea7d7d7<=mef0f02[57];jcebeb8<=mef0f02[58];vv5f5c3<=mef0f02[59];ykfae1e<=mef0f02[60];pfd70f0<=mef0f02[61];zmb8786<=mef0f02[62];wjc3c32<=mef0f02[63];vk1e194<=mef0f02[64];ykf0ca2<={xj4aae6>>1,mef0f02[65]};ng86511<={jp55736>>1,mef0f02[66]};hd3288b<={irab9b7>>1,mef0f02[67]};fp9445e<=mef0f02[68];baa22f7<=mef0f02[69];zm117ba<=mef0f02[70];end -always@* begin ng1e1e0[2047]<=anaeeb9;ng1e1e0[2046]<=yk775cd;ng1e1e0[2044]<=phbae69;ng1e1e0[2040]<=vvd734e;ng1e1e0[2032]<=ukb9a76;ng1e1e0[2018]<=faf1dba;ng1e1e0[2017]<=nrcd3b1[0];ng1e1e0[1989]<=tj8edd3;ng1e1e0[1987]<=fa69d8e[0];ng1e1e0[1931]<=czd3c9f;ng1e1e0[1927]<=kd4ec72[0];ng1e1e0[1865]<=ayef1cc[0];ng1e1e0[1859]<=gq10832[0];ng1e1e0[1844]<=hdafd20;ng1e1e0[1815]<=fp9e4fd;ng1e1e0[1806]<=ho76394;ng1e1e0[1682]<=ui78e60;ng1e1e0[1674]<=qv90c78;ng1e1e0[1671]<=lf32197;ng1e1e0[1640]<=fn7e907;ng1e1e0[1582]<=czf27ee;ng1e1e0[1565]<=irb1ca3;ng1e1e0[1488]<=kdd9d10[0];ng1e1e0[1485]<=kf8057e;ng1e1e0[1326]<=gb6560e;ng1e1e0[1317]<=tucf141;ng1e1e0[1300]<=sj23348;ng1e1e0[1297]<=xj4aae6[0];ng1e1e0[1295]<=oh90cbf;ng1e1e0[1233]<=rgf483e[0];ng1e1e0[1210]<=hoc09ef[0];ng1e1e0[1189]<=cz4eb6c;ng1e1e0[1172]<=encc07d;ng1e1e0[1116]<=ld55e0b;ng1e1e0[1105]<=rv9bb69;ng1e1e0[1092]<=irab9b7[0];ng1e1e0[1087]<=ym97f1e;ng1e1e0[1082]<=tx_fifoavail;ng1e1e0[1023]<=gof5dd7;ng1e1e0[1009]<=zm1e3b7[0];ng1e1e0[932]<=sj1de39;ng1e1e0[929]<=pf74420[0];ng1e1e0[922]<=gq15fa4[0];ng1e1e0[837]<=xy20f9d;ng1e1e0[744]<=je1b674;ng1e1e0[742]<=lfb00af;ng1e1e0[663]<=ldecac1;ng1e1e0[648]<=mgad95;ng1e1e0[605]<=pfd813d[0];ng1e1e0[594]<=ng1f65;ng1e1e0[586]<=gd3980f[0];ng1e1e0[552]<=by69136;ng1e1e0[547]<=cb36f47;ng1e1e0[546]<=jp55736[0];ng1e1e0[543]<=ri865fc;ng1e1e0[504]<=hbe3c76[0];ng1e1e0[466]<=gqa3bc7;ng1e1e0[418]<=kfa41f3;ng1e1e0[372]<=mt236ce;ng1e1e0[371]<=rtf6015;ng1e1e0[331]<=ieb9e28;ng1e1e0[324]<=zx7e856;ng1e1e0[297]<=mr603ec;ng1e1e0[273]<=rte6de8;ng1e1e0[252]<=xjfc78e;ng1e1e0[233]<=jr94778[0];ng1e1e0[185]<=go782f6[0];ng1e1e0[162]<=qg6d3f4;ng1e1e0[136]<=kq5cdbd;ng1e1e0[126]<=zzbf8f1;ng1e1e0[116]<=os728ef;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[3]};ec31d79<=mef0f02[4];lf8ebc9<=mef0f02[5];dbaf275<={tj19519>>1,mef0f02[6]};ng2f6a2<=mef0f02[7];alc9d72<=mef0f02[8];kd4eb95<=mef0f02[9];ip75cac<=mef0f02[10];qvae565<=mef0f02[11];su72b2c<=mef0f02[12];oh95960<=mef0f02[13];qiacb04<=mef0f02[14];uv65820<=mef0f02[15];wl2c104<=mef0f02[16];uv60825<=mef0f02[17];vk412c<=mef0f02[18];ng20962<=mef0f02[19];ri4b12<=mef0f02[20];ls25893<=mef0f02[21];ay49c8f<={ep29d6d>>1,mef0f02[22]};an126a8<=mef0f02[23];je93544<=mef0f02[24];ep9aa22<=mef0f02[25];xwd5115<=mef0f02[26];pua88ab<=mef0f02[27];vx22ad4<={uv4b7df>>1,mef0f02[28]};gq156a7<=mef0f02[29];zx5a9cc<={fafbf6a>>1,mef0f02[30]};icd4e67<=mef0f02[31];vka7338<=mef0f02[32];ep399c2<=mef0f02[33];ofcce15<=mef0f02[34];qg670ad<=mef0f02[35];rv38568<=mef0f02[36];ldc2b46<=mef0f02[37];ks15a36<=mef0f02[38];lsad1b0<=mef0f02[39];ic68d83<=mef0f02[40];go46c18<=mef0f02[41];yz360c0<=mef0f02[42];phb0605<=mef0f02[43];pu8302e<=mef0f02[44];wl18173<=mef0f02[45];lqc0b9d<=mef0f02[46];ou5ceb<=mef0f02[47];mg2e759<=mef0f02[48];ne73ac8<=mef0f02[49];ym9d642<=mef0f02[50];byeb211<=mef0f02[51];jpc8451<={ww78015>>1,mef0f02[52]};zk4228e<=mef0f02[53];xy11473<=mef0f02[54];qv8a39b<=mef0f02[55];ip51cdd<=mef0f02[56];xl8e6ec<=mef0f02[57];lq73767<=mef0f02[58];ph9bb3b<=mef0f02[59];jpdd9df<=mef0f02[60];jpecefe<=mef0f02[61];os677f6<=mef0f02[62];end -always@* begin ng1e1e0[2047]<=anaeeb9;ng1e1e0[2046]<=tx_sndpausreq;ng1e1e0[2044]<=tx_sndpaustim[0];ng1e1e0[2040]<=wyb3e52;ng1e1e0[2033]<=ux9f290;ng1e1e0[2019]<=tj19519[0];ng1e1e0[1991]<=ho76394;ng1e1e0[1934]<=by52133;ng1e1e0[1929]<=bydf8eb;ng1e1e0[1898]<=jc63c02;ng1e1e0[1821]<=bycf546;ng1e1e0[1810]<=blfc75b;ng1e1e0[1749]<=fc9c68c;ng1e1e0[1707]<=xyea19;ng1e1e0[1666]<=uv4b7df[0];ng1e1e0[1630]<=ng30125;ng1e1e0[1595]<=qg4671a;ng1e1e0[1572]<=wl1d6f7;ng1e1e0[1506]<=fc25558;ng1e1e0[1450]<=nga2e8e;ng1e1e0[1440]<=vid0974;ng1e1e0[1384]<=oh9a12e;ng1e1e0[1370]<=ep29d6d[0];ng1e1e0[1366]<=tx_discfrm;ng1e1e0[1284]<=of5befd;ng1e1e0[1212]<=an8092a;ng1e1e0[1202]<=vvecbf5;ng1e1e0[1174]<=wj44d9d;ng1e1e0[1170]<=aa8748b;ng1e1e0[1142]<=ep338d1;ng1e1e0[1125]<=gq988c6;ng1e1e0[1097]<=dz55311;ng1e1e0[1041]<=shed49d;ng1e1e0[1023]<=gof5dd7;ng1e1e0[964]<=je2aac3;ng1e1e0[949]<=hq8c780;ng1e1e0[853]<=qi2b075;ng1e1e0[833]<=ps5d2df;ng1e1e0[815]<=ofc6024;ng1e1e0[753]<=sw24aab;ng1e1e0[720]<=xjc8b1c;ng1e1e0[714]<=icced42;ng1e1e0[692]<=hd13425;ng1e1e0[685]<=mec1d43;ng1e1e0[601]<=bl4f4d7;ng1e1e0[587]<=ui67dfc;ng1e1e0[585]<=je35187;ng1e1e0[562]<=db13118;ng1e1e0[520]<=fafbf6a[0];ng1e1e0[474]<=hbe3463;ng1e1e0[407]<=an18c04;ng1e1e0[376]<=fc4955;ng1e1e0[357]<=yma3c6e;ng1e1e0[300]<=ww6d020;ng1e1e0[293]<=gb5efc8;ng1e1e0[292]<=ww78015[0];ng1e1e0[281]<=yk62623;ng1e1e0[237]<=uk1a31e;ng1e1e0[203]<=oh23180;ng1e1e0[146]<=ww4c478;ng1e1e0[140]<=mred898;ng1e1e0[70]<=qi9db13;ng1e1e0[35]<=of6a4ed;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[2]};je3a537<={xl285a7>>1,mef0f02[3]};dzd29bb<={by42d3f>>1,mef0f02[4]};ww53ab0<=mef0f02[5];gq9d581<=mef0f02[6];jr377f1<=mef0f02[7];end -always@* begin ng1e1e0[2047]<=ls1fac;ng1e1e0[2046]<=oufd63[0];ng1e1e0[2044]<=xl285a7[0];ng1e1e0[2040]<=by42d3f[0];ng1e1e0[2033]<=pfd813d;ng1e1e0[2019]<=hoc09ef;ng1e1e0[1990]<=vk3f5eb;ng1e1e0[1023]<=yz803f5;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[1]};ipd346d<=mef0f02[2];wl9a36c<=mef0f02[3];god1b64<=mef0f02[4];vk412c<=mef0f02[5];dm6c808<={ym9de6f>>1,mef0f02[6]};hq20217<={ps79bc0>>1,mef0f02[7]};ux85da<={cz6f01f>>1,mef0f02[8]};wl176a2<={fac07e0>>1,mef0f02[9]};neda8a5<={gq1f816>>1,mef0f02[10]};lsa2959<={sue058e>>1,mef0f02[11]};zza565a<={fp1638c>>1,mef0f02[12]};me596b8<={ph8e335>>1,mef0f02[13]};xj5ae09<={ls8cd7f>>1,mef0f02[14]};vkb827e<={ri35fdb>>1,mef0f02[15]};lf9f90<={kd7f6df>>1,mef0f02[16]};th7e43e<={aydb7eb>>1,mef0f02[17]};kf90fbd<={jcdfac1>>1,mef0f02[18]};co3ef60<={vieb05c>>1,mef0f02[19]};dobd804<={uic1713>>1,mef0f02[20]};hbec023<=mef0f02[21];en6011f<=mef0f02[22];end -always@* begin ng1e1e0[2047]<=tx_fifodata[0];ng1e1e0[2046]<=tx_fifoeof;ng1e1e0[2044]<=tx_fifoempty;ng1e1e0[2040]<=tx_fifoctrl;ng1e1e0[2032]<=qi2b075;ng1e1e0[2017]<=ym9de6f[0];ng1e1e0[1987]<=ps79bc0[0];ng1e1e0[1927]<=cz6f01f[0];ng1e1e0[1865]<=kd7f6df[0];ng1e1e0[1806]<=fac07e0[0];ng1e1e0[1682]<=aydb7eb[0];ng1e1e0[1565]<=gq1f816[0];ng1e1e0[1317]<=jcdfac1[0];ng1e1e0[1172]<=uic1713[0];ng1e1e0[1082]<=sue058e[0];ng1e1e0[1023]<=tx_discfrm;ng1e1e0[932]<=ri35fdb[0];ng1e1e0[594]<=su5c4c2;ng1e1e0[586]<=vieb05c[0];ng1e1e0[466]<=ls8cd7f[0];ng1e1e0[297]<=fcb898;ng1e1e0[233]<=ph8e335[0];ng1e1e0[116]<=fp1638c[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[5]};cm5681e<={vvf96fb>>1,mef0f02[6]};ng1497b<={fa69d8e>>1,mef0f02[7]};al7a68d<={tx_fifodata>>1,mef0f02[8]};ipd346d<=mef0f02[9];wl9a36c<=mef0f02[10];jcda897<=mef0f02[11];ay463af<={tx_sndpaustim>>1,mef0f02[12]};end918e<=mef0f02[13];god1b64<=mef0f02[14];ipd9356<=mef0f02[15];ps4d5ad<={cb90622>>1,mef0f02[16]};ipe2514<=mef0f02[17];ux3c4a2<=mef0f02[18];tw25ed4<={kd4ec72>>1,mef0f02[19]};jccaa2d<={ayef1cc>>1,mef0f02[20]};bn2d5d7<={gd3980f>>1,mef0f02[21]};ip6aebf<=mef0f02[22];dbaf275<={tj19519>>1,mef0f02[23]};ir12eca<={jr94778>>1,mef0f02[24]};ay49c8f<={ep29d6d>>1,mef0f02[25]};kd4eb95<=mef0f02[26];lf81c3e<=mef0f02[27];al70fbb<={nr5a6ca>>1,mef0f02[28]};qi3eee8<={tj9b2b4>>1,mef0f02[29]};end -always@* begin ng1e1e0[2047]<=gof5dd7;ng1e1e0[2046]<=anaeeb9;ng1e1e0[2044]<=phbae69;ng1e1e0[2040]<=yk775cd;ng1e1e0[2032]<=vk3f2df[0];ng1e1e0[2017]<=vvf96fb[0];ng1e1e0[1987]<=fa69d8e[0];ng1e1e0[1926]<=tx_fifodata[0];ng1e1e0[1804]<=tx_fifoeof;ng1e1e0[1803]<=tj19519[0];ng1e1e0[1560]<=tx_fifoempty;ng1e1e0[1558]<=jr94778[0];ng1e1e0[1550]<=cb90622[0];ng1e1e0[1072]<=tx_fifoavail;ng1e1e0[1069]<=ep29d6d[0];ng1e1e0[1052]<=ukb9a76;ng1e1e0[1023]<=ir3994e;ng1e1e0[901]<=encc07d;ng1e1e0[775]<=zk520c4;ng1e1e0[732]<=tj9b2b4[0];ng1e1e0[450]<=gd3980f[0];ng1e1e0[387]<=tx_fifoctrl;ng1e1e0[366]<=nr5a6ca[0];ng1e1e0[225]<=ayef1cc[0];ng1e1e0[193]<=tx_sndpausreq;ng1e1e0[183]<=sh7aa33;ng1e1e0[112]<=kd4ec72[0];ng1e1e0[96]<=tx_sndpaustim[0];ng1e1e0[91]<=bycf546;ng1e1e0[56]<=vvd734e;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};go781e5<={hdatain>>1,mef0f02[1]};zkc0f28<=mef0f02[2];yz7943<=mef0f02[3];mt3ca1c<=mef0f02[4];yke50e5<=mef0f02[5];cm4394f<={ene2fd7>>1,mef0f02[6]};tj1ca78<=mef0f02[7];ir29e31<={bldd558>>1,mef0f02[8]};jp4f18c<=mef0f02[9];cm78c67<=mef0f02[10];yxc6339<=mef0f02[11];ou319cd<=mef0f02[12];ls8ce69<=mef0f02[13];su6734b<=mef0f02[14];fncd2c5<={kdd3961>>1,mef0f02[15]};wj4b173<={cme586a>>1,mef0f02[16]};lqc5cea<={nr61a85>>1,mef0f02[17]};dm73a98<={uv6a174>>1,mef0f02[18]};wy9d4c2<=mef0f02[19];ww53088<={fn4f950>>1,mef0f02[20]};jpc2201<={cme5433>>1,mef0f02[21]};ec8807b<={hb50cca>>1,mef0f02[22]};ba1ec6<={gd332b3>>1,mef0f02[23]};dz7b199<={jccaceb>>1,mef0f02[24]};hbd8ccf<={yk5675a>>1,mef0f02[25]};shc667e<=mef0f02[26];hq99fad<={jceb401>>1,mef0f02[27]};nr7eb52<={tud0056>>1,mef0f02[28]};twad4b1<={do159c>>1,mef0f02[29]};ps52c5c<={os56710>>1,mef0f02[30]};irb171a<={xy9c400>>1,mef0f02[31]};ea5c6a6<={uk1001c>>1,mef0f02[32]};ie1a98e<={ou70c>>1,mef0f02[33]};yma6388<={nt1c306>>1,mef0f02[34]};aa31c40<=mef0f02[35];fp8e201<=mef0f02[36];qi8807e<={db6eb4>>1,mef0f02[37]};pu1f86<={ntbad37>>1,mef0f02[38]};ld7e198<={uxb4df5>>1,mef0f02[39]};ba86639<={tj37d69>>1,mef0f02[40]};ks98e5d<={wwf5a74>>1,mef0f02[41]};mt39747<={by69d0b>>1,mef0f02[42]};jc5d1e0<={nr742d4>>1,mef0f02[43]};ne4781c<={vkb535>>1,mef0f02[44]};cb3c0e2<={xj5a9ab>>1,mef0f02[45]};lf38a1<={wya6af8>>1,mef0f02[46]};she2877<={qvabe0a>>1,mef0f02[47]};je143bd<=mef0f02[48];ira1deb<=mef0f02[49];doef5c<=mef0f02[50];pubd710<={jp55d00>>1,mef0f02[51]};tueb882<=mef0f02[52];ui5c413<=mef0f02[53];end -always@* begin ng1e1e0[2047]<=hdatain[0];ng1e1e0[2046]<=hread_n;ng1e1e0[2044]<=hwrite_n;ng1e1e0[2040]<=hcs_n;ng1e1e0[2032]<=aye5ebc;ng1e1e0[2016]<=ene2fd7[0];ng1e1e0[1985]<=cb17ebd;ng1e1e0[1925]<=wwf5a74[0];ng1e1e0[1922]<=bldd558[0];ng1e1e0[1802]<=by69d0b[0];ng1e1e0[1796]<=ykeaac7;ng1e1e0[1556]<=nr742d4[0];ng1e1e0[1544]<=gq3baab;ng1e1e0[1505]<=uxb4df5[0];ng1e1e0[1324]<=gbf82ae;ng1e1e0[1316]<=jceb401[0];ng1e1e0[1200]<=jp55d00[0];ng1e1e0[1169]<=do159c[0];ng1e1e0[1163]<=uk1001c[0];ng1e1e0[1118]<=rge1837;ng1e1e0[1106]<=gd332b3[0];ng1e1e0[1065]<=vkb535[0];ng1e1e0[1041]<=nr61a85[0];ng1e1e0[1040]<=xw734fa;ng1e1e0[1023]<=haddr[0];ng1e1e0[962]<=tj37d69[0];ng1e1e0[752]<=ntbad37[0];ng1e1e0[707]<=hb74035;ng1e1e0[662]<=zx5f055;ng1e1e0[658]<=swb3ad0;ng1e1e0[600]<=ykc1574;ng1e1e0[584]<=tud0056[0];ng1e1e0[581]<=xy9c400[0];ng1e1e0[559]<=nt1c306[0];ng1e1e0[553]<=hb50cca[0];ng1e1e0[520]<=cme586a[0];ng1e1e0[376]<=db6eb4[0];ng1e1e0[353]<=epae806;ng1e1e0[331]<=qvabe0a[0];ng1e1e0[329]<=yk5675a[0];ng1e1e0[290]<=os56710[0];ng1e1e0[279]<=ou70c[0];ng1e1e0[276]<=cme5433[0];ng1e1e0[260]<=kdd3961[0];ng1e1e0[188]<=zzc1ba;ng1e1e0[165]<=wya6af8[0];ng1e1e0[164]<=jccaceb[0];ng1e1e0[138]<=fn4f950[0];ng1e1e0[130]<=qv9f4e5;ng1e1e0[82]<=xj5a9ab[0];ng1e1e0[69]<=pu353e5;ng1e1e0[65]<=kdd3e9c;ng1e1e0[34]<=uv6a174[0];ng1e1e0[32]<=gd9a7d3;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};ho5da61<={kdc64dc>>1,mef0f02[1]};shed30a<=mef0f02[2];ne69855<=mef0f02[3];ui4c2aa<=mef0f02[4];ecaa87<={iccb7a2>>1,mef0f02[5]};phaa1c7<={kqde88d>>1,mef0f02[6]};ie871f6<={vka234a>>1,mef0f02[7]};fnc7d8f<={gq8d292>>1,mef0f02[8]};nrf63f0<={jp4a483>>1,mef0f02[9]};kf8fc3d<={gq920fa>>1,mef0f02[10]};ayf0f67<={je83e85>>1,mef0f02[11]};tj3d9c8<={qgfa150>>1,mef0f02[12]};ic6723e<={yz8540a>>1,mef0f02[13]};ldc8f84<={hb502a2>>1,mef0f02[14]};tu47c27<=mef0f02[15];wy3e13a<=mef0f02[16];ayf09d1<=mef0f02[17];fp84e89<=mef0f02[18];vx2744f<=mef0f02[19];end -always@* begin ng1e1e0[2047]<=kdc64dc[0];ng1e1e0[2046]<=xy9372f;ng1e1e0[2044]<=mdi;ng1e1e0[2040]<=lf2de5b;ng1e1e0[2032]<=iccb7a2[0];ng1e1e0[2017]<=kqde88d[0];ng1e1e0[1987]<=vka234a[0];ng1e1e0[1926]<=gq8d292[0];ng1e1e0[1804]<=jp4a483[0];ng1e1e0[1614]<=wya8be;ng1e1e0[1561]<=gq920fa[0];ng1e1e0[1180]<=al545f0;ng1e1e0[1074]<=je83e85[0];ng1e1e0[1023]<=gd18c9b[0];ng1e1e0[807]<=tj81517;ng1e1e0[625]<=wl17c2b;ng1e1e0[403]<=hb502a2[0];ng1e1e0[312]<=nga2f85;ng1e1e0[201]<=yz8540a[0];ng1e1e0[100]<=qgfa150[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};hbc2a27<=mef0f02[1];ec1513e<=mef0f02[2];twa89f1<=mef0f02[3];sh44f8a<=mef0f02[4];vx27c55<=mef0f02[5];gq3e2af<=mef0f02[6];dmf1579<=mef0f02[7];yz8abca<=mef0f02[8];rt55e54<={rxd_pos>>1,mef0f02[9]};rvaf2a6<={rxd_neg>>1,mef0f02[10]};by79536<=mef0f02[11];lqca9b2<=mef0f02[12];qt54d92<=mef0f02[13];gqa6c94<=mef0f02[14];sj364a1<=mef0f02[15];rib250d<=mef0f02[16];ie9286b<=mef0f02[17];bn94359<=mef0f02[18];wla1acf<=mef0f02[19];mtd67c<=mef0f02[20];me59f26<={pf748cc>>1,mef0f02[21]};tu7c982<={an2333d>>1,mef0f02[22]};qv2609a<={kdccf66>>1,mef0f02[23]};ou826a2<={dm66a7e>>1,mef0f02[24]};an9a88e<={uka9f9a>>1,mef0f02[25]};qgd4475<=mef0f02[26];lsa23a9<=mef0f02[27];ba11d4a<=mef0f02[28];tj8ea52<=mef0f02[29];cz75296<=mef0f02[30];oua94b4<=mef0f02[31];jp4a5a1<=mef0f02[32];dm52d0f<=mef0f02[33];ls9687b<=mef0f02[34];yzb43db<=mef0f02[35];swf6e4<={hoc0bc3>>1,mef0f02[36]};zx7b721<=mef0f02[37];ykdb90f<=mef0f02[38];czdc879<=mef0f02[39];dme43cc<=mef0f02[40];sw21e63<=mef0f02[41];ecf318<=mef0f02[42];ps798c1<=mef0f02[43];yxcc60b<=mef0f02[44];ir182e2<={xy2aaf4>>1,mef0f02[45]};cmc1715<=mef0f02[46];kq5c542<={sh5e8fd>>1,mef0f02[47]};uve2a11<={faf47ed>>1,mef0f02[48]};ym1508d<={mga3f6a>>1,mef0f02[49]};xya8469<=mef0f02[50];by4234b<=mef0f02[51];ng11a5b<=mef0f02[52];ie8d2da<=mef0f02[53];rg696d0<=mef0f02[54];gb4b683<=mef0f02[55];gb5b41d<=mef0f02[56];jcda0ec<=mef0f02[57];hod0762<=mef0f02[58];end -always@* begin ng1e1e0[2047]<=zx6e28f;ng1e1e0[2046]<=pf7147e;ng1e1e0[2044]<=ned0632;ng1e1e0[2040]<=kq53683;ng1e1e0[2032]<=rx_dv_pos;ng1e1e0[2016]<=rx_dv_neg;ng1e1e0[1985]<=rx_er_pos;ng1e1e0[1922]<=rx_er_neg;ng1e1e0[1867]<=tu693a4;ng1e1e0[1804]<=sh5e8fd[0];ng1e1e0[1797]<=rxd_pos[0];ng1e1e0[1761]<=th50aab;ng1e1e0[1686]<=ui49d23;ng1e1e0[1623]<=mr5136c;ng1e1e0[1561]<=faf47ed[0];ng1e1e0[1558]<=wl9a1bf;ng1e1e0[1547]<=rxd_neg[0];ng1e1e0[1542]<=hoc0bc3[0];ng1e1e0[1490]<=nr74349;ng1e1e0[1475]<=xy2aaf4[0];ng1e1e0[1413]<=pf7e686;ng1e1e0[1409]<=xla5605;ng1e1e0[1400]<=xw6cad8;ng1e1e0[1324]<=pf748cc[0];ng1e1e0[1200]<=kdccf66[0];ng1e1e0[1199]<=fc89b65;ng1e1e0[1074]<=mga3f6a[0];ng1e1e0[1068]<=ng86fe2;ng1e1e0[1047]<=qv9f880;ng1e1e0[1037]<=ie5e1b;ng1e1e0[1023]<=fncdc51[0];ng1e1e0[933]<=ana1a4e;ng1e1e0[902]<=dz557a3;ng1e1e0[880]<=byca155;ng1e1e0[811]<=cz6a26d;ng1e1e0[779]<=zxf3437;ng1e1e0[771]<=wy2b02f;ng1e1e0[745]<=ie2e869;ng1e1e0[706]<=uka9f9a[0];ng1e1e0[704]<=ieb6958;ng1e1e0[700]<=kq6d95b;ng1e1e0[600]<=an2333d[0];ng1e1e0[440]<=yxd942a;ng1e1e0[405]<=kded44d;ng1e1e0[372]<=uk5d0d;ng1e1e0[353]<=dm66a7e[0];ng1e1e0[352]<=ymb6d2b;ng1e1e0[350]<=xw4db2b;ng1e1e0[220]<=ls1b285;ng1e1e0[202]<=kdfda89;ng1e1e0[186]<=cb80ba1;ng1e1e0[176]<=vk96da5;ng1e1e0[110]<=enc3650;ng1e1e0[101]<=mg1fb51;ng1e1e0[93]<=kde202e;ng1e1e0[88]<=db37f12;ng1e1e0[55]<=ay786ca;ng1e1e0[46]<=rtfc405;ng1e1e0[27]<=ri2f0d9;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[1]};go781e5<={hdatain>>1,mef0f02[2]};mt3ca1c<=mef0f02[3];yz7943<=mef0f02[4];zkc0f28<=mef0f02[5];al7a68d<={tx_fifodata>>1,mef0f02[6]};jcda897<=mef0f02[7];ipd346d<=mef0f02[8];wl9a36c<=mef0f02[9];ay463af<={tx_sndpaustim>>1,mef0f02[10]};end918e<=mef0f02[11];god1b64<=mef0f02[12];wwde5f9<=mef0f02[13];wwd1063<=mef0f02[14];ks9259a<={ie2197a>>1,mef0f02[15]};ks92cd0<=mef0f02[16];pu96681<=mef0f02[17];ir29e31<={bldd558>>1,mef0f02[18]};jp4f18c<=mef0f02[19];vid028c<={ned0f15>>1,mef0f02[20]};bn81463<=mef0f02[21];iea31e<=mef0f02[22];wj518f1<={mre2a84>>1,mef0f02[23]};do8c78c<=mef0f02[24];dm63c62<=mef0f02[25];tw1e313<=mef0f02[26];jcf189a<=mef0f02[27];xy8c4d3<=mef0f02[28];go6269a<={ep29dbb>>1,mef0f02[29]};ph134d0<=mef0f02[30];an9a686<=mef0f02[31];ofd3434<=mef0f02[32];sj9a1a4<=mef0f02[33];byd0d24<=mef0f02[34];ri86922<=mef0f02[35];gq34912<=mef0f02[36];ana4891<=mef0f02[37];qi2448c<=mef0f02[38];vx22461<={xwe47ba>>1,mef0f02[39]};ep1230e<={yz23dd3>>1,mef0f02[40]};rv91874<={fc1ee9d>>1,mef0f02[41]};pu8c3a6<={gbf74eb>>1,mef0f02[42]};xj61d32<={bnba75d>>1,mef0f02[43]};twe996<={qtd3aef>>1,mef0f02[44]};dz74cb2<={ks9d77d>>1,mef0f02[45]};aaa6597<={tuebbe9>>1,mef0f02[46]};tj32cb8<={vi5df4b>>1,mef0f02[47]};vk965c6<={ykefa5a>>1,mef0f02[48]};vkb2e32<={ic7d2d1>>1,mef0f02[49]};ks97192<={rte9688>>1,mef0f02[50]};lsb8c90<={gb4b447>>1,mef0f02[51]};shc6483<=mef0f02[52];vx3241d<={qgd11ee>>1,mef0f02[53]};ou920ef<=mef0f02[54];sj90778<=mef0f02[55];ba83bc5<=mef0f02[56];kf1de2a<=mef0f02[57];osef154<=mef0f02[58];cm78aa0<=mef0f02[59];xwc5501<=mef0f02[60];do2a80a<=mef0f02[61];yx54053<={hq965a2>>1,mef0f02[62]};zza029d<={ngb2d12>>1,mef0f02[63]};ng14ef<=mef0f02[64];aaa77a<=mef0f02[65];ic53bd1<=mef0f02[66];ym9de89<=mef0f02[67];wwef448<={ou92714>>1,mef0f02[68]};qt7a240<={ri938a0>>1,mef0f02[69]};end -always@* begin ng1e1e0[2047]<=haddr[0];ng1e1e0[2046]<=hdatain[0];ng1e1e0[2044]<=hcs_n;ng1e1e0[2040]<=hwrite_n;ng1e1e0[2033]<=hread_n;ng1e1e0[2019]<=tx_fifodata[0];ng1e1e0[1994]<=gbf74eb[0];ng1e1e0[1990]<=tx_fifoavail;ng1e1e0[1981]<=tj84a76;ng1e1e0[1965]<=lsb7722;ng1e1e0[1940]<=bnba75d[0];ng1e1e0[1939]<=bldd558[0];ng1e1e0[1933]<=tx_fifoeof;ng1e1e0[1914]<=ba253b7;ng1e1e0[1883]<=ohbb913;ng1e1e0[1832]<=qtd3aef[0];ng1e1e0[1831]<=ykeaac7;ng1e1e0[1819]<=tx_fifoempty;ng1e1e0[1785]<=xwe47ba[0];ng1e1e0[1781]<=ep29dbb[0];ng1e1e0[1778]<=ie2197a[0];ng1e1e0[1740]<=hoee257;ng1e1e0[1719]<=mrdc89c;ng1e1e0[1634]<=mrd6596;ng1e1e0[1616]<=ks9d77d[0];ng1e1e0[1615]<=ned0f15[0];ng1e1e0[1591]<=tx_sndpaustim[0];ng1e1e0[1579]<=zm96892;ng1e1e0[1522]<=yz23dd3[0];ng1e1e0[1515]<=cz4eddc;ng1e1e0[1508]<=fpcbd0;ng1e1e0[1470]<=db1391e;ng1e1e0[1432]<=bl712ba;ng1e1e0[1406]<=ri938a0[0];ng1e1e0[1391]<=fae44e4;ng1e1e0[1286]<=ic7d2d1[0];ng1e1e0[1271]<=mg15425;ng1e1e0[1221]<=bab2cb4;ng1e1e0[1184]<=tuebbe9[0];ng1e1e0[1182]<=ie878aa;ng1e1e0[1135]<=tx_sndpausreq;ng1e1e0[1111]<=gdb4493;ng1e1e0[1051]<=gb4b447[0];ng1e1e0[1023]<=reset_n;ng1e1e0[997]<=fc1ee9d[0];ng1e1e0[990]<=bl5094e;ng1e1e0[982]<=vi76ee4;ng1e1e0[969]<=yx65e87;ng1e1e0[892]<=ls9c8f7;ng1e1e0[889]<=ignore_pkt;ng1e1e0[870]<=nt3dc4a;ng1e1e0[817]<=hq895d6;ng1e1e0[789]<=ngb2d12[0];ng1e1e0[735]<=lf22723;ng1e1e0[703]<=ou92714[0];ng1e1e0[643]<=ykefa5a[0];ng1e1e0[635]<=mre2a84[0];ng1e1e0[525]<=rte9688[0];ng1e1e0[495]<=hdaa129;ng1e1e0[444]<=rx_fifo_full;ng1e1e0[435]<=lq47b89;ng1e1e0[394]<=hq965a2[0];ng1e1e0[351]<=ep124e2;ng1e1e0[321]<=vi5df4b[0];ng1e1e0[317]<=oh3c550;ng1e1e0[222]<=tx_fifoctrl;ng1e1e0[217]<=ks88f71;ng1e1e0[175]<=vka249c;ng1e1e0[108]<=qgd11ee[0];ng1e1e0[54]<=hb5a23d;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f 0} { - for {set i 0} {$i < $argc} {incr i 2} { - set temp [lindex $argv $i] - set temp [string range $temp 1 end] - lappend argv_list $temp - lappend value_list [lindex $argv [expr $i+1]] - } - foreach argument $argv_list value $value_list { - switch $argument { - "cmd" {set Para(cmd) $value;} - } - } - } -} - -set Para(ProjectPath) "/home/greg/projects/trbnet/gbe2_ecp2m/ipcores/tsmac34" -set Para(ModuleName) "tsmac34" -set Para(lib) "/home/greg/trispeed_mac_v3.4/lib" -set Para(CoreName) "Tri-Speed Ethernet MAC" -set Para(arch) "ep5m00" -set Para(family) "latticeecp2m" -set Para(Family) "latticeecp2m" -set Para(design) "VHDL" -set Para(install_dir) "/opt/lattice/diamond/1.1/bin/lin/../.." -set Para(Bin) "/opt/lattice/diamond/1.1/bin/lin" -set Para(SpeedGrade) "Para(spd)" -set Para(FPGAPath) "/opt/lattice/diamond/1.1/bin/lin/../../ispfpga/bin/sol" - -lappend auto_path "/home/greg/trispeed_mac_v3.4/gui" - -lappend auto_path "/home/greg/trispeed_mac_v3.4/script" -package require Core_Generate - -lappend auto_path "/opt/lattice/diamond/1.1/tcltk/lib/ipwidgets/ispipbuilder/../runproc" -package require runcmd - - -set Para(result) [GenerateCore] diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac34/pmi_ram_dpEbnonessdn208256208256.ngo b/gbe2_ecp3/ipcores_ecp3/tsmac34/pmi_ram_dpEbnonessdn208256208256.ngo deleted file mode 100644 index f0262707dcf0e6f5204d798333f9126f2abbe3ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11243 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 diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.ipx b/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.ipx deleted file mode 100644 index cd95b97..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.ipx +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.lpc b/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.lpc deleted file mode 100644 index a68650d..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.lpc +++ /dev/null @@ -1,38 +0,0 @@ -[Device] -Family=ep5c00 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=IPCFG -CoreStatus=Demo -CoreName=Tri-Speed Ethernet MAC -CoreRevision=3.4 -ModuleName=tsmac34 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/21/2011 -Time=11:35:51 - -[Parameters] -MIIM=No -MODE=SGMII easy connect -SYNP_TOOL=1 -PREC_TOOL=0 -MODS_TOOL=1 -ALDC_TOOL=0 -MULT_WB=NO -LOOPBACK=NO -STAT_REGS=NO - -[Files] -Synthesis= -Simulation= -Logical= -Physical= -Misc= diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.ngo b/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.ngo deleted file mode 100644 index 5914aa901d5af1091138fc7b66947336444c4d19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 814689 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

    ahgFx>)#G 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 diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.v b/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.v deleted file mode 100644 index ef4a969..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34.v +++ /dev/null @@ -1,211 +0,0 @@ -//============================================================================= -// Verilog module generated by IPExpress -// Filename: USERNAME.v -// Copyright(c) 2006 Lattice Semiconductor Corporation. All rights reserved. -//============================================================================= - -/* WARNING - Changes to this file should be performed by re-running IPexpress -or modifying the .LPC file and regenerating the core. Other changes may lead -to inconsistent simulation and/or implemenation results */ -module tsmac34 ( - // clock and reset - hclk, - txmac_clk, - rxmac_clk, - reset_n, - txmac_clk_en, - rxmac_clk_en, - - // Input signals to the GMII - rxd, - rx_dv, - rx_er, - col, - crs, - // Input signals to the CPU Interface - haddr, - hdatain, - hcs_n, - hwrite_n, - hread_n, - - // Input signals to the MII Management Interface - - // Input signals to the Tx MAC FIFO Interface - tx_fifodata, - tx_fifoavail, - tx_fifoeof, - tx_fifoempty, - tx_sndpaustim, - tx_sndpausreq, - tx_fifoctrl, - - // Input signals to the Rx MAC FIFO Interface - rx_fifo_full, - ignore_pkt, - - // Output signals from the GMII - txd, - tx_en, - tx_er, - - // Output signals from the CPU Interface - hdataout, - hdataout_en_n, - hready_n, - cpu_if_gbit_en, - - // Output signals from the MII Management Interface - - // Output signals from the Tx MAC FIFO Interface - tx_macread, - tx_discfrm, - tx_staten, - tx_statvec, - tx_done, - - // Output signals from the Rx MAC FIFO Interface - rx_fifo_error, - rx_stat_vector, - rx_dbout, - rx_write, - rx_stat_en, - rx_eof, - rx_error - ); - - // ------------------------- clock and reset inputs --------------------- - input hclk; // clock to the CPU I/F - input txmac_clk; // clock to the Tx MAC - input rxmac_clk; // clock to the RX MAC - input reset_n; // Global reset - input txmac_clk_en; // clock enable to the Tx MAC - input rxmac_clk_en; // clock enable to the RX MAC - - // ----------------------- Input signals to the GMII ------------------- - input [7:0] rxd; // Receive data - input rx_dv; // Receive data valid - input rx_er; // Receive data error - input col; // Collision detect - input crs; // Carrier Sense - // -------------------- Input signals to the CPU I/F ------------------- - input [7:0] haddr; // Address Bus - input [7:0] hdatain; // Input data Bus - input hcs_n; // Chip select - input hwrite_n; // Register write - input hread_n; // Register read - - // -------------------- Input signals to the MII I/F ------------------- - - - // ---------------- Input signals to the Tx MAC FIFO I/F --------------- - input [7:0] tx_fifodata; // Data Input from FIFO - input tx_fifoavail; // Data Available in FIFO - input tx_fifoeof; // End of Frame - input tx_fifoempty; // FIFO Empty - input [15:0] tx_sndpaustim; // Pause frame parameter - input tx_sndpausreq; // Transmit PAUSE frame - input tx_fifoctrl; // Control frame or Not - - // ---------------- Input signals to the Rx MAC FIFO I/F --------------- - input rx_fifo_full; // Receive FIFO Full - input ignore_pkt; // Ignore the frame - - // -------------------- Output signals from the GMII ----------------------- - output [7:0] txd; // Transmit data - output tx_en; // Transmit Enable - output tx_er; // Transmit Error - - // -------------------- Output signals from the CPU I/F ------------------- - output [7:0] hdataout; // Output data Bus - output hdataout_en_n; // Data Out Enable - output hready_n; // Ready signal - output cpu_if_gbit_en; // Gig or 10/100 mode - - // -------------------- Output signals from the MII I/F ------------------- - - - // ---------------- Output signals from the Tx MAC FIFO I/F --------------- - output tx_macread; // Read FIFO - output tx_discfrm; // Discard Frame - output tx_staten; // Status Vector Valid - output tx_done; // Transmit of Frame done - output [30:0] tx_statvec; // Tx Status Vector - - // ---------------- Output signals from the Rx MAC FIFO I/F --------------- - output rx_fifo_error; // FIFO full detected - output [31:0] rx_stat_vector; // Rx Status Vector - output [7:0] rx_dbout; // Data Output to FIFO - output rx_write; // Write FIFO - output rx_stat_en; // Status Vector Valid - output rx_eof; // Entire frame written - output rx_error; // Erroneous frame - - tsmac_core U1_LSC_ts_mac_core ( - - // clock and reset - .hclk(hclk), - .txmac_clk(txmac_clk), - .rxmac_clk(rxmac_clk), - .reset_n(reset_n), - .txmac_clk_en(txmac_clk_en), - .rxmac_clk_en(rxmac_clk_en), - - // Input signals to the GMII - .rxd(rxd), - .rx_dv(rx_dv), - .rx_er(rx_er), - .col(col), - .crs(crs), - // Input signals to the CPU Interface - .haddr(haddr), - .hdatain(hdatain), - .hcs_n(hcs_n), - .hwrite_n(hwrite_n), - .hread_n(hread_n), - - // Input signals to the MII Management Interface - - // Input signals to the Tx MAC FIFO Interface - .tx_fifodata(tx_fifodata), - .tx_fifoavail(tx_fifoavail), - .tx_fifoeof(tx_fifoeof), - .tx_fifoempty(tx_fifoempty), - .tx_sndpaustim(tx_sndpaustim), - .tx_sndpausreq(tx_sndpausreq), - .tx_fifoctrl(tx_fifoctrl), - - // Input signals to the Rx MAC FIFO Interface - .rx_fifo_full(rx_fifo_full), - .ignore_pkt(ignore_pkt), - - // Output signals from the GMII - .txd(txd), - .tx_en(tx_en), - .tx_er(tx_er), - - // Output signals from the CPU Interface - .hdataout(hdataout), - .hdataout_en_n(hdataout_en_n), - .hready_n(hready_n), - .cpu_if_gbit_en(cpu_if_gbit_en), - - // Output signals from the MII Management Interface - - // Output signals from the Tx MAC FIFO Interface - .tx_macread(tx_macread), - .tx_discfrm(tx_discfrm), - .tx_staten(tx_staten), - .tx_statvec(tx_statvec), - .tx_done(tx_done), - - // Output signals from the Rx MAC FIFO Interface - .rx_fifo_error(rx_fifo_error), - .rx_stat_vector(rx_stat_vector), - .rx_dbout(rx_dbout), - .rx_write(rx_write), - .rx_stat_en(rx_stat_en), - .rx_eof(rx_eof), - .rx_error(rx_error) - ); -endmodule diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_bb.v b/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_bb.v deleted file mode 100644 index 815186c..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_bb.v +++ /dev/null @@ -1,145 +0,0 @@ -//============================================================================= -// Verilog module generated by IPExpress -// Filename: USERNAME_bb.v -// Copyright(c) 2006 Lattice Semiconductor Corporation. All rights reserved. -//============================================================================= - -/* WARNING - Changes to this file should be performed by re-running IPexpress -or modifying the .LPC file and regenerating the core. Other changes may lead -to inconsistent simulation and/or implemenation results */ -module tsmac34 ( - // clock and reset - hclk, - txmac_clk, - rxmac_clk, - reset_n, - txmac_clk_en, - rxmac_clk_en, - - // Input signals to the GMII - rxd, - rx_dv, - rx_er, - col, - crs, - - // Input signals to the CPU Interface - haddr, - hdatain, - hcs_n, - hwrite_n, - hread_n, - - // Input signals to the MII Management Interface - - // Input signals to the Tx MAC FIFO Interface - tx_fifodata, - tx_fifoavail, - tx_fifoeof, - tx_fifoempty, - tx_sndpaustim, - tx_sndpausreq, - tx_fifoctrl, - - // Input signals to the Rx MAC FIFO Interface - rx_fifo_full, - ignore_pkt, - - // Output signals from the GMII - txd, - tx_en, - tx_er, - - // Output signals from the CPU Interface - hdataout, - hdataout_en_n, - hready_n, - cpu_if_gbit_en, - - // Output signals from the MII Management Interface - - // Output signals from the Tx MAC FIFO Interface - tx_macread, - tx_discfrm, - tx_staten, - tx_statvec, - tx_done, - - // Output signals from the Rx MAC FIFO Interface - rx_fifo_error, - rx_stat_vector, - rx_dbout, - rx_write, - rx_stat_en, - rx_eof, - rx_error - ); - - // ------------------------- clock and reset inputs --------------------- - input hclk; // clock to the CPU I/F - input txmac_clk; // clock to the Tx MAC - input rxmac_clk; // clock to the RX MAC - input reset_n; // Global reset - input txmac_clk_en; // clock enable to the Tx MAC - input rxmac_clk_en; // clock enable to the RX MAC - - // ----------------------- Input signals to the GMII ------------------- - input [7:0] rxd; // Receive data - input rx_dv; // Receive data valid - input rx_er; // Receive data error - input col; // Collision detect - input crs; // Carrier Sense - // -------------------- Input signals to the CPU I/F ------------------- - input [7:0] haddr; // Address Bus - input [7:0] hdatain; // Input data Bus - input hcs_n; // Chip select - input hwrite_n; // Register write - input hread_n; // Register read - - // -------------------- Input signals to the MII I/F ------------------- - - - // ---------------- Input signals to the Tx MAC FIFO I/F --------------- - input [7:0] tx_fifodata; // Data Input from FIFO - input tx_fifoavail; // Data Available in FIFO - input tx_fifoeof; // End of Frame - input tx_fifoempty; // FIFO Empty - input [15:0] tx_sndpaustim; // Pause frame parameter - input tx_sndpausreq; // Transmit PAUSE frame - input tx_fifoctrl; // Control frame or Not - - // ---------------- Input signals to the Rx MAC FIFO I/F --------------- - input rx_fifo_full; // Receive FIFO Full - input ignore_pkt; // Ignore the frame - - // -------------------- Output signals from the GMII ----------------------- - output [7:0] txd; // Transmit data - output tx_en; // Transmit Enable - output tx_er; // Transmit Error - - // -------------------- Output signals from the CPU I/F ------------------- - output [7:0] hdataout; // Output data Bus - output hdataout_en_n; // Data Out Enable - output hready_n; // Ready signal - output cpu_if_gbit_en; // Gig or 10/100 mode - - // -------------------- Output signals from the MII I/F ------------------- - - - // ---------------- Output signals from the Tx MAC FIFO I/F --------------- - output tx_macread; // Read FIFO - output tx_discfrm; // Discard Frame - output tx_staten; // Status Vector Valid - output tx_done; // Transmit of Frame done - output [30:0] tx_statvec; // Tx Status Vector - - // ---------------- Output signals from the Rx MAC FIFO I/F --------------- - output rx_fifo_error; // FIFO full detected - output [31:0] rx_stat_vector; // Rx Status Vector - output [7:0] rx_dbout; // Data Output to FIFO - output rx_write; // Write FIFO - output rx_stat_en; // Status Vector Valid - output rx_eof; // Entire frame written - output rx_error; // Erroneous frame - -endmodule diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_beh.v b/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_beh.v deleted file mode 100644 index 84453b8..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tsmac34/tsmac34_beh.v +++ /dev/null @@ -1,5840 +0,0 @@ -// ts_mac_core_beh.v generated by Lattice IP Model Creator version 1 -// created on Wed Mar 23 11:57:00 CST 2011 -// Copyright(c) 2007~2011 Lattice Semiconductor Corporation. All rights reserved -// obfuscator_exe version 1.mar0807 - -// top - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -`timescale 1 ns / 100 ps -module hd2df10 ( - rxmac_clk, - reset_n, - rxmac_clk_en, - - - ks10d54, - ls86aa0, - - - ls35502, - lfaa812, - - - kd54097, - rva04bd, - cb25ef, - wl12f7d -); -parameter gq97bed = 8; -input rxmac_clk; -input reset_n; -input rxmac_clk_en; -input ks10d54; -input ls35502; -input lfaa812; -input [gq97bed-1:0] ls86aa0; -output rva04bd; -output cb25ef; -output wl12f7d; -output [gq97bed-1:0] kd54097; -reg rva04bd; -reg cb25ef; -reg wl12f7d; -reg [gq97bed-1:0] kd54097; -reg wl95504; -parameter jraa825 = 2; -parameter uv5412f = 2'b01; -parameter tja097d = 2'b10; -parameter ng4bee = 0; -parameter fc25f73 = 1; -parameter fc2fb9a = 8'hd5; -parameter me7dcd3 = 8'h55; -wire zkee699; -wire ne734ca; -reg ep9a653; -reg uvd329c; -reg ng994e4; -reg [jraa825-1:0] os5391b; -reg [2:0] vk9c8d9; -reg [jraa825-1:0] oh23653; -reg zm1b29c; -reg [gq97bed - 1 : 0] neca715; -reg ic538ab; -reg zm9c559; -reg kde2acb; -reg wy1565d; -reg irab2e9; -reg go5974c; -reg mecba61; -reg xw5d308; -reg [jraa825 - 1 : 0] go4c21e; -reg [2 : 0] dz610f0; -reg [jraa825 - 1 : 0] ic43c3c; -reg [2047:0] ng1e1e0; -wire [12:0] mef0f02; - -localparam uk87811 = 13,gd3c088 = 32'hfdfff40b; -localparam [31:0] yke0444 = gd3c088; -localparam ba1110d = gd3c088 & 4'hf; -localparam [11:0] of44359 = 'h7ff; -wire [(1 << ba1110d) -1:0] epd660; -reg [uk87811-1:0] ui59826; -reg [ba1110d-1:0] uv60984 [0:1]; -reg [ba1110d-1:0] sj26123; -reg fc3091c; -integer tj848e3; -integer aa2471f; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -always @ (posedge rxmac_clk or negedge reset_n) begin if (!reset_n) begin kd54097 <= 0; end else if (rxmac_clk_en) begin if (zm1b29c) begin kd54097 <= neca715; end end -end - - - - -assign zkee699 = neca715[7:0] == fc2fb9a; -assign ne734ca = neca715[7:0] == me7dcd3; - - - - - - -always @(posedge rxmac_clk or negedge reset_n) begin if (!reset_n) begin oh23653 <= uv5412f; vk9c8d9 <= 3'b0; rva04bd <= 1'b0; wl12f7d <= 1'b0; wl95504 <= 1'b0; cb25ef <= 1'b0; end else if (rxmac_clk_en) begin oh23653 <= go4c21e; wl95504 <= go5974c; cb25ef <= kde2acb; rva04bd <= 1'b0; - vk9c8d9 <= xw5d308 ? 3'h1 : (|dz610f0) ? (dz610f0+3'h1) : ic43c3c[ng4bee] ? 3'h0 : dz610f0; - if (mecba61) begin wl12f7d <= 1'b1; end else if (zm9c559) begin wl12f7d <= 1'b0; end else if (ic538ab) begin wl12f7d <= 1'b0; end end -end - - -always @(ic43c3c or ic538ab or irab2e9 or wy1565d or dz610f0) begin case(ic43c3c) uv5412f : begin if (ic538ab && wy1565d) begin os5391b = uv5412f; ep9a653 = 1'b1; uvd329c = 1'b0; ng994e4 = 1'b0; end else if (ic538ab && irab2e9) begin os5391b = tja097d; ep9a653 = 1'b0; uvd329c = 1'b0; ng994e4 = 1'b1; end else if (ic538ab && !wy1565d && !irab2e9) begin os5391b = uv5412f; ep9a653 = 1'b0; uvd329c = 1'b1; ng994e4 = 1'b0; end - else begin os5391b = uv5412f; ep9a653 = 1'b0; uvd329c = 1'b0; ng994e4 = 1'b0; end end - tja097d : begin if (wy1565d) begin os5391b = uv5412f; ep9a653 = 1'b1; uvd329c = 1'b0; ng994e4 = 1'b0; end else if (~|dz610f0 & ~irab2e9) begin os5391b = uv5412f; ep9a653 = 1'b0; uvd329c = 1'b1; ng994e4 = 1'b0; end else begin os5391b = tja097d; ep9a653 = 1'b0; uvd329c = 1'b0; ng994e4 = 1'b0; end - end - default : begin os5391b = uv5412f; ep9a653 = 1'b0; uvd329c = 1'b0; ng994e4 = 1'b0; end endcase -end - -always@* begin zm1b29c<=mef0f02[0];neca715<={ls86aa0>>1,mef0f02[1]};ic538ab<=mef0f02[2];zm9c559<=mef0f02[3];kde2acb<=mef0f02[4];wy1565d<=mef0f02[5];irab2e9<=mef0f02[6];go5974c<=mef0f02[7];mecba61<=mef0f02[8];xw5d308<=mef0f02[9];go4c21e<={os5391b>>1,mef0f02[10]};dz610f0<={vk9c8d9>>1,mef0f02[11]};ic43c3c<={oh23653>>1,mef0f02[12]};end -always@* begin ng1e1e0[2047]<=ls86aa0[0];ng1e1e0[2046]<=ls35502;ng1e1e0[2044]<=lfaa812;ng1e1e0[2040]<=wl95504;ng1e1e0[2032]<=zkee699;ng1e1e0[2016]<=ne734ca;ng1e1e0[1984]<=ep9a653;ng1e1e0[1920]<=uvd329c;ng1e1e0[1793]<=ng994e4;ng1e1e0[1539]<=os5391b[0];ng1e1e0[1030]<=vk9c8d9[0];ng1e1e0[1023]<=ks10d54;ng1e1e0[13]<=oh23653[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};al4b56a<=mef0f02[1];zm9c559<=mef0f02[2];byd5aaf<=mef0f02[3];gb6abd3<={uv70d29>>1,mef0f02[4]};ntaf4ee<={hq8694d>>1,mef0f02[5]};czd3bb5<={ec34a6a>>1,mef0f02[6]};dmeed68<={lfa5351>>1,mef0f02[7]};dbb5a1a<={gd29a8f>>1,mef0f02[8]};go686bb<={rg4d47c>>1,mef0f02[9]};ie1aec9<={mr6a3e2>>1,mef0f02[10]};yzbb24e<={of51f14>>1,mef0f02[11]};gbc93ad<={sj8f8a4>>1,mef0f02[12]};ay49d6c<=mef0f02[13];kd4eb61<=mef0f02[14];ip75b0c<=mef0f02[15];lq6c32a<={wla48aa>>1,mef0f02[16]};ld61953<=mef0f02[17];dbca9e<=mef0f02[18];ip654f7<=mef0f02[19];hq2a7bd<=mef0f02[20];yk53dea<=mef0f02[21];zz9ef51<=mef0f02[22];kdf7a8f<=mef0f02[23];babd47c<=mef0f02[24];yx51f10<={wj5b24d>>1,mef0f02[25]};jc7c424<={enc9365>>1,mef0f02[26]};yxe2122<=mef0f02[27];aa10914<=mef0f02[28];lf848a0<=mef0f02[29];ou24507<=mef0f02[30];fp22839<=mef0f02[31];je141cf<=mef0f02[32];jra0e7b<=mef0f02[33];mt73de<=mef0f02[34];rgcf7ad<={jra5ef8>>1,mef0f02[35]};icdeb5e<={hb7be32>>1,mef0f02[36]};cmf5af1<=mef0f02[37];twad789<=mef0f02[38];cz5e25f<={bn32cad>>1,mef0f02[39]};dmf12fc<=mef0f02[40];xy897e2<=mef0f02[41];ip4bf12<=mef0f02[42];th5f894<=mef0f02[43];pffc4a7<=mef0f02[44];wl129f4<={co928b1>>1,mef0f02[45]};doa7d2e<={baa2c4f>>1,mef0f02[46]};sw3e973<=mef0f02[47];rgf4b98<=mef0f02[48];lfa5cc3<=mef0f02[49];aa2e61e<=mef0f02[50];vi730f0<=mef0f02[51];ou98783<=mef0f02[52];alc3c19<=mef0f02[53];ba1e0cc<=mef0f02[54];uif0662<=mef0f02[55];do83310<=mef0f02[56];fp19883<=mef0f02[57];end -always@* begin ng1e1e0[2047]<=cb25ef;ng1e1e0[2046]<=lfaa812;ng1e1e0[2044]<=ykce1a5;ng1e1e0[2040]<=uv70d29[0];ng1e1e0[2032]<=hq8694d[0];ng1e1e0[2017]<=ec34a6a[0];ng1e1e0[1987]<=lfa5351[0];ng1e1e0[1980]<=je89ef4;ng1e1e0[1963]<=xyb52f;ng1e1e0[1942]<=ksa3f8a;ng1e1e0[1926]<=gd29a8f[0];ng1e1e0[1921]<=ks152d9;ng1e1e0[1913]<=fn4f7a3;ng1e1e0[1903]<=an95b92;ng1e1e0[1879]<=nr5a97b;ng1e1e0[1837]<=wy1fc51;ng1e1e0[1805]<=rg4d47c[0];ng1e1e0[1795]<=oua96c9;ng1e1e0[1783]<=baa2c4f[0];ng1e1e0[1778]<=zx7bd1f;ng1e1e0[1758]<=jeadc94;ng1e1e0[1710]<=jra5ef8[0];ng1e1e0[1679]<=wla48aa[0];ng1e1e0[1627]<=lqfe289;ng1e1e0[1562]<=mr6a3e2[0];ng1e1e0[1543]<=wj5b24d[0];ng1e1e0[1519]<=fp1627b;ng1e1e0[1509]<=uide8fe;ng1e1e0[1499]<=hq9656e;ng1e1e0[1469]<=rt6e4a2;ng1e1e0[1398]<=shf8cb2;ng1e1e0[1373]<=hb7be32[0];ng1e1e0[1310]<=fac526c;ng1e1e0[1207]<=rgf144b;ng1e1e0[1144]<=ww49b15;ng1e1e0[1076]<=of51f14[0];ng1e1e0[1039]<=enc9365[0];ng1e1e0[1023]<=bn1ce70[0];ng1e1e0[990]<=yzb13de;ng1e1e0[981]<=xj616a5;ng1e1e0[971]<=vif47f1;ng1e1e0[960]<=cm62a5b;ng1e1e0[951]<=ngb2b72;ng1e1e0[891]<=co928b1[0];ng1e1e0[839]<=vk14915;ng1e1e0[749]<=bn32cad[0];ng1e1e0[699]<=hodf196;ng1e1e0[572]<=qv29362;ng1e1e0[490]<=gd2c2d4;ng1e1e0[480]<=ho6c54b;ng1e1e0[419]<=ale2922;ng1e1e0[245]<=sh6585a;ng1e1e0[240]<=dm4d8a9;ng1e1e0[209]<=tu7c524;ng1e1e0[122]<=tu6cb0b;ng1e1e0[104]<=sj8f8a4[0];ng1e1e0[61]<=lq4d961;ng1e1e0[30]<=kq49b2c;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f= 7'h42); - - -assign sw21a46 = zx4f6f2 & ~ofed2bb; -assign zz84348 = bna0270 & ~mg875ed & ~bn9c3a & ~sh4e1d7; - - -assign al70eaa = bldd794 & aa3404e[18]; - - - - - - -assign fpaaa53 = (bna0270 | rx_write) & wwde5f9 & ~mg875ed & ~bn9c3a; - -always@* begin zx4f6f2<=mef0f02[0];dz7b797<=mef0f02[1];eadbcbf<={epae410>>1,mef0f02[2]};wwde5f9<=mef0f02[3];ks97e44<={ep90421>>1,mef0f02[4]};pff910f<={of4bc4f>>1,mef0f02[5]};wj443f7<={vif13e4>>1,mef0f02[6]};ukfde0<={hd9bdf7>>1,mef0f02[7]};off7806<={wjf7df9>>1,mef0f02[8]};gqbc034<=mef0f02[9];yke01a0<=mef0f02[10];ecd01<=mef0f02[11];aa3404e<={tw3fb87>>1,mef0f02[12]};bna0270<=mef0f02[13];do1387<=mef0f02[14];bn9c3a<=mef0f02[15];sh4e1d7<=mef0f02[16];yx70ebd<=mef0f02[17];mg875ed<=mef0f02[18];xy3af69<=mef0f02[19];ribda57<={coa94ff>>1,mef0f02[20]};ofed2bb<=mef0f02[21];fn4aeeb<={wl9fe79>>1,mef0f02[22]};gdbbaf2<={ldf9e69>>1,mef0f02[23]};bldd794<=mef0f02[24];zkebca7<=mef0f02[25];sh5e53b<=mef0f02[26];czf29dc<=mef0f02[27];end -always@* begin ng1e1e0[2047]<=wy15c82;ng1e1e0[2046]<=epae410[0];ng1e1e0[2044]<=rx_fifo_full;ng1e1e0[2040]<=ep90421[0];ng1e1e0[2032]<=of4bc4f[0];ng1e1e0[2017]<=vif13e4[0];ng1e1e0[1987]<=hd9bdf7[0];ng1e1e0[1926]<=wjf7df9[0];ng1e1e0[1921]<=ldf9e69[0];ng1e1e0[1805]<=ipf7e64;ng1e1e0[1795]<=rgcf34f;ng1e1e0[1679]<=co87555;ng1e1e0[1562]<=ntbf324;ng1e1e0[1543]<=ps79a7b;ng1e1e0[1310]<=vk3aaa9;ng1e1e0[1144]<=fpaaa53;ng1e1e0[1076]<=jpf9927;ng1e1e0[1039]<=zxcd3db;ng1e1e0[1023]<=tu42b90;ng1e1e0[960]<=wl9fe79[0];ng1e1e0[839]<=al70eaa;ng1e1e0[572]<=psd554a;ng1e1e0[480]<=rt4a7f9;ng1e1e0[419]<=hoee1d5;ng1e1e0[240]<=coa94ff[0];ng1e1e0[209]<=alfdc3a;ng1e1e0[104]<=tw3fb87[0];ng1e1e0[30]<=xw69ede;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};zm9c559<=mef0f02[1];fp81339<=mef0f02[2];byd5aaf<=mef0f02[3];os4ce77<=mef0f02[4];qv39dc8<={ba25a85>>1,mef0f02[5]};eacee45<=mef0f02[6];kq77228<=mef0f02[7];ldc8a08<={gq3eb5e>>1,mef0f02[8]};vv45047<=mef0f02[9];ph2823e<=mef0f02[10];qt411f7<=mef0f02[11];an8fbc<=mef0f02[12];jc47de5<=mef0f02[13];uk3ef2a<=mef0f02[14];ipf7950<=mef0f02[15];ksbca84<=mef0f02[16];ice5421<=mef0f02[17];bl5084a<={do1ba48>>1,mef0f02[18]};tj84256<=mef0f02[19];wy212b6<=mef0f02[20];rv95b1<=mef0f02[21];nr4ad8e<=mef0f02[22];swb63b1<={qi1fe10>>1,mef0f02[23]};fp19883<=mef0f02[24];end -always@* begin ng1e1e0[2047]<=lfaa812;ng1e1e0[2046]<=jc4d12d;ng1e1e0[2044]<=ykce1a5;ng1e1e0[2040]<=gb44b50;ng1e1e0[2032]<=ba25a85[0];ng1e1e0[2017]<=ukf3ec;ng1e1e0[1987]<=zz22aa1;ng1e1e0[1926]<=gq3eb5e[0];ng1e1e0[1804]<=mg8d20b;ng1e1e0[1803]<=qi1fe10[0];ng1e1e0[1560]<=xw69058;ng1e1e0[1558]<=rgf144b;ng1e1e0[1550]<=co1a8dd;ng1e1e0[1072]<=by482c3;ng1e1e0[1052]<=god46e9;ng1e1e0[1023]<=bn1ce70[0];ng1e1e0[901]<=dm487f8;ng1e1e0[775]<=qtc351b;ng1e1e0[450]<=qg490ff;ng1e1e0[387]<=dm586a3;ng1e1e0[225]<=zxe921f;ng1e1e0[193]<=jeb0d4;ng1e1e0[112]<=rtdd243;ng1e1e0[96]<=of4161a;ng1e1e0[56]<=do1ba48[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};wl9fec7<=mef0f02[1];kqff63d<=mef0f02[2];jcfb1e9<=mef0f02[3];dzd8f4b<=mef0f02[4];nrc7a5e<={vif4c35>>1,mef0f02[5]};db3d2f6<={zm3f362>>1,mef0f02[6]};dze97b6<={ps6c4ff>>1,mef0f02[7]};yx4bdb7<={os627fb>>1,mef0f02[8]};end -always@* begin ng1e1e0[2047]<=hbe62f4;ng1e1e0[2046]<=uk317a6;ng1e1e0[2044]<=fp8bd30;ng1e1e0[2041]<=uv5e986;ng1e1e0[2034]<=vif4c35[0];ng1e1e0[2021]<=zm3f362[0];ng1e1e0[1995]<=ps6c4ff[0];ng1e1e0[1943]<=os627fb[0];ng1e1e0[1023]<=mrdcc5e[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f= 14'd64); - - - - -assign wy15c82 = ((~gq88319) ? (lfaa812 & ~gq3e3e7) : 1'b0) | (zzb0517 & ~qi828be) | (dob2655 & ~ba932ab) | (vvc8b97 & ux7990 & lfaa812) | (pu3a20c & lfaa812); - -assign cz65043 = al4b56a | (zxcd67f & an8a74); - - -assign nt2821d = gb44b50; -assign al410ef = gb44b50 & ea437a9; - - -assign ui43be4 = (~xl84bbc) ? hofec14 -14'd4 : fc83768; - -assign kf17a95 = 32'hffffffff; - -assign jc52b50 = ls35502; -assign fp8bd30 = ~vi7ce5c & kfa4f8f; - -assign ks24554 = al4b56a | yk5c720; - - - -assign ri4632 = cz418c8 & ir90977 & wwcb8e4 & gq3e3e7 & ~(hd9b63f | xj45cbf); - -always @ (posedge rxmac_clk or negedge reset_n) begin if (!reset_n) begin gdab323 <= 1'b0; zkd5664 <= 1'b0; mrcc8e0 <= 14'b0; ldd22e2 <= 14'b0; bn8b8b7 <= 14'b0; me5c5be <= 1'b0; ux8420 <= 1'b0; uvc64a4 <= 1'b0; ps79d12 <= 1'b0; wwce893 <= 1'b0; bl74498 <= 1'b0; hqa24c6 <= 1'b0; ir23192 <= 1'b0; fa58e7c <= 1'b0; je2f3a2 <= 1'b0; psf1bd5 <= 14'd0; ux2382f <= 14'd0; bldd558 <= 9'd0; ykeaac7 <= 1'b0; wl12632 <= 1'b0; lqfe289 <= 1'b0; end else if (rxmac_clk_en) begin ykeaac7 <= mt29d2e & ~czf29dc; if (mt29d2e && !czf29dc) bldd558 <= ayf0d93; ir23192 <= fp8bd30; fa58e7c <= wl3971c; if (czf8071) je2f3a2 <= czf8071; else if (ls35502 && !czf8071) je2f3a2 <= 1'b0; else if (zzb0517) je2f3a2 <= 1'b0; else je2f3a2 <= qifcdb; hqa24c6 <= ~vk1f9b; if (rvba149 & zm1b29c) bl74498 <= rvba149; else if (mt29d2e) bl74498 <= 1'b0; else bl74498 <= hd9b63f; if (zke407e) wwce893 <= zke407e; else if (mt29d2e) wwce893 <= 1'b0; else wwce893 <= xjf36c7; lqfe289 <= al4b56a; if (do83310) ps79d12 <= kf8527a; if (yzab1cf) wl12632 <= ayd4a7c; uvc64a4 <= al4b56a | (yk5c720 & zm1b29c); mrcc8e0 <= tj137d0; zkd5664 <= dze3901; gdab323 <= vidf437; if (zxcd67f && !hqe313) ux8420 <= ls1bd49; me5c5be <= hqe313; if (zxcd67f && !hqe313) ldd22e2 <= pff9acf; if (hqe313) begin bn8b8b7 <= pff9acf + 14'd1; end else bn8b8b7 <= 14'd0; if (tw8c4df && xl84bbc && su49641) ux2382f <= fc83768 + 14'd1; if (pf7189b && !xl84bbc && an8a74) psf1bd5 <= hofec14 + 14'd1; else if (jpf60a2) psf1bd5 <= 14'd0; end -end - - - -assign yzab1cf = jpf60a2; - - -assign lf32525 = gd3cc84 ? (ks97e6b > (ho6322e + 14'd4)) : ks97e6b > ho6322e; -assign mg9292f = (ks97e6b < 14'd64); -assign hd94979 = wwff00e; - -assign gd1df20 = (ks97e6b[6:0] != 7'd64); -assign icef904 = (hd3212e != qvbe0dd); -assign oha4bce = vx1c80f ? 1'b0 : ux7990 | xl84bbc ? hd9be86 : hq25de7 ? 1'b0 : fca2f83; - -assign zm25e74 = ~(hd9b63f | xj45cbf | ng203f3); -assign vx33b0[31] = zm145f0; -assign vx33b0[30] = vx1c80f; -assign vx33b0[29] = fn7e6d8; -assign vx33b0[28] = nrd8ff0; -assign vx33b0[27] = xjf36c7; -assign vx33b0[26] = qifcdb; -assign vx33b0[25] = xj45cbf; -assign vx33b0[24] = ng203f3; -assign vx33b0[23] = vk1f9b; -assign vx33b0[22] = th4f83c; -assign vx33b0[21] = by7c1e6; -assign vx33b0[20] = ned0a4f; -assign vx33b0[19] = uk2ef3a; -assign vx33b0[18] = ux7990; -assign vx33b0[17] = ir90977; -assign vx33b0[16] = gd3cc84; -assign vx33b0[15:14] = 2'b00; -assign vx33b0[13:0] = ks97e6b; - -assign jr32885[0] = ir90977; -assign jr32885[1] = xj45cbf; -assign jr32885[2] = hd9b63f; -assign jr32885[3] = zm145f0; -assign jr32885[4] = vx1c80f; -assign jr32885[5] = fn7e6d8; -assign jr32885[6] = th4f83c; -assign jr32885[7] = by7c1e6; -assign jr32885[8] = gd3cc84; - -always@* begin zm1b29c<=mef0f02[0];ic77429<=mef0f02[1];rvba149<=mef0f02[2];ned0a4f<=mef0f02[3];kf8527a<=mef0f02[4];je896ad<={bn1ce70>>1,mef0f02[5]};al4b56a<=mef0f02[6];qt7a94f<=mef0f02[7];ayd4a7c<=mef0f02[8];lfa53e0<=mef0f02[9];gd29f07<=mef0f02[10];th4f83c<=mef0f02[11];by7c1e6<=mef0f02[12];kqe0f32<=mef0f02[13];ux7990<=mef0f02[14];gd3cc84<=mef0f02[15];hd3212e<={dm579a3>>1,mef0f02[16]};ir90977<=mef0f02[17];xl84bbc<=mef0f02[18];hq25de7<=mef0f02[19];uk2ef3a<=mef0f02[20];cm779d1<=mef0f02[21];qte7441<={lde68d9>>1,mef0f02[22]};pu3a20c<=mef0f02[23];wwd1063<=mef0f02[24];gq88319<=mef0f02[25];cz418c8<=mef0f02[26];ho6322e<={ldcd808>>1,mef0f02[27]};xl19172<=mef0f02[28];vvc8b97<=mef0f02[29];xj45cbf<=mef0f02[30];qg72ff8<={je2fc44>>1,mef0f02[31]};wy97fc0<=mef0f02[32];jrbfe01<=mef0f02[33];wwff00e<=mef0f02[34];czf8071<=mef0f02[35];tuc038c<=mef0f02[36];xy1c62<=mef0f02[37];hqe313<=mef0f02[38];pf7189b<=mef0f02[39];tw8c4df<=mef0f02[40];tj137d0<={ui43be4>>1,mef0f02[41]};hd9be86<=mef0f02[42];vidf437<=mef0f02[43];rgd0dd1<={rge410b>>1,mef0f02[44]};pu86e8a<=mef0f02[45];tj37452<=mef0f02[46];bnba297<={sw216d2>>1,mef0f02[47]};osd14bf<=mef0f02[48];wl8a5f9<=mef0f02[49];ks97e6b<={ldd22e2>>1,mef0f02[50]};pff9acf<={bn8b8b7>>1,mef0f02[51]};zxcd67f<=mef0f02[52];zx6b3fe<=mef0f02[53];me59ff6<=mef0f02[54];facffb0<=mef0f02[55];hofec14<={psf1bd5>>1,mef0f02[56]};jpf60a2<=mef0f02[57];zzb0517<=mef0f02[58];qi828be<=mef0f02[59];zm145f0<=mef0f02[60];fca2f83<=mef0f02[61];qvbe0dd<={mrcc8e0>>1,mef0f02[62]};fc83768<={ux2382f>>1,mef0f02[63]};tw1bb43<=mef0f02[64];pfdda1b<=mef0f02[65];ened0de<=mef0f02[66];ea686f5<=mef0f02[67];ea437a9<=mef0f02[68];ls1bd49<=mef0f02[69];aydea4b<=mef0f02[70];wya92c8<={ngb200>>1,mef0f02[71]};su49641<=mef0f02[72];uv4b208<=mef0f02[73];me59045<=mef0f02[74];qt4114e<={vx33b0>>1,mef0f02[75]};an8a74<=mef0f02[76];ld453a5<=mef0f02[77];mt29d2e<=mef0f02[78];czf29dc<=mef0f02[79];pf74ba4<=mef0f02[80];vxa5d27<=mef0f02[81];rt749f1<={ym1f042>>1,mef0f02[82]};kfa4f8f<=mef0f02[83];vx27c7c<=mef0f02[84];gq3e3e7<=mef0f02[85];dmf1f39<=mef0f02[86];cb8f9cb<={ym10823>>1,mef0f02[87]};vi7ce5c<=mef0f02[88];do83310<=mef0f02[89];wl3971c<=mef0f02[90];wwcb8e4<=mef0f02[91];yk5c720<=mef0f02[92];dze3901<=mef0f02[93];vx1c80f<=mef0f02[94];zke407e<=mef0f02[95];ng203f3<=mef0f02[96];vk1f9b<=mef0f02[97];qifcdb<=mef0f02[98];fn7e6d8<=mef0f02[99];xjf36c7<=mef0f02[100];hd9b63f<=mef0f02[101];qgdb1fe<=mef0f02[102];nrd8ff0<=mef0f02[103];pfc7f86<=mef0f02[104];ri3fc36<=mef0f02[105];ayf0d93<={jr32885>>1,mef0f02[106]};do86c99<={vx9442e>>1,mef0f02[107]};an364ca<=mef0f02[108];dob2655<=mef0f02[109];ba932ab<=mef0f02[110];end -always@* begin ng1e1e0[2047]<=fa6c2d4;ng1e1e0[2046]<=pf616a3;ng1e1e0[2044]<=lsb51f;ng1e1e0[2040]<=vv5a8fb;ng1e1e0[2032]<=bn1ce70[0];ng1e1e0[2028]<=uvc64a4;ng1e1e0[2017]<=cb25ef;ng1e1e0[2008]<=lf32525;ng1e1e0[1988]<=vx33b0[0];ng1e1e0[1987]<=wl12f7d;ng1e1e0[1969]<=mg9292f;ng1e1e0[1928]<=iccec3e;ng1e1e0[1926]<=rva04bd;ng1e1e0[1891]<=hd94979;ng1e1e0[1809]<=rg761f0;ng1e1e0[1805]<=kf23e8c;ng1e1e0[1804]<=mg1550f;ng1e1e0[1803]<=yz172cd;ng1e1e0[1761]<=tuf111f;ng1e1e0[1748]<=gdab323;ng1e1e0[1734]<=oha4bce;ng1e1e0[1727]<=ym10823[0];ng1e1e0[1696]<=bn1c17d;ng1e1e0[1668]<=gd1df20;ng1e1e0[1633]<=do93194;ng1e1e0[1587]<=ps79d12;ng1e1e0[1571]<=lfb0f83;ng1e1e0[1562]<=gofa328;ng1e1e0[1560]<=hdaa879;ng1e1e0[1558]<=ignore_pkt;ng1e1e0[1555]<=zma2177;ng1e1e0[1550]<=dm579a3[0];ng1e1e0[1531]<=ri4632;ng1e1e0[1475]<=uk888fa;ng1e1e0[1464]<=bl7b98b;ng1e1e0[1448]<=mrcc8e0[0];ng1e1e0[1420]<=zm25e74;ng1e1e0[1406]<=vx84118;ng1e1e0[1345]<=yke0bef;ng1e1e0[1288]<=icef904;ng1e1e0[1287]<=fc2fbc1;ng1e1e0[1242]<=yx6f559;ng1e1e0[1218]<=gq98ca2;ng1e1e0[1131]<=yxf8210;ng1e1e0[1126]<=wwce893;ng1e1e0[1094]<=xw69ede;ng1e1e0[1076]<=zm8ca08;ng1e1e0[1072]<=en543cf;ng1e1e0[1069]<=qgcb360;ng1e1e0[1063]<=ie10bba;ng1e1e0[1056]<=ba2085b;ng1e1e0[1055]<=ykef059;ng1e1e0[1052]<=ec346cf;ng1e1e0[1028]<=ldd22e2[0];ng1e1e0[1023]<=ks10d54;ng1e1e0[1014]<=ir23192;ng1e1e0[994]<=vv400ce;ng1e1e0[902]<=of447d1;ng1e1e0[901]<=lde68d9[0];ng1e1e0[880]<=je2fc44[0];ng1e1e0[874]<=zkd5664;ng1e1e0[863]<=jc42104;ng1e1e0[848]<=ux2382f[0];ng1e1e0[834]<=ui43be4[0];ng1e1e0[816]<=wl12632;ng1e1e0[793]<=je2f3a2;ng1e1e0[777]<=vx9442e[0];ng1e1e0[775]<=hq2af34;ng1e1e0[765]<=lqfe289;ng1e1e0[732]<=wj6023b;ng1e1e0[643]<=aa5f78;ng1e1e0[621]<=sw8deab;ng1e1e0[565]<=ym1f042[0];ng1e1e0[528]<=rge410b[0];ng1e1e0[527]<=me7de0b;ng1e1e0[514]<=en5b48b;ng1e1e0[497]<=fnc8019;ng1e1e0[450]<=ksbcd1b;ng1e1e0[437]<=gb7aacc;ng1e1e0[431]<=ux8420;ng1e1e0[417]<=al410ef;ng1e1e0[408]<=hqa24c6;ng1e1e0[388]<=jr32885[0];ng1e1e0[387]<=ep855e6;ng1e1e0[366]<=tu6c047;ng1e1e0[310]<=psf1bd5[0];ng1e1e0[282]<=uif07c1;ng1e1e0[257]<=jeb691;ng1e1e0[248]<=ic59003;ng1e1e0[225]<=rgc0518;ng1e1e0[215]<=mec1084;ng1e1e0[208]<=nt2821d;ng1e1e0[204]<=bl74498;ng1e1e0[193]<=jp50abc;ng1e1e0[183]<=ldcd808[0];ng1e1e0[155]<=fcb7c6f;ng1e1e0[141]<=sw3e0f8;ng1e1e0[128]<=sw216d2[0];ng1e1e0[124]<=ngb200[0];ng1e1e0[112]<=xy1b3c0;ng1e1e0[104]<=cz65043;ng1e1e0[96]<=uxa1e7d;ng1e1e0[91]<=go59b01;ng1e1e0[78]<=wl85dd0;ng1e1e0[77]<=zz16f8d;ng1e1e0[64]<=zm42da;ng1e1e0[62]<=ea782c8;ng1e1e0[56]<=eca3678;ng1e1e0[38]<=kde2df1;ng1e1e0[19]<=me5c5be;ng1e1e0[9]<=bn8b8b7[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[3]};rvba149<=mef0f02[4];ned0a4f<=mef0f02[5];kf8527a<=mef0f02[6];gb6abd3<={uv70d29>>1,mef0f02[7]};ntaf4ee<={hq8694d>>1,mef0f02[8]};czd3bb5<={ec34a6a>>1,mef0f02[9]};dmeed68<={lfa5351>>1,mef0f02[10]};dbb5a1a<={gd29a8f>>1,mef0f02[11]};go686bb<={rg4d47c>>1,mef0f02[12]};ie1aec9<={mr6a3e2>>1,mef0f02[13]};yzbb24e<={of51f14>>1,mef0f02[14]};gbc93ad<={sj8f8a4>>1,mef0f02[15]};ay49d6c<=mef0f02[16];kd4eb61<=mef0f02[17];ip75b0c<=mef0f02[18];qv39dc8<={ba25a85>>1,mef0f02[19]};gq88319<=mef0f02[20];cz418c8<=mef0f02[21];ho6322e<={ldcd808>>1,mef0f02[22]};xl19172<=mef0f02[23];vvc8b97<=mef0f02[24];wwde5f9<=mef0f02[25];wwd1063<=mef0f02[26];ym3e93a<={xw791a7>>1,mef0f02[27]};epa4e83<={me469d7>>1,mef0f02[28]};zz2741c<=mef0f02[29];je3a0e6<=mef0f02[30];byd0733<=mef0f02[31];vk8399b<=mef0f02[32];ph1ccda<=mef0f02[33];gd336b6<={qia590>>1,mef0f02[34]};bn9b5b5<=mef0f02[35];vidadae<=mef0f02[36];end6d73<=mef0f02[37];swb6b9d<=mef0f02[38];phb5ce8<=mef0f02[39];zk73a3c<={nr5a773>>1,mef0f02[40]};qte8f11<={uk9dcf5>>1,mef0f02[41]};yz3c462<={by73d42>>1,mef0f02[42]};ofe2314<=mef0f02[43];zm118a4<=mef0f02[44];ba8c522<=mef0f02[45];me62912<=mef0f02[46];ng14891<=mef0f02[47];kfa448a<=mef0f02[48];zz22455<=mef0f02[49];kf122ae<=mef0f02[50];nt91574<=mef0f02[51];oh8aba7<=mef0f02[52];pf55d3c<=mef0f02[53];anae9e6<=mef0f02[54];bl74f35<=mef0f02[55];lsa79af<=mef0f02[56];fne6bdd<={czfd46f>>1,mef0f02[57]};je35eef<=mef0f02[58];zzaf77b<=mef0f02[59];vvddef6<={mr6f821>>1,mef0f02[60]};ykef7b6<=mef0f02[61];hb7bdb0<=mef0f02[62];pff6c31<={sw82127>>1,mef0f02[63]};ntb0c71<={zz849c8>>1,mef0f02[64]};co31c7b<={nt27238>>1,mef0f02[65]};xj71ecf<={thc8e34>>1,mef0f02[66]};gd8f67f<=mef0f02[67];hb7b3fd<=mef0f02[68];facff7c<={ec34efc>>1,mef0f02[69]};end -always@* begin ng1e1e0[2047]<=ks10d54;ng1e1e0[2046]<=fa6c2d4;ng1e1e0[2044]<=ls86aa0[0];ng1e1e0[2041]<=pf616a3;ng1e1e0[2035]<=lsb51f;ng1e1e0[2029]<=czfd46f[0];ng1e1e0[2022]<=vv5a8fb;ng1e1e0[2011]<=suea37c;ng1e1e0[1996]<=uv70d29[0];ng1e1e0[1974]<=kd51be0;ng1e1e0[1945]<=hq8694d[0];ng1e1e0[1943]<=rib86e8;ng1e1e0[1922]<=rx_fifo_full;ng1e1e0[1901]<=mr6f821[0];ng1e1e0[1842]<=ec34a6a[0];ng1e1e0[1839]<=kdc3742;ng1e1e0[1797]<=ignore_pkt;ng1e1e0[1791]<=fa471a7;ng1e1e0[1778]<=ho425c3;ng1e1e0[1776]<=ldcd808[0];ng1e1e0[1759]<=zz849c8[0];ng1e1e0[1755]<=rg7c10d;ng1e1e0[1637]<=lfa5351[0];ng1e1e0[1631]<=hq1ba15;ng1e1e0[1622]<=of51f14[0];ng1e1e0[1546]<=xw791a7[0];ng1e1e0[1535]<=vx38d3b;ng1e1e0[1531]<=ym157ea;ng1e1e0[1509]<=kf12e1b;ng1e1e0[1504]<=tu6c047;ng1e1e0[1471]<=nt27238[0];ng1e1e0[1468]<=qgcb360;ng1e1e0[1463]<=ice086a;ng1e1e0[1391]<=vk14915;ng1e1e0[1312]<=qia590[0];ng1e1e0[1226]<=gd29a8f[0];ng1e1e0[1215]<=xjdd0ab;ng1e1e0[1197]<=sj8f8a4[0];ng1e1e0[1153]<=ri9640b;ng1e1e0[1044]<=me469d7[0];ng1e1e0[1037]<=tj8169d;ng1e1e0[1023]<=reset_n;ng1e1e0[1022]<=ec34efc[0];ng1e1e0[1014]<=yzabf51;ng1e1e0[971]<=ou970dd;ng1e1e0[961]<=wj6023b;ng1e1e0[895]<=thc8e34[0];ng1e1e0[889]<=baa84b8;ng1e1e0[888]<=go59b01;ng1e1e0[879]<=sw82127[0];ng1e1e0[811]<=mr6a3e2[0];ng1e1e0[765]<=dm42afd;ng1e1e0[734]<=ba25a85[0];ng1e1e0[695]<=ale2922;ng1e1e0[656]<=ngb8296;ng1e1e0[576]<=ho52c81;ng1e1e0[518]<=ux902d3;ng1e1e0[444]<=kqf5097;ng1e1e0[405]<=rg4d47c[0];ng1e1e0[382]<=uve855f;ng1e1e0[347]<=tu7c524;ng1e1e0[328]<=hbd7052;ng1e1e0[259]<=pub205a;ng1e1e0[222]<=jr9ea12;ng1e1e0[164]<=xy3ae0a;ng1e1e0[111]<=by73d42[0];ng1e1e0[82]<=ria75c1;ng1e1e0[55]<=uk9dcf5[0];ng1e1e0[41]<=sw34eb8;ng1e1e0[27]<=nr5a773[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[1]};kd4e479<=mef0f02[2];kq723cd<=mef0f02[3];hd91e69<={gqb35c6>>1,mef0f02[4]};oh8f34e<={an9ae31>>1,mef0f02[5]};rg79a75<=mef0f02[6];pfcd3ab<={tu73a4e>>1,mef0f02[7]};end -always@* begin ng1e1e0[2047]<=ep29d6d[0];ng1e1e0[2046]<=aa82cd7;ng1e1e0[2044]<=db166b8;ng1e1e0[2040]<=gqb35c6[0];ng1e1e0[2033]<=an9ae31[0];ng1e1e0[2019]<=thd718d;ng1e1e0[1991]<=tu73a4e[0];ng1e1e0[1023]<=of653ad;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};wl9fec7<=mef0f02[1];dzd8f4b<=mef0f02[2];nrc7a5e<={vif4c35>>1,mef0f02[3]};db3d2f6<={zm3f362>>1,mef0f02[4]};dze97b6<={ps6c4ff>>1,mef0f02[5]};end -always@* begin ng1e1e0[2047]<=hbe62f4;ng1e1e0[2046]<=uv5e986;ng1e1e0[2044]<=vif4c35[0];ng1e1e0[2040]<=zm3f362[0];ng1e1e0[2032]<=ps6c4ff[0];ng1e1e0[1023]<=mrdcc5e[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[1]};ip6f847<=mef0f02[2];lq7c23d<=mef0f02[3];wl8f53<={cm531bb>>1,mef0f02[4]};bn3d4ea<={yxc6ec0>>1,mef0f02[5]};kqea756<=mef0f02[6];ww53ab0<=mef0f02[7];gq9d581<=mef0f02[8];qg56049<={bl7b7f8>>1,mef0f02[9]};vx81246<={icff1cb>>1,mef0f02[10]};ph9236<=mef0f02[11];end -always@* begin ng1e1e0[2047]<=ay625cf[0];ng1e1e0[2046]<=sj12e78;ng1e1e0[2044]<=aa973c5;ng1e1e0[2040]<=cm531bb[0];ng1e1e0[2033]<=yxc6ec0[0];ng1e1e0[2018]<=nt37604;ng1e1e0[1988]<=pfd813d;ng1e1e0[1929]<=hoc09ef;ng1e1e0[1811]<=bl7b7f8[0];ng1e1e0[1574]<=icff1cb[0];ng1e1e0[1101]<=uvf8e59;ng1e1e0[1023]<=xjec4b9;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[6]};ng1497b<={fa69d8e>>1,mef0f02[7]};tw25ed4<={kd4ec72>>1,mef0f02[8]};ng2f6a2<=mef0f02[9];xj7b512<=mef0f02[10];jcda897<=mef0f02[11];kqd44bb<=mef0f02[12];ir12eca<={jr94778>>1,mef0f02[13]};ym97655<=mef0f02[14];uxbb2a8<=mef0f02[15];jccaa2d<={ayef1cc>>1,mef0f02[16]};bl5516a<=mef0f02[17];vka8b57<=mef0f02[18];bn2d5d7<={gd3980f>>1,mef0f02[19]};ip6aebf<=mef0f02[20];lq575fd<=mef0f02[21];vxbafea<=mef0f02[22];rtd7f56<=mef0f02[23];vxbfab7<=mef0f02[24];qtfd5be<=mef0f02[25];ayeadf4<=mef0f02[26];ww53ab0<={pfd813d>>1,mef0f02[27]};gq9d581<={hoc09ef>>1,mef0f02[28]};cbbe84a<=mef0f02[29];tuf4254<=mef0f02[30];rv9515<={kdd9d10>>1,mef0f02[31]};gb54576<={pf74420>>1,mef0f02[32]};ou15dab<={gq10832>>1,mef0f02[33]};sjaed58<=mef0f02[34];ne76ac5<=mef0f02[35];bnb562a<=mef0f02[36];irab156<=mef0f02[37];ho58ab4<=mef0f02[38];rgc55a2<=mef0f02[39];hq2ad12<={hbe3c76>>1,mef0f02[40]};cm56893<={zm1e3b7>>1,mef0f02[41]};epb4499<=mef0f02[42];fca24cc<=mef0f02[43];gd12662<=mef0f02[44];fc93314<=mef0f02[45];xy998a2<=mef0f02[46];qtcc512<=mef0f02[47];ls144a1<={go782f6>>1,mef0f02[48]};xya250b<=mef0f02[49];ux1285a<=mef0f02[50];tj942d5<=mef0f02[51];kfa16af<={gq15fa4>>1,mef0f02[52]};xyb57d<=mef0f02[53];nr5abeb<=mef0f02[54];rgd5f5f<={rgf483e>>1,mef0f02[55]};rvafafa<=mef0f02[56];ea7d7d7<=mef0f02[57];jcebeb8<=mef0f02[58];vv5f5c3<=mef0f02[59];ykfae1e<=mef0f02[60];pfd70f0<=mef0f02[61];zmb8786<=mef0f02[62];wjc3c32<=mef0f02[63];vk1e194<=mef0f02[64];ykf0ca2<={xj4aae6>>1,mef0f02[65]};ng86511<={jp55736>>1,mef0f02[66]};hd3288b<={irab9b7>>1,mef0f02[67]};fp9445e<=mef0f02[68];baa22f7<=mef0f02[69];zm117ba<=mef0f02[70];end -always@* begin ng1e1e0[2047]<=anaeeb9;ng1e1e0[2046]<=yk775cd;ng1e1e0[2044]<=phbae69;ng1e1e0[2040]<=vvd734e;ng1e1e0[2032]<=ukb9a76;ng1e1e0[2018]<=faf1dba;ng1e1e0[2017]<=nrcd3b1[0];ng1e1e0[1989]<=tj8edd3;ng1e1e0[1987]<=fa69d8e[0];ng1e1e0[1931]<=czd3c9f;ng1e1e0[1927]<=kd4ec72[0];ng1e1e0[1865]<=ayef1cc[0];ng1e1e0[1859]<=gq10832[0];ng1e1e0[1844]<=hdafd20;ng1e1e0[1815]<=fp9e4fd;ng1e1e0[1806]<=ho76394;ng1e1e0[1682]<=ui78e60;ng1e1e0[1674]<=qv90c78;ng1e1e0[1671]<=lf32197;ng1e1e0[1640]<=fn7e907;ng1e1e0[1582]<=czf27ee;ng1e1e0[1565]<=irb1ca3;ng1e1e0[1488]<=kdd9d10[0];ng1e1e0[1485]<=kf8057e;ng1e1e0[1326]<=gb6560e;ng1e1e0[1317]<=tucf141;ng1e1e0[1300]<=sj23348;ng1e1e0[1297]<=xj4aae6[0];ng1e1e0[1295]<=oh90cbf;ng1e1e0[1233]<=rgf483e[0];ng1e1e0[1210]<=hoc09ef[0];ng1e1e0[1189]<=cz4eb6c;ng1e1e0[1172]<=encc07d;ng1e1e0[1116]<=ld55e0b;ng1e1e0[1105]<=rv9bb69;ng1e1e0[1092]<=irab9b7[0];ng1e1e0[1087]<=ym97f1e;ng1e1e0[1082]<=tx_fifoavail;ng1e1e0[1023]<=gof5dd7;ng1e1e0[1009]<=zm1e3b7[0];ng1e1e0[932]<=sj1de39;ng1e1e0[929]<=pf74420[0];ng1e1e0[922]<=gq15fa4[0];ng1e1e0[837]<=xy20f9d;ng1e1e0[744]<=je1b674;ng1e1e0[742]<=lfb00af;ng1e1e0[663]<=ldecac1;ng1e1e0[648]<=mgad95;ng1e1e0[605]<=pfd813d[0];ng1e1e0[594]<=ng1f65;ng1e1e0[586]<=gd3980f[0];ng1e1e0[552]<=by69136;ng1e1e0[547]<=cb36f47;ng1e1e0[546]<=jp55736[0];ng1e1e0[543]<=ri865fc;ng1e1e0[504]<=hbe3c76[0];ng1e1e0[466]<=gqa3bc7;ng1e1e0[418]<=kfa41f3;ng1e1e0[372]<=mt236ce;ng1e1e0[371]<=rtf6015;ng1e1e0[331]<=ieb9e28;ng1e1e0[324]<=zx7e856;ng1e1e0[297]<=mr603ec;ng1e1e0[273]<=rte6de8;ng1e1e0[252]<=xjfc78e;ng1e1e0[233]<=jr94778[0];ng1e1e0[185]<=go782f6[0];ng1e1e0[162]<=qg6d3f4;ng1e1e0[136]<=kq5cdbd;ng1e1e0[126]<=zzbf8f1;ng1e1e0[116]<=os728ef;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[3]};ec31d79<=mef0f02[4];lf8ebc9<=mef0f02[5];dbaf275<={tj19519>>1,mef0f02[6]};ng2f6a2<=mef0f02[7];alc9d72<=mef0f02[8];kd4eb95<=mef0f02[9];ip75cac<=mef0f02[10];qvae565<=mef0f02[11];su72b2c<=mef0f02[12];oh95960<=mef0f02[13];qiacb04<=mef0f02[14];uv65820<=mef0f02[15];wl2c104<=mef0f02[16];uv60825<=mef0f02[17];vk412c<=mef0f02[18];ng20962<=mef0f02[19];ri4b12<=mef0f02[20];ls25893<=mef0f02[21];ay49c8f<={ep29d6d>>1,mef0f02[22]};an126a8<=mef0f02[23];je93544<=mef0f02[24];ep9aa22<=mef0f02[25];xwd5115<=mef0f02[26];pua88ab<=mef0f02[27];vx22ad4<={uv4b7df>>1,mef0f02[28]};gq156a7<=mef0f02[29];zx5a9cc<={fafbf6a>>1,mef0f02[30]};icd4e67<=mef0f02[31];vka7338<=mef0f02[32];ep399c2<=mef0f02[33];ofcce15<=mef0f02[34];qg670ad<=mef0f02[35];rv38568<=mef0f02[36];ldc2b46<=mef0f02[37];ks15a36<=mef0f02[38];lsad1b0<=mef0f02[39];ic68d83<=mef0f02[40];go46c18<=mef0f02[41];yz360c0<=mef0f02[42];phb0605<=mef0f02[43];pu8302e<=mef0f02[44];wl18173<=mef0f02[45];lqc0b9d<=mef0f02[46];ou5ceb<=mef0f02[47];mg2e759<=mef0f02[48];ne73ac8<=mef0f02[49];ym9d642<=mef0f02[50];byeb211<=mef0f02[51];jpc8451<={ww78015>>1,mef0f02[52]};zk4228e<=mef0f02[53];xy11473<=mef0f02[54];qv8a39b<=mef0f02[55];ip51cdd<=mef0f02[56];xl8e6ec<=mef0f02[57];lq73767<=mef0f02[58];ph9bb3b<=mef0f02[59];jpdd9df<=mef0f02[60];jpecefe<=mef0f02[61];os677f6<=mef0f02[62];end -always@* begin ng1e1e0[2047]<=anaeeb9;ng1e1e0[2046]<=tx_sndpausreq;ng1e1e0[2044]<=tx_sndpaustim[0];ng1e1e0[2040]<=wyb3e52;ng1e1e0[2033]<=ux9f290;ng1e1e0[2019]<=tj19519[0];ng1e1e0[1991]<=ho76394;ng1e1e0[1934]<=by52133;ng1e1e0[1929]<=bydf8eb;ng1e1e0[1898]<=jc63c02;ng1e1e0[1821]<=bycf546;ng1e1e0[1810]<=blfc75b;ng1e1e0[1749]<=fc9c68c;ng1e1e0[1707]<=xyea19;ng1e1e0[1666]<=uv4b7df[0];ng1e1e0[1630]<=ng30125;ng1e1e0[1595]<=qg4671a;ng1e1e0[1572]<=wl1d6f7;ng1e1e0[1506]<=fc25558;ng1e1e0[1450]<=nga2e8e;ng1e1e0[1440]<=vid0974;ng1e1e0[1384]<=oh9a12e;ng1e1e0[1370]<=ep29d6d[0];ng1e1e0[1366]<=tx_discfrm;ng1e1e0[1284]<=of5befd;ng1e1e0[1212]<=an8092a;ng1e1e0[1202]<=vvecbf5;ng1e1e0[1174]<=wj44d9d;ng1e1e0[1170]<=aa8748b;ng1e1e0[1142]<=ep338d1;ng1e1e0[1125]<=gq988c6;ng1e1e0[1097]<=dz55311;ng1e1e0[1041]<=shed49d;ng1e1e0[1023]<=gof5dd7;ng1e1e0[964]<=je2aac3;ng1e1e0[949]<=hq8c780;ng1e1e0[853]<=qi2b075;ng1e1e0[833]<=ps5d2df;ng1e1e0[815]<=ofc6024;ng1e1e0[753]<=sw24aab;ng1e1e0[720]<=xjc8b1c;ng1e1e0[714]<=icced42;ng1e1e0[692]<=hd13425;ng1e1e0[685]<=mec1d43;ng1e1e0[601]<=bl4f4d7;ng1e1e0[587]<=ui67dfc;ng1e1e0[585]<=je35187;ng1e1e0[562]<=db13118;ng1e1e0[520]<=fafbf6a[0];ng1e1e0[474]<=hbe3463;ng1e1e0[407]<=an18c04;ng1e1e0[376]<=fc4955;ng1e1e0[357]<=yma3c6e;ng1e1e0[300]<=ww6d020;ng1e1e0[293]<=gb5efc8;ng1e1e0[292]<=ww78015[0];ng1e1e0[281]<=yk62623;ng1e1e0[237]<=uk1a31e;ng1e1e0[203]<=oh23180;ng1e1e0[146]<=ww4c478;ng1e1e0[140]<=mred898;ng1e1e0[70]<=qi9db13;ng1e1e0[35]<=of6a4ed;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[2]};je3a537<={xl285a7>>1,mef0f02[3]};dzd29bb<={by42d3f>>1,mef0f02[4]};ww53ab0<=mef0f02[5];gq9d581<=mef0f02[6];jr377f1<=mef0f02[7];end -always@* begin ng1e1e0[2047]<=ls1fac;ng1e1e0[2046]<=oufd63[0];ng1e1e0[2044]<=xl285a7[0];ng1e1e0[2040]<=by42d3f[0];ng1e1e0[2033]<=pfd813d;ng1e1e0[2019]<=hoc09ef;ng1e1e0[1990]<=vk3f5eb;ng1e1e0[1023]<=yz803f5;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[1]};ipd346d<=mef0f02[2];wl9a36c<=mef0f02[3];god1b64<=mef0f02[4];vk412c<=mef0f02[5];dm6c808<={ym9de6f>>1,mef0f02[6]};hq20217<={ps79bc0>>1,mef0f02[7]};ux85da<={cz6f01f>>1,mef0f02[8]};wl176a2<={fac07e0>>1,mef0f02[9]};neda8a5<={gq1f816>>1,mef0f02[10]};lsa2959<={sue058e>>1,mef0f02[11]};zza565a<={fp1638c>>1,mef0f02[12]};me596b8<={ph8e335>>1,mef0f02[13]};xj5ae09<={ls8cd7f>>1,mef0f02[14]};vkb827e<={ri35fdb>>1,mef0f02[15]};lf9f90<={kd7f6df>>1,mef0f02[16]};th7e43e<={aydb7eb>>1,mef0f02[17]};kf90fbd<={jcdfac1>>1,mef0f02[18]};co3ef60<={vieb05c>>1,mef0f02[19]};dobd804<={uic1713>>1,mef0f02[20]};hbec023<=mef0f02[21];en6011f<=mef0f02[22];end -always@* begin ng1e1e0[2047]<=tx_fifodata[0];ng1e1e0[2046]<=tx_fifoeof;ng1e1e0[2044]<=tx_fifoempty;ng1e1e0[2040]<=tx_fifoctrl;ng1e1e0[2032]<=qi2b075;ng1e1e0[2017]<=ym9de6f[0];ng1e1e0[1987]<=ps79bc0[0];ng1e1e0[1927]<=cz6f01f[0];ng1e1e0[1865]<=kd7f6df[0];ng1e1e0[1806]<=fac07e0[0];ng1e1e0[1682]<=aydb7eb[0];ng1e1e0[1565]<=gq1f816[0];ng1e1e0[1317]<=jcdfac1[0];ng1e1e0[1172]<=uic1713[0];ng1e1e0[1082]<=sue058e[0];ng1e1e0[1023]<=tx_discfrm;ng1e1e0[932]<=ri35fdb[0];ng1e1e0[594]<=su5c4c2;ng1e1e0[586]<=vieb05c[0];ng1e1e0[466]<=ls8cd7f[0];ng1e1e0[297]<=fcb898;ng1e1e0[233]<=ph8e335[0];ng1e1e0[116]<=fp1638c[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[5]};cm5681e<={vvf96fb>>1,mef0f02[6]};ng1497b<={fa69d8e>>1,mef0f02[7]};al7a68d<={tx_fifodata>>1,mef0f02[8]};ipd346d<=mef0f02[9];wl9a36c<=mef0f02[10];jcda897<=mef0f02[11];ay463af<={tx_sndpaustim>>1,mef0f02[12]};end918e<=mef0f02[13];god1b64<=mef0f02[14];ipd9356<=mef0f02[15];ps4d5ad<={cb90622>>1,mef0f02[16]};ipe2514<=mef0f02[17];ux3c4a2<=mef0f02[18];tw25ed4<={kd4ec72>>1,mef0f02[19]};jccaa2d<={ayef1cc>>1,mef0f02[20]};bn2d5d7<={gd3980f>>1,mef0f02[21]};ip6aebf<=mef0f02[22];dbaf275<={tj19519>>1,mef0f02[23]};ir12eca<={jr94778>>1,mef0f02[24]};ay49c8f<={ep29d6d>>1,mef0f02[25]};kd4eb95<=mef0f02[26];lf81c3e<=mef0f02[27];al70fbb<={nr5a6ca>>1,mef0f02[28]};qi3eee8<={tj9b2b4>>1,mef0f02[29]};end -always@* begin ng1e1e0[2047]<=gof5dd7;ng1e1e0[2046]<=anaeeb9;ng1e1e0[2044]<=phbae69;ng1e1e0[2040]<=yk775cd;ng1e1e0[2032]<=vk3f2df[0];ng1e1e0[2017]<=vvf96fb[0];ng1e1e0[1987]<=fa69d8e[0];ng1e1e0[1926]<=tx_fifodata[0];ng1e1e0[1804]<=tx_fifoeof;ng1e1e0[1803]<=tj19519[0];ng1e1e0[1560]<=tx_fifoempty;ng1e1e0[1558]<=jr94778[0];ng1e1e0[1550]<=cb90622[0];ng1e1e0[1072]<=tx_fifoavail;ng1e1e0[1069]<=ep29d6d[0];ng1e1e0[1052]<=ukb9a76;ng1e1e0[1023]<=ir3994e;ng1e1e0[901]<=encc07d;ng1e1e0[775]<=zk520c4;ng1e1e0[732]<=tj9b2b4[0];ng1e1e0[450]<=gd3980f[0];ng1e1e0[387]<=tx_fifoctrl;ng1e1e0[366]<=nr5a6ca[0];ng1e1e0[225]<=ayef1cc[0];ng1e1e0[193]<=tx_sndpausreq;ng1e1e0[183]<=sh7aa33;ng1e1e0[112]<=kd4ec72[0];ng1e1e0[96]<=tx_sndpaustim[0];ng1e1e0[91]<=bycf546;ng1e1e0[56]<=vvd734e;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};go781e5<={hdatain>>1,mef0f02[1]};zkc0f28<=mef0f02[2];yz7943<=mef0f02[3];mt3ca1c<=mef0f02[4];yke50e5<=mef0f02[5];cm4394f<={ene2fd7>>1,mef0f02[6]};tj1ca78<=mef0f02[7];ir29e31<={bldd558>>1,mef0f02[8]};jp4f18c<=mef0f02[9];cm78c67<=mef0f02[10];yxc6339<=mef0f02[11];ou319cd<=mef0f02[12];ls8ce69<=mef0f02[13];su6734b<=mef0f02[14];fncd2c5<={kdd3961>>1,mef0f02[15]};wj4b173<={cme586a>>1,mef0f02[16]};lqc5cea<={nr61a85>>1,mef0f02[17]};dm73a98<={uv6a174>>1,mef0f02[18]};wy9d4c2<=mef0f02[19];ww53088<={fn4f950>>1,mef0f02[20]};jpc2201<={cme5433>>1,mef0f02[21]};ec8807b<={hb50cca>>1,mef0f02[22]};ba1ec6<={gd332b3>>1,mef0f02[23]};dz7b199<={jccaceb>>1,mef0f02[24]};hbd8ccf<={yk5675a>>1,mef0f02[25]};shc667e<=mef0f02[26];hq99fad<={jceb401>>1,mef0f02[27]};nr7eb52<={tud0056>>1,mef0f02[28]};twad4b1<={do159c>>1,mef0f02[29]};ps52c5c<={os56710>>1,mef0f02[30]};irb171a<={xy9c400>>1,mef0f02[31]};ea5c6a6<={uk1001c>>1,mef0f02[32]};ie1a98e<={ou70c>>1,mef0f02[33]};yma6388<={nt1c306>>1,mef0f02[34]};aa31c40<=mef0f02[35];fp8e201<=mef0f02[36];qi8807e<={db6eb4>>1,mef0f02[37]};pu1f86<={ntbad37>>1,mef0f02[38]};ld7e198<={uxb4df5>>1,mef0f02[39]};ba86639<={tj37d69>>1,mef0f02[40]};ks98e5d<={wwf5a74>>1,mef0f02[41]};mt39747<={by69d0b>>1,mef0f02[42]};jc5d1e0<={nr742d4>>1,mef0f02[43]};ne4781c<={vkb535>>1,mef0f02[44]};cb3c0e2<={xj5a9ab>>1,mef0f02[45]};lf38a1<={wya6af8>>1,mef0f02[46]};she2877<={qvabe0a>>1,mef0f02[47]};je143bd<=mef0f02[48];ira1deb<=mef0f02[49];doef5c<=mef0f02[50];pubd710<={jp55d00>>1,mef0f02[51]};tueb882<=mef0f02[52];ui5c413<=mef0f02[53];end -always@* begin ng1e1e0[2047]<=hdatain[0];ng1e1e0[2046]<=hread_n;ng1e1e0[2044]<=hwrite_n;ng1e1e0[2040]<=hcs_n;ng1e1e0[2032]<=aye5ebc;ng1e1e0[2016]<=ene2fd7[0];ng1e1e0[1985]<=cb17ebd;ng1e1e0[1925]<=wwf5a74[0];ng1e1e0[1922]<=bldd558[0];ng1e1e0[1802]<=by69d0b[0];ng1e1e0[1796]<=ykeaac7;ng1e1e0[1556]<=nr742d4[0];ng1e1e0[1544]<=gq3baab;ng1e1e0[1505]<=uxb4df5[0];ng1e1e0[1324]<=gbf82ae;ng1e1e0[1316]<=jceb401[0];ng1e1e0[1200]<=jp55d00[0];ng1e1e0[1169]<=do159c[0];ng1e1e0[1163]<=uk1001c[0];ng1e1e0[1118]<=rge1837;ng1e1e0[1106]<=gd332b3[0];ng1e1e0[1065]<=vkb535[0];ng1e1e0[1041]<=nr61a85[0];ng1e1e0[1040]<=xw734fa;ng1e1e0[1023]<=haddr[0];ng1e1e0[962]<=tj37d69[0];ng1e1e0[752]<=ntbad37[0];ng1e1e0[707]<=hb74035;ng1e1e0[662]<=zx5f055;ng1e1e0[658]<=swb3ad0;ng1e1e0[600]<=ykc1574;ng1e1e0[584]<=tud0056[0];ng1e1e0[581]<=xy9c400[0];ng1e1e0[559]<=nt1c306[0];ng1e1e0[553]<=hb50cca[0];ng1e1e0[520]<=cme586a[0];ng1e1e0[376]<=db6eb4[0];ng1e1e0[353]<=epae806;ng1e1e0[331]<=qvabe0a[0];ng1e1e0[329]<=yk5675a[0];ng1e1e0[290]<=os56710[0];ng1e1e0[279]<=ou70c[0];ng1e1e0[276]<=cme5433[0];ng1e1e0[260]<=kdd3961[0];ng1e1e0[188]<=zzc1ba;ng1e1e0[165]<=wya6af8[0];ng1e1e0[164]<=jccaceb[0];ng1e1e0[138]<=fn4f950[0];ng1e1e0[130]<=qv9f4e5;ng1e1e0[82]<=xj5a9ab[0];ng1e1e0[69]<=pu353e5;ng1e1e0[65]<=kdd3e9c;ng1e1e0[34]<=uv6a174[0];ng1e1e0[32]<=gd9a7d3;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};ho5da61<={kdc64dc>>1,mef0f02[1]};shed30a<=mef0f02[2];ne69855<=mef0f02[3];ui4c2aa<=mef0f02[4];ecaa87<={iccb7a2>>1,mef0f02[5]};phaa1c7<={kqde88d>>1,mef0f02[6]};ie871f6<={vka234a>>1,mef0f02[7]};fnc7d8f<={gq8d292>>1,mef0f02[8]};nrf63f0<={jp4a483>>1,mef0f02[9]};kf8fc3d<={gq920fa>>1,mef0f02[10]};ayf0f67<={je83e85>>1,mef0f02[11]};tj3d9c8<={qgfa150>>1,mef0f02[12]};ic6723e<={yz8540a>>1,mef0f02[13]};ldc8f84<={hb502a2>>1,mef0f02[14]};tu47c27<=mef0f02[15];wy3e13a<=mef0f02[16];ayf09d1<=mef0f02[17];fp84e89<=mef0f02[18];vx2744f<=mef0f02[19];end -always@* begin ng1e1e0[2047]<=kdc64dc[0];ng1e1e0[2046]<=xy9372f;ng1e1e0[2044]<=mdi;ng1e1e0[2040]<=lf2de5b;ng1e1e0[2032]<=iccb7a2[0];ng1e1e0[2017]<=kqde88d[0];ng1e1e0[1987]<=vka234a[0];ng1e1e0[1926]<=gq8d292[0];ng1e1e0[1804]<=jp4a483[0];ng1e1e0[1614]<=wya8be;ng1e1e0[1561]<=gq920fa[0];ng1e1e0[1180]<=al545f0;ng1e1e0[1074]<=je83e85[0];ng1e1e0[1023]<=gd18c9b[0];ng1e1e0[807]<=tj81517;ng1e1e0[625]<=wl17c2b;ng1e1e0[403]<=hb502a2[0];ng1e1e0[312]<=nga2f85;ng1e1e0[201]<=yz8540a[0];ng1e1e0[100]<=qgfa150[0];end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[0]};hbc2a27<=mef0f02[1];ec1513e<=mef0f02[2];twa89f1<=mef0f02[3];sh44f8a<=mef0f02[4];vx27c55<=mef0f02[5];gq3e2af<=mef0f02[6];dmf1579<=mef0f02[7];yz8abca<=mef0f02[8];rt55e54<={rxd_pos>>1,mef0f02[9]};rvaf2a6<={rxd_neg>>1,mef0f02[10]};by79536<=mef0f02[11];lqca9b2<=mef0f02[12];qt54d92<=mef0f02[13];gqa6c94<=mef0f02[14];sj364a1<=mef0f02[15];rib250d<=mef0f02[16];ie9286b<=mef0f02[17];bn94359<=mef0f02[18];wla1acf<=mef0f02[19];mtd67c<=mef0f02[20];me59f26<={pf748cc>>1,mef0f02[21]};tu7c982<={an2333d>>1,mef0f02[22]};qv2609a<={kdccf66>>1,mef0f02[23]};ou826a2<={dm66a7e>>1,mef0f02[24]};an9a88e<={uka9f9a>>1,mef0f02[25]};qgd4475<=mef0f02[26];lsa23a9<=mef0f02[27];ba11d4a<=mef0f02[28];tj8ea52<=mef0f02[29];cz75296<=mef0f02[30];oua94b4<=mef0f02[31];jp4a5a1<=mef0f02[32];dm52d0f<=mef0f02[33];ls9687b<=mef0f02[34];yzb43db<=mef0f02[35];swf6e4<={hoc0bc3>>1,mef0f02[36]};zx7b721<=mef0f02[37];ykdb90f<=mef0f02[38];czdc879<=mef0f02[39];dme43cc<=mef0f02[40];sw21e63<=mef0f02[41];ecf318<=mef0f02[42];ps798c1<=mef0f02[43];yxcc60b<=mef0f02[44];ir182e2<={xy2aaf4>>1,mef0f02[45]};cmc1715<=mef0f02[46];kq5c542<={sh5e8fd>>1,mef0f02[47]};uve2a11<={faf47ed>>1,mef0f02[48]};ym1508d<={mga3f6a>>1,mef0f02[49]};xya8469<=mef0f02[50];by4234b<=mef0f02[51];ng11a5b<=mef0f02[52];ie8d2da<=mef0f02[53];rg696d0<=mef0f02[54];gb4b683<=mef0f02[55];gb5b41d<=mef0f02[56];jcda0ec<=mef0f02[57];hod0762<=mef0f02[58];end -always@* begin ng1e1e0[2047]<=zx6e28f;ng1e1e0[2046]<=pf7147e;ng1e1e0[2044]<=ned0632;ng1e1e0[2040]<=kq53683;ng1e1e0[2032]<=rx_dv_pos;ng1e1e0[2016]<=rx_dv_neg;ng1e1e0[1985]<=rx_er_pos;ng1e1e0[1922]<=rx_er_neg;ng1e1e0[1867]<=tu693a4;ng1e1e0[1804]<=sh5e8fd[0];ng1e1e0[1797]<=rxd_pos[0];ng1e1e0[1761]<=th50aab;ng1e1e0[1686]<=ui49d23;ng1e1e0[1623]<=mr5136c;ng1e1e0[1561]<=faf47ed[0];ng1e1e0[1558]<=wl9a1bf;ng1e1e0[1547]<=rxd_neg[0];ng1e1e0[1542]<=hoc0bc3[0];ng1e1e0[1490]<=nr74349;ng1e1e0[1475]<=xy2aaf4[0];ng1e1e0[1413]<=pf7e686;ng1e1e0[1409]<=xla5605;ng1e1e0[1400]<=xw6cad8;ng1e1e0[1324]<=pf748cc[0];ng1e1e0[1200]<=kdccf66[0];ng1e1e0[1199]<=fc89b65;ng1e1e0[1074]<=mga3f6a[0];ng1e1e0[1068]<=ng86fe2;ng1e1e0[1047]<=qv9f880;ng1e1e0[1037]<=ie5e1b;ng1e1e0[1023]<=fncdc51[0];ng1e1e0[933]<=ana1a4e;ng1e1e0[902]<=dz557a3;ng1e1e0[880]<=byca155;ng1e1e0[811]<=cz6a26d;ng1e1e0[779]<=zxf3437;ng1e1e0[771]<=wy2b02f;ng1e1e0[745]<=ie2e869;ng1e1e0[706]<=uka9f9a[0];ng1e1e0[704]<=ieb6958;ng1e1e0[700]<=kq6d95b;ng1e1e0[600]<=an2333d[0];ng1e1e0[440]<=yxd942a;ng1e1e0[405]<=kded44d;ng1e1e0[372]<=uk5d0d;ng1e1e0[353]<=dm66a7e[0];ng1e1e0[352]<=ymb6d2b;ng1e1e0[350]<=xw4db2b;ng1e1e0[220]<=ls1b285;ng1e1e0[202]<=kdfda89;ng1e1e0[186]<=cb80ba1;ng1e1e0[176]<=vk96da5;ng1e1e0[110]<=enc3650;ng1e1e0[101]<=mg1fb51;ng1e1e0[93]<=kde202e;ng1e1e0[88]<=db37f12;ng1e1e0[55]<=ay786ca;ng1e1e0[46]<=rtfc405;ng1e1e0[27]<=ri2f0d9;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f>1,mef0f02[1]};go781e5<={hdatain>>1,mef0f02[2]};mt3ca1c<=mef0f02[3];yz7943<=mef0f02[4];zkc0f28<=mef0f02[5];al7a68d<={tx_fifodata>>1,mef0f02[6]};jcda897<=mef0f02[7];ipd346d<=mef0f02[8];wl9a36c<=mef0f02[9];ay463af<={tx_sndpaustim>>1,mef0f02[10]};end918e<=mef0f02[11];god1b64<=mef0f02[12];wwde5f9<=mef0f02[13];wwd1063<=mef0f02[14];ks9259a<={ie2197a>>1,mef0f02[15]};ks92cd0<=mef0f02[16];pu96681<=mef0f02[17];ir29e31<={bldd558>>1,mef0f02[18]};jp4f18c<=mef0f02[19];vid028c<={ned0f15>>1,mef0f02[20]};bn81463<=mef0f02[21];iea31e<=mef0f02[22];wj518f1<={mre2a84>>1,mef0f02[23]};do8c78c<=mef0f02[24];dm63c62<=mef0f02[25];tw1e313<=mef0f02[26];jcf189a<=mef0f02[27];xy8c4d3<=mef0f02[28];go6269a<={ep29dbb>>1,mef0f02[29]};ph134d0<=mef0f02[30];an9a686<=mef0f02[31];ofd3434<=mef0f02[32];sj9a1a4<=mef0f02[33];byd0d24<=mef0f02[34];ri86922<=mef0f02[35];gq34912<=mef0f02[36];ana4891<=mef0f02[37];qi2448c<=mef0f02[38];vx22461<={xwe47ba>>1,mef0f02[39]};ep1230e<={yz23dd3>>1,mef0f02[40]};rv91874<={fc1ee9d>>1,mef0f02[41]};pu8c3a6<={gbf74eb>>1,mef0f02[42]};xj61d32<={bnba75d>>1,mef0f02[43]};twe996<={qtd3aef>>1,mef0f02[44]};dz74cb2<={ks9d77d>>1,mef0f02[45]};aaa6597<={tuebbe9>>1,mef0f02[46]};tj32cb8<={vi5df4b>>1,mef0f02[47]};vk965c6<={ykefa5a>>1,mef0f02[48]};vkb2e32<={ic7d2d1>>1,mef0f02[49]};ks97192<={rte9688>>1,mef0f02[50]};lsb8c90<={gb4b447>>1,mef0f02[51]};shc6483<=mef0f02[52];vx3241d<={qgd11ee>>1,mef0f02[53]};ou920ef<=mef0f02[54];sj90778<=mef0f02[55];ba83bc5<=mef0f02[56];kf1de2a<=mef0f02[57];osef154<=mef0f02[58];cm78aa0<=mef0f02[59];xwc5501<=mef0f02[60];do2a80a<=mef0f02[61];yx54053<={hq965a2>>1,mef0f02[62]};zza029d<={ngb2d12>>1,mef0f02[63]};ng14ef<=mef0f02[64];aaa77a<=mef0f02[65];ic53bd1<=mef0f02[66];ym9de89<=mef0f02[67];wwef448<={ou92714>>1,mef0f02[68]};qt7a240<={ri938a0>>1,mef0f02[69]};end -always@* begin ng1e1e0[2047]<=haddr[0];ng1e1e0[2046]<=hdatain[0];ng1e1e0[2044]<=hcs_n;ng1e1e0[2040]<=hwrite_n;ng1e1e0[2033]<=hread_n;ng1e1e0[2019]<=tx_fifodata[0];ng1e1e0[1994]<=gbf74eb[0];ng1e1e0[1990]<=tx_fifoavail;ng1e1e0[1981]<=tj84a76;ng1e1e0[1965]<=lsb7722;ng1e1e0[1940]<=bnba75d[0];ng1e1e0[1939]<=bldd558[0];ng1e1e0[1933]<=tx_fifoeof;ng1e1e0[1914]<=ba253b7;ng1e1e0[1883]<=ohbb913;ng1e1e0[1832]<=qtd3aef[0];ng1e1e0[1831]<=ykeaac7;ng1e1e0[1819]<=tx_fifoempty;ng1e1e0[1785]<=xwe47ba[0];ng1e1e0[1781]<=ep29dbb[0];ng1e1e0[1778]<=ie2197a[0];ng1e1e0[1740]<=hoee257;ng1e1e0[1719]<=mrdc89c;ng1e1e0[1634]<=mrd6596;ng1e1e0[1616]<=ks9d77d[0];ng1e1e0[1615]<=ned0f15[0];ng1e1e0[1591]<=tx_sndpaustim[0];ng1e1e0[1579]<=zm96892;ng1e1e0[1522]<=yz23dd3[0];ng1e1e0[1515]<=cz4eddc;ng1e1e0[1508]<=fpcbd0;ng1e1e0[1470]<=db1391e;ng1e1e0[1432]<=bl712ba;ng1e1e0[1406]<=ri938a0[0];ng1e1e0[1391]<=fae44e4;ng1e1e0[1286]<=ic7d2d1[0];ng1e1e0[1271]<=mg15425;ng1e1e0[1221]<=bab2cb4;ng1e1e0[1184]<=tuebbe9[0];ng1e1e0[1182]<=ie878aa;ng1e1e0[1135]<=tx_sndpausreq;ng1e1e0[1111]<=gdb4493;ng1e1e0[1051]<=gb4b447[0];ng1e1e0[1023]<=reset_n;ng1e1e0[997]<=fc1ee9d[0];ng1e1e0[990]<=bl5094e;ng1e1e0[982]<=vi76ee4;ng1e1e0[969]<=yx65e87;ng1e1e0[892]<=ls9c8f7;ng1e1e0[889]<=ignore_pkt;ng1e1e0[870]<=nt3dc4a;ng1e1e0[817]<=hq895d6;ng1e1e0[789]<=ngb2d12[0];ng1e1e0[735]<=lf22723;ng1e1e0[703]<=ou92714[0];ng1e1e0[643]<=ykefa5a[0];ng1e1e0[635]<=mre2a84[0];ng1e1e0[525]<=rte9688[0];ng1e1e0[495]<=hdaa129;ng1e1e0[444]<=rx_fifo_full;ng1e1e0[435]<=lq47b89;ng1e1e0[394]<=hq965a2[0];ng1e1e0[351]<=ep124e2;ng1e1e0[321]<=vi5df4b[0];ng1e1e0[317]<=oh3c550;ng1e1e0[222]<=tx_fifoctrl;ng1e1e0[217]<=ks88f71;ng1e1e0[175]<=vka249c;ng1e1e0[108]<=qgd11ee[0];ng1e1e0[54]<=hb5a23d;end assign epd660 = ng1e1e0,mef0f02 = ui59826; initial begin tj848e3 = $fopen(".fred"); $fdisplay( tj848e3, "%3h\n%3h", (yke0444 >> 4) & of44359, (yke0444 >> (ba1110d+4)) & of44359 ); $fclose(tj848e3); $readmemh(".fred", uv60984); end always @ (epd660) begin sj26123 = uv60984[1]; for (aa2471f=0; aa2471f 0} { - for {set i 0} {$i < $argc} {incr i 2} { - set temp [lindex $argv $i] - set temp [string range $temp 1 end] - lappend argv_list $temp - lappend value_list [lindex $argv [expr $i+1]] - } - foreach argument $argv_list value $value_list { - switch $argument { - "cmd" {set Para(cmd) $value;} - } - } - } -} - -set Para(ProjectPath) "/home/greg/projects/trbnet/gbe2_ecp3/ipcores_ecp3/tsmac35" -set Para(ModuleName) "tsmac35" -set Para(lib) "/home/greg/trispeed_mac_v3.5/lib" -set Para(CoreName) "Tri-Speed Ethernet MAC" -set Para(arch) "ep5c00" -set Para(family) "latticeecp3" -set Para(Family) "latticeecp3" -set Para(design) "VHDL" -set Para(install_dir) "/opt/lattice/diamond/1.4.2.105/bin/lin/../.." -set Para(Bin) "/opt/lattice/diamond/1.4.2.105/bin/lin" -set Para(SpeedGrade) "Para(spd)" -set Para(FPGAPath) "/opt/lattice/diamond/1.4.2.105/bin/lin/../../ispfpga/bin/sol" - -lappend auto_path "/home/greg/trispeed_mac_v3.5/gui" - -lappend auto_path "/home/greg/trispeed_mac_v3.5/script" -package require Core_Generate - -lappend auto_path "/opt/lattice/diamond/1.4.2.105/tcltk/lib/ipwidgets/ispipbuilder/../runproc" -package require runcmd - - -set Para(result) [GenerateCore] diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac35/pmi_ram_dpEbnonessdn208256208256.ngo b/gbe2_ecp3/ipcores_ecp3/tsmac35/pmi_ram_dpEbnonessdn208256208256.ngo deleted file mode 100644 index f89c6c1887090fe81f0e9715e5e30d305b9f0228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11243 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 diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac35/pmi_ram_dpEbnonessdn96649664.ngo b/gbe2_ecp3/ipcores_ecp3/tsmac35/pmi_ram_dpEbnonessdn96649664.ngo deleted file mode 100644 index 71aa3c251adfa54c11b09ead9ed0c79401acf16e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8808 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 - - - - - - - - - - - diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.lpc b/gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.lpc deleted file mode 100644 index 22fb09b..0000000 --- a/gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.lpc +++ /dev/null @@ -1,38 +0,0 @@ -[Device] -Family=ep5c00 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=IPCFG -CoreStatus=Demo -CoreName=Tri-Speed Ethernet MAC -CoreRevision=3.5 -ModuleName=tsmac35 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=06/19/2012 -Time=09:58:20 - -[Parameters] -MIIM=No -MODE=SGMII easy connect -SYNP_TOOL=1 -PREC_TOOL=0 -MODS_TOOL=1 -ALDC_TOOL=0 -MULT_WB=NO -LOOPBACK=NO -STAT_REGS=NO - -[Files] -Synthesis= -Simulation= -Logical= -Physical= -Misc= diff --git a/gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.ngo b/gbe2_ecp3/ipcores_ecp3/tsmac35/tsmac35.ngo deleted file mode 100644 index ef58bffaee129b964d3a53ccb03b5a680f1e03bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818583 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℞LGYa5?7wzqz$5se~K@2sOIaIqzV_f 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%0Ax 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⪚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 z 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,ea5c9d9[1]};bn3da3f<=ea5c9d9[2];qted1ff<=ea5c9d9[3];ww68ffd<=ea5c9d9[4];ps47fe8<=ea5c9d9[5];ri3ff42<=ea5c9d9[6];icffa12<=ea5c9d9[7];qtfd090<=ea5c9d9[8];cze8484<=ea5c9d9[9];wl1212b<={cb1d810>>1,ea5c9d9[10]};ep9095c<={fnec084>>1,ea5c9d9[11]};ls25727<={ep213d>>1,ea5c9d9[12]};end -always@* begin ec2b93b[2047]<=ald93fd[0];ec2b93b[2046]<=shc9fed;ec2b93b[2044]<=zx4ff6d;ec2b93b[2040]<=kf3941a;ec2b93b[2032]<=zkfb248;ec2b93b[2016]<=ald9243;ec2b93b[1984]<=shc921d;ec2b93b[1920]<=su490ec;ec2b93b[1793]<=tu48760;ec2b93b[1539]<=cb1d810[0];ec2b93b[1030]<=fnec084[0];ec2b93b[1023]<=mtbb27f;ec2b93b[13]<=ep213d[0];end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[0]};aa21756<=ea5c9d9[1];qted1ff<=ea5c9d9[2];rg5d58a<=ea5c9d9[3];su56299<={en41ecd>>1,ea5c9d9[4]};kf8a644<={ksf66d>>1,ea5c9d9[5]};ls99128<={nr7b369>>1,ea5c9d9[6]};ip44a1f<={ipd9b4f>>1,ea5c9d9[7]};db287eb<={blcda7c>>1,ea5c9d9[8]};uk1faf8<={qg6d3e7>>1,ea5c9d9[9]};xwebe0c<={xw69f39>>1,ea5c9d9[10]};mrf831e<={zx4f9ca>>1,ea5c9d9[11]};lfc7a1<={xw7ce56>>1,ea5c9d9[12]};ps63d0e<=ea5c9d9[13];ls1e873<=ea5c9d9[14];byf439b<=ea5c9d9[15];doe6d4<={ic56722>>1,ea5c9d9[16]};ho736a3<=ea5c9d9[17];jr9b51b<=ea5c9d9[18];hoda8de<=ea5c9d9[19];uid46f3<=ea5c9d9[20];qia3799<=ea5c9d9[21];pu1bcc8<=ea5c9d9[22];gode643<=ea5c9d9[23];ldf3218<=ea5c9d9[24];thc863b<={fne60e5>>1,ea5c9d9[25]};gd18ef1<={ng83972>>1,ea5c9d9[26]};ldc778c<=ea5c9d9[27];ou3bc67<=ea5c9d9[28];kqde338<=ea5c9d9[29];psf19c0<=ea5c9d9[30];tw8ce03<=ea5c9d9[31];ea6701b<=ea5c9d9[32];zz380d8<=ea5c9d9[33];vic06c6<=ea5c9d9[34];vk1b197<={jr95a2>>1,ea5c9d9[35]};wjc65d6<={me568b6>>1,ea5c9d9[36]};bn32eb5<=ea5c9d9[37];gq975ae<=ea5c9d9[38];ipd6b86<={gqb631f>>1,ea5c9d9[39]};bnb5c35<=ea5c9d9[40];mtae1af<=ea5c9d9[41];of70d7c<=ea5c9d9[42];ls86be5<=ea5c9d9[43];ls35f2a<=ea5c9d9[44];ps7ca9f<={kd6a63e>>1,ea5c9d9[45]};pu2a7d9<={co98fa0>>1,ea5c9d9[46]};kq53eca<=ea5c9d9[47];qv9f651<=ea5c9d9[48];lqfb28c<=ea5c9d9[49];shd9463<=ea5c9d9[50];faca31d<=ea5c9d9[51];yx518eb<=ea5c9d9[52];tw8c75c<=ea5c9d9[53];by63ae2<=ea5c9d9[54];ep1d713<=ea5c9d9[55];xweb89d<=ea5c9d9[56];ay5c4eb<=ea5c9d9[57];end -always@* begin ec2b93b[2047]<=qtedba5;ec2b93b[2046]<=zx4ff6d;ec2b93b[2044]<=uve83d9;ec2b93b[2040]<=en41ecd[0];ec2b93b[2032]<=ksf66d[0];ec2b93b[2017]<=nr7b369[0];ec2b93b[1987]<=ipd9b4f[0];ec2b93b[1980]<=lqf4030;ec2b93b[1963]<=xlb004a;ec2b93b[1942]<=mg82e7a;ec2b93b[1926]<=blcda7c[0];ec2b93b[1921]<=fac0f30;ec2b93b[1913]<=lfa0182;ec2b93b[1903]<=dm63e6a;ec2b93b[1879]<=cb80256;ec2b93b[1837]<=ux173d0;ec2b93b[1805]<=qg6d3e7[0];ec2b93b[1795]<=ux7983;ec2b93b[1783]<=co98fa0[0];ec2b93b[1778]<=ecc17;ec2b93b[1758]<=sw1f353;ec2b93b[1710]<=jr95a2[0];ec2b93b[1679]<=ic56722[0];ec2b93b[1627]<=mgb9e84;ec2b93b[1562]<=xw69f39[0];ec2b93b[1543]<=fne60e5[0];ec2b93b[1519]<=fnc7d00;ec2b93b[1509]<=nt60b9;ec2b93b[1499]<=anb18f9;ec2b93b[1469]<=dzf9a98;ec2b93b[1398]<=vka2d8c;ec2b93b[1373]<=me568b6[0];ec2b93b[1310]<=wya34af;ec2b93b[1207]<=zkcf421;ec2b93b[1144]<=rtd2bc0;ec2b93b[1076]<=zx4f9ca[0];ec2b93b[1039]<=ng83972[0];ec2b93b[1023]<=nt32741[0];ec2b93b[990]<=ou3e806;ec2b93b[981]<=vk96009;ec2b93b[971]<=fc305cf;ec2b93b[960]<=kq781e6;ec2b93b[951]<=do8c7cd;ec2b93b[891]<=kd6a63e[0];ec2b93b[839]<=hocace4;ec2b93b[749]<=gqb631f[0];ec2b93b[699]<=gdb45b1;ec2b93b[572]<=ks1a578;ec2b93b[490]<=ou92c01;ec2b93b[480]<=phaf03c;ec2b93b[419]<=ux3959c;ec2b93b[245]<=ic72580;ec2b93b[240]<=ux95e07;ec2b93b[209]<=kde72b3;ec2b93b[122]<=sw2e4b0;ec2b93b[104]<=xw7ce56[0];ec2b93b[61]<=kqe5c96;ec2b93b[30]<=db1cb92;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162= 7'h42); - - -assign wy825ad = cmde2e8 & ~pffcf51; -assign yz904b5 = pu14c26 & ~ph320fc & ~ba30990 & ~nt84c83; - - -assign zm9c42e = yz8fb84 & fnc2984[18]; - - - - - - -assign ou2e705 = (pu14c26 | rx_write) & xw5d016 & ~ph320fc & ~ba30990; - -always@* begin cmde2e8<=ea5c9d9[0];dmf1740<=ea5c9d9[1];zz8ba02<={ie9dcf2>>1,ea5c9d9[2]};xw5d016<=ea5c9d9[3];fn4059d<={ne73c82>>1,ea5c9d9[4]};bn16774<={zk79681>>1,ea5c9d9[5]};wy9dd30<={pf5a051>>1,ea5c9d9[6]};fn74c03<={vk8ceb3>>1,ea5c9d9[7]};pu300f8<={vk3acd8>>1,ea5c9d9[8]};qv807c2<=ea5c9d9[9];bn3e14<=ea5c9d9[10];ie1f0a6<=ea5c9d9[11];fnc2984<={ww77ce2>>1,ea5c9d9[12]};pu14c26<=ea5c9d9[13];yma6132<=ea5c9d9[14];ba30990<=ea5c9d9[15];nt84c83<=ea5c9d9[16];gd2641f<=ea5c9d9[17];ph320fc<=ea5c9d9[18];ux907e7<=ea5c9d9[19];gq1f9ea<={xy9c142>>1,ea5c9d9[20]};pffcf51<=ea5c9d9[21];hd3d47d<={jr284c0>>1,ea5c9d9[22]};sh51f70<={db1303b>>1,ea5c9d9[23]};yz8fb84<=ea5c9d9[24];os7dc24<=ea5c9d9[25];psee121<=ea5c9d9[26];mr7090a<=ea5c9d9[27];end -always@* begin ec2b93b[2047]<=lq73b9e;ec2b93b[2046]<=ie9dcf2[0];ec2b93b[2044]<=rx_fifo_full;ec2b93b[2040]<=ne73c82[0];ec2b93b[2032]<=zk79681[0];ec2b93b[2017]<=pf5a051[0];ec2b93b[1987]<=vk8ceb3[0];ec2b93b[1926]<=vk3acd8[0];ec2b93b[1921]<=db1303b[0];ec2b93b[1805]<=gqb3614;ec2b93b[1795]<=gq981de;ec2b93b[1679]<=kde2173;ec2b93b[1562]<=bn9b0a1;ec2b93b[1543]<=nec0ef1;ec2b93b[1310]<=sw10b9c;ec2b93b[1144]<=ou2e705;ec2b93b[1076]<=xjd850e;ec2b93b[1039]<=gd778b;ec2b93b[1023]<=pf6e773;ec2b93b[960]<=jr284c0[0];ec2b93b[839]<=zm9c42e;ec2b93b[572]<=yz85ce0;ec2b93b[480]<=sue0a13;ec2b93b[419]<=nrf3885;ec2b93b[240]<=xy9c142[0];ec2b93b[209]<=uxbe710;ec2b93b[104]<=ww77ce2[0];ec2b93b[30]<=aa3bc5d;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[0]};qted1ff<=ea5c9d9[1];pfc2f4a<=ea5c9d9[2];rg5d58a<=ea5c9d9[3];babd2b5<=ea5c9d9[4];bl4ad57<={fc30be7>>1,ea5c9d9[5]};me56abe<=ea5c9d9[6];hdb55f1<=ea5c9d9[7];ne57c77<={osfa629>>1,ea5c9d9[8]};ohbe3bb<=ea5c9d9[9];psf1ddd<=ea5c9d9[10];vx8eeeb<=ea5c9d9[11];qg7775e<=ea5c9d9[12];cbbbaf1<=ea5c9d9[13];vvdd78c<=ea5c9d9[14];dmebc67<=ea5c9d9[15];yx5e33b<=ea5c9d9[16];xwf19dc<=ea5c9d9[17];ww6771b<={pff6af9>>1,ea5c9d9[18]};ks3b8d8<=ea5c9d9[19];gbdc6c0<=ea5c9d9[20];pfe3605<=ea5c9d9[21];hq1b02e<=ea5c9d9[22];nec0b97<={xw76bb8>>1,ea5c9d9[23]};ay5c4eb<=ea5c9d9[24];end -always@* begin ec2b93b[2047]<=zx4ff6d;ec2b93b[2046]<=thec185;ec2b93b[2044]<=uve83d9;ec2b93b[2040]<=nt617c;ec2b93b[2032]<=fc30be7[0];ec2b93b[2017]<=qv278c;ec2b93b[1987]<=do9c880;ec2b93b[1926]<=osfa629[0];ec2b93b[1804]<=qgefd3d;ec2b93b[1803]<=xw76bb8[0];ec2b93b[1560]<=zx7e9e9;ec2b93b[1558]<=zkcf421;ec2b93b[1550]<=lq737b5;ec2b93b[1072]<=vif4f4e;ec2b93b[1052]<=ph9bdab;ec2b93b[1023]<=nt32741[0];ec2b93b[901]<=rtf9dae;ec2b93b[775]<=kd4e6f6;ec2b93b[450]<=xj5f3b5;ec2b93b[387]<=fne9cde;ec2b93b[225]<=gdabe76;ec2b93b[193]<=nt3d39b;ec2b93b[112]<=rvb57ce;ec2b93b[96]<=pua7a73;ec2b93b[56]<=pff6af9[0];end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[0]};ymbc546<=ea5c9d9[1];ofe2a30<=ea5c9d9[2];co15185<=ea5c9d9[3];doa8c29<=ea5c9d9[4];su4614a<={wjc9dd9>>1,ea5c9d9[5]};tw30a51<={jp50046>>1,ea5c9d9[6]};an8528b<={cb8de2>>1,ea5c9d9[7]};cb2945c<={yk46f15>>1,ea5c9d9[8]};end -always@* begin ec2b93b[2047]<=rvc2c9;ec2b93b[2046]<=nr6164e;ec2b93b[2044]<=vkb277;ec2b93b[2041]<=ui593bb;ec2b93b[2034]<=wjc9dd9[0];ec2b93b[2021]<=jp50046[0];ec2b93b[1995]<=cb8de2[0];ec2b93b[1943]<=yk46f15[0];ec2b93b[1023]<=ykc1859[0];end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162= 14'd64); - - - - -assign lq73b9e = ((~lf28710) ? (zx4ff6d & ~qg494db) : 1'b0) | (wl90a44 & ~ep85224) | (ep1d525 & ~wwea92d) | (rv38f01 & go72a4c & zx4ff6d) | (do20a1c & zx4ff6d); - -assign zx6128f = aa21756 | (pu933ac & aa98f3e); - - -assign ph947f = nt617c; -assign xj4a3fe = nt617c & zz32ee; - - -assign cb8ffbc = (~yx60a48) ? cm62429 -14'd4 : hq25740; - -assign uk8d311 = 32'hffffffff; - -assign me62210 = shc9fed; -assign vkb277 = ~fp9b638 & ngad253; - -assign ukb3910 = aa21756 | vx38c37; - - - -assign ice51f2 = ic43887 & me4c149 & fnc7186 & qg494db & ~(ald6d17 | pfc780f); - -always @ (posedge rxmac_clk or negedge reset_n) begin if (!reset_n) begin gd8ad7 <= 1'b0; ld6115a <= 1'b0; ec2b5ee <= 14'b0; yx51ee9 <= 14'b0; pf7ba65 <= 14'b0; vvdd32e <= 1'b0; al41f9c <= 1'b0; qi3e472 <= 1'b0; zx6ee71 <= 1'b0; qg7738f <= 1'b0; aab9c79 <= 1'b0; goce3c9 <= 1'b0; jr28f91 <= 1'b0; ou10166 <= 1'b0; sw8ddce <= 1'b0; ay77c61 <= 14'd0; rtd7b87 <= 14'd0; ayc1110 <= 9'd0; cb8880 <= 1'b0; hb71e49 <= 1'b0; mgb9e84 <= 1'b0; end else if (rxmac_clk_en) begin cb8880 <= sj3cf86 & ~mr7090a; if (sj3cf86 && !mr7090a) ayc1110 <= ipe88ea; jr28f91 <= vkb277; ou10166 <= pfd8e30; if (hof42c6) sw8ddce <= hof42c6; else if (shc9fed && !hof42c6) sw8ddce <= 1'b0; else if (wl90a44) sw8ddce <= 1'b0; else sw8ddce <= uvfd6b6; goce3c9 <= ~phbfad6; if (wj70363 & ks109ed) aab9c79 <= wj70363; else if (sj3cf86) aab9c79 <= 1'b0; else aab9c79 <= ald6d17; if (xy86feb) qg7738f <= xy86feb; else if (sj3cf86) qg7738f <= 1'b0; else qg7738f <= bl5ada2; mgb9e84 <= aa21756; if (xweb89d) zx6ee71 <= sjd8e7; if (db2202c) hb71e49 <= nt3d6f5; qi3e472 <= aa21756 | (vx38c37 & ks109ed); ec2b5ee <= qvab575; ld6115a <= uvc61bf; gd8ad7 <= dmd5d67; if (pu933ac && !rg58cab) al41f9c <= zz19777; vvdd32e <= rg58cab; if (pu933ac && !rg58cab) yx51ee9 <= ep12675; if (rg58cab) begin pf7ba65 <= ep12675 + 14'd1; end else pf7ba65 <= 14'd0; if (lf32ad5 && yx60a48 && ui77e13) rtd7b87 <= hq25740 + 14'd1; if (uvc655a && !yx60a48 && aa98f3e) ay77c61 <= cm62429 + 14'd1; else if (ir12148) ay77c61 <= 14'd0; end -end - - - -assign db2202c = ir12148; - - -assign gbf2391 = wl95260 ? (fn40499 > (ipe21c7 + 14'd4)) : fn40499 > ipe21c7; -assign bn91c8d = (fn40499 < 14'd64); -assign tj8e46e = hb7e858; - -assign wj7fde4 = (fn40499[6:0] != 7'd64); -assign xwfef24 = (ui49829 != ie2495d); -assign ea72377 = je30dfd ? 1'b0 : go72a4c | yx60a48 ? vv5abac : aa5244 ? 1'b0 : lq48925; - -assign lf91bb9 = ~(ald6d17 | pfc780f | fp37f5a); -assign qgdb280[31] = ir29124; -assign qgdb280[30] = je30dfd; -assign qgdb280[29] = hoeb5b4; -assign qgdb280[28] = sjb45e8; -assign qgdb280[27] = bl5ada2; -assign qgdb280[26] = uvfd6b6; -assign qgdb280[25] = pfc780f; -assign qgdb280[24] = fp37f5a; -assign qgdb280[23] = phbfad6; -assign qgdb280[22] = uideb95; -assign qgdb280[21] = uif5ca9; -assign qgdb280[20] = vx81b1c; -assign qgdb280[19] = cb29220; -assign qgdb280[18] = go72a4c; -assign qgdb280[17] = me4c149; -assign qgdb280[16] = wl95260; -assign qgdb280[15:14] = 2'b00; -assign qgdb280[13:0] = fn40499; - -assign cm49f54[0] = me4c149; -assign cm49f54[1] = pfc780f; -assign cm49f54[2] = ald6d17; -assign cm49f54[3] = ir29124; -assign cm49f54[4] = je30dfd; -assign cm49f54[5] = hoeb5b4; -assign cm49f54[6] = uideb95; -assign cm49f54[7] = uif5ca9; -assign cm49f54[8] = wl95260; - -always@* begin ks109ed<=ea5c9d9[0];vke06c<=ea5c9d9[1];wj70363<=ea5c9d9[2];vx81b1c<=ea5c9d9[3];sjd8e7<=ea5c9d9[4];nt842ea<={nt32741>>1,ea5c9d9[5]};aa21756<=ea5c9d9[6];cze7ade<=ea5c9d9[7];nt3d6f5<=ea5c9d9[8];dmeb7ae<=ea5c9d9[9];uv5bd72<=ea5c9d9[10];uideb95<=ea5c9d9[11];uif5ca9<=ea5c9d9[12];irae549<=ea5c9d9[13];go72a4c<=ea5c9d9[14];wl95260<=ea5c9d9[15];ui49829<={jpdd6e0>>1,ea5c9d9[16]};me4c149<=ea5c9d9[17];yx60a48<=ea5c9d9[18];aa5244<=ea5c9d9[19];cb29220<=ea5c9d9[20];os49105<=ea5c9d9[21];kd44143<={gb5b83a>>1,ea5c9d9[22]};do20a1c<=ea5c9d9[23];ou50e2<=ea5c9d9[24];lf28710<=ea5c9d9[25];ic43887<=ea5c9d9[26];ipe21c7<={yx44fac>>1,ea5c9d9[27]};co10e3c<=ea5c9d9[28];ym871e0<=ea5c9d9[29];rv38f01<=ea5c9d9[30];pfc780f<=ea5c9d9[31];qge03f4<={ph2864e>>1,ea5c9d9[32]};tw1fa1<=ea5c9d9[33];aafd0b<=ea5c9d9[34];hb7e858<=ea5c9d9[35];hof42c6<=ea5c9d9[36];epa1632<=ea5c9d9[37];bab195<=ea5c9d9[38];rg58cab<=ea5c9d9[39];uvc655a<=ea5c9d9[40];lf32ad5<=ea5c9d9[41];qvab575<={cb8ffbc>>1,ea5c9d9[42]};vv5abac<=ea5c9d9[43];dmd5d67<=ea5c9d9[44];mr759d5<={ukbc914>>1,ea5c9d9[45]};ukacead<=ea5c9d9[46];yk67568<=ea5c9d9[47];ba3ab40<={xl22851>>1,ea5c9d9[48]};lqd5a02<=ea5c9d9[49];twad012<=ea5c9d9[50];fn40499<={yx51ee9>>1,ea5c9d9[51]};ep12675<={pf7ba65>>1,ea5c9d9[52]};pu933ac<=ea5c9d9[53];zm99d62<=ea5c9d9[54];eaceb12<=ea5c9d9[55];mr75890<=ea5c9d9[56];cm62429<={ay77c61>>1,ea5c9d9[57]};ir12148<=ea5c9d9[58];wl90a44<=ea5c9d9[59];ep85224<=ea5c9d9[60];ir29124<=ea5c9d9[61];lq48925<=ea5c9d9[62];ie2495d<={ec2b5ee>>1,ea5c9d9[63]};hq25740<={rtd7b87>>1,ea5c9d9[64]};ym2ba03<=ea5c9d9[65];jc5d019<=ea5c9d9[66];mre80cb<=ea5c9d9[67];th4065d<=ea5c9d9[68];zz32ee<=ea5c9d9[69];zz19777<=ea5c9d9[70];iccbbbf<=ea5c9d9[71];tueefc2<={fca86db>>1,ea5c9d9[72]};ui77e13<=ea5c9d9[73];fpbf098<=ea5c9d9[74];wjf84c7<=ea5c9d9[75];zz131e7<={qgdb280>>1,ea5c9d9[76]};aa98f3e<=ea5c9d9[77];pfc79f0<=ea5c9d9[78];sj3cf86<=ea5c9d9[79];mr7090a<=ea5c9d9[80];ou3e1ad<=ea5c9d9[81];osf0d69<=ea5c9d9[82];ls35a4a<={ldfc20f>>1,ea5c9d9[83]};ngad253<=ea5c9d9[84];zk6929b<=ea5c9d9[85];qg494db<=ea5c9d9[86];fn4a6d8<=ea5c9d9[87];ww536c7<={nr7e728>>1,ea5c9d9[88]};fp9b638<=ea5c9d9[89];xweb89d<=ea5c9d9[90];pfd8e30<=ea5c9d9[91];fnc7186<=ea5c9d9[92];vx38c37<=ea5c9d9[93];uvc61bf<=ea5c9d9[94];je30dfd<=ea5c9d9[95];xy86feb<=ea5c9d9[96];fp37f5a<=ea5c9d9[97];phbfad6<=ea5c9d9[98];uvfd6b6<=ea5c9d9[99];hoeb5b4<=ea5c9d9[100];bl5ada2<=ea5c9d9[101];ald6d17<=ea5c9d9[102];mgb68bd<=ea5c9d9[103];sjb45e8<=ea5c9d9[104];nga2f44<=ea5c9d9[105];wl17a23<=ea5c9d9[106];ipe88ea<={cm49f54>>1,ea5c9d9[107]};ip44754<={bl4faa1>>1,ea5c9d9[108]};oh23aa4<=ea5c9d9[109];ep1d525<=ea5c9d9[110];wwea92d<=ea5c9d9[111];end -always@* begin ec2b93b[2047]<=ou1a400;ec2b93b[2046]<=xjd2000;ec2b93b[2044]<=mt90006;ec2b93b[2040]<=gd80035;ec2b93b[2032]<=nt32741[0];ec2b93b[2028]<=jr28f91;ec2b93b[2017]<=qtedba5;ec2b93b[2008]<=qi3e472;ec2b93b[1988]<=osdb6ca;ec2b93b[1987]<=su6dd2c;ec2b93b[1969]<=gbf2391;ec2b93b[1928]<=qgdb280[0];ec2b93b[1926]<=offdb74;ec2b93b[1891]<=bn91c8d;ec2b93b[1809]<=jcca005;ec2b93b[1805]<=wj4ee7d;ec2b93b[1804]<=lqe4402;ec2b93b[1803]<=fpa0744;ec2b93b[1761]<=ph2864e[0];ec2b93b[1748]<=ld6115a;ec2b93b[1734]<=tj8e46e;ec2b93b[1727]<=ecfce5;ec2b93b[1696]<=rtd7b87[0];ec2b93b[1668]<=cb8ffbc[0];ec2b93b[1633]<=hb71e49;ec2b93b[1587]<=sw8ddce;ec2b93b[1571]<=fn5002b;ec2b93b[1562]<=yk773ec;ec2b93b[1560]<=hd22013;ec2b93b[1558]<=ignore_pkt;ec2b93b[1555]<=bl4faa1[0];ec2b93b[1550]<=jpdd6e0[0];ec2b93b[1531]<=mgb9e84;ec2b93b[1475]<=ph193b9;ec2b93b[1464]<=cmf5978;ec2b93b[1448]<=gd8ad7;ec2b93b[1420]<=ea72377;ec2b93b[1406]<=nr7e728[0];ec2b93b[1345]<=twbdc3f;ec2b93b[1288]<=wj7fde4;ec2b93b[1287]<=uv70fda;ec2b93b[1242]<=anbe308;ec2b93b[1218]<=ir8f24f;ec2b93b[1131]<=ldfc20f[0];ec2b93b[1126]<=zx6ee71;ec2b93b[1094]<=cb8015f;ec2b93b[1076]<=zkcfb09;ec2b93b[1072]<=uk1009e;ec2b93b[1069]<=mt1d13e;ec2b93b[1063]<=me7d50e;ec2b93b[1056]<=ukbc914[0];ec2b93b[1055]<=xy3f6a8;ec2b93b[1052]<=ofdc1d5;ec2b93b[1028]<=qva147b;ec2b93b[1023]<=mtbb27f;ec2b93b[1014]<=ice51f2;ec2b93b[994]<=xy1b6d9;ec2b93b[902]<=ipc9dcf;ec2b93b[901]<=gb5b83a[0];ec2b93b[880]<=ou9830b;ec2b93b[874]<=hq8c22b;ec2b93b[863]<=al41f9c;ec2b93b[848]<=ec2b5ee[0];ec2b93b[834]<=xj4a3fe;ec2b93b[816]<=goce3c9;ec2b93b[793]<=lf91bb9;ec2b93b[777]<=cm49f54[0];ec2b93b[775]<=uk3badc;ec2b93b[765]<=jpf3947;ec2b93b[732]<=aa3eb2f;ec2b93b[643]<=dmee1fb;ec2b93b[621]<=ay77c61[0];ec2b93b[565]<=qi2bf08;ec2b93b[528]<=xwfef24;ec2b93b[527]<=gq87ed5;ec2b93b[514]<=xy1428f;ec2b93b[497]<=me436db;ec2b93b[450]<=lqeb707;ec2b93b[437]<=hof1845;ec2b93b[431]<=wl83f3;ec2b93b[417]<=ph947f;ec2b93b[408]<=aab9c79;ec2b93b[388]<=vi7927d;ec2b93b[387]<=uve775b;ec2b93b[366]<=rv27d65;ec2b93b[310]<=wj65df1;ec2b93b[282]<=co57e1;ec2b93b[257]<=xl22851[0];ec2b93b[248]<=fca86db[0];ec2b93b[225]<=qg68a93;ec2b93b[215]<=nee107e;ec2b93b[208]<=zx6128f;ec2b93b[204]<=qg7738f;ec2b93b[193]<=vi7ceeb;ec2b93b[183]<=yx44fac[0];ec2b93b[157]<=en54381;ec2b93b[155]<=ic4cbbe;ec2b93b[141]<=aa3bc5d;ec2b93b[128]<=aa2450a;ec2b93b[124]<=bydaa1b;ec2b93b[112]<=cb7568;ec2b93b[104]<=dzec251;ec2b93b[96]<=sj804f1;ec2b93b[91]<=kde89f5;ec2b93b[78]<=uiea870;ec2b93b[77]<=fne9977;ec2b93b[64]<=lqe48a1;ec2b93b[62]<=jcfb543;ec2b93b[56]<=yke0ead;ec2b93b[38]<=vvdd32e;ec2b93b[19]<=pf7ba65[0];ec2b93b[9]<=yx51ee9[0];end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[3]};wj70363<=ea5c9d9[4];vx81b1c<=ea5c9d9[5];sjd8e7<=ea5c9d9[6];su56299<={en41ecd>>1,ea5c9d9[7]};kf8a644<={ksf66d>>1,ea5c9d9[8]};ls99128<={nr7b369>>1,ea5c9d9[9]};ip44a1f<={ipd9b4f>>1,ea5c9d9[10]};db287eb<={blcda7c>>1,ea5c9d9[11]};uk1faf8<={qg6d3e7>>1,ea5c9d9[12]};xwebe0c<={xw69f39>>1,ea5c9d9[13]};mrf831e<={zx4f9ca>>1,ea5c9d9[14]};lfc7a1<={xw7ce56>>1,ea5c9d9[15]};ps63d0e<=ea5c9d9[16];ls1e873<=ea5c9d9[17];byf439b<=ea5c9d9[18];bl4ad57<={fc30be7>>1,ea5c9d9[19]};lf28710<=ea5c9d9[20];ic43887<=ea5c9d9[21];ipe21c7<={yx44fac>>1,ea5c9d9[22]};co10e3c<=ea5c9d9[23];ym871e0<=ea5c9d9[24];rv38f01<=ea5c9d9[25];xw5d016<=ea5c9d9[26];ou50e2<=ea5c9d9[27];rg76258<={pfcd085>>1,ea5c9d9[28]};ba8961c<={dm42171>>1,ea5c9d9[29]};of4b0e2<=ea5c9d9[30];rg58715<=ea5c9d9[31];yxc38ab<=ea5c9d9[32];nt1c55c<=ea5c9d9[33];she2ae7<=ea5c9d9[34];anab9e9<={vic51ba>>1,ea5c9d9[35]};yk5cf4d<=ea5c9d9[36];yxe7a68<=ea5c9d9[37];hd3d345<=ea5c9d9[38];jpe9a2e<=ea5c9d9[39];ps4d176<=ea5c9d9[40];bl45d90<={tjb0ffa>>1,ea5c9d9[41]};rg76439<={ls3feb8>>1,ea5c9d9[42]};yz90e5b<={ykfae11>>1,ea5c9d9[43]};sw872dc<=ea5c9d9[44];ux396e1<=ea5c9d9[45];gocb70c<=ea5c9d9[46];gb5b861<=ea5c9d9[47];ofdc30d<=ea5c9d9[48];zke186d<=ea5c9d9[49];lfc36a<=ea5c9d9[50];rt61b56<=ea5c9d9[51];yzdab6<=ea5c9d9[52];su6d5b5<=ea5c9d9[53];of6ada9<=ea5c9d9[54];go56d4d<=ea5c9d9[55];ieb6a69<=ea5c9d9[56];ntb5348<=ea5c9d9[57];fa4d230<={cm6db6e>>1,ea5c9d9[58]};tu69182<=ea5c9d9[59];vi48c13<=ea5c9d9[60];je304d9<={fn6e000>>1,ea5c9d9[61]};sw826ca<=ea5c9d9[62];vx13651<=ea5c9d9[63];qtd9476<={vk2038d>>1,ea5c9d9[64]};al51dab<={jee35b>>1,ea5c9d9[65]};ps76ae6<={qi8d6df>>1,ea5c9d9[66]};gdab996<={kd5b7c6>>1,ea5c9d9[67]};ui5ccb5<=ea5c9d9[68];the65a8<=ea5c9d9[69];pu96a36<={enc6855>>1,ea5c9d9[70]};end -always@* begin ec2b93b[2047]<=mtbb27f;ec2b93b[2046]<=ou1a400;ec2b93b[2045]<=enc6855[0];ec2b93b[2044]<=ald93fd[0];ec2b93b[2041]<=xjd2000;ec2b93b[2035]<=mt90006;ec2b93b[2029]<=wl85b6d;ec2b93b[2022]<=gd80035;ec2b93b[2011]<=cm6db6e[0];ec2b93b[1996]<=en41ecd[0];ec2b93b[1974]<=kq6db70;ec2b93b[1945]<=ksf66d[0];ec2b93b[1943]<=go465d9;ec2b93b[1922]<=cmf5978;ec2b93b[1901]<=ww6db80;ec2b93b[1842]<=nr7b369[0];ec2b93b[1839]<=db32ec9;ec2b93b[1797]<=rx_fifo_full;ec2b93b[1791]<=kd5b7c6[0];ec2b93b[1778]<=xjc2232;ec2b93b[1776]<=yx44fac[0];ec2b93b[1759]<=vk2038d[0];ec2b93b[1755]<=fn6e000[0];ec2b93b[1637]<=ipd9b4f[0];ec2b93b[1631]<=wy9764e;ec2b93b[1622]<=zx4f9ca[0];ec2b93b[1546]<=ignore_pkt;ec2b93b[1535]<=osdbe34;ec2b93b[1531]<=kd4e16d;ec2b93b[1509]<=hq11197;ec2b93b[1504]<=rv27d65;ec2b93b[1471]<=jee35b[0];ec2b93b[1468]<=mt1d13e;ec2b93b[1463]<=kd70006;ec2b93b[1391]<=hocace4;ec2b93b[1312]<=zz8b146;ec2b93b[1226]<=blcda7c[0];ec2b93b[1215]<=epbb270;ec2b93b[1197]<=xw7ce56[0];ec2b93b[1153]<=ph28dd2;ec2b93b[1044]<=pfcd085[0];ec2b93b[1037]<=tjba587;ec2b93b[1023]<=reset_n;ec2b93b[1022]<=zkdf1a1;ec2b93b[1014]<=mr70b6d;ec2b93b[971]<=qi88cbb;ec2b93b[961]<=aa3eb2f;ec2b93b[895]<=qi8d6df[0];ec2b93b[889]<=zmb8446;ec2b93b[888]<=kde89f5;ec2b93b[879]<=cb80034;ec2b93b[811]<=xw69f39[0];ec2b93b[765]<=alc9c2d;ec2b93b[734]<=fc30be7[0];ec2b93b[695]<=ux3959c;ec2b93b[656]<=dz71628;ec2b93b[576]<=vic51ba[0];ec2b93b[518]<=fp374b0;ec2b93b[444]<=pfd7088;ec2b93b[405]<=qg6d3e7[0];ec2b93b[382]<=ofd9385;ec2b93b[347]<=kde72b3;ec2b93b[328]<=ec2e2c5;ec2b93b[259]<=kq46e96;ec2b93b[222]<=ykfae11[0];ec2b93b[164]<=an85c58;ec2b93b[111]<=ls3feb8[0];ec2b93b[82]<=co10b8b;ec2b93b[55]<=tjb0ffa[0];ec2b93b[41]<=dm42171[0];ec2b93b[27]<=fnd2c3f;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[1]};ipd608e<=ea5c9d9[2];xlb0474<=ea5c9d9[3];aa823a6<={xw588d7>>1,ea5c9d9[4]};fc11d31<={osc46ba>>1,ea5c9d9[5]};zz8e98a<=ea5c9d9[6];zx74c56<={aa21dd6>>1,ea5c9d9[7]};end -always@* begin ec2b93b[2047]<=os6dafc[0];ec2b93b[2046]<=hof1623;ec2b93b[2044]<=fp8b11a;ec2b93b[2040]<=xw588d7[0];ec2b93b[2033]<=osc46ba[0];ec2b93b[2019]<=kf235d0;ec2b93b[1991]<=aa21dd6[0];ec2b93b[1023]<=wjedb5f;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[0]};ymbc546<=ea5c9d9[1];doa8c29<=ea5c9d9[2];su4614a<={wjc9dd9>>1,ea5c9d9[3]};tw30a51<={jp50046>>1,ea5c9d9[4]};an8528b<={cb8de2>>1,ea5c9d9[5]};end -always@* begin ec2b93b[2047]<=rvc2c9;ec2b93b[2046]<=ui593bb;ec2b93b[2044]<=wjc9dd9[0];ec2b93b[2040]<=jp50046[0];ec2b93b[2032]<=cb8de2[0];ec2b93b[1023]<=ykc1859[0];end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[1]};ou1f200<=ea5c9d9[2];xjf9000<=ea5c9d9[3];ld40036<={osd15dd>>1,ea5c9d9[4]};codb0<={zk5774c>>1,ea5c9d9[5]};xl6d81<=ea5c9d9[6];ep36c0e<=ea5c9d9[7];ecb6074<=ea5c9d9[8];lf81d0e<={suf0299>>1,ea5c9d9[9]};xj743ba<={go53231>>1,ea5c9d9[10]};cba1dd6<=ea5c9d9[11];end -always@* begin ec2b93b[2047]<=sj23ba9[0];ec2b93b[2046]<=kf1dd4d;ec2b93b[2044]<=pseea6c;ec2b93b[2040]<=osd15dd[0];ec2b93b[2033]<=zk5774c[0];ec2b93b[2018]<=cbbba62;ec2b93b[1988]<=fne98a7;ec2b93b[1929]<=ic4c53e;ec2b93b[1811]<=suf0299[0];ec2b93b[1574]<=go53231[0];ec2b93b[1101]<=fc99188;ec2b93b[1023]<=gq24775;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[6]};bn9ef58<={dzcdac4>>1,ea5c9d9[7]};zmbd63c<={go6d627>>1,ea5c9d9[8]};vieb1e2<=ea5c9d9[9];ho58f12<=ea5c9d9[10];thc7892<=ea5c9d9[11];yz3c496<=ea5c9d9[12];an125a4<={ir39c8e>>1,ea5c9d9[13]};ie92d24<=ea5c9d9[14];zm96921<=ea5c9d9[15];ana485d<={zz91d49>>1,ea5c9d9[16]};qi242ec<=ea5c9d9[17];sw21761<=ea5c9d9[18];zk5d84a<={eca93b4>>1,ea5c9d9[19]};hbec252<=ea5c9d9[20];fn61297<=ea5c9d9[21];lf94bf<=ea5c9d9[22];rt4a5fe<=ea5c9d9[23];ps52ff7<=ea5c9d9[24];co97fbb<=ea5c9d9[25];fpbfdd9<=ea5c9d9[26];ep36c0e<={fne98a7>>1,ea5c9d9[27]};ecb6074<={ic4c53e>>1,ea5c9d9[28]};gdbb395<=ea5c9d9[29];end9cad<=ea5c9d9[30];ww72b61<={ep8f4f2>>1,ea5c9d9[31]};ngad844<={gbd3cad>>1,ea5c9d9[32]};nr61113<={yxf2b6e>>1,ea5c9d9[33]};wl889f<=ea5c9d9[34];en444fd<=ea5c9d9[35];jr227ec<=ea5c9d9[36];nt13f66<=ea5c9d9[37];oh9fb37<=ea5c9d9[38];alfd9bd<=ea5c9d9[39];jpecded<={kdfdc02>>1,ea5c9d9[40]};ps66f6e<={jcee015>>1,ea5c9d9[41]};nt37b73<=ea5c9d9[42];zmbdb9e<=ea5c9d9[43];aledcf3<=ea5c9d9[44];xj6e79c<=ea5c9d9[45];xw73ce6<=ea5c9d9[46];db9e732<=ea5c9d9[47];zm9ccb6<={ayd4afe>>1,ea5c9d9[48]};hbe65b2<=ea5c9d9[49];xl32d96<=ea5c9d9[50];ba96cb6<=ea5c9d9[51];ukb65b3<={necf64d>>1,ea5c9d9[52]};hqb2d99<=ea5c9d9[53];do96cca<=ea5c9d9[54];ksb6653<={gbc9afd>>1,ea5c9d9[55]};ecb3299<=ea5c9d9[56];je994c9<=ea5c9d9[57];lqca64b<=ea5c9d9[58];su5325b<=ea5c9d9[59];xy992d8<=ea5c9d9[60];uvc96c3<=ea5c9d9[61];kd4b61c<=ea5c9d9[62];mr5b0e5<=ea5c9d9[63];hbd872c<=ea5c9d9[64];wjc3967<={uv4e5c7>>1,ea5c9d9[65]};xl1cb3c<={me72e3d>>1,ea5c9d9[66]};ose59e6<={qi971e8>>1,ea5c9d9[67]};an2cf30<=ea5c9d9[68];ui67984<=ea5c9d9[69];an3cc21<=ea5c9d9[70];end -always@* begin ec2b93b[2047]<=mg8dfdb;ec2b93b[2046]<=cz6fed9;ec2b93b[2044]<=qt7f6cd;ec2b93b[2040]<=fafb66d;ec2b93b[2032]<=uidb36b;ec2b93b[2018]<=qt700aa;ec2b93b[2017]<=shd9b58[0];ec2b93b[1989]<=yz80554;ec2b93b[1987]<=dzcdac4[0];ec2b93b[1931]<=yx5490f;ec2b93b[1927]<=go6d627[0];ec2b93b[1865]<=zz91d49[0];ec2b93b[1859]<=yxf2b6e[0];ec2b93b[1844]<=ld7b26b;ec2b93b[1815]<=uxa487c;ec2b93b[1806]<=xj6b139;ec2b93b[1682]<=db8ea4e;ec2b93b[1674]<=lqe4c7d;ec2b93b[1671]<=dz6e910;ec2b93b[1640]<=shd935f;ec2b93b[1582]<=uk243e4;ec2b93b[1565]<=xw589ce;ec2b93b[1488]<=ep8f4f2[0];ec2b93b[1485]<=qi873d9;ec2b93b[1326]<=ay4c52f;ec2b93b[1317]<=wya9b1c;ec2b93b[1300]<=mr54301;ec2b93b[1297]<=uv4e5c7[0];ec2b93b[1295]<=zx74887;ec2b93b[1233]<=gbc9afd[0];ec2b93b[1210]<=ic4c53e[0];ec2b93b[1189]<=cm6d7e0;ec2b93b[1172]<=ea49da1;ec2b93b[1116]<=db3752b;ec2b93b[1105]<=gdaba9a;ec2b93b[1092]<=qi971e8[0];ec2b93b[1087]<=wy10fee;ec2b93b[1082]<=tx_fifoavail;ec2b93b[1023]<=lqf1bfb;ec2b93b[1009]<=jcee015[0];ec2b93b[932]<=ww723a9;ec2b93b[929]<=gbd3cad[0];ec2b93b[922]<=necf64d[0];ec2b93b[837]<=vv6bf6a;ec2b93b[744]<=zz223d3;ec2b93b[742]<=suf0e7b;ec2b93b[663]<=zz98a5;ec2b93b[648]<=qi571b;ec2b93b[605]<=fne98a7[0];ec2b93b[594]<=dm7684c;ec2b93b[586]<=eca93b4[0];ec2b93b[552]<=wj60366;ec2b93b[547]<=db3d01e;ec2b93b[546]<=me72e3d[0];ec2b93b[543]<=wla443f;ec2b93b[504]<=kdfdc02[0];ec2b93b[466]<=suce475;ec2b93b[418]<=fa4d7ed;ec2b93b[372]<=xwe447a;ec2b93b[371]<=vife1cf;ec2b93b[331]<=qt75363;ec2b93b[324]<=irab02b;ec2b93b[297]<=qt4ed09;ec2b93b[273]<=nrc7a03;ec2b93b[252]<=ri3fb80;ec2b93b[233]<=ir39c8e[0];ec2b93b[185]<=ayd4afe[0];ec2b93b[162]<=kq53558;ec2b93b[136]<=hqb8f40;ec2b93b[126]<=co87f70;ec2b93b[116]<=ph27391;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[3]};fp32995<=ea5c9d9[4];ph94cae<=ea5c9d9[5];db32bb0<={yk56400>>1,ea5c9d9[6]};vieb1e2<=ea5c9d9[7];uxaec34<=ea5c9d9[8];dm761a5<=ea5c9d9[9];dbb0d2b<=ea5c9d9[10];ba8695f<=ea5c9d9[11];ie34afa<=ea5c9d9[12];rva57d1<=ea5c9d9[13];aa2be8f<=ea5c9d9[14];bl5f479<=ea5c9d9[15];uifa3ce<=ea5c9d9[16];kqd1e71<=ea5c9d9[17];mt8f388<=ea5c9d9[18];by79c45<=ea5c9d9[19];osce22b<=ea5c9d9[20];th71159<=ea5c9d9[21];hdbac11<={os6dafc>>1,ea5c9d9[22]};qi2b38e<=ea5c9d9[23];su59c70<=ea5c9d9[24];ayce380<=ea5c9d9[25];ld71c01<=ea5c9d9[26];ph8e00f<=ea5c9d9[27];an803fc<={hb40a02>>1,ea5c9d9[28]};ba1fe4<=ea5c9d9[29];yx7f918<={rt405c7>>1,ea5c9d9[30]};pffc8c4<=ea5c9d9[31];xwe4627<=ea5c9d9[32];yz2313b<=ea5c9d9[33];cb189dc<=ea5c9d9[34];cmc4ee4<=ea5c9d9[35];xl27721<=ea5c9d9[36];sw3b90e<=ea5c9d9[37];shdc870<=ea5c9d9[38];bye4384<=ea5c9d9[39];co21c23<=ea5c9d9[40];hqe118<=ea5c9d9[41];of708c3<=ea5c9d9[42];nt8461d<=ea5c9d9[43];cb230ee<=ea5c9d9[44];ir18774<=ea5c9d9[45];enc3ba5<=ea5c9d9[46];ir1dd2c<=ea5c9d9[47];zkee964<=ea5c9d9[48];th74b23<=ea5c9d9[49];bna591f<=ea5c9d9[50];an2c8fe<=ea5c9d9[51];yz23fa7<={kqf5e19>>1,ea5c9d9[52]};ec1fd3d<=ea5c9d9[53];xwfe9e9<=ea5c9d9[54];faf4f4a<=ea5c9d9[55];ria7a53<=ea5c9d9[56];db3d29b<=ea5c9d9[57];dze94de<=ea5c9d9[58];zx4a6f7<=ea5c9d9[59];ay537bf<=ea5c9d9[60];lf9bdf8<=ea5c9d9[61];aydefc7<=ea5c9d9[62];end -always@* begin ec2b93b[2047]<=mg8dfdb;ec2b93b[2046]<=tx_sndpausreq;ec2b93b[2044]<=tx_sndpaustim[0];ec2b93b[2040]<=co1f530;ec2b93b[2033]<=cmfa980;ec2b93b[2019]<=yk56400[0];ec2b93b[1991]<=xj6b139;ec2b93b[1934]<=ls30000;ec2b93b[1929]<=rib79b4;ec2b93b[1898]<=wj4e2f6;ec2b93b[1821]<=mg760;ec2b93b[1810]<=ecbcda2;ec2b93b[1749]<=jr69e9;ec2b93b[1707]<=ng2f056;ec2b93b[1666]<=hb40a02[0];ec2b93b[1630]<=zm14b38;ec2b93b[1595]<=cz601a7;ec2b93b[1572]<=mt3688f;ec2b93b[1506]<=hd385a0;ec2b93b[1450]<=kqeaf42;ec2b93b[1440]<=rg76bbd;ec2b93b[1384]<=mtaed77;ec2b93b[1370]<=os6dafc[0];ec2b93b[1366]<=tx_discfrm;ec2b93b[1284]<=ie5017;ec2b93b[1212]<=dba59c2;ec2b93b[1202]<=ks98c6f;ec2b93b[1174]<=jebd235;ec2b93b[1170]<=vk256ef;ec2b93b[1142]<=ksd3d;ec2b93b[1125]<=kf1da82;ec2b93b[1097]<=lf2251b;ec2b93b[1041]<=rib8fa4;ec2b93b[1023]<=lqf1bfb;ec2b93b[964]<=jpc2d06;ec2b93b[949]<=nre9c5e;ec2b93b[853]<=ea62978;ec2b93b[833]<=os49028;ec2b93b[815]<=qi82967;ec2b93b[753]<=su670b4;ec2b93b[720]<=jea8807;ec2b93b[714]<=db38e5b;ec2b93b[692]<=bnb5dae;ec2b93b[685]<=tja5e0a;ec2b93b[601]<=jp7e997;ec2b93b[587]<=hoc5078;ec2b93b[585]<=ng1c25;ec2b93b[562]<=ba83b50;ec2b93b[520]<=rt405c7[0];ec2b93b[474]<=uk34f4e;ec2b93b[407]<=hb5052c;ec2b93b[376]<=qv2ce16;ec2b93b[357]<=cb2930a;ec2b93b[300]<=uxbb0ba;ec2b93b[293]<=zkc5c3e;ec2b93b[292]<=kqf5e19[0];ec2b93b[281]<=kqf076a;ec2b93b[237]<=hqa7a71;ec2b93b[203]<=yx6a0a5;ec2b93b[146]<=fp946f5;ec2b93b[140]<=oh23c1d;ec2b93b[70]<=mta4783;ec2b93b[35]<=pfc7d23;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[2]};cme5a0a<={su4ce51>>1,ea5c9d9[3]};jr2d050<={ww67289>>1,ea5c9d9[4]};ep36c0e<=ea5c9d9[5];ecb6074<=ea5c9d9[6];iea1cc<=ea5c9d9[7];end -always@* begin ec2b93b[2047]<=cze82fe;ec2b93b[2046]<=qt417f5[0];ec2b93b[2044]<=su4ce51[0];ec2b93b[2040]<=ww67289[0];ec2b93b[2033]<=fne98a7;ec2b93b[2019]<=ic4c53e;ec2b93b[1990]<=hq8911d;ec2b93b[1023]<=db3d05f;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[1]};lqf49e3<=ea5c9d9[2];oha4f1b<=ea5c9d9[3];bn278dc<=ea5c9d9[4];mt8f388<=ea5c9d9[5];ba1b9e6<={ho57372>>1,ea5c9d9[6]};ofe799c<={blcdc91>>1,ea5c9d9[7]};pfe672d<={qg7247e>>1,ea5c9d9[8]};ls9cb74<={lf91f88>>1,ea5c9d9[9]};nt2dd10<={ld7e234>>1,ea5c9d9[10]};dz74437<={ec88d3a>>1,ea5c9d9[11]};sw10df2<={ie34e88>>1,ea5c9d9[12]};fp37c82<={hq3a20a>>1,ea5c9d9[13]};qtf20b5<={ou88299>>1,ea5c9d9[14]};co82d6d<={iea644>>1,ea5c9d9[15]};lfb5b47<={ng99108>>1,ea5c9d9[16]};ui6d1fa<={gb4421f>>1,ea5c9d9[17]};lq47e88<={qv87e1>>1,ea5c9d9[18]};qgfa213<={qi1f860>>1,ea5c9d9[19]};sw884c9<={jce180e>>1,ea5c9d9[20]};tu42648<=ea5c9d9[21];db13243<=ea5c9d9[22];end -always@* begin ec2b93b[2047]<=tx_fifodata[0];ec2b93b[2046]<=tx_fifoeof;ec2b93b[2044]<=tx_fifoempty;ec2b93b[2040]<=tx_fifoctrl;ec2b93b[2032]<=ea62978;ec2b93b[2017]<=ho57372[0];ec2b93b[1987]<=blcdc91[0];ec2b93b[1927]<=qg7247e[0];ec2b93b[1865]<=ng99108[0];ec2b93b[1806]<=lf91f88[0];ec2b93b[1682]<=gb4421f[0];ec2b93b[1565]<=ld7e234[0];ec2b93b[1317]<=qv87e1[0];ec2b93b[1172]<=jce180e[0];ec2b93b[1082]<=ec88d3a[0];ec2b93b[1023]<=tx_discfrm;ec2b93b[932]<=iea644[0];ec2b93b[594]<=gb60396;ec2b93b[586]<=qi1f860[0];ec2b93b[466]<=ou88299[0];ec2b93b[297]<=ntc072;ec2b93b[233]<=hq3a20a[0];ec2b93b[116]<=ie34e88[0];end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[5]};tud5982<={wld91c>>1,ea5c9d9[6]};bn9ef58<={dzcdac4>>1,ea5c9d9[7]};je1e93c<={tx_fifodata>>1,ea5c9d9[8]};lqf49e3<=ea5c9d9[9];oha4f1b<=ea5c9d9[10];thc7892<=ea5c9d9[11];qtc6532<={tx_sndpaustim>>1,ea5c9d9[12]};xj6b194<=ea5c9d9[13];bn278dc<=ea5c9d9[14];an2999d<=ea5c9d9[15];ne66761<={nr716da>>1,ea5c9d9[16]};phb5d9e<=ea5c9d9[17];fnf6bb3<=ea5c9d9[18];zmbd63c<={go6d627>>1,ea5c9d9[19]};ana485d<={zz91d49>>1,ea5c9d9[20]};zk5d84a<={eca93b4>>1,ea5c9d9[21]};hbec252<=ea5c9d9[22];db32bb0<={yk56400>>1,ea5c9d9[23]};an125a4<={ir39c8e>>1,ea5c9d9[24]};hdbac11<={os6dafc>>1,ea5c9d9[25]};dm761a5<=ea5c9d9[26];ui59c6a<=ea5c9d9[27];jp71a81<={aye0014>>1,ea5c9d9[28]};al6a078<={ec508>>1,ea5c9d9[29]};end -always@* begin ec2b93b[2047]<=lqf1bfb;ec2b93b[2046]<=mg8dfdb;ec2b93b[2044]<=qt7f6cd;ec2b93b[2040]<=cz6fed9;ec2b93b[2032]<=uxa1b23[0];ec2b93b[2017]<=wld91c[0];ec2b93b[1987]<=dzcdac4[0];ec2b93b[1926]<=tx_fifodata[0];ec2b93b[1804]<=tx_fifoeof;ec2b93b[1803]<=yk56400[0];ec2b93b[1560]<=tx_fifoempty;ec2b93b[1558]<=ir39c8e[0];ec2b93b[1550]<=nr716da[0];ec2b93b[1072]<=tx_fifoavail;ec2b93b[1069]<=os6dafc[0];ec2b93b[1052]<=uidb36b;ec2b93b[1023]<=baa7b6d;ec2b93b[901]<=ea49da1;ec2b93b[775]<=psee2db;ec2b93b[732]<=ec508[0];ec2b93b[450]<=eca93b4[0];ec2b93b[387]<=tx_fifoctrl;ec2b93b[366]<=aye0014[0];ec2b93b[225]<=zz91d49[0];ec2b93b[193]<=tx_sndpausreq;ec2b93b[183]<=vx3b00;ec2b93b[112]<=go6d627[0];ec2b93b[96]<=tx_sndpaustim[0];ec2b93b[91]<=mg760;ec2b93b[56]<=fafb66d;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[0]};ksacbe6<={hdatain>>1,ea5c9d9[1]};yx65f30<=ea5c9d9[2];ba2f984<=ea5c9d9[3];ho7cc23<=ea5c9d9[4];nre611b<=ea5c9d9[5];lf846f3<={lq4d15b>>1,ea5c9d9[6]};mt2379e<=ea5c9d9[7];kqde7a3<={ayc1110>>1,ea5c9d9[8]};rtf3d18<=ea5c9d9[9];hd9e8c6<=ea5c9d9[10];vif4637<=ea5c9d9[11];ksa31ba<=ea5c9d9[12];ux18dd0<=ea5c9d9[13];shc6e84<=ea5c9d9[14];lfba127<={zz2d9e0>>1,ea5c9d9[15]};rv849fa<={ui67832>>1,ea5c9d9[16]};vx27eb8<={cme0c8c>>1,ea5c9d9[17]};kqfae3b<={bn32307>>1,ea5c9d9[18]};hbd71d8<=ea5c9d9[19];jpc7633<={oha44e6>>1,ea5c9d9[20]};thd8cf9<={hd139ae>>1,ea5c9d9[21]};ir33e75<={vve6bba>>1,ea5c9d9[22]};hbf9d64<={iraeebb>>1,ea5c9d9[23]};ip75938<={hdbaee9>>1,ea5c9d9[24]};ouac9c5<={jpd774e>>1,ea5c9d9[25]};fn64e28<=ea5c9d9[26];xl38a36<={dze9da7>>1,ea5c9d9[27]};xl28dba<={jc769f4>>1,ea5c9d9[28]};wl36eb0<={hqa7d15>>1,ea5c9d9[29]};bnbac23<={nef4558>>1,ea5c9d9[30]};dbb08f4<={mg15613>>1,ea5c9d9[31]};an23d3e<={rg584cc>>1,ea5c9d9[32]};dmf4fab<={zz1331f>>1,ea5c9d9[33]};co3eadb<={wjcc7f2>>1,ea5c9d9[34]};suf56d8<=ea5c9d9[35];ohab6c0<=ea5c9d9[36];sudb024<={czf28cb>>1,ea5c9d9[37]};psc0907<={swa32e7>>1,ea5c9d9[38]};qi241db<={uicb9c7>>1,ea5c9d9[39]};oh76ca<={ale71c0>>1,ea5c9d9[40]};ykdb2a9<={fnc7027>>1,ea5c9d9[41]};bycaa45<={psc09fe>>1,ea5c9d9[42]};coa9157<={tj27f9b>>1,ea5c9d9[43]};bl455cb<={jcfe6fa>>1,ea5c9d9[44]};je2ae5e<={dzf37d3>>1,ea5c9d9[45]};ecb979a<={psdf4ff>>1,ea5c9d9[46]};sh5e680<={yxd3fd1>>1,ea5c9d9[47]};dzf3404<=ea5c9d9[48];cb9a027<=ea5c9d9[49];dmd013c<=ea5c9d9[50];xy4f1d<={ym8da48>>1,ea5c9d9[51]};jr278eb<=ea5c9d9[52];qv3c75f<=ea5c9d9[53];end -always@* begin ec2b93b[2047]<=hdatain[0];ec2b93b[2046]<=hread_n;ec2b93b[2044]<=hwrite_n;ec2b93b[2040]<=hcs_n;ec2b93b[2032]<=ie552b;ec2b93b[2016]<=lq4d15b[0];ec2b93b[1985]<=os68ada;ec2b93b[1925]<=fnc7027[0];ec2b93b[1922]<=ayc1110[0];ec2b93b[1802]<=psc09fe[0];ec2b93b[1796]<=cb8880;ec2b93b[1556]<=tj27f9b[0];ec2b93b[1544]<=qg78222;ec2b93b[1505]<=uicb9c7[0];ec2b93b[1324]<=ayff46d;ec2b93b[1316]<=dze9da7[0];ec2b93b[1200]<=ym8da48[0];ec2b93b[1169]<=hqa7d15[0];ec2b93b[1163]<=rg584cc[0];ec2b93b[1118]<=zk63f94;ec2b93b[1106]<=iraeebb[0];ec2b93b[1065]<=jcfe6fa[0];ec2b93b[1041]<=cme0c8c[0];ec2b93b[1040]<=of7a6e5;ec2b93b[1023]<=haddr[0];ec2b93b[962]<=ale71c0[0];ec2b93b[752]<=swa32e7[0];ec2b93b[707]<=ne69209;ec2b93b[662]<=yz9fe8d;ec2b93b[658]<=epbba76;ec2b93b[600]<=gofa369;ec2b93b[584]<=jc769f4[0];ec2b93b[581]<=mg15613[0];ec2b93b[559]<=wjcc7f2[0];ec2b93b[553]<=vve6bba[0];ec2b93b[520]<=ui67832[0];ec2b93b[376]<=czf28cb[0];ec2b93b[353]<=su6d241;ec2b93b[331]<=yxd3fd1[0];ec2b93b[329]<=jpd774e[0];ec2b93b[290]<=nef4558[0];ec2b93b[279]<=zz1331f[0];ec2b93b[276]<=hd139ae[0];ec2b93b[260]<=zz2d9e0[0];ec2b93b[188]<=mg1fca3;ec2b93b[165]<=psdf4ff[0];ec2b93b[164]<=hdbaee9[0];ec2b93b[138]<=oha44e6[0];ec2b93b[130]<=mrdcb67;ec2b93b[82]<=dzf37d3[0];ec2b93b[69]<=enf2913;ec2b93b[65]<=jr9b96c;ec2b93b[34]<=bn32307[0];ec2b93b[32]<=qtd372d;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[0]};en7a94c<={sj808c0>>1,ea5c9d9[1]};icd4a64<=ea5c9d9[2];xla5320<=ea5c9d9[3];yz29907<=ea5c9d9[4];rt641e1<={sh7ad9a>>1,ea5c9d9[5]};an787a<={aab66a5>>1,ea5c9d9[6]};tue1ea4<={ux9a949>>1,ea5c9d9[7]};cz7a911<={pha5268>>1,ea5c9d9[8]};yza4460<={qg49a3d>>1,ea5c9d9[9]};vk1182e<={ic68f4a>>1,ea5c9d9[10]};sh60b92<={hd3d282>>1,ea5c9d9[11]};ks2e4a1<={vv4a0b7>>1,ea5c9d9[12]};wy92841<={ou82dff>>1,ea5c9d9[13]};ira104f<={xyb7fc7>>1,ea5c9d9[14]};ir827d<=ea5c9d9[15];sh413ec<=ea5c9d9[16];rv9f64<=ea5c9d9[17];rt4fb27<=ea5c9d9[18];kq7d93e<=ea5c9d9[19];end -always@* begin ec2b93b[2047]<=sj808c0[0];ec2b93b[2046]<=yz2302a;ec2b93b[2044]<=mdi;ec2b93b[2040]<=zxd8bd6;ec2b93b[2032]<=sh7ad9a[0];ec2b93b[2017]<=aab66a5[0];ec2b93b[1987]<=ux9a949[0];ec2b93b[1926]<=pha5268[0];ec2b93b[1804]<=qg49a3d[0];ec2b93b[1614]<=ayff1d6;ec2b93b[1561]<=ic68f4a[0];ec2b93b[1180]<=ipf8eb1;ec2b93b[1074]<=hd3d282[0];ec2b93b[1023]<=mef0118[0];ec2b93b[807]<=dbbfe3a;ec2b93b[625]<=ri3ac6f;ec2b93b[403]<=xyb7fc7[0];ec2b93b[312]<=vvc758d;ec2b93b[201]<=ou82dff[0];ec2b93b[100]<=vv4a0b7[0];end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[0]};yxcc68d<=ea5c9d9[1];ps6346c<=ea5c9d9[2];gq1a362<=ea5c9d9[3];co10e3c<=ea5c9d9[4];uk8d880<=ea5c9d9[5];ne6c401<=ea5c9d9[6];yk6200b<=ea5c9d9[7];aa10058<=ea5c9d9[8];oh802c1<={rxd_pos>>1,ea5c9d9[9]};je160c<={rxd_neg>>1,ea5c9d9[10]};vkb062<=ea5c9d9[11];vi58313<=ea5c9d9[12];cmc189b<=ea5c9d9[13];xlc4d9<=ea5c9d9[14];go626ce<=ea5c9d9[15];ph13670<=ea5c9d9[16];bn9b386<=ea5c9d9[17];wjd9c36<=ea5c9d9[18];goce1b4<=ea5c9d9[19];gb70da1<=ea5c9d9[20];ux3686a<={vk2f2fc>>1,ea5c9d9[21]};gda1aa4<={gocbf12>>1,ea5c9d9[22]};of6a924<={rtfc487>>1,ea5c9d9[23]};wla492c<={qi87d24>>1,ea5c9d9[24]};sw24b20<={nef4900>>1,ea5c9d9[25]};fc25900<=ea5c9d9[26];gd2c802<=ea5c9d9[27];th64014<=ea5c9d9[28];ri200a7<=ea5c9d9[29];aa53b<=ea5c9d9[30];cb29d8<=ea5c9d9[31];ri14ec4<=ea5c9d9[32];pua7622<=ea5c9d9[33];gq3b112<=ea5c9d9[34];fnd8891<=ea5c9d9[35];db22470<={ea430f5>>1,ea5c9d9[36]};qv12386<=ea5c9d9[37];jr91c34<=ea5c9d9[38];fp8e1a6<=ea5c9d9[39];yx70d37<=ea5c9d9[40];ng869bd<=ea5c9d9[41];aa34dea<=ea5c9d9[42];coa6f51<=ea5c9d9[43];nt37a89<=ea5c9d9[44];uiea272<={dmc06d5>>1,ea5c9d9[45]};al51390<=ea5c9d9[46];kd4e42b<={nedaaba>>1,ea5c9d9[47]};kq7215d<={rgd55d3>>1,ea5c9d9[48]};gd90ae9<={vxaae9b>>1,ea5c9d9[49]};gd8574c<=ea5c9d9[50];wy2ba64<=ea5c9d9[51];tu5d321<=ea5c9d9[52];pfe990b<=ea5c9d9[53];kq4c85e<=ea5c9d9[54];nr642f1<=ea5c9d9[55];uk2178f<=ea5c9d9[56];zmbc79<=ea5c9d9[57];yx5e3ca<=ea5c9d9[58];end -always@* begin ec2b93b[2047]<=shc6a74;ec2b93b[2046]<=pu353a4;ec2b93b[2044]<=ls1bc04;ec2b93b[2040]<=rv27d65;ec2b93b[2032]<=rx_dv_pos;ec2b93b[2016]<=rx_dv_neg;ec2b93b[1985]<=rx_er_pos;ec2b93b[1922]<=rx_er_neg;ec2b93b[1867]<=hq1979;ec2b93b[1804]<=nedaaba[0];ec2b93b[1797]<=rxd_pos[0];ec2b93b[1761]<=ps6301b;ec2b93b[1686]<=lfcbcb;ec2b93b[1623]<=hodf5e7;ec2b93b[1561]<=rgd55d3[0];ec2b93b[1558]<=ks70b;ec2b93b[1547]<=rxd_neg[0];ec2b93b[1542]<=ea430f5[0];ec2b93b[1490]<=kf2380c;ec2b93b[1475]<=dmc06d5[0];ec2b93b[1413]<=wy2401c;ec2b93b[1409]<=pua7a18;ec2b93b[1400]<=kde7439;ec2b93b[1324]<=vk2f2fc[0];ec2b93b[1200]<=rtfc487[0];ec2b93b[1199]<=qgfaf3a;ec2b93b[1074]<=vxaae9b[0];ec2b93b[1068]<=rv1c2c6;ec2b93b[1047]<=ui4c131;ec2b93b[1037]<=mt187a9;ec2b93b[1023]<=ux18d4e[0];ec2b93b[933]<=zz1c065;ec2b93b[902]<=bn36aa;ec2b93b[880]<=ps6c603;ec2b93b[811]<=ph9bebc;ec2b93b[779]<=pu200e1;ec2b93b[771]<=nt3d0c3;ec2b93b[745]<=of44701;ec2b93b[706]<=nef4900[0];ec2b93b[704]<=fada9e8;ec2b93b[700]<=ksbce87;ec2b93b[600]<=gocbf12[0];ec2b93b[440]<=rg4d8c0;ec2b93b[405]<=uvd37d7;ec2b93b[372]<=uk888e0;ec2b93b[353]<=qi87d24[0];ec2b93b[352]<=medb53d;ec2b93b[350]<=dzd79d0;ec2b93b[220]<=gqa9b18;ec2b93b[202]<=vxba6fa;ec2b93b[186]<=gq3111c;ec2b93b[176]<=epbb6a7;ec2b93b[110]<=osf5363;ec2b93b[101]<=lq574df;ec2b93b[93]<=tw4c44;ec2b93b[88]<=xwe1637;ec2b93b[55]<=do1ea6c;ec2b93b[46]<=kd60988;ec2b93b[27]<=kdc3d4d;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162>1,ea5c9d9[1]};ksacbe6<={hdatain>>1,ea5c9d9[2]};ho7cc23<=ea5c9d9[3];ba2f984<=ea5c9d9[4];yx65f30<=ea5c9d9[5];je1e93c<={tx_fifodata>>1,ea5c9d9[6]};thc7892<=ea5c9d9[7];lqf49e3<=ea5c9d9[8];oha4f1b<=ea5c9d9[9];qtc6532<={tx_sndpaustim>>1,ea5c9d9[10]};xj6b194<=ea5c9d9[11];bn278dc<=ea5c9d9[12];xw5d016<=ea5c9d9[13];ou50e2<=ea5c9d9[14];hq8672b<={ls1f5e>>1,ea5c9d9[15]};kf3395b<=ea5c9d9[16];ba9cadc<=ea5c9d9[17];kqde7a3<={ayc1110>>1,ea5c9d9[18]};rtf3d18<=ea5c9d9[19];gb5b888<={hbf301c>>1,ea5c9d9[20]};ofdc445<=ea5c9d9[21];ale222d<=ea5c9d9[22];ri1116c<={db39ca>>1,ea5c9d9[23]};sw88b63<=ea5c9d9[24];zx45b19<=ea5c9d9[25];zz2d8cf<=ea5c9d9[26];ne6c67e<=ea5c9d9[27];zk633f3<=ea5c9d9[28];lf19f9a<={ksb6911>>1,ea5c9d9[29]};xwcfcd6<=ea5c9d9[30];jp7e6b2<=ea5c9d9[31];dzf3597<=ea5c9d9[32];cb9acbf<=ea5c9d9[33];ipd65fd<=ea5c9d9[34];vkb2fec<=ea5c9d9[35];ks97f62<=ea5c9d9[36];rvbfb11<=ea5c9d9[37];kdfd88e<=ea5c9d9[38];ldec475<={fc99fb3>>1,ea5c9d9[39]};ic623af<={bycfd9a>>1,ea5c9d9[40]};do11d78<={pf7ecd2>>1,ea5c9d9[41]};jr8ebc2<={vvf6696>>1,ea5c9d9[42]};al75e16<={oub34b7>>1,ea5c9d9[43]};fpaf0b5<={mt9a5b9>>1,ea5c9d9[44]};ic785ae<={hbd2dcc>>1,ea5c9d9[45]};rtc2d70<={ri96e67>>1,ea5c9d9[46]};jr16b86<={twb733b>>1,ea5c9d9[47]};jrb5c37<={ymb99db>>1,ea5c9d9[48]};yzae1bf<={shcced9>>1,ea5c9d9[49]};gb70dfc<={ww676cd>>1,ea5c9d9[50]};zm86fe5<={ks3b668>>1,ea5c9d9[51]};vx37f2a<=ea5c9d9[52];ntbf956<={ald9a08>>1,ea5c9d9[53]};fnfcab6<=ea5c9d9[54];uie55b7<=ea5c9d9[55];zm2adb9<=ea5c9d9[56];qg56dcb<=ea5c9d9[57];ksb6e59<=ea5c9d9[58];bab72c8<=ea5c9d9[59];ksb9643<=ea5c9d9[60];eacb218<=ea5c9d9[61];os590c1<={th61733>>1,ea5c9d9[62]};blc8609<={rib99f>>1,ea5c9d9[63]};me4304e<=ea5c9d9[64];yz18271<=ea5c9d9[65];ayc138d<=ea5c9d9[66];db9c68<=ea5c9d9[67];ip4e347<={osfa1a4>>1,ea5c9d9[68]};xj71a3d<={psd0d21>>1,ea5c9d9[69]};end -always@* begin ec2b93b[2047]<=haddr[0];ec2b93b[2046]<=hdatain[0];ec2b93b[2044]<=hcs_n;ec2b93b[2040]<=hwrite_n;ec2b93b[2033]<=hread_n;ec2b93b[2019]<=tx_fifodata[0];ec2b93b[1994]<=vvf6696[0];ec2b93b[1990]<=tx_fifoavail;ec2b93b[1981]<=vicada4;ec2b93b[1965]<=bn2222d;ec2b93b[1940]<=oub34b7[0];ec2b93b[1939]<=ayc1110[0];ec2b93b[1933]<=tx_fifoeof;ec2b93b[1914]<=qg56d22;ec2b93b[1883]<=zm1116e;ec2b93b[1832]<=mt9a5b9[0];ec2b93b[1831]<=cb8880;ec2b93b[1819]<=tx_fifoempty;ec2b93b[1785]<=fc99fb3[0];ec2b93b[1781]<=ksb6911[0];ec2b93b[1778]<=ls1f5e[0];ec2b93b[1740]<=ir898c;ec2b93b[1719]<=ec88b73;ec2b93b[1634]<=hd2d85c;ec2b93b[1616]<=hbd2dcc[0];ec2b93b[1615]<=hbf301c[0];ec2b93b[1591]<=tx_sndpaustim[0];ec2b93b[1579]<=kq5ccfa;ec2b93b[1522]<=bycfd9a[0];ec2b93b[1515]<=cbb4888;ec2b93b[1508]<=oufaf3;ec2b93b[1470]<=xj6e67e;ec2b93b[1432]<=wj44c65;ec2b93b[1406]<=psd0d21[0];ec2b93b[1391]<=rt45b99;ec2b93b[1286]<=shcced9[0];ec2b93b[1271]<=bn1ce56;ec2b93b[1221]<=zk6c2e6;ec2b93b[1184]<=ri96e67[0];ec2b93b[1182]<=gq980e7;ec2b93b[1135]<=tx_sndpausreq;ec2b93b[1111]<=rte67d0;ec2b93b[1051]<=ks3b668[0];ec2b93b[1023]<=reset_n;ec2b93b[997]<=pf7ecd2[0];ec2b93b[990]<=mt395b4;ec2b93b[982]<=uxa4445;ec2b93b[969]<=me7d798;ec2b93b[892]<=xw733f6;ec2b93b[889]<=ignore_pkt;ec2b93b[870]<=en41131;ec2b93b[817]<=an2632d;ec2b93b[789]<=rib99f[0];ec2b93b[735]<=nt2dccf;ec2b93b[703]<=osfa1a4[0];ec2b93b[643]<=ymb99db[0];ec2b93b[635]<=db39ca[0];ec2b93b[525]<=ww676cd[0];ec2b93b[495]<=wje72b6;ec2b93b[444]<=rx_fifo_full;ec2b93b[435]<=ui68226;ec2b93b[394]<=th61733[0];ec2b93b[351]<=kf9f434;ec2b93b[321]<=twb733b[0];ec2b93b[317]<=nec0739;ec2b93b[222]<=tx_fifoctrl;ec2b93b[217]<=pfcd044;ec2b93b[175]<=yz33e86;ec2b93b[108]<=ald9a08[0];ec2b93b[54]<=icdb341;end assign mg8dcb5 = ec2b93b,ea5c9d9 = su72d4e; initial begin xy83c2c = $fopen(".fred"); $fdisplay( xy83c2c, "%3h\n%3h", (gq3b216 >> 4) & fp16372, (gq3b216 >> (zxc858d+4)) & fp16372 ); $fclose(xy83c2c); $readmemh(".fred", phb5383); end always @ (mg8dcb5) begin en4e0f0 = phb5383[1]; for (do1e162=0; do1e162 if ( (HCS_N = '0') and (HREAD_N = '0') ) then - HC_NEXT_STATE <= HC_READ; - elsif( (HCS_N = '0') and (HWRITE_N = '0') ) then - HC_NEXT_STATE <= HC_WRITE; - else - HC_NEXT_STATE <= HC_SLEEP; - end if; - when HC_READ => HC_NEXT_STATE <= HC_RACK; - hdataout_en_n_comb <= '0'; - hready_n_comb <= '0'; - when HC_RACK => HC_NEXT_STATE <= HC_SLEEP; - when HC_WRITE => HC_NEXT_STATE <= HC_WACK; - hready_n_comb <= '0'; - when HC_WACK => HC_NEXT_STATE <= HC_SLEEP; - when others => HC_NEXT_STATE <= HC_SLEEP; - end case; -end process HC_STATE_TRANSFORM; - -HREADY_N <= hready_n_buf; -HDATAOUT_EN_N <= hdataout_en_n_buf; - ------------------------------------------------------------------------------- --- state machine for "transmission" ------------------------------------------------------------------------------- - --- preread counter -THE_PREREAD_CTR: process( TX_MAC_CLK ) -begin - if ( RESET_N = '0' ) then - preread_ctr <= (others => '0'); - elsif( rising_edge(TX_MAC_CLK) ) then - if ( preread_rst_comb = '1' ) then - preread_ctr <= (others => '0'); - elsif( preread_ce_comb = '1' ) then - preread_ctr <= preread_ctr + 1; - end if; - end if; -end process THE_PREREAD_CTR; -preread_done_comb <= '1' when (preread_ctr = x"6") - else '0'; - --- state registers -TX_STATE_MEM: process( TX_MAC_CLK, RESET_N ) -begin - if ( RESET_N = '0' ) then - TX_CURRENT_STATE <= TX_SLEEP; - tx_done_buf <= '0'; - elsif( rising_edge(TX_MAC_CLK) ) then - TX_CURRENT_STATE <= TX_NEXT_STATE; - tx_done_buf <= tx_done_comb; - end if; -end process TX_STATE_MEM; - -tx_macread_comb <= preread_ce_comb or read_on_comb; - --- state transitions -TX_STATE_TRANSFORM: process( TX_CURRENT_STATE, TX_FIFOEMPTY, TX_FIFOAVAIL, TX_FIFOEOF, preread_done_comb ) -begin - TX_NEXT_STATE <= TX_SLEEP; -- avoid latches - preread_ce_comb <= '0'; - preread_rst_comb <= '0'; - read_on_comb <= '0'; - tx_done_comb <= '0'; - case TX_CURRENT_STATE is - when TX_SLEEP => tx_bsm <= x"0"; - if( TX_FIFOEMPTY = '0' ) then - TX_NEXT_STATE <= TX_READ; - preread_ce_comb <= '1'; - else - TX_NEXT_STATE <= TX_SLEEP; - end if; - when TX_READ => tx_bsm <= x"1"; - if ( TX_FIFOEMPTY = '1' ) then - TX_NEXT_STATE <= TX_DELAY; - preread_rst_comb <= '1'; - elsif( (preread_done_comb = '1') and (TX_FIFOAVAIL = '0') ) then - TX_NEXT_STATE <= TX_DELAY; - preread_rst_comb <= '1'; - elsif( (preread_done_comb = '1') and (TX_FIFOAVAIL = '1') ) then - TX_NEXT_STATE <= TX_TRANS; - preread_rst_comb <= '1'; - read_on_comb <= '1'; - else - TX_NEXT_STATE <= TX_READ; - preread_ce_comb <= '1'; - end if; - when TX_DELAY => tx_bsm <= x"2"; - if( TX_FIFOAVAIL = '1' ) then - TX_NEXT_STATE <= TX_TRANS; - read_on_comb <= '1'; - else - TX_NEXT_STATE <= TX_DELAY; - end if; - when TX_TRANS => tx_bsm <= x"3"; - if( TX_FIFOEOF = '1' ) then - TX_NEXT_STATE <= TX_CHECK; - tx_done_comb <= '1'; -- don't know if this is realistic - else - TX_NEXT_STATE <= TX_TRANS; - read_on_comb <= '1'; - end if; - when TX_CHECK => tx_bsm <= x"4"; - if( (TX_FIFOEMPTY = '0') and (TX_FIFOAVAIL = '1') ) then - TX_NEXT_STATE <= TX_READ; - preread_ce_comb <= '1'; - else - TX_NEXT_STATE <= TX_SLEEP; - end if; - when others => tx_bsm <= x"f"; - TX_NEXT_STATE <= TX_SLEEP; - end case; -end process TX_STATE_TRANSFORM; - - - - ------------------------------------------------------------------------------- --- Fake signals ------------------------------------------------------------------------------- -RX_DBOUT <= preread_ctr & tx_bsm; -- x"00"; -RX_FIFO_ERROR <= '0'; -RX_STAT_VECTOR <= x"0000_0000"; -RX_STAT_EN <= '0'; -RX_WRITE <= '0'; -RX_EOF <= '0'; -RX_ERROR <= '0'; - -TX_DISCFRM <= '0'; -TX_EN <= '0'; -TX_ER <= '0'; -TX_STATVEC <= (others => '0'); -TX_STATEN <= '0'; -TXD <= x"00"; - -CPU_IF_GBIT_EN <= '0'; - -TX_DONE <= tx_done_buf; -TX_MACREAD <= tx_macread_comb; - -HDATAOUT <= x"00"; - - -end mb_mac_sim; - - ---port map( --- -------------------------------------------------------------------------- --- --------------- clock, reset, clock enable ------------------------------- --- hclk => CLK, -- (in) host clock (100MHz) --- txmac_clk => TX_MAC_CLK, -- (in) GbE clock (125MHz) --- rxmac_clk => '0', -- (in) not used (no receiving on GbE) --- reset_n => GSR_N, -- (in) global set/reset --- txmac_clk_en => TSM_TX_CLK_EN_IN, -- (in) from SGMII core, '1' for 1GbE operation --- rxmac_clk_en => TSM_RX_CLK_EN_IN, -- (in) from SGMII core, '1' for 1GbE operation --- -------------------------------------------------------------------------- --- --------------- SGMII receive interface ---------------------------------- --- rxd => x"00", -- (in) receive data from SGMII core --- rx_dv => '0', -- (in) data valid from SGMII core --- rx_er => '0', -- (in) receive data error --- col => TSM_COL_IN, -- (in) collision from SGMII core --- crs => TSM_CRS_IN, -- (in) carrier sense from SGMII core --- -------------------------------------------------------------------------- --- --------------- SGMII transmit interface --------------------------------- --- txd => CH_TXD_OUT, -- (out) transmit data to SGMII core --- tx_en => CH_TX_EN_OUT, -- (out) transmit enable --- tx_er => CH_TX_ER_OUT, -- (out) transmit error --- -------------------------------------------------------------------------- --- --------------- CPU configuration interface ------------------------------ --- haddr => haddr, -- (in) host address bus for configuration --- hdatain => hdataout, -- (in) host data bus for write accesses --- hcs_n => hcs, -- (in) host chip select signal --- hwrite_n => hwrite, -- (in) host write strobe signal --- hread_n => hread, -- (in) host read strobe signal --- hdataout => hdatain, -- (out) host data bus for read accesses --- hdataout_en_n => hdataout_en, -- (out) read data valid signal --- hready_n => hready, -- (out) data acknowledge signal --- cpu_if_gbit_en => open, -- (out) status bit --- -------------------------------------------------------------------------- --- --------------- Transmit FIFO interface ---------------------------------- --- tx_fifodata => ft_data(7 downto 0), -- (in) transmit FIFO data bus --- tx_fifoavail => mac_fifoavail, -- (in) transmit FIFO data available --- tx_fifoeof => mac_fifoeof, -- (in) transmit FIFO end of frame --- tx_fifoempty => mac_fifoempty, -- (in) transmit FIFO empty --- tx_macread => mac_tx_rd_en, -- (out) transmit FIFO read --- tx_done => mac_tx_done, -- (out) transmit done (without errors) --- tx_sndpaustim => x"0000", -- (in) PAUSE frame timer --- tx_sndpausreq => '0', -- (in) PAUSE frame request --- tx_fifoctrl => '0', -- (in) FIFO control frame ('0' = data, '1' = control) --- tx_discfrm => open, -- (out) discard frame --- tx_staten => open, -- (out) transmit statistics vector enable --- tx_statvec => open, -- (out) transmit statistics vector --- -------------------------------------------------------------------------- --- --------------- Receive FIFO interface ----------------------------------- --- rx_dbout => open, -- (out) receive FIFO data output --- rx_fifo_full => '0', -- (in) receive FIFO full --- ignore_pkt => '0', -- (in) ignore next packet --- rx_fifo_error => open, -- (out) receive FIFO error --- rx_stat_vector => open, -- (out) receive statistics vector --- rx_stat_en => open, -- (out) receive statistics vector enable --- rx_write => open, -- (out) receive FIFO write --- rx_eof => open, -- (out) end of frame --- rx_error => open -- (out) receive packet error ---); diff --git a/gbe2_ecp3/slv_mac_memory.vhd b/gbe2_ecp3/slv_mac_memory.vhd deleted file mode 100755 index bd74e03..0000000 --- a/gbe2_ecp3/slv_mac_memory.vhd +++ /dev/null @@ -1,178 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - -library work; - -entity slv_mac_memory is -port( - CLK : in std_logic; - RESET : in std_logic; - BUSY_IN : in std_logic; - -- Slave bus - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - -- I/O to the backend - MEM_CLK_IN : in std_logic; - MEM_ADDR_IN : in std_logic_vector(7 downto 0); - MEM_DATA_OUT : out std_logic_vector(31 downto 0); - -- Status lines - STAT : out std_logic_vector(31 downto 0) -- DEBUG -); -end entity; - -architecture Behavioral of slv_mac_memory is - -component ip_mem is -port( - DataInA : in std_logic_vector(31 downto 0); - DataInB : in std_logic_vector(31 downto 0); - AddressA : in std_logic_vector(7 downto 0); - AddressB : in std_logic_vector(7 downto 0); - ClockA : in std_logic; - ClockB : in std_logic; - ClockEnA : in std_logic; - ClockEnB : in std_logic; - WrA : in std_logic; - WrB : in std_logic; - ResetA : in std_logic; - ResetB : in std_logic; - QA : out std_logic_vector(31 downto 0); - QB : out std_logic_vector(31 downto 0) -); -end component ip_mem; - --- Signals -type STATES is (SLEEP,RD_BSY,WR_BSY,RD_RDY,WR_RDY,RD_ACK,WR_ACK,DONE); -signal CURRENT_STATE, NEXT_STATE: STATES; - --- slave bus signals -signal slv_busy_x : std_logic; -signal slv_busy : std_logic; -signal slv_ack_x : std_logic; -signal slv_ack : std_logic; -signal store_wr_x : std_logic; -signal store_wr : std_logic; -signal store_rd_x : std_logic; -signal store_rd : std_logic; - -signal reg_busy : std_logic; - -begin - --- Fake -reg_busy <= busy_in; -stat <= (others => '0'); - ---------------------------------------------------------- --- Statemachine -- ---------------------------------------------------------- --- State memory process -STATE_MEM: process( clk ) -begin - if( rising_edge(clk) ) then - if( reset = '1' ) then - CURRENT_STATE <= SLEEP; - slv_busy <= '0'; - slv_ack <= '0'; - store_wr <= '0'; - store_rd <= '0'; - else - CURRENT_STATE <= NEXT_STATE; - slv_busy <= slv_busy_x; - slv_ack <= slv_ack_x; - store_wr <= store_wr_x; - store_rd <= store_rd_x; - end if; - end if; -end process STATE_MEM; - --- Transition matrix -TRANSFORM: process(CURRENT_STATE, slv_read_in, slv_write_in, reg_busy ) -begin - NEXT_STATE <= SLEEP; - slv_busy_x <= '0'; - slv_ack_x <= '0'; - store_wr_x <= '0'; - store_rd_x <= '0'; - case CURRENT_STATE is - when SLEEP => if ( (reg_busy = '0') and (slv_read_in = '1') ) then - NEXT_STATE <= RD_RDY; - store_rd_x <= '1'; - elsif( (reg_busy = '0') and (slv_write_in = '1') ) then - NEXT_STATE <= WR_RDY; - store_wr_x <= '1'; - elsif( (reg_busy = '1') and (slv_read_in = '1') ) then - NEXT_STATE <= RD_BSY; - elsif( (reg_busy = '1') and (slv_write_in = '1') ) then - NEXT_STATE <= WR_BSY; - else - NEXT_STATE <= SLEEP; - end if; - when RD_RDY => NEXT_STATE <= RD_ACK; - when WR_RDY => NEXT_STATE <= WR_ACK; - when RD_ACK => if( slv_read_in = '0' ) then - NEXT_STATE <= DONE; - slv_ack_x <= '1'; - else - NEXT_STATE <= RD_ACK; - slv_ack_x <= '1'; - end if; - when WR_ACK => if( slv_write_in = '0' ) then - NEXT_STATE <= DONE; - slv_ack_x <= '1'; - else - NEXT_STATE <= WR_ACK; - slv_ack_x <= '1'; - end if; - when RD_BSY => if( slv_read_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= RD_BSY; - slv_busy_x <= '1'; - end if; - when WR_BSY => if( slv_write_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= WR_BSY; - slv_busy_x <= '1'; - end if; - when DONE => NEXT_STATE <= SLEEP; - - when others => NEXT_STATE <= SLEEP; - end case; -end process TRANSFORM; - ---------------------------------------------------------- --- data handling -- ---------------------------------------------------------- - -THE_MAC_MEM: ip_mem -port map( - DataInA => slv_data_in, - AddressA => slv_addr_in, - ClockA => clk, - ClockEnA => '1', - QA => slv_data_out, - WrA => store_wr, - ResetA => reset, - DataInB => x"0000_0000", - AddressB => mem_addr_in, - ClockB => mem_clk_in, - ClockEnB => '1', - WrB => '0', -- never write - ResetB => reset, - QB => mem_data_out -); - --- output signals -slv_ack_out <= slv_ack; -slv_busy_out <= slv_busy; - -end Behavioral; diff --git a/gbe2_ecp3/slv_register.vhd b/gbe2_ecp3/slv_register.vhd deleted file mode 100755 index 763550b..0000000 --- a/gbe2_ecp3/slv_register.vhd +++ /dev/null @@ -1,177 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - -library work; ---use work.adcmv3_components.all; - - -entity slv_register is -generic( RESET_VALUE : std_logic_vector(31 downto 0) := x"0000_0000" ); -port( CLK_IN : in std_logic; - RESET_IN : in std_logic; - BUSY_IN : in std_logic; - -- Slave bus - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - -- I/O to the backend - REG_DATA_IN : in std_logic_vector(31 downto 0); - REG_DATA_OUT : out std_logic_vector(31 downto 0); - -- Status lines - STAT : out std_logic_vector(31 downto 0) -- DEBUG - ); -end entity; - -architecture Behavioral of slv_register is - --- Signals - - type STATES is (SLEEP,RD_BSY,WR_BSY,RD_RDY,WR_RDY,RD_ACK,WR_ACK,DONE); - signal CURRENT_STATE, NEXT_STATE: STATES; - - -- slave bus signals - signal slv_busy_x : std_logic; - signal slv_busy : std_logic; - signal slv_ack_x : std_logic; - signal slv_ack : std_logic; - signal store_wr_x : std_logic; - signal store_wr : std_logic; - signal store_rd_x : std_logic; - signal store_rd : std_logic; - - signal reg_slv_data_in : std_logic_vector(31 downto 0); -- registered data input - signal reg_slv_data_out : std_logic_vector(31 downto 0); -- read back data - signal reg_busy : std_logic; - -begin - --- Fake -reg_busy <= busy_in; -stat <= (others => '0'); - ---------------------------------------------------------- --- Statemachine -- ---------------------------------------------------------- --- State memory process -STATE_MEM: process( clk_in ) -begin - if( rising_edge(clk_in) ) then - if( reset_in = '1' ) then - CURRENT_STATE <= SLEEP; - slv_busy <= '0'; - slv_ack <= '0'; - store_wr <= '0'; - store_rd <= '0'; - else - CURRENT_STATE <= NEXT_STATE; - slv_busy <= slv_busy_x; - slv_ack <= slv_ack_x; - store_wr <= store_wr_x; - store_rd <= store_rd_x; - end if; - end if; -end process STATE_MEM; - --- Transition matrix -TRANSFORM: process(CURRENT_STATE, slv_read_in, slv_write_in, reg_busy ) -begin - NEXT_STATE <= SLEEP; - slv_busy_x <= '0'; - slv_ack_x <= '0'; - store_wr_x <= '0'; - store_rd_x <= '0'; - case CURRENT_STATE is - when SLEEP => if ( (reg_busy = '0') and (slv_read_in = '1') ) then - NEXT_STATE <= RD_RDY; - store_rd_x <= '1'; - elsif( (reg_busy = '0') and (slv_write_in = '1') ) then - NEXT_STATE <= WR_RDY; - store_wr_x <= '1'; - elsif( (reg_busy = '1') and (slv_read_in = '1') ) then - NEXT_STATE <= RD_BSY; - slv_busy_x <= '1'; -- added 23022009 - elsif( (reg_busy = '1') and (slv_write_in = '1') ) then - NEXT_STATE <= WR_BSY; - slv_busy_x <= '1'; -- added 23022009 - else - NEXT_STATE <= SLEEP; - end if; - when RD_RDY => NEXT_STATE <= RD_ACK; - slv_ack_x <= '1'; - when WR_RDY => NEXT_STATE <= WR_ACK; - slv_ack_x <= '1'; - when RD_ACK => if( slv_read_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= RD_ACK; - slv_ack_x <= '1'; - end if; - when WR_ACK => if( slv_write_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= WR_ACK; - slv_ack_x <= '1'; - end if; - when RD_BSY => if( slv_read_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= RD_BSY; - slv_busy_x <= '1'; - end if; - when WR_BSY => if( slv_write_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= WR_BSY; - slv_busy_x <= '1'; - end if; - when DONE => NEXT_STATE <= SLEEP; - - when others => NEXT_STATE <= SLEEP; - end case; -end process TRANSFORM; - ---------------------------------------------------------- --- data handling -- ---------------------------------------------------------- - --- register write -THE_WRITE_REG_PROC: process( clk_in ) -begin - if( rising_edge(clk_in) ) then - if ( reset_in = '1' ) then - reg_slv_data_in <= RESET_VALUE; - elsif( store_wr = '1' ) then - reg_slv_data_in <= slv_data_in; - end if; - end if; -end process THE_WRITE_REG_PROC; - --- register read -THE_READ_REG_PROC: process( clk_in ) -begin - if( rising_edge(clk_in) ) then - if ( reset_in = '1' ) then - reg_slv_data_out <= (others => '0'); - elsif( store_rd = '1' ) then - reg_slv_data_out <= reg_data_in; - end if; - end if; -end process THE_READ_REG_PROC; - --- output signals -slv_ack_out <= slv_ack; -slv_busy_out <= slv_busy; -slv_data_out <= reg_slv_data_out; - ---------------------------------------------------------- --- signals to backend -- ---------------------------------------------------------- - -reg_data_out <= reg_slv_data_in; - -end Behavioral; diff --git a/gbe2_ecp3/tb_feeder.vhd b/gbe2_ecp3/tb_feeder.vhd deleted file mode 100755 index d526404..0000000 --- a/gbe2_ecp3/tb_feeder.vhd +++ /dev/null @@ -1,300 +0,0 @@ - -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT feeder - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - CTS_NUMBER_IN : IN std_logic_vector(15 downto 0); - CTS_CODE_IN : IN std_logic_vector(7 downto 0); - CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0); - CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0); - CTS_START_READOUT_IN : IN std_logic; - CTS_READ_IN : IN std_logic; - FEE_DATA_IN : IN std_logic_vector(15 downto 0); - FEE_DATAREADY_IN : IN std_logic; - FEE_BUSY_IN : IN std_logic; - FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0); - PC_READY_IN : IN std_logic; - CTS_DATA_OUT : OUT std_logic_vector(31 downto 0); - CTS_DATAREADY_OUT : OUT std_logic; - CTS_READOUT_FINISHED_OUT : OUT std_logic; - CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0); - CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0); - FEE_READ_OUT : OUT std_logic; - PC_WR_EN_OUT : OUT std_logic; - PC_DATA_OUT : OUT std_logic_vector(7 downto 0); - PC_SOS_OUT : OUT std_logic; - PC_EOD_OUT : OUT std_logic; - PC_SUB_SIZE_OUT : OUT std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : OUT std_logic_vector(31 downto 0); - PC_PADDING_OUT : OUT std_logic; - BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0); - BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0); - DBG_REM_CTR_OUT : OUT std_logic_vector(3 downto 0); - DBG_CTS_CTR_OUT : OUT std_logic_vector(2 downto 0); - DBG_SF_WCNT_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RCNT_OUT : OUT std_logic_vector(16 downto 0); - DBG_SF_DATA_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RD_EN_OUT : OUT std_logic; - DBG_SF_WR_EN_OUT : OUT std_logic; - DBG_SF_EMPTY_OUT : OUT std_logic; - DBG_SF_FULL_OUT : OUT std_logic; - DBG_SF_AFULL_OUT : OUT std_logic; - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL CTS_NUMBER_IN : std_logic_vector(15 downto 0); - SIGNAL CTS_CODE_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_INFORMATION_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_READOUT_TYPE_IN : std_logic_vector(3 downto 0); - SIGNAL CTS_START_READOUT_IN : std_logic; - SIGNAL CTS_READ_IN : std_logic; - SIGNAL CTS_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL CTS_DATAREADY_OUT : std_logic; - SIGNAL CTS_READOUT_FINISHED_OUT : std_logic; - SIGNAL CTS_LENGTH_OUT : std_logic_vector(15 downto 0); - SIGNAL CTS_ERROR_PATTERN_OUT : std_logic_vector(31 downto 0); - SIGNAL FEE_DATA_IN : std_logic_vector(15 downto 0); - SIGNAL FEE_DATAREADY_IN : std_logic; - SIGNAL FEE_READ_OUT : std_logic; - SIGNAL FEE_BUSY_IN : std_logic; - SIGNAL FEE_STATUS_BITS_IN : std_logic_vector(31 downto 0); - SIGNAL PC_WR_EN_OUT : std_logic; - SIGNAL PC_DATA_OUT : std_logic_vector(7 downto 0); - SIGNAL PC_READY_IN : std_logic; - SIGNAL PC_SOS_OUT : std_logic; - SIGNAL PC_EOD_OUT : std_logic; - SIGNAL PC_SUB_SIZE_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_TRIG_NR_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_PADDING_OUT : std_logic; - SIGNAL BSM_SAVE_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_LOAD_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_REM_CTR_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_CTS_CTR_OUT : std_logic_vector(2 downto 0); - SIGNAL DBG_SF_WCNT_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RCNT_OUT : std_logic_vector(16 downto 0); - SIGNAL DBG_SF_DATA_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RD_EN_OUT : std_logic; - SIGNAL DBG_SF_WR_EN_OUT : std_logic; - SIGNAL DBG_SF_EMPTY_OUT : std_logic; - SIGNAL DBG_SF_FULL_OUT : std_logic; - SIGNAL DBG_SF_AFULL_OUT : std_logic; - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: feeder PORT MAP( - CLK => CLK, - RESET => RESET, - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_READ_IN => CTS_READ_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_BUSY_IN => FEE_BUSY_IN, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - PC_WR_EN_OUT => PC_WR_EN_OUT, - PC_DATA_OUT => PC_DATA_OUT, - PC_READY_IN => PC_READY_IN, - PC_SOS_OUT => PC_SOS_OUT, - PC_EOD_OUT => PC_EOD_OUT, - PC_SUB_SIZE_OUT => PC_SUB_SIZE_OUT, - PC_TRIG_NR_OUT => PC_TRIG_NR_OUT, - PC_PADDING_OUT => PC_PADDING_OUT, - BSM_SAVE_OUT => BSM_SAVE_OUT, - BSM_LOAD_OUT => BSM_LOAD_OUT, - DBG_REM_CTR_OUT => DBG_REM_CTR_OUT, - DBG_CTS_CTR_OUT => DBG_CTS_CTR_OUT, - DBG_SF_WCNT_OUT => DBG_SF_WCNT_OUT, - DBG_SF_RCNT_OUT => DBG_SF_RCNT_OUT, - DBG_SF_DATA_OUT => DBG_SF_DATA_OUT, - DBG_SF_RD_EN_OUT => DBG_SF_RD_EN_OUT, - DBG_SF_WR_EN_OUT => DBG_SF_WR_EN_OUT, - DBG_SF_EMPTY_OUT => DBG_SF_EMPTY_OUT, - DBG_SF_FULL_OUT => DBG_SF_FULL_OUT, - DBG_SF_AFULL_OUT => DBG_SF_AFULL_OUT, - DEBUG_OUT => DEBUG_OUT - ); - -CLOCK_GEN: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLOCK_GEN; - --- Testbench -TESTBENCH_PROC: process -variable test_data_len : integer range 0 to 65535 := 49; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_hdr_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_data : unsigned(15 downto 0) := x"ffff"; - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; -begin - -- Setup signals - reset <= '0'; - cts_number_in <= x"0000"; - cts_code_in <= x"00"; - cts_information_in <= x"00"; - cts_readout_type_in <= x"0"; - cts_start_readout_in <= '0'; - cts_read_in <= '0'; - fee_data_in <= x"0000"; - fee_dataready_in <= '0'; - fee_status_bits_in <= x"0000_0000"; - fee_busy_in <= '0'; - pc_ready_in <= '0'; - - wait for 22 ns; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - wait for 200 ns; - - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 9; - test_data_len := 14; - - MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop - -- IPU transmission starts - wait until rising_edge(clk); - cts_number_in <= std_logic_vector( trigger_counter ); - cts_code_in <= x"aa"; - cts_information_in <= x"de"; - cts_readout_type_in <= x"1"; - cts_start_readout_in <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - fee_busy_in <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - -- ONE DATA TRANSMISSION - -- calculate the needed variables --- test_data_len := 4096; - test_loop_len := 2*(test_data_len - 1) + 1; - test_hdr_len := to_unsigned( test_data_len + 1, 16 ); - test_evt_len := to_unsigned( test_data_len, 16 ); - - -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21) - fee_dataready_in <= '1'; - fee_data_in <= x"10aa"; - wait until rising_edge(clk); - fee_data_in <= std_logic_vector( trigger_counter ); - wait until rising_edge(clk); - fee_data_in <= std_logic_vector( test_hdr_len ); - wait until rising_edge(clk); - fee_data_in <= x"ff21"; - wait until rising_edge(clk); - fee_data_in <= std_logic_vector( test_evt_len ); - wait until rising_edge(clk); - fee_data_in <= x"ff22"; - - test_data := x"ffff"; - MY_DATA_LOOP: for J in 0 to test_loop_len loop - test_data := test_data + 1; - wait until rising_edge(clk); - fee_data_in <= std_logic_vector(test_data); - end loop MY_DATA_LOOP; - - fee_busy_in <= '0'; -- correct? - wait until rising_edge(clk); - fee_dataready_in <= '0'; - fee_data_in <= x"0000"; - - trigger_loop := trigger_loop + 1; - trigger_counter := trigger_counter + 1; - - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_read_in <= '1'; - wait until rising_edge(clk); - cts_read_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_start_readout_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - end loop MY_TRIGGER_LOOP; -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - wait for 300 ns; - - -- Start packet_constructor - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_ready_in <= '1'; - wait until rising_edge(clk); - - wait; - - wait until rising_edge(clk); - wait until pc_eod_out = '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_ready_in <= '0'; - - -- Stay a while... stay forever!!! - wait; - -end process TESTBENCH_PROC; - - -END; diff --git a/gbe2_ecp3/tb_frame_receiver.vhd b/gbe2_ecp3/tb_frame_receiver.vhd deleted file mode 100644 index 8b0ed20..0000000 --- a/gbe2_ecp3/tb_frame_receiver.vhd +++ /dev/null @@ -1,2686 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -USE ieee.math_real.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -entity tb_frame_receiver is -end tb_frame_receiver; - -architecture behavior of tb_frame_receiver is - -component trb_net16_hub_streaming_port_sctrl is - generic( - --hub control - INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F004"; - INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := (others => '0'); - COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000"; - COMPILE_VERSION : std_logic_vector(15 downto 0) := x"0001"; - HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678"; - INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001"; - BROADCAST_BITMASK : std_logic_vector(7 downto 0) := x"7E"; - CLOCK_FREQUENCY : integer range 1 to 200 := 100; - USE_ONEWIRE : integer range 0 to 2 := c_YES; - BROADCAST_SPECIAL_ADDR : std_logic_vector(7 downto 0) := x"FF"; - --media interfaces - MII_NUMBER : integer range 2 to c_MAX_MII_PER_HUB := 12; - MII_IS_UPLINK : hub_mii_config_t := (others => c_YES); - MII_IS_DOWNLINK : hub_mii_config_t := (others => c_YES); - MII_IS_UPLINK_ONLY : hub_mii_config_t := (others => c_NO) - ); - - port( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - --Media Interface - MED_DATAREADY_OUT : out std_logic_vector (MII_NUMBER-1 downto 0); - MED_DATA_OUT : out std_logic_vector (MII_NUMBER*c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector (MII_NUMBER*c_NUM_WIDTH-1 downto 0); - MED_READ_IN : in std_logic_vector (MII_NUMBER-1 downto 0); - MED_DATAREADY_IN : in std_logic_vector (MII_NUMBER-1 downto 0); - MED_DATA_IN : in std_logic_vector (MII_NUMBER*c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector (MII_NUMBER*c_NUM_WIDTH-1 downto 0); - MED_READ_OUT : out std_logic_vector (MII_NUMBER-1 downto 0); - MED_STAT_OP : in std_logic_vector (MII_NUMBER*16-1 downto 0); - MED_CTRL_OP : out std_logic_vector (MII_NUMBER*16-1 downto 0); - - --Event information coming from CTS - CTS_NUMBER_OUT : out std_logic_vector (15 downto 0); - CTS_CODE_OUT : out std_logic_vector (7 downto 0); - CTS_INFORMATION_OUT : out std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_OUT : out std_logic_vector (3 downto 0); - CTS_START_READOUT_OUT : out std_logic; - - --Information sent to CTS - --status data, equipped with DHDR - CTS_DATA_IN : in std_logic_vector (31 downto 0); - CTS_DATAREADY_IN : in std_logic; - CTS_READOUT_FINISHED_IN : in std_logic; --no more data, end transfer, send TRM - CTS_READ_OUT : out std_logic; - CTS_LENGTH_IN : in std_logic_vector (15 downto 0); - CTS_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - - -- Data from Frontends - FEE_DATA_OUT : out std_logic_vector (15 downto 0); - FEE_DATAREADY_OUT : out std_logic; - FEE_READ_IN : in std_logic; --must be high when idle, otherwise you will never get a dataready - FEE_STATUS_BITS_OUT : out std_logic_vector (31 downto 0); - FEE_BUSY_OUT : out std_logic; - - MY_ADDRESS_IN : in std_logic_vector (15 downto 0); - - COMMON_STAT_REGS : out std_logic_vector (std_COMSTATREG*32-1 downto 0); --Status of common STAT regs - COMMON_CTRL_REGS : out std_logic_vector (std_COMCTRLREG*32-1 downto 0); --Status of common STAT regs - ONEWIRE : inout std_logic; - ONEWIRE_MONITOR_IN : in std_logic; - ONEWIRE_MONITOR_OUT : out std_logic; - MY_ADDRESS_OUT : out std_logic_vector(15 downto 0); - UNIQUE_ID_OUT : out std_logic_vector (63 downto 0); - - --REGIO INTERFACE - REGIO_ADDR_OUT : out std_logic_vector(16-1 downto 0); - REGIO_READ_ENABLE_OUT : out std_logic; - REGIO_WRITE_ENABLE_OUT : out std_logic; - REGIO_DATA_OUT : out std_logic_vector(32-1 downto 0); - REGIO_DATA_IN : in std_logic_vector(32-1 downto 0) := (others => '0'); - REGIO_DATAREADY_IN : in std_logic := '0'; - REGIO_NO_MORE_DATA_IN : in std_logic := '0'; - REGIO_WRITE_ACK_IN : in std_logic := '0'; - REGIO_UNKNOWN_ADDR_IN : in std_logic := '0'; - REGIO_TIMEOUT_OUT : out std_logic; - - - --Gbe Sctrl Input - GSC_INIT_DATAREADY_IN : in std_logic; - GSC_INIT_DATA_IN : in std_logic_vector(15 downto 0); - GSC_INIT_PACKET_NUM_IN : in std_logic_vector(2 downto 0); - GSC_INIT_READ_OUT : out std_logic; - GSC_REPLY_DATAREADY_OUT : out std_logic; - GSC_REPLY_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_REPLY_READ_IN : in std_logic; - GSC_BUSY_OUT : out std_logic; - - --status and control ports - HUB_STAT_CHANNEL : out std_logic_vector (2**(c_MUX_WIDTH-1)*16-1 downto 0); - HUB_STAT_GEN : out std_logic_vector (31 downto 0); - MPLEX_CTRL : in std_logic_vector (MII_NUMBER*32-1 downto 0); - MPLEX_STAT : out std_logic_vector (MII_NUMBER*32-1 downto 0); - STAT_REGS : out std_logic_vector (8*32-1 downto 0); --Status of custom STAT regs - STAT_CTRL_REGS : out std_logic_vector (8*32-1 downto 0); --Status of custom CTRL regs - --Debugging registers - STAT_DEBUG : out std_logic_vector (31 downto 0); --free status regs for debugging - CTRL_DEBUG : in std_logic_vector (31 downto 0) --free control regs for debugging - ); -end component; - -signal CLK : std_logic; -signal RESET : std_logic; -signal LINK_OK_IN : std_logic; -signal ALLOW_RX_IN : std_logic; -signal RX_MAC_CLK : std_logic; -signal MAC_RX_EOF_IN : std_logic; -signal MAC_RX_ER_IN : std_logic; -signal MAC_RXD_IN : std_logic_vector(7 downto 0); -signal MAC_RX_EN_IN : std_logic; -signal MAC_RX_FIFO_ERR_IN : std_logic; -signal MAC_RX_FIFO_FULL_OUT : std_logic; -signal MAC_RX_STAT_EN_IN : std_logic; -signal MAC_RX_STAT_VEC_IN : std_logic_vector(31 downto 0); -signal FR_Q_OUT : std_logic_vector(8 downto 0); -signal FR_RD_EN_IN : std_logic; -signal FR_FRAME_VALID_OUT : std_logic; -signal FR_GET_FRAME_IN : std_logic; -signal FR_FRAME_SIZE_OUT : std_logic_vector(15 downto 0); -signal FR_FRAME_PROTO_OUT : std_logic_vector(15 downto 0); -signal DEBUG_OUT : std_logic_vector(95 downto 0); -signal FR_ALLOWED_TYPES_IN : std_logic_vector(31 downto 0); - -signal RC_RD_EN_IN : std_logic; -signal RC_Q_OUT : std_logic_vector(8 downto 0); -signal RC_FRAME_WAITING_OUT : std_logic; -signal RC_LOADING_DONE_IN : std_logic; -signal RC_FRAME_SIZE_OUT : std_logic_vector(15 downto 0); -signal FRAMES_RECEIVED_OUT : std_logic_vector(31 downto 0); -signal BYTES_RECEIVED_OUT : std_logic_vector(31 downto 0); - -signal MC_TRANSMIT_CTRL_OUT : std_logic; -signal MC_TRANSMIT_DATA_OUT : std_logic; -signal MC_DATA_OUT : std_logic_vector(8 downto 0); -signal MC_RD_EN_IN : std_logic; -signal MC_FRAME_SIZE_OUT : std_logic_vector(15 downto 0); -signal MC_BUSY_IN : std_logic; -signal MC_TRANSMIT_DONE_IN : std_logic; -signal RC_FRAME_PROTO_OUT : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - -signal fc_data : std_logic_vector(7 downto 0); -signal fc_wr_en : std_logic; -signal fc_sod : std_logic; -signal fc_eod : std_logic; -signal fc_h_ready : std_logic; -signal fc_ip_size : std_logic_vector(15 downto 0); -signal fc_udp_size : std_logic_vector(15 downto 0); -signal fc_ready : std_logic; -signal fc_dest_mac : std_logic_vector(47 downto 0); -signal fc_dest_ip : std_logic_vector(31 downto 0); -signal fc_dest_udp : std_logic_vector(15 downto 0); -signal fc_src_mac : std_logic_vector(47 downto 0); -signal fc_src_ip : std_logic_vector(31 downto 0); -signal fc_src_udp : std_logic_vector(15 downto 0); -signal fc_type : std_logic_vector(15 downto 0); -signal mc_type : std_logic_vector(15 downto 0); -signal fc_ihl : std_logic_vector(7 downto 0); -signal fc_tos : std_logic_vector(7 downto 0); -signal fc_ident : std_logic_vector(15 downto 0); -signal fc_flags : std_logic_vector(15 downto 0); -signal fc_ttl : std_logic_vector(7 downto 0); -signal fc_proto : std_logic_vector(7 downto 0); -signal fr_src_mac : std_logic_vector(47 downto 0); -signal fr_dest_mac : std_logic_vector(47 downto 0); -signal fr_src_ip : std_logic_vector(31 downto 0); -signal fr_dest_ip : std_logic_vector(31 downto 0); -signal fr_src_udp : std_logic_vector(15 downto 0); -signal fr_dest_udp : std_logic_vector(15 downto 0); -signal rc_src_mac : std_logic_vector(47 downto 0); -signal rc_dest_mac : std_logic_vector(47 downto 0); -signal rc_src_ip : std_logic_vector(31 downto 0); -signal rc_dest_ip : std_logic_vector(31 downto 0); -signal rc_src_udp : std_logic_vector(15 downto 0); -signal rc_dest_udp : std_logic_vector(15 downto 0); - -signal mc_dest_mac : std_logic_vector(47 downto 0); -signal mc_dest_ip : std_logic_vector(31 downto 0); -signal mc_dest_udp : std_logic_vector(15 downto 0); -signal mc_src_mac : std_logic_vector(47 downto 0); -signal mc_src_ip : std_logic_vector(31 downto 0); -signal mc_src_udp : std_logic_vector(15 downto 0); - -signal fr_allowed_ip : std_logic_vector(31 downto 0); -signal fr_allowed_udp : std_logic_vector(31 downto 0); - -signal fr_ip_proto : std_logic_vector(7 downto 0); -signal mc_ip_proto : std_logic_vector(7 downto 0); - -signal additional_rand_pause : std_logic; - -signal pc_ready, pc_sos, pc_transmit_on, pc_wr_en, pc_sod, pc_eod, pc_fc_h_ready, pc_fc_ready : std_logic; -signal pc_data : std_logic_vector(7 downto 0); -signal pc_ip_size, pc_udp_size : std_logic_vector(15 downto 0); -signal gsc_init_read, gsc_init_dataready : std_logic; -signal gsc_reply_read, gsc_reply_dataready : std_logic; -signal gsc_reply_data, gsc_init_data : std_logic_vector(15 downto 0); -signal gsc_busy : std_logic; -signal gsc_init_packet_num, gsc_reply_packet_num : std_logic_vector(2 downto 0); -signal mc_flags, mc_ip_size, mc_udp_size : std_logic_vector(15 downto 0); - -begin - -HUB_STR : trb_net16_hub_streaming_port_sctrl - generic map( - --media interfaces - MII_NUMBER => 5, - MII_IS_UPLINK => (0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0), - MII_IS_DOWNLINK => (1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0), - MII_IS_UPLINK_ONLY => (0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0) - ) - port map( - CLK => CLK, - RESET => RESET, - CLK_EN => '1', - - --Media Interface - MED_DATAREADY_OUT => open, - MED_DATA_OUT => open, - MED_PACKET_NUM_OUT => open, - MED_READ_IN => (others => '0'), - MED_DATAREADY_IN => (others => '0'), - MED_DATA_IN => (others => '0'), - MED_PACKET_NUM_IN => (others => '0'), - MED_READ_OUT => open, - MED_STAT_OP => x"0007_0007_0007_0007_0007", - MED_CTRL_OP => open, - - --Event information coming from CTS - CTS_NUMBER_OUT => open, - CTS_CODE_OUT => open, - CTS_INFORMATION_OUT => open, - CTS_READOUT_TYPE_OUT => open, - CTS_START_READOUT_OUT => open, - - --Information sent to CTS - --status data, equipped with DHDR - CTS_DATA_IN => (others => '0'), - CTS_DATAREADY_IN => '0', - CTS_READOUT_FINISHED_IN => '0', - CTS_READ_OUT => open, - CTS_LENGTH_IN => (others => '0'), - CTS_STATUS_BITS_IN => (others => '0'), - - -- Data from Frontends - FEE_DATA_OUT => open, - FEE_DATAREADY_OUT => open, - FEE_READ_IN => '0', - FEE_STATUS_BITS_OUT => open, - FEE_BUSY_OUT => open, - - MY_ADDRESS_IN => (others => '0'), - - COMMON_STAT_REGS => open, - COMMON_CTRL_REGS => open, - ONEWIRE => open, - ONEWIRE_MONITOR_IN => '0', - ONEWIRE_MONITOR_OUT => open, - MY_ADDRESS_OUT => open, - UNIQUE_ID_OUT => open, - - --REGIO INTERFACE - REGIO_ADDR_OUT => open, - REGIO_READ_ENABLE_OUT => open, - REGIO_WRITE_ENABLE_OUT => open, - REGIO_DATA_OUT => open, - REGIO_DATA_IN => (others => '0'), - REGIO_DATAREADY_IN => '0', - REGIO_NO_MORE_DATA_IN => '0', - REGIO_WRITE_ACK_IN => '0', - REGIO_UNKNOWN_ADDR_IN => '0', - REGIO_TIMEOUT_OUT => open, - - - --Gbe Sctrl Input - GSC_INIT_DATAREADY_IN => gsc_init_dataready, - GSC_INIT_DATA_IN => gsc_init_data, - GSC_INIT_PACKET_NUM_IN => gsc_init_packet_num, - GSC_INIT_READ_OUT => gsc_init_read, - GSC_REPLY_DATAREADY_OUT => gsc_reply_dataready, - GSC_REPLY_DATA_OUT => gsc_reply_data, - GSC_REPLY_PACKET_NUM_OUT => gsc_reply_packet_num, - GSC_REPLY_READ_IN => gsc_reply_read, - GSC_BUSY_OUT => gsc_busy, - - --status and control ports - HUB_STAT_CHANNEL => open, - HUB_STAT_GEN => open, - MPLEX_CTRL => (others => '0'), - MPLEX_STAT => open, - STAT_REGS => open, - STAT_CTRL_REGS => open, - --Debugging registers - STAT_DEBUG => open, - CTRL_DEBUG => (others => '0') - ); - -packet_constr : trb_net16_gbe_packet_constr -port map( - RESET => RESET, - CLK => CLK, - MULT_EVT_ENABLE_IN => '0', - -- ports for user logic - PC_WR_EN_IN => '0', - PC_DATA_IN => (others => '0'), - PC_READY_OUT => pc_ready, - PC_START_OF_SUB_IN => pc_sos, - PC_END_OF_SUB_IN => '0', - PC_END_OF_DATA_IN => '0', - PC_TRANSMIT_ON_OUT => pc_transmit_on, - -- queue and subevent layer headers - PC_SUB_SIZE_IN => (others => '0'), - PC_PADDING_IN => '0', - PC_DECODING_IN => (others => '0'), - PC_EVENT_ID_IN => (others => '0'), - PC_TRIG_NR_IN => (others => '0'), - PC_QUEUE_DEC_IN => (others => '0'), - PC_MAX_FRAME_SIZE_IN => (others => '0'), - PC_DELAY_IN => (others => '0'), - -- FrameConstructor ports - TC_WR_EN_OUT => pc_wr_en, - TC_DATA_OUT => pc_data, - TC_H_READY_IN => pc_fc_h_ready, - TC_READY_IN => pc_fc_ready, - TC_IP_SIZE_OUT => pc_ip_size, - TC_UDP_SIZE_OUT => pc_udp_size, - TC_FLAGS_OFFSET_OUT => open, - TC_SOD_OUT => pc_sod, - TC_EOD_OUT => pc_eod, - DEBUG_OUT => open -); - -receiver : trb_net16_gbe_frame_receiver -port map ( - CLK => CLK, - RESET => RESET, - LINK_OK_IN => LINK_OK_IN, - ALLOW_RX_IN => ALLOW_RX_IN, - RX_MAC_CLK => RX_MAC_CLK, - - MAC_RX_EOF_IN => MAC_RX_EOF_IN, - MAC_RX_ER_IN => MAC_RX_ER_IN, - MAC_RXD_IN => MAC_RXD_IN, - MAC_RX_EN_IN => MAC_RX_EN_IN, - MAC_RX_FIFO_ERR_IN => MAC_RX_FIFO_ERR_IN, - MAC_RX_FIFO_FULL_OUT => MAC_RX_FIFO_FULL_OUT, - MAC_RX_STAT_EN_IN => MAC_RX_STAT_EN_IN, - MAC_RX_STAT_VEC_IN => MAC_RX_STAT_VEC_IN, - - FR_Q_OUT => FR_Q_OUT, - FR_RD_EN_IN => FR_RD_EN_IN, - FR_FRAME_VALID_OUT => FR_FRAME_VALID_OUT, - FR_GET_FRAME_IN => FR_GET_FRAME_IN, - FR_FRAME_SIZE_OUT => FR_FRAME_SIZE_OUT, - FR_FRAME_PROTO_OUT => FR_FRAME_PROTO_OUT, - FR_IP_PROTOCOL_OUT => fr_ip_proto, - FR_ALLOWED_TYPES_IN => FR_ALLOWED_TYPES_IN, - FR_ALLOWED_IP_IN => fr_allowed_ip, - FR_ALLOWED_UDP_IN => fr_allowed_udp, - FR_VLAN_ID_IN => x"aabb_0000", - - FR_SRC_MAC_ADDRESS_OUT => fr_src_mac, - FR_DEST_MAC_ADDRESS_OUT => fr_dest_mac, - FR_SRC_IP_ADDRESS_OUT => fr_src_ip, - FR_DEST_IP_ADDRESS_OUT => fr_dest_ip, - FR_SRC_UDP_PORT_OUT => fr_src_udp, - FR_DEST_UDP_PORT_OUT => fr_dest_udp, - - DEBUG_OUT => DEBUG_OUT -); - -receive_controler : trb_net16_gbe_receive_control -port map( - CLK => CLK, - RESET => RESET, - --- signals to/from frame_receiver - RC_DATA_IN => FR_Q_OUT, - FR_RD_EN_OUT => FR_RD_EN_IN, - FR_FRAME_VALID_IN => FR_FRAME_VALID_OUT, - FR_GET_FRAME_OUT => FR_GET_FRAME_IN, - FR_FRAME_SIZE_IN => FR_FRAME_SIZE_OUT, - FR_FRAME_PROTO_IN => FR_FRAME_PROTO_OUT, - FR_IP_PROTOCOL_IN => fr_ip_proto, - - FR_SRC_MAC_ADDRESS_IN => fr_src_mac, - FR_DEST_MAC_ADDRESS_IN => fr_dest_mac, - FR_SRC_IP_ADDRESS_IN => fr_src_ip, - FR_DEST_IP_ADDRESS_IN => fr_dest_ip, - FR_SRC_UDP_PORT_IN => fr_src_udp, - FR_DEST_UDP_PORT_IN => fr_dest_udp, - --- signals to/from main controller - RC_RD_EN_IN => RC_RD_EN_IN, - RC_Q_OUT => RC_Q_OUT, - RC_FRAME_WAITING_OUT => RC_FRAME_WAITING_OUT, - RC_LOADING_DONE_IN => RC_LOADING_DONE_IN, - RC_FRAME_SIZE_OUT => RC_FRAME_SIZE_OUT, - RC_FRAME_PROTO_OUT => RC_FRAME_PROTO_OUT, - - RC_SRC_MAC_ADDRESS_OUT => rc_src_mac, - RC_DEST_MAC_ADDRESS_OUT => rc_dest_mac, - RC_SRC_IP_ADDRESS_OUT => rc_src_ip, - RC_DEST_IP_ADDRESS_OUT => rc_dest_ip, - RC_SRC_UDP_PORT_OUT => rc_src_udp, - RC_DEST_UDP_PORT_OUT => rc_dest_udp, - --- statistics - FRAMES_RECEIVED_OUT => open, - BYTES_RECEIVED_OUT => open, - - DEBUG_OUT => open -); - -main_controller : trb_net16_gbe_main_control -port map ( - CLK => CLK, - CLK_125 => RX_MAC_CLK, - RESET => RESET, - - MC_LINK_OK_OUT => open, - MC_RESET_LINK_IN => '0', - --- signals to/from receive controller - RC_FRAME_WAITING_IN => RC_FRAME_WAITING_OUT, - RC_LOADING_DONE_OUT => RC_LOADING_DONE_IN, - RC_DATA_IN => RC_Q_OUT, - RC_RD_EN_OUT => RC_RD_EN_IN, - RC_FRAME_SIZE_IN => RC_FRAME_SIZE_OUT, - RC_FRAME_PROTO_IN => RC_FRAME_PROTO_OUT, - - RC_SRC_MAC_ADDRESS_IN => rc_src_mac, - RC_DEST_MAC_ADDRESS_IN => rc_dest_mac, - RC_SRC_IP_ADDRESS_IN => rc_src_ip, - RC_DEST_IP_ADDRESS_IN => rc_dest_ip, - RC_SRC_UDP_PORT_IN => rc_src_udp, - RC_DEST_UDP_PORT_IN => rc_dest_udp, - --- signals to/from transmit controller - TC_TRANSMIT_CTRL_OUT => MC_TRANSMIT_CTRL_OUT, - TC_TRANSMIT_DATA_OUT => MC_TRANSMIT_DATA_OUT, - TC_DATA_OUT => MC_DATA_OUT, - TC_RD_EN_IN => MC_RD_EN_IN, - TC_FRAME_SIZE_OUT => MC_FRAME_SIZE_OUT, - TC_FRAME_TYPE_OUT => mc_type, - TC_IP_PROTOCOL_OUT => mc_ip_proto, - - TC_DEST_MAC_OUT => mc_dest_mac, - TC_DEST_IP_OUT => mc_dest_ip, - TC_DEST_UDP_OUT => mc_dest_udp, - TC_SRC_MAC_OUT => mc_src_mac, - TC_SRC_IP_OUT => mc_src_ip, - TC_SRC_UDP_OUT => mc_src_udp, - - TC_IP_SIZE_OUT => mc_ip_size, - TC_UDP_SIZE_OUT => mc_udp_size, - TC_FLAGS_OFFSET_OUT => mc_flags, - - TC_BUSY_IN => MC_BUSY_IN, - TC_TRANSMIT_DONE_IN => MC_TRANSMIT_DONE_IN, - --- signals to/from packet constructor - PC_READY_IN => pc_ready, - PC_TRANSMIT_ON_IN => pc_transmit_on, - PC_SOD_IN => pc_sod, - --- signals to/from sgmii/gbe pcs_an_complete - PCS_AN_COMPLETE_IN => '1', - --- signals to/from hub - MC_UNIQUE_ID_IN => (others => '0'), - - GSC_CLK_IN => CLK, - GSC_INIT_DATAREADY_OUT => gsc_init_dataready, - GSC_INIT_DATA_OUT => gsc_init_data, - GSC_INIT_PACKET_NUM_OUT => gsc_init_packet_num, - GSC_INIT_READ_IN => gsc_init_read, - GSC_REPLY_DATAREADY_IN => gsc_reply_dataready, - GSC_REPLY_DATA_IN => gsc_reply_data, - GSC_REPLY_PACKET_NUM_IN => gsc_reply_packet_num, - GSC_REPLY_READ_OUT => gsc_reply_read, - GSC_BUSY_IN => gsc_busy, - --- signal to/from Host interface of TriSpeed MAC - TSM_HADDR_OUT => open, - TSM_HDATA_OUT => open, - TSM_HCS_N_OUT => open, - TSM_HWRITE_N_OUT => open, - TSM_HREAD_N_OUT => open, - TSM_HREADY_N_IN => '0', - TSM_HDATA_EN_N_IN => '1', - TSM_RX_STAT_VEC_IN => (others => '0'), - TSM_RX_STAT_EN_IN => '0', - - DEBUG_OUT => open -); - -transmit_controller : trb_net16_gbe_transmit_control -port map( - CLK => CLK, - RESET => RESET, - --- signals to/from packet constructor - PC_READY_IN => pc_ready, --'1', - PC_DATA_IN => pc_data, --(others => '0'), - PC_WR_EN_IN => pc_wr_en, --'0', - PC_IP_SIZE_IN => pc_ip_size, - PC_UDP_SIZE_IN => pc_udp_size, - PC_FLAGS_OFFSET_IN => (others => '0'), - PC_SOD_IN => pc_sod, - PC_EOD_IN => pc_eod, - PC_FC_READY_OUT => pc_fc_ready, - PC_FC_H_READY_OUT => pc_fc_h_ready, - PC_TRANSMIT_ON_IN => '0', - - -- signals from ip_configurator used by packet constructor - IC_DEST_MAC_ADDRESS_IN => x"112233445566", - IC_DEST_IP_ADDRESS_IN => x"aabbccdd", - IC_DEST_UDP_PORT_IN => x"0101", - IC_SRC_MAC_ADDRESS_IN => x"665544332211", - IC_SRC_IP_ADDRESS_IN => x"ddccbbaa", - IC_SRC_UDP_PORT_IN => x"0202", - --- signal to/from main controller - MC_TRANSMIT_CTRL_IN => MC_TRANSMIT_CTRL_OUT, - MC_TRANSMIT_DATA_IN => MC_TRANSMIT_DATA_OUT, - MC_DATA_IN => MC_DATA_OUT, - MC_RD_EN_OUT => MC_RD_EN_IN, - MC_FRAME_SIZE_IN => MC_FRAME_SIZE_OUT, - MC_FRAME_TYPE_IN => mc_type, - MC_IP_PROTOCOL_IN => mc_ip_proto, - - MC_DEST_MAC_IN => mc_dest_mac, - MC_DEST_IP_IN => mc_dest_ip, - MC_DEST_UDP_IN => mc_dest_udp, - MC_SRC_MAC_IN => mc_src_mac, - MC_SRC_IP_IN => mc_src_ip, - MC_SRC_UDP_IN => mc_src_udp, - - MC_IP_SIZE_IN => mc_ip_size, - MC_UDP_SIZE_IN => mc_udp_size, - MC_FLAGS_OFFSET_IN => mc_flags, - - MC_BUSY_OUT => MC_BUSY_IN, - MC_TRANSMIT_DONE_OUT => MC_TRANSMIT_DONE_IN, - --- signal to/from frame constructor - FC_DATA_OUT => fc_data, - FC_WR_EN_OUT => fc_wr_en, - FC_READY_IN => fc_ready, - FC_H_READY_IN => fc_h_ready, - FC_FRAME_TYPE_OUT => fc_type, - FC_IP_SIZE_OUT => fc_ip_size, - FC_UDP_SIZE_OUT => fc_udp_size, - FC_IDENT_OUT => fc_ident, - FC_FLAGS_OFFSET_OUT => fc_flags, - FC_SOD_OUT => fc_sod, - FC_EOD_OUT => fc_eod, - FC_IP_PROTOCOL_OUT => fc_proto, - - DEST_MAC_ADDRESS_OUT => fc_dest_mac, - DEST_IP_ADDRESS_OUT => fc_dest_ip, - DEST_UDP_PORT_OUT => fc_dest_udp, - SRC_MAC_ADDRESS_OUT => fc_src_mac, - SRC_IP_ADDRESS_OUT => fc_src_ip, - SRC_UDP_PORT_OUT => fc_src_udp, - - DEBUG_OUT => open -); - -frame_constructor : trb_net16_gbe_frame_constr -port map( - -- ports for user logic - RESET => RESET, - CLK => CLK, - LINK_OK_IN => '1', - -- - WR_EN_IN => fc_wr_en, - DATA_IN => fc_data, - START_OF_DATA_IN => fc_sod, - END_OF_DATA_IN => fc_eod, - IP_F_SIZE_IN => fc_ip_size, - UDP_P_SIZE_IN => fc_udp_size, - HEADERS_READY_OUT => fc_h_ready, - READY_OUT => fc_ready, - DEST_MAC_ADDRESS_IN => fc_dest_mac, - DEST_IP_ADDRESS_IN => fc_dest_ip, - DEST_UDP_PORT_IN => fc_dest_udp, - SRC_MAC_ADDRESS_IN => fc_src_mac, - SRC_IP_ADDRESS_IN => fc_src_ip, - SRC_UDP_PORT_IN => fc_src_udp, - FRAME_TYPE_IN => fc_type, - IHL_VERSION_IN => fc_ihl, - TOS_IN => fc_tos, - IDENTIFICATION_IN => fc_ident, - FLAGS_OFFSET_IN => fc_flags, - TTL_IN => fc_ttl, - PROTOCOL_IN => fc_proto, - FRAME_DELAY_IN => x"0000_0000", - -- ports for packetTransmitter - RD_CLK => RX_MAC_CLK, - FT_DATA_OUT => open, - FT_TX_EMPTY_OUT => open, - FT_TX_RD_EN_IN => '1', - FT_START_OF_PACKET_OUT => open, - FT_TX_DONE_IN => '1', - FT_TX_DISCFRM_IN => '0', - -- debug ports - BSM_CONSTR_OUT => open, - BSM_TRANS_OUT => open, - DEBUG_OUT => open -); - --- 100 MHz system clock -CLOCK_GEN_PROC: process -begin - CLK <= '1'; wait for 5.0 ns; - CLK <= '0'; wait for 5.0 ns; -end process CLOCK_GEN_PROC; - --- 125 MHz MAC clock -CLOCK2_GEN_PROC: process -begin - RX_MAC_CLK <= '1'; wait for 3.0 ns; - RX_MAC_CLK <= '0'; wait for 4.0 ns; -end process CLOCK2_GEN_PROC; - -CHECK_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - assert DEBUG_OUT(1) = '0' and DEBUG_OUT(3) = '0' report "FIFO FULL" severity error; - end if; -end process CHECK_PROC; - - -TESTBENCH_PROC : process - -variable seed1 : positive; -- seed for random generator -variable seed2 : positive; -- seed for random generator -variable rand : real; -- random value (0.0 ... 1.0) -variable int_rand : integer; -- random value, scaled to your needs - -begin - - wait for 50 ns; - RESET <= '1'; - - LINK_OK_IN <= '1'; - ALLOW_RX_IN <= '1'; - - MAC_RX_EOF_IN <= '0'; - MAC_RX_ER_IN <= '0'; - MAC_RXD_IN <= x"00"; - MAC_RX_EN_IN <= '0'; - MAC_RX_FIFO_ERR_IN <= '0'; - FR_ALLOWED_TYPES_IN <= x"0000_000f"; - fr_allowed_ip <= x"0000_000f"; - fr_allowed_udp <= x"0000_000f"; - additional_rand_pause <= '0'; - pc_sos <= '0'; --- gsc_init_read <= '0'; --- gsc_busy <= '0'; --- gsc_reply_data <= (others => '0'); --- gsc_reply_dataready <= '0'; --- - wait for 10 ns; - RESET <= '0'; - wait for 50 ns; - - --for i in 0 to 1000 loop - - wait for 400 ns; - - -- FIRST FRAME UDP - DHCP Offer - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- ip headers - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"5a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"49"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; -- udp - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; --- udp headers - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"43"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"2c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; --- dhcp data - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"de"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ad"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"fa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ce"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - - for i in 0 to 219 loop - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - end loop; - - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"35"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - wait for 1 us; - - -- FIRST FRAME UDP - DHCP Offer - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- ip headers - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"5a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"49"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; -- udp - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; --- udp headers - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"43"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"2c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; --- dhcp data - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"de"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ad"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"fa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ce"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - - for i in 0 to 219 loop - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - end loop; - - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"35"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"05"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - - - wait; - - - -- FIRST FRAME (ARP Request) - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- arp frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); --- hardware type - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- protocol type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- hardware size - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); --- protocol size - MAC_RXD_IN <= x"04"; - wait until rising_edge(RX_MAC_CLK); --- opcode (request) - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- sender mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- sender ip - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a9"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- target mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- target ip - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"65"; - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - - -- FIRST FRAME UDP - SCTRL READ REQUEST --- wait until rising_edge(RX_MAC_CLK); --- MAC_RX_EN_IN <= '1'; ----- dest mac --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); ----- src mac --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"aa"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"bb"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"cc"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"dd"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ee"; --- wait until rising_edge(RX_MAC_CLK); ----- frame type --- MAC_RXD_IN <= x"08"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); ----- ip headers --- MAC_RXD_IN <= x"45"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"10"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"01"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"5a"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"49"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"11"; -- udp --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"cc"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"cc"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"c0"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"a8"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"01"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"c0"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"a8"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"02"; ----- udp headers --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"43"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"61"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"a8"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"02"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"2c"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"aa"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"bb"; ----- sctrl data --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"31"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ff"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"08"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"30"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"50"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"af"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"fe"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"de"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"ad"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"33"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"08"; --- MAC_RX_EOF_IN <= '1'; --- wait until rising_edge(RX_MAC_CLK); --- --- MAC_RX_EN_IN <='0'; --- MAC_RX_EOF_IN <= '0'; - - --- wait until rising_edge(gsc_init_dataready); --- wait until rising_edge(CLK); --- gsc_init_read <= '1'; --- --- wait until falling_edge(gsc_init_dataready); --- wait until rising_edge(CLK); --- gsc_init_read <= '0'; --- --- --wait for 100 ns; --- --wait until rising_edge(gsc_reply_read); --- wait until rising_edge(CLK); --- wait until rising_edge(CLK); --- wait until rising_edge(CLK); --- wait until rising_edge(CLK); --- gsc_reply_data <= x"0101"; --- gsc_reply_dataready <= '1'; --- wait until rising_edge(CLK); --- gsc_reply_data <= x"0202"; --- wait until rising_edge(CLK); --- gsc_reply_data <= x"0303"; --- wait until rising_edge(CLK); --- gsc_reply_data <= x"0404"; --- wait until rising_edge(CLK); --- gsc_reply_data <= x"0505"; --- wait until rising_edge(CLK); --- gsc_reply_data <= x"0606"; --- wait until rising_edge(CLK); --- gsc_reply_data <= x"0707"; --- wait until rising_edge(CLK); --- gsc_reply_data <= x"0808"; --- wait until rising_edge(CLK); --- gsc_reply_dataready <= '0'; - - - -- STOP HERE - wait; - - - -- FIRST FRAME (ARP Request) - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- arp frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); --- hardware type - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- protocol type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- hardware size - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); --- protocol size - MAC_RXD_IN <= x"04"; - wait until rising_edge(RX_MAC_CLK); --- opcode (request) - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- sender mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- sender ip - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a9"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- target mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- target ip - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"65"; - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - - wait; - - - - --- FIRST FRAME UDP - DHCP Offer - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ef"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ef"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- ip headers - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"5a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"49"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; -- udp - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; --- udp headers - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"43"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"2c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; --- dhcp data - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"de"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ad"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"fa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ce"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - - for i in 0 to 219 loop - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - end loop; - - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"35"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - wait for 100 us; - - - - wait; - - - - - - - - - - - - - - -- FIRST FRAME IP - ICMP Ping request - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ef"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ef"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- ip headers - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"5a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"49"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; --- ping headers - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"47"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"d3"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0d"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"3c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- ping data - MAC_RXD_IN <= x"8c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"da"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"e7"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"4d"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"36"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c4"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0d"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"09"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0b"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0d"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0e"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0f"; - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EOF_IN <= '1'; - MAC_RXD_IN <= x"aa"; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - wait for 1500 ns; - - - - wait; - - - - - - -- FIRST FRAME IP - ICMP Ping request - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ef"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ef"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- ip headers - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"5a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"49"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; -- icmp - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; --- ping headers - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"47"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"d3"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0d"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"3c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- ping data - MAC_RXD_IN <= x"8c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"da"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"e7"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"4d"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"36"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c4"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0d"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"09"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0b"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0d"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0e"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"0f"; - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EOF_IN <= '1'; - MAC_RXD_IN <= x"aa"; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - --- end loop; - - wait for 1500 ns; - - - -- FIRST FRAME (ARP Request) - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- arp frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); --- hardware type - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- protocol type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- hardware size - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); --- protocol size - MAC_RXD_IN <= x"04"; - wait until rising_edge(RX_MAC_CLK); --- opcode (request) - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- sender mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- sender ip - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a9"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- target mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- target ip - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"65"; - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - - - - - --- FIRST FRAME UDP - DHCP Offer - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ef"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ef"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- ip headers - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"5a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"49"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; -- udp - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; --- udp headers - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"43"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"2c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; --- dhcp data - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"de"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ad"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"fa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ce"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - - for i in 0 to 219 loop - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - end loop; - - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"35"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - wait for 100 us; - - --- FIRST FRAME UDP - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"22"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"33"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"55"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- ip headers - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ab"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"40"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; --- udp headers - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"2c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); --- few data words - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"03"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"04"; - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - - wait for 100 ns; - - -- FIRST FRAME (ARP Request) - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"22"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"33"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"55"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- arp frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"07"; - wait until rising_edge(RX_MAC_CLK); --- hardware type - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- protocol type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- hardware size - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); --- protocol size - MAC_RXD_IN <= x"04"; - wait until rising_edge(RX_MAC_CLK); --- opcode (request) - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- sender mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- sender ip - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a9"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); --- target mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- target ip - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a9"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); --- cs - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"03"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"04"; - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - - wait for 100 ns; - --- SECOND FRAME - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"22"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"33"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"55"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"22"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"33"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"55"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); --- data - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); --- cs - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"03"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"04"; - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - - wait for 50 ns; - --- THIRD FRAME - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"22"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"33"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"55"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"22"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"33"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"55"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); --- data - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); --- cs - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"03"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"04"; - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - wait for 100 ns; - - - wait; - - FRAMES_LOOP : for i in 0 to 100 loop - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; - -- dest mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"22"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"33"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"55"; - wait until rising_edge(RX_MAC_CLK); - -- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"22"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"33"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"55"; - wait until rising_edge(RX_MAC_CLK); - -- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - -- data - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - -- cs - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"03"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"04"; - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - - wait for 100 ns; - end loop FRAMES_LOOP; - - wait for 1000 ns; - -end process; - - -end architecture; diff --git a/gbe2_ecp3/tb_gbe_buf.vhd b/gbe2_ecp3/tb_gbe_buf.vhd deleted file mode 100755 index d953228..0000000 --- a/gbe2_ecp3/tb_gbe_buf.vhd +++ /dev/null @@ -1,946 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.math_real.all; -USE ieee.numeric_std.ALL; - -use work.trb_net_gbe_components.all; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS --- component trb_net16_gbe_buf is --- generic( --- DO_SIMULATION : integer range 0 to 1 := 1; --- USE_125MHZ_EXTCLK : integer range 0 to 1 := 1 --- ); --- port( --- CLK : in std_logic; --- TEST_CLK : in std_logic; -- only for simulation! --- CLK_125_IN : in std_logic; -- gk 28.04.01 used only in internal 125MHz clock mode --- RESET : in std_logic; --- GSR_N : in std_logic; --- -- Debug --- STAGE_STAT_REGS_OUT : out std_logic_vector(31 downto 0); --- STAGE_CTRL_REGS_IN : in std_logic_vector(31 downto 0); --- -- configuration interface --- IP_CFG_START_IN : in std_logic; --- IP_CFG_BANK_SEL_IN : in std_logic_vector(3 downto 0); --- IP_CFG_DONE_OUT : out std_logic; --- IP_CFG_MEM_ADDR_OUT : out std_logic_vector(7 downto 0); --- IP_CFG_MEM_DATA_IN : in std_logic_vector(31 downto 0); --- IP_CFG_MEM_CLK_OUT : out std_logic; --- MR_RESET_IN : in std_logic; --- MR_MODE_IN : in std_logic; --- MR_RESTART_IN : in std_logic; --- -- gk 29.03.10 --- SLV_ADDR_IN : in std_logic_vector(7 downto 0); --- SLV_READ_IN : in std_logic; --- SLV_WRITE_IN : in std_logic; --- SLV_BUSY_OUT : out std_logic; --- SLV_ACK_OUT : out std_logic; --- SLV_DATA_IN : in std_logic_vector(31 downto 0); --- SLV_DATA_OUT : out std_logic_vector(31 downto 0); --- -- gk 22.04.10 --- -- registers setup interface --- BUS_ADDR_IN : in std_logic_vector(7 downto 0); --- BUS_DATA_IN : in std_logic_vector(31 downto 0); --- BUS_DATA_OUT : out std_logic_vector(31 downto 0); -- gk 26.04.10 --- BUS_WRITE_EN_IN : in std_logic; -- gk 26.04.10 --- BUS_READ_EN_IN : in std_logic; -- gk 26.04.10 --- BUS_ACK_OUT : out std_logic; -- gk 26.04.10 --- -- gk 23.04.10 --- LED_PACKET_SENT_OUT : out std_logic; --- LED_AN_DONE_N_OUT : out std_logic; --- -- CTS interface --- CTS_NUMBER_IN : in std_logic_vector (15 downto 0); --- CTS_CODE_IN : in std_logic_vector (7 downto 0); --- CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); --- CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); --- CTS_START_READOUT_IN : in std_logic; --- CTS_DATA_OUT : out std_logic_vector (31 downto 0); --- CTS_DATAREADY_OUT : out std_logic; --- CTS_READOUT_FINISHED_OUT : out std_logic; --- CTS_READ_IN : in std_logic; --- CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); --- CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); --- -- Data payload interface --- FEE_DATA_IN : in std_logic_vector (15 downto 0); --- FEE_DATAREADY_IN : in std_logic; --- FEE_READ_OUT : out std_logic; --- FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); --- FEE_BUSY_IN : in std_logic; --- --SFP Connection --- SFP_RXD_P_IN : in std_logic; --- SFP_RXD_N_IN : in std_logic; --- SFP_TXD_P_OUT : out std_logic; --- SFP_TXD_N_OUT : out std_logic; --- SFP_REFCLK_P_IN : in std_logic; --- SFP_REFCLK_N_IN : in std_logic; --- SFP_PRSNT_N_IN : in std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted) --- SFP_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) --- SFP_TXDIS_OUT : out std_logic; -- SFP disable --- --- -- interface between main_controller and hub logic --- MC_UNIQUE_ID_IN : in std_logic_vector(63 downto 0); --- GSC_CLK_IN : in std_logic; --- GSC_INIT_DATAREADY_OUT : out std_logic; --- GSC_INIT_DATA_OUT : out std_logic_vector(15 downto 0); --- GSC_INIT_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); --- GSC_INIT_READ_IN : in std_logic; --- GSC_REPLY_DATAREADY_IN : in std_logic; --- GSC_REPLY_DATA_IN : in std_logic_vector(15 downto 0); --- GSC_REPLY_PACKET_NUM_IN : in std_logic_vector(2 downto 0); --- GSC_REPLY_READ_OUT : out std_logic; --- GSC_BUSY_IN : in std_logic; --- --- MAKE_RESET_OUT : out std_logic; --- --- -- for simulation of receiving part only --- MAC_RX_EOF_IN : in std_logic; --- MAC_RXD_IN : in std_logic_vector(7 downto 0); --- MAC_RX_EN_IN : in std_logic; --- --- --- -- debug ports --- ANALYZER_DEBUG_OUT : out std_logic_vector(63 downto 0) ---); --- END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL TEST_CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL GSR_N : std_logic; - SIGNAL STAGE_STAT_REGS_OUT : std_logic_vector(31 downto 0); - SIGNAL STAGE_CTRL_REGS_IN : std_logic_vector(31 downto 0); - SIGNAL IP_CFG_START_IN : std_logic; - SIGNAL IP_CFG_BANK_SEL_IN : std_logic_vector(3 downto 0); - SIGNAL IP_CFG_MEM_DATA_IN : std_logic_vector(31 downto 0); - SIGNAL MR_RESET_IN : std_logic; - SIGNAL MR_MODE_IN : std_logic; - SIGNAL MR_RESTART_IN : std_logic; - SIGNAL IP_CFG_MEM_CLK_OUT : std_logic; - SIGNAL IP_CFG_DONE_OUT : std_logic; - SIGNAL IP_CFG_MEM_ADDR_OUT : std_logic_vector(7 downto 0); - SIGNAL CTS_NUMBER_IN : std_logic_vector(15 downto 0); - SIGNAL CTS_CODE_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_INFORMATION_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_READOUT_TYPE_IN : std_logic_vector(3 downto 0); - SIGNAL CTS_START_READOUT_IN : std_logic; - SIGNAL CTS_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL CTS_DATAREADY_OUT : std_logic; - SIGNAL CTS_READOUT_FINISHED_OUT : std_logic; - SIGNAL CTS_READ_IN : std_logic; - SIGNAL CTS_LENGTH_OUT : std_logic_vector(15 downto 0); - SIGNAL CTS_ERROR_PATTERN_OUT : std_logic_vector(31 downto 0); - SIGNAL FEE_DATA_IN : std_logic_vector(15 downto 0); - SIGNAL FEE_DATAREADY_IN : std_logic; - SIGNAL FEE_READ_OUT : std_logic; - SIGNAL FEE_STATUS_BITS_IN : std_logic_vector(31 downto 0); - SIGNAL FEE_BUSY_IN : std_logic; - SIGNAL SFP_RXD_P_IN : std_logic; - SIGNAL SFP_RXD_N_IN : std_logic; - SIGNAL SFP_TXD_P_OUT : std_logic; - SIGNAL SFP_TXD_N_OUT : std_logic; - SIGNAL SFP_REFCLK_P_IN : std_logic; - SIGNAL SFP_REFCLK_N_IN : std_logic; - SIGNAL SFP_PRSNT_N_IN : std_logic; - SIGNAL SFP_LOS_IN : std_logic; - SIGNAL SFP_TXDIS_OUT : std_logic; - SIGNAL ANALYZER_DEBUG_OUT : std_logic_vector(63 downto 0); - --gk 29.03.10 - signal SLV_ADDR_IN : std_logic_vector(7 downto 0); - signal SLV_READ_IN : std_logic; - signal SLV_WRITE_IN : std_logic; - signal SLV_BUSY_OUT : std_logic; - signal SLV_ACK_OUT : std_logic; - signal SLV_DATA_IN : std_logic_vector(31 downto 0); - signal SLV_DATA_OUT : std_logic_vector(31 downto 0); - -- for simulation of receiving part only - signal MAC_RX_EOF_IN : std_logic; - signal MAC_RXD_IN : std_logic_vector(7 downto 0); - signal MAC_RX_EN_IN : std_logic; - - signal reply_busy, reply_dataready : std_logic; - signal reply_data : std_logic_vector(15 downto 0); - - signal RX_MAC_CLK : std_logic; - - -BEGIN - -RX_MAC_CLK <= test_clk; - --- Please check and add your generic clause manually - uut: trb_net16_gbe_buf - GENERIC MAP( DO_SIMULATION => 1, USE_125MHZ_EXTCLK => 1 ) - PORT MAP( - CLK => CLK, - CLK_125_IN => '0', - TEST_CLK => TEST_CLK, - RESET => RESET, - GSR_N => GSR_N, - STAGE_STAT_REGS_OUT => STAGE_STAT_REGS_OUT, - STAGE_CTRL_REGS_IN => STAGE_CTRL_REGS_IN, - IP_CFG_START_IN => IP_CFG_START_IN, - IP_CFG_BANK_SEL_IN => IP_CFG_BANK_SEL_IN, - IP_CFG_MEM_DATA_IN => IP_CFG_MEM_DATA_IN, - MR_RESET_IN => MR_RESET_IN, - MR_MODE_IN => MR_MODE_IN, - MR_RESTART_IN => MR_RESTART_IN, - IP_CFG_MEM_CLK_OUT => IP_CFG_MEM_CLK_OUT, - IP_CFG_DONE_OUT => IP_CFG_DONE_OUT, - IP_CFG_MEM_ADDR_OUT => IP_CFG_MEM_ADDR_OUT, - -- gk 29.03.10 - SLV_ADDR_IN => SLV_ADDR_IN, - SLV_READ_IN => SLV_READ_IN, - SLV_WRITE_IN => SLV_WRITE_IN, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, - SLV_DATA_IN => SLV_DATA_IN, - SLV_DATA_OUT => SLV_DATA_OUT, - -- gk 22.04.10 - -- registers setup interface - BUS_ADDR_IN => x"00", - BUS_DATA_IN => x"0000_0000", - BUS_DATA_OUT => open, - BUS_WRITE_EN_IN => '0', - BUS_READ_EN_IN => '0', - BUS_ACK_OUT => open, - -- gk 23.04.10 - LED_PACKET_SENT_OUT => open, - LED_AN_DONE_N_OUT => open, - -------------------------- - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_READ_IN => CTS_READ_IN, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - FEE_BUSY_IN => FEE_BUSY_IN, - SFP_RXD_P_IN => SFP_RXD_P_IN, - SFP_RXD_N_IN => SFP_RXD_N_IN, - SFP_TXD_P_OUT => SFP_TXD_P_OUT, - SFP_TXD_N_OUT => SFP_TXD_N_OUT, - SFP_REFCLK_P_IN => SFP_REFCLK_P_IN, - SFP_REFCLK_N_IN => SFP_REFCLK_N_IN, - SFP_PRSNT_N_IN => SFP_PRSNT_N_IN, - SFP_LOS_IN => SFP_LOS_IN, - SFP_TXDIS_OUT => SFP_TXDIS_OUT, - - MC_UNIQUE_ID_IN => (others => '0'), - GSC_CLK_IN => test_clk, - GSC_INIT_DATAREADY_OUT => open, - GSC_INIT_DATA_OUT => open, - GSC_INIT_PACKET_NUM_OUT => open, - GSC_INIT_READ_IN => '0', - GSC_REPLY_DATAREADY_IN => reply_dataready, - GSC_REPLY_DATA_IN => reply_data, --(others => '0'), - GSC_REPLY_PACKET_NUM_IN => (others => '0'), - GSC_REPLY_READ_OUT => open, - GSC_BUSY_IN => reply_busy, - - MAKE_RESET_OUT => open, - - - -- for simulation of receiving part only - MAC_RX_EOF_IN => MAC_RX_EOF_IN, - MAC_RXD_IN => MAC_RXD_IN, - MAC_RX_EN_IN => MAC_RX_EN_IN, - ANALYZER_DEBUG_OUT => ANALYZER_DEBUG_OUT - ); - - - --- 100 MHz system clock -CLOCK_GEN_PROC: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLOCK_GEN_PROC; - --- 125 MHz MAC clock -CLOCK2_GEN_PROC: process -begin - test_clk <= '1'; wait for 4.0 ns; - test_clk <= '0'; wait for 4.0 ns; -end process CLOCK2_GEN_PROC; - - ---SCTRL_TESTBENCH_PROC : process ---begin --- ---for j in 0 to 5000 loop --- --- reply_dataready <= '0'; --- reply_busy <= '0'; --- reply_data <= (others => '0'); --- --- wait for 76 us; --- --- for i in 0 to 1000 loop --- --- wait until rising_edge(clk); --- reply_dataready <= '1'; --- reply_busy <= '1'; --- reply_data <= std_logic_vector(to_unsigned(i, 16)); --- --- end loop; --- wait until rising_edge(clk); --- reply_dataready <= '0'; --- reply_busy <= '0'; --- --- wait for 13 us; ---end loop; --- ---end process SCTRL_TESTBENCH_PROC; - - - - - - - --- Testbench -TESTBENCH_PROC: process --- test data from TRBnet -variable test_data_len : integer range 0 to 65535 := 1; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_hdr_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_data : unsigned(15 downto 0) := x"ffff"; -variable test_data2 : unsigned(7 downto 0) := x"ff"; - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; - --- 1400 bytes MTU => 350 as limit for fragmentation -variable max_event_size : real := 512.0; - -variable seed1 : positive; -- seed for random generator -variable seed2 : positive; -- seed for random generator -variable rand : real; -- random value (0.0 ... 1.0) -variable int_rand : integer; -- random value, scaled to your needs -variable cts_random_number : std_logic_vector(7 downto 0); -variable up_down_switch : integer := 0; -variable stim : std_logic_vector(15 downto 0); -variable random_size : integer := 1; --- RND test ---UNIFORM(seed1, seed2, rand); ---int_rand := INTEGER(TRUNC(rand*65536.0)); ---stim := std_logic_vector(to_unsigned(int_rand, stim'LENGTH)); - -begin - -- Setup signals - reset <= '0'; - gsr_n <= '1'; - - stage_ctrl_regs_in <= x"0000_0000"; - - --ip_cfg_start_in <= '0'; - --ip_cfg_bank_sel_in <= x"0"; - --ip_cfg_mem_data_in <= x"0000_0000"; - mr_reset_in <= '0'; - mr_mode_in <= '0'; - mr_restart_in <= '0'; - SLV_ADDR_IN <= x"00"; - SLV_READ_IN <= '0'; - SLV_WRITE_IN <= '0'; - SLV_DATA_IN <= x"0000_0000"; - - sfp_los_in <= '0'; -- signal from SFP is present - sfp_prsnt_n_in <= '0'; -- SFP itself is present - sfp_refclk_n_in <= '0'; - sfp_refclk_p_in <= '1'; - - cts_number_in <= x"0000"; - cts_code_in <= x"00"; - cts_information_in <= x"00"; - cts_readout_type_in <= x"0"; - cts_start_readout_in <= '0'; - cts_read_in <= '0'; - - fee_data_in <= x"0000"; - fee_dataready_in <= '0'; - fee_status_bits_in <= x"1234_5678"; - fee_busy_in <= '0'; - - MAC_RX_EN_IN <= '0'; - MAC_RX_EOF_IN <= '0'; - MAC_RXD_IN <= (others => '0'); - - - wait for 22 ns; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - gsr_n <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - gsr_n <= '1'; - wait until rising_edge(clk); - --wait for 100 ns; - - -- Tests may start here --- wait until ft_bsm_init_tst = x"7"; - - --ip_cfg_start_in <= '1'; - - wait for 700 us; - - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 5000; - - wait until rising_edge(test_clk); - - -- FIRST FRAME UDP - DHCP Offer - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac --- MAC_RXD_IN <= x"02"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"be"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); --- MAC_RXD_IN <= x"00"; --- wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- ip headers - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"5a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"49"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; -- udp - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; --- udp headers - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"43"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"2c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; --- dhcp data - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"fa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ce"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - - for i in 0 to 219 loop - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - end loop; - - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"35"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - wait for 1 us; - - - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <= '1'; --- dest mac - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"be"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- src mac - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"dd"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ee"; - wait until rising_edge(RX_MAC_CLK); --- frame type - MAC_RXD_IN <= x"08"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); --- ip headers - MAC_RXD_IN <= x"45"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"5a"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"49"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ff"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"11"; -- udp - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"cc"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; --- udp headers - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"43"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"44"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"2c"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"aa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"bb"; --- dhcp data - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"06"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"fa"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"ce"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"c0"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"a8"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"10"; - - for i in 0 to 219 loop - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - end loop; - - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"35"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"01"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"02"; - wait until rising_edge(RX_MAC_CLK); - MAC_RXD_IN <= x"00"; - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EOF_IN <= '1'; - - wait until rising_edge(RX_MAC_CLK); - MAC_RX_EN_IN <='0'; - MAC_RX_EOF_IN <= '0'; - - - - --- RECEIVE_LOOP: for J in 0 to 1 loop --- --- wait for 200 ns; --- --- -- IPU transmission starts --- wait until rising_edge(test_clk); --- --- test_data2 := x"ff"; --- MY_DATA_LOOP2: for k in 0 to 200 + (J * 10) loop --- test_data2 := test_data2 + 1; --- wait until rising_edge(test_clk); --- MAC_RXD_IN <= std_logic_vector(test_data2); --- MAC_RX_EN_IN <= '1'; --- end loop MY_DATA_LOOP2; --- --- MAC_RX_EN_IN <= '0'; --- MAC_RXD_IN <= "00000000"; --- MAC_RX_EOF_IN <= '1'; --- wait until rising_edge(test_clk); --- MAC_RX_EOF_IN <= '0'; --- --- --wait for 3 us; --- --- end loop RECEIVE_LOOP; - test_data_len := 20; -- + (1 - J) * 200; - --- MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop --- -- generate a real random byte for CTS --- UNIFORM(seed1, seed2, rand); --- int_rand := INTEGER(TRUNC(rand*256.0)); --- cts_random_number := std_logic_vector(to_unsigned(int_rand, cts_random_number'LENGTH)); --- --- -- IPU transmission starts --- wait until rising_edge(clk); --- cts_number_in <= std_logic_vector( trigger_counter ); --- cts_code_in <= cts_random_number; --- cts_information_in <= x"d2"; -- cts_information_in <= x"de"; -- gk 29.03.10 --- cts_readout_type_in <= x"1"; --- cts_start_readout_in <= '1'; --- wait until rising_edge(clk); --- wait for 400 ns; --- --- wait until rising_edge(clk); --- fee_busy_in <= '1'; --- wait for 300 ns; --- wait until rising_edge(clk); --- --- -- ONE DATA TRANSMISSION --- -- dice a length --- UNIFORM(seed1, seed2, rand); --- --test_data_len := INTEGER(TRUNC(rand * 800.0)) + 1; --- --- --test_data_len := 9685; ----- test_data_len := 2000; -- + (1 - J) * 200; --- --- --test_data_len := INTEGER(TRUNC(rand*7500.0)); --20; -- + (1 - J) * 200; --- test_data_len := 349; --- --- -- calculate the needed variables --- test_loop_len := 2*(test_data_len - 1) + 1; --- test_hdr_len := to_unsigned( test_data_len + 1, 16 ); --- test_evt_len := to_unsigned( test_data_len, 16 ); --- --- -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21) --- fee_dataready_in <= '1'; --- fee_data_in <= x"1111"; --x"10" & cts_random_number; --- wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of first data word --- fee_dataready_in <= '0'; --- wait until rising_edge(clk); -- BLA --- wait until rising_edge(clk); -- BLA --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- fee_dataready_in <= '1'; --- fee_data_in <= x"2222"; --std_logic_vector( trigger_counter ); --- wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of second data word --- fee_dataready_in <= '0'; --- wait until rising_edge(clk); -- BLA --- wait until rising_edge(clk); -- BLA --- wait until rising_edge(clk); -- BLA --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- fee_dataready_in <= '1'; --- fee_data_in <= std_logic_vector( test_hdr_len ); --- wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of third data word --- fee_data_in <= x"3333"; --x"ff21"; --- wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of fourth data word --- fee_dataready_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- fee_dataready_in <= '1'; --- fee_data_in <= std_logic_vector( test_evt_len ); --- wait until rising_edge(clk) and (fee_read_out = '1'); --- fee_data_in <= x"ff22"; --- wait until rising_edge(clk) and (fee_read_out = '1'); --- fee_dataready_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- --- test_data := x"ffff"; --- MY_DATA_LOOP: for J in 0 to test_loop_len loop --- test_data := test_data + 1; --- wait until rising_edge(clk) and (fee_read_out = '1'); --- fee_data_in <= std_logic_vector(test_data); ----- if( (test_data MOD 5) = 0 ) then ----- fee_dataready_in <= '0'; ----- wait until rising_edge(clk); ----- wait until rising_edge(clk); ----- wait until rising_edge(clk); ----- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ------- wait until rising_edge(clk); ----- fee_dataready_in <= '1'; ----- else ----- fee_dataready_in <= '1'; ----- end if; --- fee_dataready_in <= '1'; --- end loop MY_DATA_LOOP; --- -- there must be padding words to get multiple of four LWs --- --- wait until rising_edge(clk); --- fee_dataready_in <= '0'; --- fee_data_in <= x"0000"; --- --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- fee_busy_in <= '0'; --- --- --- trigger_loop := trigger_loop + 1; --- trigger_counter := trigger_counter + 1; --- --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- cts_read_in <= '1'; --- wait until rising_edge(clk); --- cts_read_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- cts_start_readout_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- --- test_data_len := test_data_len + 111; --- --- --wait for 8 us; --- --- end loop MY_TRIGGER_LOOP; - - - - - - - - - --- wait for 8 us; -------------------------------------------------------------------------------- --- end of loop -------------------------------------------------------------------------------- - -- Stay a while... stay forever!!! - wait; - -end process TESTBENCH_PROC; - -END; - diff --git a/gbe2_ecp3/tb_ip_configurator.vhd b/gbe2_ecp3/tb_ip_configurator.vhd deleted file mode 100755 index 6188d42..0000000 --- a/gbe2_ecp3/tb_ip_configurator.vhd +++ /dev/null @@ -1,145 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT ip_configurator - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - START_CONFIG_IN : IN std_logic; - BANK_SELECT_IN : IN std_logic_vector(3 downto 0); - MEM_DATA_IN : IN std_logic_vector(31 downto 0); - CONFIG_DONE_OUT : OUT std_logic; - MEM_ADDR_OUT : OUT std_logic_vector(7 downto 0); - MEM_CLK_OUT : OUT std_logic; - DEST_MAC_OUT : OUT std_logic_vector(47 downto 0); - DEST_IP_OUT : OUT std_logic_vector(31 downto 0); - DEST_UDP_OUT : OUT std_logic_vector(15 downto 0); - SRC_MAC_OUT : OUT std_logic_vector(47 downto 0); - SRC_IP_OUT : OUT std_logic_vector(31 downto 0); - SRC_UDP_OUT : OUT std_logic_vector(15 downto 0); - MTU_OUT : OUT std_logic_vector(15 downto 0); - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL START_CONFIG_IN : std_logic; - SIGNAL BANK_SELECT_IN : std_logic_vector(3 downto 0); - SIGNAL CONFIG_DONE_OUT : std_logic; - SIGNAL MEM_ADDR_OUT : std_logic_vector(7 downto 0); - SIGNAL MEM_DATA_IN : std_logic_vector(31 downto 0); - SIGNAL MEM_CLK_OUT : std_logic; - SIGNAL DEST_MAC_OUT : std_logic_vector(47 downto 0); - SIGNAL DEST_IP_OUT : std_logic_vector(31 downto 0); - SIGNAL DEST_UDP_OUT : std_logic_vector(15 downto 0); - SIGNAL SRC_MAC_OUT : std_logic_vector(47 downto 0); - SIGNAL SRC_IP_OUT : std_logic_vector(31 downto 0); - SIGNAL SRC_UDP_OUT : std_logic_vector(15 downto 0); - SIGNAL MTU_OUT : std_logic_vector(15 downto 0); - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: ip_configurator PORT MAP( - CLK => CLK, - RESET => RESET, - START_CONFIG_IN => START_CONFIG_IN, - BANK_SELECT_IN => BANK_SELECT_IN, - CONFIG_DONE_OUT => CONFIG_DONE_OUT, - MEM_ADDR_OUT => MEM_ADDR_OUT, - MEM_DATA_IN => MEM_DATA_IN, - MEM_CLK_OUT => MEM_CLK_OUT, - DEST_MAC_OUT => DEST_MAC_OUT, - DEST_IP_OUT => DEST_IP_OUT, - DEST_UDP_OUT => DEST_UDP_OUT, - SRC_MAC_OUT => SRC_MAC_OUT, - SRC_IP_OUT => SRC_IP_OUT, - SRC_UDP_OUT => SRC_UDP_OUT, - MTU_OUT => MTU_OUT, - DEBUG_OUT => DEBUG_OUT - ); - - -CLK_GEN_PROC: process -begin - clk <= '0'; wait for 5.0 ns; - clk <= '1'; wait for 5.0 ns; -end process CLK_GEN_PROC; - -THE_TESTBENCH: process -begin - -- Setup signals - reset <= '0'; - start_config_in <= '0'; - bank_select_in <= x"0"; - mem_data_in <= x"0000_0000"; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait for 100 ns; - wait until rising_edge(clk); - - -- Tests may start now - wait until rising_edge(clk); - start_config_in <= '1'; - wait until mem_addr_out(3 downto 0) = x"1"; - wait until rising_edge(clk); - mem_data_in <= x"4902d745"; -- dest MAC low - wait until rising_edge(clk); - mem_data_in <= x"00006cf0"; -- dest MAC high - wait until rising_edge(clk); - mem_data_in <= x"c0a80002"; -- dest IP - wait until rising_edge(clk); - mem_data_in <= x"0000c350"; -- dest port - wait until rising_edge(clk); - mem_data_in <= x"eeeeeeee"; -- src MAC low - wait until rising_edge(clk); - mem_data_in <= x"0000eeee"; -- src MAC high - wait until rising_edge(clk); - mem_data_in <= x"c0a80005"; -- src IP - wait until rising_edge(clk); - mem_data_in <= x"0000c350"; -- src port - wait until rising_edge(clk); - mem_data_in <= x"00000578"; -- MTU - wait until rising_edge(clk); - mem_data_in <= x"99999999"; - wait until rising_edge(clk); - mem_data_in <= x"aaaaaaaa"; - wait until rising_edge(clk); - mem_data_in <= x"bbbbbbbb"; - wait until rising_edge(clk); - mem_data_in <= x"cccccccc"; - wait until rising_edge(clk); - mem_data_in <= x"dddddddd"; - wait until rising_edge(clk); - mem_data_in <= x"eeeeeeee"; - wait until rising_edge(clk); - mem_data_in <= x"ffffffff"; - wait until rising_edge(clk); - mem_data_in <= x"00000000"; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - start_config_in <= '0'; - - -- Stay a while... stay forever!!! Muahahaha!!!!! - wait; -end process THE_TESTBENCH; - - -END; diff --git a/gbe2_ecp3/tb_ipu2gbe.vhd b/gbe2_ecp3/tb_ipu2gbe.vhd deleted file mode 100755 index 065e674..0000000 --- a/gbe2_ecp3/tb_ipu2gbe.vhd +++ /dev/null @@ -1,428 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.math_real.all; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT trb_net16_ipu2gbe - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - START_CONFIG_OUT : OUT std_logic; - BANK_SELECT_OUT : OUT std_logic_vector(3 downto 0); - CONFIG_DONE_IN : IN std_logic; - DATA_GBE_ENABLE_IN : IN std_logic; - DATA_IPU_ENABLE_IN : IN std_logic; - MULTI_EVT_ENABLE_IN : IN std_logic; - CTS_NUMBER_IN : IN std_logic_vector(15 downto 0); - CTS_CODE_IN : IN std_logic_vector(7 downto 0); - CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0); - CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0); - CTS_START_READOUT_IN : IN std_logic; - CTS_READ_IN : IN std_logic; - FEE_DATA_IN : IN std_logic_vector(15 downto 0); - FEE_DATAREADY_IN : IN std_logic; - FEE_BUSY_IN : IN std_logic; - FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0); - PC_READY_IN : IN std_logic; - CTS_DATA_OUT : OUT std_logic_vector(31 downto 0); - CTS_DATAREADY_OUT : OUT std_logic; - CTS_READOUT_FINISHED_OUT : OUT std_logic; - CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0); - CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0); - FEE_READ_OUT : OUT std_logic; - PC_WR_EN_OUT : OUT std_logic; - PC_DATA_OUT : OUT std_logic_vector(7 downto 0); - PC_SOS_OUT : OUT std_logic; - PC_EOD_OUT : OUT std_logic; - PC_SUB_SIZE_OUT : OUT std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : OUT std_logic_vector(31 downto 0); - PC_PADDING_OUT : OUT std_logic; - BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0); - BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0); - DBG_REM_CTR_OUT : OUT std_logic_vector(3 downto 0); - DBG_CTS_CTR_OUT : OUT std_logic_vector(2 downto 0); - DBG_SF_WCNT_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RCNT_OUT : OUT std_logic_vector(16 downto 0); - DBG_SF_DATA_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RD_EN_OUT : OUT std_logic; - DBG_SF_WR_EN_OUT : OUT std_logic; - DBG_SF_EMPTY_OUT : OUT std_logic; - DBG_SF_AEMPTY_OUT : OUT std_logic; - DBG_SF_FULL_OUT : OUT std_logic; - DBG_SF_AFULL_OUT : OUT std_logic; - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL START_CONFIG_OUT : std_logic; - SIGNAL BANK_SELECT_OUT : std_logic_vector(3 downto 0); - SIGNAL CONFIG_DONE_IN : std_logic; - SIGNAL DATA_GBE_ENABLE_IN : std_logic; - SIGNAL DATA_IPU_ENABLE_IN : std_logic; - SIGNAL MULTI_EVT_ENABLE_IN : std_logic; - SIGNAL CTS_NUMBER_IN : std_logic_vector(15 downto 0); - SIGNAL CTS_CODE_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_INFORMATION_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_READOUT_TYPE_IN : std_logic_vector(3 downto 0); - SIGNAL CTS_START_READOUT_IN : std_logic; - SIGNAL CTS_READ_IN : std_logic; - SIGNAL CTS_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL CTS_DATAREADY_OUT : std_logic; - SIGNAL CTS_READOUT_FINISHED_OUT : std_logic; - SIGNAL CTS_LENGTH_OUT : std_logic_vector(15 downto 0); - SIGNAL CTS_ERROR_PATTERN_OUT : std_logic_vector(31 downto 0); - SIGNAL FEE_DATA_IN : std_logic_vector(15 downto 0); - SIGNAL FEE_DATAREADY_IN : std_logic; - SIGNAL FEE_READ_OUT : std_logic; - SIGNAL FEE_BUSY_IN : std_logic; - SIGNAL FEE_STATUS_BITS_IN : std_logic_vector(31 downto 0); - SIGNAL PC_WR_EN_OUT : std_logic; - SIGNAL PC_DATA_OUT : std_logic_vector(7 downto 0); - SIGNAL PC_READY_IN : std_logic; - SIGNAL PC_SOS_OUT : std_logic; - SIGNAL PC_EOD_OUT : std_logic; - SIGNAL PC_SUB_SIZE_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_TRIG_NR_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_PADDING_OUT : std_logic; - SIGNAL BSM_SAVE_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_LOAD_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_REM_CTR_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_CTS_CTR_OUT : std_logic_vector(2 downto 0); - SIGNAL DBG_SF_WCNT_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RCNT_OUT : std_logic_vector(16 downto 0); - SIGNAL DBG_SF_DATA_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RD_EN_OUT : std_logic; - SIGNAL DBG_SF_WR_EN_OUT : std_logic; - SIGNAL DBG_SF_EMPTY_OUT : std_logic; - SIGNAL DBG_SF_AEMPTY_OUT : std_logic; - SIGNAL DBG_SF_FULL_OUT : std_logic; - SIGNAL DBG_SF_AFULL_OUT : std_logic; - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: trb_net16_ipu2gbe PORT MAP( - CLK => CLK, - RESET => RESET, - START_CONFIG_OUT => START_CONFIG_OUT, - BANK_SELECT_OUT => BANK_SELECT_OUT, - CONFIG_DONE_IN => CONFIG_DONE_IN, - DATA_GBE_ENABLE_IN => DATA_GBE_ENABLE_IN, - DATA_IPU_ENABLE_IN => DATA_IPU_ENABLE_IN, - MULTI_EVT_ENABLE_IN => MULTI_EVT_ENABLE_IN, - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_READ_IN => CTS_READ_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_BUSY_IN => FEE_BUSY_IN, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - PC_WR_EN_OUT => PC_WR_EN_OUT, - PC_DATA_OUT => PC_DATA_OUT, - PC_READY_IN => PC_READY_IN, - PC_SOS_OUT => PC_SOS_OUT, - PC_EOD_OUT => PC_EOD_OUT, - PC_SUB_SIZE_OUT => PC_SUB_SIZE_OUT, - PC_TRIG_NR_OUT => PC_TRIG_NR_OUT, - PC_PADDING_OUT => PC_PADDING_OUT, - BSM_SAVE_OUT => BSM_SAVE_OUT, - BSM_LOAD_OUT => BSM_LOAD_OUT, - DBG_REM_CTR_OUT => DBG_REM_CTR_OUT, - DBG_CTS_CTR_OUT => DBG_CTS_CTR_OUT, - DBG_SF_WCNT_OUT => DBG_SF_WCNT_OUT, - DBG_SF_RCNT_OUT => DBG_SF_RCNT_OUT, - DBG_SF_DATA_OUT => DBG_SF_DATA_OUT, - DBG_SF_RD_EN_OUT => DBG_SF_RD_EN_OUT, - DBG_SF_WR_EN_OUT => DBG_SF_WR_EN_OUT, - DBG_SF_EMPTY_OUT => DBG_SF_EMPTY_OUT, - DBG_SF_AEMPTY_OUT => DBG_SF_AEMPTY_OUT, - DBG_SF_FULL_OUT => DBG_SF_FULL_OUT, - DBG_SF_AFULL_OUT => DBG_SF_AFULL_OUT, - DEBUG_OUT => DEBUG_OUT - ); - -CLOCK_GEN: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLOCK_GEN; - -PC_READY_PROC: process -begin - pc_ready_in <= '0'; - wait for 500 ns; - pc_ready_in <= '1'; - wait for 500 ns; - pc_ready_in <= '0'; - wait for 99 us; -end process PC_READY_PROC; - --- Testbench -TESTBENCH_PROC: process --- test data from TRBnet -variable test_data_len : integer range 0 to 65535 := 1; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_hdr_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_data : unsigned(15 downto 0) := x"ffff"; - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; - --- 1400 bytes MTU => 350 as limit for fragmentation ---variable max_event_size : real := 512.0; -variable max_event_size : real := 17.0; - -variable seed1 : positive; -- seed for random generator -variable seed2 : positive; -- seed for random generator -variable rand : real; -- random value (0.0 ... 1.0) -variable int_rand : integer; -- random value, scaled to your needs -variable cts_random_number : std_logic_vector(7 downto 0); - -variable stim : std_logic_vector(15 downto 0); - -begin - -- Setup signals - reset <= '0'; - cts_number_in <= x"0000"; - cts_code_in <= x"00"; - cts_information_in <= x"00"; - cts_readout_type_in <= x"0"; - cts_start_readout_in <= '0'; - cts_read_in <= '0'; - fee_data_in <= x"0000"; - fee_dataready_in <= '0'; - fee_status_bits_in <= x"0000_0000"; - fee_busy_in <= '0'; --- pc_ready_in <= '0'; - - config_done_in <= '1'; - data_gbe_enable_in <= '1'; - data_ipu_enable_in <= '0'; - multi_evt_enable_in <= '0'; - - wait for 22 ns; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - wait for 200 ns; - ---------------------------- - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 2; - - MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop - -- generate a real random byte for CTS - UNIFORM(seed1, seed2, rand); - int_rand := INTEGER(TRUNC(rand*256.0)); - cts_random_number := std_logic_vector(to_unsigned(int_rand, cts_random_number'LENGTH)); - - -- IPU transmission starts - wait until rising_edge(clk); - cts_number_in <= std_logic_vector( trigger_counter ); - cts_code_in <= cts_random_number; - cts_information_in <= x"de"; - cts_readout_type_in <= x"1"; - cts_start_readout_in <= '1'; - wait until rising_edge(clk); - wait for 400 ns; - - wait until rising_edge(clk); - fee_busy_in <= '1'; - wait for 300 ns; - wait until rising_edge(clk); - - -- ONE DATA TRANSMISSION - -- dice a length - UNIFORM(seed1, seed2, rand); - test_data_len := INTEGER(TRUNC(rand*max_event_size)) + 1; - --- test_data_len := 9685; - - -- calculate the needed variables - test_loop_len := 2*(test_data_len - 1) + 1; - test_hdr_len := to_unsigned( test_data_len + 1, 16 ); - test_evt_len := to_unsigned( test_data_len, 16 ); - - -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21) - fee_dataready_in <= '1'; - fee_data_in <= x"10" & cts_random_number; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of first data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( trigger_counter ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of second data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_hdr_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of third data word - fee_data_in <= x"ff21"; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of fourth data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_evt_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_data_in <= x"ff22"; - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - test_data := x"ffff"; - MY_DATA_LOOP: for J in 0 to test_loop_len loop - test_data := test_data + 1; - wait until rising_edge(clk) and (fee_read_out = '1'); -- - fee_data_in <= std_logic_vector(test_data); - if( (test_data MOD 5) = 0 ) then - fee_dataready_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - else - fee_dataready_in <= '1'; - end if; - end loop MY_DATA_LOOP; - -- there must be padding words to get multiple of four LWs - - wait until rising_edge(clk); - fee_dataready_in <= '0'; - fee_data_in <= x"0000"; - - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_busy_in <= '0'; - - - trigger_loop := trigger_loop + 1; - trigger_counter := trigger_counter + 1; - - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_read_in <= '1'; - wait until rising_edge(clk); - cts_read_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_start_readout_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - --wait for 8 us; - - end loop MY_TRIGGER_LOOP; - - - ---------------------------- ---------------------------- - wait for 300 ns; - - wait; - - -- Start packet_constructor - wait until rising_edge(clk); - wait until rising_edge(clk); --- pc_ready_in <= '1'; - wait until rising_edge(clk); - - wait until rising_edge(clk); - wait until pc_eod_out = '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); --- pc_ready_in <= '0'; - - -- Stay a while... stay forever!!! - wait; - -end process TESTBENCH_PROC; - - -END; diff --git a/gbe2_ecp3/tb_ipu2gbe_NEW.vhd b/gbe2_ecp3/tb_ipu2gbe_NEW.vhd deleted file mode 100755 index bd8b288..0000000 --- a/gbe2_ecp3/tb_ipu2gbe_NEW.vhd +++ /dev/null @@ -1,428 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.math_real.all; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT trb_net16_ipu2gbe_new - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - START_CONFIG_OUT : OUT std_logic; - BANK_SELECT_OUT : OUT std_logic_vector(3 downto 0); - CONFIG_DONE_IN : IN std_logic; - DATA_GBE_ENABLE_IN : IN std_logic; - DATA_IPU_ENABLE_IN : IN std_logic; - MULTI_EVT_ENABLE_IN : IN std_logic; - CTS_NUMBER_IN : IN std_logic_vector(15 downto 0); - CTS_CODE_IN : IN std_logic_vector(7 downto 0); - CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0); - CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0); - CTS_START_READOUT_IN : IN std_logic; - CTS_READ_IN : IN std_logic; - FEE_DATA_IN : IN std_logic_vector(15 downto 0); - FEE_DATAREADY_IN : IN std_logic; - FEE_BUSY_IN : IN std_logic; - FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0); - PC_READY_IN : IN std_logic; - CTS_DATA_OUT : OUT std_logic_vector(31 downto 0); - CTS_DATAREADY_OUT : OUT std_logic; - CTS_READOUT_FINISHED_OUT : OUT std_logic; - CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0); - CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0); - FEE_READ_OUT : OUT std_logic; - PC_WR_EN_OUT : OUT std_logic; - PC_DATA_OUT : OUT std_logic_vector(7 downto 0); - PC_SOS_OUT : OUT std_logic; - PC_EOD_OUT : OUT std_logic; - PC_SUB_SIZE_OUT : OUT std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : OUT std_logic_vector(31 downto 0); - PC_PADDING_OUT : OUT std_logic; - BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0); - BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0); - DBG_REM_CTR_OUT : OUT std_logic_vector(3 downto 0); - DBG_CTS_CTR_OUT : OUT std_logic_vector(2 downto 0); - DBG_SF_WCNT_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RCNT_OUT : OUT std_logic_vector(16 downto 0); - DBG_SF_DATA_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RD_EN_OUT : OUT std_logic; - DBG_SF_WR_EN_OUT : OUT std_logic; - DBG_SF_EMPTY_OUT : OUT std_logic; - DBG_SF_AEMPTY_OUT : OUT std_logic; - DBG_SF_FULL_OUT : OUT std_logic; - DBG_SF_AFULL_OUT : OUT std_logic; - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL START_CONFIG_OUT : std_logic; - SIGNAL BANK_SELECT_OUT : std_logic_vector(3 downto 0); - SIGNAL CONFIG_DONE_IN : std_logic; - SIGNAL DATA_GBE_ENABLE_IN : std_logic; - SIGNAL DATA_IPU_ENABLE_IN : std_logic; - SIGNAL MULTI_EVT_ENABLE_IN : std_logic; - SIGNAL CTS_NUMBER_IN : std_logic_vector(15 downto 0); - SIGNAL CTS_CODE_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_INFORMATION_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_READOUT_TYPE_IN : std_logic_vector(3 downto 0); - SIGNAL CTS_START_READOUT_IN : std_logic; - SIGNAL CTS_READ_IN : std_logic; - SIGNAL CTS_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL CTS_DATAREADY_OUT : std_logic; - SIGNAL CTS_READOUT_FINISHED_OUT : std_logic; - SIGNAL CTS_LENGTH_OUT : std_logic_vector(15 downto 0); - SIGNAL CTS_ERROR_PATTERN_OUT : std_logic_vector(31 downto 0); - SIGNAL FEE_DATA_IN : std_logic_vector(15 downto 0); - SIGNAL FEE_DATAREADY_IN : std_logic; - SIGNAL FEE_READ_OUT : std_logic; - SIGNAL FEE_BUSY_IN : std_logic; - SIGNAL FEE_STATUS_BITS_IN : std_logic_vector(31 downto 0); - SIGNAL PC_WR_EN_OUT : std_logic; - SIGNAL PC_DATA_OUT : std_logic_vector(7 downto 0); - SIGNAL PC_READY_IN : std_logic; - SIGNAL PC_SOS_OUT : std_logic; - SIGNAL PC_EOD_OUT : std_logic; - SIGNAL PC_SUB_SIZE_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_TRIG_NR_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_PADDING_OUT : std_logic; - SIGNAL BSM_SAVE_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_LOAD_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_REM_CTR_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_CTS_CTR_OUT : std_logic_vector(2 downto 0); - SIGNAL DBG_SF_WCNT_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RCNT_OUT : std_logic_vector(16 downto 0); - SIGNAL DBG_SF_DATA_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RD_EN_OUT : std_logic; - SIGNAL DBG_SF_WR_EN_OUT : std_logic; - SIGNAL DBG_SF_EMPTY_OUT : std_logic; - SIGNAL DBG_SF_AEMPTY_OUT : std_logic; - SIGNAL DBG_SF_FULL_OUT : std_logic; - SIGNAL DBG_SF_AFULL_OUT : std_logic; - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: trb_net16_ipu2gbe_new PORT MAP( - CLK => CLK, - RESET => RESET, - START_CONFIG_OUT => START_CONFIG_OUT, - BANK_SELECT_OUT => BANK_SELECT_OUT, - CONFIG_DONE_IN => CONFIG_DONE_IN, - DATA_GBE_ENABLE_IN => DATA_GBE_ENABLE_IN, - DATA_IPU_ENABLE_IN => DATA_IPU_ENABLE_IN, - MULTI_EVT_ENABLE_IN => MULTI_EVT_ENABLE_IN, - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_READ_IN => CTS_READ_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_BUSY_IN => FEE_BUSY_IN, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - PC_WR_EN_OUT => PC_WR_EN_OUT, - PC_DATA_OUT => PC_DATA_OUT, - PC_READY_IN => PC_READY_IN, - PC_SOS_OUT => PC_SOS_OUT, - PC_EOD_OUT => PC_EOD_OUT, - PC_SUB_SIZE_OUT => PC_SUB_SIZE_OUT, - PC_TRIG_NR_OUT => PC_TRIG_NR_OUT, - PC_PADDING_OUT => PC_PADDING_OUT, - BSM_SAVE_OUT => BSM_SAVE_OUT, - BSM_LOAD_OUT => BSM_LOAD_OUT, - DBG_REM_CTR_OUT => DBG_REM_CTR_OUT, - DBG_CTS_CTR_OUT => DBG_CTS_CTR_OUT, - DBG_SF_WCNT_OUT => DBG_SF_WCNT_OUT, - DBG_SF_RCNT_OUT => DBG_SF_RCNT_OUT, - DBG_SF_DATA_OUT => DBG_SF_DATA_OUT, - DBG_SF_RD_EN_OUT => DBG_SF_RD_EN_OUT, - DBG_SF_WR_EN_OUT => DBG_SF_WR_EN_OUT, - DBG_SF_EMPTY_OUT => DBG_SF_EMPTY_OUT, - DBG_SF_AEMPTY_OUT => DBG_SF_AEMPTY_OUT, - DBG_SF_FULL_OUT => DBG_SF_FULL_OUT, - DBG_SF_AFULL_OUT => DBG_SF_AFULL_OUT, - DEBUG_OUT => DEBUG_OUT - ); - -CLOCK_GEN: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLOCK_GEN; - -PC_READY_PROC: process -begin - pc_ready_in <= '0'; - wait for 500 ns; - pc_ready_in <= '1'; - wait for 500 ns; - pc_ready_in <= '0'; - wait for 99 us; -end process PC_READY_PROC; - --- Testbench -TESTBENCH_PROC: process --- test data from TRBnet -variable test_data_len : integer range 0 to 65535 := 1; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_hdr_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_data : unsigned(15 downto 0) := x"ffff"; - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; - --- 1400 bytes MTU => 350 as limit for fragmentation ---variable max_event_size : real := 512.0; -variable max_event_size : real := 17.0; - -variable seed1 : positive; -- seed for random generator -variable seed2 : positive; -- seed for random generator -variable rand : real; -- random value (0.0 ... 1.0) -variable int_rand : integer; -- random value, scaled to your needs -variable cts_random_number : std_logic_vector(7 downto 0); - -variable stim : std_logic_vector(15 downto 0); - -begin - -- Setup signals - reset <= '0'; - cts_number_in <= x"0000"; - cts_code_in <= x"00"; - cts_information_in <= x"00"; - cts_readout_type_in <= x"0"; - cts_start_readout_in <= '0'; - cts_read_in <= '0'; - fee_data_in <= x"0000"; - fee_dataready_in <= '0'; - fee_status_bits_in <= x"0000_0000"; - fee_busy_in <= '0'; --- pc_ready_in <= '0'; - - config_done_in <= '1'; - data_gbe_enable_in <= '1'; - data_ipu_enable_in <= '0'; - multi_evt_enable_in <= '0'; - - wait for 22 ns; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - wait for 200 ns; - ---------------------------- - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 2; - - MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop - -- generate a real random byte for CTS - UNIFORM(seed1, seed2, rand); - int_rand := INTEGER(TRUNC(rand*256.0)); - cts_random_number := std_logic_vector(to_unsigned(int_rand, cts_random_number'LENGTH)); - - -- IPU transmission starts - wait until rising_edge(clk); - cts_number_in <= std_logic_vector( trigger_counter ); - cts_code_in <= cts_random_number; - cts_information_in <= x"de"; - cts_readout_type_in <= x"1"; - cts_start_readout_in <= '1'; - wait until rising_edge(clk); - wait for 400 ns; - - wait until rising_edge(clk); - fee_busy_in <= '1'; - wait for 300 ns; - wait until rising_edge(clk); - - -- ONE DATA TRANSMISSION - -- dice a length - UNIFORM(seed1, seed2, rand); - test_data_len := INTEGER(TRUNC(rand*max_event_size)) + 1; - --- test_data_len := 9685; - - -- calculate the needed variables - test_loop_len := 2*(test_data_len - 1) + 1; - test_hdr_len := to_unsigned( test_data_len + 1, 16 ); - test_evt_len := to_unsigned( test_data_len, 16 ); - - -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21) - fee_dataready_in <= '1'; - fee_data_in <= x"10" & cts_random_number; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of first data word --- fee_dataready_in <= '0'; --- wait until rising_edge(clk); -- BLA --- wait until rising_edge(clk); -- BLA --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( trigger_counter ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of second data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_hdr_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of third data word - fee_data_in <= x"ff21"; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of fourth data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_evt_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_data_in <= x"ff22"; - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - test_data := x"ffff"; - MY_DATA_LOOP: for J in 0 to test_loop_len loop - test_data := test_data + 1; - wait until rising_edge(clk) and (fee_read_out = '1'); -- - fee_data_in <= std_logic_vector(test_data); - if( (test_data MOD 5) = 0 ) then - fee_dataready_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - else - fee_dataready_in <= '1'; - end if; - end loop MY_DATA_LOOP; - -- there must be padding words to get multiple of four LWs - - wait until rising_edge(clk); - fee_dataready_in <= '0'; - fee_data_in <= x"0000"; - - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_busy_in <= '0'; - - - trigger_loop := trigger_loop + 1; - trigger_counter := trigger_counter + 1; - - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_read_in <= '1'; - wait until rising_edge(clk); - cts_read_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_start_readout_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - --wait for 8 us; - - end loop MY_TRIGGER_LOOP; - - - ---------------------------- ---------------------------- - wait for 300 ns; - - wait; - - -- Start packet_constructor - wait until rising_edge(clk); - wait until rising_edge(clk); --- pc_ready_in <= '1'; - wait until rising_edge(clk); - - wait until rising_edge(clk); - wait until pc_eod_out = '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); --- pc_ready_in <= '0'; - - -- Stay a while... stay forever!!! - wait; - -end process TESTBENCH_PROC; - - -END; diff --git a/gbe2_ecp3/tb_ipu2gbe_OLD.vhd b/gbe2_ecp3/tb_ipu2gbe_OLD.vhd deleted file mode 100755 index 088bfb2..0000000 --- a/gbe2_ecp3/tb_ipu2gbe_OLD.vhd +++ /dev/null @@ -1,428 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.math_real.all; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT trb_net16_ipu2gbe - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - START_CONFIG_OUT : OUT std_logic; - BANK_SELECT_OUT : OUT std_logic_vector(3 downto 0); - CONFIG_DONE_IN : IN std_logic; - DATA_GBE_ENABLE_IN : IN std_logic; - DATA_IPU_ENABLE_IN : IN std_logic; - MULTI_EVT_ENABLE_IN : IN std_logic; - CTS_NUMBER_IN : IN std_logic_vector(15 downto 0); - CTS_CODE_IN : IN std_logic_vector(7 downto 0); - CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0); - CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0); - CTS_START_READOUT_IN : IN std_logic; - CTS_READ_IN : IN std_logic; - FEE_DATA_IN : IN std_logic_vector(15 downto 0); - FEE_DATAREADY_IN : IN std_logic; - FEE_BUSY_IN : IN std_logic; - FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0); - PC_READY_IN : IN std_logic; - CTS_DATA_OUT : OUT std_logic_vector(31 downto 0); - CTS_DATAREADY_OUT : OUT std_logic; - CTS_READOUT_FINISHED_OUT : OUT std_logic; - CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0); - CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0); - FEE_READ_OUT : OUT std_logic; - PC_WR_EN_OUT : OUT std_logic; - PC_DATA_OUT : OUT std_logic_vector(7 downto 0); - PC_SOS_OUT : OUT std_logic; - PC_EOD_OUT : OUT std_logic; - PC_SUB_SIZE_OUT : OUT std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : OUT std_logic_vector(31 downto 0); - PC_PADDING_OUT : OUT std_logic; - BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0); - BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0); - DBG_REM_CTR_OUT : OUT std_logic_vector(3 downto 0); - DBG_CTS_CTR_OUT : OUT std_logic_vector(2 downto 0); - DBG_SF_WCNT_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RCNT_OUT : OUT std_logic_vector(16 downto 0); - DBG_SF_DATA_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RD_EN_OUT : OUT std_logic; - DBG_SF_WR_EN_OUT : OUT std_logic; - DBG_SF_EMPTY_OUT : OUT std_logic; - DBG_SF_AEMPTY_OUT : OUT std_logic; - DBG_SF_FULL_OUT : OUT std_logic; - DBG_SF_AFULL_OUT : OUT std_logic; - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL START_CONFIG_OUT : std_logic; - SIGNAL BANK_SELECT_OUT : std_logic_vector(3 downto 0); - SIGNAL CONFIG_DONE_IN : std_logic; - SIGNAL DATA_GBE_ENABLE_IN : std_logic; - SIGNAL DATA_IPU_ENABLE_IN : std_logic; - SIGNAL MULTI_EVT_ENABLE_IN : std_logic; - SIGNAL CTS_NUMBER_IN : std_logic_vector(15 downto 0); - SIGNAL CTS_CODE_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_INFORMATION_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_READOUT_TYPE_IN : std_logic_vector(3 downto 0); - SIGNAL CTS_START_READOUT_IN : std_logic; - SIGNAL CTS_READ_IN : std_logic; - SIGNAL CTS_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL CTS_DATAREADY_OUT : std_logic; - SIGNAL CTS_READOUT_FINISHED_OUT : std_logic; - SIGNAL CTS_LENGTH_OUT : std_logic_vector(15 downto 0); - SIGNAL CTS_ERROR_PATTERN_OUT : std_logic_vector(31 downto 0); - SIGNAL FEE_DATA_IN : std_logic_vector(15 downto 0); - SIGNAL FEE_DATAREADY_IN : std_logic; - SIGNAL FEE_READ_OUT : std_logic; - SIGNAL FEE_BUSY_IN : std_logic; - SIGNAL FEE_STATUS_BITS_IN : std_logic_vector(31 downto 0); - SIGNAL PC_WR_EN_OUT : std_logic; - SIGNAL PC_DATA_OUT : std_logic_vector(7 downto 0); - SIGNAL PC_READY_IN : std_logic; - SIGNAL PC_SOS_OUT : std_logic; - SIGNAL PC_EOD_OUT : std_logic; - SIGNAL PC_SUB_SIZE_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_TRIG_NR_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_PADDING_OUT : std_logic; - SIGNAL BSM_SAVE_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_LOAD_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_REM_CTR_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_CTS_CTR_OUT : std_logic_vector(2 downto 0); - SIGNAL DBG_SF_WCNT_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RCNT_OUT : std_logic_vector(16 downto 0); - SIGNAL DBG_SF_DATA_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RD_EN_OUT : std_logic; - SIGNAL DBG_SF_WR_EN_OUT : std_logic; - SIGNAL DBG_SF_EMPTY_OUT : std_logic; - SIGNAL DBG_SF_AEMPTY_OUT : std_logic; - SIGNAL DBG_SF_FULL_OUT : std_logic; - SIGNAL DBG_SF_AFULL_OUT : std_logic; - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: trb_net16_ipu2gbe PORT MAP( - CLK => CLK, - RESET => RESET, - START_CONFIG_OUT => START_CONFIG_OUT, - BANK_SELECT_OUT => BANK_SELECT_OUT, - CONFIG_DONE_IN => CONFIG_DONE_IN, - DATA_GBE_ENABLE_IN => DATA_GBE_ENABLE_IN, - DATA_IPU_ENABLE_IN => DATA_IPU_ENABLE_IN, - MULTI_EVT_ENABLE_IN => MULTI_EVT_ENABLE_IN, - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_READ_IN => CTS_READ_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_BUSY_IN => FEE_BUSY_IN, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - PC_WR_EN_OUT => PC_WR_EN_OUT, - PC_DATA_OUT => PC_DATA_OUT, - PC_READY_IN => PC_READY_IN, - PC_SOS_OUT => PC_SOS_OUT, - PC_EOD_OUT => PC_EOD_OUT, - PC_SUB_SIZE_OUT => PC_SUB_SIZE_OUT, - PC_TRIG_NR_OUT => PC_TRIG_NR_OUT, - PC_PADDING_OUT => PC_PADDING_OUT, - BSM_SAVE_OUT => BSM_SAVE_OUT, - BSM_LOAD_OUT => BSM_LOAD_OUT, - DBG_REM_CTR_OUT => DBG_REM_CTR_OUT, - DBG_CTS_CTR_OUT => DBG_CTS_CTR_OUT, - DBG_SF_WCNT_OUT => DBG_SF_WCNT_OUT, - DBG_SF_RCNT_OUT => DBG_SF_RCNT_OUT, - DBG_SF_DATA_OUT => DBG_SF_DATA_OUT, - DBG_SF_RD_EN_OUT => DBG_SF_RD_EN_OUT, - DBG_SF_WR_EN_OUT => DBG_SF_WR_EN_OUT, - DBG_SF_EMPTY_OUT => DBG_SF_EMPTY_OUT, - DBG_SF_AEMPTY_OUT => DBG_SF_AEMPTY_OUT, - DBG_SF_FULL_OUT => DBG_SF_FULL_OUT, - DBG_SF_AFULL_OUT => DBG_SF_AFULL_OUT, - DEBUG_OUT => DEBUG_OUT - ); - -CLOCK_GEN: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLOCK_GEN; - -PC_READY_PROC: process -begin - pc_ready_in <= '0'; - wait for 500 ns; - pc_ready_in <= '1'; - wait for 500 ns; - pc_ready_in <= '0'; - wait for 99 us; -end process PC_READY_PROC; - --- Testbench -TESTBENCH_PROC: process --- test data from TRBnet -variable test_data_len : integer range 0 to 65535 := 1; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_hdr_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_data : unsigned(15 downto 0) := x"ffff"; - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; - --- 1400 bytes MTU => 350 as limit for fragmentation -variable max_event_size : real := 512.0; ---variable max_event_size : real := 1024.0; - -variable seed1 : positive; -- seed for random generator -variable seed2 : positive; -- seed for random generator -variable rand : real; -- random value (0.0 ... 1.0) -variable int_rand : integer; -- random value, scaled to your needs -variable cts_random_number : std_logic_vector(7 downto 0); - -variable stim : std_logic_vector(15 downto 0); - -begin - -- Setup signals - reset <= '0'; - cts_number_in <= x"0000"; - cts_code_in <= x"00"; - cts_information_in <= x"00"; - cts_readout_type_in <= x"0"; - cts_start_readout_in <= '0'; - cts_read_in <= '0'; - fee_data_in <= x"0000"; - fee_dataready_in <= '0'; - fee_status_bits_in <= x"0000_0000"; - fee_busy_in <= '0'; --- pc_ready_in <= '0'; - - config_done_in <= '1'; - data_gbe_enable_in <= '1'; - data_ipu_enable_in <= '0'; - multi_evt_enable_in <= '0'; - - wait for 22 ns; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - wait for 200 ns; - ---------------------------- - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 40; - - MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop - -- generate a real random byte for CTS - UNIFORM(seed1, seed2, rand); - int_rand := INTEGER(TRUNC(rand*256.0)); - cts_random_number := std_logic_vector(to_unsigned(int_rand, cts_random_number'LENGTH)); - - -- IPU transmission starts - wait until rising_edge(clk); - cts_number_in <= std_logic_vector( trigger_counter ); - cts_code_in <= cts_random_number; - cts_information_in <= x"de"; - cts_readout_type_in <= x"1"; - cts_start_readout_in <= '1'; - wait until rising_edge(clk); - wait for 400 ns; - - wait until rising_edge(clk); - fee_busy_in <= '1'; - wait for 300 ns; - wait until rising_edge(clk); - - -- ONE DATA TRANSMISSION - -- dice a length - UNIFORM(seed1, seed2, rand); - test_data_len := INTEGER(TRUNC(rand*max_event_size)) + 1; - --- test_data_len := 9685; - - -- calculate the needed variables - test_loop_len := 2*(test_data_len - 1) + 1; - test_hdr_len := to_unsigned( test_data_len + 1, 16 ); - test_evt_len := to_unsigned( test_data_len, 16 ); - - -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21) - fee_dataready_in <= '1'; - fee_data_in <= x"10" & cts_random_number; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of first data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( trigger_counter ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of second data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_hdr_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of third data word - fee_data_in <= x"ff21"; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of fourth data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_evt_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_data_in <= x"ff22"; - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - test_data := x"ffff"; - MY_DATA_LOOP: for J in 0 to test_loop_len loop - test_data := test_data + 1; - wait until rising_edge(clk) and (fee_read_out = '1'); -- - fee_data_in <= std_logic_vector(test_data); - if( (test_data MOD 5) = 0 ) then - fee_dataready_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - else - fee_dataready_in <= '1'; - end if; - end loop MY_DATA_LOOP; - -- there must be padding words to get multiple of four LWs - - wait until rising_edge(clk); - fee_dataready_in <= '0'; - fee_data_in <= x"0000"; - - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_busy_in <= '0'; - - - trigger_loop := trigger_loop + 1; - trigger_counter := trigger_counter + 1; - - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_read_in <= '1'; - wait until rising_edge(clk); - cts_read_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_start_readout_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - --wait for 8 us; - - end loop MY_TRIGGER_LOOP; - - - ---------------------------- ---------------------------- - wait for 300 ns; - - wait; - - -- Start packet_constructor - wait until rising_edge(clk); - wait until rising_edge(clk); --- pc_ready_in <= '1'; - wait until rising_edge(clk); - - wait until rising_edge(clk); - wait until pc_eod_out = '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); --- pc_ready_in <= '0'; - - -- Stay a while... stay forever!!! - wait; - -end process TESTBENCH_PROC; - - -END; diff --git a/gbe2_ecp3/tb_lsm.vhd b/gbe2_ecp3/tb_lsm.vhd deleted file mode 100755 index 6e86029..0000000 --- a/gbe2_ecp3/tb_lsm.vhd +++ /dev/null @@ -1,113 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT trb_net16_lsm_sfp_gbe - PORT( - SYSCLK : IN std_logic; - RESET : IN std_logic; - CLEAR : IN std_logic; - SFP_MISSING_IN : IN std_logic; - SFP_LOS_IN : IN std_logic; - SD_LINK_OK_IN : IN std_logic; - SD_LOS_IN : IN std_logic; - SD_TXCLK_BAD_IN : IN std_logic; - SD_RXCLK_BAD_IN : IN std_logic; - FULL_RESET_OUT : OUT std_logic; - LANE_RESET_OUT : OUT std_logic; - USER_RESET_OUT : OUT std_logic; - TIMING_CTR_OUT : OUT std_logic_vector(18 downto 0); - BSM_OUT : OUT std_logic_vector(3 downto 0); - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL SYSCLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL CLEAR : std_logic; - SIGNAL SFP_MISSING_IN : std_logic; - SIGNAL SFP_LOS_IN : std_logic; - SIGNAL SD_LINK_OK_IN : std_logic; - SIGNAL SD_LOS_IN : std_logic; - SIGNAL SD_TXCLK_BAD_IN : std_logic; - SIGNAL SD_RXCLK_BAD_IN : std_logic; - SIGNAL FULL_RESET_OUT : std_logic; - SIGNAL LANE_RESET_OUT : std_logic; - SIGNAL USER_RESET_OUT : std_logic; - SIGNAL TIMING_CTR_OUT : std_logic_vector(18 downto 0); - SIGNAL BSM_OUT : std_logic_vector(3 downto 0); - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: trb_net16_lsm_sfp_gbe PORT MAP( - SYSCLK => SYSCLK, - RESET => RESET, - CLEAR => CLEAR, - SFP_MISSING_IN => SFP_MISSING_IN, - SFP_LOS_IN => SFP_LOS_IN, - SD_LINK_OK_IN => SD_LINK_OK_IN, - SD_LOS_IN => SD_LOS_IN, - SD_TXCLK_BAD_IN => SD_TXCLK_BAD_IN, - SD_RXCLK_BAD_IN => SD_RXCLK_BAD_IN, - FULL_RESET_OUT => FULL_RESET_OUT, - LANE_RESET_OUT => LANE_RESET_OUT, - USER_RESET_OUT => USER_RESET_OUT, - TIMING_CTR_OUT => TIMING_CTR_OUT, - BSM_OUT => BSM_OUT, - DEBUG_OUT => DEBUG_OUT - ); - - -CLOCK_GEN: process -begin - sysclk <= '1'; wait for 4.0 ns; - sysclk <= '0'; wait for 4.0 ns; -end process CLOCK_GEN; - -THE_TESTBENCH: process -begin - -- Setup signals - reset <= '0'; - clear <= '0'; - sfp_missing_in <= '0'; - sfp_los_in <= '0'; - sd_link_ok_in <= '0'; - sd_los_in <= '0'; - sd_txclk_bad_in <= '1'; - sd_rxclk_bad_in <= '1'; - wait for 100 ns; - - -- Reset - clear <= '1'; - wait for 100 ns; - clear <= '0'; - wait for 10 ns; - - -- Tests may start now - wait until falling_edge(full_reset_out); - wait for 123 ns; - sd_txclk_bad_in <= '0'; - wait for 433 ns; - sd_rxclk_bad_in <= '0'; - - wait for 1.1 us; - sd_rxclk_bad_in <= '1'; - wait for 33 ns; - sd_rxclk_bad_in <= '0'; - - - wait until rising_edge(sysclk); - - -- Stay a while.... stay forever!!! Muahahaha!!!! - wait; - -end process THE_TESTBENCH; - -END; \ No newline at end of file diff --git a/gbe2_ecp3/tb_pc.vhd b/gbe2_ecp3/tb_pc.vhd deleted file mode 100755 index ac85375..0000000 --- a/gbe2_ecp3/tb_pc.vhd +++ /dev/null @@ -1,310 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT trb_net16_gbe_packet_constr - PORT( - RESET : IN std_logic; - CLK : IN std_logic; - PC_WR_EN_IN : IN std_logic; - PC_DATA_IN : IN std_logic_vector(7 downto 0); - PC_START_OF_SUB_IN : IN std_logic; - PC_END_OF_DATA_IN : IN std_logic; - PC_SUB_SIZE_IN : IN std_logic_vector(31 downto 0); - PC_DECODING_IN : IN std_logic_vector(31 downto 0); - PC_EVENT_ID_IN : IN std_logic_vector(31 downto 0); - PC_TRIG_NR_IN : IN std_logic_vector(31 downto 0); - PC_QUEUE_DEC_IN : IN std_logic_vector(31 downto 0); - PC_MAX_FRAME_SIZE_IN : IN std_logic_vector(15 downto 0); - FC_H_READY_IN : IN std_logic; - FC_READY_IN : IN std_logic; - PC_READY_OUT : OUT std_logic; - FC_WR_EN_OUT : OUT std_logic; - FC_DATA_OUT : OUT std_logic_vector(7 downto 0); - FC_IP_SIZE_OUT : OUT std_logic_vector(15 downto 0); - FC_UDP_SIZE_OUT : OUT std_logic_vector(15 downto 0); - FC_IDENT_OUT : OUT std_logic_vector(15 downto 0); - FC_FLAGS_OFFSET_OUT : OUT std_logic_vector(15 downto 0); - FC_SOD_OUT : OUT std_logic; - FC_EOD_OUT : OUT std_logic; - BSM_CONSTR_OUT : OUT std_logic_vector(3 downto 0); - BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0); - BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0); - DBG_SHF_EMPTY : OUT std_logic; - DBG_SHF_FULL : OUT std_logic; - DBG_SHF_WR_EN : OUT std_logic; - DBG_SHF_RD_EN : OUT std_logic; - DBG_DF_EMPTY : OUT std_logic; - DBG_DF_FULL : OUT std_logic; - DBG_DF_WR_EN : OUT std_logic; - DBG_DF_RD_EN : OUT std_logic; - DBG_ALL_CTR : OUT std_logic_vector(4 downto 0); - DBG_SUB_CTR : OUT std_logic_vector(4 downto 0); - DBG_MY_CTR : OUT std_logic_vector(1 downto 0); - DBG_BYTES_LOADED : OUT std_logic_vector(15 downto 0); - DBG_SIZE_LEFT : OUT std_logic_vector(31 downto 0); - DBG_SUB_SIZE_TO_SAVE : OUT std_logic_vector(31 downto 0); - DBG_SUB_SIZE_LOADED : OUT std_logic_vector(31 downto 0); - DBG_SUB_BYTES_LOADED : OUT std_logic_vector(31 downto 0); - DBG_QUEUE_SIZE : OUT std_logic_vector(31 downto 0); - DBG_ACT_QUEUE_SIZE : OUT std_logic_vector(31 downto 0); - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL RESET : std_logic; - SIGNAL CLK : std_logic; - SIGNAL PC_WR_EN_IN : std_logic; - SIGNAL PC_DATA_IN : std_logic_vector(7 downto 0); - SIGNAL PC_READY_OUT : std_logic; - SIGNAL PC_START_OF_SUB_IN : std_logic; - SIGNAL PC_END_OF_DATA_IN : std_logic; - SIGNAL PC_SUB_SIZE_IN : std_logic_vector(31 downto 0); - SIGNAL PC_DECODING_IN : std_logic_vector(31 downto 0); - SIGNAL PC_EVENT_ID_IN : std_logic_vector(31 downto 0); - SIGNAL PC_TRIG_NR_IN : std_logic_vector(31 downto 0); - SIGNAL PC_QUEUE_DEC_IN : std_logic_vector(31 downto 0); - SIGNAL PC_MAX_FRAME_SIZE_IN : std_logic_vector(15 downto 0); - SIGNAL FC_WR_EN_OUT : std_logic; - SIGNAL FC_DATA_OUT : std_logic_vector(7 downto 0); - SIGNAL FC_H_READY_IN : std_logic; - SIGNAL FC_READY_IN : std_logic; - SIGNAL FC_IP_SIZE_OUT : std_logic_vector(15 downto 0); - SIGNAL FC_UDP_SIZE_OUT : std_logic_vector(15 downto 0); - SIGNAL FC_IDENT_OUT : std_logic_vector(15 downto 0); - SIGNAL FC_FLAGS_OFFSET_OUT : std_logic_vector(15 downto 0); - SIGNAL FC_SOD_OUT : std_logic; - SIGNAL FC_EOD_OUT : std_logic; - SIGNAL BSM_CONSTR_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_LOAD_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_SAVE_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_SHF_EMPTY : std_logic; - SIGNAL DBG_SHF_FULL : std_logic; - SIGNAL DBG_SHF_WR_EN : std_logic; - SIGNAL DBG_SHF_RD_EN : std_logic; - SIGNAL DBG_DF_EMPTY : std_logic; - SIGNAL DBG_DF_FULL : std_logic; - SIGNAL DBG_DF_WR_EN : std_logic; - SIGNAL DBG_DF_RD_EN : std_logic; - SIGNAL DBG_ALL_CTR : std_logic_vector(4 downto 0); - SIGNAL DBG_SUB_CTR : std_logic_vector(4 downto 0); - SIGNAL DBG_MY_CTR : std_logic_vector(1 downto 0); - SIGNAL DBG_BYTES_LOADED : std_logic_vector(15 downto 0); - SIGNAL DBG_SIZE_LEFT : std_logic_vector(31 downto 0); - SIGNAL DBG_SUB_SIZE_TO_SAVE : std_logic_vector(31 downto 0); - SIGNAL DBG_SUB_SIZE_LOADED : std_logic_vector(31 downto 0); - SIGNAL DBG_SUB_BYTES_LOADED : std_logic_vector(31 downto 0); - SIGNAL DBG_QUEUE_SIZE : std_logic_vector(31 downto 0); - SIGNAL DBG_ACT_QUEUE_SIZE : std_logic_vector(31 downto 0); - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: trb_net16_gbe_packet_constr PORT MAP( - RESET => RESET, - CLK => CLK, - PC_WR_EN_IN => PC_WR_EN_IN, - PC_DATA_IN => PC_DATA_IN, - PC_READY_OUT => PC_READY_OUT, - PC_START_OF_SUB_IN => PC_START_OF_SUB_IN, - PC_END_OF_DATA_IN => PC_END_OF_DATA_IN, - PC_SUB_SIZE_IN => PC_SUB_SIZE_IN, - PC_DECODING_IN => PC_DECODING_IN, - PC_EVENT_ID_IN => PC_EVENT_ID_IN, - PC_TRIG_NR_IN => PC_TRIG_NR_IN, - PC_QUEUE_DEC_IN => PC_QUEUE_DEC_IN, - PC_MAX_FRAME_SIZE_IN => PC_MAX_FRAME_SIZE_IN, - FC_WR_EN_OUT => FC_WR_EN_OUT, - FC_DATA_OUT => FC_DATA_OUT, - FC_H_READY_IN => FC_H_READY_IN, - FC_READY_IN => FC_READY_IN, - FC_IP_SIZE_OUT => FC_IP_SIZE_OUT, - FC_UDP_SIZE_OUT => FC_UDP_SIZE_OUT, - FC_IDENT_OUT => FC_IDENT_OUT, - FC_FLAGS_OFFSET_OUT => FC_FLAGS_OFFSET_OUT, - FC_SOD_OUT => FC_SOD_OUT, - FC_EOD_OUT => FC_EOD_OUT, - BSM_CONSTR_OUT => BSM_CONSTR_OUT, - BSM_LOAD_OUT => BSM_LOAD_OUT, - BSM_SAVE_OUT => BSM_SAVE_OUT, - DBG_SHF_EMPTY => DBG_SHF_EMPTY, - DBG_SHF_FULL => DBG_SHF_FULL, - DBG_SHF_WR_EN => DBG_SHF_WR_EN, - DBG_SHF_RD_EN => DBG_SHF_RD_EN, - DBG_DF_EMPTY => DBG_DF_EMPTY, - DBG_DF_FULL => DBG_DF_FULL, - DBG_DF_WR_EN => DBG_DF_WR_EN, - DBG_DF_RD_EN => DBG_DF_RD_EN, - DBG_ALL_CTR => DBG_ALL_CTR, - DBG_SUB_CTR => DBG_SUB_CTR, - DBG_MY_CTR => DBG_MY_CTR, - DBG_BYTES_LOADED => DBG_BYTES_LOADED, - DBG_SIZE_LEFT => DBG_SIZE_LEFT, - DBG_SUB_SIZE_TO_SAVE => DBG_SUB_SIZE_TO_SAVE, - DBG_SUB_SIZE_LOADED => DBG_SUB_SIZE_LOADED, - DBG_SUB_BYTES_LOADED => DBG_SUB_BYTES_LOADED, - DBG_QUEUE_SIZE => DBG_QUEUE_SIZE, - DBG_ACT_QUEUE_SIZE => DBG_ACT_QUEUE_SIZE, - DEBUG_OUT => DEBUG_OUT - ); - -CLK_GEN: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLK_GEN; - -THE_TESTBENCH: process -variable test_data_len : integer range 0 to 65535 := 1; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len_vec : std_logic_vector(15 downto 0); -variable test_sub_len : unsigned(15 downto 0) := x"0000"; -variable test_sub_len_vec : std_logic_vector(15 downto 0); -variable test_data : unsigned(15 downto 0) := x"ffff"; -variable test_data_vec : std_logic_vector(15 downto 0); - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; -begin - -- Set up signals - reset <= '0'; - pc_wr_en_in <= '0'; - pc_data_in <= x"00"; - pc_start_of_sub_in <= '0'; - pc_end_of_data_in <= '0'; - pc_sub_size_in <= x"0000_0000"; - pc_trig_nr_in <= x"0000_0000"; - pc_decoding_in <= x"0002_0001"; -- static - pc_event_id_in <= x"0000_00ca"; -- static - pc_queue_dec_in <= x"0003_0062"; -- static - pc_max_frame_size_in <= x"0578"; -- static - fc_h_ready_in <= '0'; - fc_ready_in <= '0'; - wait until rising_edge(clk); - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - wait for 200 ns; - wait until rising_edge(clk); - - -- Tests may start now - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 0; - - test_data_len := 14; - - MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop - - -- calculate the needed variables - test_loop_len := 2*(test_data_len - 1) + 1; - test_evt_len := to_unsigned( test_data_len, 16 ); - test_evt_len_vec := std_logic_vector(test_evt_len); - test_sub_len := test_evt_len + 1; - test_sub_len_vec := std_logic_vector(test_sub_len); - - -- start of subevent marker - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_trig_nr_in <= x"0000" & std_logic_vector(trigger_counter); - pc_sub_size_in <= b"0000_0000_0000_00" & test_sub_len_vec & b"00"; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_start_of_sub_in <= '1'; - wait until rising_edge(clk); - pc_start_of_sub_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_data_in <= test_evt_len_vec(15 downto 8); - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_data_in <= test_evt_len_vec(7 downto 0); - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_wr_en_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_data_in <= x"ff"; -- source address high byte - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_data_in <= x"22"; -- source address low byte - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_wr_en_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - - test_data := x"ffff"; - MY_DATA_LOOP: for J in 0 to test_loop_len loop - test_data := test_data + 1; - test_data_vec := std_logic_vector(test_data); - wait until rising_edge(clk); - pc_data_in <= test_data_vec(15 downto 8); - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_data_in <= test_data_vec(7 downto 0); - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_wr_en_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); - end loop MY_DATA_LOOP; - - -- end of subevent marker --- wait until rising_edge(clk); - pc_end_of_data_in <= '1'; - wait until rising_edge(clk); - pc_end_of_data_in <= '0'; - pc_sub_size_in <= x"0000_0000"; - pc_trig_nr_in <= x"0000_0000"; - wait until rising_edge(clk); - wait until rising_edge(clk); - - trigger_loop := trigger_loop + 1; - trigger_counter := trigger_counter + 1; - - wait for 500 ns; - wait until rising_edge(clk); - end loop MY_TRIGGER_LOOP; - --- wait for 8 us; -------------------------------------------------------------------------------- --- end of loop -------------------------------------------------------------------------------- - - wait until rising_edge(clk); - fc_ready_in <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fc_h_ready_in <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - -- Stay a while... stay forever!!!Muahahah!!! - wait; - -end process THE_TESTBENCH; - -END; \ No newline at end of file diff --git a/gbe2_ecp3/tb_slv_mac_memory.vhd b/gbe2_ecp3/tb_slv_mac_memory.vhd deleted file mode 100755 index 00293c3..0000000 --- a/gbe2_ecp3/tb_slv_mac_memory.vhd +++ /dev/null @@ -1,114 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT slv_mac_memory - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - BUSY_IN : IN std_logic; - SLV_ADDR_IN : IN std_logic_vector(7 downto 0); - SLV_READ_IN : IN std_logic; - SLV_WRITE_IN : IN std_logic; - SLV_DATA_IN : IN std_logic_vector(31 downto 0); - MEM_CLK_IN : IN std_logic; - MEM_ADDR_IN : IN std_logic_vector(7 downto 0); - SLV_BUSY_OUT : OUT std_logic; - SLV_ACK_OUT : OUT std_logic; - SLV_DATA_OUT : OUT std_logic_vector(31 downto 0); - MEM_DATA_OUT : OUT std_logic_vector(31 downto 0); - STAT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL BUSY_IN : std_logic; - SIGNAL SLV_ADDR_IN : std_logic_vector(7 downto 0); - SIGNAL SLV_READ_IN : std_logic; - SIGNAL SLV_WRITE_IN : std_logic; - SIGNAL SLV_BUSY_OUT : std_logic; - SIGNAL SLV_ACK_OUT : std_logic; - SIGNAL SLV_DATA_IN : std_logic_vector(31 downto 0); - SIGNAL SLV_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL MEM_CLK_IN : std_logic; - SIGNAL MEM_ADDR_IN : std_logic_vector(7 downto 0); - SIGNAL MEM_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL STAT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: slv_mac_memory PORT MAP( - CLK => CLK, - RESET => RESET, - BUSY_IN => BUSY_IN, - SLV_ADDR_IN => SLV_ADDR_IN, - SLV_READ_IN => SLV_READ_IN, - SLV_WRITE_IN => SLV_WRITE_IN, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, - SLV_DATA_IN => SLV_DATA_IN, - SLV_DATA_OUT => SLV_DATA_OUT, - MEM_CLK_IN => MEM_CLK_IN, - MEM_ADDR_IN => MEM_ADDR_IN, - MEM_DATA_OUT => MEM_DATA_OUT, - STAT => STAT - ); - -CLK_GEN_PROC: process -begin - clk <= '0'; mem_clk_in <= '0'; wait for 5.0 ns; - clk <= '1'; mem_clk_in <= '1'; wait for 5.0 ns; -end process CLK_GEN_PROC; - -THE_TESTBENCH: process -begin - -- Setup signals - reset <= '0'; - busy_in <= '0'; - slv_addr_in <= x"00"; - slv_read_in <= '0'; - slv_write_in <= '0'; - slv_data_in <= x"dead_beef"; - mem_addr_in <= x"f0"; - wait until rising_edge(clk); - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - - -- Tests may start now - wait until rising_edge(clk); - mem_addr_in <= x"00"; - wait until rising_edge(clk); - mem_addr_in <= x"01"; - wait until rising_edge(clk); - mem_addr_in <= x"02"; - wait until rising_edge(clk); - mem_addr_in <= x"03"; - wait until rising_edge(clk); - mem_addr_in <= x"04"; - wait until rising_edge(clk); - mem_addr_in <= x"05"; - wait until rising_edge(clk); - mem_addr_in <= x"06"; - wait until rising_edge(clk); - mem_addr_in <= x"07"; - wait until rising_edge(clk); - mem_addr_in <= x"08"; - - -- Stay a while... stay forever!!! Muahahaha!!!!! - wait; -end process THE_TESTBENCH; - -END; diff --git a/gbe2_ecp3/trb_net16_gbe_buf.vhd b/gbe2_ecp3/trb_net16_gbe_buf.vhd deleted file mode 100755 index 05dd9ca..0000000 --- a/gbe2_ecp3/trb_net16_gbe_buf.vhd +++ /dev/null @@ -1,1617 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; ---use work.version.all; - - -entity trb_net16_gbe_buf is -generic( - DO_SIMULATION : integer range 0 to 1 := 1; - RX_PATH_ENABLE : integer range 0 to 1 := 1; - USE_INTERNAL_TRBNET_DUMMY : integer range 0 to 1 := 0; - USE_125MHZ_EXTCLK : integer range 0 to 1 := 1; - - FIXED_SIZE_MODE : integer range 0 to 1 := 1; - INCREMENTAL_MODE : integer range 0 to 1 := 0; - FIXED_SIZE : integer range 0 to 65535 := 10; - FIXED_DELAY_MODE : integer range 0 to 1 := 1; - UP_DOWN_MODE : integer range 0 to 1 := 0; - UP_DOWN_LIMIT : integer range 0 to 16777215 := 0; - FIXED_DELAY : integer range 0 to 16777215 := 16777215 -); -port( - CLK : in std_logic; - TEST_CLK : in std_logic; -- only for simulation! - CLK_125_IN : in std_logic; -- gk 28.04.01 used only in internal 125MHz clock mode - RESET : in std_logic; - GSR_N : in std_logic; - -- Debug - STAGE_STAT_REGS_OUT : out std_logic_vector(31 downto 0); - STAGE_CTRL_REGS_IN : in std_logic_vector(31 downto 0); - -- configuration interface - IP_CFG_START_IN : in std_logic; - IP_CFG_BANK_SEL_IN : in std_logic_vector(3 downto 0); - IP_CFG_DONE_OUT : out std_logic; - IP_CFG_MEM_ADDR_OUT : out std_logic_vector(7 downto 0); - IP_CFG_MEM_DATA_IN : in std_logic_vector(31 downto 0); - IP_CFG_MEM_CLK_OUT : out std_logic; - MR_RESET_IN : in std_logic; - MR_MODE_IN : in std_logic; - MR_RESTART_IN : in std_logic; - -- gk 29.03.10 - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - -- gk 22.04.10 - -- registers setup interface - BUS_ADDR_IN : in std_logic_vector(7 downto 0); - BUS_DATA_IN : in std_logic_vector(31 downto 0); - BUS_DATA_OUT : out std_logic_vector(31 downto 0); -- gk 26.04.10 - BUS_WRITE_EN_IN : in std_logic; -- gk 26.04.10 - BUS_READ_EN_IN : in std_logic; -- gk 26.04.10 - BUS_ACK_OUT : out std_logic; -- gk 26.04.10 - -- gk 23.04.10 - LED_PACKET_SENT_OUT : out std_logic; - LED_AN_DONE_N_OUT : out std_logic; - -- CTS interface - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; - CTS_READ_IN : in std_logic; - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - FEE_BUSY_IN : in std_logic; - --SFP Connection - SFP_RXD_P_IN : in std_logic; - SFP_RXD_N_IN : in std_logic; - SFP_TXD_P_OUT : out std_logic; - SFP_TXD_N_OUT : out std_logic; - SFP_REFCLK_P_IN : in std_logic; - SFP_REFCLK_N_IN : in std_logic; - SFP_PRSNT_N_IN : in std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted) - SFP_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SFP_TXDIS_OUT : out std_logic; -- SFP disable - - -- interface between main_controller and hub logic - MC_UNIQUE_ID_IN : in std_logic_vector(63 downto 0); - GSC_CLK_IN : in std_logic; - GSC_INIT_DATAREADY_OUT : out std_logic; - GSC_INIT_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_INIT_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_INIT_READ_IN : in std_logic; - GSC_REPLY_DATAREADY_IN : in std_logic; - GSC_REPLY_DATA_IN : in std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_IN : in std_logic_vector(2 downto 0); - GSC_REPLY_READ_OUT : out std_logic; - GSC_BUSY_IN : in std_logic; - - MAKE_RESET_OUT : out std_logic; - - -- for simulation of receiving part only - MAC_RX_EOF_IN : in std_logic; - MAC_RXD_IN : in std_logic_vector(7 downto 0); - MAC_RX_EN_IN : in std_logic; - - - -- debug ports - ANALYZER_DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end entity trb_net16_gbe_buf; - -architecture trb_net16_gbe_buf of trb_net16_gbe_buf is - --- Placer Directives ---attribute HGROUP : string; --- for whole architecture ---attribute HGROUP of trb_net16_gbe_buf : architecture is "GBE_BUF_group"; - - -component tsmac35 --tsmac36 --tsmac35 -port( - --------------- clock and reset port declarations ------------------ - hclk : in std_logic; - txmac_clk : in std_logic; - rxmac_clk : in std_logic; - reset_n : in std_logic; - txmac_clk_en : in std_logic; - rxmac_clk_en : in std_logic; - ------------------- Input signals to the GMII ---------------- - rxd : in std_logic_vector(7 downto 0); - rx_dv : in std_logic; - rx_er : in std_logic; - col : in std_logic; - crs : in std_logic; - -------------------- Input signals to the CPU I/F ------------------- - haddr : in std_logic_vector(7 downto 0); - hdatain : in std_logic_vector(7 downto 0); - hcs_n : in std_logic; - hwrite_n : in std_logic; - hread_n : in std_logic; - ---------------- Input signals to the Tx MAC FIFO I/F --------------- - tx_fifodata : in std_logic_vector(7 downto 0); - tx_fifoavail : in std_logic; - tx_fifoeof : in std_logic; - tx_fifoempty : in std_logic; - tx_sndpaustim : in std_logic_vector(15 downto 0); - tx_sndpausreq : in std_logic; - tx_fifoctrl : in std_logic; - ---------------- Input signals to the Rx MAC FIFO I/F --------------- - rx_fifo_full : in std_logic; - ignore_pkt : in std_logic; - -------------------- Output signals from the GMII ----------------------- - txd : out std_logic_vector(7 downto 0); - tx_en : out std_logic; - tx_er : out std_logic; - -------------------- Output signals from the CPU I/F ------------------- - hdataout : out std_logic_vector(7 downto 0); - hdataout_en_n : out std_logic; - hready_n : out std_logic; - cpu_if_gbit_en : out std_logic; - ---------------- Output signals from the Tx MAC FIFO I/F --------------- - tx_macread : out std_logic; - tx_discfrm : out std_logic; - tx_staten : out std_logic; - tx_done : out std_logic; - tx_statvec : out std_logic_vector(30 downto 0); - ---------------- Output signals from the Rx MAC FIFO I/F --------------- - rx_fifo_error : out std_logic; - rx_stat_vector : out std_logic_vector(31 downto 0); - rx_dbout : out std_logic_vector(7 downto 0); - rx_write : out std_logic; - rx_stat_en : out std_logic; - rx_eof : out std_logic; - rx_error : out std_logic -); -end component; - -component mb_mac_sim is -port ( - -------------------------------------------------------------------------- - --------------- clock, reset, clock enable ------------------------------- - HCLK : in std_logic; - TX_MAC_CLK : in std_logic; - RX_MAC_CLK : in std_logic; - RESET_N : in std_logic; - TXMAC_CLK_EN : in std_logic; - RXMAC_CLK_EN : in std_logic; - -------------------------------------------------------------------------- - --------------- SGMII receive interface ---------------------------------- - RXD : in std_logic_vector(7 downto 0); - RX_DV : in std_logic; - RX_ER : in std_logic; - COL : in std_logic; - CRS : in std_logic; - -------------------------------------------------------------------------- - --------------- SGMII transmit interface --------------------------------- - TXD : out std_logic_vector(7 downto 0); - TX_EN : out std_logic; - TX_ER : out std_logic; - -------------------------------------------------------------------------- - --------------- CPU configuration interface ------------------------------ - HADDR : in std_logic_vector(7 downto 0); - HDATAIN : in std_logic_vector(7 downto 0); - HCS_N : in std_logic; - HWRITE_N : in std_logic; - HREAD_N : in std_logic; - HDATAOUT : out std_logic_vector(7 downto 0); - HDATAOUT_EN_N : out std_logic; - HREADY_N : out std_logic; - CPU_IF_GBIT_EN : out std_logic; - -------------------------------------------------------------------------- - --------------- Transmit FIFO interface ---------------------------------- - TX_FIFODATA : in std_logic_vector(7 downto 0); - TX_FIFOAVAIL : in std_logic; - TX_FIFOEOF : in std_logic; - TX_FIFOEMPTY : in std_logic; - TX_MACREAD : out std_logic; - TX_DONE : out std_logic; - TX_SNDPAUSTIM : in std_logic_vector(15 downto 0); - TX_SNDPAUSREQ : in std_logic; - TX_FIFOCTRL : in std_logic; - TX_DISCFRM : out std_logic; - TX_STATEN : out std_logic; - TX_STATVEC : out std_logic_vector(30 downto 0); - -------------------------------------------------------------------------- - --------------- Receive FIFO interface ----------------------------------- - RX_DBOUT : out std_logic_vector(7 downto 0); - RX_FIFO_FULL : in std_logic; - IGNORE_PKT : in std_logic; - RX_FIFO_ERROR : out std_logic; - RX_STAT_VECTOR : out std_logic_vector(31 downto 0); - RX_STAT_EN : out std_logic; - RX_WRITE : out std_logic; - RX_EOF : out std_logic; - RX_ERROR : out std_logic -); -end component; - -signal pc_decoding : std_logic_vector(31 downto 0); -signal pc_event_id : std_logic_vector(31 downto 0); -signal pc_queue_dec : std_logic_vector(31 downto 0); -signal pc_max_frame_size : std_logic_vector(15 downto 0); -signal cts_readout_finished : std_logic; -signal cts_dataready : std_logic; -signal cts_length : std_logic_vector(15 downto 0); -signal cts_data : std_logic_vector(31 downto 0); -- DHDR of rest packet -signal cts_error_pattern : std_logic_vector(31 downto 0); -signal fc_dest_mac : std_logic_vector(47 downto 0); -signal fc_dest_ip : std_logic_vector(31 downto 0); -signal fc_dest_udp : std_logic_vector(15 downto 0); -signal fc_src_mac : std_logic_vector(47 downto 0); -signal fc_src_ip : std_logic_vector(31 downto 0); -signal fc_src_udp : std_logic_vector(15 downto 0); -signal fc_type : std_logic_vector(15 downto 0); -signal fc_ihl_version : std_logic_vector(7 downto 0); -signal fc_tos : std_logic_vector(7 downto 0); -signal fc_ttl : std_logic_vector(7 downto 0); -signal fc_protocol : std_logic_vector(7 downto 0); - -signal ft_data : std_logic_vector(8 downto 0);-- gk 04.05.10 -signal ft_tx_empty : std_logic; -signal ft_start_of_packet : std_logic; -signal ft_bsm_init : std_logic_vector(3 downto 0); -signal ft_bsm_mac : std_logic_vector(3 downto 0); -signal ft_bsm_trans : std_logic_vector(3 downto 0); - -signal mac_haddr : std_logic_vector(7 downto 0); -signal mac_hdataout : std_logic_vector(7 downto 0); -signal mac_hcs : std_logic; -signal mac_hwrite : std_logic; -signal mac_hread : std_logic; -signal mac_fifoavail : std_logic; -signal mac_fifoempty : std_logic; -signal mac_fifoeof : std_logic; -signal mac_hready : std_logic; -signal mac_hdata_en : std_logic; -signal mac_tx_done : std_logic; -signal mac_tx_read : std_logic; - -signal serdes_clk_125 : std_logic; -signal mac_tx_clk_en : std_logic; -signal mac_rx_clk_en : std_logic; -signal mac_col : std_logic; -signal mac_crs : std_logic; -signal pcs_txd : std_logic_vector(7 downto 0); -signal pcs_tx_en : std_logic; -signal pcs_tx_er : std_logic; -signal pcs_an_lp_ability : std_logic_vector(15 downto 0); -signal pcs_an_complete : std_logic; -signal pcs_an_page_rx : std_logic; - -signal pcs_stat_debug : std_logic_vector(63 downto 0); - -signal stage_stat_regs : std_logic_vector(31 downto 0); -signal stage_ctrl_regs : std_logic_vector(31 downto 0); -signal use_gbe : std_logic; -signal use_trbnet : std_logic; -signal use_multievents : std_logic; --- gk 26.04.10 -signal readout_ctr : std_logic_vector(23 downto 0); -signal readout_ctr_valid : std_logic; -signal dbg_pc1 : std_logic_vector(31 downto 0); -signal dbg_fc1 : std_logic_vector(31 downto 0); -signal dbg_ft1 : std_logic_vector(31 downto 0); --- gk 08.06.10 -signal mac_tx_staten : std_logic; -signal mac_tx_statevec : std_logic_vector(30 downto 0); -signal mac_tx_discfrm : std_logic; - -signal dbg_q : std_logic_vector(15 downto 0); - --- gk 21.07.10 -signal allow_large : std_logic; - --- gk 28.07.10 -signal bytes_sent_ctr : std_logic_vector(31 downto 0); -signal monitor_dropped : std_logic_vector(31 downto 0); -signal monitor_fifos : std_logic_vector(31 downto 0); -signal monitor_fifos_q : std_logic_vector(31 downto 0); - --- gk 02.08.10 -signal discfrm_ctr : std_logic_vector(31 downto 0); - --- gk 13.02.11 -signal pcs_rxd : std_logic_vector(7 downto 0); -signal pcs_rx_en : std_logic; -signal pcs_rx_er : std_logic; -signal mac_rx_eof : std_logic; -signal mac_rx_er : std_logic; -signal mac_rxd : std_logic_vector(7 downto 0); -signal mac_rx_fifo_err : std_logic; -signal mac_rx_fifo_full : std_logic; -signal mac_rx_en : std_logic; -signal mac_rx_stat_en : std_logic; -signal mac_rx_stat_vec : std_logic_vector(31 downto 0); -signal fr_q : std_logic_vector(8 downto 0); -signal fr_rd_en : std_logic; -signal fr_frame_valid : std_logic; -signal rc_rd_en : std_logic; -signal rc_q : std_logic_vector(8 downto 0); -signal rc_frames_rec_ctr : std_logic_vector(31 downto 0); -signal mc_data : std_logic_vector(8 downto 0); -signal mc_wr_en : std_logic; -signal fc_wr_en : std_logic; -signal fc_data : std_logic_vector(7 downto 0); -signal fc_ip_size : std_logic_vector(15 downto 0); -signal fc_udp_size : std_logic_vector(15 downto 0); -signal fc_ident : std_logic_vector(15 downto 0); -signal fc_flags_offset : std_logic_vector(15 downto 0); -signal fc_sod : std_logic; -signal fc_eod : std_logic; -signal fc_h_ready : std_logic; -signal fc_ready : std_logic; -signal rc_frame_ready : std_logic; -signal allow_rx : std_logic; -signal fr_frame_size : std_logic_vector(15 downto 0); -signal rc_frame_size : std_logic_vector(15 downto 0); -signal mc_frame_size : std_logic_vector(15 downto 0); -signal rc_bytes_rec : std_logic_vector(31 downto 0); -signal rc_debug : std_logic_vector(63 downto 0); -signal tsmac_gbit_en : std_logic; -signal mc_transmit_ctrl : std_logic; -signal rc_loading_done : std_logic; -signal fr_get_frame : std_logic; -signal mc_transmit_done : std_logic; - -signal fr_frame_proto : std_logic_vector(15 downto 0); -signal rc_frame_proto : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - -signal dbg_select_rec : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); -signal dbg_select_sent : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); -signal dbg_select_rec_bytes : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); -signal dbg_select_sent_bytes : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); -signal dbg_select_drop_in : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); -signal dbg_select_drop_out : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); -signal dbg_select_gen : std_logic_vector(2*c_MAX_PROTOCOLS * 32 - 1 downto 0); - -signal serdes_rx_clk : std_logic; - -signal mc_type : std_logic_vector(15 downto 0); -signal fr_src_mac : std_logic_vector(47 downto 0); -signal fr_dest_mac : std_logic_vector(47 downto 0); -signal fr_src_ip : std_logic_vector(31 downto 0); -signal fr_dest_ip : std_logic_vector(31 downto 0); -signal fr_src_udp : std_logic_vector(15 downto 0); -signal fr_dest_udp : std_logic_vector(15 downto 0); -signal rc_src_mac : std_logic_vector(47 downto 0); -signal rc_dest_mac : std_logic_vector(47 downto 0); -signal rc_src_ip : std_logic_vector(31 downto 0); -signal rc_dest_ip : std_logic_vector(31 downto 0); -signal rc_src_udp : std_logic_vector(15 downto 0); -signal rc_dest_udp : std_logic_vector(15 downto 0); - -signal mc_dest_mac : std_logic_vector(47 downto 0); -signal mc_dest_ip : std_logic_vector(31 downto 0); -signal mc_dest_udp : std_logic_vector(15 downto 0); -signal mc_src_mac : std_logic_vector(47 downto 0); -signal mc_src_ip : std_logic_vector(31 downto 0); -signal mc_src_udp : std_logic_vector(15 downto 0); - -signal dbg_ft : std_logic_vector(63 downto 0); - -signal fr_ip_proto : std_logic_vector(7 downto 0); -signal mc_ip_proto : std_logic_vector(7 downto 0); - -attribute syn_preserve : boolean; -attribute syn_keep : boolean; -attribute syn_keep of pcs_rxd, pcs_txd, pcs_rx_en, pcs_tx_en, pcs_rx_er, pcs_tx_er : signal is true; -attribute syn_preserve of pcs_rxd, pcs_txd, pcs_rx_en, pcs_tx_en, pcs_rx_er, pcs_tx_er : signal is true; - -signal pcs_txd_q, pcs_rxd_q : std_logic_vector(7 downto 0); -signal pcs_tx_en_q, pcs_tx_er_q, pcs_rx_en_q, pcs_rx_er_q : std_logic; - -signal pcs_txd_qq, pcs_rxd_qq : std_logic_vector(7 downto 0); -signal pcs_tx_en_qq, pcs_tx_er_qq, pcs_rx_en_qq, pcs_rx_er_qq : std_logic; - -signal timeout_ctr : std_logic_vector(31 downto 0); -signal timeout_noticed : std_Logic; -attribute syn_keep of timeout_noticed : signal is true; -attribute syn_preserve of timeout_noticed : signal is true; - -signal make_reset : std_logic; -signal idle_too_long : std_logic; -signal mc_ident : std_logic_vector(15 downto 0); - -signal monitor_tx_packets : std_logic_vector(31 downto 0); -signal monitor_rx_bytes, monitor_rx_frames, monitor_tx_bytes, monitor_tx_frames : std_logic_vector(31 downto 0); -signal insert_ttype, additional_hdr : std_logic; -signal dbg_hist, dbg_hist2 : hist_array; -signal mac_reset : std_logic; -signal global_reset, rst_n, ff : std_logic; - - signal gbe_cts_number : std_logic_vector(15 downto 0); - signal gbe_cts_code : std_logic_vector(7 downto 0); - signal gbe_cts_information : std_logic_vector(7 downto 0); - signal gbe_cts_start_readout : std_logic; - signal gbe_cts_readout_type : std_logic_vector(3 downto 0); - signal gbe_cts_readout_finished : std_logic; - signal gbe_cts_status_bits : std_logic_vector(31 downto 0); - signal gbe_fee_data : std_logic_vector(15 downto 0); - signal gbe_fee_dataready : std_logic; - signal gbe_fee_read : std_logic; - signal gbe_fee_status_bits : std_logic_vector(31 downto 0); - signal gbe_fee_busy : std_logic; - - signal max_sub, max_queue, max_subs_in_queue, max_single_sub : std_logic_vector(15 downto 0); - signal dhcp_done, link_ok, soft_rst : std_logic; - -signal dum_busy, dum_read, dum_dataready, dum_rd_en, dum_frame_ready : std_logic; -signal dum_data, dum_frame_size : std_logic_vector(15 downto 0); -signal dum_frame_proto : std_logic_vector(4 downto 0); -signal dum_q : std_logic_vector(8 downto 0); - -begin - -stage_ctrl_regs <= STAGE_CTRL_REGS_IN; - -reset_sync : process(GSR_N, CLK) -begin - if (GSR_N = '0') then - ff <= '0'; - rst_n <= '0'; - elsif rising_edge(CLK) then - ff <= '1'; - rst_n <= ff; - end if; -end process reset_sync; - -global_reset <= not rst_n; -- or soft_rst; - --- gk 23.04.10 -LED_PACKET_SENT_OUT <= '0'; --timeout_noticed; --pc_ready; -LED_AN_DONE_N_OUT <= dhcp_done; --not pcs_an_complete; - -fc_ihl_version <= x"45"; -fc_tos <= x"10"; -fc_ttl <= x"ff"; - ---reset_dhcp <= not GSR_N; - ---soft_gbe_reset <= '1' when soft_rst = '1' or (dhcp_done = '0' and rst_ctr(24) = '1') else '0'; - -main_gen : if USE_INTERNAL_TRBNET_DUMMY = 0 generate - MAIN_CONTROL : trb_net16_gbe_main_control - generic map( - RX_PATH_ENABLE => RX_PATH_ENABLE, - DO_SIMULATION => DO_SIMULATION - ) - port map( - CLK => CLK, - CLK_125 => serdes_clk_125, - RESET => RESET, - - MC_LINK_OK_OUT => link_ok, - MC_RESET_LINK_IN => global_reset, - MC_IDLE_TOO_LONG_OUT => idle_too_long, - MC_DHCP_DONE_OUT => dhcp_done, - - -- signals to/from receive controller - RC_FRAME_WAITING_IN => rc_frame_ready, - RC_LOADING_DONE_OUT => rc_loading_done, - RC_DATA_IN => rc_q, - RC_RD_EN_OUT => rc_rd_en, - RC_FRAME_SIZE_IN => rc_frame_size, - RC_FRAME_PROTO_IN => rc_frame_proto, - - RC_SRC_MAC_ADDRESS_IN => rc_src_mac, - RC_DEST_MAC_ADDRESS_IN => rc_dest_mac, - RC_SRC_IP_ADDRESS_IN => rc_src_ip, - RC_DEST_IP_ADDRESS_IN => rc_dest_ip, - RC_SRC_UDP_PORT_IN => rc_src_udp, - RC_DEST_UDP_PORT_IN => rc_dest_udp, - - -- signals to/from transmit controller - TC_TRANSMIT_CTRL_OUT => mc_transmit_ctrl, - TC_DATA_OUT => mc_data, - TC_RD_EN_IN => mc_wr_en, - --TC_DATA_NOT_VALID_OUT => tc_data_not_valid, - TC_FRAME_SIZE_OUT => mc_frame_size, - TC_FRAME_TYPE_OUT => mc_type, - TC_IP_PROTOCOL_OUT => mc_ip_proto, - TC_IDENT_OUT => mc_ident, - - TC_DEST_MAC_OUT => mc_dest_mac, - TC_DEST_IP_OUT => mc_dest_ip, - TC_DEST_UDP_OUT => mc_dest_udp, - TC_SRC_MAC_OUT => mc_src_mac, - TC_SRC_IP_OUT => mc_src_ip, - TC_SRC_UDP_OUT => mc_src_udp, - TC_TRANSMIT_DONE_IN => mc_transmit_done, - - -- signals to/from sgmii/gbe pcs_an_complete - PCS_AN_COMPLETE_IN => pcs_an_complete, - - -- signals to/from hub - MC_UNIQUE_ID_IN => MC_UNIQUE_ID_IN, - GSC_CLK_IN => GSC_CLK_IN, - GSC_INIT_DATAREADY_OUT => GSC_INIT_DATAREADY_OUT, - GSC_INIT_DATA_OUT => GSC_INIT_DATA_OUT, - GSC_INIT_PACKET_NUM_OUT => GSC_INIT_PACKET_NUM_OUT, - GSC_INIT_READ_IN => GSC_INIT_READ_IN, - GSC_REPLY_DATAREADY_IN => GSC_REPLY_DATAREADY_IN, - GSC_REPLY_DATA_IN => GSC_REPLY_DATA_IN, - GSC_REPLY_PACKET_NUM_IN => GSC_REPLY_PACKET_NUM_IN, - GSC_REPLY_READ_OUT => GSC_REPLY_READ_OUT, - GSC_BUSY_IN => GSC_BUSY_IN, - - MAKE_RESET_OUT => make_reset, --MAKE_RESET_OUT, - - -- CTS interface - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_READ_IN => CTS_READ_IN, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - -- Data payload interface - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - FEE_BUSY_IN => FEE_BUSY_IN, - -- ip configurator - SLV_ADDR_IN => SLV_ADDR_IN, - SLV_READ_IN => SLV_READ_IN, - SLV_WRITE_IN => SLV_WRITE_IN, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, - SLV_DATA_IN => SLV_DATA_IN, - SLV_DATA_OUT => SLV_DATA_OUT, - - CFG_GBE_ENABLE_IN => use_gbe, - CFG_IPU_ENABLE_IN => use_trbnet, - CFG_MULT_ENABLE_IN => use_multievents, - CFG_SUBEVENT_ID_IN => pc_event_id, - CFG_SUBEVENT_DEC_IN => pc_decoding, - CFG_QUEUE_DEC_IN => pc_queue_dec, - CFG_READOUT_CTR_IN => readout_ctr, - CFG_READOUT_CTR_VALID_IN => readout_ctr_valid, - CFG_INSERT_TTYPE_IN => insert_ttype, - CFG_MAX_SUB_IN => max_sub, - CFG_MAX_QUEUE_IN => max_queue, - CFG_MAX_SUBS_IN_QUEUE_IN => max_subs_in_queue, - CFG_MAX_SINGLE_SUB_IN => max_single_sub, - - CFG_ADDITIONAL_HDR_IN => additional_hdr, - - -- signal to/from Host interface of TriSpeed MAC - TSM_HADDR_OUT => mac_haddr, - TSM_HDATA_OUT => mac_hdataout, - TSM_HCS_N_OUT => mac_hcs, - TSM_HWRITE_N_OUT => mac_hwrite, - TSM_HREAD_N_OUT => mac_hread, - TSM_HREADY_N_IN => mac_hready, - TSM_HDATA_EN_N_IN => mac_hdata_en, - TSM_RX_STAT_VEC_IN => mac_rx_stat_vec, - TSM_RX_STAT_EN_IN => mac_rx_stat_en, - - MONITOR_SELECT_REC_OUT => dbg_select_rec, - MONITOR_SELECT_REC_BYTES_OUT => dbg_select_rec_bytes, - MONITOR_SELECT_SENT_BYTES_OUT => dbg_select_sent_bytes, - MONITOR_SELECT_SENT_OUT => dbg_select_sent, - MONITOR_SELECT_DROP_IN_OUT => dbg_select_drop_in, - MONITOR_SELECT_DROP_OUT_OUT => dbg_select_drop_out, - MONITOR_SELECT_GEN_DBG_OUT => dbg_select_gen, - - DATA_HIST_OUT => dbg_hist, - SCTRL_HIST_OUT => dbg_hist2 - ); -end generate main_gen; - -main_with_dummy_gen : if USE_INTERNAL_TRBNET_DUMMY = 1 generate - MAIN_CONTROL : trb_net16_gbe_main_control - generic map( - RX_PATH_ENABLE => RX_PATH_ENABLE, - DO_SIMULATION => DO_SIMULATION - ) - port map( - CLK => CLK, - CLK_125 => serdes_clk_125, - RESET => RESET, - - MC_LINK_OK_OUT => link_ok, - MC_RESET_LINK_IN => global_reset, - MC_IDLE_TOO_LONG_OUT => idle_too_long, - MC_DHCP_DONE_OUT => dhcp_done, - - -- signals to/from receive controller - RC_FRAME_WAITING_IN => rc_frame_ready, - RC_LOADING_DONE_OUT => rc_loading_done, - RC_DATA_IN => rc_q, - RC_RD_EN_OUT => rc_rd_en, - RC_FRAME_SIZE_IN => rc_frame_size, - RC_FRAME_PROTO_IN => rc_frame_proto, - - RC_SRC_MAC_ADDRESS_IN => rc_src_mac, - RC_DEST_MAC_ADDRESS_IN => rc_dest_mac, - RC_SRC_IP_ADDRESS_IN => rc_src_ip, - RC_DEST_IP_ADDRESS_IN => rc_dest_ip, - RC_SRC_UDP_PORT_IN => rc_src_udp, - RC_DEST_UDP_PORT_IN => rc_dest_udp, - - -- signals to/from transmit controller - TC_TRANSMIT_CTRL_OUT => mc_transmit_ctrl, - TC_DATA_OUT => mc_data, - TC_RD_EN_IN => mc_wr_en, - --TC_DATA_NOT_VALID_OUT => tc_data_not_valid, - TC_FRAME_SIZE_OUT => mc_frame_size, - TC_FRAME_TYPE_OUT => mc_type, - TC_IP_PROTOCOL_OUT => mc_ip_proto, - TC_IDENT_OUT => mc_ident, - - TC_DEST_MAC_OUT => mc_dest_mac, - TC_DEST_IP_OUT => mc_dest_ip, - TC_DEST_UDP_OUT => mc_dest_udp, - TC_SRC_MAC_OUT => mc_src_mac, - TC_SRC_IP_OUT => mc_src_ip, - TC_SRC_UDP_OUT => mc_src_udp, - TC_TRANSMIT_DONE_IN => mc_transmit_done, - - -- signals to/from sgmii/gbe pcs_an_complete - PCS_AN_COMPLETE_IN => pcs_an_complete, - - -- signals to/from hub - MC_UNIQUE_ID_IN => MC_UNIQUE_ID_IN, - GSC_CLK_IN => GSC_CLK_IN, - GSC_INIT_DATAREADY_OUT => GSC_INIT_DATAREADY_OUT, - GSC_INIT_DATA_OUT => GSC_INIT_DATA_OUT, - GSC_INIT_PACKET_NUM_OUT => GSC_INIT_PACKET_NUM_OUT, - GSC_INIT_READ_IN => '1', --GSC_INIT_READ_IN, - GSC_REPLY_DATAREADY_IN => dum_dataready, --GSC_REPLY_DATAREADY_IN, - GSC_REPLY_DATA_IN => dum_data, --GSC_REPLY_DATA_IN, - GSC_REPLY_PACKET_NUM_IN => GSC_REPLY_PACKET_NUM_IN, - GSC_REPLY_READ_OUT => dum_read, --GSC_REPLY_READ_OUT, - GSC_BUSY_IN => dum_busy, --GSC_BUSY_IN, - - MAKE_RESET_OUT => make_reset, --MAKE_RESET_OUT, - - -- CTS interface - CTS_NUMBER_IN => gbe_cts_number, - CTS_CODE_IN => gbe_cts_code, - CTS_INFORMATION_IN => gbe_cts_information, - CTS_READOUT_TYPE_IN => gbe_cts_readout_type, - CTS_START_READOUT_IN => gbe_cts_start_readout, - CTS_DATA_OUT => open, - CTS_DATAREADY_OUT => open, - CTS_READOUT_FINISHED_OUT => gbe_cts_readout_finished, - CTS_READ_IN => '1', - CTS_LENGTH_OUT => open, - CTS_ERROR_PATTERN_OUT => gbe_cts_status_bits, - --Data payload interface - FEE_DATA_IN => gbe_fee_data, - FEE_DATAREADY_IN => gbe_fee_dataready, - FEE_READ_OUT => gbe_fee_read, - FEE_STATUS_BITS_IN => gbe_fee_status_bits, - FEE_BUSY_IN => gbe_fee_busy, - -- ip configurator - SLV_ADDR_IN => SLV_ADDR_IN, - SLV_READ_IN => SLV_READ_IN, - SLV_WRITE_IN => SLV_WRITE_IN, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, - SLV_DATA_IN => SLV_DATA_IN, - SLV_DATA_OUT => SLV_DATA_OUT, - - CFG_GBE_ENABLE_IN => '1', - CFG_IPU_ENABLE_IN => '0', - CFG_MULT_ENABLE_IN => '0', - CFG_SUBEVENT_ID_IN => x"0000_00cf", - CFG_SUBEVENT_DEC_IN => x"0002_0001", - CFG_QUEUE_DEC_IN => x"0003_0062", - CFG_READOUT_CTR_IN => x"00_0000", - CFG_READOUT_CTR_VALID_IN => '0', - CFG_INSERT_TTYPE_IN => '0', - CFG_MAX_SUB_IN => x"e998", -- 59800 - CFG_MAX_QUEUE_IN => x"ea60", -- 60000 - CFG_MAX_SUBS_IN_QUEUE_IN => x"00c8", -- 200 - CFG_MAX_SINGLE_SUB_IN => x"e998", --x"7d00", -- 32000 - - CFG_ADDITIONAL_HDR_IN => '0', - - -- signal to/from Host interface of TriSpeed MAC - TSM_HADDR_OUT => mac_haddr, - TSM_HDATA_OUT => mac_hdataout, - TSM_HCS_N_OUT => mac_hcs, - TSM_HWRITE_N_OUT => mac_hwrite, - TSM_HREAD_N_OUT => mac_hread, - TSM_HREADY_N_IN => mac_hready, - TSM_HDATA_EN_N_IN => mac_hdata_en, - TSM_RX_STAT_VEC_IN => mac_rx_stat_vec, - TSM_RX_STAT_EN_IN => mac_rx_stat_en, - - MONITOR_SELECT_REC_OUT => dbg_select_rec, - MONITOR_SELECT_REC_BYTES_OUT => dbg_select_rec_bytes, - MONITOR_SELECT_SENT_BYTES_OUT => dbg_select_sent_bytes, - MONITOR_SELECT_SENT_OUT => dbg_select_sent, - MONITOR_SELECT_DROP_IN_OUT => dbg_select_drop_in, - MONITOR_SELECT_DROP_OUT_OUT => dbg_select_drop_out, - MONITOR_SELECT_GEN_DBG_OUT => dbg_select_gen, - - DATA_HIST_OUT => dbg_hist, - SCTRL_HIST_OUT => dbg_hist2 - ); - - dummy : gbe_ipu_dummy - generic map( - DO_SIMULATION => DO_SIMULATION, - FIXED_SIZE_MODE => FIXED_SIZE_MODE, - INCREMENTAL_MODE => INCREMENTAL_MODE, - FIXED_SIZE => FIXED_SIZE, - UP_DOWN_MODE => UP_DOWN_MODE, - UP_DOWN_LIMIT => UP_DOWN_LIMIT, - FIXED_DELAY_MODE => FIXED_DELAY_MODE, - FIXED_DELAY => FIXED_DELAY - ) - port map( - clk => CLK, - rst => global_reset, - GBE_READY_IN => dhcp_done, - - CTS_NUMBER_OUT =>gbe_cts_number, - CTS_CODE_OUT =>gbe_cts_code, - CTS_INFORMATION_OUT =>gbe_cts_information, - CTS_READOUT_TYPE_OUT =>gbe_cts_readout_type, - CTS_START_READOUT_OUT =>gbe_cts_start_readout, - CTS_DATA_IN =>(others => '0'), - CTS_DATAREADY_IN =>'0', - CTS_READOUT_FINISHED_IN =>gbe_cts_readout_finished, - CTS_READ_OUT =>open, - CTS_LENGTH_IN =>(others => '0'), - CTS_ERROR_PATTERN_IN =>gbe_cts_status_bits, - -- Data payload interfac => - FEE_DATA_OUT =>gbe_fee_data, - FEE_DATAREADY_OUT =>gbe_fee_dataready, - FEE_READ_IN =>gbe_fee_read, - FEE_STATUS_BITS_OUT =>gbe_fee_status_bits, - FEE_BUSY_OUT =>gbe_fee_busy - ); - --- sctrl_dummy : gbe_sctrl_dummy --- generic map( --- DO_SIMULATION => DO_SIMULATION, --- FIXED_DELAY_MODE => 0, --- FIXED_DELAY => 4096 --- ) --- port map( --- clk => clk, --- rst => global_reset, --- --- RC_RD_EN_IN => dum_rd_en, --- RC_Q_OUT => dum_q, --- RC_FRAME_WAITING_OUT => dum_frame_ready, --- RC_LOADING_DONE_IN => '0', --- RC_FRAME_SIZE_OUT => dum_frame_size, --- RC_FRAME_PROTO_OUT => dum_frame_proto, --- --- RC_SRC_MAC_ADDRESS_OUT => open, --- RC_DEST_MAC_ADDRESS_OUT => open, --- RC_SRC_IP_ADDRESS_OUT => open, --- RC_DEST_IP_ADDRESS_OUT => open, --- RC_SRC_UDP_PORT_OUT => open, --- RC_DEST_UDP_PORT_OUT => open, --- --- GSC_REPLY_DATAREADY_OUT => dum_dataready, --- GSC_REPLY_DATA_OUT => dum_data, --- GSC_REPLY_PACKET_NUM_OUT => open, --- GSC_REPLY_READ_IN => dum_read, --- GSC_BUSY_OUT => dum_busy --- ); - - - end generate main_with_dummy_gen; - - MAKE_RESET_OUT <= make_reset; -- or idle_too_long; - -transmit_gen : if USE_INTERNAL_TRBNET_DUMMY = 0 generate - - TRANSMIT_CONTROLLER : trb_net16_gbe_transmit_control2 - port map( - CLK => CLK, - RESET => global_reset, --RESET, - - -- signal to/from main controller - TC_DATAREADY_IN => mc_transmit_ctrl, - TC_RD_EN_OUT => mc_wr_en, - TC_DATA_IN => mc_data(7 downto 0), - TC_FRAME_SIZE_IN => mc_frame_size, - TC_FRAME_TYPE_IN => mc_type, - TC_IP_PROTOCOL_IN => mc_ip_proto, - TC_DEST_MAC_IN => mc_dest_mac, - TC_DEST_IP_IN => mc_dest_ip, - TC_DEST_UDP_IN => mc_dest_udp, - TC_SRC_MAC_IN => mc_src_mac, - TC_SRC_IP_IN => mc_src_ip, - TC_SRC_UDP_IN => mc_src_udp, - TC_TRANSMISSION_DONE_OUT => mc_transmit_done, - TC_IDENT_IN => mc_ident, - TC_MAX_FRAME_IN => pc_max_frame_size, - - -- signal to/from frame constructor - FC_DATA_OUT => fc_data, - FC_WR_EN_OUT => fc_wr_en, - FC_READY_IN => fc_ready, - FC_H_READY_IN => fc_h_ready, - FC_FRAME_TYPE_OUT => fc_type, - FC_IP_SIZE_OUT => fc_ip_size, - FC_UDP_SIZE_OUT => fc_udp_size, - FC_IDENT_OUT => fc_ident, - FC_FLAGS_OFFSET_OUT => fc_flags_offset, - FC_SOD_OUT => fc_sod, - FC_EOD_OUT => fc_eod, - FC_IP_PROTOCOL_OUT => fc_protocol, - - DEST_MAC_ADDRESS_OUT => fc_dest_mac, - DEST_IP_ADDRESS_OUT => fc_dest_ip, - DEST_UDP_PORT_OUT => fc_dest_udp, - SRC_MAC_ADDRESS_OUT => fc_src_mac, - SRC_IP_ADDRESS_OUT => fc_src_ip, - SRC_UDP_PORT_OUT => fc_src_udp, - - MONITOR_TX_PACKETS_OUT => monitor_tx_packets - ); -end generate transmit_gen; - -transmit_with_dummy_gen : if USE_INTERNAL_TRBNET_DUMMY = 1 generate - TRANSMIT_CONTROLLER : trb_net16_gbe_transmit_control2 -port map( - CLK => CLK, - RESET => global_reset, --RESET, - --- signal to/from main controller - TC_DATAREADY_IN => mc_transmit_ctrl, - TC_RD_EN_OUT => mc_wr_en, - TC_DATA_IN => mc_data(7 downto 0), - TC_FRAME_SIZE_IN => mc_frame_size, - TC_FRAME_TYPE_IN => mc_type, - TC_IP_PROTOCOL_IN => mc_ip_proto, - TC_DEST_MAC_IN => mc_dest_mac, - TC_DEST_IP_IN => mc_dest_ip, - TC_DEST_UDP_IN => mc_dest_udp, - TC_SRC_MAC_IN => mc_src_mac, - TC_SRC_IP_IN => mc_src_ip, - TC_SRC_UDP_IN => mc_src_udp, - TC_TRANSMISSION_DONE_OUT => mc_transmit_done, - TC_IDENT_IN => mc_ident, - TC_MAX_FRAME_IN => x"0578", - --- signal to/from frame constructor - FC_DATA_OUT => fc_data, - FC_WR_EN_OUT => fc_wr_en, - FC_READY_IN => fc_ready, - FC_H_READY_IN => fc_h_ready, - FC_FRAME_TYPE_OUT => fc_type, - FC_IP_SIZE_OUT => fc_ip_size, - FC_UDP_SIZE_OUT => fc_udp_size, - FC_IDENT_OUT => fc_ident, - FC_FLAGS_OFFSET_OUT => fc_flags_offset, - FC_SOD_OUT => fc_sod, - FC_EOD_OUT => fc_eod, - FC_IP_PROTOCOL_OUT => fc_protocol, - - DEST_MAC_ADDRESS_OUT => fc_dest_mac, - DEST_IP_ADDRESS_OUT => fc_dest_ip, - DEST_UDP_PORT_OUT => fc_dest_udp, - SRC_MAC_ADDRESS_OUT => fc_src_mac, - SRC_IP_ADDRESS_OUT => fc_src_ip, - SRC_UDP_PORT_OUT => fc_src_udp, - - MONITOR_TX_PACKETS_OUT => monitor_tx_packets -); -end generate transmit_with_dummy_gen; - - -setup_imp_gen : if (DO_SIMULATION = 0) generate -SETUP : gbe_setup -port map( - CLK => CLK, - RESET => global_reset, --RESET, - - -- interface to regio bus - BUS_ADDR_IN => BUS_ADDR_IN, - BUS_DATA_IN => BUS_DATA_IN, - BUS_DATA_OUT => BUS_DATA_OUT, - BUS_WRITE_EN_IN => BUS_WRITE_EN_IN, - BUS_READ_EN_IN => BUS_READ_EN_IN, - BUS_ACK_OUT => BUS_ACK_OUT, - - -- output to gbe_buf - GBE_SUBEVENT_ID_OUT => pc_event_id, - GBE_SUBEVENT_DEC_OUT => pc_decoding, - GBE_QUEUE_DEC_OUT => pc_queue_dec, - GBE_MAX_FRAME_OUT => pc_max_frame_size, - GBE_USE_GBE_OUT => use_gbe, - GBE_USE_TRBNET_OUT => use_trbnet, - GBE_USE_MULTIEVENTS_OUT => use_multievents, - GBE_READOUT_CTR_OUT => readout_ctr, - GBE_READOUT_CTR_VALID_OUT => readout_ctr_valid, - GBE_ALLOW_RX_OUT => allow_rx, - GBE_ADDITIONAL_HDR_OUT => additional_hdr, - GBE_INSERT_TTYPE_OUT => insert_ttype, - GBE_SOFT_RESET_OUT => soft_rst, - - GBE_MAX_SUB_OUT => max_sub, - GBE_MAX_QUEUE_OUT => max_queue, - GBE_MAX_SUBS_IN_QUEUE_OUT => max_subs_in_queue, - GBE_MAX_SINGLE_SUB_OUT => max_single_sub, - - MONITOR_RX_BYTES_IN => monitor_rx_bytes, - MONITOR_RX_FRAMES_IN => monitor_rx_frames, - MONITOR_TX_BYTES_IN => monitor_tx_bytes, - MONITOR_TX_FRAMES_IN => monitor_tx_frames, - MONITOR_TX_PACKETS_IN => monitor_tx_packets, - MONITOR_DROPPED_IN => monitor_dropped, - - MONITOR_SELECT_REC_IN => dbg_select_rec, - MONITOR_SELECT_REC_BYTES_IN => dbg_select_rec_bytes, - MONITOR_SELECT_SENT_BYTES_IN => dbg_select_sent_bytes, - MONITOR_SELECT_SENT_IN => dbg_select_sent, - MONITOR_SELECT_DROP_IN_IN => dbg_select_drop_in, - MONITOR_SELECT_DROP_OUT_IN => dbg_select_drop_out, - MONITOR_SELECT_GEN_DBG_IN => dbg_select_gen, - - DATA_HIST_IN => dbg_hist, - SCTRL_HIST_IN => dbg_hist2 -); -end generate; - -setup_sim_gen : if (DO_SIMULATION = 1) generate - use_gbe <= '1'; - allow_rx <= '1'; - allow_large <= '0'; -end generate; - --- Third stage: Frame Constructor -FRAME_CONSTRUCTOR: trb_net16_gbe_frame_constr -port map( - -- ports for user logic - RESET => global_reset, --RESET, - CLK => CLK, - LINK_OK_IN => '1', --link_ok, - -- - WR_EN_IN => fc_wr_en, - DATA_IN => fc_data, - START_OF_DATA_IN => fc_sod, - END_OF_DATA_IN => fc_eod, - IP_F_SIZE_IN => fc_ip_size, - UDP_P_SIZE_IN => fc_udp_size, - HEADERS_READY_OUT => fc_h_ready, - READY_OUT => fc_ready, - DEST_MAC_ADDRESS_IN => fc_dest_mac, - DEST_IP_ADDRESS_IN => fc_dest_ip, - DEST_UDP_PORT_IN => fc_dest_udp, - SRC_MAC_ADDRESS_IN => fc_src_mac, - SRC_IP_ADDRESS_IN => fc_src_ip, - SRC_UDP_PORT_IN => fc_src_udp, - FRAME_TYPE_IN => fc_type, - IHL_VERSION_IN => fc_ihl_version, - TOS_IN => fc_tos, - IDENTIFICATION_IN => fc_ident, - FLAGS_OFFSET_IN => fc_flags_offset, - TTL_IN => fc_ttl, - PROTOCOL_IN => fc_protocol, - FRAME_DELAY_IN => (others => '0'), - - RD_CLK => serdes_clk_125, - FT_DATA_OUT => ft_data, - FT_TX_EMPTY_OUT => ft_tx_empty, - FT_TX_RD_EN_IN => mac_tx_read, - FT_START_OF_PACKET_OUT => ft_start_of_packet, - FT_TX_DONE_IN => mac_tx_done, - FT_TX_DISCFRM_IN => mac_tx_discfrm, - - MONITOR_TX_BYTES_OUT => monitor_tx_bytes, - MONITOR_TX_FRAMES_OUT => monitor_tx_frames -); - -dbg_q(15 downto 9) <= (others => '0'); - -FRAME_TRANSMITTER: trb_net16_gbe_frame_trans -port map( - CLK => CLK, - RESET => global_reset, --RESET, - LINK_OK_IN => link_ok, --pcs_an_complete, -- gk 03.08.10 -- gk 30.09.10 - TX_MAC_CLK => serdes_clk_125, - TX_EMPTY_IN => ft_tx_empty, - START_OF_PACKET_IN => ft_start_of_packet, - DATA_ENDFLAG_IN => ft_data(8), -- ft_eod -- gk 04.05.10 - - TX_FIFOAVAIL_OUT => mac_fifoavail, - TX_FIFOEOF_OUT => mac_fifoeof, - TX_FIFOEMPTY_OUT => mac_fifoempty, - TX_DONE_IN => mac_tx_done, - TX_STAT_EN_IN => mac_tx_staten, - TX_STATVEC_IN => mac_tx_statevec, - TX_DISCFRM_IN => mac_tx_discfrm, - -- Debug - BSM_INIT_OUT => ft_bsm_init, - BSM_MAC_OUT => ft_bsm_mac, - BSM_TRANS_OUT => ft_bsm_trans, - DBG_RD_DONE_OUT => open, - DBG_INIT_DONE_OUT => open, - DBG_ENABLED_OUT => open, - DEBUG_OUT => dbg_ft - --DEBUG_OUT(31 downto 0) => open, - --DEBUG_OUT(63 downto 32) => open -); - -rx_enable_gen : if (RX_PATH_ENABLE = 1) generate - - RECEIVE_CONTROLLER : trb_net16_gbe_receive_control - port map( - CLK => CLK, - RESET => global_reset, --RESET, - - -- signals to/from frame_receiver - RC_DATA_IN => fr_q, - FR_RD_EN_OUT => fr_rd_en, - FR_FRAME_VALID_IN => fr_frame_valid, - FR_GET_FRAME_OUT => fr_get_frame, - FR_FRAME_SIZE_IN => fr_frame_size, - FR_FRAME_PROTO_IN => fr_frame_proto, - FR_IP_PROTOCOL_IN => fr_ip_proto, - - FR_SRC_MAC_ADDRESS_IN => fr_src_mac, - FR_DEST_MAC_ADDRESS_IN => fr_dest_mac, - FR_SRC_IP_ADDRESS_IN => fr_src_ip, - FR_DEST_IP_ADDRESS_IN => fr_dest_ip, - FR_SRC_UDP_PORT_IN => fr_src_udp, - FR_DEST_UDP_PORT_IN => fr_dest_udp, - - -- signals to/from main controller - RC_RD_EN_IN => rc_rd_en, - RC_Q_OUT => rc_q, - RC_FRAME_WAITING_OUT => rc_frame_ready, - RC_LOADING_DONE_IN => rc_loading_done, - RC_FRAME_SIZE_OUT => rc_frame_size, - RC_FRAME_PROTO_OUT => rc_frame_proto, - - RC_SRC_MAC_ADDRESS_OUT => rc_src_mac, - RC_DEST_MAC_ADDRESS_OUT => rc_dest_mac, - RC_SRC_IP_ADDRESS_OUT => rc_src_ip, - RC_DEST_IP_ADDRESS_OUT => rc_dest_ip, - RC_SRC_UDP_PORT_OUT => rc_src_udp, - RC_DEST_UDP_PORT_OUT => rc_dest_udp, - - -- statistics - FRAMES_RECEIVED_OUT => rc_frames_rec_ctr, - BYTES_RECEIVED_OUT => rc_bytes_rec, - - - DEBUG_OUT => rc_debug - ); - - FRAME_RECEIVER : trb_net16_gbe_frame_receiver - port map( - CLK => CLK, - RESET => global_reset, --RESET, - LINK_OK_IN => link_ok, - ALLOW_RX_IN => allow_rx, - RX_MAC_CLK => serdes_rx_clk, --serdes_clk_125, - - -- input signals from TS_MAC - MAC_RX_EOF_IN => mac_rx_eof, - MAC_RX_ER_IN => mac_rx_er, - MAC_RXD_IN => mac_rxd, - MAC_RX_EN_IN => mac_rx_en, - MAC_RX_FIFO_ERR_IN => mac_rx_fifo_err, - MAC_RX_FIFO_FULL_OUT => mac_rx_fifo_full, - MAC_RX_STAT_EN_IN => mac_rx_stat_en, - MAC_RX_STAT_VEC_IN => mac_rx_stat_vec, - -- output signal to control logic - FR_Q_OUT => fr_q, - FR_RD_EN_IN => fr_rd_en, - FR_FRAME_VALID_OUT => fr_frame_valid, - FR_GET_FRAME_IN => fr_get_frame, - FR_FRAME_SIZE_OUT => fr_frame_size, - FR_FRAME_PROTO_OUT => fr_frame_proto, - FR_IP_PROTOCOL_OUT => fr_ip_proto, - FR_ALLOWED_TYPES_IN => (others => '1'), --fr_allowed_types, - FR_ALLOWED_IP_IN => (others => '1'), --fr_allowed_ip, - FR_ALLOWED_UDP_IN => (others => '1'), --fr_allowed_udp, - FR_VLAN_ID_IN => (others => '0'), --vlan_id, - - FR_SRC_MAC_ADDRESS_OUT => fr_src_mac, - FR_DEST_MAC_ADDRESS_OUT => fr_dest_mac, - FR_SRC_IP_ADDRESS_OUT => fr_src_ip, - FR_DEST_IP_ADDRESS_OUT => fr_dest_ip, - FR_SRC_UDP_PORT_OUT => fr_src_udp, - FR_DEST_UDP_PORT_OUT => fr_dest_udp, - - MONITOR_RX_BYTES_OUT => monitor_rx_bytes, - MONITOR_RX_FRAMES_OUT => monitor_rx_frames, - MONITOR_DROPPED_OUT => monitor_dropped - ); - -end generate rx_enable_gen; - -rx_disable_gen : if (RX_PATH_ENABLE = 0) generate - - - rc_q <= (others => '0'); - rc_frame_ready <= '0'; - rc_frame_size <= (others => '0'); - rc_frame_proto <= (others => '0'); - - rc_src_mac <= (others => '0'); - rc_dest_mac <= (others => '0'); - rc_src_ip <= (others => '0'); - rc_dest_ip <= (others => '0'); - rc_src_udp <= (others => '0'); - rc_dest_udp <= (others => '0'); - - rc_frames_rec_ctr <= (others => '0'); - rc_bytes_rec <= (others => '0'); - rc_debug <= (others => '0'); - - monitor_rx_bytes <= (others => '0'); - monitor_rx_frames <= (others => '0'); - monitor_dropped <= (others => '0'); - - mac_rx_fifo_full <= '0'; - -end generate rx_disable_gen; - - --- in case of real hardware, we use the IP cores for MAC and PHY, and also put a SerDes in -imp_gen: if (DO_SIMULATION = 0) generate - -------------------------------------------------------------------------------------------- - -------------------------------------------------------------------------------------------- - -- Implementation - -------------------------------------------------------------------------------------------- - -------------------------------------------------------------------------------------------- - - - TIMEOUT_CTR_PROC : process(CLK) - begin - if rising_edge(CLK) then - if (RESET = '1' or mac_tx_done = '1') then - timeout_ctr <= (others => '0'); - else - timeout_ctr <= timeout_ctr + x"1"; - end if; - end if; - end process TIMEOUT_CTR_PROC; - - TIMEOUT_NOTICED_PROC : process(CLK) - begin - if rising_edge(CLK) then - if (RESET = '1') then - timeout_noticed <= '0'; - elsif (timeout_ctr(30) = '1') then - timeout_noticed <= '1'; - end if; - end if; - end process TIMEOUT_NOTICED_PROC; - - mac_reset <= not RESET; - - -- MAC part - MAC: tsmac35 --tsmac36 --tsmac35 - port map( - ----------------- clock and reset port declarations ------------------ - hclk => CLK, - txmac_clk => serdes_clk_125, - rxmac_clk => serdes_rx_clk, --serdes_clk_125, - reset_n => GSR_N, - txmac_clk_en => mac_tx_clk_en, - rxmac_clk_en => mac_rx_clk_en, - ------------------- Input signals to the GMII ---------------- NOT USED - rxd => pcs_rxd_qq, --x"00", - rx_dv => pcs_rx_en_qq, --'0', - rx_er => pcs_rx_er_qq, --'0', - col => mac_col, - crs => mac_crs, - -------------------- Input signals to the CPU I/F ------------------- - haddr => mac_haddr, - hdatain => mac_hdataout, - hcs_n => mac_hcs, - hwrite_n => mac_hwrite, - hread_n => mac_hread, - ---------------- Input signals to the Tx MAC FIFO I/F --------------- - tx_fifodata => ft_data(7 downto 0), - tx_fifoavail => mac_fifoavail, - tx_fifoeof => mac_fifoeof, - tx_fifoempty => mac_fifoempty, - tx_sndpaustim => x"0000", - tx_sndpausreq => '0', - tx_fifoctrl => '0', -- always data frame - ---------------- Input signals to the Rx MAC FIFO I/F --------------- - rx_fifo_full => mac_rx_fifo_full, --'0', - ignore_pkt => '0', - ---------------- Output signals from the GMII ----------------------- - txd => pcs_txd, - tx_en => pcs_tx_en, - tx_er => pcs_tx_er, - ----------------- Output signals from the CPU I/F ------------------- - hdataout => open, - hdataout_en_n => mac_hdata_en, - hready_n => mac_hready, - cpu_if_gbit_en => tsmac_gbit_en, - ------------- Output signals from the Tx MAC FIFO I/F --------------- - tx_macread => mac_tx_read, - tx_discfrm => mac_tx_discfrm, - tx_staten => mac_tx_staten, -- gk 08.06.10 - tx_statvec => mac_tx_statevec, -- gk 08.06.10 - tx_done => mac_tx_done, - ------------- Output signals from the Rx MAC FIFO I/F --------------- - rx_fifo_error => mac_rx_fifo_err, --open, - rx_stat_vector => mac_rx_stat_vec, --open, - rx_dbout => mac_rxd, --open, - rx_write => mac_rx_en, --open, - rx_stat_en => mac_rx_stat_en, --open, - rx_eof => mac_rx_eof, --open, - rx_error => mac_rx_er --open - ); - - SYNC_GMII_RX_PROC : process(serdes_rx_clk) - begin - if rising_edge(serdes_rx_clk) then - pcs_rxd_q <= pcs_rxd; - pcs_rx_en_q <= pcs_rx_en; - pcs_rx_er_q <= pcs_rx_er; - - pcs_rxd_qq <= pcs_rxd_q; - pcs_rx_en_qq <= pcs_rx_en_q; - pcs_rx_er_qq <= pcs_rx_er_q; - --mac_col_q <= mac_col; - --mac_crs_q <= mac_crs; - end if; - end process SYNC_GMII_RX_PROC; - - SYNC_GMII_TX_PROC : process(serdes_clk_125) - begin - if rising_edge(serdes_clk_125) then - pcs_txd_q <= pcs_txd; - pcs_tx_en_q <= pcs_tx_en; - pcs_tx_er_q <= pcs_tx_er; - - pcs_txd_qq <= pcs_txd_q; - pcs_tx_en_qq <= pcs_tx_en_q; - pcs_tx_er_qq <= pcs_tx_er_q; - end if; - end process SYNC_GMII_TX_PROC; - - -- gk 08.06.10 - dbg_statevec_proc : process(serdes_clk_125) - begin - if rising_edge(serdes_clk_125) then - if (RESET = '1') then - dbg_ft1 <= (others => '0'); - elsif (mac_tx_staten = '1') then - dbg_ft1(30 downto 0) <= mac_tx_statevec; - dbg_ft1(31) <= mac_tx_discfrm; - end if; - end if; - end process dbg_statevec_proc; - - serdes_intclk_gen: if (USE_125MHZ_EXTCLK = 0) generate - -- PHY part - PCS_SERDES : trb_net16_med_ecp_sfp_gbe_8b - generic map( - USE_125MHZ_EXTCLK => 0 - ) - port map( - RESET => global_reset, --soft_gbe_reset, --RESET, - GSR_N => GSR_N, - CLK_125_OUT => serdes_clk_125, - CLK_125_RX_OUT => serdes_rx_clk, --open, - CLK_125_IN => CLK_125_IN, - FT_TX_CLK_EN_OUT => mac_tx_clk_en, - FT_RX_CLK_EN_OUT => mac_rx_clk_en, - --connection to frame transmitter (tsmac) - FT_COL_OUT => mac_col, - FT_CRS_OUT => mac_crs, - FT_TXD_IN => pcs_txd_qq, - FT_TX_EN_IN => pcs_tx_en_qq, - FT_TX_ER_IN => pcs_tx_er_qq, - FT_RXD_OUT => pcs_rxd, - FT_RX_EN_OUT => pcs_rx_en, - FT_RX_ER_OUT => pcs_rx_er, - --SFP Connection - SD_RXD_P_IN => SFP_RXD_P_IN, - SD_RXD_N_IN => SFP_RXD_N_IN, - SD_TXD_P_OUT => SFP_TXD_P_OUT, - SD_TXD_N_OUT => SFP_TXD_N_OUT, - SD_REFCLK_P_IN => SFP_REFCLK_P_IN, - SD_REFCLK_N_IN => SFP_REFCLK_N_IN, - SD_PRSNT_N_IN => SFP_PRSNT_N_IN, - SD_LOS_IN => SFP_LOS_IN, - SD_TXDIS_OUT => SFP_TXDIS_OUT, - -- Autonegotiation stuff - MR_ADV_ABILITY_IN => x"0020", -- full duplex only - MR_AN_LP_ABILITY_OUT => pcs_an_lp_ability, - MR_AN_PAGE_RX_OUT => pcs_an_page_rx, - MR_AN_COMPLETE_OUT => pcs_an_complete, - MR_RESET_IN => RESET, - MR_MODE_IN => '0', --MR_MODE_IN, - MR_AN_ENABLE_IN => '1', -- do autonegotiation - MR_RESTART_AN_IN => '0', --MR_RESTART_IN, - -- Status and control port - STAT_OP => open, - CTRL_OP => x"0000", - STAT_DEBUG => pcs_stat_debug, --open, - CTRL_DEBUG => x"0000_0000_0000_0000" - ); - end generate serdes_intclk_gen; - - serdes_extclk_gen: if (USE_125MHZ_EXTCLK = 1) generate - -- PHY part - PCS_SERDES : trb_net16_med_ecp_sfp_gbe_8b - generic map( - USE_125MHZ_EXTCLK => 1 - ) - port map( - RESET => global_reset, --soft_gbe_reset, --RESET, - GSR_N => GSR_N, - CLK_125_OUT => serdes_clk_125, - CLK_125_RX_OUT => serdes_rx_clk, - CLK_125_IN => '0', -- not used - FT_TX_CLK_EN_OUT => mac_tx_clk_en, - FT_RX_CLK_EN_OUT => mac_rx_clk_en, - --connection to frame transmitter (tsmac) - FT_COL_OUT => mac_col, - FT_CRS_OUT => mac_crs, - FT_TXD_IN => pcs_txd, - FT_TX_EN_IN => pcs_tx_en, - FT_TX_ER_IN => pcs_tx_er, - FT_RXD_OUT => pcs_rxd, - FT_RX_EN_OUT => pcs_rx_en, - FT_RX_ER_OUT => pcs_rx_er, - --SFP Connection - SD_RXD_P_IN => SFP_RXD_P_IN, - SD_RXD_N_IN => SFP_RXD_N_IN, - SD_TXD_P_OUT => SFP_TXD_P_OUT, - SD_TXD_N_OUT => SFP_TXD_N_OUT, - SD_REFCLK_P_IN => SFP_REFCLK_P_IN, - SD_REFCLK_N_IN => SFP_REFCLK_N_IN, - SD_PRSNT_N_IN => SFP_PRSNT_N_IN, - SD_LOS_IN => SFP_LOS_IN, - SD_TXDIS_OUT => SFP_TXDIS_OUT, - -- Autonegotiation stuff - MR_ADV_ABILITY_IN => x"0020", -- full duplex only - MR_AN_LP_ABILITY_OUT => pcs_an_lp_ability, - MR_AN_PAGE_RX_OUT => pcs_an_page_rx, - MR_AN_COMPLETE_OUT => pcs_an_complete, - MR_RESET_IN => MR_RESET_IN, - MR_MODE_IN => MR_MODE_IN, - MR_AN_ENABLE_IN => '1', -- do autonegotiation - MR_RESTART_AN_IN => MR_RESTART_IN, - -- Status and control port - STAT_OP => open, - CTRL_OP => x"0000", - STAT_DEBUG => pcs_stat_debug, --open, - CTRL_DEBUG => x"0000_0000_0000_0000" - ); - end generate serdes_extclk_gen; - - stage_stat_regs(31 downto 28) <= x"e"; - stage_stat_regs(27 downto 24) <= pcs_stat_debug(25 downto 22); -- link s-tatus - stage_stat_regs(23 downto 20) <= pcs_stat_debug(35 downto 32); -- reset bsm - stage_stat_regs(19) <= '0'; - stage_stat_regs(18) <= link_ok; -- gk 30.09.10 - stage_stat_regs(17) <= pcs_an_complete; - stage_stat_regs(16) <= pcs_an_page_rx; - stage_stat_regs(15 downto 0) <= pcs_an_lp_ability; - -end generate imp_gen; - --- in case of simulation we include a fake MAC and no PHY/SerDes. -sim_gen: if (DO_SIMULATION = 1) generate - -------------------------------------------------------------------------------------------- - -------------------------------------------------------------------------------------------- - -- Simulation - -------------------------------------------------------------------------------------------- - -------------------------------------------------------------------------------------------- - MAC: mb_mac_sim - port map( -------------------------------------------------------------------------- - --------------- clock, reset, clock enable ------------------------------- - HCLK => CLK, - TX_MAC_CLK => serdes_clk_125, - RX_MAC_CLK => serdes_rx_clk, --serdes_clk_125, - RESET_N => GSR_N, - TXMAC_CLK_EN => mac_tx_clk_en, - RXMAC_CLK_EN => mac_rx_clk_en, - -------------------------------------------------------------------------- - --------------- SGMII receive interface ---------------------------------- - RXD => x"00", - RX_DV => '0', - RX_ER => '0', - COL => mac_col, - CRS => mac_crs, - -------------------------------------------------------------------------- - --------------- SGMII transmit interface --------------------------------- - TXD => pcs_txd, - TX_EN => pcs_tx_en, - TX_ER => pcs_tx_er, - -------------------------------------------------------------------------- - --------------- CPU configuration interface ------------------------------ - HADDR => mac_haddr, - HDATAIN => mac_hdataout, - HCS_N => mac_hcs, - HWRITE_N => mac_hwrite, - HREAD_N => mac_hread, - HDATAOUT => open, - HDATAOUT_EN_N => mac_hdata_en, - HREADY_N => mac_hready, - CPU_IF_GBIT_EN => open, - -------------------------------------------------------------------------- - --------------- Transmit FIFO interface ---------------------------------- - TX_FIFODATA => ft_data(7 downto 0), - TX_FIFOAVAIL => mac_fifoavail, - TX_FIFOEOF => mac_fifoeof, - TX_FIFOEMPTY => mac_fifoempty, - TX_MACREAD => mac_tx_read, - TX_DONE => mac_tx_done, - TX_SNDPAUSTIM => x"0000", - TX_SNDPAUSREQ => '0', - TX_FIFOCTRL => '0', - TX_DISCFRM => open, - TX_STATEN => open, - TX_STATVEC => open, - -------------------------------------------------------------------------- - --------------- Receive FIFO interface ----------------------------------- - RX_DBOUT => open, - RX_FIFO_FULL => '0', - IGNORE_PKT => '0', - RX_FIFO_ERROR => open, - RX_STAT_VECTOR => open, - RX_STAT_EN => open, - RX_WRITE => open, - RX_EOF => open, - RX_ERROR => open - ); - - -- add external test clock for the MAC part - serdes_clk_125 <= TEST_CLK; - - -- fake signals - pcs_an_lp_ability <= x"4060"; - pcs_an_page_rx <= '0'; - pcs_an_complete <= '1'; - mac_tx_clk_en <= '1'; - mac_rx_clk_en <= '1'; - - stage_stat_regs(31 downto 0) <= (others => '0'); - - pcs_stat_debug(63 downto 0) <= (others => '0'); - - SFP_TXD_P_OUT <= '1'; - SFP_TXD_N_OUT <= '0'; - SFP_TXDIS_OUT <= '0'; - - mac_rxd <= MAC_RXD_IN; - mac_rx_eof <= MAC_RX_EOF_IN; - mac_rx_en <= MAC_RX_EN_IN; - - serdes_rx_clk <= TEST_CLK; - -end generate sim_gen; - - ---*********************** --- MONITORING & DEBUG ---*********************** - - - - --- gk 04.08.10 ---MON_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- monitor_fifos_q(3 downto 0) <= monitor_fifos(3 downto 0); --- if (dbg_pc1(28) = '1') then --- monitor_fifos_q(5 downto 4) <= b"11"; --- else --- monitor_fifos_q(5 downto 4) <= b"00"; --- end if; --- if (dbg_pc1(30) = '1') then --- monitor_fifos_q(7 downto 6) <= b"11"; --- else --- monitor_fifos_q(7 downto 6) <= b"00"; --- end if; --- if (dbg_fc1(28) = '1') then --- monitor_fifos_q(11 downto 8) <= b"1111"; --- else --- monitor_fifos_q(11 downto 8) <= b"0000"; --- end if; --- if (pcs_an_complete = '0') then --- monitor_fifos_q(15 downto 12) <= b"1111"; --- else --- monitor_fifos_q(15 downto 12) <= b"0000"; --- end if; --- end if; ---end process MON_PROC; - ----- gk 28.07.10 ---BYTES_SENT_CTR_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- bytes_sent_ctr <= (others => '0'); --- elsif (fc_wr_en = '1') then --- bytes_sent_ctr <= bytes_sent_ctr + x"1"; --- end if; --- end if; ---end process BYTES_SENT_CTR_PROC; --- ----- gk 02.08.10 ---DISCFRM_PROC : process(serdes_clk_125) ---begin --- if rising_edge(serdes_clk_125) then --- if (RESET = '1') then --- discfrm_ctr <= (others => '0'); --- elsif (mac_tx_discfrm = '1') then --- discfrm_ctr <= discfrm_ctr + x"1"; --- end if; --- end if; ---end process DISCFRM_PROC; --- ---discfrm_sync : signal_sync --- generic map( --- DEPTH => 2, --- WIDTH => 32 --- ) --- port map( --- RESET => RESET, --- D_IN => discfrm_ctr, --- CLK0 => serdes_clk_125, --- CLK1 => CLK, --- D_OUT => monitor_discfrm --- ); - - ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- - ---*************** --- LOGIC ANALYZER SIGNALS ---*************** ---ANALYZER_DEBUG_OUT <= dbg_mc or dbg_tc or (dbg_fc1 & dbg_fc2) or rc_debug or dbg_ft or dbg_fr(63 downto 0) or (dbg_fr(95 downto 64) & x"00000000"); ---ANALYZER_DEBUG_OUT(3 downto 0) <= dbg_select_protos(99 downto 96); ---ANALYZER_DEBUG_OUT(63 downto 4) <= (others => '0'); - --- Outputs ---FEE_READ_OUT <= fee_read; - -CTS_READOUT_FINISHED_OUT <= cts_readout_finished; -CTS_DATAREADY_OUT <= cts_dataready; -CTS_DATA_OUT <= cts_data; -CTS_LENGTH_OUT <= cts_length; -CTS_ERROR_PATTERN_OUT <= cts_error_pattern; - -STAGE_STAT_REGS_OUT <= stage_stat_regs; - - -end architecture; diff --git a/gbe2_ecp3/trb_net16_gbe_event_constr.vhd b/gbe2_ecp3/trb_net16_gbe_event_constr.vhd deleted file mode 100644 index 2324dc0..0000000 --- a/gbe2_ecp3/trb_net16_gbe_event_constr.vhd +++ /dev/null @@ -1,701 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - -entity trb_net16_gbe_event_constr is -port( - RESET : in std_logic; - CLK : in std_logic; - -- ports for user logic - PC_WR_EN_IN : in std_logic; -- write into queueConstr from userLogic - PC_DATA_IN : in std_logic_vector(7 downto 0); - PC_READY_OUT : out std_logic; - PC_START_OF_SUB_IN : in std_logic; - PC_END_OF_SUB_IN : in std_logic; -- gk 07.10.10 - PC_END_OF_QUEUE_IN : in std_logic; - -- queue and subevent layer headers - PC_SUB_SIZE_IN : in std_logic_vector(31 downto 0); -- store and swap - PC_DECODING_IN : in std_logic_vector(31 downto 0); -- swap - PC_EVENT_ID_IN : in std_logic_vector(31 downto 0); -- swap - PC_TRIG_NR_IN : in std_logic_vector(31 downto 0); -- store and swap! - PC_TRIGGER_TYPE_IN : in std_logic_vector(3 downto 0); - PC_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); -- swap - PC_INSERT_TTYPE_IN : in std_logic; - -- FrameConstructor ports - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_EVENT_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_SOD_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end entity trb_net16_gbe_event_constr; - -architecture RTL of trb_net16_gbe_event_constr is - -attribute syn_encoding : string; - -type loadStates is (IDLE, GET_Q_SIZE, START_TRANSFER, LOAD_Q_HEADERS, LOAD_DATA, LOAD_SUB, LOAD_PADDING, LOAD_TERM, CLEANUP); -signal load_current_state, load_next_state : loadStates; -attribute syn_encoding of load_current_state : signal is "onehot"; - -type saveSubHdrStates is (IDLE, SAVE_SIZE, SAVE_DECODING, SAVE_ID, SAVE_TRG_NR); -signal save_sub_hdr_current_state, save_sub_hdr_next_state : saveSubHdrStates; -attribute syn_encoding of save_sub_hdr_current_state : signal is "onehot"; - -signal df_eos, df_wr_en, df_rd_en, df_empty, df_full, load_eod : std_logic; -signal df_q, df_qq : std_logic_vector(7 downto 0); - -signal header_ctr : integer range 0 to 31; - -signal shf_data, shf_q, shf_qq : std_logic_vector(7 downto 0); -signal shf_wr_en, shf_rd_en, shf_empty, shf_full : std_logic; -signal sub_int_ctr : integer range 0 to 3; -signal sub_size_to_save : std_logic_vector(31 downto 0); - -signal qsf_data : std_logic_vector(31 downto 0); -signal qsf_q : std_logic_vector(7 downto 0); -signal qsf_wr, qsf_wr_en, qsf_wr_en_q, qsf_wr_en_qq, qsf_wr_en_qqq, qsf_rd_en, qsf_rd_en_q, qsf_empty : std_logic; - -signal queue_size : std_logic_vector(31 downto 0); - -signal termination : std_logic_vector(255 downto 0); -signal term_ctr : integer range 0 to 33; - -signal actual_q_size : std_logic_vector(15 downto 0); -signal tc_data : std_logic_vector(7 downto 0); -signal df_data : std_logic_vector(7 downto 0); -signal df_eos_q, df_eos_qq : std_logic; -signal df_wr_en_q, df_wr_en_qq : std_logic; -signal qsf_full : std_logic; - -signal padding_needed, insert_padding : std_logic; -signal load_eod_q : std_logic; -signal loaded_queue_bytes : std_logic_vector(15 downto 0); -signal shf_padding : std_logic; -signal block_shf_after_divide, previous_tc_rd : std_logic; -signal block_term_after_divide : std_logic; - -begin - ---******* --- SAVING PART ---******* - -DF_EOD_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (PC_END_OF_SUB_IN = '1') then - df_eos <= '1'; - else - df_eos <= '0'; - end if; - - df_eos_q <= df_eos; - df_eos_qq <= df_eos_q; - end if; -end process DF_EOD_PROC; - -DF_WR_EN_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (PC_WR_EN_IN = '1') then - df_wr_en <= '1'; - else - df_wr_en <= '0'; - end if; - - df_wr_en_q <= df_wr_en; - df_wr_en_qq <= df_wr_en_q; - - df_data <= PC_DATA_IN; - end if; -end process DF_WR_EN_PROC; - -DATA_FIFO : fifo_64kx9 -port map( - Data(7 downto 0) => df_data, - Data(8) => df_eos_q, - WrClock => CLK, - RdClock => CLK, - WrEn => df_wr_en_qq, - RdEn => df_rd_en, - Reset => RESET, - RPReset => RESET, - Q(7 downto 0) => df_q, - Q(8) => load_eod, - Empty => df_empty, - Full => df_full -); - -DF_QQ_PROC : process(CLK) -begin - if rising_edge(CLK) then - df_qq <= df_q; - end if; -end process DF_QQ_PROC; - -READY_PROC : process(CLK) -begin - if rising_edge(CLK) then - PC_READY_OUT <= not df_full; - end if; -end process READY_PROC; - ---***** --- subevent headers -SUBEVENT_HEADERS_FIFO : fifo_4096x9 --fifo_4kx8_ecp3 -port map( - Data(7 downto 0) => shf_data, - Data(8) => PC_SUB_SIZE_IN(2), - WrClock => CLK, - RdClock => CLK, - WrEn => shf_wr_en, - RdEn => shf_rd_en, - Reset => RESET, - RPReset => RESET, - Q(7 downto 0) => shf_q, - Q(8) => shf_padding, - Empty => shf_empty, - Full => shf_full -); - -SHF_WR_EN_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (save_sub_hdr_current_state = IDLE) then - shf_wr_en <= '0'; - else - shf_wr_en <= '1'; - end if; - end if; -end process SHF_WR_EN_PROC; - -VARIOUS_SYNC : process(CLK) -begin - if rising_edge(CLK) then - shf_qq <= shf_q; - end if; -end process VARIOUS_SYNC; - -SAVE_SUB_HDR_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - save_sub_hdr_current_state <= IDLE; - elsif rising_edge(CLK) then - save_sub_hdr_current_state <= save_sub_hdr_next_state; - end if; -end process SAVE_SUB_HDR_MACHINE_PROC; - -SAVE_SUB_HDR_MACHINE : process(save_sub_hdr_current_state, PC_START_OF_SUB_IN, sub_int_ctr) -begin - case (save_sub_hdr_current_state) is - - when IDLE => - if (PC_START_OF_SUB_IN = '1') then - save_sub_hdr_next_state <= SAVE_SIZE; - else - save_sub_hdr_next_state <= IDLE; - end if; - - when SAVE_SIZE => - if (sub_int_ctr = 0) then - save_sub_hdr_next_state <= SAVE_DECODING; - else - save_sub_hdr_next_state <= SAVE_SIZE; - end if; - - when SAVE_DECODING => - if (sub_int_ctr = 0) then - save_sub_hdr_next_state <= SAVE_ID; - else - save_sub_hdr_next_state <= SAVE_DECODING; - end if; - - when SAVE_ID => - if (sub_int_ctr = 0) then - save_sub_hdr_next_state <= SAVE_TRG_NR; - else - save_sub_hdr_next_state <= SAVE_ID; - end if; - - when SAVE_TRG_NR => - if (sub_int_ctr = 0) then - save_sub_hdr_next_state <= IDLE; - else - save_sub_hdr_next_state <= SAVE_TRG_NR; - end if; - - when others => save_sub_hdr_next_state <= IDLE; - - end case; -end process SAVE_SUB_HDR_MACHINE; - -SUB_INT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (save_sub_hdr_current_state = IDLE) then - sub_int_ctr <= 3; - else - if (sub_int_ctr = 0) then - sub_int_ctr <= 3; - else - sub_int_ctr <= sub_int_ctr - 1; - end if; - end if; - end if; -end process SUB_INT_CTR_PROC; - -SUB_SIZE_TO_SAVE_PROC : process (CLK) -begin - if rising_edge(CLK) then - sub_size_to_save <= PC_SUB_SIZE_IN + x"10" + x"8"; -- addition for subevent headers and subsubevent - end if; -end process SUB_SIZE_TO_SAVE_PROC; - -SHF_DATA_PROC : process(CLK) -begin - if rising_edge(CLK) then - case (save_sub_hdr_current_state) is - - when IDLE => - shf_data <= x"ac"; - - when SAVE_SIZE => - shf_data <= sub_size_to_save(sub_int_ctr * 8 + 7 downto sub_int_ctr * 8); - - when SAVE_DECODING => - if (PC_INSERT_TTYPE_IN = '0') then - shf_data <= PC_DECODING_IN(sub_int_ctr * 8 + 7 downto sub_int_ctr * 8); - else - if (sub_int_ctr = 0) then - shf_data(3 downto 0) <= PC_DECODING_IN(3 downto 0); - shf_data(7 downto 4) <= PC_TRIGGER_TYPE_IN; - else - shf_data <= PC_DECODING_IN(sub_int_ctr * 8 + 7 downto sub_int_ctr * 8); - end if; - end if; - - when SAVE_ID => - shf_data <= PC_EVENT_ID_IN(sub_int_ctr * 8 + 7 downto sub_int_ctr * 8); - - when SAVE_TRG_NR => - shf_data <= PC_TRIG_NR_IN(sub_int_ctr * 8 + 7 downto sub_int_ctr * 8); - - when others => shf_data <= x"00"; - - end case; - end if; -end process SHF_DATA_PROC; - ---******* --- queue sizes - -QUEUE_SIZE_FIFO : fifo_512x32x8 -port map( - Data => qsf_data, - WrClock => CLK, - RdClock => CLK, - WrEn => qsf_wr, - RdEn => qsf_rd_en, - Reset => RESET, - RPReset => RESET, - Q => qsf_q, - Empty => qsf_empty, - Full => qsf_full -); - -qsf_wr <= qsf_wr_en_qqq or qsf_wr_en_qq or qsf_wr_en_q; - -QSF_DATA_PROC : process(CLK) -begin - if rising_edge(CLK) then - -- queue size is saved twice in a row to facilitate readout and packet construction - if (qsf_wr_en = '1' or qsf_wr_en_q = '1') then - if (qsf_wr_en = '1' and qsf_wr_en_q = '0') then - qsf_data(7) <= padding_needed; - qsf_data(6 downto 0) <= (others => '0'); - else - qsf_data(7 downto 0) <= queue_size(31 downto 24); - end if; - qsf_data(15 downto 8) <= queue_size(23 downto 16); - qsf_data(23 downto 16) <= queue_size(15 downto 8); - qsf_data(31 downto 24) <= queue_size(7 downto 0); - elsif (qsf_wr_en_qq = '1') then - qsf_data(7 downto 0) <= PC_QUEUE_DEC_IN(31 downto 24); - qsf_data(15 downto 8) <= PC_QUEUE_DEC_IN(23 downto 16); - qsf_data(23 downto 16) <= PC_QUEUE_DEC_IN(15 downto 8); - qsf_data(31 downto 24) <= PC_QUEUE_DEC_IN(7 downto 0); - else - qsf_data <= (others => '1'); - end if; - end if; -end process QSF_DATA_PROC; - -QSF_WR_PROC : process(CLK) -begin - if rising_edge(CLK) then - qsf_wr_en_q <= qsf_wr_en; - qsf_wr_en_qq <= qsf_wr_en_q; - qsf_wr_en_qqq <= qsf_wr_en_qq; - - qsf_wr_en <= PC_END_OF_QUEUE_IN; - end if; -end process QSF_WR_PROC; - -QUEUE_SIZE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - queue_size <= x"0000_0008"; -- queue headers - elsif rising_edge(CLK) then - if (qsf_wr_en_qqq = '1') then - queue_size <= x"0000_0008"; - elsif (save_sub_hdr_current_state = SAVE_SIZE and sub_int_ctr = 0) then - if (PC_SUB_SIZE_IN(2) = '1') then - queue_size <= queue_size + PC_SUB_SIZE_IN + x"4" + x"10" + x"8"; -- subevent data size + padding + subevent headers + subsubevent - else - queue_size <= queue_size + PC_SUB_SIZE_IN + x"10" + x"8"; -- subevent data size + subevent headers + subsubevent - end if; - else - queue_size <= queue_size; - end if; - end if; -end process QUEUE_SIZE_PROC; - -process(CLK) -begin - if rising_edge(CLK) then - if (PC_START_OF_SUB_IN = '1') then - padding_needed <= '0'; - elsif (save_sub_hdr_current_state = SAVE_SIZE and sub_int_ctr = 0) then - if (PC_SUB_SIZE_IN(2) = '1') then - padding_needed <= '1'; - else - padding_needed <= '0'; - end if; - else - padding_needed <= padding_needed; - end if; - end if; -end process; - ---******* --- LOADING PART ---******* - -LOAD_MACHINE_PROC : process(RESET, CLK) is -begin - if RESET = '1' then - load_current_state <= IDLE; - elsif rising_edge(CLK) then - load_current_state <= load_next_state; - end if; -end process LOAD_MACHINE_PROC; - -LOAD_MACHINE : process(load_current_state, qsf_empty, header_ctr, load_eod_q, term_ctr, insert_padding, loaded_queue_bytes, actual_q_size) -begin - case (load_current_state) is - - when IDLE => - if (qsf_empty = '0') then -- something in queue sizes fifo means entire queue is waiting - load_next_state <= GET_Q_SIZE; - else - load_next_state <= IDLE; - end if; - - when GET_Q_SIZE => - if (header_ctr = 0) then - load_next_state <= START_TRANSFER; - else - load_next_state <= GET_Q_SIZE; - end if; - - when START_TRANSFER => - load_next_state <= LOAD_Q_HEADERS; - - when LOAD_Q_HEADERS => - if (header_ctr = 0) then - load_next_state <= LOAD_SUB; - else - load_next_state <= LOAD_Q_HEADERS; - end if; - - when LOAD_SUB => - if (header_ctr = 0) then - load_next_state <= LOAD_DATA; - else - load_next_state <= LOAD_SUB; - end if; - - when LOAD_DATA => - if (load_eod_q = '1' and term_ctr = 33) then - if (insert_padding = '1') then - load_next_state <= LOAD_PADDING; - else - if (loaded_queue_bytes = actual_q_size) then - load_next_state <= LOAD_TERM; - else - load_next_state <= LOAD_SUB; - end if; - end if; - else - load_next_state <= LOAD_DATA; - end if; - - when LOAD_PADDING => - if (header_ctr = 0) then - if (loaded_queue_bytes = actual_q_size) then - load_next_state <= LOAD_TERM; - else - load_next_state <= LOAD_SUB; - end if; - else - load_next_state <= LOAD_PADDING; - end if; - - when LOAD_TERM => - if (header_ctr = 0) then - load_next_state <= CLEANUP; - else - load_next_state <= LOAD_TERM; - end if; - - when CLEANUP => - load_next_state <= IDLE; - - end case; -end process LOAD_MACHINE; - -process(CLK) -begin - if rising_edge(CLK) then - load_eod_q <= load_eod; - end if; -end process; - -HEADER_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = IDLE) then - header_ctr <= 3; - elsif (load_current_state = GET_Q_SIZE and header_ctr = 0) then - header_ctr <= 8; - elsif (load_current_state = LOAD_Q_HEADERS and header_ctr = 0) then - header_ctr <= 15; - elsif (load_current_state = LOAD_SUB and header_ctr = 0) then - if (insert_padding = '1') then - header_ctr <= 3; - else - header_ctr <= 31; - end if; - elsif (load_current_state = LOAD_PADDING and header_ctr = 0) then - if (loaded_queue_bytes = actual_q_size) then - header_ctr <= 31; - else - header_ctr <= 15; - end if; - elsif (load_current_state = LOAD_DATA and load_eod_q = '1' and term_ctr = 33 and loaded_queue_bytes = actual_q_size and insert_padding = '0') then - header_ctr <= 31; - elsif (load_current_state = LOAD_DATA and load_eod_q = '1' and term_ctr = 33 and loaded_queue_bytes /= actual_q_size and insert_padding = '0') then - header_ctr <= 15; - elsif (load_current_state = LOAD_DATA and load_eod_q = '1' and term_ctr = 33 and loaded_queue_bytes /= actual_q_size and insert_padding = '1') then - header_ctr <= 3; - elsif (load_current_state = LOAD_TERM and header_ctr = 0) then - header_ctr <= 3; - elsif (TC_RD_EN_IN = '1') then - if (load_current_state = LOAD_Q_HEADERS or load_current_state = LOAD_TERM or load_current_state = LOAD_PADDING) then - if (load_current_state = LOAD_TERM) then - if (block_term_after_divide = '1') then - header_ctr <= 31; - else - header_ctr <= header_ctr - 1; - end if; - else - header_ctr <= header_ctr - 1; - end if; - elsif (load_current_state = LOAD_SUB and block_shf_after_divide = '0') then - header_ctr <= header_ctr - 1; - else - header_ctr <= header_ctr; - end if; - elsif (load_current_state = GET_Q_SIZE) then - header_ctr <= header_ctr - 1; - else - header_ctr <= header_ctr; - end if; - end if; -end process HEADER_CTR_PROC; - -SIZE_FOR_PADDING_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = IDLE) then - insert_padding <= '0'; - elsif (load_current_state = LOAD_SUB and header_ctr = 12) then - insert_padding <= shf_padding; - else - insert_padding <= insert_padding; - end if; - end if; -end process SIZE_FOR_PADDING_PROC; - -TC_SOD_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = START_TRANSFER) then - TC_SOD_OUT <= '1'; - else - TC_SOD_OUT <= '0'; - end if; - end if; -end process TC_SOD_PROC; - -process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = IDLE) then - loaded_queue_bytes <= (others => '0'); - elsif (TC_RD_EN_IN = '1') then - loaded_queue_bytes <= loaded_queue_bytes + x"1"; - else - loaded_queue_bytes <= loaded_queue_bytes; - end if; - end if; -end process; - ---***** --- read from fifos - -df_rd_en <= '1' when (load_current_state = LOAD_DATA and TC_RD_EN_IN = '1' and load_eod_q = '0') or - (load_current_state = LOAD_SUB and header_ctr = 0 and TC_RD_EN_IN = '1') - else '0'; - -shf_rd_en <= '1' when (load_current_state = LOAD_SUB and TC_RD_EN_IN = '1' and header_ctr /= 0 and block_shf_after_divide = '0') or - (load_current_state = LOAD_Q_HEADERS and header_ctr = 0 and TC_RD_EN_IN = '1') or - (load_current_state = LOAD_DATA and load_eod_q = '1' and (loaded_queue_bytes /= actual_q_size) and (loaded_queue_bytes + x"4" /= actual_q_size)) - else '0'; - - --- nasty workaround for the case when the packet is divided on LOAD_SUB state -process(CLK) -begin - if rising_edge(CLK) then - previous_tc_rd <= TC_RD_EN_IN; - end if; -end process; -block_shf_after_divide <= '1' when previous_tc_rd = '0' and TC_RD_EN_IN = '1' and header_ctr = 15 else '0'; -block_term_after_divide <= '1' when previous_tc_rd = '0' and TC_RD_EN_IN = '1' and header_ctr = 31 else '0'; - -QUEUE_FIFO_RD_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = GET_Q_SIZE and header_ctr /= 0) then - qsf_rd_en_q <= '1'; - elsif (load_current_state = IDLE and qsf_empty = '0') then - qsf_rd_en_q <= '1'; - else - qsf_rd_en_q <= '0'; - end if; - end if; -end process QUEUE_FIFO_RD_PROC; - -qsf_rd_en <= '1' when load_current_state = LOAD_Q_HEADERS and TC_RD_EN_IN = '1' and header_ctr /= 0 else qsf_rd_en_q; - -ACTUAL_Q_SIZE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = START_TRANSFER) then - actual_q_size(7 downto 0) <= qsf_q; - elsif (load_current_state = GET_Q_SIZE and header_ctr = 0) then - actual_q_size(15 downto 8) <= qsf_q; - end if; - end if; -end process ACTUAL_Q_SIZE_PROC; - -TC_EVENT_SIZE_OUT <= actual_q_size; -- queue size without termination - -TERMINATION_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = IDLE) then - termination(255 downto 8) <= (others => '0'); - elsif (TC_RD_EN_IN = '1' and term_ctr /= 33 and term_ctr /= 0) then - termination(255 downto 8) <= termination(247 downto 0); - else - termination(255 downto 8) <= termination(255 downto 8); - end if; - end if; -end process TERMINATION_PROC; - -term_bits_gen : for I in 0 to 7 generate - process(CLK) - begin - if rising_edge(CLK) then - if (TC_RD_EN_IN = '1' and term_ctr /= 33 and term_ctr /= 0) then - case (load_current_state) is - when LOAD_Q_HEADERS => termination(I) <= qsf_q(I); - when LOAD_SUB => termination(I) <= shf_q(I); - when LOAD_DATA => termination(I) <= df_q(I); - when others => termination(I) <= '0'; - end case; - else - termination(I) <= termination(I); - end if; - end if; - end process; -end generate term_bits_gen; - -TERM_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = IDLE) then - term_ctr <= 0; - elsif (TC_RD_EN_IN = '1' and term_ctr /= 33) then - term_ctr <= term_ctr + 1; - end if; - end if; -end process TERM_CTR_PROC; - -TC_DATA_PROC : process(CLK) -begin - if rising_edge(CLK) then - case (load_current_state) is - when LOAD_Q_HEADERS => tc_data <= qsf_q; - when LOAD_SUB => tc_data <= shf_q; - when LOAD_DATA => tc_data <= df_q; - when LOAD_PADDING => tc_data <= x"aa"; - when LOAD_TERM => tc_data <= termination((header_ctr + 1) * 8 - 1 downto header_ctr * 8); - when others => tc_data <= x"cc"; - end case; - end if; -end process TC_DATA_PROC; - -TC_DATA_OUT(7 downto 0) <= tc_data; -TC_DATA_8_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = LOAD_TERM and header_ctr = 0) then - TC_DATA_OUT(8) <= '1'; - else - TC_DATA_OUT(8) <= '0'; - end if; - end if; -end process TC_DATA_8_PROC; - ---***** --- outputs - - - -DEBUG_OUT <= (others => '0'); - -end architecture RTL; diff --git a/gbe2_ecp3/trb_net16_gbe_frame_constr.vhd b/gbe2_ecp3/trb_net16_gbe_frame_constr.vhd deleted file mode 100755 index 9120ba0..0000000 --- a/gbe2_ecp3/trb_net16_gbe_frame_constr.vhd +++ /dev/null @@ -1,630 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -entity trb_net16_gbe_frame_constr is -port( - -- ports for user logic - RESET : in std_logic; - CLK : in std_logic; - LINK_OK_IN : in std_logic; -- gk 03.08.10 - -- - WR_EN_IN : in std_logic; - DATA_IN : in std_logic_vector(7 downto 0); - START_OF_DATA_IN : in std_logic; - END_OF_DATA_IN : in std_logic; - IP_F_SIZE_IN : in std_logic_vector(15 downto 0); - UDP_P_SIZE_IN : in std_logic_vector(15 downto 0); -- needed for fragmentation - HEADERS_READY_OUT : out std_logic; - READY_OUT : out std_logic; - DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - FRAME_TYPE_IN : in std_logic_vector(15 downto 0); - IHL_VERSION_IN : in std_logic_vector(7 downto 0); - TOS_IN : in std_logic_vector(7 downto 0); - IDENTIFICATION_IN : in std_logic_vector(15 downto 0); - FLAGS_OFFSET_IN : in std_logic_vector(15 downto 0); - TTL_IN : in std_logic_vector(7 downto 0); - PROTOCOL_IN : in std_logic_vector(7 downto 0); - FRAME_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 09.12.10 - -- ports for packetTransmitter - RD_CLK : in std_logic; -- 125MHz clock!!! - FT_DATA_OUT : out std_logic_vector(8 downto 0); - FT_TX_EMPTY_OUT : out std_logic; - FT_TX_RD_EN_IN : in std_logic; - FT_START_OF_PACKET_OUT : out std_logic; - FT_TX_DONE_IN : in std_logic; - FT_TX_DISCFRM_IN : in std_logic; - - MONITOR_TX_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_TX_FRAMES_OUT : out std_logic_vector(31 downto 0) -); -end trb_net16_gbe_frame_constr; - -architecture trb_net16_gbe_frame_constr of trb_net16_gbe_frame_constr is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_frame_constr : architecture is "GBE_LINK_group"; - -component fifo_4096x9 is -port( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -attribute syn_encoding : string; - -type constructStates is (IDLE, DEST_MAC_ADDR, SRC_MAC_ADDR, FRAME_TYPE_S, VERSION, - TOS_S, IP_LENGTH, IDENT, FLAGS, TTL_S, PROTO, HEADER_CS, - SRC_IP_ADDR, DEST_IP_ADDR, SRC_PORT, DEST_PORT, UDP_LENGTH, - UDP_CS, SAVE_DATA, CLEANUP, DELAY); -signal constructCurrentState, constructNextState : constructStates; -signal bsm_constr : std_logic_vector(7 downto 0); -attribute syn_encoding of constructCurrentState: signal is "onehot"; - -type transmitStates is (T_IDLE, T_LOAD, T_TRANSMIT, T_PAUSE, T_CLEANUP); -signal transmitCurrentState, transmitNextState : transmitStates; -attribute syn_encoding of transmitCurrentState : signal is "onehot"; - -signal bsm_trans : std_logic_vector(3 downto 0); - -signal headers_int_counter : integer range 0 to 6; -signal fpf_data : std_logic_vector(7 downto 0); -signal fpf_empty : std_logic; -signal fpf_full : std_logic; -signal fpf_wr_en : std_logic; -signal fpf_rd_en : std_logic; -signal fpf_q : std_logic_vector(8 downto 0); -signal ip_size : std_logic_vector(15 downto 0); -signal ip_checksum : std_logic_vector(31 downto 0); -signal udp_size : std_logic_vector(15 downto 0); -signal udp_checksum : std_logic_vector(15 downto 0); -signal ft_sop : std_logic; -signal put_udp_headers : std_logic; -signal ready_frames_ctr : std_logic_vector(15 downto 0); -signal sent_frames_ctr : std_logic_vector(15 downto 0); -signal debug : std_logic_vector(63 downto 0); -signal ready : std_logic; -signal headers_ready : std_logic; - -signal cur_max : integer range 0 to 10; - -signal ready_frames_ctr_q : std_logic_vector(15 downto 0); -signal ip_cs_temp_right : std_logic_vector(15 downto 0); -- gk 29.03.10 - -signal fpf_reset : std_logic; -- gk 01.01.01 -signal link_ok_125, link_ok_q : std_logic; - --- gk 09.12.10 -signal delay_ctr : std_logic_vector(31 downto 0); -signal frame_delay_reg : std_logic_vector(31 downto 0); -signal fpf_data_q : std_logic_vector(7 downto 0); -signal fpf_wr_en_q, fpf_eod : std_logic; - -signal mon_sent_frames, mon_sent_bytes : std_logic_vector(31 downto 0); - -begin - --- Fakes -udp_checksum <= x"0000"; -- no checksum test needed ---debug <= (others => '0'); - -process(CLK) -begin - if rising_edge(CLK) then - if constructCurrentState = IDLE then - ready <= '1'; - else - ready <= '0'; - end if; - - if (constructCurrentState = SAVE_DATA) then - headers_ready <= '1'; - else - headers_ready <= '0'; - end if; - end if; -end process; ---ready <= '1' when (constructCurrentState = IDLE) --- else '0'; ---headers_ready <= '1' when (constructCurrentState = SAVE_DATA) --- else '0'; - -sizeProc: process(CLK) -- put_udp_headers, IP_F_SIZE_IN, UDP_P_SIZE_IN, DEST_UDP_PORT_IN) -begin - if rising_edge(CLK) then - if( put_udp_headers = '1' ) and (DEST_UDP_PORT_IN /= x"0000") then - ip_size <= IP_F_SIZE_IN + x"14" + x"8"; - udp_size <= UDP_P_SIZE_IN + x"8"; - else - ip_size <= IP_F_SIZE_IN + x"14"; - udp_size <= UDP_P_SIZE_IN; - end if; - end if; -end process sizeProc; - -ipCsProc : process(CLK) -begin - if rising_edge(CLK) then - if (constructCurrentState = IDLE) then - ip_checksum <= x"00000000"; - else - case constructCurrentState is - when DEST_MAC_ADDR => - case headers_int_counter is - when 0 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + SRC_IP_ADDRESS_IN(7 downto 0); - when 1 => - ip_checksum <= ip_checksum + SRC_IP_ADDRESS_IN(15 downto 8); - when 2 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + SRC_IP_ADDRESS_IN(23 downto 16); - when 3 => - ip_checksum <= ip_checksum + SRC_IP_ADDRESS_IN(31 downto 24); - when 4 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + DEST_IP_ADDRESS_IN(7 downto 0); - when 5 => - ip_checksum <= ip_checksum + DEST_IP_ADDRESS_IN(15 downto 8); - when others => null; - end case; - when SRC_MAC_ADDR => - case headers_int_counter is - when 0 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + DEST_IP_ADDRESS_IN(23 downto 16); - when 1 => - ip_checksum <= ip_checksum + DEST_IP_ADDRESS_IN(31 downto 24); - when 2 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + IHL_VERSION_IN; - when 3 => - ip_checksum <= ip_checksum + TOS_IN; - when 4 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + ip_size(15 downto 8); - when 5 => - ip_checksum <= ip_checksum + ip_size(7 downto 0); - when others => null; - end case; - when VERSION => - if headers_int_counter = 0 then - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + IDENTIFICATION_IN(7 downto 0); - end if; - when TOS_S => - if headers_int_counter = 0 then - ip_checksum <= ip_checksum + IDENTIFICATION_IN(15 downto 8); - end if; - when IP_LENGTH => - if headers_int_counter = 0 then - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + FLAGS_OFFSET_IN(15 downto 8); - elsif headers_int_counter = 1 then - ip_checksum <= ip_checksum + FLAGS_OFFSET_IN(7 downto 0); - end if; - when IDENT => - if headers_int_counter = 0 then - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + TTL_IN; - elsif headers_int_counter = 1 then - ip_checksum <= ip_checksum + PROTOCOL_IN; - end if; - -- gk 29.03.10 corrected the bug with bad checksums when sum larger than 16b - when FLAGS => - if headers_int_counter = 0 then - ip_cs_temp_right <= ip_checksum(31 downto 16); - elsif headers_int_counter = 1 then - ip_checksum(31 downto 16) <= (others => '0'); - end if; - when TTL_S => - if headers_int_counter = 0 then - ip_checksum <= ip_checksum + ip_cs_temp_right; - end if; - when PROTO => - if headers_int_counter = 0 then - ip_checksum(15 downto 0) <= ip_checksum(15 downto 0) + ip_checksum(31 downto 16); - end if; - when others => null; - end case; - end if; - end if; -end process ipCsProc; - - -constructMachineProc: process(RESET, CLK ) -begin - if RESET = '1' then - constructCurrentState <= IDLE; - elsif( rising_edge(CLK) ) then - constructCurrentState <= constructNextState; - end if; -end process constructMachineProc; - ---find next state of construct machine -constructMachine: process( constructCurrentState, delay_ctr, FRAME_DELAY_IN, START_OF_DATA_IN, END_OF_DATA_IN, headers_int_counter, put_udp_headers, CUR_MAX, FRAME_TYPE_IN, DEST_UDP_PORT_IN) -begin - constructNextState <= constructCurrentState; - if( headers_int_counter = cur_max ) then --can be checked everytime - if not in use, counter and cur_max are 0 - case constructCurrentState is - when IDLE => - if( START_OF_DATA_IN = '1' ) then - constructNextState <= DEST_MAC_ADDR; - end if; - when DEST_MAC_ADDR => - constructNextState <= SRC_MAC_ADDR; - when SRC_MAC_ADDR => - constructNextState <= FRAME_TYPE_S; - when FRAME_TYPE_S => - --if (DEST_IP_ADDRESS_IN /= x"0000_0000") then -- in case of ip frame continue with ip/udp headers - if (FRAME_TYPE_IN = x"0008") then - constructNextState <= VERSION; - else -- otherwise transmit data as pure ethernet frame - constructNextState <= SAVE_DATA; - end if; - when VERSION => - constructNextState <= TOS_S; - when TOS_S => - constructNextState <= IP_LENGTH; - when IP_LENGTH => - constructNextState <= IDENT; - when IDENT => - constructNextState <= FLAGS; - when FLAGS => - constructNextState <= TTL_S; - when TTL_S => - constructNextState <= PROTO; - when PROTO => - constructNextState <= HEADER_CS; - when HEADER_CS => - constructNextState <= SRC_IP_ADDR; - when SRC_IP_ADDR => - constructNextState <= DEST_IP_ADDR; - when DEST_IP_ADDR => - if (put_udp_headers = '1') and (DEST_UDP_PORT_IN /= x"0000") then - constructNextState <= SRC_PORT; - else - constructNextState <= SAVE_DATA; - end if; - when SRC_PORT => - constructNextState <= DEST_PORT; - when DEST_PORT => - constructNextState <= UDP_LENGTH; - when UDP_LENGTH => - constructNextState <= UDP_CS; - when UDP_CS => - constructNextState <= SAVE_DATA; - when SAVE_DATA => - if (END_OF_DATA_IN = '1') then - constructNextState <= CLEANUP; - end if; - when CLEANUP => - --constructNextState <= IDLE; - constructNextState <= DELAY; -- gk 10.12.10 IDLE; - -- gk 09.12.10 - when DELAY => - if (delay_ctr = FRAME_DELAY_IN) then - constructNextState <= IDLE; - else - constructNextState <= DELAY; - end if; - - when others => - constructNextState <= IDLE; - end case; - end if; -end process constructMachine; - --- gk 09.12.10 -delayCtrProc : process(CLK) -begin - if rising_edge(CLK) then - if (constructCurrentState = IDLE) or (constructCurrentState = CLEANUP) then - delay_ctr <= (others => '0'); - elsif (constructCurrentState = DELAY) then - delay_ctr <= delay_ctr + x"1"; - end if; - - frame_delay_reg <= FRAME_DELAY_IN; - end if; -end process delayCtrProc; - - -bsmConstrProc : process(constructCurrentState) -begin ---find maximum time in each state & set state bits - case constructCurrentState is - when IDLE => cur_max <= 0; bsm_constr <= x"01"; - when DEST_MAC_ADDR => cur_max <= 5; bsm_constr <= x"02"; - when SRC_MAC_ADDR => cur_max <= 5; bsm_constr <= x"03"; - when FRAME_TYPE_S => cur_max <= 1; bsm_constr <= x"04"; - when VERSION => cur_max <= 0; bsm_constr <= x"05"; - when TOS_S => cur_max <= 0; bsm_constr <= x"06"; - when IP_LENGTH => cur_max <= 1; bsm_constr <= x"07"; - when IDENT => cur_max <= 1; bsm_constr <= x"08"; - when FLAGS => cur_max <= 1; bsm_constr <= x"09"; - when TTL_S => cur_max <= 0; bsm_constr <= x"0a"; - when PROTO => cur_max <= 0; bsm_constr <= x"0b"; - when HEADER_CS => cur_max <= 1; bsm_constr <= x"0c"; - when SRC_IP_ADDR => cur_max <= 3; bsm_constr <= x"0d"; - when DEST_IP_ADDR => cur_max <= 3; bsm_constr <= x"0e"; - when SRC_PORT => cur_max <= 1; bsm_constr <= x"0f"; - when DEST_PORT => cur_max <= 1; bsm_constr <= x"10"; - when UDP_LENGTH => cur_max <= 1; bsm_constr <= x"11"; - when UDP_CS => cur_max <= 1; bsm_constr <= x"12"; - when SAVE_DATA => cur_max <= 0; bsm_constr <= x"13"; - when CLEANUP => cur_max <= 0; bsm_constr <= x"14"; - when DELAY => cur_max <= 0; bsm_constr <= x"15"; - when others => cur_max <= 0; bsm_constr <= x"1f"; - end case; -end process; - - -headersIntProc : process(CLK) -begin - if rising_edge(CLK) then - if (constructCurrentState = IDLE) then - headers_int_counter <= 0; - else - if (headers_int_counter = cur_max) then - headers_int_counter <= 0; - else - headers_int_counter <= headers_int_counter + 1; - end if; - end if; - end if; -end process headersIntProc; - - - -putUdpHeadersProc : process(CLK) -begin - if rising_edge(CLK) then - if (FLAGS_OFFSET_IN(12 downto 0) = "0000000000000") then - put_udp_headers <= '1'; - else - put_udp_headers <= '0'; - end if; - end if; -end process putUdpHeadersProc; - -fpfWrEnProc : process(constructCurrentState, WR_EN_IN, LINK_OK_IN) -begin - if (LINK_OK_IN = '0') then -- gk 01.10.10 - fpf_wr_en <= '0'; - elsif (constructCurrentState /= IDLE) and (constructCurrentState /= CLEANUP) and (constructCurrentState /= SAVE_DATA) and (constructCurrentState /= DELAY) then - fpf_wr_en <= '1'; - elsif (constructCurrentState = SAVE_DATA) and (WR_EN_IN = '1') then - fpf_wr_en <= '1'; - else - fpf_wr_en <= '0'; - end if; -end process fpfWrEnProc; - -fpfDataProc : process(constructCurrentState, DEST_MAC_ADDRESS_IN, SRC_MAC_ADDRESS_IN, FRAME_TYPE_IN, IHL_VERSION_IN, - TOS_IN, ip_size, IDENTIFICATION_IN, FLAGS_OFFSET_IN, TTL_IN, PROTOCOL_IN, - ip_checksum, SRC_IP_ADDRESS_IN, DEST_IP_ADDRESS_IN, - SRC_UDP_PORT_IN, DEST_UDP_PORT_IN, udp_size, udp_checksum, headers_int_counter, DATA_IN) -begin - case constructCurrentState is - when IDLE => fpf_data <= DEST_MAC_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when DEST_MAC_ADDR => fpf_data <= DEST_MAC_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when SRC_MAC_ADDR => fpf_data <= SRC_MAC_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when FRAME_TYPE_S => fpf_data <= FRAME_TYPE_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when VERSION => fpf_data <= IHL_VERSION_IN; - when TOS_S => fpf_data <= TOS_IN; - when IP_LENGTH => fpf_data <= ip_size(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when IDENT => fpf_data <= IDENTIFICATION_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when FLAGS => fpf_data <= FLAGS_OFFSET_IN(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when TTL_S => fpf_data <= TTL_IN; - when PROTO => fpf_data <= PROTOCOL_IN; - when HEADER_CS => fpf_data <= x"ff" - ip_checksum(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when SRC_IP_ADDR => fpf_data <= SRC_IP_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when DEST_IP_ADDR => fpf_data <= DEST_IP_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when SRC_PORT => fpf_data <= SRC_UDP_PORT_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when DEST_PORT => fpf_data <= DEST_UDP_PORT_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when UDP_LENGTH => fpf_data <= udp_size(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when UDP_CS => fpf_data <= udp_checksum(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when SAVE_DATA => fpf_data <= DATA_IN; - when CLEANUP => fpf_data <= x"ab"; - when DELAY => fpf_data <= x"ac"; - when others => fpf_data <= x"00"; - end case; -end process fpfDataProc; - -syncProc : process(CLK) -begin - if rising_edge(CLK) then - fpf_data_q <= fpf_data; - fpf_wr_en_q <= fpf_wr_en; - fpf_eod <= END_OF_DATA_IN; - end if; -end process syncProc; - - - -readyFramesCtrProc: process( CLK ) -begin - if rising_edge(CLK) then - if (LINK_OK_IN = '0') then -- gk 01.10.10 - ready_frames_ctr <= (others => '0'); - elsif (constructCurrentState = CLEANUP) then - ready_frames_ctr <= ready_frames_ctr + 1; - else - ready_frames_ctr <= ready_frames_ctr; - end if; - end if; -end process readyFramesCtrProc; - -fpfResetProc : process(CLK) -begin - if rising_edge(CLK) then - if (LINK_OK_IN = '0') then - fpf_reset <= '1'; - else - fpf_reset <= '0'; - end if; - end if; -end process fpfResetProc; ---fpf_reset <= '1' when (RESET = '1') or (LINK_OK_IN = '0') else '0'; -- gk 01.10.10 - -FINAL_PACKET_FIFO: fifo_4096x9 -port map( - Data(7 downto 0) => fpf_data_q, - Data(8) => fpf_eod, --END_OF_DATA_IN, - WrClock => CLK, - RdClock => RD_CLK, - WrEn => fpf_wr_en_q, - RdEn => fpf_rd_en, --FT_TX_RD_EN_IN, - Reset => fpf_reset, - RPReset => fpf_reset, - Q => fpf_q, - Empty => fpf_empty, - Full => fpf_full -); - ---fpf_rd_en <= FT_TX_RD_EN_IN; -fpf_rd_en <= '1' when ((link_ok_125 = '1') and (FT_TX_RD_EN_IN = '1')) - or (link_ok_125 = '0') -- clear the fifo if link is down - else '0'; - -transferToRdClock : signal_sync - generic map( - DEPTH => 2, - WIDTH => 16 - ) - port map( - RESET => RESET, - D_IN => ready_frames_ctr, - CLK0 => RD_CLK, --CLK, - CLK1 => RD_CLK, - D_OUT => ready_frames_ctr_q - ); - -process(RD_CLK) -begin - if rising_edge(RD_CLK) then - link_ok_q <= LINK_OK_IN; - link_ok_125 <= link_ok_q; - end if; -end process; - -transmitMachineProc: process( RD_CLK ) -begin - if RESET = '1' then - transmitCurrentState <= T_IDLE; - elsif( rising_edge(RD_CLK) ) then - if (link_ok_125 = '0') then -- gk 01.10.10 - transmitCurrentState <= T_IDLE; - else - transmitCurrentState <= transmitNextState; - end if; - end if; -end process transmitMachineProc; - -transmitMachine: process( transmitCurrentState, fpf_q, FT_TX_DONE_IN, sent_frames_ctr, link_ok_125, ready_frames_ctr_q, FT_TX_DISCFRM_IN ) -begin - case transmitCurrentState is - when T_IDLE => - bsm_trans <= x"0"; - if( (sent_frames_ctr /= ready_frames_ctr_q) ) then - transmitNextState <= T_LOAD; - else - transmitNextState <= T_IDLE; - end if; - when T_LOAD => - bsm_trans <= x"1"; - if( fpf_q(8) = '1' ) then - transmitNextState <= T_TRANSMIT; - else - transmitNextState <= T_LOAD; - end if; - when T_TRANSMIT => - bsm_trans <= x"2"; - -- gk 03.08.10 - if ((link_ok_125 = '1') and ((FT_TX_DONE_IN = '1') or (FT_TX_DISCFRM_IN = '1')))then - transmitNextState <= T_CLEANUP; - elsif (link_ok_125 = '0') then - transmitNextState <= T_PAUSE; - else - transmitNextState <= T_TRANSMIT; - end if; - when T_PAUSE => - transmitNextState <= T_CLEANUP; - when T_CLEANUP => - bsm_trans <= x"3"; - transmitNextState <= T_IDLE; - when others => - bsm_trans <= x"f"; - transmitNextState <= T_IDLE; - end case; -end process transmitMachine; - - - -sopProc: process( RD_CLK ) -begin - if rising_edge(RD_CLK) then - if (link_ok_125 = '0') then -- gk 01.10.10 - ft_sop <= '0'; - elsif ((transmitCurrentState = T_IDLE) and (sent_frames_ctr /= ready_frames_ctr_q)) then - ft_sop <= '1'; - else - ft_sop <= '0'; - end if; - end if; -end process sopProc; - -sentFramesCtrProc: process( RD_CLK ) -begin - if rising_edge(RD_CLK) then - if (LINK_OK_IN = '0') then -- gk 01.10.10 - sent_frames_ctr <= (others => '0'); - mon_sent_frames <= (others => '0'); - elsif( FT_TX_DONE_IN = '1' ) or (FT_TX_DISCFRM_IN = '1') then - sent_frames_ctr <= sent_frames_ctr + 1; - mon_sent_frames <= mon_sent_frames + x"1"; - else - sent_frames_ctr <= sent_frames_ctr; - mon_sent_frames <= mon_sent_frames; - end if; - end if; -end process sentFramesCtrProc; - - - -FT_DATA_OUT <= fpf_q; -FT_TX_EMPTY_OUT <= fpf_empty; -FT_START_OF_PACKET_OUT <= ft_sop; -READY_OUT <= ready; -HEADERS_READY_OUT <= headers_ready; - - -MONITOR_TX_BYTES_OUT <= mon_sent_bytes; -MONITOR_TX_FRAMES_OUT <= mon_sent_frames; - -process(RD_CLK) -begin - if rising_edge(RD_CLK) then - if (LINK_OK_IN = '0') then - mon_sent_bytes <= (others => '0'); - elsif (fpf_rd_en = '1') then - mon_sent_bytes <= mon_sent_bytes + x"1"; - else - mon_sent_bytes <= mon_sent_bytes; - end if; - end if; -end process; - -end trb_net16_gbe_frame_constr; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd b/gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd deleted file mode 100644 index 7a0c2d4..0000000 --- a/gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd +++ /dev/null @@ -1,756 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - ---******** --- here all frame checking has to be done, if the frame fits into protocol standards --- if so FR_FRAME_VALID_OUT is asserted after having received all bytes of a frame --- otherwise, after receiving all bytes, FR_FRAME_VALID_OUT keeps low and the fifo is cleared --- also a part of addresses assignemt has to be done here - -entity trb_net16_gbe_frame_receiver is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - LINK_OK_IN : in std_logic; - ALLOW_RX_IN : in std_logic; - RX_MAC_CLK : in std_logic; -- receiver serdes clock - --- input signals from TS_MAC - MAC_RX_EOF_IN : in std_logic; - MAC_RX_ER_IN : in std_logic; - MAC_RXD_IN : in std_logic_vector(7 downto 0); - MAC_RX_EN_IN : in std_logic; - MAC_RX_FIFO_ERR_IN : in std_logic; - MAC_RX_FIFO_FULL_OUT : out std_logic; - MAC_RX_STAT_EN_IN : in std_logic; - MAC_RX_STAT_VEC_IN : in std_logic_vector(31 downto 0); - --- output signal to control logic - FR_Q_OUT : out std_logic_vector(8 downto 0); - FR_RD_EN_IN : in std_logic; - FR_FRAME_VALID_OUT : out std_logic; - FR_GET_FRAME_IN : in std_logic; - FR_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - FR_FRAME_PROTO_OUT : out std_logic_vector(15 downto 0); - FR_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - FR_ALLOWED_TYPES_IN : in std_logic_vector(31 downto 0); - FR_ALLOWED_IP_IN : in std_logic_vector(31 downto 0); - FR_ALLOWED_UDP_IN : in std_logic_vector(31 downto 0); - FR_VLAN_ID_IN : in std_logic_vector(31 downto 0); - - FR_SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - FR_DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - FR_SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - FR_DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - FR_SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - FR_DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - - MONITOR_RX_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_RX_FRAMES_OUT : out std_logic_vector(31 downto 0); - MONITOR_DROPPED_OUT : out std_logic_vector(31 downto 0) -); -end trb_net16_gbe_frame_receiver; - - -architecture trb_net16_gbe_frame_receiver of trb_net16_gbe_frame_receiver is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_frame_receiver : architecture is "GBE_LINK_group"; - -attribute syn_encoding : string; -type filter_states is (IDLE, REMOVE_DEST, REMOVE_SRC, REMOVE_TYPE, SAVE_FRAME, DROP_FRAME, REMOVE_VID, REMOVE_VTYPE, REMOVE_IP, REMOVE_UDP, DECIDE, CLEANUP); -signal filter_current_state, filter_next_state : filter_states; -attribute syn_encoding of filter_current_state : signal is "onehot"; - -signal fifo_wr_en : std_logic; -signal rx_bytes_ctr : std_logic_vector(15 downto 0); -signal frame_valid_q : std_logic; -signal delayed_frame_valid : std_logic; -signal delayed_frame_valid_q : std_logic; - -signal rec_fifo_empty : std_logic; -signal rec_fifo_full : std_logic; -signal sizes_fifo_full : std_logic; -signal sizes_fifo_empty : std_logic; - -signal remove_ctr : std_logic_vector(7 downto 0); -signal new_frame : std_logic; -signal new_frame_lock : std_logic := '0'; -signal saved_frame_type : std_logic_vector(15 downto 0); -signal saved_vid : std_logic_vector(15 downto 0) := (others => '0'); -signal saved_src_mac : std_logic_vector(47 downto 0); -signal saved_dest_mac : std_logic_vector(47 downto 0); -signal frame_type_valid : std_logic; -signal saved_proto : std_logic_vector(7 downto 0); -signal saved_src_ip : std_logic_vector(31 downto 0); -signal saved_dest_ip : std_logic_vector(31 downto 0); -signal saved_src_udp : std_logic_vector(15 downto 0); -signal saved_dest_udp : std_logic_vector(15 downto 0); - -signal dump : std_logic_vector(7 downto 0); -signal dump2 : std_logic_vector(7 downto 0); - -signal error_frames_ctr : std_logic_vector(15 downto 0); - --- debug signals -signal dbg_rec_frames : std_logic_vector(31 downto 0); -signal dbg_drp_frames : std_logic_vector(31 downto 0); -signal state : std_logic_vector(3 downto 0); - -signal rx_data, fr_q : std_logic_vector(8 downto 0); - -signal fr_src_ip, fr_dest_ip : std_logic_vector(31 downto 0); -signal fr_dest_udp, fr_src_udp, fr_frame_size, fr_frame_proto : std_logic_vector(15 downto 0); -signal fr_dest_mac, fr_src_mac : std_logic_vector(47 downto 0); -signal fr_ip_proto : std_logic_vector(7 downto 0); -signal mon_rec_bytes : std_logic_vector(31 downto 0); - -attribute syn_preserve : boolean; -attribute syn_keep : boolean; -attribute syn_keep of rec_fifo_empty, rec_fifo_full, state, sizes_fifo_empty, sizes_fifo_full : signal is true; -attribute syn_preserve of rec_fifo_empty, rec_fifo_full, state, sizes_fifo_empty, sizes_fifo_full : signal is true; - -begin - --- new_frame is asserted when first byte of the frame arrives -NEW_FRAME_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (LINK_OK_IN = '0' or MAC_RX_EOF_IN = '1') then - new_frame <= '0'; - new_frame_lock <= '0'; - elsif (new_frame_lock = '0') and (MAC_RX_EN_IN = '1') then - new_frame <= '1'; - new_frame_lock <= '1'; - else - new_frame <= '0'; - new_frame_lock <= new_frame_lock; - end if; - end if; -end process NEW_FRAME_PROC; - - -FILTER_MACHINE_PROC : process(RX_MAC_CLK, RESET) -begin - if RESET = '1' then - filter_current_state <= IDLE; - elsif rising_edge(RX_MAC_CLK) then --- if (RESET = '1') then --- filter_current_state <= IDLE; --- else - filter_current_state <= filter_next_state; --- end if; - end if; -end process FILTER_MACHINE_PROC; - -FILTER_MACHINE : process(filter_current_state, saved_frame_type, LINK_OK_IN, saved_proto, g_MY_MAC, saved_dest_mac, remove_ctr, new_frame, MAC_RX_EOF_IN, frame_type_valid, ALLOW_RX_IN) -begin - - case filter_current_state is - - when IDLE => - state <= x"1"; - if (new_frame = '1') and (ALLOW_RX_IN = '1') and (LINK_OK_IN = '1') then - filter_next_state <= REMOVE_DEST; - else - filter_next_state <= IDLE; - end if; - - -- frames arrive without preamble! - when REMOVE_DEST => - state <= x"3"; - if (remove_ctr = x"03") then -- counter starts with a delay that's why only 3 - -- destination MAC address filtering here - if (saved_dest_mac = g_MY_MAC) or (saved_dest_mac = x"ffffffffffff") then -- must accept broadcasts for ARP - filter_next_state <= REMOVE_SRC; - else - filter_next_state <= DECIDE; - end if; - else - filter_next_state <= REMOVE_DEST; - end if; - - when REMOVE_SRC => - state <= x"4"; - if (remove_ctr = x"09") then - filter_next_state <= REMOVE_TYPE; - else - filter_next_state <= REMOVE_SRC; - end if; - - when REMOVE_TYPE => - state <= x"5"; - if (remove_ctr = x"0b") then - if (saved_frame_type = x"8100") then -- VLAN tagged frame - filter_next_state <= REMOVE_VID; - else -- no VLAN tag - if (saved_frame_type = x"0800") then -- in case of IP continue removing headers - filter_next_state <= REMOVE_IP; - else - filter_next_state <= DECIDE; - end if; - end if; - else - filter_next_state <= REMOVE_TYPE; - end if; - - when REMOVE_VID => - state <= x"a"; - if (remove_ctr = x"0d") then - filter_next_state <= REMOVE_VTYPE; - else - filter_next_state <= REMOVE_VID; - end if; - - when REMOVE_VTYPE => - state <= x"b"; - if (remove_ctr = x"0f") then - if (saved_frame_type = x"0800") then -- in case of IP continue removing headers - filter_next_state <= REMOVE_IP; - else - filter_next_state <= DECIDE; - end if; - else - filter_next_state <= REMOVE_VTYPE; - end if; - - when REMOVE_IP => - state <= x"c"; - if (remove_ctr = x"11") then - if (saved_proto = x"11") then -- forced to recognize udp only, TODO check all protocols - filter_next_state <= REMOVE_UDP; - else - filter_next_state <= DECIDE; -- changed from drop - end if; - else - filter_next_state <= REMOVE_IP; - end if; - - when REMOVE_UDP => - state <= x"d"; - if (remove_ctr = x"19") then - filter_next_state <= DECIDE; - else - filter_next_state <= REMOVE_UDP; - end if; - - when DECIDE => - state <= x"6"; - if (frame_type_valid = '1') then - filter_next_state <= SAVE_FRAME; - elsif (saved_frame_type = x"0806") then - filter_next_state <= SAVE_FRAME; - else - filter_next_state <= DROP_FRAME; - end if; - - when SAVE_FRAME => - state <= x"7"; - if (MAC_RX_EOF_IN = '1') then - filter_next_state <= CLEANUP; - else - filter_next_state <= SAVE_FRAME; - end if; - - when DROP_FRAME => - state <= x"8"; - if (MAC_RX_EOF_IN = '1') then - filter_next_state <= CLEANUP; - else - filter_next_state <= DROP_FRAME; - end if; - - when CLEANUP => - state <= x"9"; - filter_next_state <= IDLE; - - when others => null; - - end case; -end process; - --- counts the bytes to be removed from the ethernet headers fields -REMOVE_CTR_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = IDLE) or - (filter_current_state = REMOVE_VTYPE and remove_ctr = x"0f") or - (filter_current_state = REMOVE_TYPE and remove_ctr = x"0b") then - - remove_ctr <= (others => '1'); - elsif (MAC_RX_EN_IN = '1') and (filter_current_state /= IDLE) then --and (filter_current_state /= CLEANUP) then - remove_ctr <= remove_ctr + x"1"; - else - remove_ctr <= remove_ctr; - end if; - end if; -end process REMOVE_CTR_PROC; - -SAVED_PROTO_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = CLEANUP) then - saved_proto <= (others => '0'); - elsif (filter_current_state = REMOVE_IP) and (remove_ctr = x"07") then - saved_proto <= MAC_RXD_IN; - else - saved_proto <= saved_proto; - end if; - end if; -end process SAVED_PROTO_PROC; - -SAVED_SRC_IP_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = CLEANUP) then - saved_src_ip <= (others => '0'); - elsif (filter_current_state = REMOVE_IP) and (remove_ctr = x"0a") then - saved_src_ip(7 downto 0) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_IP) and (remove_ctr = x"0b") then - saved_src_ip(15 downto 8) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_IP) and (remove_ctr = x"0c") then - saved_src_ip(23 downto 16) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_IP) and (remove_ctr = x"0d") then - saved_src_ip(31 downto 24) <= MAC_RXD_IN; - else - saved_src_ip <= saved_src_ip; - end if; - end if; -end process SAVED_SRC_IP_PROC; - -SAVED_DEST_IP_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = CLEANUP) then - saved_dest_ip <= (others => '0'); - elsif (filter_current_state = REMOVE_IP) and (remove_ctr = x"0e") then - saved_dest_ip(7 downto 0) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_IP) and (remove_ctr = x"0f") then - saved_dest_ip(15 downto 8) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_IP) and (remove_ctr = x"10") then - saved_dest_ip(23 downto 16) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_IP) and (remove_ctr = x"11") then - saved_dest_ip(31 downto 24) <= MAC_RXD_IN; - else - saved_dest_ip <= saved_dest_ip; - end if; - end if; -end process SAVED_DEST_IP_PROC; - -SAVED_SRC_UDP_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = CLEANUP) then - saved_src_udp <= (others => '0'); - elsif (filter_current_state = REMOVE_UDP) and (remove_ctr = x"12") then - saved_src_udp(15 downto 8) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_UDP) and (remove_ctr = x"13") then - saved_src_udp(7 downto 0) <= MAC_RXD_IN; - else - saved_src_udp <= saved_src_udp; - end if; - end if; -end process SAVED_SRC_UDP_PROC; - -SAVED_DEST_UDP_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = CLEANUP) then - saved_dest_udp <= (others => '0'); - elsif (filter_current_state = REMOVE_UDP) and (remove_ctr = x"14") then - saved_dest_udp(15 downto 8) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_UDP) and (remove_ctr = x"15") then - saved_dest_udp(7 downto 0) <= MAC_RXD_IN; - else - saved_dest_udp <= saved_dest_udp; - end if; - end if; -end process SAVED_DEST_UDP_PROC; - --- saves the destination mac address of the incoming frame -SAVED_DEST_MAC_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = CLEANUP) then - saved_dest_mac <= (others => '0'); - elsif (filter_current_state = IDLE) and (MAC_RX_EN_IN = '1') and (new_frame = '0') then - saved_dest_mac(7 downto 0) <= MAC_RXD_IN; - elsif (filter_current_state = IDLE) and (new_frame = '1') and (ALLOW_RX_IN = '1') then - saved_dest_mac(15 downto 8) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_DEST) and (remove_ctr = x"FF") then - saved_dest_mac(23 downto 16) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_DEST) and (remove_ctr = x"00") then - saved_dest_mac(31 downto 24) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_DEST) and (remove_ctr = x"01") then - saved_dest_mac(39 downto 32) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_DEST) and (remove_ctr = x"02") then - saved_dest_mac(47 downto 40) <= MAC_RXD_IN; - else - saved_dest_mac <= saved_dest_mac; - end if; - end if; -end process SAVED_DEST_MAC_PROC; - --- saves the source mac address of the incoming frame -SAVED_SRC_MAC_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = CLEANUP) then - saved_src_mac <= (others => '0'); - elsif (filter_current_state = REMOVE_DEST) and (remove_ctr = x"03") then - saved_src_mac(7 downto 0) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_SRC) and (remove_ctr = x"04") then - saved_src_mac(15 downto 8) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_SRC) and (remove_ctr = x"05") then - saved_src_mac(23 downto 16) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_SRC) and (remove_ctr = x"06") then - saved_src_mac(31 downto 24) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_SRC) and (remove_ctr = x"07") then - saved_src_mac(39 downto 32) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_SRC) and (remove_ctr = x"08") then - saved_src_mac(47 downto 40) <= MAC_RXD_IN; - else - saved_src_mac <= saved_src_mac; - end if; - end if; -end process SAVED_SRC_MAC_PROC; - --- saves the frame type of the incoming frame for futher check -SAVED_FRAME_TYPE_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = CLEANUP) then - saved_frame_type <= (others => '0'); - elsif (filter_current_state = REMOVE_SRC) and (remove_ctr = x"09") then - saved_frame_type(15 downto 8) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_TYPE) and (remove_ctr = x"0a") then - saved_frame_type(7 downto 0) <= MAC_RXD_IN; - -- two more cases for VLAN tagged frame - elsif (filter_current_state = REMOVE_VID) and (remove_ctr = x"0d") then - saved_frame_type(15 downto 8) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_VTYPE) and (remove_ctr = x"0e") then - saved_frame_type(7 downto 0) <= MAC_RXD_IN; - else - saved_frame_type <= saved_frame_type; - end if; - end if; -end process SAVED_FRAME_TYPE_PROC; - --- saves VLAN id when tagged frame spotted -SAVED_VID_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (filter_current_state = CLEANUP) then - saved_vid <= (others => '0'); - elsif (filter_current_state = REMOVE_TYPE and remove_ctr = x"0b" and saved_frame_type = x"8100") then - saved_vid(15 downto 8) <= MAC_RXD_IN; - elsif (filter_current_state = REMOVE_VID and remove_ctr = x"0c") then - saved_vid(7 downto 0) <= MAC_RXD_IN; - else - saved_vid <= saved_vid; - end if; - end if; -end process SAVED_VID_PROC; - -type_validator : trb_net16_gbe_type_validator -port map( - CLK => RX_MAC_CLK, - RESET => RESET, - FRAME_TYPE_IN => saved_frame_type, - SAVED_VLAN_ID_IN => saved_vid, - ALLOWED_TYPES_IN => FR_ALLOWED_TYPES_IN, - VLAN_ID_IN => FR_VLAN_ID_IN, - - -- IP level - IP_PROTOCOLS_IN => saved_proto, - ALLOWED_IP_PROTOCOLS_IN => FR_ALLOWED_IP_IN, - - -- UDP level - UDP_PROTOCOL_IN => saved_dest_udp, - ALLOWED_UDP_PROTOCOLS_IN => FR_ALLOWED_UDP_IN, - - VALID_OUT => frame_type_valid -); - -receive_fifo : fifo_4096x9 -port map( --- Data(7 downto 0) => MAC_RXD_IN, --- Data(8) => MAC_RX_EOF_IN, - Data => rx_data, - WrClock => RX_MAC_CLK, - RdClock => CLK, - WrEn => fifo_wr_en, - RdEn => FR_RD_EN_IN, - Reset => RESET, - RPReset => RESET, - Q => fr_q, --FR_Q_OUT, - Empty => rec_fifo_empty, - Full => rec_fifo_full -); - --- BUG HERE, probably more lost bytes in the fifo in other conditions ---fifo_wr_en <= '1' when (MAC_RX_EN_IN = '1') and ((filter_current_state = SAVE_FRAME) or --- --( (filter_current_state = REMOVE_TYPE and remove_ctr = x"b" and saved_frame_type /= x"8100" and saved_frame_type /= x"0800") or --- ((filter_current_state = REMOVE_VTYPE and remove_ctr = x"f") or --- (filter_current_state = DECIDE and frame_type_valid = '1'))) --- else '0'; - -RX_FIFO_SYNC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - - rx_data(8) <= MAC_RX_EOF_IN; - rx_data(7 downto 0) <= MAC_RXD_IN; - - if (MAC_RX_EN_IN = '1') then - if (filter_current_state = SAVE_FRAME) then - fifo_wr_en <= '1'; - elsif (filter_current_state = REMOVE_VTYPE and remove_ctr = x"f") then - fifo_wr_en <= '1'; - elsif (filter_current_state = DECIDE and frame_type_valid = '1') then - fifo_wr_en <= '1'; - else - fifo_wr_en <= '0'; - end if; - else - fifo_wr_en <= '0'; - end if; - - MAC_RX_FIFO_FULL_OUT <= rec_fifo_full; - end if; -end process RX_FIFO_SYNC; - - - -sizes_fifo : fifo_512x32 -port map( - Data(15 downto 0) => rx_bytes_ctr, - Data(31 downto 16) => saved_frame_type, - WrClock => RX_MAC_CLK, - RdClock => CLK, - WrEn => frame_valid_q, - RdEn => FR_GET_FRAME_IN, - Reset => RESET, - RPReset => RESET, - Q(15 downto 0) => fr_frame_size, --FR_FRAME_SIZE_OUT, - Q(31 downto 16) => fr_frame_proto, --FR_FRAME_PROTO_OUT, - Empty => sizes_fifo_empty, - Full => sizes_fifo_full -); - -macs_fifo : fifo_512x72 -port map( - Data(47 downto 0) => saved_src_mac, - Data(63 downto 48) => saved_src_udp, - Data(71 downto 64) => (others => '0'), - WrClock => RX_MAC_CLK, - RdClock => CLK, - WrEn => frame_valid_q, - RdEn => FR_GET_FRAME_IN, - Reset => RESET, - RPReset => RESET, - Q(47 downto 0) => fr_src_mac, --FR_SRC_MAC_ADDRESS_OUT, - Q(63 downto 48) => fr_src_udp, --FR_SRC_UDP_PORT_OUT, - Q(71 downto 64) => dump2, - Empty => open, - Full => open -); - -macd_fifo : fifo_512x72 -port map( - Data(47 downto 0) => saved_dest_mac, - Data(63 downto 48) => saved_dest_udp, - Data(71 downto 64) => (others => '0'), - WrClock => RX_MAC_CLK, - RdClock => CLK, - WrEn => frame_valid_q, - RdEn => FR_GET_FRAME_IN, - Reset => RESET, - RPReset => RESET, - Q(47 downto 0) => fr_dest_mac, --FR_DEST_MAC_ADDRESS_OUT, - Q(63 downto 48) => fr_dest_udp, --FR_DEST_UDP_PORT_OUT, - Q(71 downto 64) => dump, - Empty => open, - Full => open -); - -ip_fifo : fifo_512x72 -port map( - Data(31 downto 0) => saved_src_ip, - Data(63 downto 32) => saved_dest_ip, - Data(71 downto 64) => saved_proto, - WrClock => RX_MAC_CLK, - RdClock => CLK, - WrEn => frame_valid_q, - RdEn => FR_GET_FRAME_IN, - Reset => RESET, - RPReset => RESET, - Q(31 downto 0) => fr_src_ip, --FR_SRC_IP_ADDRESS_OUT, - Q(63 downto 32) => fr_dest_ip, --FR_DEST_IP_ADDRESS_OUT, - Q(71 downto 64) => fr_ip_proto, --FR_IP_PROTOCOL_OUT, - Empty => open, - Full => open -); - -process(CLK) -begin - if rising_edge(CLK) then - FR_SRC_IP_ADDRESS_OUT <= fr_src_ip; - FR_DEST_IP_ADDRESS_OUT <= fr_dest_ip; - FR_IP_PROTOCOL_OUT <= fr_ip_proto; - FR_DEST_UDP_PORT_OUT <= fr_dest_udp; - FR_DEST_MAC_ADDRESS_OUT <= fr_dest_mac; - FR_SRC_MAC_ADDRESS_OUT <= fr_src_mac; - FR_SRC_UDP_PORT_OUT <= fr_src_udp; - FR_FRAME_PROTO_OUT <= fr_frame_proto; - FR_FRAME_SIZE_OUT <= fr_frame_size; - FR_Q_OUT <= fr_q; - end if; -end process; - -FRAME_VALID_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (MAC_RX_EOF_IN = '1' and ALLOW_RX_IN = '1' and frame_type_valid = '1') then - frame_valid_q <= '1'; - else - frame_valid_q <= '0'; - end if; - end if; -end process FRAME_VALID_PROC; - -RX_BYTES_CTR_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (RESET = '1') or (delayed_frame_valid_q = '1') then - rx_bytes_ctr <= x"0001"; - elsif (fifo_wr_en = '1') then - rx_bytes_ctr <= rx_bytes_ctr + x"1"; - end if; - end if; -end process; - -ERROR_FRAMES_CTR_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (RESET = '1') then - error_frames_ctr <= (others => '0'); - elsif (MAC_RX_ER_IN = '1') then - error_frames_ctr <= error_frames_ctr + x"1"; - end if; - end if; -end process ERROR_FRAMES_CTR_PROC; - - -SYNC_PROC : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - delayed_frame_valid <= MAC_RX_EOF_IN; - delayed_frame_valid_q <= delayed_frame_valid; - end if; -end process SYNC_PROC; - ---***************** --- synchronization between 125MHz receive clock and 100MHz system clock -FRAME_VALID_SYNC : pulse_sync -port map( - CLK_A_IN => RX_MAC_CLK, - RESET_A_IN => RESET, - PULSE_A_IN => frame_valid_q, - CLK_B_IN => CLK, - RESET_B_IN => RESET, - PULSE_B_OUT => FR_FRAME_VALID_OUT -); - - --- **** --- debug counters, to be removed later -RECEIVED_FRAMES_CTR : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (RESET = '1') then - dbg_rec_frames <= (others => '0'); - elsif (MAC_RX_EOF_IN = '1') then - dbg_rec_frames <= dbg_rec_frames + x"1"; - end if; - end if; -end process RECEIVED_FRAMES_CTR; - -DROPPED_FRAMES_CTR : process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (RESET = '1') then - dbg_drp_frames <= (others => '0'); - elsif (filter_current_state = DECIDE and frame_type_valid = '0') then - dbg_drp_frames <= dbg_drp_frames + x"1"; - end if; - end if; -end process DROPPED_FRAMES_CTR; - -sync1 : signal_sync -generic map ( - WIDTH => 32, - DEPTH => 2 -) -port map ( - RESET => RESET, - CLK0 => CLK, - CLK1 => CLK, - D_IN => dbg_drp_frames, - D_OUT => MONITOR_DROPPED_OUT -); - -sync3 : signal_sync -generic map ( - WIDTH => 32, - DEPTH => 2 -) -port map ( - RESET => RESET, - CLK0 => CLK, - CLK1 => CLK, - D_IN => dbg_rec_frames, - D_OUT => MONITOR_RX_FRAMES_OUT -); - -sync4 : signal_sync -generic map ( - WIDTH => 32, - DEPTH => 2 -) -port map ( - RESET => RESET, - CLK0 => CLK, - CLK1 => CLK, - D_IN => mon_rec_bytes, - D_OUT => MONITOR_RX_BYTES_OUT -); - -process(RX_MAC_CLK) -begin - if rising_edge(RX_MAC_CLK) then - if (RESET = '1') then - mon_rec_bytes <= (others => '0'); - elsif (fifo_wr_en = '1') then - mon_rec_bytes <= mon_rec_bytes + x"1"; - else - mon_rec_bytes <= mon_rec_bytes; - end if; - end if; -end process; - --- end of debug counters --- **** - -end trb_net16_gbe_frame_receiver; - - diff --git a/gbe2_ecp3/trb_net16_gbe_frame_trans.vhd b/gbe2_ecp3/trb_net16_gbe_frame_trans.vhd deleted file mode 100755 index 41db165..0000000 --- a/gbe2_ecp3/trb_net16_gbe_frame_trans.vhd +++ /dev/null @@ -1,226 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -entity trb_net16_gbe_frame_trans is -port ( - CLK : in std_logic; - RESET : in std_logic; - LINK_OK_IN : in std_logic; -- gk 03.08.10 - TX_MAC_CLK : in std_logic; - TX_EMPTY_IN : in std_logic; - START_OF_PACKET_IN : in std_logic; - DATA_ENDFLAG_IN : in std_logic; -- (8) is end flag, rest is only for TSMAC - - TX_FIFOAVAIL_OUT : out std_logic; - TX_FIFOEOF_OUT : out std_logic; - TX_FIFOEMPTY_OUT : out std_logic; - TX_DONE_IN : in std_logic; - TX_STAT_EN_IN : in std_logic; - TX_STATVEC_IN : in std_logic_vector(30 downto 0); - TX_DISCFRM_IN : in std_logic; - -- Debug - BSM_INIT_OUT : out std_logic_vector(3 downto 0); - BSM_MAC_OUT : out std_logic_vector(3 downto 0); - BSM_TRANS_OUT : out std_logic_vector(3 downto 0); - DBG_RD_DONE_OUT : out std_logic; - DBG_INIT_DONE_OUT : out std_logic; - DBG_ENABLED_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_frame_trans; - --- FifoRd ?!? - -architecture trb_net16_gbe_frame_trans of trb_net16_gbe_frame_trans is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_frame_trans : architecture is "GBE_BUF_group"; - -component mac_init_mem is -port ( - Address : in std_logic_vector(5 downto 0); - OutClock : in std_logic; - OutClockEn : in std_logic; - Reset : in std_logic; - Q : out std_logic_vector(7 downto 0) -); -end component; - -attribute syn_encoding : string; - -type macInitStates is (I_IDLE, I_INCRADDRESS, I_PAUSE, I_WRITE, I_PAUSE2, I_READ, I_PAUSE3, I_ENDED); -signal macInitState, macInitNextState : macInitStates; -attribute syn_encoding of macInitState: signal is "onehot"; -signal bsm_init : std_logic_vector(3 downto 0); - -type macStates is (M_RESETING, M_IDLE, M_INIT); -signal macCurrentState, macNextState : macStates; -attribute syn_encoding of macCurrentState : signal is "onehot"; -signal bsm_mac : std_logic_vector(3 downto 0); - -type transmitStates is (T_IDLE, T_TRANSMIT, T_WAITFORFIFO); -signal transmitCurrentState, transmitNextState : transmitStates; -attribute syn_encoding of transmitCurrentState: signal is "onehot"; -signal bsm_trans : std_logic_vector(3 downto 0); - -signal tx_fifoavail_i : std_logic; -signal tx_fifoeof_i : std_logic; - --- host interface signals -signal hcs_n_i : std_logic; -signal hwrite_n_i : std_logic; -signal hread_n_i : std_logic; - --- MAC INITIALIZATION signals -signal macInitMemAddr : std_logic_vector(5 downto 0); -signal macInitMemQ : std_logic_vector(7 downto 0); -signal macInitMemEn : std_logic; -signal reading_done : std_logic; -signal init_done : std_logic; -signal enabled : std_logic; -signal addrSig : std_logic_vector(5 downto 0); -signal addr2 : std_logic_vector(5 downto 0); -signal resetAddr : std_logic; - -signal FifoEmpty : std_logic; -signal debug : std_logic_vector(63 downto 0); -signal sent_ctr : std_logic_vector(31 downto 0); -signal link_ok_125 : std_logic; - -begin - -linkOkSync : pulse_sync -port map( - CLK_A_IN => CLK, - RESET_A_IN => RESET, - PULSE_A_IN => LINK_OK_IN, - CLK_B_IN => TX_MAC_CLK, - RESET_B_IN => RESET, - PULSE_B_OUT => link_ok_125 -); - --- Fakes -debug(63 downto 32) <= (others => '0'); ---debug(31 downto 0) <= sent_ctr; - - -TransmitStateMachineProc : process (TX_MAC_CLK) -begin - if RESET = '1' then - transmitCurrentState <= T_IDLE; - elsif rising_edge(TX_MAC_CLK) then - if (LINK_OK_IN = '0') then -- gk 01.10.10 - transmitCurrentState <= T_IDLE; - else - transmitCurrentState <= transmitNextState; - end if; - end if; -end process TransmitStatemachineProc; - -TransmitStateMachine : process (transmitCurrentState, START_OF_PACKET_IN, DATA_ENDFLAG_IN, TX_DONE_IN) -begin - case transmitCurrentState is - when T_IDLE => - bsm_trans <= x"0"; - if (START_OF_PACKET_IN = '1') then - transmitNextState <= T_TRANSMIT; - else - transmitNextState <= T_IDLE; - end if; - when T_TRANSMIT => - bsm_trans <= x"1"; - if (DATA_ENDFLAG_IN = '1') then - transmitNextState <= T_WAITFORFIFO; - else - transmitNextState <= T_TRANSMIT; - end if; - when T_WAITFORFIFO => - bsm_trans <= x"2"; - if (TX_DONE_IN = '1') then - transmitNextState <= T_IDLE; - else - transmitNextState <= T_WAITFORFIFO; - end if; - when others => - bsm_trans <= x"f"; - transmitNextState <= T_IDLE; - end case; -end process TransmitStateMachine; - -FifoAvailProc : process (TX_MAC_CLK) -begin - if rising_edge(TX_MAC_CLK) then - if (LINK_OK_IN = '0') then -- gk 01.10.10 - tx_fifoavail_i <= '0'; - elsif (transmitCurrentState = T_TRANSMIT) then - tx_fifoavail_i <= '1'; - else - tx_fifoavail_i <= '0'; - end if; - end if; -end process FifoAvailProc; - -FifoEmptyProc : process(transmitCurrentState, START_OF_PACKET_IN, TX_EMPTY_IN, RESET) -begin - if (LINK_OK_IN = '0') then -- gk 01.10.10 - FifoEmpty <= '1'; - elsif (transmitCurrentState = T_WAITFORFIFO) then - FifoEmpty <= '1'; - elsif (transmitCurrentState = T_TRANSMIT) then - FifoEmpty <= TX_EMPTY_IN; - elsif (((transmitCurrentState = T_IDLE) or (transmitCurrentState = T_WAITFORFIFO)) and (START_OF_PACKET_IN = '1')) then - FifoEmpty <= '0'; - else - FifoEmpty <= '1'; - end if; -end process FifoEmptyProc; - -tx_fifoeof_i <= '1' when ((DATA_ENDFLAG_IN = '1') and (transmitCurrentState = T_TRANSMIT)) - else '0'; - -SENT_CTR_PROC : process(TX_MAC_CLK) -begin - if (RESET = '1') then - sent_ctr <= (others => '0'); - elsif rising_edge(TX_MAC_CLK) then - if (TX_DONE_IN = '1') and (TX_STAT_EN_IN = '1') and (TX_STATVEC_IN(0) = '1') then - sent_ctr <= sent_ctr + x"1"; - else - sent_ctr <= sent_ctr; - end if; - end if; -end process SENT_CTR_PROC; - -sync1 : signal_sync -generic map( - WIDTH => 32, - DEPTH => 2 -) -port map ( - RESET => RESET, - CLK0 => CLK, - CLK1 => CLK, - D_IN => sent_ctr, - D_OUT => debug(31 downto 0) -); - -TX_FIFOAVAIL_OUT <= tx_fifoavail_i; -TX_FIFOEOF_OUT <= tx_fifoeof_i; -TX_FIFOEMPTY_OUT <= FifoEmpty; - -BSM_INIT_OUT <= bsm_init; -BSM_MAC_OUT <= bsm_mac; -BSM_TRANS_OUT <= bsm_trans; -DBG_RD_DONE_OUT <= reading_done; -DBG_INIT_DONE_OUT <= init_done; -DBG_ENABLED_OUT <= enabled; -DEBUG_OUT <= debug; - -end trb_net16_gbe_frame_trans; diff --git a/gbe2_ecp3/trb_net16_gbe_ipu2gbe_simple_sender.vhd b/gbe2_ecp3/trb_net16_gbe_ipu2gbe_simple_sender.vhd deleted file mode 100644 index 040737b..0000000 --- a/gbe2_ecp3/trb_net16_gbe_ipu2gbe_simple_sender.vhd +++ /dev/null @@ -1,1508 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; - -entity trb_net16_ipu2gbe is -port( - CLK : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- slow control interface - START_CONFIG_OUT : out std_logic; -- reconfigure MACs/IPs/ports/packet size - BANK_SELECT_OUT : out std_logic_vector(3 downto 0); -- configuration page address - CONFIG_DONE_IN : in std_logic; -- configuration finished - DATA_GBE_ENABLE_IN : in std_logic; -- IPU data is forwarded to GbE - DATA_IPU_ENABLE_IN : in std_logic; -- IPU data is forwarded to CTS / TRBnet - MULT_EVT_ENABLE_IN : in std_logic; - MAX_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- the maximum size of one HadesQueue -- gk 08.04.10 - MIN_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- gk 20.07.10 - READOUT_CTR_IN : in std_logic_vector(23 downto 0); -- gk 26.04.10 - READOUT_CTR_VALID_IN : in std_logic; -- gk 26.04.10 - - SCTRL_DUMMY_SIZE_IN : in std_logic_vector(15 downto 0); - SCTRL_DUMMY_PAUSE_IN : in std_logic_vector(31 downto 0); - - -- PacketConstructor interface - ALLOW_LARGE_IN : in std_logic; -- gk 21.07.10 - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOS_OUT : out std_logic; -- gk 07.10.10 - PC_EOD_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_PADDING_OUT : out std_logic; - MONITOR_OUT : out std_logic_vector(223 downto 0); - DEBUG_OUT : out std_logic_vector(383 downto 0) -); -end entity; - -architecture trb_net16_ipu2gbe of trb_net16_ipu2gbe is - --- attribute HGROUP : string; --- attribute HGROUP of trb_net16_ipu2gbe : architecture is "GBE_ipu2gbe"; - -component fifo_32kx16x8_mb2 -port( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(8 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); - Empty : out std_logic; - AlmostEmpty : out std_logic; - Full : out std_logic; - AlmostFull : out std_logic -); -end component; - -type saveStates is (SIDLE, SAVE_EVT_ADDR, WAIT_FOR_DATA, SAVE_DATA, ADD_SUBSUB1, ADD_SUBSUB2, ADD_SUBSUB3, ADD_SUBSUB4, TERMINATE, SCLOSE, RESET_FIFO); -signal saveCurrentState, saveNextState : saveStates; -signal state : std_logic_vector(3 downto 0); -signal data_req_comb : std_logic; -signal data_req : std_logic; -- request data signal, will be used for fee_read generation -signal rst_saved_ctr_comb : std_logic; -signal rst_saved_ctr : std_logic; - -signal fee_read_comb : std_logic; -signal fee_read : std_logic; -- fee_read signal -signal saved_ctr : std_logic_vector(16 downto 0); -signal ce_saved_ctr : std_logic; - --- header data -signal cts_rnd : std_logic_vector(15 downto 0); -signal cts_rnd_saved : std_logic; -signal cts_trg : std_logic_vector(15 downto 0); -signal cts_trg_saved : std_logic; -signal cts_len : std_logic_vector(16 downto 0); -signal cts_len_saved : std_logic; - --- CTS interface -signal cts_error_pattern : std_logic_vector(31 downto 0); -signal cts_length : std_logic_vector(15 downto 0); -signal cts_readout_finished : std_logic; -signal cts_dataready : std_logic; -signal cts_data : std_logic_vector(31 downto 0); - --- Split FIFO signals -signal sf_data : std_logic_vector(15 downto 0); -signal sf_wr_en_comb : std_logic; -signal sf_wr_en : std_logic; -- write signal for FIFO -signal sf_rd_en_comb : std_logic; -signal sf_rd_en : std_logic; -- read signal for FIFO -signal sf_wcnt : std_logic_vector(15 downto 0); -signal sf_rcnt : std_logic_vector(16 downto 0); -signal sf_empty : std_logic; -signal sf_aempty : std_logic; -signal sf_full : std_logic; -signal sf_afull : std_logic; - -------------------------------------------------------------------- -type loadStates is (LIDLE, INIT, REMOVE, DECIDE, CALCA, CALCB, LOAD, PAD0, PAD1, PAD2, PAD3, LOAD_SUBSUB, CALCC, CLOSE, WAIT_PC, DROP, WAIT_TO_REMOVE, DROP_SUBSUB, PAUSE_BEFORE_DROP1, PAUSE_BEFORE_DROP2); -signal loadCurrentState, loadNextState : loadStates; -signal state2 : std_logic_vector(3 downto 0); - -signal rem_ctr : std_logic_vector(3 downto 0); -- counter for stripping / storing header data -signal rst_rem_ctr_comb : std_logic; -signal rst_rem_ctr : std_logic; -- reset the remove counter -signal rst_regs_comb : std_logic; -signal rst_regs : std_logic; -- reset storage registers -signal rem_phase_comb : std_logic; -signal rem_phase : std_logic; -- header remove phase -signal data_phase_comb : std_logic; -signal data_phase : std_logic; -- data transport phase from split fifo to PC -signal pad_phase_comb : std_logic; -signal pad_phase : std_logic; -- padding phase -signal calc_pad_comb : std_logic; -signal calc_pad : std_logic; -- check if padding bytes need to be added to PC_SUB_SIZE -signal pad_data_comb : std_logic; -signal pad_data : std_logic; -- reset PC_DATA register to known padding byte value - -signal pc_sos_comb : std_logic; -signal pc_sos : std_logic; -- start of data signal -signal pc_eod_comb : std_logic; -signal pc_eod : std_logic; -- end of data signal - -signal ce_rem_ctr_comb : std_logic; -signal ce_rem_ctr : std_logic; -- count enable for remove counter -signal remove_done_comb : std_logic; -signal remove_done : std_logic; -- end of header stripping process -signal read_done_comb : std_logic; -signal read_done : std_logic; -- end of data phase (read phase from SF) - -signal pc_data : std_logic_vector(7 downto 0); -signal pc_data_q : std_logic_vector(7 downto 0); -signal pc_trig_nr : std_logic_vector(15 downto 0); -signal pc_sub_size : std_logic_vector(17 downto 0); -signal read_size : std_logic_vector(17 downto 0); -- number of byte to be read from split fifo -signal padding_needed : std_logic; -signal pc_wr_en_comb : std_logic; -signal pc_wr_en_q : std_logic; -signal pc_wr_en_qq : std_logic; -signal pc_wr_en_qqq : std_logic; -signal pc_eod_q : std_logic; - -signal debug : std_logic_vector(383 downto 0); - --- gk -signal bank_select : std_logic_vector(3 downto 0); -signal save_addr_comb : std_logic; -signal save_addr : std_logic; -signal addr_saved_comb : std_logic; -signal addr_saved : std_logic; -signal start_config : std_logic; -signal config_done : std_logic; -signal add_sub_state : std_logic; -signal add_sub_state_comb : std_logic; -signal add_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub : std_logic; -signal load_sub_comb : std_logic; -signal load_sub_done : std_logic; -signal load_sub_done_comb : std_logic; -signal load_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub_ctr_comb : std_logic; -signal actual_message_size : std_logic_vector(31 downto 0); -signal more_subevents : std_logic; -signal trig_random : std_logic_vector(7 downto 0); -signal readout_ctr : std_logic_vector(23 downto 0); -signal readout_ctr_lock : std_logic; -signal pc_trig_nr_q : std_logic_vector(31 downto 0); - --- gk 20.07.10 -signal inc_data_ctr : std_logic_vector(31 downto 0); -signal dropped_sm_events_ctr : std_logic_vector(31 downto 0); -signal dropped_lr_events_ctr : std_logic_vector(31 downto 0); -signal dropped_ctr : std_logic_vector(31 downto 0); --- gk 22.07.10 -signal headers_invalid : std_logic; -signal headers_invalid_ctr : std_logic_vector(31 downto 0); -signal cts_len_q : std_logic_vector(15 downto 0); -signal cts_trg_q : std_logic_vector(15 downto 0); -signal cts_rnd_q : std_logic_vector(15 downto 0); -signal first_run_trg : std_logic_vector(15 downto 0); -signal first_run_addr : std_logic_vector(15 downto 0); -signal first_run_lock : std_logic; -signal cts_addr : std_logic_vector(15 downto 0); -signal cts_addr_q : std_logic_vector(15 downto 0); -signal cts_addr_saved : std_logic; - --- gk 24.07.10 -signal save_eod : std_logic; -signal save_eod_comb : std_logic; - -signal load_eod : std_logic; -signal endpoint_addr : std_logic_vector(15 downto 0); -signal endp_addr_lock : std_logic; - -signal saved_events_ctr : std_logic_vector(15 downto 0); -signal loaded_events_ctr : std_logic_vector(15 downto 0); -signal constr_events_ctr : std_logic_vector(31 downto 0); -signal event_waiting : std_logic; - -signal drop_sub : std_logic; -signal drop_sub_comb : std_logic; -signal drop_event : std_logic; -signal drop_event_comb : std_logic; -signal drop_small : std_logic; -signal drop_large : std_logic; -signal drop_headers : std_logic; -signal drop_small_comb : std_logic; -signal drop_large_comb : std_logic; -signal drop_headers_comb : std_logic; -signal inc_trg_ctr : std_logic; -signal inc_trg_ctr_comb : std_logic; - -signal invalid_hsize_ctr : std_logic_vector(15 downto 0); -signal invalid_hsize_lock : std_logic; - -signal load_eod_q : std_logic; -signal read_size_q : std_logic_vector(17 downto 0); - --- gk 06.08.10 write to fifo only if gbe is enabled but keep the saving logic unblocked -signal sf_real_wr_en : std_logic; - --- gk 01.10.10 -signal found_empty_evt : std_logic; -signal found_empty_evt_comb : std_logic; -signal found_empty_evt_ctr : std_logic_vector(31 downto 0); - --- gk 06.10.10 -signal message_size : std_logic_vector(31 downto 0); - --- gk 07.12.10 -signal prev_bank_select : std_logic_vector(3 downto 0); -signal first_event : std_logic; - -signal reset_split_fifo : std_logic; - -signal input_data_ctr : std_logic_vector(31 downto 0); - --- SIMPLE SENDER STUFF -type gen_states is (IDLE, WAIT_FOR_PC, GENERATE_DATA, CLEANUP); -signal gen_current_state, gen_next_state : gen_states; - -signal gen_data_ctr : std_logic_vector(15 downto 0); - -begin - -BANK_SELECT_OUT <= bank_select; -- gk 27.03.10 -START_CONFIG_OUT <= start_config; -- gk 27.03.10 -config_done <= CONFIG_DONE_IN; -- gk 29.03.10 - --- CTS interface signals -cts_error_pattern <= (others => '0'); -- FAKE - -cts_length <= x"0000"; -- length of data payload is always 0 -cts_data <= b"0001" & cts_rnd(11 downto 0) & cts_trg; -- reserved bits = '0', pack bit = '1' - -cts_readout_finished <= '1' when (saveCurrentState = SCLOSE) else '0'; - -cts_dataready <= '1' when ((saveCurrentState = SAVE_DATA) and (FEE_BUSY_IN = '0')) or (saveCurrentState = TERMINATE) - else '0'; - --- Byte swapping... done here. TAKE CARE! --- The split FIFO is in natural bus order (i.e. Motorola style, [15:0]). This means that the two bytes --- on the write side need to be swapped to appear in GbE style (i.e. Intel style) on the 8bit port. --- Please mind that PC_SUB_SIZE and PC_TRIG_NR stay in a human readable format, and need to be byteswapped --- for GbE inside the packet constructor. --- --- Long live the Endianess! - --- Sync all critical pathes -THE_SYNC_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - --sf_data <= FEE_DATA_IN; -- gk 27.03.10 moved out to the process below - sf_wr_en <= sf_wr_en_comb; - ce_rem_ctr <= ce_rem_ctr_comb; - sf_rd_en <= sf_rd_en_comb; - fee_read <= fee_read_comb; - read_done <= read_done_comb; - pc_eod_q <= pc_eod; - pc_wr_en_qqq <= pc_wr_en_qq; - pc_wr_en_qq <= pc_wr_en_q; - pc_wr_en_q <= pc_wr_en_comb; - end if; -end process THE_SYNC_PROC; - --- gk 27.03.10 data selector for sf to write the evt builder address on top of data -SF_DATA_PROC : process( CLK ) -begin - if( rising_edge(CLK) ) then - if (RESET = '1') then -- gk 31.05.10 - sf_data <= (others => '0'); - elsif( save_addr = '1' ) then - sf_data(3 downto 0) <= CTS_INFORMATION_IN(3 downto 0); -- only last 4 bits are the evt builder address - sf_data(15 downto 4) <= x"abc"; - -- gk 29.03.10 four entries to save the fee_status into sf for the subsubevent - elsif( (add_sub_state = '1') and (add_sub_ctr = x"0") ) then - sf_data <= x"0001"; -- gk 11.06.10 - elsif( (add_sub_state = '1') and (add_sub_ctr = x"1") ) then - sf_data <= x"5555"; -- gk 11.06.10 - elsif( (add_sub_state = '1') and (add_sub_ctr = x"2") ) then - sf_data <= FEE_STATUS_BITS_IN(31 downto 16); - elsif( (add_sub_state = '1') and (add_sub_ctr = x"3") ) then - sf_data <= FEE_STATUS_BITS_IN(15 downto 0); - else - sf_data <= FEE_DATA_IN; - end if; - end if; -end process SF_DATA_PROC; - --- combinatorial read signal for the FEE data interface, DO NOT USE DIRECTLY -fee_read_comb <= '1' when ( (sf_afull = '0') and (data_req = '1') ) --and (DATA_GBE_ENABLE_IN = '1') ) -- GbE enabled - else '0'; - --- combinatorial write signal for the split FIFO, DO NOT USE DIRECTLY -sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') ) or -- and (DATA_GBE_ENABLE_IN = '1') ) or -- GbE enabled - (save_addr = '1') or - (add_sub_state = '1') -- gk 29.03.10 save the subsubevent - else '0'; - --- gk 06.08.10 -sf_real_wr_en <= '1' when ((sf_wr_en = '1') and (DATA_GBE_ENABLE_IN = '1')) else '0'; - --- gk 27.03.10 do not count evt builder address as saved ipu bytes ---ce_saved_ctr <= sf_wr_en; -ce_saved_ctr <= '0' when addr_saved = '1' else sf_wr_en; - --- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO -saveMachineProc: process( CLK ) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saveCurrentState <= SIDLE; - data_req <= '0'; - rst_saved_ctr <= '0'; - save_addr <= '0'; -- gk 27.03.10 - addr_saved <= '0'; -- gk 27.03.10 - add_sub_state <= '0'; -- gk 29.03.10 - save_eod <= '0'; -- gk 25.07.10 - else - saveCurrentState <= saveNextState; - data_req <= data_req_comb; - rst_saved_ctr <= rst_saved_ctr_comb; - save_addr <= save_addr_comb; -- gk 27.03.10 - addr_saved <= addr_saved_comb; -- gk 27.03.10 - add_sub_state <= add_sub_state_comb; -- gk 29.03.10 - save_eod <= save_eod_comb; -- gk 25.07.10 - end if; - end if; -end process saveMachineProc; - -saveMachine: process( saveCurrentState, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN, input_data_ctr, MAX_MESSAGE_SIZE_IN) -begin - saveNextState <= SIDLE; - data_req_comb <= '0'; - rst_saved_ctr_comb <= '0'; - save_addr_comb <= '0'; -- gk 27.03.10 - addr_saved_comb <= '0'; -- gk 27.03.10 - add_sub_state_comb <= '0'; -- gk 29.03.10 - save_eod_comb <= '0'; -- gk 25.07.10 - case saveCurrentState is - when SIDLE => - state <= x"0"; - if (CTS_START_READOUT_IN = '1') then - saveNextState <= SAVE_EVT_ADDR; --WAIT_FOR_DATA; -- gk 27.03.10 - data_req_comb <= '1'; - rst_saved_ctr_comb <= '1'; - else - saveNextState <= SIDLE; - end if; - -- gk 27.03.10 - when SAVE_EVT_ADDR => - state <= x"5"; - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - save_addr_comb <= '1'; - when WAIT_FOR_DATA => - state <= x"1"; - if (FEE_BUSY_IN = '1') then - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - else - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - end if; - addr_saved_comb <= '1'; -- gk 27.03.10 - when SAVE_DATA => - state <= x"2"; - if (FEE_BUSY_IN = '0') then - saveNextState <= TERMINATE; - else - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - end if; - when TERMINATE => - state <= x"3"; - if (CTS_READ_IN = '1') then - saveNextState <= SCLOSE; - else - saveNextState <= TERMINATE; - end if; - when SCLOSE => - state <= x"4"; - if (CTS_START_READOUT_IN = '0') then - if (input_data_ctr > MAX_MESSAGE_SIZE_IN) then -- gk 06.11.2012 - saveNextState <= RESET_FIFO; - else - saveNextState <= ADD_SUBSUB1; --SIDLE; -- gk 29.03.10 - end if; - else - saveNextState <= SCLOSE; - end if; - -- gk 06.11.2012 - when RESET_FIFO => - saveNextState <= SIDLE; - state <= x"E"; - -- gk 29.03.10 new states during which the subsub bytes are saved - when ADD_SUBSUB1 => - state <= x"6"; - saveNextState <= ADD_SUBSUB2; - add_sub_state_comb <= '1'; - when ADD_SUBSUB2 => - state<= x"7"; - saveNextState <= ADD_SUBSUB3; - add_sub_state_comb <= '1'; - save_eod_comb <= '1'; - when ADD_SUBSUB3 => - state<= x"8"; - saveNextState <= ADD_SUBSUB4; - add_sub_state_comb <= '1'; - when ADD_SUBSUB4 => - state<= x"9"; - saveNextState <= SIDLE; - add_sub_state_comb <= '1'; - when others => - state <= x"f"; - saveNextState <= SIDLE; - end case; -end process saveMachine; - --- gk 06.11.2012 -INPUT_DATA_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1' or rst_saved_ctr = '1') then - input_data_ctr <= (others => '0'); - elsif (saveCurrentState = SAVE_DATA and sf_real_wr_en = '1') then - input_data_ctr(31 downto 1) <= input_data_ctr(31 downto 1) + x"1"; - end if; - end if; -end process INPUT_DATA_CTR_PROC; - --- gk 29.03.10 -ADD_SUB_CTR_PROC : process( CLK ) -begin - if( rising_edge( CLK ) ) then - if( (RESET = '1') or (rst_saved_ctr = '1') ) then - add_sub_ctr <= (others => '0'); - elsif( add_sub_state = '1' ) then - add_sub_ctr <= add_sub_ctr + 1; - end if; - end if; -end process ADD_SUB_CTR_PROC; - ---******** --- SAVE INCOMING EVENT HEADERS ---******** - --- Counter for header word storage -THE_CTS_SAVED_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - saved_ctr <= (others => '0'); - elsif( ce_saved_ctr = '1' ) then - saved_ctr <= saved_ctr + 1; - end if; - end if; -end process THE_CTS_SAVED_CTR; - --- save triggerRnd from incoming data for cts response -CTS_RND_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_rnd <= (others => '0'); - cts_rnd_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"000") and (sf_wr_en = '1') and (cts_rnd_saved = '0') ) then - cts_rnd <= sf_data; - cts_rnd_saved <= '1'; - end if; - end if; -end process CTS_RND_PROC; - --- save triggerNr from incoming data for cts response -CTS_TRG_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_trg <= (others => '0'); - cts_trg_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"001") and (sf_wr_en = '1') and (cts_trg_saved = '0') ) then - cts_trg <= sf_data; - cts_trg_saved <= '1'; - end if; - end if; -end process CTS_TRG_PROC; - --- save size from incoming data for cts response (future) and to get rid of padding ---CTS_SIZE_PROC: process( CLK ) ---begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_saved_ctr = '1') ) then --- cts_len <= (others => '0'); --- cts_len_saved <= '0'; --- elsif( (saved_ctr(2 downto 0) = b"010") and (sf_wr_en = '1') and (cts_len_saved = '0') ) then --- cts_len(16 downto 1) <= sf_data; -- change from 32b words to 16b words --- cts_len(0) <= '0'; --- elsif( (saved_ctr(2 downto 0) = b"011") and (cts_len_saved = '0') ) then --- cts_len <= cts_len + x"4"; --- cts_len_saved <= '1'; --- end if; --- end if; ---end process CTS_SIZE_PROC; - --- gk 22.07.10 ---CTS_ADDR_PROC : process(CLK) ---begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_saved_ctr = '1') ) then --- cts_addr <= (others => '0'); --- cts_addr_saved <= '0'; --- elsif( (saved_ctr(2 downto 0) = b"011") and (sf_wr_en = '1') and (cts_addr_saved = '0') ) then --- cts_addr <= sf_data; --- cts_addr_saved <= '1'; --- end if; --- end if; ---end process CTS_ADDR_PROC; - ---****** --- SAVE FIRST EVENT HEADER VALUES ---****** - --- gk 22.07.10 ---FIRST_RUN_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- first_run_trg <= (others => '0'); --- first_run_addr <= (others => '0'); --- first_run_lock <= '0'; --- elsif (first_run_lock = '0') and (cts_addr_saved = '1') then --- first_run_trg <= cts_trg; --- first_run_addr <= cts_addr; --- first_run_lock <= '1'; --- -- important: value saved by saveMachine but incremented by loadMachine --- elsif (first_run_lock = '1') and (inc_trg_ctr = '1') then --- first_run_trg <= first_run_trg + x"1"; --- end if; --- end if; ---end process FIRST_RUN_PROC; - --- gk 25.07.10 -SAVED_EVT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saved_events_ctr <= (others => '0'); - elsif (save_eod = '1') and (input_data_ctr < MAX_MESSAGE_SIZE_IN) then -- gk 06.11.2012 - saved_events_ctr <= saved_events_ctr + x"1"; - end if; - end if; -end process SAVED_EVT_CTR_PROC; - - ----- gk 20.07.10 ---INC_DATA_CTR_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') or (rst_saved_ctr = '1') then --- inc_data_ctr <= (others => '0'); --- elsif (sf_wr_en = '1') and (data_req = '1') then --- inc_data_ctr(31 downto 1) <= inc_data_ctr(31 downto 1) + x"1"; --- end if; --- end if; ---end process INC_DATA_CTR_proc; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Split FIFO ---THE_SPLIT_FIFO: fifo_32kx16x8_mb2 ---port map( --- -- Byte swapping for correct byte order on readout side of FIFO --- Data(7 downto 0) => sf_data(15 downto 8), --- Data(8) => '0', --- Data(16 downto 9) => sf_data(7 downto 0), --- Data(17) => save_eod, --- WrClock => CLK, --- RdClock => CLK, --- WrEn => sf_real_wr_en, -- gk 06.08.10 --sf_wr_en, --- RdEn => sf_rd_en, --- Reset => reset_split_fifo, --RESET, -- gk 06.11.2012 --- RPReset => reset_split_fifo, --RESET, -- gk 06.11.2012 --- AmEmptyThresh => b"0000_0000_0000_0010", -- one byte ahead --- AmFullThresh => b"111_1111_1110_1111", -- 0x7fef = 32751 --- Q(7 downto 0) => pc_data, --- Q(8) => load_eod, --- WCNT => sf_wcnt, --- RCNT => sf_rcnt, --- Empty => sf_empty, --- AlmostEmpty => open, --sf_aempty, --- Full => sf_full, --- AlmostFull => sf_afull ---); - -sf_aempty <= '0'; - -reset_split_fifo <= '1' when (saveCurrentState = RESET_FIFO or RESET = '1') else '0'; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- gk 25.07.10 -EVENT_WAITING_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - event_waiting <= '0'; - elsif (loaded_events_ctr /= saved_events_ctr) then - event_waiting <= '1'; - else - event_waiting <= '0'; - end if; - end if; -end process EVENT_WAITING_PROC; - --- write signal for PC data -pc_wr_en_comb <= '1' when ((data_phase = '1') and (sf_rd_en = '1')) or - (pad_phase = '1') or - ((load_sub = '1') and (sf_rd_en = '1')) or - ((drop_sub = '1') and (sf_rd_en = '1')) or - ((drop_event = '1') and (sf_rd_en = '1')) - else '0'; - -sf_rd_en_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and (remove_done = '0') ) or - --( (sf_aempty = '0') and (data_phase = '1') and (read_done = '0') ) or - ( (sf_aempty = '0') and (data_phase = '1') and (load_eod = '0') ) or -- gk 26.07.10 - ( (sf_aempty = '0') and (load_sub = '1') and (load_sub_done = '0') ) or -- gk 30.03.10 - ( (sf_aempty = '0') and (drop_event = '1') and (load_eod = '0') ) or - ( (sf_aempty = '0') and (drop_sub = '1') and (load_sub_done = '0') ) - else '0'; - -ce_rem_ctr_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and ( remove_done = '0') ) - else '0'; - --- FIFO data delay process (also forces padding bytes to known value) -THE_DATA_DELAY_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if( pad_data = '1' ) then - pc_data_q <= x"aa"; -- padding for 64bit - -- gk 21.07.10 - -- set the error flag if a broken packet is sent - elsif (drop_sub = '1') and (load_sub_ctr = x"3") then - pc_data_q <= pc_data(7 downto 3) & '1' & pc_data(1 downto 0); - else - pc_data_q <= pc_data; - end if; - end if; -end process THE_DATA_DELAY_PROC; - --- Statemachine for reading the data payload from the SPLIT_FIFO and feeding --- it into the packet constructor -loadMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loadCurrentState <= LIDLE; - rst_rem_ctr <= '0'; - rem_phase <= '0'; - calc_pad <= '0'; - data_phase <= '0'; - pad_phase <= '0'; - pc_sos <= '0'; - pc_eod <= '0'; - rst_regs <= '0'; - pad_data <= '0'; - load_sub <= '0'; -- gk 30.03.10 - drop_sub <= '0'; -- gk 25.07.10 - drop_event <= '0'; -- gk 25.07.10 - drop_small <= '0'; -- gk 25.07.10 - drop_large <= '0'; -- gk 25.07.10 - drop_headers <= '0'; -- gk 25.07.10 - inc_trg_ctr <= '0'; -- gk 26.07.10 - found_empty_evt <= '0'; -- gk 01.10.10 - else - loadCurrentState <= loadNextState; - rst_rem_ctr <= rst_rem_ctr_comb; - rem_phase <= rem_phase_comb; - calc_pad <= calc_pad_comb; - data_phase <= data_phase_comb; - pad_phase <= pad_phase_comb; - pc_sos <= pc_sos_comb; - pc_eod <= pc_eod_comb; - rst_regs <= rst_regs_comb; - pad_data <= pad_data_comb; - load_sub <= load_sub_comb; -- gk 30.03.1 - drop_sub <= drop_sub_comb; -- gk 25.07.10 - drop_event <= drop_event_comb; -- gk 25.07.10 - drop_small <= drop_small_comb; -- gk 25.07.10 - drop_large <= drop_large_comb; -- gk 25.07.10 - drop_headers <= drop_headers_comb; -- gk 25.07.10 - inc_trg_ctr <= inc_trg_ctr_comb; -- gk 26.07.10 - found_empty_evt <= found_empty_evt_comb; -- gk 01.10.10 - end if; - end if; -end process loadMachineProc; - -loadMachine : process( loadCurrentState, sf_aempty, remove_done, read_done, padding_needed, - PC_READY_IN, load_sub_done, pc_sub_size, MIN_MESSAGE_SIZE_IN, - MAX_MESSAGE_SIZE_IN, pc_trig_nr, first_run_trg, endpoint_addr, - first_run_addr, load_eod, event_waiting, MULT_EVT_ENABLE_IN, message_size, DATA_GBE_ENABLE_IN, first_event, - prev_bank_select, bank_select) -begin - loadNextState <= LIDLE; - rst_rem_ctr_comb <= '0'; - rem_phase_comb <= '0'; - calc_pad_comb <= '0'; - data_phase_comb <= '0'; - pad_phase_comb <= '0'; - pc_sos_comb <= '0'; - pc_eod_comb <= '0'; - rst_regs_comb <= '0'; - pad_data_comb <= '0'; - load_sub_comb <= '0'; -- gk 30.03.10 - drop_sub_comb <= '0'; -- gk 25.07.10 - drop_event_comb <= '0'; -- gk 25.07.10 - drop_small_comb <= '0'; -- gk 25.07.10 - drop_large_comb <= '0'; -- gk 25.07.10 - drop_headers_comb <= '0'; -- gk 25.07.10 - inc_trg_ctr_comb <= '0'; -- gk 26.07.10 - found_empty_evt_comb <= '0'; -- gk 01.10.10 - case loadCurrentState is - when LIDLE => - state2 <= x"0"; - -- gk 23.07.10 - if( (sf_aempty = '0') and (event_waiting = '1') and (DATA_GBE_ENABLE_IN = '1') ) then -- gk 06.08.10 -- and (PC_READY_IN = '1') - loadNextState <= INIT; - rst_rem_ctr_comb <= '1'; - rst_regs_comb <= '1'; - else - loadNextState <= LIDLE; - end if; - when INIT => - state2 <= x"1"; - loadNextState <= REMOVE; - rem_phase_comb <= '1'; - when REMOVE => - state2 <= x"2"; - if( remove_done = '1' ) then - -- gk 06.10.10 - if (MULT_EVT_ENABLE_IN = '1') then - if (message_size + pc_sub_size < MAX_MESSAGE_SIZE_IN) then - --loadNextState <= WAIT_TO_REMOVE; - -- gk 07.12.10 - if (first_event = '0') and (prev_bank_select /= bank_select) then -- check if event builder address changed, if so close the current packet - loadNextState <= WAIT_PC; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - - else - loadNextState <= WAIT_PC; - end if; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - inc_trg_ctr_comb <= '1'; - else - loadNextState <= REMOVE; - rem_phase_comb <= '1'; - end if; - when WAIT_TO_REMOVE => - if (rem_ctr = x"a") then - loadNextState <= DECIDE; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - when DECIDE => --- if (pc_sub_size >= MAX_MESSAGE_SIZE_IN) then --- loadNextState <= PAUSE_BEFORE_DROP1; --- drop_large_comb <= '1'; --- elsif (pc_sub_size = b"0000_0000_0000_00") then -- gk 01.10.10 --- loadNextState <= CALCA; --- found_empty_evt_comb <= '1'; --- elsif (pc_sub_size < MIN_MESSAGE_SIZE_IN) then --- loadNextState <= PAUSE_BEFORE_DROP1; --- drop_small_comb <= '1'; --- elsif (pc_trig_nr + x"1" /= first_run_trg) then --- loadNextState <= PAUSE_BEFORE_DROP1; --- drop_headers_comb <= '1'; --- elsif (endpoint_addr /= first_run_addr) then --- loadNextState <= PAUSE_BEFORE_DROP1; --- drop_headers_comb <= '1'; --- else - loadNextState <= CALCA; --- end if; - calc_pad_comb <= '1'; - when CALCA => - state2 <= x"3"; - loadNextState <= CALCB; - pc_sos_comb <= '1'; - when CALCB => - -- we need a branch in case of length "0"!!!! - state2 <= x"4"; - loadNextState <= LOAD; - data_phase_comb <= '1'; - when LOAD => - state2 <= x"5"; - if (load_eod = '1') then - loadNextState <= LOAD_SUBSUB; - else - loadNextState <= LOAD; - data_phase_comb <= '1'; - end if; - -- gk 31.03.10 - when LOAD_SUBSUB => - state2 <= x"d"; - if( load_sub_done = '1' ) then - if( padding_needed = '0' ) then - loadNextState <= CALCC; - else - loadNextState <= PAD0; - pad_phase_comb <= '1'; - end if; - else - loadNextState <= LOAD_SUBSUB; - load_sub_comb <= '1'; - end if; - when PAD0 => - state2 <= x"6"; - loadNextState <= PAD1; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD1 => - state2 <= x"7"; - loadNextState <= PAD2; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD2 => - state2 <= x"8"; - loadNextState <= PAD3; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD3 => - state2 <= x"9"; - loadNextState <= CALCC; - pad_data_comb <= '1'; - when CALCC => - state2 <= x"a"; - if (MULT_EVT_ENABLE_IN = '1') then - loadNextState <= LIDLE; - else - loadNextState <= CLOSE; - end if; - pc_eod_comb <= '1'; - when CLOSE => - state2 <= x"b"; - loadNextState <= WAIT_PC; - --rst_regs_comb <= '1'; -- gk 07.10.10 - when WAIT_PC => - state2 <= x"c"; - if( PC_READY_IN = '1' ) then - -- gk 06.10.10 - if (MULT_EVT_ENABLE_IN = '1') then - loadNextState <= WAIT_TO_REMOVE; - else - loadNextState <= LIDLE; - end if; - else - loadNextState <= WAIT_PC; - end if; - when PAUSE_BEFORE_DROP1 => - loadNextState <= PAUSE_BEFORE_DROP2; - pc_sos_comb <= '1'; - when PAUSE_BEFORE_DROP2 => - loadNextState <= DROP; - drop_event_comb <= '1'; - -- gk 23.07.10 - when DROP => - state2 <= x"e"; - -- when data is dropped the eod marker stands as its end - if (load_eod = '1') then - loadNextState <= DROP_SUBSUB; - else - loadNextState <= DROP; - drop_event_comb <= '1'; - end if; - -- gk 25.07.10 - when DROP_SUBSUB => - if (load_sub_done = '1') then - if( padding_needed = '0' ) then - loadNextState <= CALCC; - else - loadNextState <= PAD0; - pad_phase_comb <= '1'; - end if; - else - loadNextState <= DROP_SUBSUB; - drop_sub_comb <= '1'; - end if; - when others => - state2 <= x"f"; - loadNextState <= LIDLE; - end case; -end process loadMachine; - --- gk 25.07.10 ---INVALID_STATS_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- dropped_lr_events_ctr <= (others => '0'); --- dropped_sm_events_ctr <= (others => '0'); --- headers_invalid_ctr <= (others => '0'); --- dropped_ctr <= (others => '0'); --- invalid_hsize_ctr <= (others => '0'); --- found_empty_evt_ctr <= (others => '0'); -- gk 01.10.10 --- elsif (rst_regs = '1') then --- invalid_hsize_lock <= '0'; --- elsif (drop_small = '1') then --- dropped_sm_events_ctr <= dropped_sm_events_ctr + x"1"; --- dropped_ctr <= dropped_ctr + x"1"; --- elsif (drop_large = '1') then --- dropped_lr_events_ctr <= dropped_lr_events_ctr + x"1"; --- dropped_ctr <= dropped_ctr + x"1"; --- elsif (drop_headers = '1') then --- headers_invalid_ctr <= headers_invalid_ctr + x"1"; --- dropped_ctr <= dropped_ctr + x"1"; --- elsif (load_eod_q = '1') and (read_size_q /= x"3fffe") and (invalid_hsize_lock = '0') then -- ?? --- invalid_hsize_ctr <= invalid_hsize_ctr + x"1"; --- invalid_hsize_lock <= '1'; --- -- gk 01.10.10 --- elsif (found_empty_evt = '1') then --- found_empty_evt_ctr <= found_empty_evt_ctr + x"1"; --- end if; --- end if; ---end process INVALID_STATS_PROC; - --- gk 05.08.10 -INVALID_H_PROC : process(CLK) -begin - if rising_edge(CLK) then - load_eod_q <= load_eod; - read_size_q <= read_size; - end if; -end process INVALID_H_PROC; - --- gk 26.04.10 -READOUT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (READOUT_CTR_VALID_IN = '1')) then - readout_ctr <= READOUT_CTR_IN; - readout_ctr_lock <= '0'; - elsif (pc_sos = '1') then - readout_ctr <= readout_ctr + x"1"; - end if; - end if; -end process READOUT_CTR_PROC; - ---****** --- SELECTION OF EVENT BUILDER ---****** - --- gk 27.03.10 -bank_select_proc : process( CLK ) -begin - if rising_edge( CLK ) then - -- gk 29.03.10 - if( (RESET = '1') or (rst_regs = '1') ) then - bank_select <= "0000"; - -- gk 01.06.10 THERE WAS A BUG, IT SHOUDL BE TAKEN FROM SF_Q - elsif( (sf_rd_en = '1') and (rem_ctr = x"2") ) then - bank_select <= pc_data(3 downto 0); --CTS_INFORMATION_IN(3 downto 0); - end if; - end if; -end process bank_select_proc; - --- gk 07.12.10 -first_event_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = WAIT_PC) then - first_event <= '1'; - elsif (remove_done = '1') then - first_event <= '0'; - end if; - end if; -end process first_event_proc; - --- gk 07.12.10 -prev_bank_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = WAIT_PC) then - prev_bank_select <= "0000"; - elsif ((sf_rd_en = '1') and (rem_ctr = x"3") and (first_event = '1')) then - prev_bank_select <= bank_select; - end if; - end if; -end process prev_bank_proc; - - --- gk 29.03.10 -start_config_proc : process( CLK ) -begin - if rising_edge( CLK ) then - if( (RESET = '1') or (config_done = '1') or (rst_regs = '1') ) then - start_config <= '0'; - elsif( (sf_rd_en = '1') and (rem_ctr = x"2") and (first_event = '1') ) then -- gk 01.06.10 - start_config <= '1'; - end if; - end if; -end process start_config_proc; - - ---****** --- LOAD SUBSUBEVENT ---****** - --- gk 30.03.10 -load_sub_ctr_comb <= '1' when ( ((load_sub = '1') or (drop_sub = '1')) and (load_sub_done = '0') and (sf_aempty = '0') ) - else '0'; - --- gk 30.03.10 -LOAD_SUB_CTR_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 - load_sub_ctr <= (others => '0'); - elsif( (load_sub_ctr_comb = '1') ) then - load_sub_ctr <= load_sub_ctr + 1; - end if; - end if; -end process LOAD_SUB_CTR_PROC; - --- gk 30.03.10 --- load_sub_done_comb <= '1' when ((load_sub_ctr = x"7") and (drop_sub = '0')) or --- ((load_sub_ctr = x"4") and (drop_sub = '1')) --- else '0'; -load_sub_done_comb <= '1' when (load_sub_ctr = x"4") else '0'; - --- gk 30.03.10 -LOAD_SUB_DONE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 - load_sub_done <= '0'; - else - load_sub_done <= load_sub_done_comb; - end if; - end if; -end process LOAD_SUB_DONE_PROC; - ---****** --- EXTRACT EVENT HEADERS FROM SPLITFIFO ---****** - --- Counter for stripping the unneeded parts of the data stream, and saving the important parts -THE_REMOVE_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - rem_ctr <= (others => '0'); - elsif( (ce_rem_ctr = '1') ) then - rem_ctr <= rem_ctr + 1; - end if; - end if; -end process THE_REMOVE_CTR; - -remove_done_comb <= '1' when ( rem_ctr = x"8" ) else '0'; --( rem_ctr = x"6" ) else '0'; -- gk 29.03.10 two more for evt builder address - -THE_REM_DONE_SYNC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - remove_done <= '0'; - else - remove_done <= remove_done_comb; - end if; - end if; -end process THE_REM_DONE_SYNC; - --- gk 26.04.10 -TRIG_RANDOM_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (rst_regs = '1')) then - trig_random <= (others => '0'); - elsif ((sf_rd_en = '1') and (rem_ctr = x"4")) then - trig_random <= pc_data; - end if; - end if; -end process TRIG_RANDOM_PROC; - --- extract the trigger number from splitfifo data -THE_TRG_NR_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_trig_nr <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"6") ) then -- x"4" gk 29.03.10 - pc_trig_nr(7 downto 0) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"5") ) then -- x"3" gk 29.03.10 - pc_trig_nr(15 downto 8) <= pc_data; - end if; - end if; -end process THE_TRG_NR_PROC; - --- extract the subevent size from the splitfifo data, convert it from 32b to 8b units, --- and in case of padding needed increase it accordingly -THE_SUB_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_sub_size <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 - pc_sub_size(9 downto 2) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 - pc_sub_size(17 downto 10) <= pc_data; - -- gk 20.07.10 - -- gk 30.03.10 bug fixed in the way that is written below - -- gk 27.03.10 should be corrected by sending padding_needed signal to pc and take care of it when setting sub_size_to_save - elsif( (calc_pad = '1') and (padding_needed = '1') ) then - pc_sub_size <= pc_sub_size + x"4" + x"8"; -- BUG: SubEvtSize does NOT include 64bit padding!!! - elsif( (calc_pad = '1') and (padding_needed = '0') ) then - pc_sub_size <= pc_sub_size + x"8"; - end if; - end if; -end process THE_SUB_SIZE_PROC; - --- gk 06.10.10 -MESSAGE_SIZE_PROC : process(CLK) -begin - if rising_edge(CLK) then --- if (RESET = '1') then --- message_size <= (others => '0'); --- elsif ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) then --- message_size <= (others => '0'); --- elsif (pc_sos = '1') then --- message_size <= message_size + pc_sub_size; --- end if; - if (RESET = '1') then - message_size <= x"0000_0028"; - elsif ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) then - message_size <= x"0000_0028"; - elsif ((MULT_EVT_ENABLE_IN = '1') and (prev_bank_select /= bank_select) and (remove_done = '1')) then - message_size <= x"0000_0028"; - elsif (pc_sos = '1') then - message_size <= message_size + pc_sub_size + x"10"; -- gk 06.12.10 add 16B for subevent headers - end if; - end if; -end process MESSAGE_SIZE_PROC; - - --- gk 25.07.10 -ENDP_ADDRESS_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (rst_regs = '1') then - endpoint_addr <= (others => '0'); - endp_addr_lock <= '0'; - elsif( (rem_ctr = x"a") and (endp_addr_lock = '0') ) then - endpoint_addr(7 downto 0) <= pc_data; - endp_addr_lock <= '1'; - elsif( (sf_rd_en = '1') and (rem_ctr = x"9") ) then - endpoint_addr(15 downto 8) <= pc_data; - endp_addr_lock <= '0'; - end if; - end if; -end process ENDP_ADDRESS_PROC; - - - --- check for padding -THE_PADDING_NEEDED_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - padding_needed <= '0'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '1') ) then - padding_needed <= '1'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '0') ) then - padding_needed <= '0'; - end if; - end if; -end process THE_PADDING_NEEDED_PROC; - --- number of bytes to read from split fifo -THE_READ_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then --(rst_rem_ctr = '1') ) then - read_size <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 - read_size(9 downto 2) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 - read_size(17 downto 10) <= pc_data; - elsif( ((sf_rd_en = '1') and (data_phase = '1')) ) then - read_size <= read_size - 1; - -- gk 25.07.10 - elsif( ((sf_rd_en = '1') and (drop_event = '1')) ) then - read_size <= read_size - 1; - end if; - end if; -end process THE_READ_SIZE_PROC; - -read_done_comb <= '1' when (read_size < 3 ) else '0'; -- "2" - ---****** --- EVENTS COUNTERS ---****** - --- gk 25.07.10 -LOADED_EVT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loaded_events_ctr <= (others => '0'); - elsif (remove_done = '1') then - loaded_events_ctr <= loaded_events_ctr + x"1"; - end if; - end if; -end process LOADED_EVT_CTR_PROC; - ----- gk 25.07.10 ---CONSTR_EVENTS_CTR_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- constr_events_ctr <= (others => '0'); --- elsif (pc_eod = '1') then --- constr_events_ctr <= constr_events_ctr + x"1"; --- end if; --- end if; ---end process CONSTR_EVENTS_CTR_PROC; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Debug signals ---debug(0) <= sf_full; ---debug(1) <= sf_empty; ---debug(2) <= sf_afull; ---debug(3) <= sf_aempty; --- ---debug(7 downto 4) <= state2; --- ---debug(11 downto 8) <= state; --- ---dbg_bs_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(15 downto 12) <= (others => '0'); --- elsif ( (sf_rd_en = '1') and (rem_ctr = x"3") ) then --- debug(15 downto 12) <= bank_select; --- end if; --- end if; ---end process dbg_bs_proc; --- ---debug(16) <= config_done; ---debug(17) <= '0'; --remove_done; ---debug(18) <= read_done; ---debug(19) <= padding_needed; --- ---debug(20) <= load_sub_done; --- ---dbg_cts_inf_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(39 downto 32) <= (others => '0'); --- elsif ( save_addr = '1' ) then --- debug(39 downto 32) <= CTS_INFORMATION_IN; --- end if; --- end if; ---end process dbg_cts_inf_proc; --- ---debug(47 downto 40) <= (others => '0'); --- --- ---debug(63 downto 48) <= actual_message_size(15 downto 0); --- ---dbg_pc_sub_size_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(81 downto 64) <= (others => '0'); --- elsif (loadCurrentState = DECIDE) then --- debug(81 downto 64) <= pc_sub_size; --- end if; --- end if; ---end process dbg_pc_sub_size_proc; --- ---dbg_empty_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') or (rst_regs = '1') then --- debug(84 downto 82) <= (others => '0'); --- elsif (read_size = 2) then --- debug(82) <= sf_empty; --- elsif (read_size = 1) then --- debug(83) <= sf_empty; --- elsif (read_size = 0) then --- debug(84) <= sf_empty; --- end if; --- end if; ---end process dbg_empty_proc; --- ---debug(95 downto 85) <= (others => '0'); --- ---dbg_inc_ctr_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(127 downto 96) <= (others => '1'); --- elsif (saveCurrentState = SCLOSE) then --- debug(127 downto 96) <= inc_data_ctr; --- end if; --- end if; ---end process dbg_inc_ctr_proc; --- ---debug(143 downto 128) <= dropped_sm_events_ctr(15 downto 0); ---debug(159 downto 144) <= dropped_lr_events_ctr(15 downto 0); --- ---debug(175 downto 160) <= headers_invalid_ctr(15 downto 0); ---debug(191 downto 176) <= (others => '0'); --- ---dbg_cts_q_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- cts_len_q <= (others => '0'); --- cts_rnd_q <= (others => '0'); --- cts_trg_q <= (others => '0'); --- cts_addr_q <= (others => '0'); --- elsif (cts_len_saved = '1') then --- cts_len_q <= cts_len(16 downto 1); --- cts_addr_q <= cts_addr; --- cts_rnd_q <= cts_rnd; --- cts_trg_q <= cts_trg; --- end if; --- end if; ---end process dbg_cts_q_proc; --- ---debug(207 downto 192) <= cts_trg_q; ---debug(223 downto 208) <= cts_rnd_q; ---debug(239 downto 224) <= cts_addr_q; ---debug(255 downto 240) <= cts_len_q; ---debug(271 downto 256) <= first_run_trg; ---debug(287 downto 272) <= first_run_addr; --- ---debug(303 downto 288) <= saved_events_ctr; ---debug(319 downto 304) <= loaded_events_ctr; --- ---debug(335 downto 320) <= constr_events_ctr(15 downto 0); ---debug(351 downto 336) <= dropped_ctr(15 downto 0); --- ---debug(367 downto 352) <= invalid_hsize_ctr; ---debug(383 downto 368) <= (others => '0'); --- ---MONITOR_OUT(31 downto 0) <= constr_events_ctr; ---MONITOR_OUT(63 downto 32) <= dropped_ctr; ---MONITOR_OUT(95 downto 64) <= headers_invalid_ctr; ---MONITOR_OUT(127 downto 96) <= dropped_sm_events_ctr; ---MONITOR_OUT(159 downto 128) <= dropped_lr_events_ctr; ---MONITOR_OUT(163 downto 160) <= b"1111" when (sf_afull = '1') else b"0000"; ---MONITOR_OUT(191 downto 164) <= (others => '0'); ---MONITOR_OUT(223 downto 192) <= found_empty_evt_ctr; -- gk 01.10.10 - --- Outputs -FEE_READ_OUT <= fee_read; -CTS_ERROR_PATTERN_OUT <= cts_error_pattern; -CTS_DATA_OUT <= cts_data; -CTS_DATAREADY_OUT <= cts_dataready; -CTS_READOUT_FINISHED_OUT <= cts_readout_finished; -CTS_LENGTH_OUT <= cts_length; - ---PC_SOS_OUT <= pc_sos; ---PC_EOD_OUT <= '1' when ((MULT_EVT_ENABLE_IN = '0') and (pc_eod = '1')) --- or ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) --- -- gk 07.12.10 --- or ((MULT_EVT_ENABLE_IN = '1') and (prev_bank_select /= bank_select) and (remove_done = '1')) --- else '0'; -- gk 07.10.10 ---PC_DATA_OUT <= pc_data_q; ---PC_WR_EN_OUT <= pc_wr_en_qq; - -PC_TRIG_NR_OUT <= readout_ctr(23 downto 16) & pc_trig_nr & trig_random; - ---PC_SUB_SIZE_OUT <= b"0000_0000_0000_00" & pc_sub_size; ---PC_PADDING_OUT <= padding_needed; --- gk 07.10.10 ---PC_EOS_OUT <= '1' when (MULT_EVT_ENABLE_IN = '1') and (pc_eod = '1') else '0'; - -DEBUG_OUT <= debug; - --- SIMPLE SENDER STUFF - - - -PC_SOS_OUT <= '0'; --'1' when gen_current_state = WAIT_FOR_PC and PC_READY_IN = '1' else '0'; -PC_EOS_OUT <= '0'; -PC_EOD_OUT <= '0'; --'1' when gen_current_state = GENERATE_DATA and gen_data_ctr = SCTRL_DUMMY_SIZE_IN else '0'; -PC_DATA_OUT <= gen_data_ctr(7 downto 0); -PC_WR_EN_OUT <= '0'; --'1' when gen_current_state = GENERATE_DATA else '0'; -PC_SUB_SIZE_OUT <= x"0000" & SCTRL_DUMMY_SIZE_IN + x"1"; -PC_PADDING_OUT <= '0'; - -GEN_MACHINE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - gen_current_state <= IDLE; - else - gen_current_state <= gen_next_state; - end if; - end if; -end process GEN_MACHINE_PROC; - -GEN_MACHINE : process(gen_current_state, gen_data_ctr, event_waiting, DATA_GBE_ENABLE_IN, SCTRL_DUMMY_SIZE_IN, PC_READY_IN) -begin - case (gen_current_state) is - - when IDLE => - if (event_waiting = '1' and DATA_GBE_ENABLE_IN = '1') then - gen_next_state <= WAIT_FOR_PC; - else - gen_next_state <= IDLE; - end if; - - when WAIT_FOR_PC => - if (PC_READY_IN = '1') then - gen_next_state <= GENERATE_DATA; - else - gen_next_state <= WAIT_FOR_PC; - end if; - - when GENERATE_DATA => - if (gen_data_ctr = SCTRL_DUMMY_SIZE_IN) then - gen_next_state <= CLEANUP; - else - gen_next_state <= GENERATE_DATA; - end if; - - when CLEANUP => - gen_next_state <= IDLE; - - end case; -end process GEN_MACHINE; - -GEN_DATA_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (gen_current_state = IDLE) then - gen_data_ctr <= (others => '0'); - elsif (gen_current_state = GENERATE_DATA) then - gen_data_ctr <= gen_data_ctr + x"1"; - end if; - end if; -end process GEN_DATA_CTR_PROC; - -end architecture; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_gbe_ipu_interface.vhd b/gbe2_ecp3/trb_net16_gbe_ipu_interface.vhd deleted file mode 100644 index 3e77ecd..0000000 --- a/gbe2_ecp3/trb_net16_gbe_ipu_interface.vhd +++ /dev/null @@ -1,878 +0,0 @@ -LIBRARY ieee; - -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - - -entity trb_net16_gbe_ipu_interface is -port ( - CLK_IPU : in std_logic; - CLK_GBE : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- slow control interface - START_CONFIG_OUT : out std_logic; -- reconfigure MACs/IPs/ports/packet size - BANK_SELECT_OUT : out std_logic_vector(3 downto 0); -- configuration page address - CONFIG_DONE_IN : in std_logic; -- configuration finished - DATA_GBE_ENABLE_IN : in std_logic; -- IPU data is forwarded to GbE - DATA_IPU_ENABLE_IN : in std_logic; -- IPU data is forwarded to CTS / TRBnet - MULT_EVT_ENABLE_IN : in std_logic; - MAX_SUBEVENT_SIZE_IN : in std_logic_vector(15 downto 0); - MAX_QUEUE_SIZE_IN : in std_logic_vector(15 downto 0); - MAX_SUBS_IN_QUEUE_IN : in std_logic_vector(15 downto 0); - MAX_SINGLE_SUB_SIZE_IN : in std_logic_vector(15 downto 0); - READOUT_CTR_IN : in std_logic_vector(23 downto 0); -- gk 26.04.10 - READOUT_CTR_VALID_IN : in std_logic; -- gk 26.04.10 - -- PacketConstructor interface - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOS_OUT : out std_logic; - PC_EOQ_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_TRIGGER_TYPE_OUT : out std_logic_vector(3 downto 0); - MONITOR_OUT : out std_logic_vector(223 downto 0); - DEBUG_OUT : out std_logic_vector(383 downto 0) - ); -end entity trb_net16_gbe_ipu_interface; - -architecture RTL of trb_net16_gbe_ipu_interface is - -attribute syn_encoding : string; - -type saveStates is (IDLE, SAVE_EVT_ADDR, WAIT_FOR_DATA, SAVE_DATA, ADD_SUBSUB1, ADD_SUBSUB2, ADD_SUBSUB3, ADD_SUBSUB4, TERMINATE, CLOSE, FINISH_4_WORDS, CLEANUP); -signal save_current_state, save_next_state : saveStates; -attribute syn_encoding of save_current_state : signal is "onehot"; - -type loadStates is (IDLE, WAIT_FOR_SUBS, REMOVE, WAIT_ONE, WAIT_TWO, DECIDE, PREPARE_TO_LOAD_SUB, WAIT_FOR_LOAD, LOAD, CLOSE_PACKET, CLOSE_SUB, CLOSE_QUEUE, CLOSE_QUEUE_IMMEDIATELY); -signal load_current_state, load_next_state : loadStates; -attribute syn_encoding of load_current_state : signal is "onehot"; - -signal sf_data : std_Logic_vector(15 downto 0); -signal save_eod, sf_wr_en, sf_rd_en, sf_reset, sf_empty, sf_full, sf_afull, sf_eos : std_logic; -signal sf_q, pc_data : std_logic_vector(7 downto 0); - -signal cts_rnd, cts_trg : std_logic_vector(15 downto 0); -signal save_ctr : std_logic_vector(15 downto 0); - -signal saved_events_ctr, loaded_events_ctr, saved_events_ctr_gbe : std_logic_vector(7 downto 0); -signal loaded_bytes_ctr : std_Logic_vector(15 downto 0); - -signal trigger_random : std_logic_vector(7 downto 0); -signal trigger_number : std_logic_vector(15 downto 0); -signal subevent_size : std_logic_vector(17 downto 0); -signal trigger_type : std_logic_vector(3 downto 0); - -signal bank_select : std_logic_vector(3 downto 0); -signal readout_ctr : std_logic_vector(23 downto 0) := x"000000"; -signal pc_ready_q : std_logic; -signal sf_afull_q : std_logic; -signal sf_aempty : std_logic; -signal rec_state, load_state : std_logic_vector(3 downto 0); -signal queue_size : std_logic_vector(17 downto 0); -signal number_of_subs : std_logic_vector(15 downto 0); -signal size_check_ctr : integer range 0 to 7; -signal sf_data_q, sf_data_qq, sf_data_qqq, sf_data_qqqq, sf_data_qqqqq : std_logic_vector(15 downto 0); -signal sf_wr_q, sf_wr_lock : std_logic; -signal save_eod_q, save_eod_qq, save_eod_qqq, save_eod_qqqq, save_eod_qqqqq : std_logic; -signal too_large_dropped : std_logic_vector(31 downto 0); -signal previous_ttype, previous_bank : std_logic_vector(3 downto 0); - -begin - ---********* --- RECEIVING PART ---********* - -SAVE_MACHINE_PROC : process(RESET, CLK_IPU) -begin - if RESET = '1' then - save_current_state <= IDLE; - elsif rising_edge(CLK_IPU) then - save_current_state <= save_next_state; - end if; -end process SAVE_MACHINE_PROC; - -SAVE_MACHINE : process(save_current_state, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN, size_check_ctr) -begin - case (save_current_state) is - - when IDLE => - rec_state <= x"1"; - if (CTS_START_READOUT_IN = '1') then - save_next_state <= SAVE_EVT_ADDR; - else - save_next_state <= IDLE; - end if; - - when SAVE_EVT_ADDR => - rec_state <= x"2"; - save_next_state <= WAIT_FOR_DATA; - - when WAIT_FOR_DATA => - rec_state <= x"3"; - if (FEE_BUSY_IN = '1') then - save_next_state <= SAVE_DATA; - else - save_next_state <= WAIT_FOR_DATA; - end if; - - when SAVE_DATA => - rec_state <= x"4"; - if (FEE_BUSY_IN = '0') then - save_next_state <= TERMINATE; - else - save_next_state <= SAVE_DATA; - end if; - - when TERMINATE => - rec_state <= x"5"; - if (CTS_READ_IN = '1') then - save_next_state <= CLOSE; - else - save_next_state <= TERMINATE; - end if; - - when CLOSE => - rec_state <= x"6"; - if (CTS_START_READOUT_IN = '0') then - save_next_state <= ADD_SUBSUB1; - else - save_next_state <= CLOSE; - end if; - - when ADD_SUBSUB1 => - rec_state <= x"7"; - save_next_state <= ADD_SUBSUB2; - - when ADD_SUBSUB2 => - rec_state <= x"8"; - save_next_state <= ADD_SUBSUB3; - - when ADD_SUBSUB3 => - rec_state <= x"9"; - save_next_state <= ADD_SUBSUB4; - - when ADD_SUBSUB4 => - rec_state <= x"a"; - save_next_state <= FINISH_4_WORDS; - - when FINISH_4_WORDS => - rec_state <= x"b"; - if (size_check_ctr = 1) then - save_next_state <= CLEANUP; - else - save_next_state <= FINISH_4_WORDS; - end if; - - when CLEANUP => - rec_state <= x"c"; - save_next_state <= IDLE; - - end case; -end process SAVE_MACHINE; - -SF_WR_EN_PROC : process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - sf_afull_q <= sf_afull; - - if (sf_afull_q = '0' and save_current_state = SAVE_DATA and FEE_DATAREADY_IN = '1' and FEE_BUSY_IN = '1') then - sf_wr_en <= '1'; - elsif (save_current_state = SAVE_EVT_ADDR) then - sf_wr_en <= '1'; - elsif (save_current_state = ADD_SUBSUB1 or save_current_state = ADD_SUBSUB2 or save_current_state = ADD_SUBSUB3 or save_current_state = ADD_SUBSUB4) then - sf_wr_en <= '1'; - elsif (save_current_state = FINISH_4_WORDS) then - sf_wr_en <= '1'; - else - sf_wr_en <= '0'; - end if; - end if; -end process SF_WR_EN_PROC; - -SF_DATA_EOD_PROC : process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - case (save_current_state) is - - when SAVE_EVT_ADDR => - sf_data(3 downto 0) <= CTS_INFORMATION_IN(3 downto 0); - sf_data(7 downto 4) <= CTS_READOUT_TYPE_IN; - sf_data(15 downto 8) <= x"ab"; - save_eod <= '0'; - - when SAVE_DATA => - sf_data <= FEE_DATA_IN; - save_eod <= '0'; - - when ADD_SUBSUB1 => - sf_data <= x"0001"; - save_eod <= '0'; - - when ADD_SUBSUB2 => - sf_data <= x"5555"; - save_eod <= '0'; - - when ADD_SUBSUB3 => - sf_data <= FEE_STATUS_BITS_IN(31 downto 16); - save_eod <= '1'; - - when ADD_SUBSUB4 => - sf_data <= FEE_STATUS_BITS_IN(15 downto 0); - save_eod <= '0'; - - when others => sf_data <= (others => '0'); save_eod <= '0'; - - end case; - end if; -end process SF_DATA_EOD_PROC; - -process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - if (sf_wr_en = '1') then - sf_data_q <= sf_data; - sf_data_qq <= sf_data_q; - sf_data_qqq <= sf_data_qq; - sf_data_qqqq <= sf_data_qqq; - sf_data_qqqqq <= sf_data_qqqq; - - save_eod_q <= save_eod; - save_eod_qq <= save_eod_q; - save_eod_qqq <= save_eod_qq; - save_eod_qqqq <= save_eod_qqq; - save_eod_qqqqq <= save_eod_qqqq; - else - sf_data_q <= sf_data_q; - sf_data_qq <= sf_data_qq; - sf_data_qqq <= sf_data_qqq; - sf_data_qqqq <= sf_data_qqqq; - sf_data_qqqqq <= sf_data_qqqqq; - - save_eod_q <= save_eod_q; - save_eod_qq <= save_eod_qq; - save_eod_qqq <= save_eod_qqq; - save_eod_qqqq <= save_eod_qqqq; - save_eod_qqqqq <= save_eod_qqqq; - end if; - -sf_wr_q <= sf_wr_en and not sf_wr_lock; - - end if; -end process; - -process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - if (save_current_state = IDLE) then - size_check_ctr <= 0; - elsif (save_current_state = SAVE_DATA and sf_wr_en = '1' and size_check_ctr /= 4) then - size_check_ctr <= size_check_ctr + 1; - elsif (save_current_state = FINISH_4_WORDS and size_check_ctr /= 0) then - size_check_ctr <= size_check_ctr - 1; - else - size_check_ctr <= size_check_ctr; - end if; - - if (save_current_state = IDLE) then - sf_wr_lock <= '1'; - elsif (save_current_state = SAVE_DATA and size_check_ctr = 2 and sf_wr_en = '1' and (sf_data & "00") < ("00" & MAX_SUBEVENT_SIZE_IN)) then -- condition to ALLOW an event to be passed forward - sf_wr_lock <= '0'; - else - sf_wr_lock <= sf_wr_lock; - end if; - - end if; -end process; - -process(RESET, CLK_IPU) -begin - if (RESET = '1') then - too_large_dropped <= (others => '0'); - elsif rising_edge(CLK_IPU) then - if (save_current_state = SAVE_DATA and size_check_ctr = 2 and sf_wr_en = '1' and (sf_data & "00") >= ("00" & MAX_SUBEVENT_SIZE_IN)) then - too_large_dropped <= too_large_dropped + x"1"; - else - too_large_dropped <= too_large_dropped; - end if; - end if; -end process; - - -SAVED_EVENTS_CTR_PROC : process(RESET, CLK_IPU) -begin - if (RESET = '1') then - saved_events_ctr <= (others => '0'); - elsif rising_edge(CLK_IPU) then - if (save_current_state = ADD_SUBSUB4 and sf_wr_lock = '0') then - saved_events_ctr <= saved_events_ctr + x"1"; - else - saved_events_ctr <= saved_events_ctr; - end if; - end if; -end process SAVED_EVENTS_CTR_PROC; - -CTS_DATAREADY_PROC : process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - if (save_current_state = SAVE_DATA and FEE_BUSY_IN = '0') then - CTS_DATAREADY_OUT <= '1'; - elsif (save_current_state = TERMINATE) then - CTS_DATAREADY_OUT <= '1'; - else - CTS_DATAREADY_OUT <= '0'; - end if; - end if; -end process CTS_DATAREADY_PROC; - -CTS_READOUT_FINISHED_PROC : process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - if (save_current_state = CLOSE) then - CTS_READOUT_FINISHED_OUT <= '1'; - else - CTS_READOUT_FINISHED_OUT <= '0'; - end if; - end if; -end process CTS_READOUT_FINISHED_PROC; - -CTS_LENGTH_OUT <= (others => '0'); -CTS_ERROR_PATTERN_OUT <= (others => '0'); - -CTS_DATA_PROC : process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - CTS_DATA_OUT <= "0001" & cts_rnd(11 downto 0) & cts_trg; - end if; -end process CTS_DATA_PROC; - -CTS_RND_TRG_PROC : process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - if (save_current_state = SAVE_DATA and save_ctr = x"0000") then - cts_rnd <= sf_data; - cts_trg <= cts_trg; - elsif (save_current_state = SAVE_DATA and save_ctr = x"0001") then - cts_rnd <= cts_rnd; - cts_trg <= sf_data; - else - cts_rnd <= cts_rnd; - cts_trg <= cts_trg; - end if; - end if; -end process CTS_RND_TRG_PROC; - -SAVE_CTR_PROC : process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - if (save_current_state = IDLE) then - save_ctr <= (others => '0'); - elsif (save_current_state = SAVE_DATA and sf_wr_en = '1') then - save_ctr <= save_ctr + x"1"; - else - save_ctr <= save_ctr; - end if; - end if; -end process SAVE_CTR_PROC; - -FEE_READ_PROC : process(CLK_IPU) -begin - if rising_edge(CLK_IPU) then - if (sf_afull = '0') then - if (save_current_state = IDLE or save_current_state = SAVE_EVT_ADDR or save_current_state = WAIT_FOR_DATA or save_current_state = SAVE_DATA) then - FEE_READ_OUT <= '1'; - else - FEE_READ_OUT <= '0'; - end if; - else - FEE_READ_OUT <= '0'; - end if; - end if; -end process FEE_READ_PROC; - - -THE_SPLIT_FIFO: fifo_32kx16x8_mb2 --fifo_16kx18x9 -port map( - -- Byte swapping for correct byte order on readout side of FIFO - Data(7 downto 0) => sf_data_qqqqq(15 downto 8), - Data(8) => '0', - Data(16 downto 9) => sf_data_qqqqq(7 downto 0), - Data(17) => save_eod_qqqqq, - WrClock => CLK_IPU, - RdClock => CLK_GBE, - WrEn => sf_wr_q, -- sf_wr_en - RdEn => sf_rd_en, - Reset => sf_reset, - RPReset => sf_reset, - AmEmptyThresh => b"0000_0000_0000_0010", --b"0000_0000_0000_0010", -- one byte ahead - AmFullThresh => b"111_1111_1110_1111", -- 0x7fef = 32751 -- b"001_0011_1000_1000" - Q(7 downto 0) => sf_q, - Q(8) => sf_eos, - --WCNT => open, - --RCNT => open, - Empty => sf_empty, - AlmostEmpty => sf_aempty, - Full => sf_full, -- WARNING, JUST FOR DEBUG - AlmostFull => sf_afull -); - -sf_reset <= RESET; - ---********* --- LOADING PART ---********* - -PC_DATA_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - pc_data <= sf_q; - end if; -end process PC_DATA_PROC; - -LOAD_MACHINE_PROC : process(RESET, CLK_GBE) -begin - if RESET = '1' then - load_current_state <= IDLE; - elsif rising_edge(CLK_GBE) then - load_current_state <= load_next_state; - end if; -end process LOAD_MACHINE_PROC; - -LOAD_MACHINE : process(load_current_state, saved_events_ctr_gbe, loaded_events_ctr, loaded_bytes_ctr, PC_READY_IN, sf_eos, queue_size, number_of_subs, - subevent_size, MAX_QUEUE_SIZE_IN, MAX_SUBS_IN_QUEUE_IN, MAX_SINGLE_SUB_SIZE_IN, previous_bank, previous_ttype, trigger_type, - bank_select, MULT_EVT_ENABLE_IN -) -begin - case (load_current_state) is - - when IDLE => - load_state <= x"1"; - load_next_state <= WAIT_FOR_SUBS; - - when WAIT_FOR_SUBS => - load_state <= x"2"; - if (saved_events_ctr_gbe /= loaded_events_ctr) then - load_next_state <= REMOVE; - else - load_next_state <= WAIT_FOR_SUBS; - end if; - - when REMOVE => - load_state <= x"3"; - if (loaded_bytes_ctr = x"0008") then - load_next_state <= WAIT_ONE; - else - load_next_state <= REMOVE; - end if; - - when WAIT_ONE => - load_state <= x"4"; - load_next_state <= WAIT_TWO; - - when WAIT_TWO => - load_state <= x"4"; - load_next_state <= DECIDE; - - --TODO: all queue split conditions here and also in the size process - when DECIDE => - load_state <= x"5"; - if (queue_size > ("00" & MAX_QUEUE_SIZE_IN)) then -- max udp packet exceeded - load_next_state <= CLOSE_QUEUE; - elsif (MULT_EVT_ENABLE_IN = '1' and number_of_subs = MAX_SUBS_IN_QUEUE_IN) then - load_next_state <= CLOSE_QUEUE; - elsif (MULT_EVT_ENABLE_IN = '0' and number_of_subs = 1) then - load_next_state <= CLOSE_QUEUE; - elsif (trigger_type /= previous_ttype and number_of_subs /= x"0000") then - load_next_state <= CLOSE_QUEUE; - elsif (bank_select /= previous_bank and number_of_subs /= x"0000") then - load_next_state <= CLOSE_QUEUE; - else - load_next_state <= PREPARE_TO_LOAD_SUB; - end if; - - when PREPARE_TO_LOAD_SUB => - load_state <= x"6"; - load_next_state <= WAIT_FOR_LOAD; - - when WAIT_FOR_LOAD => - load_state <= x"7"; - if (PC_READY_IN = '1') then - load_next_state <= LOAD; - else - load_next_state <= WAIT_FOR_LOAD; - end if; - - when LOAD => - load_state <= x"8"; - if (sf_eos = '1') then - load_next_state <= CLOSE_SUB; - else - load_next_state <= LOAD; - end if; - - when CLOSE_SUB => - load_state <= x"9"; - if (subevent_size > ("00" & MAX_SINGLE_SUB_SIZE_IN) and queue_size = (subevent_size + x"10" + x"8" + x"4")) then - load_next_state <= CLOSE_QUEUE_IMMEDIATELY; - else - load_next_state <= WAIT_FOR_SUBS; - end if; - - when CLOSE_QUEUE => - load_state <= x"a"; - load_next_state <= PREPARE_TO_LOAD_SUB; - - when CLOSE_QUEUE_IMMEDIATELY => - load_state <= x"b"; - load_next_state <= WAIT_FOR_SUBS; - - - when others => load_next_state <= IDLE; - - end case; -end process LOAD_MACHINE; - -saved_ctr_sync : signal_sync -generic map( - WIDTH => 8, - DEPTH => 2 -) -port map( - RESET => RESET, - CLK0 => CLK_GBE, - CLK1 => CLK_GBE, - D_IN => saved_events_ctr, - D_OUT => saved_events_ctr_gbe -); - - ---TODO: all queue split conditions here --- the queue size counter used only for closing current queue --- sums up all subevent sizes with their headers and stuff -process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = IDLE) then - queue_size <= (others => '0'); - elsif (load_current_state = CLOSE_QUEUE_IMMEDIATELY) then - queue_size <= (others => '0'); - elsif (load_current_state = WAIT_TWO) then - queue_size <= queue_size + subevent_size + x"10" + x"8" + x"4"; - elsif (load_current_state = DECIDE) then - if (queue_size > ("00" & MAX_QUEUE_SIZE_IN)) then - queue_size <= subevent_size + x"10" + x"8" + x"4"; - elsif (MULT_EVT_ENABLE_IN = '1' and number_of_subs = MAX_SUBS_IN_QUEUE_IN) then - queue_size <= subevent_size + x"10" + x"8" + x"4"; - elsif (MULT_EVT_ENABLE_IN = '0' and number_of_subs = 1) then - queue_size <= subevent_size + x"10" + x"8" + x"4"; - elsif (trigger_type /= previous_ttype and number_of_subs /= x"0000") then - queue_size <= subevent_size + x"10" + x"8" + x"4"; - elsif (bank_select /= previous_bank and number_of_subs /= x"0000") then - queue_size <= subevent_size + x"10" + x"8" + x"4"; - else - queue_size <= queue_size; - end if; - else - queue_size <= queue_size; - end if; - end if; -end process; - -process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = IDLE or load_current_state = CLOSE_QUEUE or load_current_state = CLOSE_QUEUE_IMMEDIATELY) then - number_of_subs <= (others => '0'); - elsif (load_current_state = PREPARE_TO_LOAD_SUB) then - number_of_subs <= number_of_subs + x"1"; - else - number_of_subs <= number_of_subs; - end if; - end if; -end process; - - -SF_RD_EN_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (PC_READY_IN = '1') then - if (load_current_state = REMOVE) then - sf_rd_en <= '1'; - elsif (load_current_state = LOAD) then - sf_rd_en <= '1'; - else - sf_rd_en <= '0'; - end if; - else - sf_rd_en <= '0'; - end if; - end if; -end process SF_RD_EN_PROC; - ---***** --- information extraction - -process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = IDLE) then - previous_bank <= x"0"; - previous_ttype <= x"0"; - elsif (load_current_state = CLOSE_QUEUE or load_current_state = CLOSE_QUEUE_IMMEDIATELY or load_current_state = CLOSE_SUB) then - previous_bank <= bank_select; - previous_ttype <= trigger_type; - else - previous_bank <= previous_bank; - previous_ttype <= previous_ttype; - end if; - end if; -end process; - -TRIGGER_RANDOM_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = IDLE) then - trigger_random <= (others => '0'); - elsif (load_current_state = REMOVE and sf_rd_en = '1' and loaded_bytes_ctr = x"0005") then - trigger_random <= pc_data; - else - trigger_random <= trigger_random; - end if; - end if; -end process TRIGGER_RANDOM_PROC; - -TRIGGER_NUMBER_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = IDLE) then - trigger_number <= (others => '0'); - elsif (load_current_state = REMOVE and sf_rd_en = '1' and loaded_bytes_ctr = x"0007") then - trigger_number(7 downto 0) <= pc_data; - elsif (load_current_state = REMOVE and sf_rd_en = '1' and loaded_bytes_ctr = x"0006") then - trigger_number(15 downto 8) <= pc_data; - else - trigger_number <= trigger_number; - end if; - end if; -end process TRIGGER_NUMBER_PROC; - -SUBEVENT_SIZE_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = IDLE) then - subevent_size <= (others => '0'); - elsif (load_current_state = WAIT_ONE and sf_rd_en = '1' and loaded_bytes_ctr = x"0009") then - subevent_size(9 downto 2) <= pc_data; - elsif (load_current_state = REMOVE and sf_rd_en = '1' and loaded_bytes_ctr = x"0008") then - subevent_size(17 downto 10) <= pc_data; - else - subevent_size <= subevent_size; - end if; - end if; -end process SUBEVENT_SIZE_PROC; - -TRIGGER_TYPE_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = IDLE) then - trigger_type <= x"0"; - elsif (load_current_state = REMOVE and sf_rd_en = '1' and loaded_bytes_ctr = x"0003") then - trigger_type <= pc_data(7 downto 4); - else - trigger_type <= trigger_type; - end if; - end if; -end process TRIGGER_TYPE_PROC; - --- end of extraction ---***** - ---***** --- counters - -LOADED_EVENTS_CTR_PROC : process(RESET, CLK_GBE) -begin - if (RESET = '1') then - loaded_events_ctr <= (others => '0'); - elsif rising_edge(CLK_GBE) then - if (load_current_state = CLOSE_SUB) then - loaded_events_ctr <= loaded_events_ctr + x"1"; - else - loaded_events_ctr <= loaded_events_ctr; - end if; - end if; -end process LOADED_EVENTS_CTR_PROC; - -LOADED_BYTES_CTR_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = WAIT_FOR_SUBS) then - loaded_bytes_ctr <= (others => '0'); - elsif (sf_rd_en = '1') then - if (load_current_state = REMOVE) then - loaded_bytes_ctr <= loaded_bytes_ctr + x"1"; - else - loaded_bytes_ctr <= loaded_bytes_ctr; - end if; - else - loaded_bytes_ctr <= loaded_bytes_ctr; - end if; - end if; -end process LOADED_BYTES_CTR_PROC; - -READOUT_CTR_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (READOUT_CTR_VALID_IN = '1') then - readout_ctr <= READOUT_CTR_IN; - elsif (load_current_state = DECIDE) then - readout_ctr <= readout_ctr + x"1"; - else - readout_ctr <= readout_ctr; - end if; - end if; -end process READOUT_CTR_PROC; - --- end of counters ---***** - ---***** --- event builder selection - - -BANK_SELECT_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = IDLE) then - bank_select <= x"0"; - elsif (load_current_state = REMOVE and sf_rd_en = '1' and loaded_bytes_ctr = x"0003") then - bank_select <= pc_data(3 downto 0); - else - bank_select <= bank_select; - end if; - end if; -end process BANK_SELECT_PROC; - -BANK_SELECT_OUT <= bank_select; - -START_CONFIG_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = REMOVE and sf_rd_en = '1' and loaded_bytes_ctr = x"0003") then - START_CONFIG_OUT <= '1'; - elsif (CONFIG_DONE_IN = '1') then - START_CONFIG_OUT <= '0'; - else - START_CONFIG_OUT <= '0'; - end if; - end if; -end process START_CONFIG_PROC; - --- end of event builder selection ---***** - - -PC_WR_EN_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - pc_ready_q <= PC_READY_IN; - if (pc_ready_q = '1') then - if (load_current_state = LOAD) then - PC_WR_EN_OUT <= '1'; - else - PC_WR_EN_OUT <= '0'; - end if; - else - PC_WR_EN_OUT <= '0'; - end if; - end if; -end process PC_WR_EN_PROC; - -PC_SOS_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = PREPARE_TO_LOAD_SUB) then - PC_SOS_OUT <= '1'; - else - PC_SOS_OUT <= '0'; - end if; - end if; -end process PC_SOS_PROC; - -PC_EOD_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - PC_EOS_OUT <= sf_eos; - end if; -end process PC_EOD_PROC; - -PC_EOQ_PROC : process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - if (load_current_state = CLOSE_QUEUE or load_current_state = CLOSE_QUEUE_IMMEDIATELY) then - PC_EOQ_OUT <= '1'; - else - PC_EOQ_OUT <= '0'; - end if; - end if; -end process PC_EOQ_PROC; - ---******* --- outputs - -PC_DATA_OUT <= pc_data; - -PC_SUB_SIZE_OUT <= b"0000_0000_0000_00" & subevent_size; - -PC_TRIG_NR_OUT <= readout_ctr(23 downto 16) & trigger_number & trigger_random; - -PC_TRIGGER_TYPE_OUT <= trigger_type; - - -process(CLK_GBE) -begin - if rising_edge(CLK_GBE) then - DEBUG_OUT(3 downto 0) <= rec_state; - DEBUG_OUT(7 downto 4) <= load_state; - DEBUG_OUT(8) <= sf_empty; - DEBUG_OUT(9) <= sf_aempty; - DEBUG_OUT(10) <= sf_full; - DEBUG_OUT(11) <= sf_afull; - end if; -end process; - -DEBUG_OUT(383 downto 12) <= (others => '0'); -MONITOR_OUT(31 downto 0) <= too_large_dropped; -MONITOR_OUT(223 downto 32) <= (others => '0'); - -end architecture RTL; diff --git a/gbe2_ecp3/trb_net16_gbe_mac_control.vhd b/gbe2_ecp3/trb_net16_gbe_mac_control.vhd deleted file mode 100644 index 5a9a607..0000000 --- a/gbe2_ecp3/trb_net16_gbe_mac_control.vhd +++ /dev/null @@ -1,223 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - ---******** --- configures TriSpeed MAC and signalizes when it's ready --- used also to filter out frames with different addresses --- after main configuration (by setting TsMAC filtering accordingly) - - - -entity trb_net16_gbe_mac_control is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- signals to/from main controller - MC_TSMAC_READY_OUT : out std_logic; - MC_RECONF_IN : in std_logic; - MC_GBE_EN_IN : in std_logic; - MC_RX_DISCARD_FCS : in std_logic; - MC_PROMISC_IN : in std_logic; - MC_MAC_ADDR_IN : in std_logic_vector(47 downto 0); - --- signal to/from Host interface of TriSpeed MAC - TSM_HADDR_OUT : out std_logic_vector(7 downto 0); - TSM_HDATA_OUT : out std_logic_vector(7 downto 0); - TSM_HCS_N_OUT : out std_logic; - TSM_HWRITE_N_OUT : out std_logic; - TSM_HREAD_N_OUT : out std_logic; - TSM_HREADY_N_IN : in std_logic; - TSM_HDATA_EN_N_IN : in std_logic; - - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_mac_control; - - -architecture trb_net16_gbe_mac_control of trb_net16_gbe_mac_control is - -attribute syn_encoding : string; - -type mac_conf_states is (IDLE, DISABLE, WRITE_TX_RX_CTRL1, WRITE_TX_RX_CTRL2, ENABLE, READY); -signal mac_conf_current_state, mac_conf_next_state : mac_conf_states; -attribute syn_encoding of mac_conf_current_state : signal is "onehot"; - -signal tsmac_ready : std_logic; -signal reg_mode : std_logic_vector(7 downto 0); -signal reg_tx_rx_ctrl1, reg_tx_rx_ctrl2 : std_logic_vector(7 downto 0); -signal reg_max_pkt_size : std_logic_vector(15 downto 0); -signal reg_ipg : std_logic_vector(15 downto 0); -signal reg_mac0 : std_logic_vector(15 downto 0); -signal reg_mac1 : std_logic_vector(15 downto 0); -signal reg_mac2 : std_logic_vector(15 downto 0); - -signal haddr : std_logic_vector(7 downto 0); -signal hcs_n : std_logic; -signal hwrite_n : std_logic; -signal hdata_pointer : integer range 0 to 1; -signal state : std_logic_vector(3 downto 0); -signal hready_n_q : std_logic; - -begin - -reg_mode(7 downto 4) <= x"0"; -reg_mode(3) <= '1'; -- tx_en -reg_mode(2) <= '1'; -- rx_en -reg_mode(1) <= '1'; -- flow_control en -reg_mode(0) <= MC_GBE_EN_IN; -- gbe en - -reg_tx_rx_ctrl2(7 downto 1) <= (others => '0'); -- reserved -reg_tx_rx_ctrl2(0) <= '1'; -- receive short -reg_tx_rx_ctrl1(7) <= '1'; -- receive broadcast -reg_tx_rx_ctrl1(6) <= '1'; -- drop control -reg_tx_rx_ctrl1(5) <= '0'; -- half_duplex en -reg_tx_rx_ctrl1(4) <= '1'; -- receive multicast -reg_tx_rx_ctrl1(3) <= '1'; -- receive pause -reg_tx_rx_ctrl1(2) <= '0'; -- transmit disable FCS -reg_tx_rx_ctrl1(1) <= '1'; -- receive discard FCS and padding -reg_tx_rx_ctrl1(0) <= MC_PROMISC_IN; -- promiscuous mode - - -MAC_CONF_MACHINE_PROC : process(CLK) -begin - if RESET = '1' then - mac_conf_current_state <= IDLE; - elsif rising_edge(CLK) then --- if (RESET = '1') then --- mac_conf_current_state <= IDLE; --- else - mac_conf_current_state <= mac_conf_next_state; --- end if; - end if; -end process MAC_CONF_MACHINE_PROC; - -MAC_CONF_MACHINE : process(mac_conf_current_state, MC_RECONF_IN, TSM_HREADY_N_IN) -begin - - case mac_conf_current_state is - - when IDLE => - if (MC_RECONF_IN = '1') then - mac_conf_next_state <= DISABLE; - else - mac_conf_next_state <= IDLE; - end if; - - when DISABLE => - if (TSM_HREADY_N_IN = '0') then - mac_conf_next_state <= WRITE_TX_RX_CTRL1; - else - mac_conf_next_state <= DISABLE; - end if; - - when WRITE_TX_RX_CTRL1 => - if (TSM_HREADY_N_IN = '0') then - mac_conf_next_state <= WRITE_TX_RX_CTRL2; - else - mac_conf_next_state <= WRITE_TX_RX_CTRL1; - end if; - - when WRITE_TX_RX_CTRL2 => - if (TSM_HREADY_N_IN = '0') then - mac_conf_next_state <= ENABLE; - else - mac_conf_next_state <= WRITE_TX_RX_CTRL2; - end if; - - when ENABLE => - if (TSM_HREADY_N_IN = '0') then - mac_conf_next_state <= READY; - else - mac_conf_next_state <= ENABLE; - end if; - - when READY => - if (MC_RECONF_IN = '1') then - mac_conf_next_state <= DISABLE; - else - mac_conf_next_state <= READY; - end if; - - end case; - -end process MAC_CONF_MACHINE; - -HADDR_PROC : process(CLK) -begin - if rising_edge(CLK) then - case mac_conf_current_state is - when IDLE => - TSM_HADDR_OUT <= x"00"; - when DISABLE => - TSM_HADDR_OUT <= x"00"; - when WRITE_TX_RX_CTRL1 => - TSM_HADDR_OUT <= x"02"; - when WRITE_TX_RX_CTRL2 => - TSM_HADDR_OUT <= x"03"; - when ENABLE => - TSM_HADDR_OUT <= x"00"; - when READY => - TSM_HADDR_OUT <= x"00"; - end case; - end if; -end process HADDR_PROC; - -HDATA_PROC : process(CLK) -begin - if rising_edge(CLK) then - case mac_conf_current_state is - when IDLE => - TSM_HDATA_OUT <= x"00"; - when DISABLE => - TSM_HDATA_OUT <= x"00"; - when WRITE_TX_RX_CTRL1 => - TSM_HDATA_OUT <= reg_tx_rx_ctrl1; - when WRITE_TX_RX_CTRL2 => - TSM_HDATA_OUT <= reg_tx_rx_ctrl2; - when ENABLE => - TSM_HDATA_OUT <= reg_mode; - when READY => - TSM_HDATA_OUT <= x"00"; - end case; - end if; -end process HDATA_PROC; - -process(CLK) -begin - if rising_edge(CLK) then - if (mac_conf_current_state = IDLE or mac_conf_current_state = READY) then - hcs_n <= '1'; - hwrite_n <= '1'; - elsif (TSM_HREADY_N_IN = '1') then - hcs_n <= '0'; - hwrite_n <= '0'; - else - hcs_n <= '1'; - hwrite_n <= '1'; - end if; - - if (mac_conf_current_state = READY) then - tsmac_ready <= '1'; - else - tsmac_ready <= '0'; - end if; - end if; -end process; - -TSM_HCS_N_OUT <= hcs_n; -TSM_HWRITE_N_OUT <= hwrite_n; -TSM_HREAD_N_OUT <= '1'; -MC_TSMAC_READY_OUT <= tsmac_ready; - - -end trb_net16_gbe_mac_control; - - diff --git a/gbe2_ecp3/trb_net16_gbe_main_control.vhd b/gbe2_ecp3/trb_net16_gbe_main_control.vhd deleted file mode 100644 index c430dc8..0000000 --- a/gbe2_ecp3/trb_net16_gbe_main_control.vhd +++ /dev/null @@ -1,957 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - ---******** --- controls the work of the whole gbe in both directions --- multiplexes the output between data stream and output slow control packets based on priority --- reacts to incoming gbe slow control commands --- - - -entity trb_net16_gbe_main_control is - generic( - RX_PATH_ENABLE : integer range 0 to 1 := 1; - DO_SIMULATION : integer range 0 to 1 := 0 - ); -port ( - CLK : in std_logic; -- system clock - CLK_125 : in std_logic; - RESET : in std_logic; - - MC_LINK_OK_OUT : out std_logic; - MC_RESET_LINK_IN : in std_logic; - MC_IDLE_TOO_LONG_OUT : out std_logic; - MC_DHCP_DONE_OUT : out std_logic; - --- signals to/from receive controller - RC_FRAME_WAITING_IN : in std_logic; - RC_LOADING_DONE_OUT : out std_logic; - RC_DATA_IN : in std_logic_vector(8 downto 0); - RC_RD_EN_OUT : out std_logic; - RC_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - RC_FRAME_PROTO_IN : in std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - - RC_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - RC_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - RC_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - RC_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - RC_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - RC_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - --- signals to/from transmit controller - TC_TRANSMIT_CTRL_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_RD_EN_IN : in std_logic; - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - TC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_TRANSMIT_DONE_IN : in std_logic; - --- signals to/from sgmii/gbe pcs_an_complete - PCS_AN_COMPLETE_IN : in std_logic; - --- signals to/from hub - MC_UNIQUE_ID_IN : in std_logic_vector(63 downto 0); - - GSC_CLK_IN : in std_logic; - GSC_INIT_DATAREADY_OUT : out std_logic; - GSC_INIT_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_INIT_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_INIT_READ_IN : in std_logic; - GSC_REPLY_DATAREADY_IN : in std_logic; - GSC_REPLY_DATA_IN : in std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_IN : in std_logic_vector(2 downto 0); - GSC_REPLY_READ_OUT : out std_logic; - GSC_BUSY_IN : in std_logic; - - -- signal for data readout - -- CTS interface - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; - CTS_READ_IN : in std_logic; - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - FEE_BUSY_IN : in std_logic; - -- ip configurator - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - - CFG_GBE_ENABLE_IN : in std_logic; - CFG_IPU_ENABLE_IN : in std_logic; - CFG_MULT_ENABLE_IN : in std_logic; - CFG_SUBEVENT_ID_IN : in std_logic_vector(31 downto 0); - CFG_SUBEVENT_DEC_IN : in std_logic_vector(31 downto 0); - CFG_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); - CFG_READOUT_CTR_IN : in std_logic_vector(23 downto 0); - CFG_READOUT_CTR_VALID_IN : in std_logic; - CFG_INSERT_TTYPE_IN : in std_logic; - CFG_MAX_SUB_IN : in std_logic_vector(15 downto 0); - CFG_MAX_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SUBS_IN_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SINGLE_SUB_IN : in std_logic_vector(15 downto 0); - - CFG_ADDITIONAL_HDR_IN : in std_logic; - - MAKE_RESET_OUT : out std_logic; - --- signal to/from Host interface of TriSpeed MAC - TSM_HADDR_OUT : out std_logic_vector(7 downto 0); - TSM_HDATA_OUT : out std_logic_vector(7 downto 0); - TSM_HCS_N_OUT : out std_logic; - TSM_HWRITE_N_OUT : out std_logic; - TSM_HREAD_N_OUT : out std_logic; - TSM_HREADY_N_IN : in std_logic; - TSM_HDATA_EN_N_IN : in std_logic; - TSM_RX_STAT_VEC_IN : in std_logic_vector(31 downto 0); - TSM_RX_STAT_EN_IN : in std_logic; - - - MONITOR_SELECT_REC_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_REC_BYTES_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_IN_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_OUT_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_GEN_DBG_OUT : out std_logic_vector(2*c_MAX_PROTOCOLS * 32 - 1 downto 0); - - DATA_HIST_OUT : out hist_array; - SCTRL_HIST_OUT : out hist_array -); -end trb_net16_gbe_main_control; - - -architecture trb_net16_gbe_main_control of trb_net16_gbe_main_control is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_main_control : architecture is "GBE_MAIN_group"; - -attribute syn_encoding : string; - -signal tsm_ready : std_logic; -signal tsm_reconf : std_logic; -signal tsm_haddr : std_logic_vector(7 downto 0); -signal tsm_hdata : std_logic_vector(7 downto 0); -signal tsm_hcs_n : std_logic; -signal tsm_hwrite_n : std_logic; -signal tsm_hread_n : std_logic; - -type link_states is (INACTIVE, ACTIVE, ENABLE_MAC, TIMEOUT, FINALIZE, WAIT_FOR_BOOT, GET_ADDRESS); -signal link_current_state, link_next_state : link_states; -attribute syn_encoding of link_current_state : signal is "onehot"; - -signal link_down_ctr : std_logic_vector(15 downto 0); -signal link_down_ctr_lock : std_logic; -signal link_ok : std_logic; -signal link_ok_timeout_ctr : std_logic_vector(15 downto 0); - -signal mac_control_debug : std_logic_vector(63 downto 0); - -type flow_states is (IDLE, TRANSMIT_CTRL, WAIT_FOR_FC, CLEANUP); -signal flow_current_state, flow_next_state : flow_states; -attribute syn_encoding of flow_current_state : signal is "onehot"; - -signal state : std_logic_vector(3 downto 0); -signal link_state : std_logic_vector(3 downto 0); -signal redirect_state : std_logic_vector(3 downto 0); - -signal ps_wr_en : std_logic; -signal ps_response_ready : std_logic; -signal ps_busy : std_logic_vector(c_MAX_PROTOCOLS -1 downto 0); -signal rc_rd_en : std_logic; -signal first_byte : std_logic; -signal first_byte_q : std_logic; -signal first_byte_qq : std_logic; -signal proto_select : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal loaded_bytes_ctr : std_Logic_vector(15 downto 0); - -signal dhcp_start : std_logic; -signal dhcp_done : std_logic; -signal wait_ctr : std_logic_vector(31 downto 0); - -signal rc_data_local : std_logic_vector(8 downto 0); - --- debug -signal frame_waiting_ctr : std_logic_vector(15 downto 0); -signal ps_busy_q : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal rc_frame_proto_q : std_Logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - -type redirect_states is (IDLE, CHECK_TYPE, DROP, CHECK_BUSY, LOAD, BUSY, WAIT_ONE, FINISH, CLEANUP); -signal redirect_current_state, redirect_next_state : redirect_states; -attribute syn_encoding of redirect_current_state : signal is "onehot"; - -signal disable_redirect, ps_wr_en_q, ps_wr_en_qq : std_logic; - -type stats_states is (IDLE, LOAD_VECTOR, CLEANUP); -signal stats_current_state, stats_next_state : stats_states; - -signal stat_rdy, stat_ack : std_logic; -signal rx_stat_en_q : std_logic; -signal rx_stat_vec_q : std_logic_vector(31 downto 0); - -type array_of_ctrs is array(15 downto 0) of std_logic_vector(31 downto 0); -signal arr : array_of_ctrs; -signal stats_ctr : integer range 0 to 15; -signal stat_data : std_logic_vector(31 downto 0); -signal stat_addr : std_logic_vector(7 downto 0); - -signal unique_id : std_logic_vector(63 downto 0); - - -signal nothing_sent : std_logic; -signal nothing_sent_ctr : std_logic_vector(31 downto 0); - -signal dbg_ps : std_Logic_vector(63 downto 0); - -signal tc_data : std_logic_vector(8 downto 0); - -attribute syn_preserve : boolean; -attribute syn_keep : boolean; -attribute syn_keep of unique_id, nothing_sent, link_state, state, redirect_state, dhcp_done : signal is true; -attribute syn_preserve of unique_id, nothing_sent, link_state, state, redirect_state, dhcp_done : signal is true; - -signal mc_busy : std_logic; - -begin - -unique_id <= MC_UNIQUE_ID_IN; - -protocol_selector : trb_net16_gbe_protocol_selector -generic map( - RX_PATH_ENABLE => RX_PATH_ENABLE, - DO_SIMULATION => DO_SIMULATION - ) -port map( - CLK => CLK, - RESET => RESET, - RESET_FOR_DHCP => MC_RESET_LINK_IN, - - PS_DATA_IN => rc_data_local, -- RC_DATA_IN, - PS_WR_EN_IN => ps_wr_en_qq, --ps_wr_en, - PS_PROTO_SELECT_IN => proto_select, - PS_BUSY_OUT => ps_busy, - PS_FRAME_SIZE_IN => RC_FRAME_SIZE_IN, - PS_RESPONSE_READY_OUT => ps_response_ready, - - PS_SRC_MAC_ADDRESS_IN => RC_SRC_MAC_ADDRESS_IN, - PS_DEST_MAC_ADDRESS_IN => RC_DEST_MAC_ADDRESS_IN, - PS_SRC_IP_ADDRESS_IN => RC_SRC_IP_ADDRESS_IN, - PS_DEST_IP_ADDRESS_IN => RC_DEST_IP_ADDRESS_IN, - PS_SRC_UDP_PORT_IN => RC_SRC_UDP_PORT_IN, - PS_DEST_UDP_PORT_IN => RC_DEST_UDP_PORT_IN, - - TC_DATA_OUT => tc_data, - TC_RD_EN_IN => TC_RD_EN_IN, - TC_FRAME_SIZE_OUT => TC_FRAME_SIZE_OUT, - TC_FRAME_TYPE_OUT => TC_FRAME_TYPE_OUT, - TC_IP_PROTOCOL_OUT => TC_IP_PROTOCOL_OUT, - TC_IDENT_OUT => TC_IDENT_OUT, - TC_DEST_MAC_OUT => TC_DEST_MAC_OUT, - TC_DEST_IP_OUT => TC_DEST_IP_OUT, - TC_DEST_UDP_OUT => TC_DEST_UDP_OUT, - TC_SRC_MAC_OUT => TC_SRC_MAC_OUT, - TC_SRC_IP_OUT => TC_SRC_IP_OUT, - TC_SRC_UDP_OUT => TC_SRC_UDP_OUT, - - MC_BUSY_IN => mc_busy, - - DHCP_START_IN => dhcp_start, - DHCP_DONE_OUT => dhcp_done, - - GSC_CLK_IN => GSC_CLK_IN, - GSC_INIT_DATAREADY_OUT => GSC_INIT_DATAREADY_OUT, - GSC_INIT_DATA_OUT => GSC_INIT_DATA_OUT, - GSC_INIT_PACKET_NUM_OUT => GSC_INIT_PACKET_NUM_OUT, - GSC_INIT_READ_IN => GSC_INIT_READ_IN, - GSC_REPLY_DATAREADY_IN => GSC_REPLY_DATAREADY_IN, - GSC_REPLY_DATA_IN => GSC_REPLY_DATA_IN, - GSC_REPLY_PACKET_NUM_IN => GSC_REPLY_PACKET_NUM_IN, - GSC_REPLY_READ_OUT => GSC_REPLY_READ_OUT, - GSC_BUSY_IN => GSC_BUSY_IN, - - MAKE_RESET_OUT => MAKE_RESET_OUT, - - -- CTS interface - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_READ_IN => CTS_READ_IN, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - -- Data payload interface - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - FEE_BUSY_IN => FEE_BUSY_IN, - -- ip configurator - SLV_ADDR_IN => SLV_ADDR_IN, - SLV_READ_IN => SLV_READ_IN, - SLV_WRITE_IN => SLV_WRITE_IN, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, - SLV_DATA_IN => SLV_DATA_IN, - SLV_DATA_OUT => SLV_DATA_OUT, - - CFG_GBE_ENABLE_IN => CFG_GBE_ENABLE_IN, - CFG_IPU_ENABLE_IN => CFG_IPU_ENABLE_IN, - CFG_MULT_ENABLE_IN => CFG_MULT_ENABLE_IN, - CFG_SUBEVENT_ID_IN => CFG_SUBEVENT_ID_IN, - CFG_SUBEVENT_DEC_IN => CFG_SUBEVENT_DEC_IN, - CFG_QUEUE_DEC_IN => CFG_QUEUE_DEC_IN, - CFG_READOUT_CTR_IN => CFG_READOUT_CTR_IN, - CFG_READOUT_CTR_VALID_IN => CFG_READOUT_CTR_VALID_IN, - CFG_INSERT_TTYPE_IN => CFG_INSERT_TTYPE_IN, - CFG_MAX_SUB_IN => CFG_MAX_SUB_IN, - CFG_MAX_QUEUE_IN => CFG_MAX_QUEUE_IN, - CFG_MAX_SUBS_IN_QUEUE_IN => CFG_MAX_SUBS_IN_QUEUE_IN, - CFG_MAX_SINGLE_SUB_IN => CFG_MAX_SINGLE_SUB_IN, - - CFG_ADDITIONAL_HDR_IN => CFG_ADDITIONAL_HDR_IN, - - -- input for statistics from outside - STAT_DATA_IN => stat_data, - STAT_ADDR_IN => stat_addr, - STAT_DATA_RDY_IN => stat_rdy, - STAT_DATA_ACK_OUT => stat_ack, - - MONITOR_SELECT_REC_OUT => MONITOR_SELECT_REC_OUT, - MONITOR_SELECT_REC_BYTES_OUT => MONITOR_SELECT_REC_BYTES_OUT, - MONITOR_SELECT_SENT_BYTES_OUT => MONITOR_SELECT_SENT_BYTES_OUT, - MONITOR_SELECT_SENT_OUT => MONITOR_SELECT_SENT_OUT, - MONITOR_SELECT_DROP_OUT_OUT => MONITOR_SELECT_DROP_OUT_OUT, - MONITOR_SELECT_DROP_IN_OUT => MONITOR_SELECT_DROP_IN_OUT, - MONITOR_SELECT_GEN_DBG_OUT => MONITOR_SELECT_GEN_DBG_OUT, - - DATA_HIST_OUT => DATA_HIST_OUT, - SCTRL_HIST_OUT => SCTRL_HIST_OUT -); - -TC_DATA_OUT <= tc_data; - --- gk 07.11.11 --- do not select any response constructors when dropping a frame -proto_select <= RC_FRAME_PROTO_IN when disable_redirect = '0' else (others => '0'); - --- gk 07.11.11 -DISABLE_REDIRECT_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - disable_redirect <= '0'; - elsif (redirect_current_state = CHECK_TYPE) then - if (link_current_state /= ACTIVE and link_current_state /= GET_ADDRESS) then - disable_redirect <= '1'; - elsif (link_current_state = GET_ADDRESS and RC_FRAME_PROTO_IN /= "10") then - disable_redirect <= '1'; - else - disable_redirect <= '0'; - end if; - else - disable_redirect <= disable_redirect; - end if; - end if; -end process DISABLE_REDIRECT_PROC; - --- warning -SYNC_PROC : process(CLK) -begin - if rising_edge(CLK) then - rc_data_local <= RC_DATA_IN; - end if; -end process SYNC_PROC; - -REDIRECT_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - redirect_current_state <= IDLE; - elsif rising_edge(CLK) then - if RX_PATH_ENABLE = 1 then - redirect_current_state <= redirect_next_state; - else - redirect_current_state <= IDLE; - end if; - end if; -end process REDIRECT_MACHINE_PROC; - -REDIRECT_MACHINE : process(redirect_current_state, link_current_state, RC_FRAME_WAITING_IN, ps_busy, RC_FRAME_PROTO_IN, loaded_bytes_ctr, RC_FRAME_SIZE_IN) -begin - case redirect_current_state is - - when IDLE => - redirect_state <= x"1"; - if (RC_FRAME_WAITING_IN = '1') then - redirect_next_state <= CHECK_TYPE; - else - redirect_next_state <= IDLE; - end if; - - when CHECK_TYPE => - if (link_current_state = ACTIVE) then - redirect_next_state <= CHECK_BUSY; - elsif (link_current_state = GET_ADDRESS and RC_FRAME_PROTO_IN = "10") then - redirect_next_state <= CHECK_BUSY; - else - redirect_next_state <= DROP; - end if; - - when DROP => - redirect_state <= x"7"; - if (loaded_bytes_ctr = RC_FRAME_SIZE_IN - x"1") then - redirect_next_state <= WAIT_ONE; - else - redirect_next_state <= DROP; - end if; - - when CHECK_BUSY => - redirect_state <= x"6"; - if (or_all(ps_busy and RC_FRAME_PROTO_IN) = '0') then - redirect_next_state <= LOAD; - else - redirect_next_state <= BUSY; - end if; - - when LOAD => - redirect_state <= x"2"; - if (loaded_bytes_ctr = RC_FRAME_SIZE_IN - x"1") then - redirect_next_state <= WAIT_ONE; - else - redirect_next_state <= LOAD; - end if; - - when BUSY => - redirect_state <= x"3"; - if (or_all(ps_busy and RC_FRAME_PROTO_IN) = '0') then - redirect_next_state <= LOAD; - else - redirect_next_state <= BUSY; - end if; - - when WAIT_ONE => - redirect_state <= x"f"; - redirect_next_state <= FINISH; - - when FINISH => - redirect_state <= x"4"; - redirect_next_state <= CLEANUP; - - when CLEANUP => - redirect_state <= x"5"; - redirect_next_state <= IDLE; - - end case; -end process REDIRECT_MACHINE; - -rc_rd_en <= '1' when redirect_current_state = LOAD or redirect_current_state = DROP else '0'; -RC_RD_EN_OUT <= rc_rd_en; - -LOADING_DONE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RC_DATA_IN(8) = '1' and ps_wr_en_q = '1') then - RC_LOADING_DONE_OUT <= '1'; - else - RC_LOADING_DONE_OUT <= '0'; - end if; - end if; -end process LOADING_DONE_PROC; - -PS_WR_EN_PROC : process(CLK) -begin - if rising_edge(CLK) then - ps_wr_en <= rc_rd_en; - ps_wr_en_q <= ps_wr_en; - ps_wr_en_qq <= ps_wr_en_q; - end if; -end process PS_WR_EN_PROC; - -LOADED_BYTES_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (redirect_current_state = IDLE) then - loaded_bytes_ctr <= (others => '0'); - elsif (redirect_current_state = LOAD or redirect_current_state = DROP) and (rc_rd_en = '1') then - loaded_bytes_ctr <= loaded_bytes_ctr + x"1"; - else - loaded_bytes_ctr <= loaded_bytes_ctr; - end if; - end if; -end process LOADED_BYTES_CTR_PROC; - -FIRST_BYTE_PROC : process(CLK) -begin - if rising_edge(CLK) then - first_byte_q <= first_byte; - first_byte_qq <= first_byte_q; - - if (redirect_current_state = IDLE) then - first_byte <= '1'; - else - first_byte <= '0'; - end if; - end if; -end process FIRST_BYTE_PROC; - ---********************* --- DATA FLOW CONTROL - -FLOW_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - flow_current_state <= IDLE; - elsif rising_edge(CLK) then - flow_current_state <= flow_next_state; - end if; -end process FLOW_MACHINE_PROC; - -FLOW_MACHINE : process(flow_current_state, TC_TRANSMIT_DONE_IN, ps_response_ready, tc_data) -begin - case flow_current_state is - - when IDLE => - if (ps_response_ready = '1') then - flow_next_state <= TRANSMIT_CTRL; - else - flow_next_state <= IDLE; - end if; - - when TRANSMIT_CTRL => - if (tc_data(8) = '1') then - flow_next_state <= WAIT_FOR_FC; - else - flow_next_state <= TRANSMIT_CTRL; - end if; - - when WAIT_FOR_FC => - if (TC_TRANSMIT_DONE_IN = '1') then - flow_next_state <= CLEANUP; - else - flow_next_state <= WAIT_FOR_FC; - end if; - - when CLEANUP => - flow_next_state <= IDLE; - - end case; -end process FLOW_MACHINE; - -process(CLK) -begin - if rising_edge(CLK) then - if (flow_current_state = IDLE and ps_response_ready = '1') then - TC_TRANSMIT_CTRL_OUT <= '1'; - else - TC_TRANSMIT_CTRL_OUT <= '0'; - end if; - - if (flow_current_state = TRANSMIT_CTRL or flow_current_state = WAIT_FOR_FC) then - mc_busy <= '1'; - else - mc_busy <= '0'; - end if; - end if; -end process; - ---*********************** --- LINK STATE CONTROL - -lsm_impl_gen : if DO_SIMULATION = 0 generate - LINK_STATE_MACHINE_PROC : process(MC_RESET_LINK_IN, CLK) - begin - if MC_RESET_LINK_IN = '1' then - link_current_state <= INACTIVE; - elsif rising_edge(CLK) then - if RX_PATH_ENABLE = 1 then - link_current_state <= link_next_state; - else - link_current_state <= INACTIVE; - end if; - end if; - end process; -end generate lsm_impl_gen; - -lsm_sim_gen : if DO_SIMULATION = 1 generate - LINK_STATE_MACHINE_PROC : process(MC_RESET_LINK_IN, CLK) - begin - if MC_RESET_LINK_IN = '1' then - link_current_state <= GET_ADDRESS; - elsif rising_edge(CLK) then - if RX_PATH_ENABLE = 1 then - link_current_state <= link_next_state; - else - link_current_state <= ACTIVE; - end if; - end if; - end process; -end generate lsm_sim_gen; - -LINK_STATE_MACHINE : process(link_current_state, dhcp_done, wait_ctr, PCS_AN_COMPLETE_IN, tsm_ready, link_ok_timeout_ctr) -begin - case link_current_state is - - when INACTIVE => - link_state <= x"2"; - if (PCS_AN_COMPLETE_IN = '1') then - link_next_state <= TIMEOUT; - else - link_next_state <= INACTIVE; - end if; - - when TIMEOUT => - link_state <= x"3"; - if (PCS_AN_COMPLETE_IN = '0') then - link_next_state <= INACTIVE; - else - if (link_ok_timeout_ctr = x"ffff") then - link_next_state <= ENABLE_MAC; --FINALIZE; - else - link_next_state <= TIMEOUT; - end if; - end if; - - when ENABLE_MAC => - link_state <= x"4"; - if (PCS_AN_COMPLETE_IN = '0') then - link_next_state <= INACTIVE; - elsif (tsm_ready = '1') then - link_next_state <= FINALIZE; --INACTIVE; - else - link_next_state <= ENABLE_MAC; - end if; - - when FINALIZE => - link_state <= x"5"; - if (PCS_AN_COMPLETE_IN = '0') then - link_next_state <= INACTIVE; - else - link_next_state <= WAIT_FOR_BOOT; --ACTIVE; - end if; - - when WAIT_FOR_BOOT => - link_state <= x"6"; - if (PCS_AN_COMPLETE_IN = '0') then - link_next_state <= INACTIVE; - else - if (wait_ctr = x"0000_1000") then - link_next_state <= GET_ADDRESS; - else - link_next_state <= WAIT_FOR_BOOT; - end if; - end if; - - when GET_ADDRESS => - link_state <= x"7"; - if (PCS_AN_COMPLETE_IN = '0') then - link_next_state <= INACTIVE; - else - if (dhcp_done = '1') then - link_next_state <= ACTIVE; - else - link_next_state <= GET_ADDRESS; - end if; - end if; - - when ACTIVE => - link_state <= x"1"; - if (PCS_AN_COMPLETE_IN = '0') then - link_next_state <= INACTIVE; - else - link_next_state <= ACTIVE; - end if; - - end case; -end process LINK_STATE_MACHINE; - -MC_DHCP_DONE_OUT <= '1' when link_current_state = ACTIVE else '0'; - -LINK_OK_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - --if (RESET = '1') or (link_current_state /= TIMEOUT) then - if (link_current_state /= TIMEOUT) then - link_ok_timeout_ctr <= (others => '0'); - elsif (link_current_state = TIMEOUT) then - link_ok_timeout_ctr <= link_ok_timeout_ctr + x"1"; - end if; - - if (link_current_state = ACTIVE or link_current_state = GET_ADDRESS) then - link_ok <= '1'; - else - link_ok <= '0'; - end if; - - if (link_current_state = GET_ADDRESS) then - dhcp_start <= '1'; - else - dhcp_start <= '0'; - end if; - end if; -end process LINK_OK_CTR_PROC; - ---link_ok <= '1' when (link_current_state = ACTIVE) or (link_current_state = GET_ADDRESS) else '0'; - -WAIT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (link_current_state = WAIT_FOR_BOOT) then - wait_ctr <= wait_ctr + x"1"; - else - wait_ctr <= (others => '0'); - end if; - end if; -end process WAIT_CTR_PROC; - ---dhcp_start <= '1' when link_current_state = GET_ADDRESS else '0'; - ---LINK_DOWN_CTR_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- link_down_ctr <= (others => '0'); --- link_down_ctr_lock <= '0'; --- elsif (PCS_AN_COMPLETE_IN = '1') then --- link_down_ctr_lock <= '0'; --- elsif ((PCS_AN_COMPLETE_IN = '0') and (link_down_ctr_lock = '0')) then --- link_down_ctr <= link_down_ctr + x"1"; --- link_down_ctr_lock <= '1'; --- end if; --- end if; ---end process LINK_DOWN_CTR_PROC; - -MC_LINK_OK_OUT <= link_ok; -- or nothing_sent; - --- END OF LINK STATE CONTROL ---************* - ---************* --- GENERATE MAC_ADDRESS -g_MY_MAC <= unique_id(31 downto 8) & x"be0002"; - ---************* - ---**************** --- TRI SPEED MAC CONTROLLER - -TSMAC_CONTROLLER : trb_net16_gbe_mac_control -port map( - CLK => CLK, - RESET => MC_RESET_LINK_IN, - --- signals to/from main controller - MC_TSMAC_READY_OUT => tsm_ready, - MC_RECONF_IN => tsm_reconf, - MC_GBE_EN_IN => '1', - MC_RX_DISCARD_FCS => '0', - MC_PROMISC_IN => '1', - MC_MAC_ADDR_IN => g_MY_MAC, --x"001122334455", - --- signal to/from Host interface of TriSpeed MAC - TSM_HADDR_OUT => tsm_haddr, - TSM_HDATA_OUT => tsm_hdata, - TSM_HCS_N_OUT => tsm_hcs_n, - TSM_HWRITE_N_OUT => tsm_hwrite_n, - TSM_HREAD_N_OUT => tsm_hread_n, - TSM_HREADY_N_IN => TSM_HREADY_N_IN, - TSM_HDATA_EN_N_IN => TSM_HDATA_EN_N_IN, - - DEBUG_OUT => open -); - ---DEBUG_OUT <= mac_control_debug; -process(CLK) -begin - if rising_edge(CLK) then - if link_current_state = INACTIVE and PCS_AN_COMPLETE_IN = '1' then - tsm_reconf <= '1'; - else - tsm_reconf <= '0'; - end if; - end if; -end process; ---tsm_reconf <= '1' when (link_current_state = INACTIVE) and (PCS_AN_COMPLETE_IN = '0') else '0'; - -TSM_HADDR_OUT <= tsm_haddr; -TSM_HCS_N_OUT <= tsm_hcs_n; -TSM_HDATA_OUT <= tsm_hdata; -TSM_HREAD_N_OUT <= tsm_hread_n; -TSM_HWRITE_N_OUT <= tsm_hwrite_n; - --- END OF TRI SPEED MAC CONTROLLER ---*************** - - --- ***** --- STATISTICS --- ***** - --- ---CTRS_GEN : for n in 0 to 15 generate --- --- CTR_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- arr(n) <= (others => '0'); --- elsif (rx_stat_en_q = '1' and rx_stat_vec_q(16 + n) = '1') then --- arr(n) <= arr(n) + x"1"; --- end if; --- end if; --- end process CTR_PROC; --- ---end generate CTRS_GEN; --- ---STAT_VEC_SYNC : signal_sync ---generic map ( --- WIDTH => 32, --- DEPTH => 2 ---) ---port map ( --- RESET => RESET, --- CLK0 => CLK, --- CLK1 => CLK, --- D_IN => TSM_RX_STAT_VEC_IN, --- D_OUT => rx_stat_vec_q ---); --- --- ---STAT_VEC_EN_SYNC : pulse_sync ---port map( --- CLK_A_IN => CLK_125, --- RESET_A_IN => RESET, --- PULSE_A_IN => TSM_RX_STAT_EN_IN, --- CLK_B_IN => CLK, --- RESET_B_IN => RESET, --- PULSE_B_OUT => rx_stat_en_q ---); --- --- ---STATS_MACHINE_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- stats_current_state <= IDLE; --- else --- stats_current_state <= stats_next_state; --- end if; --- end if; ---end process STATS_MACHINE_PROC; --- ---STATS_MACHINE : process(stats_current_state, rx_stat_en_q, stats_ctr) ---begin --- --- case (stats_current_state) is --- --- when IDLE => --- if (rx_stat_en_q = '1') then --- stats_next_state <= LOAD_VECTOR; --- else --- stats_next_state <= IDLE; --- end if; --- --- when LOAD_VECTOR => --- --if (stat_ack = '1') then --- if (stats_ctr = 15) then --- stats_next_state <= CLEANUP; --- else --- stats_next_state <= LOAD_VECTOR; --- end if; --- --- when CLEANUP => --- stats_next_state <= IDLE; --- --- end case; --- ---end process STATS_MACHINE; --- ---STATS_CTR_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') or (stats_current_state = IDLE) then --- stats_ctr <= 0; --- elsif (stats_current_state = LOAD_VECTOR and stat_ack ='1') then --- stats_ctr <= stats_ctr + 1; --- end if; --- end if; ---end process STATS_CTR_PROC; --- -----stat_data <= arr(stats_ctr); --- ---stat_addr <= x"0c" + std_logic_vector(to_unsigned(stats_ctr, 8)); --- ---stat_rdy <= '1' when stats_current_state /= IDLE and stats_current_state /= CLEANUP else '0'; --- ---stat_data(7 downto 0) <= arr(stats_ctr)(31 downto 24); ---stat_data(15 downto 8) <= arr(stats_ctr)(23 downto 16); ---stat_data(23 downto 16) <= arr(stats_ctr)(15 downto 8); ---stat_data(31 downto 24) <= arr(stats_ctr)(7 downto 0); - - --- **** debug ---FRAME_WAITING_CTR_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- frame_waiting_ctr <= (others => '0'); --- elsif (RC_FRAME_WAITING_IN = '1') then --- frame_waiting_ctr <= frame_waiting_ctr + x"1"; --- end if; --- end if; ---end process FRAME_WAITING_CTR_PROC; --- ---SAVE_VALUES_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- ps_busy_q <= (others => '0'); --- rc_frame_proto_q <= (others => '0'); --- elsif (redirect_current_state = IDLE and RC_FRAME_WAITING_IN = '1') then --- ps_busy_q <= ps_busy; --- rc_frame_proto_q <= RC_FRAME_PROTO_IN; --- end if; --- end if; ---end process SAVE_VALUES_PROC; - - --- **** - - - -end trb_net16_gbe_main_control; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_gbe_packet_constr.vhd b/gbe2_ecp3/trb_net16_gbe_packet_constr.vhd deleted file mode 100755 index 5e68bad..0000000 --- a/gbe2_ecp3/trb_net16_gbe_packet_constr.vhd +++ /dev/null @@ -1,1088 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; -use work.trb_net_gbe_components.all; - -entity trb_net16_gbe_packet_constr is -port( - RESET : in std_logic; - CLK : in std_logic; - MULT_EVT_ENABLE_IN : in std_logic; -- gk 06.10.10 - -- ports for user logic - PC_WR_EN_IN : in std_logic; -- write into queueConstr from userLogic - PC_DATA_IN : in std_logic_vector(7 downto 0); - PC_READY_OUT : out std_logic; - PC_START_OF_SUB_IN : in std_logic; - PC_END_OF_SUB_IN : in std_logic; -- gk 07.10.10 - PC_END_OF_DATA_IN : in std_logic; - PC_TRANSMIT_ON_OUT : out std_logic; - -- queue and subevent layer headers - PC_SUB_SIZE_IN : in std_logic_vector(31 downto 0); -- store and swap - PC_PADDING_IN : in std_logic; -- gk 29.03.10 - PC_DECODING_IN : in std_logic_vector(31 downto 0); -- swap - PC_EVENT_ID_IN : in std_logic_vector(31 downto 0); -- swap - PC_TRIG_NR_IN : in std_logic_vector(31 downto 0); -- store and swap! - PC_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); -- swap - PC_MAX_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); -- DO NOT SWAP - PC_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 28.04.10 - -- FrameConstructor ports - TC_WR_EN_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(7 downto 0); - TC_H_READY_IN : in std_logic; - TC_READY_IN : in std_logic; - TC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - TC_SOD_OUT : out std_logic; - TC_EOD_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_packet_constr; - -architecture trb_net16_gbe_packet_constr of trb_net16_gbe_packet_constr is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_packet_constr : architecture is "GBE_GBE_group"; - -component fifo_64kx9 -port ( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - --- FIFO for SubEventHeader information -component fifo_16kx8 is -port ( - Data : in std_logic_vector(7 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(7 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -signal df_wr_en : std_logic; -signal df_rd_en : std_logic; -signal df_q : std_logic_vector(7 downto 0); -signal df_q_reg : std_logic_vector(7 downto 0); -signal df_empty : std_logic; -signal df_full : std_logic; - -signal fc_data : std_logic_vector(7 downto 0); -signal fc_wr_en : std_logic; -signal fc_sod : std_logic; -signal fc_eod : std_logic; -signal fc_ident : std_logic_vector(15 downto 0); -- change this to own counter! -signal fc_flags_offset : std_logic_vector(15 downto 0); - -signal shf_data : std_logic_vector(7 downto 0); -signal shf_wr_en : std_logic; -signal shf_rd_en : std_logic; -signal shf_q : std_logic_vector(7 downto 0); -signal shf_empty : std_logic; -signal shf_full : std_logic; - -type constructStates is (CIDLE, SAVE_DATA, WAIT_FOR_LOAD); -signal constructCurrentState, constructNextState : constructStates; -signal constr_state : std_logic_vector(3 downto 0); -signal all_int_ctr : integer range 0 to 31; -signal all_ctr : std_logic_vector(4 downto 0); - -type saveSubStates is (SIDLE, SAVE_SIZE, SAVE_DECODING, SAVE_ID, SAVE_TRIG_NR, SAVE_TERM); -signal saveSubCurrentState, saveSubNextState : saveSubStates; -signal save_state : std_logic_vector(3 downto 0); -signal sub_int_ctr : integer range 0 to 31; -signal sub_ctr : std_logic_vector(4 downto 0); -signal my_int_ctr : integer range 0 to 3; -signal my_ctr : std_logic_vector(1 downto 0); - -type loadStates is (LIDLE, WAIT_FOR_FC, PUT_Q_LEN, PUT_Q_DEC, LOAD_SUB, PREP_DATA, LOAD_DATA, DIVIDE, LOAD_TERM, CLEANUP, DELAY); -signal loadCurrentState, loadNextState: loadStates; -signal load_state : std_logic_vector(3 downto 0); - -signal queue_size : std_logic_vector(31 downto 0); -- sum of all subevents sizes plus their headers and queue headers and termination -signal queue_size_temp : std_logic_vector(31 downto 0); -signal actual_queue_size : std_logic_vector(31 downto 0); -- queue size used during loading process when queue_size is no more valid -signal bytes_loaded : std_logic_vector(15 downto 0); -- size of actual constructing frame -signal sub_size_to_save : std_logic_vector(31 downto 0); -- size of subevent to save to shf -signal sub_size_loaded : std_logic_vector(31 downto 0); -- size of subevent actually being transmitted -signal sub_bytes_loaded : std_logic_vector(31 downto 0); -- amount of bytes of actual subevent sent -signal actual_packet_size : std_logic_vector(15 downto 0); -- actual size of whole udp packet -signal size_left : std_logic_vector(31 downto 0); -signal fc_ip_size : std_logic_vector(15 downto 0); -signal fc_udp_size : std_logic_vector(15 downto 0); -signal max_frame_size : std_logic_vector(15 downto 0); -signal divide_position : std_logic_vector(1 downto 0); -- 00->data, 01->sub, 11->term -signal debug : std_logic_vector(63 downto 0); -signal pc_ready : std_logic; - -signal pc_sub_size : std_logic_vector(31 downto 0); -signal pc_trig_nr : std_logic_vector(31 downto 0); -signal rst_after_sub_comb : std_logic; -- gk 08.04.10 -signal rst_after_sub : std_logic; -- gk 08.04.10 -signal load_int_ctr : integer range 0 to 3; -- gk 08.04.10 -signal delay_ctr : std_logic_vector(31 downto 0); -- gk 28.04.10 -signal ticks_ctr : std_logic_vector(7 downto 0); -- gk 28.04.10 - --- gk 26.07.10 -signal load_eod : std_logic; -signal load_eod_q : std_logic; - --- gk 07.10.10 -signal df_eod : std_logic; - --- gk 04.12.10 -signal first_sub_in_multi : std_logic; -signal from_divide_state : std_logic; -signal disable_prep : std_logic; - -begin - - -PC_TRANSMIT_ON_OUT <= '1' when constructCurrentState = WAIT_FOR_LOAD else '0'; - -my_int_ctr <= (3 - to_integer(to_unsigned(sub_int_ctr, 2))); -- reverse byte order -load_int_ctr <= (3 - to_integer(to_unsigned(all_int_ctr, 2))); -- gk 08.04.10 - -all_ctr <= std_logic_vector(to_unsigned(all_int_ctr, all_ctr'length)); -- for debugging -sub_ctr <= std_logic_vector(to_unsigned(sub_int_ctr, sub_ctr'length)); -- for debugging -my_ctr <= std_logic_vector(to_unsigned(my_int_ctr, my_ctr'length)); -- for debugging - -max_frame_size <= PC_MAX_FRAME_SIZE_IN; - --- Ready signal for PacketConstructor -pc_ready <= '1' when (constructCurrentState = CIDLE) and (df_empty = '1') else '0'; - --- store event information on Start_of_Subevent -THE_EVT_INFO_STORE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if( PC_START_OF_SUB_IN = '1' ) then - pc_sub_size <= PC_SUB_SIZE_IN; - pc_trig_nr <= PC_TRIG_NR_IN; - else - pc_sub_size <= pc_sub_size; - pc_trig_nr <= pc_trig_nr; - end if; - end if; -end process; - --- gk 07.10.10 -df_eod <= '1' when ((MULT_EVT_ENABLE_IN = '0') and (PC_END_OF_DATA_IN = '1')) - or ((MULT_EVT_ENABLE_IN = '1') and (PC_END_OF_SUB_IN = '1')) - else '0'; - --- Data FIFO for incoming packet data from IPU buffer --- gk 26.07.10 -DATA_FIFO : fifo_64kx9 -port map( - Data(7 downto 0) => PC_DATA_IN, - Data(8) => df_eod, --PC_END_OF_DATA_IN, -- gk 07.10.10 - WrClock => CLK, - RdClock => CLK, - WrEn => df_wr_en, - RdEn => df_rd_en, - Reset => RESET, - RPReset => RESET, - Q(7 downto 0) => df_q, - Q(8) => load_eod, - Empty => df_empty, - Full => df_full -); - -LOAD_EOD_PROC : process(CLK) -begin - if rising_edge(CLK) then - load_eod_q <= load_eod; - end if; -end process LOAD_EOD_PROC; - --- Write enable for the data FIFO --- !!!combinatorial signal!!! --- could be avoided as IPU2GBE does only send data in case of PC_READY. -df_wr_en <= '1' when ((PC_WR_EN_IN = '1') and (constructCurrentState /= WAIT_FOR_LOAD)) - else '0'; - --- Output register for data FIFO -dfQProc : process(CLK) -begin - if rising_edge(CLK) then - df_q_reg <= df_q; - end if; -end process dfQProc; - --- Construction state machine -constructMachineProc : process(RESET, CLK) -begin - if RESET = '1' then - constructCurrentState <= CIDLE; - elsif rising_edge(CLK) then --- if (RESET = '1') then --- constructCurrentState <= CIDLE; --- else - constructCurrentState <= constructNextState; --- end if; - end if; -end process constructMachineProc; - -constructMachine : process(constructCurrentState, df_empty, PC_START_OF_SUB_IN, PC_END_OF_DATA_IN, loadCurrentState) -begin - case constructCurrentState is - when CIDLE => - constr_state <= x"1"; - --if( PC_WR_EN_IN = '1' ) then - -- gk 04.12.10 - if (PC_START_OF_SUB_IN = '1') then - - constructNextState <= SAVE_DATA; - else - constructNextState <= CIDLE; - end if; - when SAVE_DATA => - constr_state <= x"2"; - if( PC_END_OF_DATA_IN = '1') then - constructNextState <= WAIT_FOR_LOAD; - else - constructNextState <= SAVE_DATA; - end if; - when WAIT_FOR_LOAD => - constr_state <= x"3"; - if( (df_empty = '1') and (loadCurrentState = LIDLE) ) then -- waits until the whole packet is transmitted - constructNextState <= CIDLE; - else - constructNextState <= WAIT_FOR_LOAD; - end if; - when others => - constr_state <= x"f"; - constructNextState <= CIDLE; - end case; -end process constructMachine; - ---*********************** --- SIZE COUNTERS FOR SAVING SIDE ---*********************** - --- gk 29.03.10 the subevent size saved to its headers cannot contain padding bytes but they are included in pc_sub_size --- that's why they are removed if pc_padding flag is asserted -sub_size_to_save <= (x"10" + pc_sub_size) when (PC_PADDING_IN = '0') - else (x"c" + pc_sub_size); -- subevent headers + data - --- BUG HERE BUG HERE BUG HERE BUG HERE --- gk 29.03.10 no changes here because the queue size should contain the padding bytes of subevents -queueSizeProc : process(RESET, CLK) -begin - if (RESET = '1') then - queue_size <= x"00000028"; -- + 8B for queue headers and 32B for termination - elsif rising_edge(CLK) then - --if (RESET = '1') or (loadCurrentState = PUT_Q_DEC) then -- gk 07.10.10 -- (loadCurrentState = CLEANUP) then - if (loadCurrentState = CLEANUP) then - queue_size <= x"00000028"; -- + 8B for queue headers and 32B for termination - elsif (saveSubCurrentState = SAVE_SIZE) and (sub_int_ctr = 3) then - queue_size <= queue_size + pc_sub_size + x"10"; -- + 16B for each subevent headers - else - queue_size <= queue_size; - end if; - end if; -end process queueSizeProc; - - ---*********************** --- LOAD DATA COMBINED WITH HEADERS INTO FC, QUEUE TRANSMISSION ---*********************** - -loadMachineProc : process(RESET, CLK) -begin - if RESET = '1' then - loadCurrentState <= LIDLE; - elsif rising_edge(CLK) then --- if (RESET = '1') then --- loadCurrentState <= LIDLE; --- else - loadCurrentState <= loadNextState; --- end if; - end if; -end process loadMachineProc; - -loadMachine : process(loadCurrentState, constructCurrentState, all_int_ctr, df_empty, - size_left, TC_H_READY_IN, - max_frame_size, bytes_loaded, divide_position, PC_DELAY_IN, - delay_ctr, load_eod_q, MULT_EVT_ENABLE_IN) -begin - case loadCurrentState is - when LIDLE => - load_state <= x"1"; - if ((constructCurrentState = WAIT_FOR_LOAD) and (df_empty = '0')) then - loadNextState <= WAIT_FOR_FC; - else - loadNextState <= LIDLE; - end if; - when WAIT_FOR_FC => - load_state <= x"2"; - if (TC_H_READY_IN = '1') then - loadNextState <= PUT_Q_LEN; - else - loadNextState <= WAIT_FOR_FC; - end if; - when PUT_Q_LEN => - load_state <= x"3"; - if (all_int_ctr = 3) then - loadNextState <= PUT_Q_DEC; - else - loadNextState <= PUT_Q_LEN; - end if; - when PUT_Q_DEC => - load_state <= x"4"; - if (all_int_ctr = 3) then - loadNextState <= LOAD_SUB; - else - loadNextState <= PUT_Q_DEC; - end if; - when LOAD_SUB => - load_state <= x"5"; - if (bytes_loaded = max_frame_size - 1) then - loadNextState <= DIVIDE; - elsif (all_int_ctr = 15) then - loadNextState <= PREP_DATA; - else - loadNextState <= LOAD_SUB; - end if; - when PREP_DATA => - load_state <= x"6"; - loadNextState <= LOAD_DATA; - when LOAD_DATA => - load_state <= x"7"; --- if (bytes_loaded = max_frame_size - 1) then --- loadNextState <= DIVIDE; --- -- gk 07.10.10 --- elsif (MULT_EVT_ENABLE_IN = '1') then --- if (size_left = x"0000_0023") then --- loadNextState <= LOAD_TERM; --- elsif (load_eod_q = '1') then --- loadNextState <= LOAD_SUB; --- else --- loadNextState <= LOAD_DATA; --- end if; --- else --- if (load_eod_q = '1') then --- loadNextState <= LOAD_TERM; --- else --- loadNextState <= LOAD_DATA; --- end if; --- end if; - if (bytes_loaded = max_frame_size - 1) then - loadNextState <= DIVIDE; - -- gk 07.10.10 - elsif (load_eod_q = '1') then - if (MULT_EVT_ENABLE_IN = '1') then - if (size_left < x"0000_0030") then - loadNextState <= LOAD_TERM; - else - loadNextState <= LOAD_SUB; - end if; - else - loadNextState <= LOAD_TERM; - end if; - else - loadNextState <= LOAD_DATA; - end if; - when DIVIDE => - load_state <= x"8"; - if (TC_H_READY_IN = '1') then - if (divide_position = "00") then - loadNextState <= PREP_DATA; - elsif (divide_position = "01") then - loadNextState <= LOAD_SUB; - else - loadNextState <= LOAD_TERM; - end if; - else - loadNextState <= DIVIDE; - end if; - when LOAD_TERM => - load_state <= x"9"; - if (bytes_loaded = max_frame_size - 1) and (all_int_ctr /= 31) then - loadNextState <= DIVIDE; - elsif (all_int_ctr = 31) then - loadNextState <= CLEANUP; - else - loadNextState <= LOAD_TERM; - end if; - -- gk 28.04.10 - when CLEANUP => - load_state <= x"a"; - if (PC_DELAY_IN = x"0000_0000") then - loadNextState <= LIDLE; - else - loadNextState <= DELAY; - end if; - -- gk 28.04.10 - when DELAY => - load_state <= x"b"; - if (delay_ctr = x"0000_0000") then - loadNextState <= LIDLE; - else - loadNextState <= DELAY; - end if; - when others => - load_state <= x"f"; - loadNextState <= LIDLE; - end case; -end process loadMachine; - --- gk 04.12.10 -firstSubInMultiProc : process(RESET, CLK) -begin - if (RESET = '1') then - first_sub_in_multi <= '1'; - elsif rising_edge(CLK) then - if (loadCurrentState = LOAD_TERM) then - first_sub_in_multi <= '1'; - elsif (loadCurrentState = LOAD_DATA) then - first_sub_in_multi <= '0'; - else - first_sub_in_multi <= first_sub_in_multi; - end if; - end if; -end process; - --- gk 04.12.10 -fromDivideStateProc : process(RESET, CLK) -begin - if (RESET = '1') then - from_divide_state <= '0'; - elsif rising_edge(CLK) then - if (loadCurrentState = DIVIDE) then - from_divide_state <= '1'; - elsif (loadCurrentState = PREP_DATA) then - from_divide_state <= '0'; - else - from_divide_state <= from_divide_state; - end if; - end if; -end process fromDivideStateProc; - - -dividePositionProc : process(RESET, CLK) -begin - if (RESET = '1') then - divide_position <= "00"; - disable_prep <= '0'; - elsif rising_edge(CLK) then - if (bytes_loaded = max_frame_size - 1) then - if (loadCurrentState = LIDLE) then - divide_position <= "00"; - disable_prep <= '0'; -- gk 05.12.10 - elsif (loadCurrentState = LOAD_DATA) then - -- gk 05.12.10 - -- gk 26.07.10 - if (MULT_EVT_ENABLE_IN = '0') and (load_eod_q = '1') then -- if termination is about to be loaded divide on term - divide_position <= "11"; - disable_prep <= '0'; -- gk 05.12.10 - elsif (MULT_EVT_ENABLE_IN = '1') and (load_eod_q = '1') then - if (size_left > x"0000_0028") then - divide_position <= "01"; - disable_prep <= '0'; -- gk 05.12.10 - else - divide_position <= "11"; - disable_prep <= '0'; -- gk 05.12.10 - end if; - else - divide_position <= "00"; -- still data loaded divide on data - disable_prep <= '1'; -- gk 05.12.10 - end if; - elsif (loadCurrentState = LOAD_SUB) then - if (all_int_ctr = 15) then - divide_position <= "00"; - disable_prep <= '1'; -- gk 05.12.10 - else - divide_position <= "01"; - disable_prep <= '0'; -- gk 05.12.10 - end if; - elsif (loadCurrentState = LOAD_TERM) then - divide_position <= "11"; - disable_prep <= '0'; -- gk 05.12.10 - else - divide_position <= divide_position; - disable_prep <= disable_prep; - end if; - elsif (loadCurrentState = PREP_DATA) then -- gk 06.12.10 reset disable_prep - disable_prep <= '0'; - divide_position <= divide_position; - else - divide_position <= divide_position; - disable_prep <= disable_prep; - end if; - - end if; -end process dividePositionProc; - -allIntCtrProc : process(CLK) -begin - if rising_edge(CLK) then - case loadCurrentState is - - when LIDLE => all_int_ctr <= 0; - - when WAIT_FOR_FC => all_int_ctr <= 0; - - when PUT_Q_LEN => - if (all_int_ctr = 3) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when PUT_Q_DEC => - if (all_int_ctr = 3) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when LOAD_SUB => - if (all_int_ctr = 15) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when LOAD_DATA => all_int_ctr <= 0; - - when LOAD_TERM => - if (all_int_ctr = 31) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when DIVIDE => null; - - when CLEANUP => all_int_ctr <= 0; - - when PREP_DATA => all_int_ctr <= 0; - - when DELAY => all_int_ctr <= 0; - end case; - end if; -end process allIntCtrProc; - -dfRdEnProc : process(loadCurrentState, bytes_loaded, max_frame_size, all_int_ctr, load_eod_q) -begin - if (loadCurrentState = LOAD_DATA) then --- if (bytes_loaded = max_frame_size - x"1") then --- df_rd_en <= '0'; --- -- gk 07.10.10 --- elsif (MULT_EVT_ENABLE_IN = '0') and (load_eod_q = '1') then --- df_rd_en <= '0'; --- -- gk 07.10.10 --- elsif (MULT_EVT_ENABLE_IN = '1') and (size_left = x"0000_003a") then --- df_rd_en <= '0'; --- else --- df_rd_en <= '1'; --- end if; - if (bytes_loaded = max_frame_size - x"1") then - df_rd_en <= '0'; - -- gk 26.07.10 - --elsif (load_eod = '1') or (load_eod_q = '1') then - elsif (load_eod_q = '1') then - df_rd_en <= '0'; --- elsif (sub_bytes_loaded = sub_size_loaded) then --- df_rd_en <= '0'; - else - df_rd_en <= '1'; - end if; - - elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 15) and (bytes_loaded /= max_frame_size - x"1") then - df_rd_en <= '1'; - elsif (loadCurrentState = PREP_DATA) then - df_rd_en <= '1'; - else - df_rd_en <= '0'; - end if; -end process dfRdEnProc; - -shfRdEnProc : process(loadCurrentState, all_int_ctr) -begin - if (loadCurrentState = LOAD_SUB) then - shf_rd_en <= '1'; - elsif (loadCurrentState = LOAD_TERM) and (all_int_ctr < 31) then - shf_rd_en <= '1'; - elsif (loadCurrentState = PUT_Q_DEC) and (all_int_ctr = 3) then - shf_rd_en <= '1'; - else - shf_rd_en <= '0'; - end if; -end process shfRdEnProc; - - -fcWrEnProc : process(loadCurrentState, first_sub_in_multi, from_divide_state, MULT_EVT_ENABLE_IN, divide_position, disable_prep) -begin - if (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) then - fc_wr_en <= '1'; - elsif (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_TERM) then - fc_wr_en <= '1'; - -- gk 04.12.10 - elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') and (disable_prep = '0') then - fc_wr_en <= '1'; - elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (from_divide_state = '1') and ((divide_position = "00") or (divide_position = "01")) and (disable_prep = '0') then - fc_wr_en <= '1'; - else - fc_wr_en <= '0'; - end if; -end process fcWrEnProc; - - --- was all_int_ctr -fcDataProc : process(loadCurrentState, queue_size_temp, PC_QUEUE_DEC_IN, shf_q, df_q_reg, load_int_ctr) -begin - case loadCurrentState is - when LIDLE => fc_data <= x"af"; - when WAIT_FOR_FC => fc_data <= x"bf"; - -- gk 08.04.10 my_int_ctr changed to load_int_ctr - when PUT_Q_LEN => fc_data <= queue_size_temp(load_int_ctr * 8 + 7 downto load_int_ctr * 8); - when PUT_Q_DEC => fc_data <= PC_QUEUE_DEC_IN(load_int_ctr * 8 + 7 downto load_int_ctr * 8); - when LOAD_SUB => fc_data <= shf_q; - when PREP_DATA => fc_data <= df_q_reg; - when LOAD_DATA => fc_data <= df_q_reg; - when LOAD_TERM => fc_data <= shf_q; - when DIVIDE => fc_data <= x"cf"; - when CLEANUP => fc_data <= x"df"; - when others => fc_data <= x"00"; - end case; -end process fcDataProc; - --- delay counters --- gk 28.04.10 -DELAY_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = LIDLE) then - delay_ctr <= PC_DELAY_IN; - elsif ((loadCurrentState = DELAY) and (ticks_ctr(7) = '1')) then - delay_ctr <= delay_ctr - x"1"; - else - delay_ctr <= delay_ctr; - end if; - end if; -end process DELAY_CTR_PROC; - --- gk 28.04.10 -TICKS_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((loadCurrentState = LIDLE) or (ticks_ctr(7) = '1')) then - ticks_ctr <= x"00"; - elsif (loadCurrentState = DELAY) then - ticks_ctr <= ticks_ctr + x"1"; - else - ticks_ctr <= ticks_ctr; - end if; - end if; -end process TICKS_CTR_PROC; - - ---*********************** --- SIZE COUNTERS FOR LOADING SIDE ---*********************** - -queue_size_temp <= queue_size - x"20"; -- size of data without termination - --- gk 08.04.10 -rst_after_sub_comb <= '1' when (loadCurrentState = LIDLE) or - ((loadCurrentState = LOAD_DATA) and (size_left /= x"00000021")) -- gk 26.07.10 -- and (sub_bytes_loaded = sub_size_loaded) - else '0'; - --- gk 08.04.10 -RST_AFTER_SUB_PROC : process(CLK) -begin - if(rising_edge(CLK)) then - rst_after_sub <= rst_after_sub_comb; - end if; -end process RST_AFTER_SUB_PROC; - --- counts all bytes loaded to divide data into frames -bytesLoadedProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = LIDLE) or (loadCurrentState = DIVIDE) or (loadCurrentState = CLEANUP) then - bytes_loaded <= x"0000"; - elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_TERM) then - bytes_loaded <= bytes_loaded + x"1"; - -- gk 05.12.10 --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') then --- bytes_loaded <= bytes_loaded + x"1"; - elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') and (disable_prep = '0') then - bytes_loaded <= bytes_loaded + x"1"; - elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (from_divide_state = '1') and ((divide_position = "00") or (divide_position = "01")) and (disable_prep = '0') then - bytes_loaded <= bytes_loaded + x"1"; - else - bytes_loaded <= bytes_loaded; - end if; - end if; -end process bytesLoadedProc; - --- size of subevent loaded from memory -subSizeLoadedProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 08.04.10 - sub_size_loaded <= x"00000000"; - elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr < 4) then - -- was all_int_ctr - -- gk 08.04.10 my_int_ctr changed to load_int_ctr - sub_size_loaded(7 + load_int_ctr * 8 downto load_int_ctr * 8) <= shf_q; - -- gk 29.03.10 here the padding bytes have to be added to the loadedSize in order to load the correct amount of bytes from fifo - elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 5) and (sub_size_loaded(2) = '1') then - sub_size_loaded <= sub_size_loaded + x"4"; - else - sub_size_loaded <= sub_size_loaded; - end if; - end if; -end process subSizeLoadedProc; - --- counts only raw data bytes being loaded -subBytesLoadedProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 26.07.10 --or (sub_bytes_loaded = sub_size_loaded) -- gk 08.04.10 - sub_bytes_loaded <= x"00000011"; -- subevent headers doesnt count - elsif (loadCurrentState = LOAD_DATA) then - sub_bytes_loaded <= sub_bytes_loaded + x"1"; - else - sub_bytes_loaded <= sub_bytes_loaded; - end if; - end if; -end process subBytesLoadedProc; - --- counts the size of the large udp packet -actualPacketProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then - actual_packet_size <= x"0008"; - elsif (fc_wr_en = '1') then - actual_packet_size <= actual_packet_size + x"1"; - else - actual_packet_size <= actual_packet_size; - end if; - end if; -end process actualPacketProc; - -actualQueueSizeProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = CLEANUP) then - actual_queue_size <= (others => '0'); - elsif (loadCurrentState = LIDLE) then - actual_queue_size <= queue_size; - else - actual_queue_size <= actual_queue_size; - end if; - end if; -end process actualQueueSizeProc; - --- amount of bytes left to send in current packet -sizeLeftProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = CLEANUP) then - size_left <= (others => '0'); - elsif (loadCurrentState = LIDLE) then - size_left <= queue_size; - elsif (fc_wr_en = '1') then - size_left <= size_left - 1; - else - size_left <= size_left; - end if; - end if; -end process sizeLeftProc; - --- HOT FIX: don't rely on CTS information, count the packets on your own. --- In this case, we increment the fragmented packet ID with EOD from ipu2gbe. -THE_FC_IDENT_COUNTER_PROC: process(RESET, CLK) -begin - if (RESET = '1') then - fc_ident <= (others => '0'); - elsif rising_edge(CLK) then - if (PC_END_OF_DATA_IN = '1') then - fc_ident <= fc_ident + 1; - else - fc_ident <= fc_ident; - end if; - end if; -end process THE_FC_IDENT_COUNTER_PROC; - -fc_flags_offset(15 downto 14) <= "00"; - -moreFragmentsProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then - fc_flags_offset(13) <= '0'; - elsif ((loadCurrentState = DIVIDE) and (TC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1')) then - if ((actual_queue_size - actual_packet_size) < max_frame_size) then - fc_flags_offset(13) <= '0'; -- no more fragments - else - fc_flags_offset(13) <= '1'; -- more fragments - end if; - else - fc_flags_offset(13) <= fc_flags_offset(13); - end if; - end if; -end process moreFragmentsProc; - -eodProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = LOAD_DATA) and (bytes_loaded = max_frame_size - 2) then - fc_eod <= '1'; - elsif (loadCurrentState = LOAD_SUB) and (bytes_loaded = max_frame_size - 2) then - fc_eod <= '1'; - elsif (loadCurrentState = LOAD_TERM) and ((bytes_loaded = max_frame_size - 2) or (all_int_ctr = 30)) then - fc_eod <= '1'; - else - fc_eod <= '0'; - end if; - end if; -end process eodProc; - -sodProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1') then - fc_sod <= '1'; - elsif (loadCurrentState = DIVIDE) and (TC_READY_IN = '1') then - fc_sod <= '1'; - else - fc_sod <= '0'; - end if; - end if; -end process sodProc; - -offsetProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then - fc_flags_offset(12 downto 0) <= (others => '0'); - elsif ((loadCurrentState = DIVIDE) and (TC_READY_IN = '1')) then - fc_flags_offset(12 downto 0) <= actual_packet_size(15 downto 3); - else - fc_flags_offset(12 downto 0) <= fc_flags_offset(12 downto 0); - end if; - end if; -end process offsetProc; - -fcIPSizeProc : process(CLK) -begin - if rising_edge(CLK) then - if ((loadCurrentState = DIVIDE) and (TC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1')) then - if (size_left >= max_frame_size) then - fc_ip_size <= max_frame_size; - else - fc_ip_size <= size_left(15 downto 0); - end if; - else - fc_ip_size <= fc_ip_size; - end if; - end if; -end process fcIPSizeProc; - -fcUDPSizeProc : process(CLK) -begin - if rising_edge(CLK) then - if (loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1') then - fc_udp_size <= queue_size(15 downto 0); - else - fc_udp_size <= fc_udp_size; - end if; - end if; -end process fcUDPSizeProc; - - ---*********************** --- SUBEVENT HEADERS WRITE AND READ ---*********************** - -SUBEVENT_HEADERS_FIFO : fifo_4kx8_ecp3 --fifo_16kx8 -port map( - Data => shf_data, - WrClock => CLK, - RdClock => CLK, - WrEn => shf_wr_en, - RdEn => shf_rd_en, - Reset => RESET, - RPReset => RESET, - Q => shf_q, - Empty => shf_empty, - Full => shf_full -); - --- write enable for SHF -shf_wr_en <= '1' when ((saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA)) - else '0'; - --- data multiplexing for SHF (convert 32bit LWs to 8bit) --- CHANGED. --- The SubEventHeader (4x 32bit is stored in [MSB:LSB] now, same byte order as data from PC. -shfDataProc : process(saveSubCurrentState, sub_size_to_save, PC_DECODING_IN, PC_EVENT_ID_IN, - pc_trig_nr, my_int_ctr, fc_data) -begin - case saveSubCurrentState is - when SIDLE => shf_data <= x"ac"; - when SAVE_SIZE => shf_data <= sub_size_to_save(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_DECODING => shf_data <= PC_DECODING_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_ID => shf_data <= PC_EVENT_ID_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_TRIG_NR => shf_data <= pc_trig_nr(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_TERM => shf_data <= fc_data; - when others => shf_data <= x"00"; - end case; -end process shfDataProc; - -saveSubMachineProc : process(RESET, CLK) -begin - if RESET = '1' then - saveSubCurrentState <= SIDLE; - elsif rising_edge(CLK) then --- if (RESET = '1') then --- saveSubCurrentState <= SIDLE; --- else - saveSubCurrentState <= saveSubNextState; --- end if; - end if; -end process saveSubMachineProc; - -saveSubMachine : process(saveSubCurrentState, PC_START_OF_SUB_IN, sub_int_ctr, loadCurrentState, TC_H_READY_IN) -begin - case saveSubCurrentState is - when SIDLE => - save_state <= x"1"; - if (PC_START_OF_SUB_IN = '1') then - saveSubNextState <= SAVE_SIZE; - -- this branch is dangerous! - elsif (loadCurrentState = WAIT_FOR_FC) and (TC_H_READY_IN = '1') then -- means that loadCurrentState is put_q_len - saveSubNextState <= SAVE_TERM; - else - saveSubNextState <= SIDLE; - end if; - when SAVE_SIZE => - save_state <= x"2"; - if (sub_int_ctr = 3) then - saveSubNextState <= SAVE_DECODING; - else - saveSubNextState <= SAVE_SIZE; - end if; - when SAVE_DECODING => - save_state <= x"3"; - if (sub_int_ctr = 3) then - saveSubNextState <= SAVE_ID; - else - saveSubNextState <= SAVE_DECODING; - end if; - when SAVE_ID => - save_state <= x"4"; - if (sub_int_ctr = 3) then - saveSubNextState <= SAVE_TRIG_NR; - else - saveSubNextState <= SAVE_ID; - end if; - when SAVE_TRIG_NR => - save_state <= x"5"; - if (sub_int_ctr = 3) then - saveSubNextState <= SIDLE; - else - saveSubNextState <= SAVE_TRIG_NR; - end if; - when SAVE_TERM => - save_state <= x"6"; - if (sub_int_ctr = 31) then - saveSubNextState <= SIDLE; - else - saveSubNextState <= SAVE_TERM; - end if; - when others => - save_state <= x"f"; - saveSubNextState <= SIDLE; - end case; -end process; - --- This counter is used for breaking down 32bit information words into 8bit bytes for --- storing them in the SHF. --- It is also used for the termination 32byte sequence. -subIntProc: process( CLK ) -begin - if rising_edge(CLK) then - if (saveSubCurrentState = SIDLE) then - sub_int_ctr <= 0; - elsif (sub_int_ctr = 3) and (saveSubCurrentState /= SAVE_TERM) then - sub_int_ctr <= 0; - elsif (sub_int_ctr = 31) and (saveSubCurrentState = SAVE_TERM) then - sub_int_ctr <= 0; - elsif (saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA) then - sub_int_ctr <= sub_int_ctr + 1; - else - sub_int_ctr <= sub_int_ctr; - end if; - end if; -end process subIntProc; - ---debug(3 downto 0) <= constr_state; ---debug(7 downto 4) <= save_state; ---debug(11 downto 8) <= load_state; ---debug(27 downto 12) <= queue_size(15 downto 0); ---debug(28) <= df_full; ---debug(29) <= df_empty; ---debug(30) <= shf_full; ---debug(31) <= shf_empty; --- ---debug(47 downto 32) <= size_left(15 downto 0); ---debug(52 downto 48) <= all_ctr; ---debug(53) <= pc_ready; - --- outputs -PC_READY_OUT <= pc_ready; -TC_WR_EN_OUT <= fc_wr_en; -TC_DATA_OUT <= fc_data; -TC_IP_SIZE_OUT <= fc_ip_size; -TC_UDP_SIZE_OUT <= fc_udp_size; --- FC_IDENT_OUT(15 downto 8) <= fc_ident(7 downto 0); --- FC_IDENT_OUT(7 downto 0) <= fc_ident(15 downto 8); -TC_FLAGS_OFFSET_OUT <= fc_flags_offset; -TC_SOD_OUT <= fc_sod; -TC_EOD_OUT <= fc_eod; - -process(CLK) -begin - if rising_edge(CLK) then - DEBUG_OUT(3 downto 0) <= constr_state; - DEBUG_OUT(7 downto 4) <= load_state; - DEBUG_OUT(11 downto 8) <= save_state; - DEBUG_OUT(12) <= df_full; - DEBUG_OUT(13) <= df_empty; - DEBUG_OUT(14) <= shf_full; - DEBUG_OUT(15) <= shf_empty; - end if; -end process; -DEBUG_OUT(63 downto 16) <= (others => '0'); - -end trb_net16_gbe_packet_constr; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_gbe_packet_constr_20101006.vhd b/gbe2_ecp3/trb_net16_gbe_packet_constr_20101006.vhd deleted file mode 100644 index 1102f44..0000000 --- a/gbe2_ecp3/trb_net16_gbe_packet_constr_20101006.vhd +++ /dev/null @@ -1,958 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -entity trb_net16_gbe_packet_constr is -port( - RESET : in std_logic; - CLK : in std_logic; - -- ports for user logic - PC_WR_EN_IN : in std_logic; -- write into queueConstr from userLogic - PC_DATA_IN : in std_logic_vector(7 downto 0); - PC_READY_OUT : out std_logic; - PC_START_OF_SUB_IN : in std_logic; - PC_END_OF_DATA_IN : in std_logic; - -- queue and subevent layer headers - PC_SUB_SIZE_IN : in std_logic_vector(31 downto 0); -- store and swap - PC_PADDING_IN : in std_logic; -- gk 29.03.10 - PC_DECODING_IN : in std_logic_vector(31 downto 0); -- swap - PC_EVENT_ID_IN : in std_logic_vector(31 downto 0); -- swap - PC_TRIG_NR_IN : in std_logic_vector(31 downto 0); -- store and swap! - PC_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); -- swap - PC_MAX_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); -- DO NOT SWAP - PC_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 28.04.10 - -- FrameConstructor ports - FC_WR_EN_OUT : out std_logic; - FC_DATA_OUT : out std_logic_vector(7 downto 0); - FC_H_READY_IN : in std_logic; - FC_READY_IN : in std_logic; - FC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_IDENT_OUT : out std_logic_vector(15 downto 0); - FC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - FC_SOD_OUT : out std_logic; - FC_EOD_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_packet_constr; - -architecture trb_net16_gbe_packet_constr of trb_net16_gbe_packet_constr is - --- -- Placer Directives --- attribute HGROUP : string; --- -- for whole architecture --- attribute HGROUP of trb_net16_gbe_packet_constr : architecture is "GBE_packet_constr_group"; - -component fifo_64kx9 -port ( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - --- FIFO for SubEventHeader information -component fifo_2048x8 is -port ( - Data : in std_logic_vector(7 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(7 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -signal df_wr_en : std_logic; -signal df_rd_en : std_logic; -signal df_q : std_logic_vector(7 downto 0); -signal df_q_reg : std_logic_vector(7 downto 0); -signal df_empty : std_logic; -signal df_full : std_logic; - -signal fc_data : std_logic_vector(7 downto 0); -signal fc_wr_en : std_logic; -signal fc_sod : std_logic; -signal fc_eod : std_logic; -signal fc_ident : std_logic_vector(15 downto 0); -- change this to own counter! -signal fc_flags_offset : std_logic_vector(15 downto 0); - -signal shf_data : std_logic_vector(7 downto 0); -signal shf_wr_en : std_logic; -signal shf_rd_en : std_logic; -signal shf_q : std_logic_vector(7 downto 0); -signal shf_empty : std_logic; -signal shf_full : std_logic; - -type constructStates is (CIDLE, SAVE_DATA, WAIT_FOR_LOAD); -signal constructCurrentState, constructNextState : constructStates; -signal constr_state : std_logic_vector(3 downto 0); -signal all_int_ctr : integer range 0 to 31; -signal all_ctr : std_logic_vector(4 downto 0); - -type saveSubStates is (SIDLE, SAVE_SIZE, SAVE_DECODING, SAVE_ID, SAVE_TRIG_NR, SAVE_TERM); -signal saveSubCurrentState, saveSubNextState : saveSubStates; -signal save_state : std_logic_vector(3 downto 0); -signal sub_int_ctr : integer range 0 to 31; -signal sub_ctr : std_logic_vector(4 downto 0); -signal my_int_ctr : integer range 0 to 3; -signal my_ctr : std_logic_vector(1 downto 0); - -type loadStates is (LIDLE, WAIT_FOR_FC, PUT_Q_LEN, PUT_Q_DEC, LOAD_SUB, PREP_DATA, LOAD_DATA, DIVIDE, LOAD_TERM, CLEANUP, DELAY); -signal loadCurrentState, loadNextState: loadStates; -signal load_state : std_logic_vector(3 downto 0); - -signal queue_size : std_logic_vector(31 downto 0); -- sum of all subevents sizes plus their headers and queue headers and termination -signal queue_size_temp : std_logic_vector(31 downto 0); -signal actual_queue_size : std_logic_vector(31 downto 0); -- queue size used during loading process when queue_size is no more valid -signal bytes_loaded : std_logic_vector(15 downto 0); -- size of actual constructing frame -signal sub_size_to_save : std_logic_vector(31 downto 0); -- size of subevent to save to shf -signal sub_size_loaded : std_logic_vector(31 downto 0); -- size of subevent actually being transmitted -signal sub_bytes_loaded : std_logic_vector(31 downto 0); -- amount of bytes of actual subevent sent -signal actual_packet_size : std_logic_vector(15 downto 0); -- actual size of whole udp packet -signal size_left : std_logic_vector(31 downto 0); -signal fc_ip_size : std_logic_vector(15 downto 0); -signal fc_udp_size : std_logic_vector(15 downto 0); -signal max_frame_size : std_logic_vector(15 downto 0); -signal divide_position : std_logic_vector(1 downto 0); -- 00->data, 01->sub, 11->term -signal debug : std_logic_vector(63 downto 0); -signal pc_ready : std_logic; - -signal pc_sub_size : std_logic_vector(31 downto 0); -signal pc_trig_nr : std_logic_vector(31 downto 0); -signal rst_after_sub_comb : std_logic; -- gk 08.04.10 -signal rst_after_sub : std_logic; -- gk 08.04.10 -signal load_int_ctr : integer range 0 to 3; -- gk 08.04.10 -signal delay_ctr : std_logic_vector(31 downto 0); -- gk 28.04.10 -signal ticks_ctr : std_logic_vector(7 downto 0); -- gk 28.04.10 - --- gk 26.07.10 -signal load_eod : std_logic; -signal load_eod_q : std_logic; - -begin - --- Fakes ---debug <= (others => '0'); - -my_int_ctr <= (3 - to_integer(to_unsigned(sub_int_ctr, 2))); -- reverse byte order -load_int_ctr <= (3 - to_integer(to_unsigned(all_int_ctr, 2))); -- gk 08.04.10 - -all_ctr <= std_logic_vector(to_unsigned(all_int_ctr, all_ctr'length)); -- for debugging -sub_ctr <= std_logic_vector(to_unsigned(sub_int_ctr, sub_ctr'length)); -- for debugging -my_ctr <= std_logic_vector(to_unsigned(my_int_ctr, my_ctr'length)); -- for debugging - -max_frame_size <= PC_MAX_FRAME_SIZE_IN; - --- Ready signal for PacketConstructor -pc_ready <= '1' when (constructCurrentState = CIDLE) and (df_empty = '1') else '0'; - --- store event information on Start_of_Subevent -THE_EVT_INFO_STORE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if (RESET = '1') then -- gk 31.05.10 - pc_sub_size <= (others => '0'); - pc_trig_nr <= (others => '0'); - elsif( PC_START_OF_SUB_IN = '1' ) then - pc_sub_size <= PC_SUB_SIZE_IN; - pc_trig_nr <= PC_TRIG_NR_IN; - end if; - end if; -end process; - --- Data FIFO for incoming packet data from IPU buffer --- gk 26.07.10 -DATA_FIFO : fifo_64kx9 -port map( - Data(7 downto 0) => PC_DATA_IN, - Data(8) => PC_END_OF_DATA_IN, - WrClock => CLK, - RdClock => CLK, - WrEn => df_wr_en, - RdEn => df_rd_en, - Reset => RESET, - RPReset => RESET, - Q(7 downto 0) => df_q, - Q(8) => load_eod, - Empty => df_empty, - Full => df_full -); - -LOAD_EOD_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - load_eod_q <= '0'; - else - load_eod_q <= load_eod; - end if; - end if; -end process LOAD_EOD_PROC; - --- Write enable for the data FIFO --- !!!combinatorial signal!!! --- could be avoided as IPU2GBE does only send data in case of PC_READY. -df_wr_en <= '1' when ((PC_WR_EN_IN = '1') and (constructCurrentState /= WAIT_FOR_LOAD)) - else '0'; - --- Output register for data FIFO -dfQProc : process(CLK) -begin - if rising_edge(CLK) then - df_q_reg <= df_q; - end if; -end process dfQProc; - --- Construction state machine -constructMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - constructCurrentState <= CIDLE; - else - constructCurrentState <= constructNextState; - end if; - end if; -end process constructMachineProc; - -constructMachine : process(constructCurrentState, PC_WR_EN_IN, PC_END_OF_DATA_IN, loadCurrentState, saveSubCurrentState, sub_int_ctr) -begin - case constructCurrentState is - when CIDLE => - constr_state <= x"0"; - if( PC_WR_EN_IN = '1' ) then - constructNextState <= SAVE_DATA; - else - constructNextState <= CIDLE; - end if; - when SAVE_DATA => - constr_state <= x"1"; - if( PC_END_OF_DATA_IN = '1' ) then - constructNextState <= WAIT_FOR_LOAD; - else - constructNextState <= SAVE_DATA; - end if; - when WAIT_FOR_LOAD => - constr_state <= x"2"; - if( (df_empty = '1') and (loadCurrentState = LIDLE) ) then -- waits until the whole packet is transmitted - constructNextState <= CIDLE; - else - constructNextState <= WAIT_FOR_LOAD; - end if; - when others => - constr_state <= x"f"; - constructNextState <= CIDLE; - end case; -end process constructMachine; - ---*********************** --- SIZE COUNTERS FOR SAVING SIDE ---*********************** - --- gk 29.03.10 the subevent size saved to its headers cannot contain padding bytes but they are included in pc_sub_size --- that's why they are removed if pc_padding flag is asserted -sub_size_to_save <= (x"10" + pc_sub_size) when (PC_PADDING_IN = '0') - else (x"c" + pc_sub_size); -- subevent headers + data - --- BUG HERE BUG HERE BUG HERE BUG HERE --- gk 29.03.10 no changes here because the queue size should contain the padding bytes of subevents -queueSizeProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = CLEANUP) then - queue_size <= x"00000028"; -- + 8B for queue headers and 32B for termination - elsif (saveSubCurrentState = SAVE_SIZE) and (sub_int_ctr = 3) then - queue_size <= queue_size + pc_sub_size + x"10"; -- + 16B for each subevent headers - end if; - end if; -end process queueSizeProc; - - ---*********************** --- LOAD DATA COMBINED WITH HEADERS INTO FC, QUEUE TRANSMISSION ---*********************** - -loadMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loadCurrentState <= LIDLE; - else - loadCurrentState <= loadNextState; - end if; - end if; -end process loadMachineProc; - -loadMachine : process(loadCurrentState, constructCurrentState, all_int_ctr, df_empty, - sub_bytes_loaded, sub_size_loaded, size_left, FC_H_READY_IN, max_frame_size, - bytes_loaded, divide_position, PC_DELAY_IN, delay_ctr, load_eod_q) -begin - case loadCurrentState is - when LIDLE => - load_state <= x"0"; - if ((constructCurrentState = WAIT_FOR_LOAD) and (df_empty = '0')) then - loadNextState <= WAIT_FOR_FC; - else - loadNextState <= LIDLE; - end if; - when WAIT_FOR_FC => - load_state <= x"1"; - if (FC_H_READY_IN = '1') then - loadNextState <= PUT_Q_LEN; - else - loadNextState <= WAIT_FOR_FC; - end if; - when PUT_Q_LEN => - load_state <= x"2"; - if (all_int_ctr = 3) then - loadNextState <= PUT_Q_DEC; - else - loadNextState <= PUT_Q_LEN; - end if; - when PUT_Q_DEC => - load_state <= x"3"; - if (all_int_ctr = 3) then - loadNextState <= LOAD_SUB; - else - loadNextState <= PUT_Q_DEC; - end if; - when LOAD_SUB => - load_state <= x"4"; - if (bytes_loaded = max_frame_size - 1) then - loadNextState <= DIVIDE; - elsif (all_int_ctr = 15) then - loadNextState <= PREP_DATA; - else - loadNextState <= LOAD_SUB; - end if; - when PREP_DATA => - load_state <= x"5"; - loadNextState <= LOAD_DATA; - when LOAD_DATA => - load_state <= x"6"; - if (bytes_loaded = max_frame_size - 1) then - loadNextState <= DIVIDE; - -- gk 26.07.10 - -- close packet after one event loaded - elsif (load_eod_q = '1') then - loadNextState <= LOAD_TERM; --- elsif (sub_bytes_loaded = sub_size_loaded) then -- if all subevent bytes are loaded --- if (size_left = x"00000021") then -- and there is no more data, only termination left --- -- gk 21.07.10 --- if (PC_SKIP_TERM_IN = '0') then --- loadNextState <= LOAD_TERM; -- add termination and close packet --- else --- loadNextState <= CLEANUP; --- end if; --- else -- there is more data in fifo --- loadNextState <= LOAD_SUB; -- add another subevent --- end if; - else - loadNextState <= LOAD_DATA; - end if; - when DIVIDE => - load_state <= x"7"; - if (FC_H_READY_IN = '1') then - if (divide_position = "00") then - loadNextState <= PREP_DATA; - elsif (divide_position = "01") then - loadNextState <= LOAD_SUB; - else - loadNextState <= LOAD_TERM; - end if; - else - loadNextState <= DIVIDE; - end if; - when LOAD_TERM => - load_state <= x"8"; - if (bytes_loaded = max_frame_size - 1) and (all_int_ctr /= 31) then - loadNextState <= DIVIDE; - elsif (all_int_ctr = 31) then - loadNextState <= CLEANUP; - else - loadNextState <= LOAD_TERM; - end if; - -- gk 28.04.10 - when CLEANUP => - load_state <= x"9"; - if (PC_DELAY_IN = x"0000_0000") then - loadNextState <= LIDLE; - else - loadNextState <= DELAY; - end if; - -- gk 28.04.10 - when DELAY => - load_state <= x"a"; - if (delay_ctr = x"0000_0000") then - loadNextState <= LIDLE; - else - loadNextState <= DELAY; - end if; - when others => - load_state <= x"f"; - loadNextState <= LIDLE; - end case; -end process loadMachine; - -dividePositionProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - divide_position <= "00"; - elsif (bytes_loaded = max_frame_size - 1) then - if (loadCurrentState = LIDLE) then - divide_position <= "00"; - elsif (loadCurrentState = LOAD_DATA) then - -- gk 26.07.10 - if (load_eod_q = '1') then -- if termination is about to be loaded divide on term - divide_position <= "11"; - else - divide_position <= "00"; -- still data loaded divide on data --- if (sub_bytes_loaded = sub_size_loaded) and (size_left = x"00000021") then --- divide_position <= "11"; --- elsif (sub_bytes_loaded = sub_size_loaded) and (size_left /= x"00000021") then --- divide_position <= "01"; --- else --- divide_position <= "00"; - end if; - elsif (loadCurrentState = LOAD_SUB) then - if (all_int_ctr = 15) then - divide_position <= "00"; - else - divide_position <= "01"; - end if; - elsif (loadCurrentState = LOAD_TERM) then - divide_position <= "11"; - end if; - end if; - end if; -end process dividePositionProc; - -allIntCtrProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then -- gk 31.05.10 - all_int_ctr <= 0; - else - case loadCurrentState is - - when LIDLE => all_int_ctr <= 0; - - when WAIT_FOR_FC => all_int_ctr <= 0; - - when PUT_Q_LEN => - if (all_int_ctr = 3) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when PUT_Q_DEC => - if (all_int_ctr = 3) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when LOAD_SUB => - if (all_int_ctr = 15) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when LOAD_DATA => all_int_ctr <= 0; - - when LOAD_TERM => - if (all_int_ctr = 31) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when DIVIDE => null; --all_int_ctr <= all_int_ctr; - - when CLEANUP => all_int_ctr <= 0; - - when PREP_DATA => all_int_ctr <= 0; - - when DELAY => all_int_ctr <= 0; - end case; - end if; - end if; -end process allIntCtrProc; - -dfRdEnProc : process(loadCurrentState, bytes_loaded, max_frame_size, sub_bytes_loaded, - sub_size_loaded, all_int_ctr, RESET, load_eod, load_eod_q) -begin - if (RESET = '1') then -- gk 31.05.10 - df_rd_en <= '0'; - elsif (loadCurrentState = LOAD_DATA) then --- if (bytes_loaded >= max_frame_size - x"1") then --- df_rd_en <= '0'; --- elsif (sub_bytes_loaded >= sub_size_loaded) then --- df_rd_en <= '0'; - if (bytes_loaded = max_frame_size - x"1") then - df_rd_en <= '0'; - -- gk 26.07.10 - --elsif (load_eod = '1') or (load_eod_q = '1') then - elsif (load_eod_q = '1') then - df_rd_en <= '0'; --- elsif (sub_bytes_loaded = sub_size_loaded) then --- df_rd_en <= '0'; - else - df_rd_en <= '1'; - end if; - elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 15) and (bytes_loaded /= max_frame_size - x"1") then - df_rd_en <= '1'; - elsif (loadCurrentState = PREP_DATA) then - df_rd_en <= '1'; - else - df_rd_en <= '0'; - end if; -end process dfRdEnProc; - -shfRdEnProc : process(loadCurrentState, all_int_ctr, RESET) -begin - if (RESET = '1') then -- gk 31.05.10 - shf_rd_en <= '0'; - elsif (loadCurrentState = LOAD_SUB) then - shf_rd_en <= '1'; - elsif (loadCurrentState = LOAD_TERM) and (all_int_ctr < 31) then - shf_rd_en <= '1'; - elsif (loadCurrentState = PUT_Q_DEC) and (all_int_ctr = 3) then - shf_rd_en <= '1'; - else - shf_rd_en <= '0'; - end if; -end process shfRdEnProc; - - -fcWrEnProc : process(loadCurrentState, RESET) -begin - if (RESET = '1') then -- gk 31.05.10 - fc_wr_en <= '0'; - elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) then - fc_wr_en <= '1'; - elsif (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_TERM) then - fc_wr_en <= '1'; - else - fc_wr_en <= '0'; - end if; -end process fcWrEnProc; - --- was all_int_ctr -fcDataProc : process(loadCurrentState, queue_size_temp, PC_QUEUE_DEC_IN, shf_q, df_q_reg, load_int_ctr) -begin - case loadCurrentState is - when LIDLE => fc_data <= x"af"; - when WAIT_FOR_FC => fc_data <= x"bf"; - -- gk 08.04.10 my_int_ctr changed to load_int_ctr - when PUT_Q_LEN => fc_data <= queue_size_temp(load_int_ctr * 8 + 7 downto load_int_ctr * 8); - when PUT_Q_DEC => fc_data <= PC_QUEUE_DEC_IN(load_int_ctr * 8 + 7 downto load_int_ctr * 8); - when LOAD_SUB => fc_data <= shf_q; - when PREP_DATA => fc_data <= df_q_reg; - when LOAD_DATA => fc_data <= df_q_reg; - when LOAD_TERM => fc_data <= shf_q; - when DIVIDE => fc_data <= x"cf"; - when CLEANUP => fc_data <= x"df"; - when others => fc_data <= x"00"; - end case; -end process fcDataProc; - --- delay counters --- gk 28.04.10 -DELAY_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (loadCurrentState = LIDLE)) then - delay_ctr <= PC_DELAY_IN; - elsif ((loadCurrentState = DELAY) and (ticks_ctr(7) = '1')) then - delay_ctr <= delay_ctr - x"1"; - end if; - end if; -end process DELAY_CTR_PROC; - --- gk 28.04.10 -TICKS_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (loadCurrentState = LIDLE) or (ticks_ctr(7) = '1')) then - ticks_ctr <= x"00"; - elsif (loadCurrentState = DELAY) then - ticks_ctr <= ticks_ctr + x"1"; - end if; - end if; -end process TICKS_CTR_PROC; - - ---*********************** --- SIZE COUNTERS FOR LOADING SIDE ---*********************** - -queue_size_temp <= queue_size - x"20"; -- size of data without termination - --- gk 08.04.10 -rst_after_sub_comb <= '1' when (loadCurrentState = LIDLE) or - ((loadCurrentState = LOAD_DATA) and (size_left /= x"00000021")) -- gk 26.07.10 -- and (sub_bytes_loaded = sub_size_loaded) - else '0'; - --- gk 08.04.10 -RST_AFTER_SUB_PROC : process(CLK) -begin - if(rising_edge(CLK)) then - if(RESET = '1') then - rst_after_sub <= '0'; - else - rst_after_sub <= rst_after_sub_comb; - end if; - end if; -end process RST_AFTER_SUB_PROC; - --- counts all bytes loaded to divide data into frames -bytesLoadedProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = DIVIDE) or (loadCurrentState = CLEANUP) then - bytes_loaded <= x"0000"; - elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_TERM) then - bytes_loaded <= bytes_loaded + x"1"; - end if; - end if; -end process bytesLoadedProc; - --- size of subevent loaded from memory -subSizeLoadedProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 08.04.10 - sub_size_loaded <= x"00000000"; - elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr < 4) then - -- was all_int_ctr - -- gk 08.04.10 my_int_ctr changed to load_int_ctr - sub_size_loaded(7 + load_int_ctr * 8 downto load_int_ctr * 8) <= shf_q; - -- gk 29.03.10 here the padding bytes have to be added to the loadedSize in order to load the correct amount of bytes from fifo - elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 5) and (sub_size_loaded(2) = '1') then - sub_size_loaded <= sub_size_loaded + x"4"; - end if; - end if; -end process subSizeLoadedProc; - --- counts only raw data bytes being loaded -subBytesLoadedProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 26.07.10 --or (sub_bytes_loaded = sub_size_loaded) -- gk 08.04.10 - sub_bytes_loaded <= x"00000011"; -- subevent headers doesnt count - elsif (loadCurrentState = LOAD_DATA) then - sub_bytes_loaded <= sub_bytes_loaded + x"1"; - end if; - end if; -end process subBytesLoadedProc; - --- counts the size of the large udp packet -actualPacketProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then - actual_packet_size <= x"0008"; - elsif (fc_wr_en = '1') then - actual_packet_size <= actual_packet_size + x"1"; - end if; - end if; -end process actualPacketProc; - -actualQueueSizeProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = CLEANUP) then - actual_queue_size <= (others => '0'); - elsif (loadCurrentState = LIDLE) then - actual_queue_size <= queue_size; - end if; - end if; -end process actualQueueSizeProc; - --- amount of bytes left to send in current packet -sizeLeftProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = CLEANUP) then - size_left <= (others => '0'); - elsif (loadCurrentState = LIDLE) then - size_left <= queue_size; - elsif (fc_wr_en = '1') then - size_left <= size_left - 1; - end if; - end if; -end process sizeLeftProc; - --- HOT FIX: don't rely on CTS information, count the packets on your own. --- In this case, we increment the fragmented packet ID with EOD from ipu2gbe. -THE_FC_IDENT_COUNTER_PROC: process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - fc_ident <= (others => '0'); - elsif (PC_END_OF_DATA_IN = '1') then - fc_ident <= fc_ident + 1; - end if; - end if; -end process THE_FC_IDENT_COUNTER_PROC; - -fc_flags_offset(15 downto 14) <= "00"; - -moreFragmentsProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then - fc_flags_offset(13) <= '0'; - elsif ((loadCurrentState = DIVIDE) and (FC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1')) then - if ((actual_queue_size - actual_packet_size) < max_frame_size) then - fc_flags_offset(13) <= '0'; -- no more fragments - else - fc_flags_offset(13) <= '1'; -- more fragments - end if; - end if; - end if; -end process moreFragmentsProc; - -eodProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - fc_eod <= '0'; - elsif (loadCurrentState = LOAD_DATA) and (bytes_loaded = max_frame_size - 2) then - fc_eod <= '1'; - elsif (loadCurrentState = LOAD_SUB) and (bytes_loaded = max_frame_size - 2) then - fc_eod <= '1'; - elsif (loadCurrentState = LOAD_TERM) and ((bytes_loaded = max_frame_size - 2) or (all_int_ctr = 30)) then - fc_eod <= '1'; - else - fc_eod <= '0'; - end if; - end if; -end process eodProc; - -sodProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - fc_sod <= '0'; - elsif (loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1') then - fc_sod <= '1'; - elsif (loadCurrentState = DIVIDE) and (FC_READY_IN = '1') then - fc_sod <= '1'; - else - fc_sod <= '0'; - end if; - end if; -end process sodProc; - -offsetProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then - fc_flags_offset(12 downto 0) <= (others => '0'); - elsif ((loadCurrentState = DIVIDE) and (FC_READY_IN = '1')) then - fc_flags_offset(12 downto 0) <= actual_packet_size(15 downto 3); - end if; - end if; -end process offsetProc; - -fcIPSizeProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET= '1') then - fc_ip_size <= (others => '0'); - elsif ((loadCurrentState = DIVIDE) and (FC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1')) then - if (size_left >= max_frame_size) then - fc_ip_size <= max_frame_size; - else - fc_ip_size <= size_left(15 downto 0); - end if; - end if; - end if; -end process fcIPSizeProc; - -fcUDPSizeProc : process(CLK) - begin - if rising_edge(CLK) then - if (RESET = '1') then - fc_udp_size <= (others => '0'); - elsif (loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1') then - fc_udp_size <= queue_size(15 downto 0); - end if; - end if; -end process fcUDPSizeProc; - - ---*********************** --- SUBEVENT HEADERS WRITE AND READ ---*********************** - -SUBEVENT_HEADERS_FIFO : fifo_2048x8 -port map( - Data => shf_data, - WrClock => CLK, - RdClock => CLK, - WrEn => shf_wr_en, - RdEn => shf_rd_en, - Reset => RESET, - RPReset => RESET, - Q => shf_q, - Empty => shf_empty, - Full => shf_full -); - --- write enable for SHF -shf_wr_en <= '1' when ((saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA)) - else '0'; - --- data multiplexing for SHF (convert 32bit LWs to 8bit) --- CHANGED. --- The SubEventHeader (4x 32bit is stored in [MSB:LSB] now, same byte order as data from PC. -shfDataProc : process(saveSubCurrentState, sub_size_to_save, PC_DECODING_IN, PC_EVENT_ID_IN, - pc_trig_nr, my_int_ctr, fc_data) -begin - case saveSubCurrentState is - when SIDLE => shf_data <= x"ac"; - when SAVE_SIZE => shf_data <= sub_size_to_save(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_DECODING => shf_data <= PC_DECODING_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_ID => shf_data <= PC_EVENT_ID_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_TRIG_NR => shf_data <= pc_trig_nr(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_TERM => shf_data <= fc_data; - when others => shf_data <= x"00"; - end case; -end process shfDataProc; - -saveSubMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saveSubCurrentState <= SIDLE; - else - saveSubCurrentState <= saveSubNextState; - end if; - end if; -end process saveSubMachineProc; - -saveSubMachine : process(saveSubCurrentState, PC_START_OF_SUB_IN, sub_int_ctr, loadCurrentState, FC_H_READY_IN) -begin - case saveSubCurrentState is - when SIDLE => - save_state <= x"0"; - if (PC_START_OF_SUB_IN = '1') then - saveSubNextState <= SAVE_SIZE; - -- this branch is dangerous! - elsif (loadCurrentState = WAIT_FOR_FC) and (FC_H_READY_IN = '1') then -- means that loadCurrentState is put_q_len - saveSubNextState <= SAVE_TERM; - else - saveSubNextState <= SIDLE; - end if; - when SAVE_SIZE => - save_state <= x"1"; - if (sub_int_ctr = 3) then - saveSubNextState <= SAVE_DECODING; - else - saveSubNextState <= SAVE_SIZE; - end if; - when SAVE_DECODING => - save_state <= x"2"; - if (sub_int_ctr = 3) then - saveSubNextState <= SAVE_ID; - else - saveSubNextState <= SAVE_DECODING; - end if; - when SAVE_ID => - save_state <= x"3"; - if (sub_int_ctr = 3) then - saveSubNextState <= SAVE_TRIG_NR; - else - saveSubNextState <= SAVE_ID; - end if; - when SAVE_TRIG_NR => - save_state <= x"4"; - if (sub_int_ctr = 3) then - saveSubNextState <= SIDLE; - else - saveSubNextState <= SAVE_TRIG_NR; - end if; - when SAVE_TERM => - save_state <= x"5"; - if (sub_int_ctr = 31) then - saveSubNextState <= SIDLE; - else - saveSubNextState <= SAVE_TERM; - end if; - when others => - save_state <= x"f"; - saveSubNextState <= SIDLE; - end case; -end process; - --- This counter is used for breaking down 32bit information words into 8bit bytes for --- storing them in the SHF. --- It is also used for the termination 32byte sequence. -subIntProc: process( CLK ) -begin - if rising_edge(CLK) then - if (RESET = '1') or (saveSubCurrentState = SIDLE) then - sub_int_ctr <= 0; - elsif (sub_int_ctr = 3) and (saveSubCurrentState /= SAVE_TERM) then - sub_int_ctr <= 0; - elsif (sub_int_ctr = 31) and (saveSubCurrentState = SAVE_TERM) then - sub_int_ctr <= 0; - elsif (saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA) then - sub_int_ctr <= sub_int_ctr + 1; - end if; - end if; -end process subIntProc; - -debug(3 downto 0) <= constr_state; -debug(7 downto 4) <= save_state; -debug(11 downto 8) <= load_state; -debug(27 downto 12) <= queue_size(15 downto 0); -debug(28) <= df_full; -debug(29) <= df_empty; -debug(30) <= shf_full; -debug(31) <= shf_empty; - -debug(47 downto 32) <= size_left(15 downto 0); -debug(52 downto 48) <= all_ctr; -debug(53) <= pc_ready; - --- outputs -PC_READY_OUT <= pc_ready; -FC_WR_EN_OUT <= fc_wr_en; -FC_DATA_OUT <= fc_data; -FC_IP_SIZE_OUT <= fc_ip_size; -FC_UDP_SIZE_OUT <= fc_udp_size; -FC_IDENT_OUT(15 downto 8) <= fc_ident(7 downto 0); -FC_IDENT_OUT(7 downto 0) <= fc_ident(15 downto 8); -FC_FLAGS_OFFSET_OUT <= fc_flags_offset; -FC_SOD_OUT <= fc_sod; -FC_EOD_OUT <= fc_eod; - -DEBUG_OUT <= debug; - -end trb_net16_gbe_packet_constr; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_gbe_packet_constr_nologic.vhd b/gbe2_ecp3/trb_net16_gbe_packet_constr_nologic.vhd deleted file mode 100644 index 41ab0b1..0000000 --- a/gbe2_ecp3/trb_net16_gbe_packet_constr_nologic.vhd +++ /dev/null @@ -1,1099 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -entity trb_net16_gbe_packet_constr is -port( - RESET : in std_logic; - CLK : in std_logic; - MULT_EVT_ENABLE_IN : in std_logic; -- gk 06.10.10 - -- ports for user logic - PC_WR_EN_IN : in std_logic; -- write into queueConstr from userLogic - PC_DATA_IN : in std_logic_vector(7 downto 0); - PC_READY_OUT : out std_logic; - PC_START_OF_SUB_IN : in std_logic; - PC_END_OF_SUB_IN : in std_logic; -- gk 07.10.10 - PC_END_OF_DATA_IN : in std_logic; - PC_TRANSMIT_ON_OUT : out std_logic; - -- queue and subevent layer headers - PC_SUB_SIZE_IN : in std_logic_vector(31 downto 0); -- store and swap - PC_PADDING_IN : in std_logic; -- gk 29.03.10 - PC_DECODING_IN : in std_logic_vector(31 downto 0); -- swap - PC_EVENT_ID_IN : in std_logic_vector(31 downto 0); -- swap - PC_TRIG_NR_IN : in std_logic_vector(31 downto 0); -- store and swap! - PC_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); -- swap - PC_MAX_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); -- DO NOT SWAP - PC_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 28.04.10 - -- FrameConstructor ports - TC_WR_EN_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(7 downto 0); - TC_H_READY_IN : in std_logic; - TC_READY_IN : in std_logic; - TC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - TC_SOD_OUT : out std_logic; - TC_EOD_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_packet_constr; - -architecture trb_net16_gbe_packet_constr of trb_net16_gbe_packet_constr is - --- attribute HGROUP : string; --- attribute HGROUP of trb_net16_gbe_packet_constr : architecture is "GBE_packet_constr"; - -component fifo_64kx9 -port ( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - --- FIFO for SubEventHeader information -component fifo_16kx8 is -port ( - Data : in std_logic_vector(7 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(7 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -signal df_wr_en : std_logic; -signal df_rd_en : std_logic; -signal df_q : std_logic_vector(7 downto 0); -signal df_q_reg : std_logic_vector(7 downto 0); -signal df_empty : std_logic; -signal df_full : std_logic; - -signal fc_data : std_logic_vector(7 downto 0); -signal fc_wr_en : std_logic; -signal fc_sod : std_logic; -signal fc_eod : std_logic; -signal fc_ident : std_logic_vector(15 downto 0); -- change this to own counter! -signal fc_flags_offset : std_logic_vector(15 downto 0); - -signal shf_data : std_logic_vector(7 downto 0); -signal shf_wr_en : std_logic; -signal shf_rd_en : std_logic; -signal shf_q : std_logic_vector(7 downto 0); -signal shf_empty : std_logic; -signal shf_full : std_logic; - -type constructStates is (CIDLE, SAVE_DATA, WAIT_FOR_LOAD); -signal constructCurrentState, constructNextState : constructStates; -signal constr_state : std_logic_vector(3 downto 0); -signal all_int_ctr : integer range 0 to 31; -signal all_ctr : std_logic_vector(4 downto 0); - -type saveSubStates is (SIDLE, SAVE_SIZE, SAVE_DECODING, SAVE_ID, SAVE_TRIG_NR, SAVE_TERM); -signal saveSubCurrentState, saveSubNextState : saveSubStates; -signal save_state : std_logic_vector(3 downto 0); -signal sub_int_ctr : integer range 0 to 31; -signal sub_ctr : std_logic_vector(4 downto 0); -signal my_int_ctr : integer range 0 to 3; -signal my_ctr : std_logic_vector(1 downto 0); - -type loadStates is (LIDLE, WAIT_FOR_FC, PUT_Q_LEN, PUT_Q_DEC, LOAD_SUB, PREP_DATA, LOAD_DATA, DIVIDE, LOAD_TERM, CLEANUP, DELAY); -signal loadCurrentState, loadNextState: loadStates; -signal load_state : std_logic_vector(3 downto 0); - -signal queue_size : std_logic_vector(31 downto 0); -- sum of all subevents sizes plus their headers and queue headers and termination -signal queue_size_temp : std_logic_vector(31 downto 0); -signal actual_queue_size : std_logic_vector(31 downto 0); -- queue size used during loading process when queue_size is no more valid -signal bytes_loaded : std_logic_vector(15 downto 0); -- size of actual constructing frame -signal sub_size_to_save : std_logic_vector(31 downto 0); -- size of subevent to save to shf -signal sub_size_loaded : std_logic_vector(31 downto 0); -- size of subevent actually being transmitted -signal sub_bytes_loaded : std_logic_vector(31 downto 0); -- amount of bytes of actual subevent sent -signal actual_packet_size : std_logic_vector(15 downto 0); -- actual size of whole udp packet -signal size_left : std_logic_vector(31 downto 0); -signal fc_ip_size : std_logic_vector(15 downto 0); -signal fc_udp_size : std_logic_vector(15 downto 0); -signal max_frame_size : std_logic_vector(15 downto 0); -signal divide_position : std_logic_vector(1 downto 0); -- 00->data, 01->sub, 11->term -signal debug : std_logic_vector(63 downto 0); -signal pc_ready : std_logic; - -signal pc_sub_size : std_logic_vector(31 downto 0); -signal pc_trig_nr : std_logic_vector(31 downto 0); -signal rst_after_sub_comb : std_logic; -- gk 08.04.10 -signal rst_after_sub : std_logic; -- gk 08.04.10 -signal load_int_ctr : integer range 0 to 3; -- gk 08.04.10 -signal delay_ctr : std_logic_vector(31 downto 0); -- gk 28.04.10 -signal ticks_ctr : std_logic_vector(7 downto 0); -- gk 28.04.10 - --- gk 26.07.10 -signal load_eod : std_logic; -signal load_eod_q : std_logic; - --- gk 07.10.10 -signal df_eod : std_logic; - --- gk 04.12.10 -signal first_sub_in_multi : std_logic; -signal from_divide_state : std_logic; -signal disable_prep : std_logic; - -begin - - ---PC_TRANSMIT_ON_OUT <= '1' when constructCurrentState = WAIT_FOR_LOAD else '0'; -PC_TRANSMIT_ON_OUT <= '0'; - --- my_int_ctr <= (3 - to_integer(to_unsigned(sub_int_ctr, 2))); -- reverse byte order --- load_int_ctr <= (3 - to_integer(to_unsigned(all_int_ctr, 2))); -- gk 08.04.10 --- --- all_ctr <= std_logic_vector(to_unsigned(all_int_ctr, all_ctr'length)); -- for debugging --- sub_ctr <= std_logic_vector(to_unsigned(sub_int_ctr, sub_ctr'length)); -- for debugging --- my_ctr <= std_logic_vector(to_unsigned(my_int_ctr, my_ctr'length)); -- for debugging --- --- max_frame_size <= PC_MAX_FRAME_SIZE_IN; --- --- -- Ready signal for PacketConstructor --- pc_ready <= '1' when (constructCurrentState = CIDLE) and (df_empty = '1') else '0'; -pc_ready <= '0'; - --- store event information on Start_of_Subevent --- THE_EVT_INFO_STORE_PROC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if (RESET = '1') then -- gk 31.05.10 --- pc_sub_size <= (others => '0'); --- pc_trig_nr <= (others => '0'); --- elsif( PC_START_OF_SUB_IN = '1' ) then --- pc_sub_size <= PC_SUB_SIZE_IN; --- pc_trig_nr <= PC_TRIG_NR_IN; --- end if; --- end if; --- end process; --- --- -- gk 07.10.10 --- df_eod <= '1' when ((MULT_EVT_ENABLE_IN = '0') and (PC_END_OF_DATA_IN = '1')) --- or ((MULT_EVT_ENABLE_IN = '1') and (PC_END_OF_SUB_IN = '1')) --- else '0'; - --- Data FIFO for incoming packet data from IPU buffer --- gk 26.07.10 --- DATA_FIFO : fifo_64kx9 --- port map( --- Data(7 downto 0) => PC_DATA_IN, --- Data(8) => df_eod, --PC_END_OF_DATA_IN, -- gk 07.10.10 --- WrClock => CLK, --- RdClock => CLK, --- WrEn => df_wr_en, --- RdEn => df_rd_en, --- Reset => RESET, --- RPReset => RESET, --- Q(7 downto 0) => df_q, --- Q(8) => load_eod, --- Empty => df_empty, --- Full => df_full --- ); - --- LOAD_EOD_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- load_eod_q <= '0'; --- else --- load_eod_q <= load_eod; --- end if; --- end if; --- end process LOAD_EOD_PROC; --- --- -- Write enable for the data FIFO --- -- !!!combinatorial signal!!! --- -- could be avoided as IPU2GBE does only send data in case of PC_READY. --- df_wr_en <= '1' when ((PC_WR_EN_IN = '1') and (constructCurrentState /= WAIT_FOR_LOAD)) --- else '0'; --- --- -- Output register for data FIFO --- dfQProc : process(CLK) --- begin --- if rising_edge(CLK) then --- df_q_reg <= df_q; --- end if; --- end process dfQProc; --- --- -- Construction state machine --- constructMachineProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- constructCurrentState <= CIDLE; --- else --- constructCurrentState <= constructNextState; --- end if; --- end if; --- end process constructMachineProc; --- --- constructMachine : process(constructCurrentState, PC_START_OF_SUB_IN, PC_WR_EN_IN, PC_END_OF_DATA_IN, loadCurrentState, saveSubCurrentState, sub_int_ctr) --- begin --- case constructCurrentState is --- when CIDLE => --- constr_state <= x"0"; --- --if( PC_WR_EN_IN = '1' ) then --- -- gk 04.12.10 --- if (PC_START_OF_SUB_IN = '1') then --- --- constructNextState <= SAVE_DATA; --- else --- constructNextState <= CIDLE; --- end if; --- when SAVE_DATA => --- constr_state <= x"1"; --- if( PC_END_OF_DATA_IN = '1' ) then --- constructNextState <= WAIT_FOR_LOAD; --- else --- constructNextState <= SAVE_DATA; --- end if; --- when WAIT_FOR_LOAD => --- constr_state <= x"2"; --- if( (df_empty = '1') and (loadCurrentState = LIDLE) ) then -- waits until the whole packet is transmitted --- constructNextState <= CIDLE; --- else --- constructNextState <= WAIT_FOR_LOAD; --- end if; --- when others => --- constr_state <= x"f"; --- constructNextState <= CIDLE; --- end case; --- end process constructMachine; - ---*********************** --- SIZE COUNTERS FOR SAVING SIDE ---*********************** - --- gk 29.03.10 the subevent size saved to its headers cannot contain padding bytes but they are included in pc_sub_size --- that's why they are removed if pc_padding flag is asserted --- sub_size_to_save <= (x"10" + pc_sub_size) when (PC_PADDING_IN = '0') --- else (x"c" + pc_sub_size); -- subevent headers + data --- --- -- BUG HERE BUG HERE BUG HERE BUG HERE --- -- gk 29.03.10 no changes here because the queue size should contain the padding bytes of subevents --- queueSizeProc : process(CLK) --- begin --- if rising_edge(CLK) then --- --if (RESET = '1') or (loadCurrentState = PUT_Q_DEC) then -- gk 07.10.10 -- (loadCurrentState = CLEANUP) then --- if (RESET = '1') or (loadCurrentState = CLEANUP) then --- queue_size <= x"00000028"; -- + 8B for queue headers and 32B for termination --- elsif (saveSubCurrentState = SAVE_SIZE) and (sub_int_ctr = 3) then --- queue_size <= queue_size + pc_sub_size + x"10"; -- + 16B for each subevent headers --- end if; --- end if; --- end process queueSizeProc; - - ---*********************** --- LOAD DATA COMBINED WITH HEADERS INTO FC, QUEUE TRANSMISSION ---*********************** - --- loadMachineProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- loadCurrentState <= LIDLE; --- else --- loadCurrentState <= loadNextState; --- end if; --- end if; --- end process loadMachineProc; --- --- loadMachine : process(loadCurrentState, constructCurrentState, all_int_ctr, df_empty, --- sub_bytes_loaded, sub_size_loaded, size_left, TC_H_READY_IN, --- max_frame_size, bytes_loaded, divide_position, PC_DELAY_IN, --- delay_ctr, load_eod_q, MULT_EVT_ENABLE_IN) --- begin --- case loadCurrentState is --- when LIDLE => --- load_state <= x"0"; --- if ((constructCurrentState = WAIT_FOR_LOAD) and (df_empty = '0')) then --- loadNextState <= WAIT_FOR_FC; --- else --- loadNextState <= LIDLE; --- end if; --- when WAIT_FOR_FC => --- load_state <= x"1"; --- if (TC_H_READY_IN = '1') then --- loadNextState <= PUT_Q_LEN; --- else --- loadNextState <= WAIT_FOR_FC; --- end if; --- when PUT_Q_LEN => --- load_state <= x"2"; --- if (all_int_ctr = 3) then --- loadNextState <= PUT_Q_DEC; --- else --- loadNextState <= PUT_Q_LEN; --- end if; --- when PUT_Q_DEC => --- load_state <= x"3"; --- if (all_int_ctr = 3) then --- loadNextState <= LOAD_SUB; --- else --- loadNextState <= PUT_Q_DEC; --- end if; --- when LOAD_SUB => --- load_state <= x"4"; --- if (bytes_loaded = max_frame_size - 1) then --- loadNextState <= DIVIDE; --- elsif (all_int_ctr = 15) then --- loadNextState <= PREP_DATA; --- else --- loadNextState <= LOAD_SUB; --- end if; --- when PREP_DATA => --- load_state <= x"5"; --- loadNextState <= LOAD_DATA; --- when LOAD_DATA => --- load_state <= x"6"; --- -- if (bytes_loaded = max_frame_size - 1) then --- -- loadNextState <= DIVIDE; --- -- -- gk 07.10.10 --- -- elsif (MULT_EVT_ENABLE_IN = '1') then --- -- if (size_left = x"0000_0023") then --- -- loadNextState <= LOAD_TERM; --- -- elsif (load_eod_q = '1') then --- -- loadNextState <= LOAD_SUB; --- -- else --- -- loadNextState <= LOAD_DATA; --- -- end if; --- -- else --- -- if (load_eod_q = '1') then --- -- loadNextState <= LOAD_TERM; --- -- else --- -- loadNextState <= LOAD_DATA; --- -- end if; --- -- end if; --- if (bytes_loaded = max_frame_size - 1) then --- loadNextState <= DIVIDE; --- -- gk 07.10.10 --- elsif (load_eod_q = '1') then --- if (MULT_EVT_ENABLE_IN = '1') then --- if (size_left < x"0000_0030") then --- loadNextState <= LOAD_TERM; --- else --- loadNextState <= LOAD_SUB; --- end if; --- else --- loadNextState <= LOAD_TERM; --- end if; --- else --- loadNextState <= LOAD_DATA; --- end if; --- when DIVIDE => --- load_state <= x"7"; --- if (TC_H_READY_IN = '1') then --- if (divide_position = "00") then --- loadNextState <= PREP_DATA; --- elsif (divide_position = "01") then --- loadNextState <= LOAD_SUB; --- else --- loadNextState <= LOAD_TERM; --- end if; --- else --- loadNextState <= DIVIDE; --- end if; --- when LOAD_TERM => --- load_state <= x"8"; --- if (bytes_loaded = max_frame_size - 1) and (all_int_ctr /= 31) then --- loadNextState <= DIVIDE; --- elsif (all_int_ctr = 31) then --- loadNextState <= CLEANUP; --- else --- loadNextState <= LOAD_TERM; --- end if; --- -- gk 28.04.10 --- when CLEANUP => --- load_state <= x"9"; --- if (PC_DELAY_IN = x"0000_0000") then --- loadNextState <= LIDLE; --- else --- loadNextState <= DELAY; --- end if; --- -- gk 28.04.10 --- when DELAY => --- load_state <= x"a"; --- if (delay_ctr = x"0000_0000") then --- loadNextState <= LIDLE; --- else --- loadNextState <= DELAY; --- end if; --- when others => --- load_state <= x"f"; --- loadNextState <= LIDLE; --- end case; --- end process loadMachine; --- --- -- gk 04.12.10 --- firstSubInMultiProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LOAD_TERM) then --- first_sub_in_multi <= '1'; --- elsif (loadCurrentState = LOAD_DATA) then --- first_sub_in_multi <= '0'; --- end if; --- end if; --- end process; --- --- -- gk 04.12.10 --- fromDivideStateProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- from_divide_state <= '0'; --- elsif (loadCurrentState = DIVIDE) then --- from_divide_state <= '1'; --- elsif (loadCurrentState = PREP_DATA) then --- from_divide_state <= '0'; --- end if; --- end if; --- end process fromDivideStateProc; --- --- --- dividePositionProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- divide_position <= "00"; --- -- elsif (bytes_loaded = max_frame_size - 1) then --- -- if (loadCurrentState = LIDLE) then --- -- divide_position <= "00"; --- -- elsif (loadCurrentState = LOAD_DATA) then --- -- -- gk 07.10.10 --- -- if (MULT_EVT_ENABLE_IN = '1') and (size_left = x"0000_003a") then --- -- divide_position <= "11"; --- -- -- gk 07.10.10 --- -- elsif (MULT_EVT_ENABLE_IN = '1') and (load_eod_q = '1') then --- -- divide_position <= "01"; --- -- -- gk 26.07.10 --- -- elsif (MULT_EVT_ENABLE_IN = '0') and (load_eod_q = '1') then -- if termination is about to be loaded divide on term --- -- divide_position <= "11"; --- -- else --- -- divide_position <= "00"; -- still data loaded divide on data --- -- end if; --- -- elsif (loadCurrentState = LOAD_SUB) then --- -- if (all_int_ctr = 15) then --- -- divide_position <= "00"; --- -- else --- -- divide_position <= "01"; --- -- end if; --- -- elsif (loadCurrentState = LOAD_TERM) then --- -- divide_position <= "11"; --- -- end if; --- -- end if; --- elsif (bytes_loaded = max_frame_size - 1) then --- if (loadCurrentState = LIDLE) then --- divide_position <= "00"; --- disable_prep <= '0'; -- gk 05.12.10 --- elsif (loadCurrentState = LOAD_DATA) then --- -- gk 05.12.10 --- -- gk 26.07.10 --- if (MULT_EVT_ENABLE_IN = '0') and (load_eod_q = '1') then -- if termination is about to be loaded divide on term --- divide_position <= "11"; --- disable_prep <= '0'; -- gk 05.12.10 --- elsif (MULT_EVT_ENABLE_IN = '1') and (load_eod_q = '1') then --- if (size_left > x"0000_0028") then --- divide_position <= "01"; --- disable_prep <= '0'; -- gk 05.12.10 --- else --- divide_position <= "11"; --- disable_prep <= '0'; -- gk 05.12.10 --- end if; --- else --- divide_position <= "00"; -- still data loaded divide on data --- disable_prep <= '1'; -- gk 05.12.10 --- end if; --- elsif (loadCurrentState = LOAD_SUB) then --- if (all_int_ctr = 15) then --- divide_position <= "00"; --- disable_prep <= '1'; -- gk 05.12.10 --- else --- divide_position <= "01"; --- disable_prep <= '0'; -- gk 05.12.10 --- end if; --- elsif (loadCurrentState = LOAD_TERM) then --- divide_position <= "11"; --- disable_prep <= '0'; -- gk 05.12.10 --- end if; --- elsif (loadCurrentState = PREP_DATA) then -- gk 06.12.10 reset disable_prep --- disable_prep <= '0'; --- end if; --- --- end if; --- end process dividePositionProc; --- --- allIntCtrProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then -- gk 31.05.10 --- all_int_ctr <= 0; --- else --- case loadCurrentState is --- --- when LIDLE => all_int_ctr <= 0; --- --- when WAIT_FOR_FC => all_int_ctr <= 0; --- --- when PUT_Q_LEN => --- if (all_int_ctr = 3) then --- all_int_ctr <= 0; --- else --- all_int_ctr <= all_int_ctr + 1; --- end if; --- --- when PUT_Q_DEC => --- if (all_int_ctr = 3) then --- all_int_ctr <= 0; --- else --- all_int_ctr <= all_int_ctr + 1; --- end if; --- --- when LOAD_SUB => --- if (all_int_ctr = 15) then --- all_int_ctr <= 0; --- else --- all_int_ctr <= all_int_ctr + 1; --- end if; --- --- when LOAD_DATA => all_int_ctr <= 0; --- --- when LOAD_TERM => --- if (all_int_ctr = 31) then --- all_int_ctr <= 0; --- else --- all_int_ctr <= all_int_ctr + 1; --- end if; --- --- when DIVIDE => null; --- --- when CLEANUP => all_int_ctr <= 0; --- --- when PREP_DATA => all_int_ctr <= 0; --- --- when DELAY => all_int_ctr <= 0; --- end case; --- end if; --- end if; --- end process allIntCtrProc; --- --- dfRdEnProc : process(loadCurrentState, bytes_loaded, max_frame_size, sub_bytes_loaded, --- sub_size_loaded, all_int_ctr, RESET, size_left, load_eod_q) --- begin --- if (RESET = '1') then --- df_rd_en <= '0'; --- elsif (loadCurrentState = LOAD_DATA) then --- -- if (bytes_loaded = max_frame_size - x"1") then --- -- df_rd_en <= '0'; --- -- -- gk 07.10.10 --- -- elsif (MULT_EVT_ENABLE_IN = '0') and (load_eod_q = '1') then --- -- df_rd_en <= '0'; --- -- -- gk 07.10.10 --- -- elsif (MULT_EVT_ENABLE_IN = '1') and (size_left = x"0000_003a") then --- -- df_rd_en <= '0'; --- -- else --- -- df_rd_en <= '1'; --- -- end if; --- if (bytes_loaded = max_frame_size - x"1") then --- df_rd_en <= '0'; --- -- gk 26.07.10 --- --elsif (load_eod = '1') or (load_eod_q = '1') then --- elsif (load_eod_q = '1') then --- df_rd_en <= '0'; --- -- elsif (sub_bytes_loaded = sub_size_loaded) then --- -- df_rd_en <= '0'; --- else --- df_rd_en <= '1'; --- end if; --- --- elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 15) and (bytes_loaded /= max_frame_size - x"1") then --- df_rd_en <= '1'; --- elsif (loadCurrentState = PREP_DATA) then --- df_rd_en <= '1'; --- else --- df_rd_en <= '0'; --- end if; --- end process dfRdEnProc; --- --- shfRdEnProc : process(loadCurrentState, all_int_ctr, RESET) --- begin --- if (RESET = '1') then -- gk 31.05.10 --- shf_rd_en <= '0'; --- elsif (loadCurrentState = LOAD_SUB) then --- shf_rd_en <= '1'; --- elsif (loadCurrentState = LOAD_TERM) and (all_int_ctr < 31) then --- shf_rd_en <= '1'; --- elsif (loadCurrentState = PUT_Q_DEC) and (all_int_ctr = 3) then --- shf_rd_en <= '1'; --- else --- shf_rd_en <= '0'; --- end if; --- end process shfRdEnProc; --- --- --- -- fcWrEnProc : process(loadCurrentState, RESET) --- -- begin --- -- if (RESET = '1') then -- gk 31.05.10 --- -- fc_wr_en <= '0'; --- -- elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) then --- -- fc_wr_en <= '1'; --- -- elsif (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_TERM) then --- -- fc_wr_en <= '1'; --- -- else --- -- fc_wr_en <= '0'; --- -- end if; --- -- end process fcWrEnProc; --- fcWrEnProc : process(loadCurrentState, RESET, first_sub_in_multi, from_divide_state, MULT_EVT_ENABLE_IN, divide_position, disable_prep) --- begin --- if (RESET = '1') then -- gk 31.05.10 --- fc_wr_en <= '0'; --- elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) then --- fc_wr_en <= '1'; --- elsif (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_TERM) then --- fc_wr_en <= '1'; --- -- gk 04.12.10 --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') and (disable_prep = '0') then --- fc_wr_en <= '1'; --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (from_divide_state = '1') and ((divide_position = "00") or (divide_position = "01")) and (disable_prep = '0') then --- fc_wr_en <= '1'; --- else --- fc_wr_en <= '0'; --- end if; --- end process fcWrEnProc; --- --- --- -- was all_int_ctr --- fcDataProc : process(loadCurrentState, queue_size_temp, PC_QUEUE_DEC_IN, shf_q, df_q_reg, load_int_ctr) --- begin --- case loadCurrentState is --- when LIDLE => fc_data <= x"af"; --- when WAIT_FOR_FC => fc_data <= x"bf"; --- -- gk 08.04.10 my_int_ctr changed to load_int_ctr --- when PUT_Q_LEN => fc_data <= queue_size_temp(load_int_ctr * 8 + 7 downto load_int_ctr * 8); --- when PUT_Q_DEC => fc_data <= PC_QUEUE_DEC_IN(load_int_ctr * 8 + 7 downto load_int_ctr * 8); --- when LOAD_SUB => fc_data <= shf_q; --- when PREP_DATA => fc_data <= df_q_reg; --- when LOAD_DATA => fc_data <= df_q_reg; --- when LOAD_TERM => fc_data <= shf_q; --- when DIVIDE => fc_data <= x"cf"; --- when CLEANUP => fc_data <= x"df"; --- when others => fc_data <= x"00"; --- end case; --- end process fcDataProc; --- --- -- delay counters --- -- gk 28.04.10 --- DELAY_CTR_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if ((RESET = '1') or (loadCurrentState = LIDLE)) then --- delay_ctr <= PC_DELAY_IN; --- elsif ((loadCurrentState = DELAY) and (ticks_ctr(7) = '1')) then --- delay_ctr <= delay_ctr - x"1"; --- end if; --- end if; --- end process DELAY_CTR_PROC; --- --- -- gk 28.04.10 --- TICKS_CTR_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if ((RESET = '1') or (loadCurrentState = LIDLE) or (ticks_ctr(7) = '1')) then --- ticks_ctr <= x"00"; --- elsif (loadCurrentState = DELAY) then --- ticks_ctr <= ticks_ctr + x"1"; --- end if; --- end if; --- end process TICKS_CTR_PROC; - - ---*********************** --- SIZE COUNTERS FOR LOADING SIDE ---*********************** - --- queue_size_temp <= queue_size - x"20"; -- size of data without termination --- --- -- gk 08.04.10 --- rst_after_sub_comb <= '1' when (loadCurrentState = LIDLE) or --- ((loadCurrentState = LOAD_DATA) and (size_left /= x"00000021")) -- gk 26.07.10 -- and (sub_bytes_loaded = sub_size_loaded) --- else '0'; --- --- -- gk 08.04.10 --- RST_AFTER_SUB_PROC : process(CLK) --- begin --- if(rising_edge(CLK)) then --- if(RESET = '1') then --- rst_after_sub <= '0'; --- else --- rst_after_sub <= rst_after_sub_comb; --- end if; --- end if; --- end process RST_AFTER_SUB_PROC; --- --- -- counts all bytes loaded to divide data into frames --- bytesLoadedProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = DIVIDE) or (loadCurrentState = CLEANUP) then --- bytes_loaded <= x"0000"; --- elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_TERM) then --- bytes_loaded <= bytes_loaded + x"1"; --- -- gk 05.12.10 --- -- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') then --- -- bytes_loaded <= bytes_loaded + x"1"; --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') and (disable_prep = '0') then --- bytes_loaded <= bytes_loaded + x"1"; --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (from_divide_state = '1') and ((divide_position = "00") or (divide_position = "01")) and (disable_prep = '0') then --- bytes_loaded <= bytes_loaded + x"1"; --- end if; --- end if; --- end process bytesLoadedProc; --- --- -- size of subevent loaded from memory --- subSizeLoadedProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 08.04.10 --- sub_size_loaded <= x"00000000"; --- elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr < 4) then --- -- was all_int_ctr --- -- gk 08.04.10 my_int_ctr changed to load_int_ctr --- sub_size_loaded(7 + load_int_ctr * 8 downto load_int_ctr * 8) <= shf_q; --- -- gk 29.03.10 here the padding bytes have to be added to the loadedSize in order to load the correct amount of bytes from fifo --- elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 5) and (sub_size_loaded(2) = '1') then --- sub_size_loaded <= sub_size_loaded + x"4"; --- end if; --- end if; --- end process subSizeLoadedProc; --- --- -- counts only raw data bytes being loaded --- subBytesLoadedProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 26.07.10 --or (sub_bytes_loaded = sub_size_loaded) -- gk 08.04.10 --- sub_bytes_loaded <= x"00000011"; -- subevent headers doesnt count --- elsif (loadCurrentState = LOAD_DATA) then --- sub_bytes_loaded <= sub_bytes_loaded + x"1"; --- end if; --- end if; --- end process subBytesLoadedProc; --- --- -- counts the size of the large udp packet --- actualPacketProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then --- actual_packet_size <= x"0008"; --- elsif (fc_wr_en = '1') then --- actual_packet_size <= actual_packet_size + x"1"; --- end if; --- end if; --- end process actualPacketProc; --- --- actualQueueSizeProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = CLEANUP) then --- actual_queue_size <= (others => '0'); --- elsif (loadCurrentState = LIDLE) then --- actual_queue_size <= queue_size; --- end if; --- end if; --- end process actualQueueSizeProc; --- --- -- amount of bytes left to send in current packet --- sizeLeftProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = CLEANUP) then --- size_left <= (others => '0'); --- elsif (loadCurrentState = LIDLE) then --- size_left <= queue_size; --- elsif (fc_wr_en = '1') then --- size_left <= size_left - 1; --- end if; --- end if; --- end process sizeLeftProc; --- --- -- HOT FIX: don't rely on CTS information, count the packets on your own. --- -- In this case, we increment the fragmented packet ID with EOD from ipu2gbe. --- THE_FC_IDENT_COUNTER_PROC: process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- fc_ident <= (others => '0'); --- elsif (PC_END_OF_DATA_IN = '1') then --- fc_ident <= fc_ident + 1; --- end if; --- end if; --- end process THE_FC_IDENT_COUNTER_PROC; --- --- fc_flags_offset(15 downto 14) <= "00"; --- --- moreFragmentsProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then --- fc_flags_offset(13) <= '0'; --- elsif ((loadCurrentState = DIVIDE) and (TC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1')) then --- if ((actual_queue_size - actual_packet_size) < max_frame_size) then --- fc_flags_offset(13) <= '0'; -- no more fragments --- else --- fc_flags_offset(13) <= '1'; -- more fragments --- end if; --- end if; --- end if; --- end process moreFragmentsProc; --- --- eodProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- fc_eod <= '0'; --- elsif (loadCurrentState = LOAD_DATA) and (bytes_loaded = max_frame_size - 2) then --- fc_eod <= '1'; --- elsif (loadCurrentState = LOAD_SUB) and (bytes_loaded = max_frame_size - 2) then --- fc_eod <= '1'; --- elsif (loadCurrentState = LOAD_TERM) and ((bytes_loaded = max_frame_size - 2) or (all_int_ctr = 30)) then --- fc_eod <= '1'; --- else --- fc_eod <= '0'; --- end if; --- end if; --- end process eodProc; --- --- sodProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- fc_sod <= '0'; --- elsif (loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1') then --- fc_sod <= '1'; --- elsif (loadCurrentState = DIVIDE) and (TC_READY_IN = '1') then --- fc_sod <= '1'; --- else --- fc_sod <= '0'; --- end if; --- end if; --- end process sodProc; --- --- offsetProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then --- fc_flags_offset(12 downto 0) <= (others => '0'); --- elsif ((loadCurrentState = DIVIDE) and (TC_READY_IN = '1')) then --- fc_flags_offset(12 downto 0) <= actual_packet_size(15 downto 3); --- end if; --- end if; --- end process offsetProc; --- --- fcIPSizeProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET= '1') then --- fc_ip_size <= (others => '0'); --- elsif ((loadCurrentState = DIVIDE) and (TC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1')) then --- if (size_left >= max_frame_size) then --- fc_ip_size <= max_frame_size; --- else --- fc_ip_size <= size_left(15 downto 0); --- end if; --- end if; --- end if; --- end process fcIPSizeProc; --- --- fcUDPSizeProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- fc_udp_size <= (others => '0'); --- elsif (loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1') then --- fc_udp_size <= queue_size(15 downto 0); --- end if; --- end if; --- end process fcUDPSizeProc; - - ---*********************** --- SUBEVENT HEADERS WRITE AND READ ---*********************** - --- SUBEVENT_HEADERS_FIFO : fifo_16kx8 --- port map( --- Data => shf_data, --- WrClock => CLK, --- RdClock => CLK, --- WrEn => shf_wr_en, --- RdEn => shf_rd_en, --- Reset => RESET, --- RPReset => RESET, --- Q => shf_q, --- Empty => shf_empty, --- Full => shf_full --- ); --- --- -- write enable for SHF --- shf_wr_en <= '1' when ((saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA)) --- else '0'; --- --- -- data multiplexing for SHF (convert 32bit LWs to 8bit) --- -- CHANGED. --- -- The SubEventHeader (4x 32bit is stored in [MSB:LSB] now, same byte order as data from PC. --- shfDataProc : process(saveSubCurrentState, sub_size_to_save, PC_DECODING_IN, PC_EVENT_ID_IN, --- pc_trig_nr, my_int_ctr, fc_data) --- begin --- case saveSubCurrentState is --- when SIDLE => shf_data <= x"ac"; --- when SAVE_SIZE => shf_data <= sub_size_to_save(my_int_ctr * 8 + 7 downto my_int_ctr * 8); --- when SAVE_DECODING => shf_data <= PC_DECODING_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); --- when SAVE_ID => shf_data <= PC_EVENT_ID_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); --- when SAVE_TRIG_NR => shf_data <= pc_trig_nr(my_int_ctr * 8 + 7 downto my_int_ctr * 8); --- when SAVE_TERM => shf_data <= fc_data; --- when others => shf_data <= x"00"; --- end case; --- end process shfDataProc; --- --- saveSubMachineProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- saveSubCurrentState <= SIDLE; --- else --- saveSubCurrentState <= saveSubNextState; --- end if; --- end if; --- end process saveSubMachineProc; --- --- saveSubMachine : process(saveSubCurrentState, PC_START_OF_SUB_IN, sub_int_ctr, loadCurrentState, TC_H_READY_IN) --- begin --- case saveSubCurrentState is --- when SIDLE => --- save_state <= x"0"; --- if (PC_START_OF_SUB_IN = '1') then --- saveSubNextState <= SAVE_SIZE; --- -- this branch is dangerous! --- elsif (loadCurrentState = WAIT_FOR_FC) and (TC_H_READY_IN = '1') then -- means that loadCurrentState is put_q_len --- saveSubNextState <= SAVE_TERM; --- else --- saveSubNextState <= SIDLE; --- end if; --- when SAVE_SIZE => --- save_state <= x"1"; --- if (sub_int_ctr = 3) then --- saveSubNextState <= SAVE_DECODING; --- else --- saveSubNextState <= SAVE_SIZE; --- end if; --- when SAVE_DECODING => --- save_state <= x"2"; --- if (sub_int_ctr = 3) then --- saveSubNextState <= SAVE_ID; --- else --- saveSubNextState <= SAVE_DECODING; --- end if; --- when SAVE_ID => --- save_state <= x"3"; --- if (sub_int_ctr = 3) then --- saveSubNextState <= SAVE_TRIG_NR; --- else --- saveSubNextState <= SAVE_ID; --- end if; --- when SAVE_TRIG_NR => --- save_state <= x"4"; --- if (sub_int_ctr = 3) then --- saveSubNextState <= SIDLE; --- else --- saveSubNextState <= SAVE_TRIG_NR; --- end if; --- when SAVE_TERM => --- save_state <= x"5"; --- if (sub_int_ctr = 31) then --- saveSubNextState <= SIDLE; --- else --- saveSubNextState <= SAVE_TERM; --- end if; --- when others => --- save_state <= x"f"; --- saveSubNextState <= SIDLE; --- end case; --- end process; --- --- -- This counter is used for breaking down 32bit information words into 8bit bytes for --- -- storing them in the SHF. --- -- It is also used for the termination 32byte sequence. --- subIntProc: process( CLK ) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (saveSubCurrentState = SIDLE) then --- sub_int_ctr <= 0; --- elsif (sub_int_ctr = 3) and (saveSubCurrentState /= SAVE_TERM) then --- sub_int_ctr <= 0; --- elsif (sub_int_ctr = 31) and (saveSubCurrentState = SAVE_TERM) then --- sub_int_ctr <= 0; --- elsif (saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA) then --- sub_int_ctr <= sub_int_ctr + 1; --- end if; --- end if; --- end process subIntProc; --- --- debug(3 downto 0) <= constr_state; --- debug(7 downto 4) <= save_state; --- debug(11 downto 8) <= load_state; --- debug(27 downto 12) <= queue_size(15 downto 0); --- debug(28) <= df_full; --- debug(29) <= df_empty; --- debug(30) <= shf_full; --- debug(31) <= shf_empty; --- --- debug(47 downto 32) <= size_left(15 downto 0); --- debug(52 downto 48) <= all_ctr; --- debug(53) <= pc_ready; - --- outputs --- PC_READY_OUT <= pc_ready; --- TC_WR_EN_OUT <= fc_wr_en; --- TC_DATA_OUT <= fc_data; --- TC_IP_SIZE_OUT <= fc_ip_size; --- TC_UDP_SIZE_OUT <= fc_udp_size; --- -- FC_IDENT_OUT(15 downto 8) <= fc_ident(7 downto 0); --- -- FC_IDENT_OUT(7 downto 0) <= fc_ident(15 downto 8); --- TC_FLAGS_OFFSET_OUT <= fc_flags_offset; --- TC_SOD_OUT <= fc_sod; --- TC_EOD_OUT <= fc_eod; - -PC_READY_OUT <= '1'; -TC_IP_SIZE_OUT <= (others => '0'); -TC_UDP_SIZE_OUT <= (others => '0'); --- FC_IDENT_OUT(15 downto 8) <= fc_ident(7 downto 0); --- FC_IDENT_OUT(7 downto 0) <= fc_ident(15 downto 8); --- TC_FLAGS_OFFSET_OUT <= fc_flags_offset; --- TC_SOD_OUT <= fc_sod; --- TC_EOD_OUT <= fc_eod; - -DEBUG_OUT <= debug; - -end trb_net16_gbe_packet_constr; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_gbe_packet_constr_simple_sender.vhd b/gbe2_ecp3/trb_net16_gbe_packet_constr_simple_sender.vhd deleted file mode 100644 index 67a8e6c..0000000 --- a/gbe2_ecp3/trb_net16_gbe_packet_constr_simple_sender.vhd +++ /dev/null @@ -1,1182 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -entity trb_net16_gbe_packet_constr is -port( - RESET : in std_logic; - CLK : in std_logic; - MULT_EVT_ENABLE_IN : in std_logic; -- gk 06.10.10 - -- ports for user logic - PC_WR_EN_IN : in std_logic; -- write into queueConstr from userLogic - PC_DATA_IN : in std_logic_vector(7 downto 0); - PC_READY_OUT : out std_logic; - PC_START_OF_SUB_IN : in std_logic; -- CHANGED TO SLOW CONTROL PULSE - PC_END_OF_SUB_IN : in std_logic; -- gk 07.10.10 - PC_END_OF_DATA_IN : in std_logic; - PC_TRANSMIT_ON_OUT : out std_logic; - -- queue and subevent layer headers - PC_SUB_SIZE_IN : in std_logic_vector(31 downto 0); -- store and swap - PC_PADDING_IN : in std_logic; -- gk 29.03.10 - PC_DECODING_IN : in std_logic_vector(31 downto 0); -- swap - PC_EVENT_ID_IN : in std_logic_vector(31 downto 0); -- swap - PC_TRIG_NR_IN : in std_logic_vector(31 downto 0); -- store and swap! - PC_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); -- swap - PC_MAX_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); -- DO NOT SWAP - PC_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 28.04.10 - -- FrameConstructor ports - TC_WR_EN_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(7 downto 0); - TC_H_READY_IN : in std_logic; - TC_READY_IN : in std_logic; - TC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - TC_SOD_OUT : out std_logic; - TC_EOD_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_packet_constr; - -architecture trb_net16_gbe_packet_constr of trb_net16_gbe_packet_constr is - --- attribute HGROUP : string; --- attribute HGROUP of trb_net16_gbe_packet_constr : architecture is "GBE_packet_constr"; - -component fifo_64kx9 -port ( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - --- FIFO for SubEventHeader information -component fifo_16kx8 is -port ( - Data : in std_logic_vector(7 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(7 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -signal df_wr_en : std_logic; -signal df_rd_en : std_logic; -signal df_q : std_logic_vector(7 downto 0); -signal df_q_reg : std_logic_vector(7 downto 0); -signal df_empty : std_logic; -signal df_full : std_logic; - -signal fc_data : std_logic_vector(7 downto 0); -signal fc_wr_en : std_logic; -signal fc_sod : std_logic; -signal fc_eod : std_logic; -signal fc_ident : std_logic_vector(15 downto 0); -- change this to own counter! -signal fc_flags_offset : std_logic_vector(15 downto 0); - -signal shf_data : std_logic_vector(7 downto 0); -signal shf_wr_en : std_logic; -signal shf_rd_en : std_logic; -signal shf_q : std_logic_vector(7 downto 0); -signal shf_empty : std_logic; -signal shf_full : std_logic; - -type constructStates is (CIDLE, SAVE_DATA, WAIT_FOR_LOAD); -signal constructCurrentState, constructNextState : constructStates; -signal constr_state : std_logic_vector(3 downto 0); -signal all_int_ctr : integer range 0 to 31; -signal all_ctr : std_logic_vector(4 downto 0); - -type saveSubStates is (SIDLE, SAVE_SIZE, SAVE_DECODING, SAVE_ID, SAVE_TRIG_NR, SAVE_TERM); -signal saveSubCurrentState, saveSubNextState : saveSubStates; -signal save_state : std_logic_vector(3 downto 0); -signal sub_int_ctr : integer range 0 to 31; -signal sub_ctr : std_logic_vector(4 downto 0); -signal my_int_ctr : integer range 0 to 3; -signal my_ctr : std_logic_vector(1 downto 0); - -type loadStates is (LIDLE, WAIT_FOR_FC, PUT_Q_LEN, PUT_Q_DEC, LOAD_SUB, PREP_DATA, LOAD_DATA, DIVIDE, LOAD_TERM, CLEANUP, DELAY); -signal loadCurrentState, loadNextState: loadStates; -signal load_state : std_logic_vector(3 downto 0); - -signal queue_size : std_logic_vector(31 downto 0); -- sum of all subevents sizes plus their headers and queue headers and termination -signal queue_size_temp : std_logic_vector(31 downto 0); -signal actual_queue_size : std_logic_vector(31 downto 0); -- queue size used during loading process when queue_size is no more valid -signal bytes_loaded : std_logic_vector(15 downto 0); -- size of actual constructing frame -signal sub_size_to_save : std_logic_vector(31 downto 0); -- size of subevent to save to shf -signal sub_size_loaded : std_logic_vector(31 downto 0); -- size of subevent actually being transmitted -signal sub_bytes_loaded : std_logic_vector(31 downto 0); -- amount of bytes of actual subevent sent -signal actual_packet_size : std_logic_vector(15 downto 0); -- actual size of whole udp packet -signal size_left : std_logic_vector(31 downto 0); -signal fc_ip_size : std_logic_vector(15 downto 0); -signal fc_udp_size : std_logic_vector(15 downto 0); -signal max_frame_size : std_logic_vector(15 downto 0); -signal divide_position : std_logic_vector(1 downto 0); -- 00->data, 01->sub, 11->term -signal debug : std_logic_vector(63 downto 0); -signal pc_ready : std_logic; - -signal pc_sub_size : std_logic_vector(31 downto 0); -signal pc_trig_nr : std_logic_vector(31 downto 0); -signal rst_after_sub_comb : std_logic; -- gk 08.04.10 -signal rst_after_sub : std_logic; -- gk 08.04.10 -signal load_int_ctr : integer range 0 to 3; -- gk 08.04.10 -signal delay_ctr : std_logic_vector(31 downto 0); -- gk 28.04.10 -signal ticks_ctr : std_logic_vector(7 downto 0); -- gk 28.04.10 - --- gk 26.07.10 -signal load_eod : std_logic; -signal load_eod_q : std_logic; - --- gk 07.10.10 -signal df_eod : std_logic; - --- gk 04.12.10 -signal first_sub_in_multi : std_logic; -signal from_divide_state : std_logic; -signal disable_prep : std_logic; - --- gk 02.08.11 -type constructSimpleFrameStates is (IDLE, WAIT_FOR_HEADERS, PUT_DATA, FINISH); -signal constrSimpleFrameCurrentState, constrSimpleFrameNextState : constructSimpleFrameStates; - -signal gen_data_ctr : std_logic_vector(15 downto 0); - -signal state : std_logic_vector(3 downto 0); - -attribute syn_preserve : boolean; -attribute syn_keep : boolean; -attribute syn_keep of state : signal is true; -attribute syn_preserve of state : signal is true; - -begin - -costrSimpleFrameMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - constrSimpleFrameCurrentState <= IDLE; - else - constrSimpleFrameCurrentState <= constrSimpleFrameNextState; - end if; - end if; -end process costrSimpleFrameMachineProc; - -constrSimpleFrameMachine : process(constrSimpleFrameCurrentState, PC_START_OF_SUB_IN, TC_H_READY_IN, gen_data_ctr, TC_READY_IN) -begin - case constrSimpleFrameCurrentState is - - when IDLE => - state <= x"1"; - if (PC_START_OF_SUB_IN = '1') then - constrSimpleFrameNextState <= WAIT_FOR_HEADERS; - else - constrSimpleFrameNextState <= IDLE; - end if; - - when WAIT_FOR_HEADERS => - state <= x"2"; - if (TC_H_READY_IN = '1') then - constrSimpleFrameNextState <= PUT_DATA; - else - constrSimpleFrameNextState <= WAIT_FOR_HEADERS; - end if; - - when PUT_DATA => - state <= x"3"; - if (gen_data_ctr = x"0100") then - constrSimpleFrameNextState <= FINISH; - else - constrSimpleFrameNextState <= PUT_DATA; - end if; - - when FINISH => - state <= x"4"; - if (TC_READY_IN = '1') then - constrSimpleFrameNextState <= IDLE; - else - constrSimpleFrameNextState <= FINISH; - end if; - - end case; -end process constrSimpleFrameMachine; - -GEN_DATA_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (constrSimpleFrameCurrentState = IDLE) then - gen_data_ctr <= (others => '0'); - elsif (constrSimpleFrameCurrentState = PUT_DATA) then - gen_data_ctr <= gen_data_ctr + x"1"; - end if; - end if; -end process; - -TC_DATA_OUT <= gen_data_ctr(7 downto 0); -TC_WR_EN_OUT <= '1' when constrSimpleFrameCurrentState = PUT_DATA else '0'; -TC_SOD_OUT <= '1' when (constrSimpleFrameCurrentState = IDLE and PC_START_OF_SUB_IN = '1') or (constrSimpleFrameCurrentState = WAIT_FOR_HEADERS and TC_H_READY_IN = '0') else '0'; -TC_EOD_OUT <= '1' when constrSimpleFrameCurrentState = PUT_DATA and gen_data_ctr = x"0100" else '0'; -PC_READY_OUT <= '1' when constrSimpleFrameCurrentState = IDLE else '0'; -PC_TRANSMIT_ON_OUT <= '0' when constrSimpleFrameCurrentState = IDLE and PC_START_OF_SUB_IN = '0' else '1'; -TC_IP_SIZE_OUT <= x"0100"; -TC_UDP_SIZE_OUT <= x"0100"; -TC_FLAGS_OFFSET_OUT <= (others => '0'); - ---PC_TRANSMIT_ON_OUT <= '1' when constructCurrentState = WAIT_FOR_LOAD else '0'; ---PC_TRANSMIT_ON_OUT <= '0'; - --- my_int_ctr <= (3 - to_integer(to_unsigned(sub_int_ctr, 2))); -- reverse byte order --- load_int_ctr <= (3 - to_integer(to_unsigned(all_int_ctr, 2))); -- gk 08.04.10 --- --- all_ctr <= std_logic_vector(to_unsigned(all_int_ctr, all_ctr'length)); -- for debugging --- sub_ctr <= std_logic_vector(to_unsigned(sub_int_ctr, sub_ctr'length)); -- for debugging --- my_ctr <= std_logic_vector(to_unsigned(my_int_ctr, my_ctr'length)); -- for debugging --- --- max_frame_size <= PC_MAX_FRAME_SIZE_IN; --- --- -- Ready signal for PacketConstructor - --pc_ready <= '1' when (constructCurrentState = CIDLE) and (df_empty = '1') else '0'; ---pc_ready <= '0'; - --- store event information on Start_of_Subevent --- THE_EVT_INFO_STORE_PROC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if (RESET = '1') then -- gk 31.05.10 --- pc_sub_size <= (others => '0'); --- pc_trig_nr <= (others => '0'); --- elsif( PC_START_OF_SUB_IN = '1' ) then --- pc_sub_size <= PC_SUB_SIZE_IN; --- pc_trig_nr <= PC_TRIG_NR_IN; --- end if; --- end if; --- end process; --- --- -- gk 07.10.10 --- df_eod <= '1' when ((MULT_EVT_ENABLE_IN = '0') and (PC_END_OF_DATA_IN = '1')) --- or ((MULT_EVT_ENABLE_IN = '1') and (PC_END_OF_SUB_IN = '1')) --- else '0'; - --- Data FIFO for incoming packet data from IPU buffer --- gk 26.07.10 --- DATA_FIFO : fifo_64kx9 --- port map( --- Data(7 downto 0) => PC_DATA_IN, --- Data(8) => df_eod, --PC_END_OF_DATA_IN, -- gk 07.10.10 --- WrClock => CLK, --- RdClock => CLK, --- WrEn => df_wr_en, --- RdEn => df_rd_en, --- Reset => RESET, --- RPReset => RESET, --- Q(7 downto 0) => df_q, --- Q(8) => load_eod, --- Empty => df_empty, --- Full => df_full --- ); - --- LOAD_EOD_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- load_eod_q <= '0'; --- else --- load_eod_q <= load_eod; --- end if; --- end if; --- end process LOAD_EOD_PROC; --- --- -- Write enable for the data FIFO --- -- !!!combinatorial signal!!! --- -- could be avoided as IPU2GBE does only send data in case of PC_READY. --- df_wr_en <= '1' when ((PC_WR_EN_IN = '1') and (constructCurrentState /= WAIT_FOR_LOAD)) --- else '0'; --- --- -- Output register for data FIFO --- dfQProc : process(CLK) --- begin --- if rising_edge(CLK) then --- df_q_reg <= df_q; --- end if; --- end process dfQProc; --- --- -- Construction state machine --- constructMachineProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- constructCurrentState <= CIDLE; --- else --- constructCurrentState <= constructNextState; --- end if; --- end if; --- end process constructMachineProc; --- --- constructMachine : process(constructCurrentState, PC_START_OF_SUB_IN, PC_WR_EN_IN, PC_END_OF_DATA_IN, loadCurrentState, saveSubCurrentState, sub_int_ctr) --- begin --- case constructCurrentState is --- when CIDLE => --- constr_state <= x"0"; --- --if( PC_WR_EN_IN = '1' ) then --- -- gk 04.12.10 --- if (PC_START_OF_SUB_IN = '1') then --- --- constructNextState <= SAVE_DATA; --- else --- constructNextState <= CIDLE; --- end if; --- when SAVE_DATA => --- constr_state <= x"1"; --- if( PC_END_OF_DATA_IN = '1' ) then --- constructNextState <= WAIT_FOR_LOAD; --- else --- constructNextState <= SAVE_DATA; --- end if; --- when WAIT_FOR_LOAD => --- constr_state <= x"2"; --- if( (df_empty = '1') and (loadCurrentState = LIDLE) ) then -- waits until the whole packet is transmitted --- constructNextState <= CIDLE; --- else --- constructNextState <= WAIT_FOR_LOAD; --- end if; --- when others => --- constr_state <= x"f"; --- constructNextState <= CIDLE; --- end case; --- end process constructMachine; - ---*********************** --- SIZE COUNTERS FOR SAVING SIDE ---*********************** - --- gk 29.03.10 the subevent size saved to its headers cannot contain padding bytes but they are included in pc_sub_size --- that's why they are removed if pc_padding flag is asserted --- sub_size_to_save <= (x"10" + pc_sub_size) when (PC_PADDING_IN = '0') --- else (x"c" + pc_sub_size); -- subevent headers + data --- --- -- BUG HERE BUG HERE BUG HERE BUG HERE --- -- gk 29.03.10 no changes here because the queue size should contain the padding bytes of subevents --- queueSizeProc : process(CLK) --- begin --- if rising_edge(CLK) then --- --if (RESET = '1') or (loadCurrentState = PUT_Q_DEC) then -- gk 07.10.10 -- (loadCurrentState = CLEANUP) then --- if (RESET = '1') or (loadCurrentState = CLEANUP) then --- queue_size <= x"00000028"; -- + 8B for queue headers and 32B for termination --- elsif (saveSubCurrentState = SAVE_SIZE) and (sub_int_ctr = 3) then --- queue_size <= queue_size + pc_sub_size + x"10"; -- + 16B for each subevent headers --- end if; --- end if; --- end process queueSizeProc; - - ---*********************** --- LOAD DATA COMBINED WITH HEADERS INTO FC, QUEUE TRANSMISSION ---*********************** - --- loadMachineProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- loadCurrentState <= LIDLE; --- else --- loadCurrentState <= loadNextState; --- end if; --- end if; --- end process loadMachineProc; --- --- loadMachine : process(loadCurrentState, constructCurrentState, all_int_ctr, df_empty, --- sub_bytes_loaded, sub_size_loaded, size_left, TC_H_READY_IN, --- max_frame_size, bytes_loaded, divide_position, PC_DELAY_IN, --- delay_ctr, load_eod_q, MULT_EVT_ENABLE_IN) --- begin --- case loadCurrentState is --- when LIDLE => --- load_state <= x"0"; --- if ((constructCurrentState = WAIT_FOR_LOAD) and (df_empty = '0')) then --- loadNextState <= WAIT_FOR_FC; --- else --- loadNextState <= LIDLE; --- end if; --- when WAIT_FOR_FC => --- load_state <= x"1"; --- if (TC_H_READY_IN = '1') then --- loadNextState <= PUT_Q_LEN; --- else --- loadNextState <= WAIT_FOR_FC; --- end if; --- when PUT_Q_LEN => --- load_state <= x"2"; --- if (all_int_ctr = 3) then --- loadNextState <= PUT_Q_DEC; --- else --- loadNextState <= PUT_Q_LEN; --- end if; --- when PUT_Q_DEC => --- load_state <= x"3"; --- if (all_int_ctr = 3) then --- loadNextState <= LOAD_SUB; --- else --- loadNextState <= PUT_Q_DEC; --- end if; --- when LOAD_SUB => --- load_state <= x"4"; --- if (bytes_loaded = max_frame_size - 1) then --- loadNextState <= DIVIDE; --- elsif (all_int_ctr = 15) then --- loadNextState <= PREP_DATA; --- else --- loadNextState <= LOAD_SUB; --- end if; --- when PREP_DATA => --- load_state <= x"5"; --- loadNextState <= LOAD_DATA; --- when LOAD_DATA => --- load_state <= x"6"; --- -- if (bytes_loaded = max_frame_size - 1) then --- -- loadNextState <= DIVIDE; --- -- -- gk 07.10.10 --- -- elsif (MULT_EVT_ENABLE_IN = '1') then --- -- if (size_left = x"0000_0023") then --- -- loadNextState <= LOAD_TERM; --- -- elsif (load_eod_q = '1') then --- -- loadNextState <= LOAD_SUB; --- -- else --- -- loadNextState <= LOAD_DATA; --- -- end if; --- -- else --- -- if (load_eod_q = '1') then --- -- loadNextState <= LOAD_TERM; --- -- else --- -- loadNextState <= LOAD_DATA; --- -- end if; --- -- end if; --- if (bytes_loaded = max_frame_size - 1) then --- loadNextState <= DIVIDE; --- -- gk 07.10.10 --- elsif (load_eod_q = '1') then --- if (MULT_EVT_ENABLE_IN = '1') then --- if (size_left < x"0000_0030") then --- loadNextState <= LOAD_TERM; --- else --- loadNextState <= LOAD_SUB; --- end if; --- else --- loadNextState <= LOAD_TERM; --- end if; --- else --- loadNextState <= LOAD_DATA; --- end if; --- when DIVIDE => --- load_state <= x"7"; --- if (TC_H_READY_IN = '1') then --- if (divide_position = "00") then --- loadNextState <= PREP_DATA; --- elsif (divide_position = "01") then --- loadNextState <= LOAD_SUB; --- else --- loadNextState <= LOAD_TERM; --- end if; --- else --- loadNextState <= DIVIDE; --- end if; --- when LOAD_TERM => --- load_state <= x"8"; --- if (bytes_loaded = max_frame_size - 1) and (all_int_ctr /= 31) then --- loadNextState <= DIVIDE; --- elsif (all_int_ctr = 31) then --- loadNextState <= CLEANUP; --- else --- loadNextState <= LOAD_TERM; --- end if; --- -- gk 28.04.10 --- when CLEANUP => --- load_state <= x"9"; --- if (PC_DELAY_IN = x"0000_0000") then --- loadNextState <= LIDLE; --- else --- loadNextState <= DELAY; --- end if; --- -- gk 28.04.10 --- when DELAY => --- load_state <= x"a"; --- if (delay_ctr = x"0000_0000") then --- loadNextState <= LIDLE; --- else --- loadNextState <= DELAY; --- end if; --- when others => --- load_state <= x"f"; --- loadNextState <= LIDLE; --- end case; --- end process loadMachine; --- --- -- gk 04.12.10 --- firstSubInMultiProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LOAD_TERM) then --- first_sub_in_multi <= '1'; --- elsif (loadCurrentState = LOAD_DATA) then --- first_sub_in_multi <= '0'; --- end if; --- end if; --- end process; --- --- -- gk 04.12.10 --- fromDivideStateProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- from_divide_state <= '0'; --- elsif (loadCurrentState = DIVIDE) then --- from_divide_state <= '1'; --- elsif (loadCurrentState = PREP_DATA) then --- from_divide_state <= '0'; --- end if; --- end if; --- end process fromDivideStateProc; --- --- --- dividePositionProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- divide_position <= "00"; --- -- elsif (bytes_loaded = max_frame_size - 1) then --- -- if (loadCurrentState = LIDLE) then --- -- divide_position <= "00"; --- -- elsif (loadCurrentState = LOAD_DATA) then --- -- -- gk 07.10.10 --- -- if (MULT_EVT_ENABLE_IN = '1') and (size_left = x"0000_003a") then --- -- divide_position <= "11"; --- -- -- gk 07.10.10 --- -- elsif (MULT_EVT_ENABLE_IN = '1') and (load_eod_q = '1') then --- -- divide_position <= "01"; --- -- -- gk 26.07.10 --- -- elsif (MULT_EVT_ENABLE_IN = '0') and (load_eod_q = '1') then -- if termination is about to be loaded divide on term --- -- divide_position <= "11"; --- -- else --- -- divide_position <= "00"; -- still data loaded divide on data --- -- end if; --- -- elsif (loadCurrentState = LOAD_SUB) then --- -- if (all_int_ctr = 15) then --- -- divide_position <= "00"; --- -- else --- -- divide_position <= "01"; --- -- end if; --- -- elsif (loadCurrentState = LOAD_TERM) then --- -- divide_position <= "11"; --- -- end if; --- -- end if; --- elsif (bytes_loaded = max_frame_size - 1) then --- if (loadCurrentState = LIDLE) then --- divide_position <= "00"; --- disable_prep <= '0'; -- gk 05.12.10 --- elsif (loadCurrentState = LOAD_DATA) then --- -- gk 05.12.10 --- -- gk 26.07.10 --- if (MULT_EVT_ENABLE_IN = '0') and (load_eod_q = '1') then -- if termination is about to be loaded divide on term --- divide_position <= "11"; --- disable_prep <= '0'; -- gk 05.12.10 --- elsif (MULT_EVT_ENABLE_IN = '1') and (load_eod_q = '1') then --- if (size_left > x"0000_0028") then --- divide_position <= "01"; --- disable_prep <= '0'; -- gk 05.12.10 --- else --- divide_position <= "11"; --- disable_prep <= '0'; -- gk 05.12.10 --- end if; --- else --- divide_position <= "00"; -- still data loaded divide on data --- disable_prep <= '1'; -- gk 05.12.10 --- end if; --- elsif (loadCurrentState = LOAD_SUB) then --- if (all_int_ctr = 15) then --- divide_position <= "00"; --- disable_prep <= '1'; -- gk 05.12.10 --- else --- divide_position <= "01"; --- disable_prep <= '0'; -- gk 05.12.10 --- end if; --- elsif (loadCurrentState = LOAD_TERM) then --- divide_position <= "11"; --- disable_prep <= '0'; -- gk 05.12.10 --- end if; --- elsif (loadCurrentState = PREP_DATA) then -- gk 06.12.10 reset disable_prep --- disable_prep <= '0'; --- end if; --- --- end if; --- end process dividePositionProc; --- --- allIntCtrProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then -- gk 31.05.10 --- all_int_ctr <= 0; --- else --- case loadCurrentState is --- --- when LIDLE => all_int_ctr <= 0; --- --- when WAIT_FOR_FC => all_int_ctr <= 0; --- --- when PUT_Q_LEN => --- if (all_int_ctr = 3) then --- all_int_ctr <= 0; --- else --- all_int_ctr <= all_int_ctr + 1; --- end if; --- --- when PUT_Q_DEC => --- if (all_int_ctr = 3) then --- all_int_ctr <= 0; --- else --- all_int_ctr <= all_int_ctr + 1; --- end if; --- --- when LOAD_SUB => --- if (all_int_ctr = 15) then --- all_int_ctr <= 0; --- else --- all_int_ctr <= all_int_ctr + 1; --- end if; --- --- when LOAD_DATA => all_int_ctr <= 0; --- --- when LOAD_TERM => --- if (all_int_ctr = 31) then --- all_int_ctr <= 0; --- else --- all_int_ctr <= all_int_ctr + 1; --- end if; --- --- when DIVIDE => null; --- --- when CLEANUP => all_int_ctr <= 0; --- --- when PREP_DATA => all_int_ctr <= 0; --- --- when DELAY => all_int_ctr <= 0; --- end case; --- end if; --- end if; --- end process allIntCtrProc; --- --- dfRdEnProc : process(loadCurrentState, bytes_loaded, max_frame_size, sub_bytes_loaded, --- sub_size_loaded, all_int_ctr, RESET, size_left, load_eod_q) --- begin --- if (RESET = '1') then --- df_rd_en <= '0'; --- elsif (loadCurrentState = LOAD_DATA) then --- -- if (bytes_loaded = max_frame_size - x"1") then --- -- df_rd_en <= '0'; --- -- -- gk 07.10.10 --- -- elsif (MULT_EVT_ENABLE_IN = '0') and (load_eod_q = '1') then --- -- df_rd_en <= '0'; --- -- -- gk 07.10.10 --- -- elsif (MULT_EVT_ENABLE_IN = '1') and (size_left = x"0000_003a") then --- -- df_rd_en <= '0'; --- -- else --- -- df_rd_en <= '1'; --- -- end if; --- if (bytes_loaded = max_frame_size - x"1") then --- df_rd_en <= '0'; --- -- gk 26.07.10 --- --elsif (load_eod = '1') or (load_eod_q = '1') then --- elsif (load_eod_q = '1') then --- df_rd_en <= '0'; --- -- elsif (sub_bytes_loaded = sub_size_loaded) then --- -- df_rd_en <= '0'; --- else --- df_rd_en <= '1'; --- end if; --- --- elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 15) and (bytes_loaded /= max_frame_size - x"1") then --- df_rd_en <= '1'; --- elsif (loadCurrentState = PREP_DATA) then --- df_rd_en <= '1'; --- else --- df_rd_en <= '0'; --- end if; --- end process dfRdEnProc; --- --- shfRdEnProc : process(loadCurrentState, all_int_ctr, RESET) --- begin --- if (RESET = '1') then -- gk 31.05.10 --- shf_rd_en <= '0'; --- elsif (loadCurrentState = LOAD_SUB) then --- shf_rd_en <= '1'; --- elsif (loadCurrentState = LOAD_TERM) and (all_int_ctr < 31) then --- shf_rd_en <= '1'; --- elsif (loadCurrentState = PUT_Q_DEC) and (all_int_ctr = 3) then --- shf_rd_en <= '1'; --- else --- shf_rd_en <= '0'; --- end if; --- end process shfRdEnProc; --- --- --- -- fcWrEnProc : process(loadCurrentState, RESET) --- -- begin --- -- if (RESET = '1') then -- gk 31.05.10 --- -- fc_wr_en <= '0'; --- -- elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) then --- -- fc_wr_en <= '1'; --- -- elsif (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_TERM) then --- -- fc_wr_en <= '1'; --- -- else --- -- fc_wr_en <= '0'; --- -- end if; --- -- end process fcWrEnProc; --- fcWrEnProc : process(loadCurrentState, RESET, first_sub_in_multi, from_divide_state, MULT_EVT_ENABLE_IN, divide_position, disable_prep) --- begin --- if (RESET = '1') then -- gk 31.05.10 --- fc_wr_en <= '0'; --- elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) then --- fc_wr_en <= '1'; --- elsif (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_TERM) then --- fc_wr_en <= '1'; --- -- gk 04.12.10 --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') and (disable_prep = '0') then --- fc_wr_en <= '1'; --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (from_divide_state = '1') and ((divide_position = "00") or (divide_position = "01")) and (disable_prep = '0') then --- fc_wr_en <= '1'; --- else --- fc_wr_en <= '0'; --- end if; --- end process fcWrEnProc; --- --- --- -- was all_int_ctr --- fcDataProc : process(loadCurrentState, queue_size_temp, PC_QUEUE_DEC_IN, shf_q, df_q_reg, load_int_ctr) --- begin --- case loadCurrentState is --- when LIDLE => fc_data <= x"af"; --- when WAIT_FOR_FC => fc_data <= x"bf"; --- -- gk 08.04.10 my_int_ctr changed to load_int_ctr --- when PUT_Q_LEN => fc_data <= queue_size_temp(load_int_ctr * 8 + 7 downto load_int_ctr * 8); --- when PUT_Q_DEC => fc_data <= PC_QUEUE_DEC_IN(load_int_ctr * 8 + 7 downto load_int_ctr * 8); --- when LOAD_SUB => fc_data <= shf_q; --- when PREP_DATA => fc_data <= df_q_reg; --- when LOAD_DATA => fc_data <= df_q_reg; --- when LOAD_TERM => fc_data <= shf_q; --- when DIVIDE => fc_data <= x"cf"; --- when CLEANUP => fc_data <= x"df"; --- when others => fc_data <= x"00"; --- end case; --- end process fcDataProc; --- --- -- delay counters --- -- gk 28.04.10 --- DELAY_CTR_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if ((RESET = '1') or (loadCurrentState = LIDLE)) then --- delay_ctr <= PC_DELAY_IN; --- elsif ((loadCurrentState = DELAY) and (ticks_ctr(7) = '1')) then --- delay_ctr <= delay_ctr - x"1"; --- end if; --- end if; --- end process DELAY_CTR_PROC; --- --- -- gk 28.04.10 --- TICKS_CTR_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if ((RESET = '1') or (loadCurrentState = LIDLE) or (ticks_ctr(7) = '1')) then --- ticks_ctr <= x"00"; --- elsif (loadCurrentState = DELAY) then --- ticks_ctr <= ticks_ctr + x"1"; --- end if; --- end if; --- end process TICKS_CTR_PROC; - - ---*********************** --- SIZE COUNTERS FOR LOADING SIDE ---*********************** - --- queue_size_temp <= queue_size - x"20"; -- size of data without termination --- --- -- gk 08.04.10 --- rst_after_sub_comb <= '1' when (loadCurrentState = LIDLE) or --- ((loadCurrentState = LOAD_DATA) and (size_left /= x"00000021")) -- gk 26.07.10 -- and (sub_bytes_loaded = sub_size_loaded) --- else '0'; --- --- -- gk 08.04.10 --- RST_AFTER_SUB_PROC : process(CLK) --- begin --- if(rising_edge(CLK)) then --- if(RESET = '1') then --- rst_after_sub <= '0'; --- else --- rst_after_sub <= rst_after_sub_comb; --- end if; --- end if; --- end process RST_AFTER_SUB_PROC; --- --- -- counts all bytes loaded to divide data into frames --- bytesLoadedProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = DIVIDE) or (loadCurrentState = CLEANUP) then --- bytes_loaded <= x"0000"; --- elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_TERM) then --- bytes_loaded <= bytes_loaded + x"1"; --- -- gk 05.12.10 --- -- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') then --- -- bytes_loaded <= bytes_loaded + x"1"; --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') and (disable_prep = '0') then --- bytes_loaded <= bytes_loaded + x"1"; --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (from_divide_state = '1') and ((divide_position = "00") or (divide_position = "01")) and (disable_prep = '0') then --- bytes_loaded <= bytes_loaded + x"1"; --- end if; --- end if; --- end process bytesLoadedProc; --- --- -- size of subevent loaded from memory --- subSizeLoadedProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 08.04.10 --- sub_size_loaded <= x"00000000"; --- elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr < 4) then --- -- was all_int_ctr --- -- gk 08.04.10 my_int_ctr changed to load_int_ctr --- sub_size_loaded(7 + load_int_ctr * 8 downto load_int_ctr * 8) <= shf_q; --- -- gk 29.03.10 here the padding bytes have to be added to the loadedSize in order to load the correct amount of bytes from fifo --- elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 5) and (sub_size_loaded(2) = '1') then --- sub_size_loaded <= sub_size_loaded + x"4"; --- end if; --- end if; --- end process subSizeLoadedProc; --- --- -- counts only raw data bytes being loaded --- subBytesLoadedProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 26.07.10 --or (sub_bytes_loaded = sub_size_loaded) -- gk 08.04.10 --- sub_bytes_loaded <= x"00000011"; -- subevent headers doesnt count --- elsif (loadCurrentState = LOAD_DATA) then --- sub_bytes_loaded <= sub_bytes_loaded + x"1"; --- end if; --- end if; --- end process subBytesLoadedProc; --- --- -- counts the size of the large udp packet --- actualPacketProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then --- actual_packet_size <= x"0008"; --- elsif (fc_wr_en = '1') then --- actual_packet_size <= actual_packet_size + x"1"; --- end if; --- end if; --- end process actualPacketProc; --- --- actualQueueSizeProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = CLEANUP) then --- actual_queue_size <= (others => '0'); --- elsif (loadCurrentState = LIDLE) then --- actual_queue_size <= queue_size; --- end if; --- end if; --- end process actualQueueSizeProc; --- --- -- amount of bytes left to send in current packet --- sizeLeftProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = CLEANUP) then --- size_left <= (others => '0'); --- elsif (loadCurrentState = LIDLE) then --- size_left <= queue_size; --- elsif (fc_wr_en = '1') then --- size_left <= size_left - 1; --- end if; --- end if; --- end process sizeLeftProc; --- --- -- HOT FIX: don't rely on CTS information, count the packets on your own. --- -- In this case, we increment the fragmented packet ID with EOD from ipu2gbe. --- THE_FC_IDENT_COUNTER_PROC: process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- fc_ident <= (others => '0'); --- elsif (PC_END_OF_DATA_IN = '1') then --- fc_ident <= fc_ident + 1; --- end if; --- end if; --- end process THE_FC_IDENT_COUNTER_PROC; --- --- fc_flags_offset(15 downto 14) <= "00"; --- --- moreFragmentsProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then --- fc_flags_offset(13) <= '0'; --- elsif ((loadCurrentState = DIVIDE) and (TC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1')) then --- if ((actual_queue_size - actual_packet_size) < max_frame_size) then --- fc_flags_offset(13) <= '0'; -- no more fragments --- else --- fc_flags_offset(13) <= '1'; -- more fragments --- end if; --- end if; --- end if; --- end process moreFragmentsProc; --- --- eodProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- fc_eod <= '0'; --- elsif (loadCurrentState = LOAD_DATA) and (bytes_loaded = max_frame_size - 2) then --- fc_eod <= '1'; --- elsif (loadCurrentState = LOAD_SUB) and (bytes_loaded = max_frame_size - 2) then --- fc_eod <= '1'; --- elsif (loadCurrentState = LOAD_TERM) and ((bytes_loaded = max_frame_size - 2) or (all_int_ctr = 30)) then --- fc_eod <= '1'; --- else --- fc_eod <= '0'; --- end if; --- end if; --- end process eodProc; --- --- sodProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- fc_sod <= '0'; --- elsif (loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1') then --- fc_sod <= '1'; --- elsif (loadCurrentState = DIVIDE) and (TC_READY_IN = '1') then --- fc_sod <= '1'; --- else --- fc_sod <= '0'; --- end if; --- end if; --- end process sodProc; --- --- offsetProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then --- fc_flags_offset(12 downto 0) <= (others => '0'); --- elsif ((loadCurrentState = DIVIDE) and (TC_READY_IN = '1')) then --- fc_flags_offset(12 downto 0) <= actual_packet_size(15 downto 3); --- end if; --- end if; --- end process offsetProc; --- --- fcIPSizeProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET= '1') then --- fc_ip_size <= (others => '0'); --- elsif ((loadCurrentState = DIVIDE) and (TC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1')) then --- if (size_left >= max_frame_size) then --- fc_ip_size <= max_frame_size; --- else --- fc_ip_size <= size_left(15 downto 0); --- end if; --- end if; --- end if; --- end process fcIPSizeProc; --- --- fcUDPSizeProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- fc_udp_size <= (others => '0'); --- elsif (loadCurrentState = WAIT_FOR_FC) and (TC_READY_IN = '1') then --- fc_udp_size <= queue_size(15 downto 0); --- end if; --- end if; --- end process fcUDPSizeProc; - - ---*********************** --- SUBEVENT HEADERS WRITE AND READ ---*********************** - --- SUBEVENT_HEADERS_FIFO : fifo_16kx8 --- port map( --- Data => shf_data, --- WrClock => CLK, --- RdClock => CLK, --- WrEn => shf_wr_en, --- RdEn => shf_rd_en, --- Reset => RESET, --- RPReset => RESET, --- Q => shf_q, --- Empty => shf_empty, --- Full => shf_full --- ); --- --- -- write enable for SHF --- shf_wr_en <= '1' when ((saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA)) --- else '0'; --- --- -- data multiplexing for SHF (convert 32bit LWs to 8bit) --- -- CHANGED. --- -- The SubEventHeader (4x 32bit is stored in [MSB:LSB] now, same byte order as data from PC. --- shfDataProc : process(saveSubCurrentState, sub_size_to_save, PC_DECODING_IN, PC_EVENT_ID_IN, --- pc_trig_nr, my_int_ctr, fc_data) --- begin --- case saveSubCurrentState is --- when SIDLE => shf_data <= x"ac"; --- when SAVE_SIZE => shf_data <= sub_size_to_save(my_int_ctr * 8 + 7 downto my_int_ctr * 8); --- when SAVE_DECODING => shf_data <= PC_DECODING_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); --- when SAVE_ID => shf_data <= PC_EVENT_ID_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); --- when SAVE_TRIG_NR => shf_data <= pc_trig_nr(my_int_ctr * 8 + 7 downto my_int_ctr * 8); --- when SAVE_TERM => shf_data <= fc_data; --- when others => shf_data <= x"00"; --- end case; --- end process shfDataProc; --- --- saveSubMachineProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- saveSubCurrentState <= SIDLE; --- else --- saveSubCurrentState <= saveSubNextState; --- end if; --- end if; --- end process saveSubMachineProc; --- --- saveSubMachine : process(saveSubCurrentState, PC_START_OF_SUB_IN, sub_int_ctr, loadCurrentState, TC_H_READY_IN) --- begin --- case saveSubCurrentState is --- when SIDLE => --- save_state <= x"0"; --- if (PC_START_OF_SUB_IN = '1') then --- saveSubNextState <= SAVE_SIZE; --- -- this branch is dangerous! --- elsif (loadCurrentState = WAIT_FOR_FC) and (TC_H_READY_IN = '1') then -- means that loadCurrentState is put_q_len --- saveSubNextState <= SAVE_TERM; --- else --- saveSubNextState <= SIDLE; --- end if; --- when SAVE_SIZE => --- save_state <= x"1"; --- if (sub_int_ctr = 3) then --- saveSubNextState <= SAVE_DECODING; --- else --- saveSubNextState <= SAVE_SIZE; --- end if; --- when SAVE_DECODING => --- save_state <= x"2"; --- if (sub_int_ctr = 3) then --- saveSubNextState <= SAVE_ID; --- else --- saveSubNextState <= SAVE_DECODING; --- end if; --- when SAVE_ID => --- save_state <= x"3"; --- if (sub_int_ctr = 3) then --- saveSubNextState <= SAVE_TRIG_NR; --- else --- saveSubNextState <= SAVE_ID; --- end if; --- when SAVE_TRIG_NR => --- save_state <= x"4"; --- if (sub_int_ctr = 3) then --- saveSubNextState <= SIDLE; --- else --- saveSubNextState <= SAVE_TRIG_NR; --- end if; --- when SAVE_TERM => --- save_state <= x"5"; --- if (sub_int_ctr = 31) then --- saveSubNextState <= SIDLE; --- else --- saveSubNextState <= SAVE_TERM; --- end if; --- when others => --- save_state <= x"f"; --- saveSubNextState <= SIDLE; --- end case; --- end process; --- --- -- This counter is used for breaking down 32bit information words into 8bit bytes for --- -- storing them in the SHF. --- -- It is also used for the termination 32byte sequence. --- subIntProc: process( CLK ) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (saveSubCurrentState = SIDLE) then --- sub_int_ctr <= 0; --- elsif (sub_int_ctr = 3) and (saveSubCurrentState /= SAVE_TERM) then --- sub_int_ctr <= 0; --- elsif (sub_int_ctr = 31) and (saveSubCurrentState = SAVE_TERM) then --- sub_int_ctr <= 0; --- elsif (saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA) then --- sub_int_ctr <= sub_int_ctr + 1; --- end if; --- end if; --- end process subIntProc; --- --- debug(3 downto 0) <= constr_state; --- debug(7 downto 4) <= save_state; --- debug(11 downto 8) <= load_state; --- debug(27 downto 12) <= queue_size(15 downto 0); --- debug(28) <= df_full; --- debug(29) <= df_empty; --- debug(30) <= shf_full; --- debug(31) <= shf_empty; --- --- debug(47 downto 32) <= size_left(15 downto 0); --- debug(52 downto 48) <= all_ctr; --- debug(53) <= pc_ready; - --- outputs --- PC_READY_OUT <= pc_ready; --- TC_WR_EN_OUT <= fc_wr_en; --- TC_DATA_OUT <= fc_data; --- TC_IP_SIZE_OUT <= fc_ip_size; --- TC_UDP_SIZE_OUT <= fc_udp_size; --- -- FC_IDENT_OUT(15 downto 8) <= fc_ident(7 downto 0); --- -- FC_IDENT_OUT(7 downto 0) <= fc_ident(15 downto 8); --- TC_FLAGS_OFFSET_OUT <= fc_flags_offset; --- TC_SOD_OUT <= fc_sod; --- TC_EOD_OUT <= fc_eod; - ---PC_READY_OUT <= '1'; ---TC_IP_SIZE_OUT <= (others => '0'); ---TC_UDP_SIZE_OUT <= (others => '0'); --- FC_IDENT_OUT(15 downto 8) <= fc_ident(7 downto 0); --- FC_IDENT_OUT(7 downto 0) <= fc_ident(15 downto 8); --- TC_FLAGS_OFFSET_OUT <= fc_flags_offset; --- TC_SOD_OUT <= fc_sod; --- TC_EOD_OUT <= fc_eod; - -DEBUG_OUT <= debug; - -end trb_net16_gbe_packet_constr; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_gbe_protocol_prioritizer.vhd b/gbe2_ecp3/trb_net16_gbe_protocol_prioritizer.vhd deleted file mode 100644 index d7dd176..0000000 --- a/gbe2_ecp3/trb_net16_gbe_protocol_prioritizer.vhd +++ /dev/null @@ -1,87 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - ---******** --- maps the frame type and protocol code into internal value which sets the priority - -entity trb_net16_gbe_protocol_prioritizer is -port ( - CLK : in std_logic; - RESET : in std_logic; - - FRAME_TYPE_IN : in std_logic_vector(15 downto 0); -- recovered frame type - PROTOCOL_CODE_IN : in std_logic_vector(7 downto 0); -- ip protocol - UDP_PROTOCOL_IN : in std_logic_vector(15 downto 0); - - CODE_OUT : out std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0) -); -end trb_net16_gbe_protocol_prioritizer; - - -architecture trb_net16_gbe_protocol_prioritizer of trb_net16_gbe_protocol_prioritizer is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_protocol_prioritizer : architecture is "GBE_MAIN_group"; - -begin - -PRIORITIZE : process(RESET, CLK) -begin - if RESET = '1' then - CODE_OUT <= (others => '0'); - elsif rising_edge(CLK) then - - CODE_OUT <= (others => '0'); - - --**** HERE ADD YOU PROTOCOL RECOGNITION AT WANTED PRIORITY LEVEL - -- priority level is the bit position in the CODE_OUT vector - -- less significant bit has the higher priority - case FRAME_TYPE_IN is - - -- IPv4 - when x"0800" => - if (PROTOCOL_CODE_IN = x"11") then -- UDP - -- No. 2 = DHCP - if (UDP_PROTOCOL_IN = x"0044") then -- DHCP Client - CODE_OUT(1) <= '1'; - -- No. 4 = SCTRL - elsif (UDP_PROTOCOL_IN = x"6590") then -- SCTRL module - CODE_OUT(2) <= '1'; - else - -- branch for pure IPv4 - CODE_OUT <= (others => '0'); - end if; - -- No. 3 = ICMP - elsif (PROTOCOL_CODE_IN = x"01") then -- ICMP - CODE_OUT(4) <= '1'; - else - CODE_OUT <= (others => '0'); - end if; - - -- No. 1 = ARP - when x"0806" => - CODE_OUT(0) <= '1'; - - -- last slot is reserved for Trash - when others => - CODE_OUT <= (others => '0'); - - end case; - - end if; - -end process PRIORITIZE; - -end trb_net16_gbe_protocol_prioritizer; - - diff --git a/gbe2_ecp3/trb_net16_gbe_protocol_selector.vhd b/gbe2_ecp3/trb_net16_gbe_protocol_selector.vhd deleted file mode 100644 index a6122ba..0000000 --- a/gbe2_ecp3/trb_net16_gbe_protocol_selector.vhd +++ /dev/null @@ -1,690 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - ---******** --- multiplexes between different protocols and manages the responses --- --- - - -entity trb_net16_gbe_protocol_selector is - generic( - RX_PATH_ENABLE : integer range 0 to 1 := 1; - DO_SIMULATION : integer range 0 to 1 := 0 - ); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - RESET_FOR_DHCP : in std_logic; - --- signals to/from main controller - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_PROTO_SELECT_IN : in std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - PS_BUSY_OUT : out std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - PS_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - PS_RESPONSE_READY_OUT : out std_logic; - - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - --- singals to/from transmit controller with constructed response - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_RD_EN_IN : in std_logic; - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - MC_BUSY_IN : in std_logic; - - -- misc signals for response constructors - DHCP_START_IN : in std_logic; - DHCP_DONE_OUT : out std_logic; - - GSC_CLK_IN : in std_logic; - GSC_INIT_DATAREADY_OUT : out std_logic; - GSC_INIT_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_INIT_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_INIT_READ_IN : in std_logic; - GSC_REPLY_DATAREADY_IN : in std_logic; - GSC_REPLY_DATA_IN : in std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_IN : in std_logic_vector(2 downto 0); - GSC_REPLY_READ_OUT : out std_logic; - GSC_BUSY_IN : in std_logic; - - MAKE_RESET_OUT : out std_logic; - - -- signal for data readout - -- CTS interface - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; - CTS_READ_IN : in std_logic; - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - FEE_BUSY_IN : in std_logic; - -- ip configurator - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - - CFG_GBE_ENABLE_IN : in std_logic; - CFG_IPU_ENABLE_IN : in std_logic; - CFG_MULT_ENABLE_IN : in std_logic; - CFG_SUBEVENT_ID_IN : in std_logic_vector(31 downto 0); - CFG_SUBEVENT_DEC_IN : in std_logic_vector(31 downto 0); - CFG_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); - CFG_READOUT_CTR_IN : in std_logic_vector(23 downto 0); - CFG_READOUT_CTR_VALID_IN : in std_logic; - CFG_INSERT_TTYPE_IN : in std_logic; - CFG_MAX_SUB_IN : in std_logic_vector(15 downto 0); - CFG_MAX_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SUBS_IN_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SINGLE_SUB_IN : in std_logic_vector(15 downto 0); - - CFG_ADDITIONAL_HDR_IN : in std_logic; - - -- input for statistics from outside - STAT_DATA_IN : in std_logic_vector(31 downto 0); - STAT_ADDR_IN : in std_logic_vector(7 downto 0); - STAT_DATA_RDY_IN : in std_logic; - STAT_DATA_ACK_OUT : out std_logic; - - MONITOR_SELECT_REC_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_REC_BYTES_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_IN_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_OUT_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_GEN_DBG_OUT : out std_logic_vector(2*c_MAX_PROTOCOLS * 32 - 1 downto 0); - - DATA_HIST_OUT : out hist_array; - SCTRL_HIST_OUT : out hist_array -); -end trb_net16_gbe_protocol_selector; - - -architecture trb_net16_gbe_protocol_selector of trb_net16_gbe_protocol_selector is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_protocol_selector : architecture is "GBE_MAIN_group"; - -attribute syn_encoding : string; - -signal rd_en : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal resp_ready : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal tc_wr : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal tc_data : std_logic_vector(c_MAX_PROTOCOLS * 9 - 1 downto 0); -signal tc_size : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); -signal tc_type : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); -signal busy : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal selected : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal tc_mac : std_logic_vector(c_MAX_PROTOCOLS * 48 - 1 downto 0); -signal tc_ip : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); -signal tc_udp : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); -signal tc_src_mac : std_logic_vector(c_MAX_PROTOCOLS * 48 - 1 downto 0); -signal tc_src_ip : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); -signal tc_src_udp : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); -signal tc_ip_proto : std_logic_vector(c_MAX_PROTOCOLS * 8 - 1 downto 0); - --- plus 1 is for the outside -signal stat_data : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); -signal stat_addr : std_logic_vector(c_MAX_PROTOCOLS * 8 - 1 downto 0); -signal stat_rdy : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal stat_ack : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal tc_ip_size : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); -signal tc_udp_size : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); -signal tc_size_left : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); -signal tc_flags_size : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); - -signal tc_data_not_valid : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - -type select_states is (IDLE, LOOP_OVER, SELECT_ONE, PROCESS_REQUEST, CLEANUP); -signal select_current_state, select_next_state : select_states; -attribute syn_encoding of select_current_state : signal is "onehot"; - -signal state : std_logic_vector(3 downto 0); -signal index : integer range 0 to c_MAX_PROTOCOLS - 1; - -signal mult : std_logic; - -signal tc_ident : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); -signal zeros : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - -attribute syn_preserve : boolean; -attribute syn_keep : boolean; -attribute syn_keep of state, mult : signal is true; -attribute syn_preserve of state, mult : signal is true; - - -begin - -zeros <= (others => '0'); - --- protocol Nr. 1 ARP -ARP : trb_net16_gbe_response_constructor_ARP -generic map( STAT_ADDRESS_BASE => 6 -) -port map ( - CLK => CLK, - RESET => RESET, - --- INTERFACE - PS_DATA_IN => PS_DATA_IN, - PS_WR_EN_IN => PS_WR_EN_IN, - PS_ACTIVATE_IN => PS_PROTO_SELECT_IN(0), - PS_RESPONSE_READY_OUT => resp_ready(0), - PS_BUSY_OUT => busy(0), - PS_SELECTED_IN => selected(0), - - PS_SRC_MAC_ADDRESS_IN => PS_SRC_MAC_ADDRESS_IN, - PS_DEST_MAC_ADDRESS_IN => PS_DEST_MAC_ADDRESS_IN, - PS_SRC_IP_ADDRESS_IN => PS_SRC_IP_ADDRESS_IN, - PS_DEST_IP_ADDRESS_IN => PS_DEST_IP_ADDRESS_IN, - PS_SRC_UDP_PORT_IN => PS_SRC_UDP_PORT_IN, - PS_DEST_UDP_PORT_IN => PS_DEST_UDP_PORT_IN, - - TC_RD_EN_IN => TC_RD_EN_IN, - TC_DATA_OUT => tc_data(1 * 9 - 1 downto 0 * 9), - TC_FRAME_SIZE_OUT => tc_size(1 * 16 - 1 downto 0 * 16), - TC_FRAME_TYPE_OUT => tc_type(1 * 16 - 1 downto 0 * 16), - TC_IP_PROTOCOL_OUT => tc_ip_proto(1 * 8 - 1 downto 0 * 8), - TC_IDENT_OUT => tc_ident(1 * 16 - 1 downto 0 * 16), - - TC_DEST_MAC_OUT => tc_mac(1 * 48 - 1 downto 0 * 48), - TC_DEST_IP_OUT => tc_ip(1 * 32 - 1 downto 0 * 32), - TC_DEST_UDP_OUT => tc_udp(1 * 16 - 1 downto 0 * 16), - TC_SRC_MAC_OUT => tc_src_mac(1 * 48 - 1 downto 0 * 48), - TC_SRC_IP_OUT => tc_src_ip(1 * 32 - 1 downto 0 * 32), - TC_SRC_UDP_OUT => tc_src_udp(1 * 16 - 1 downto 0 * 16), - - STAT_DATA_OUT => stat_data(1 * 32 - 1 downto 0 * 32), - STAT_ADDR_OUT => stat_addr(1 * 8 - 1 downto 0 * 8), - STAT_DATA_RDY_OUT => stat_rdy(0), - STAT_DATA_ACK_IN => stat_ack(0), - RECEIVED_FRAMES_OUT => open, --RECEIVED_FRAMES_OUT(1 * 16 - 1 downto 0 * 16), - SENT_FRAMES_OUT => open, --SENT_FRAMES_OUT(1 * 16 - 1 downto 0 * 16), - DEBUG_OUT => MONITOR_SELECT_GEN_DBG_OUT(1 * 64 - 1 downto 0 * 64) --PROTOS_DEBUG_OUT(1 * 32 - 1 downto 0 * 32) --- END OF INTERFACE -); - --- protocol No. 2 DHCP -DHCP : trb_net16_gbe_response_constructor_DHCP -generic map( STAT_ADDRESS_BASE => 0 -) -port map ( - CLK => CLK, - RESET => RESET_FOR_DHCP, --RESET, - --- INTERFACE - PS_DATA_IN => PS_DATA_IN, - PS_WR_EN_IN => PS_WR_EN_IN, - PS_ACTIVATE_IN => PS_PROTO_SELECT_IN(1), - PS_RESPONSE_READY_OUT => resp_ready(1), - PS_BUSY_OUT => busy(1), - PS_SELECTED_IN => selected(1), - - PS_SRC_MAC_ADDRESS_IN => PS_SRC_MAC_ADDRESS_IN, - PS_DEST_MAC_ADDRESS_IN => PS_DEST_MAC_ADDRESS_IN, - PS_SRC_IP_ADDRESS_IN => PS_SRC_IP_ADDRESS_IN, - PS_DEST_IP_ADDRESS_IN => PS_DEST_IP_ADDRESS_IN, - PS_SRC_UDP_PORT_IN => PS_SRC_UDP_PORT_IN, - PS_DEST_UDP_PORT_IN => PS_DEST_UDP_PORT_IN, - - TC_RD_EN_IN => TC_RD_EN_IN, - TC_DATA_OUT => tc_data(2 * 9 - 1 downto 1 * 9), - TC_FRAME_SIZE_OUT => tc_size(2 * 16 - 1 downto 1 * 16), - TC_FRAME_TYPE_OUT => tc_type(2 * 16 - 1 downto 1 * 16), - TC_IP_PROTOCOL_OUT => tc_ip_proto(2 * 8 - 1 downto 1 * 8), - TC_IDENT_OUT => tc_ident(2 * 16 - 1 downto 1 * 16), - - TC_DEST_MAC_OUT => tc_mac(2 * 48 - 1 downto 1 * 48), - TC_DEST_IP_OUT => tc_ip(2 * 32 - 1 downto 1 * 32), - TC_DEST_UDP_OUT => tc_udp(2 * 16 - 1 downto 1 * 16), - TC_SRC_MAC_OUT => tc_src_mac(2 * 48 - 1 downto 1 * 48), - TC_SRC_IP_OUT => tc_src_ip(2 * 32 - 1 downto 1 * 32), - TC_SRC_UDP_OUT => tc_src_udp(2 * 16 - 1 downto 1 * 16), - - STAT_DATA_OUT => stat_data(2 * 32 - 1 downto 1 * 32), - STAT_ADDR_OUT => stat_addr(2 * 8 - 1 downto 1 * 8), - STAT_DATA_RDY_OUT => stat_rdy(1), - STAT_DATA_ACK_IN => stat_ack(1), - RECEIVED_FRAMES_OUT => open, --RECEIVED_FRAMES_OUT(2 * 16 - 1 downto 1 * 16), - SENT_FRAMES_OUT => open, --SENT_FRAMES_OUT(2 * 16 - 1 downto 1 * 16), --- END OF INTERFACE - - DHCP_START_IN => DHCP_START_IN, - DHCP_DONE_OUT => DHCP_DONE_OUT, - - DEBUG_OUT => MONITOR_SELECT_GEN_DBG_OUT(2 * 64 - 1 downto 1 * 64) --PROTOS_DEBUG_OUT(1 * 32 - 1 downto 0 * 32) - ); - - --protocol No. 3 Ping -Ping : trb_net16_gbe_response_constructor_Ping -generic map( STAT_ADDRESS_BASE => 3 -) -port map ( - CLK => CLK, - RESET => RESET, - ----- INTERFACE - PS_DATA_IN => PS_DATA_IN, - PS_WR_EN_IN => PS_WR_EN_IN, - PS_ACTIVATE_IN => PS_PROTO_SELECT_IN(4), - PS_RESPONSE_READY_OUT => resp_ready(4), - PS_BUSY_OUT => busy(4), - PS_SELECTED_IN => selected(4), - - PS_SRC_MAC_ADDRESS_IN => PS_SRC_MAC_ADDRESS_IN, - PS_DEST_MAC_ADDRESS_IN => PS_DEST_MAC_ADDRESS_IN, - PS_SRC_IP_ADDRESS_IN => PS_SRC_IP_ADDRESS_IN, - PS_DEST_IP_ADDRESS_IN => PS_DEST_IP_ADDRESS_IN, - PS_SRC_UDP_PORT_IN => PS_SRC_UDP_PORT_IN, - PS_DEST_UDP_PORT_IN => PS_DEST_UDP_PORT_IN, - - TC_RD_EN_IN => TC_RD_EN_IN, - TC_DATA_OUT => tc_data(5 * 9 - 1 downto 4 * 9), - TC_FRAME_SIZE_OUT => tc_size(5 * 16 - 1 downto 4 * 16), - TC_FRAME_TYPE_OUT => tc_type(5 * 16 - 1 downto 4 * 16), - TC_IP_PROTOCOL_OUT => tc_ip_proto(5 * 8 - 1 downto 4 * 8), - TC_IDENT_OUT => tc_ident(5 * 16 - 1 downto 4 * 16), - - TC_DEST_MAC_OUT => tc_mac(5 * 48 - 1 downto 4 * 48), - TC_DEST_IP_OUT => tc_ip(5 * 32 - 1 downto 4 * 32), - TC_DEST_UDP_OUT => tc_udp(5 * 16 - 1 downto 4 * 16), - TC_SRC_MAC_OUT => tc_src_mac(5 * 48 - 1 downto 4 * 48), - TC_SRC_IP_OUT => tc_src_ip(5 * 32 - 1 downto 4 * 32), - TC_SRC_UDP_OUT => tc_src_udp(5 * 16 - 1 downto 4 * 16), - - STAT_DATA_OUT => open, - STAT_ADDR_OUT => open, - STAT_DATA_RDY_OUT => open, - STAT_DATA_ACK_IN => '0', - RECEIVED_FRAMES_OUT => open, - SENT_FRAMES_OUT => open, - DEBUG_OUT => MONITOR_SELECT_GEN_DBG_OUT(5 * 64 - 1 downto 4 * 64) --- END OF INTERFACE -); - -SCTRL : trb_net16_gbe_response_constructor_SCTRL -generic map( STAT_ADDRESS_BASE => 8 -) -port map ( - CLK => CLK, - RESET => RESET, - --- INTERFACE - PS_DATA_IN => PS_DATA_IN, - PS_WR_EN_IN => PS_WR_EN_IN, - PS_ACTIVATE_IN => PS_PROTO_SELECT_IN(2), - PS_RESPONSE_READY_OUT => resp_ready(2), - PS_BUSY_OUT => busy(2), - PS_SELECTED_IN => selected(2), - - PS_SRC_MAC_ADDRESS_IN => PS_SRC_MAC_ADDRESS_IN, - PS_DEST_MAC_ADDRESS_IN => PS_DEST_MAC_ADDRESS_IN, - PS_SRC_IP_ADDRESS_IN => PS_SRC_IP_ADDRESS_IN, - PS_DEST_IP_ADDRESS_IN => PS_DEST_IP_ADDRESS_IN, - PS_SRC_UDP_PORT_IN => PS_SRC_UDP_PORT_IN, - PS_DEST_UDP_PORT_IN => PS_DEST_UDP_PORT_IN, - - TC_RD_EN_IN => TC_RD_EN_IN, - TC_DATA_OUT => tc_data(3 * 9 - 1 downto 2 * 9), - TC_FRAME_SIZE_OUT => tc_size(3 * 16 - 1 downto 2 * 16), - TC_FRAME_TYPE_OUT => tc_type(3 * 16 - 1 downto 2 * 16), - TC_IP_PROTOCOL_OUT => tc_ip_proto(3 * 8 - 1 downto 2 * 8), - TC_IDENT_OUT => tc_ident(3 * 16 - 1 downto 2 * 16), - - TC_DEST_MAC_OUT => tc_mac(3 * 48 - 1 downto 2 * 48), - TC_DEST_IP_OUT => tc_ip(3 * 32 - 1 downto 2 * 32), - TC_DEST_UDP_OUT => tc_udp(3 * 16 - 1 downto 2 * 16), - TC_SRC_MAC_OUT => tc_src_mac(3 * 48 - 1 downto 2 * 48), - TC_SRC_IP_OUT => tc_src_ip(3 * 32 - 1 downto 2 * 32), - TC_SRC_UDP_OUT => tc_src_udp(3 * 16 - 1 downto 2 * 16), - - STAT_DATA_OUT => stat_data(3 * 32 - 1 downto 2 * 32), - STAT_ADDR_OUT => stat_addr(3 * 8 - 1 downto 2 * 8), - STAT_DATA_RDY_OUT => stat_rdy(2), - STAT_DATA_ACK_IN => stat_ack(2), - - DEBUG_OUT => MONITOR_SELECT_GEN_DBG_OUT(3 * 64 - 1 downto 2 * 64), - -- END OF INTERFACE - - GSC_CLK_IN => GSC_CLK_IN, - GSC_INIT_DATAREADY_OUT => GSC_INIT_DATAREADY_OUT, - GSC_INIT_DATA_OUT => GSC_INIT_DATA_OUT, - GSC_INIT_PACKET_NUM_OUT => GSC_INIT_PACKET_NUM_OUT, - GSC_INIT_READ_IN => GSC_INIT_READ_IN, - GSC_REPLY_DATAREADY_IN => GSC_REPLY_DATAREADY_IN, - GSC_REPLY_DATA_IN => GSC_REPLY_DATA_IN, - GSC_REPLY_PACKET_NUM_IN => GSC_REPLY_PACKET_NUM_IN, - GSC_REPLY_READ_OUT => GSC_REPLY_READ_OUT, - GSC_BUSY_IN => GSC_BUSY_IN, - CFG_ADDITIONAL_HDR_IN => CFG_ADDITIONAL_HDR_IN, - MAKE_RESET_OUT => MAKE_RESET_OUT, - - MONITOR_SELECT_REC_OUT => MONITOR_SELECT_REC_OUT(3 * 32 - 1 downto 2 * 32), - MONITOR_SELECT_REC_BYTES_OUT => MONITOR_SELECT_REC_BYTES_OUT(3 * 32 - 1 downto 2 * 32), - MONITOR_SELECT_SENT_BYTES_OUT => MONITOR_SELECT_SENT_BYTES_OUT(3 * 32 - 1 downto 2 * 32), - MONITOR_SELECT_SENT_OUT => MONITOR_SELECT_SENT_OUT(3 * 32 - 1 downto 2 * 32), - - DATA_HIST_OUT => SCTRL_HIST_OUT -); - -TrbNetData : trb_net16_gbe_response_constructor_TrbNetData -generic map( - RX_PATH_ENABLE => RX_PATH_ENABLE, - DO_SIMULATION => DO_SIMULATION - ) -port map ( - CLK => CLK, - RESET => RESET, - --- INTERFACE - PS_DATA_IN => PS_DATA_IN, - PS_WR_EN_IN => PS_WR_EN_IN, - PS_ACTIVATE_IN => PS_PROTO_SELECT_IN(3), - PS_RESPONSE_READY_OUT => resp_ready(3), - PS_BUSY_OUT => busy(3), - PS_SELECTED_IN => selected(3), - - PS_SRC_MAC_ADDRESS_IN => PS_SRC_MAC_ADDRESS_IN, - PS_DEST_MAC_ADDRESS_IN => PS_DEST_MAC_ADDRESS_IN, - PS_SRC_IP_ADDRESS_IN => PS_SRC_IP_ADDRESS_IN, - PS_DEST_IP_ADDRESS_IN => PS_DEST_IP_ADDRESS_IN, - PS_SRC_UDP_PORT_IN => PS_SRC_UDP_PORT_IN, - PS_DEST_UDP_PORT_IN => PS_DEST_UDP_PORT_IN, - - TC_RD_EN_IN => TC_RD_EN_IN, - TC_DATA_OUT => tc_data(4 * 9 - 1 downto 3 * 9), - TC_FRAME_SIZE_OUT => tc_size(4 * 16 - 1 downto 3 * 16), - TC_FRAME_TYPE_OUT => tc_type(4 * 16 - 1 downto 3 * 16), - TC_IP_PROTOCOL_OUT => tc_ip_proto(4 * 8 - 1 downto 3 * 8), - TC_IDENT_OUT => tc_ident(4 * 16 - 1 downto 3 * 16), - - TC_DEST_MAC_OUT => tc_mac(4 * 48 - 1 downto 3 * 48), - TC_DEST_IP_OUT => tc_ip(4 * 32 - 1 downto 3 * 32), - TC_DEST_UDP_OUT => tc_udp(4 * 16 - 1 downto 3 * 16), - TC_SRC_MAC_OUT => tc_src_mac(4 * 48 - 1 downto 3 * 48), - TC_SRC_IP_OUT => tc_src_ip(4 * 32 - 1 downto 3 * 32), - TC_SRC_UDP_OUT => tc_src_udp(4 * 16 - 1 downto 3 * 16), - - STAT_DATA_OUT => stat_data(4 * 32 - 1 downto 3 * 32), - STAT_ADDR_OUT => stat_addr(4 * 8 - 1 downto 3 * 8), - STAT_DATA_RDY_OUT => stat_rdy(3), - STAT_DATA_ACK_IN => stat_ack(3), - - DEBUG_OUT => MONITOR_SELECT_GEN_DBG_OUT(4 * 64 - 1 downto 3 * 64), --- END OF INTERFACE - - -- CTS interface - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_READ_IN => CTS_READ_IN, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - -- Data payload interface - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - FEE_BUSY_IN => FEE_BUSY_IN, - -- ip configurator - SLV_ADDR_IN => SLV_ADDR_IN, - SLV_READ_IN => SLV_READ_IN, - SLV_WRITE_IN => SLV_WRITE_IN, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, - SLV_DATA_IN => SLV_DATA_IN, - SLV_DATA_OUT => SLV_DATA_OUT, - - CFG_GBE_ENABLE_IN => CFG_GBE_ENABLE_IN, - CFG_IPU_ENABLE_IN => CFG_IPU_ENABLE_IN, - CFG_MULT_ENABLE_IN => CFG_MULT_ENABLE_IN, - CFG_SUBEVENT_ID_IN => CFG_SUBEVENT_ID_IN, - CFG_SUBEVENT_DEC_IN => CFG_SUBEVENT_DEC_IN, - CFG_QUEUE_DEC_IN => CFG_QUEUE_DEC_IN, - CFG_READOUT_CTR_IN => CFG_READOUT_CTR_IN, - CFG_READOUT_CTR_VALID_IN => CFG_READOUT_CTR_VALID_IN, - CFG_INSERT_TTYPE_IN => CFG_INSERT_TTYPE_IN, - CFG_MAX_SUB_IN => CFG_MAX_SUB_IN, - CFG_MAX_QUEUE_IN => CFG_MAX_QUEUE_IN, - CFG_MAX_SUBS_IN_QUEUE_IN => CFG_MAX_SUBS_IN_QUEUE_IN, - CFG_MAX_SINGLE_SUB_IN => CFG_MAX_SINGLE_SUB_IN, - - MONITOR_SELECT_REC_OUT => MONITOR_SELECT_REC_OUT(4 * 32 - 1 downto 3 * 32), - MONITOR_SELECT_REC_BYTES_OUT => MONITOR_SELECT_REC_BYTES_OUT(4 * 32 - 1 downto 3 * 32), - MONITOR_SELECT_SENT_BYTES_OUT => MONITOR_SELECT_SENT_BYTES_OUT(4 * 32 - 1 downto 3 * 32), - MONITOR_SELECT_SENT_OUT => MONITOR_SELECT_SENT_OUT(4 * 32 - 1 downto 3 * 32), - MONITOR_SELECT_DROP_OUT_OUT => MONITOR_SELECT_DROP_OUT_OUT(4 * 32 - 1 downto 3 * 32), - MONITOR_SELECT_DROP_IN_OUT => open, - - DATA_HIST_OUT => DATA_HIST_OUT -); - ---stat_gen : if g_SIMULATE = 0 generate ---Stat : trb_net16_gbe_response_constructor_Stat ---generic map( STAT_ADDRESS_BASE => 10 ---) ---port map ( --- CLK => CLK, --- RESET => RESET, --- ----- INTERFACE --- PS_DATA_IN => PS_DATA_IN, --- PS_WR_EN_IN => PS_WR_EN_IN, --- PS_ACTIVATE_IN => PS_PROTO_SELECT_IN(4), --- PS_RESPONSE_READY_OUT => resp_ready(4), --- PS_BUSY_OUT => busy(4), --- PS_SELECTED_IN => selected(4), --- --- PS_SRC_MAC_ADDRESS_IN => PS_SRC_MAC_ADDRESS_IN, --- PS_DEST_MAC_ADDRESS_IN => PS_DEST_MAC_ADDRESS_IN, --- PS_SRC_IP_ADDRESS_IN => PS_SRC_IP_ADDRESS_IN, --- PS_DEST_IP_ADDRESS_IN => PS_DEST_IP_ADDRESS_IN, --- PS_SRC_UDP_PORT_IN => PS_SRC_UDP_PORT_IN, --- PS_DEST_UDP_PORT_IN => PS_DEST_UDP_PORT_IN, --- --- TC_WR_EN_OUT => TC_WR_EN_OUT, --- TC_DATA_OUT => tc_data(5 * 9 - 1 downto 4 * 9), --- TC_FRAME_SIZE_OUT => tc_size(5 * 16 - 1 downto 4 * 16), --- TC_FRAME_TYPE_OUT => tc_type(5 * 16 - 1 downto 4 * 16), --- TC_IP_PROTOCOL_OUT => tc_ip_proto(5 * 8 - 1 downto 4 * 8), --- --- TC_DEST_MAC_OUT => tc_mac(5 * 48 - 1 downto 4 * 48), --- TC_DEST_IP_OUT => tc_ip(5 * 32 - 1 downto 4 * 32), --- TC_DEST_UDP_OUT => tc_udp(5 * 16 - 1 downto 4 * 16), --- TC_SRC_MAC_OUT => tc_src_mac(5 * 48 - 1 downto 4 * 48), --- TC_SRC_IP_OUT => tc_src_ip(5 * 32 - 1 downto 4 * 32), --- TC_SRC_UDP_OUT => tc_src_udp(5 * 16 - 1 downto 4 * 16), --- --- TC_IP_SIZE_OUT => tc_ip_size(5 * 16 - 1 downto 4 * 16), --- TC_UDP_SIZE_OUT => tc_udp_size(5 * 16 - 1 downto 4 * 16), --- TC_FLAGS_OFFSET_OUT => tc_flags_size(5 * 16 - 1 downto 4 * 16), --- --- TC_BUSY_IN => TC_BUSY_IN, --- --- STAT_DATA_OUT => stat_data(5 * 32 - 1 downto 4 * 32), --- STAT_ADDR_OUT => stat_addr(5 * 8 - 1 downto 4 * 8), --- STAT_DATA_RDY_OUT => stat_rdy(4), --- STAT_DATA_ACK_IN => stat_ack(4), --- --- RECEIVED_FRAMES_OUT => RECEIVED_FRAMES_OUT(5 * 16 - 1 downto 4 * 16), --- SENT_FRAMES_OUT => SENT_FRAMES_OUT(5 * 16 - 1 downto 4 * 16), --- DEBUG_OUT => PROTOS_DEBUG_OUT(5 * 32 - 1 downto 4 * 32), --- --- STAT_DATA_IN => stat_data, --- STAT_ADDR_IN => stat_addr, --- STAT_DATA_RDY_IN => stat_rdy, --- STAT_DATA_ACK_OUT => stat_ack ---); ---end generate; - ---*************** --- DO NOT TOUCH, response selection logic - ---stat_data((c_MAX_PROTOCOLS + 1) * 32 - 1 downto c_MAX_PROTOCOLS * 32) <= STAT_DATA_IN; ---stat_addr((c_MAX_PROTOCOLS + 1) * 8 - 1 downto c_MAX_PROTOCOLS * 8) <= STAT_ADDR_IN; ---stat_rdy(c_MAX_PROTOCOLS) <= STAT_DATA_RDY_IN; ---STAT_DATA_ACK_OUT <= stat_ack(c_MAX_PROTOCOLS); - ---mult <= or_all(resp_ready(2 downto 0)); --or_all(resp_ready(2 downto 0)) and or_all(resp_ready(4 downto 3)); - -PS_BUSY_OUT <= busy; - -SELECT_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - select_current_state <= IDLE; - elsif rising_edge(CLK) then --- if (RESET = '1') then --- select_current_state <= IDLE; --- else - select_current_state <= select_next_state; --- end if; - end if; -end process SELECT_MACHINE_PROC; - -SELECT_MACHINE : process(select_current_state, MC_BUSY_IN, resp_ready, index, zeros, busy) -begin - - case (select_current_state) is - - when IDLE => - if (MC_BUSY_IN = '0') then - select_next_state <= LOOP_OVER; - else - select_next_state <= IDLE; - end if; - - when LOOP_OVER => - if (resp_ready /= zeros) then - if (resp_ready(index) = '1') then - select_next_state <= SELECT_ONE; - elsif (index = c_MAX_PROTOCOLS) then - select_next_state <= CLEANUP; - else - select_next_state <= LOOP_OVER; - end if; - else - select_next_state <= CLEANUP; - end if; - - when SELECT_ONE => - if (MC_BUSY_IN = '1') then - select_next_state <= PROCESS_REQUEST; - else - select_next_state <= SELECT_ONE; - end if; - - when PROCESS_REQUEST => - if (busy(index) = '0') then --if (MC_BUSY_IN = '0') then - select_next_state <= CLEANUP; - else - select_next_state <= PROCESS_REQUEST; - end if; - - when CLEANUP => - select_next_state <= IDLE; - - end case; - -end process SELECT_MACHINE; - -INDEX_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (select_current_state = IDLE) then - index <= 0; - elsif (select_current_state = LOOP_OVER and resp_ready(index) = '0') then - index <= index + 1; - else - index <= index; - end if; - end if; -end process INDEX_PROC; - -SELECTOR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (select_current_state = SELECT_ONE or select_current_state = PROCESS_REQUEST) then - TC_DATA_OUT <= tc_data((index + 1) * 9 - 1 downto index * 9); - TC_FRAME_SIZE_OUT <= tc_size((index + 1) * 16 - 1 downto index * 16); - TC_FRAME_TYPE_OUT <= tc_type((index + 1) * 16 - 1 downto index * 16); - TC_DEST_MAC_OUT <= tc_mac((index + 1) * 48 - 1 downto index * 48); - TC_DEST_IP_OUT <= tc_ip((index + 1) * 32 - 1 downto index * 32); - TC_DEST_UDP_OUT <= tc_udp((index + 1) * 16 - 1 downto index * 16); - TC_SRC_MAC_OUT <= tc_src_mac((index + 1) * 48 - 1 downto index * 48); - TC_SRC_IP_OUT <= tc_src_ip((index + 1) * 32 - 1 downto index * 32); - TC_SRC_UDP_OUT <= tc_src_udp((index + 1) * 16 - 1 downto index * 16); - TC_IP_PROTOCOL_OUT <= tc_ip_proto((index + 1) * 8 - 1 downto index * 8); - TC_IDENT_OUT <= tc_ident((index + 1) * 16 - 1 downto index * 16); - if (select_current_state = SELECT_ONE) then - PS_RESPONSE_READY_OUT <= '1'; - selected(index) <= '0'; - else - PS_RESPONSE_READY_OUT <= '0'; - selected(index) <= '1'; - end if; - else - TC_DATA_OUT <= (others => '0'); - TC_FRAME_SIZE_OUT <= (others => '0'); - TC_FRAME_TYPE_OUT <= (others => '0'); - TC_DEST_MAC_OUT <= (others => '0'); - TC_DEST_IP_OUT <= (others => '0'); - TC_DEST_UDP_OUT <= (others => '0'); - TC_SRC_MAC_OUT <= (others => '0'); - TC_SRC_IP_OUT <= (others => '0'); - TC_SRC_UDP_OUT <= (others => '0'); - TC_IP_PROTOCOL_OUT <= (others => '0'); - TC_IDENT_OUT <= (others => '0'); - PS_RESPONSE_READY_OUT <= '0'; - selected <= (others => '0'); - end if; - end if; -end process SELECTOR_PROC; - -end trb_net16_gbe_protocol_selector; - - diff --git a/gbe2_ecp3/trb_net16_gbe_receive_control.vhd b/gbe2_ecp3/trb_net16_gbe_receive_control.vhd deleted file mode 100644 index 4a7bc6f..0000000 --- a/gbe2_ecp3/trb_net16_gbe_receive_control.vhd +++ /dev/null @@ -1,256 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - ---******** --- controller has to control the rest of the logic (TX part, TS_MAC, HUB) accordingly to --- the message received from receiver, frame checking is already done --- - - -entity trb_net16_gbe_receive_control is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- signals to/from frame_receiver - RC_DATA_IN : in std_logic_vector(8 downto 0); - FR_RD_EN_OUT : out std_logic; - FR_FRAME_VALID_IN : in std_logic; - FR_GET_FRAME_OUT : out std_logic; - FR_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - FR_FRAME_PROTO_IN : in std_logic_vector(15 downto 0); - FR_IP_PROTOCOL_IN : in std_logic_vector(7 downto 0); - - FR_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - FR_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - FR_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - FR_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - FR_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - FR_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - --- signals to/from main controller - RC_RD_EN_IN : in std_logic; - RC_Q_OUT : out std_logic_vector(8 downto 0); - RC_FRAME_WAITING_OUT : out std_logic; - RC_LOADING_DONE_IN : in std_logic; - RC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - RC_FRAME_PROTO_OUT : out std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - - RC_SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - RC_DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - RC_SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - RC_DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - RC_SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - RC_DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - --- statistics - FRAMES_RECEIVED_OUT : out std_logic_vector(31 downto 0); - BYTES_RECEIVED_OUT : out std_logic_vector(31 downto 0); - - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_receive_control; - - -architecture trb_net16_gbe_receive_control of trb_net16_gbe_receive_control is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_receive_control : architecture is "GBE_MAIN_group"; -attribute syn_encoding : string; - -type load_states is (IDLE, PREPARE, WAIT_ONE, READY); -signal load_current_state, load_next_state : load_states; -attribute syn_encoding of load_current_state : signal is "onehot"; - -signal frames_received_ctr : std_logic_vector(31 downto 0); -signal frames_readout_ctr : std_logic_vector(31 downto 0); -signal bytes_rec_ctr : std_logic_vector(31 downto 0); - -signal state : std_logic_vector(3 downto 0); -signal proto_code : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); -signal reset_prioritizer : std_logic; -signal frame_waiting : std_logic; - --- debug only -signal saved_proto : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - -begin - -FR_RD_EN_OUT <= RC_RD_EN_IN; -RC_Q_OUT <= RC_DATA_IN; -RC_FRAME_SIZE_OUT <= FR_FRAME_SIZE_IN; -RC_SRC_MAC_ADDRESS_OUT <= FR_SRC_MAC_ADDRESS_IN; -RC_DEST_MAC_ADDRESS_OUT <= FR_DEST_MAC_ADDRESS_IN; -RC_SRC_IP_ADDRESS_OUT <= FR_SRC_IP_ADDRESS_IN; -RC_DEST_IP_ADDRESS_OUT <= FR_DEST_IP_ADDRESS_IN; -RC_SRC_UDP_PORT_OUT <= FR_SRC_UDP_PORT_IN; -RC_DEST_UDP_PORT_OUT <= FR_DEST_UDP_PORT_IN; - -protocol_prioritizer : trb_net16_gbe_protocol_prioritizer -port map( - CLK => CLK, - RESET => reset_prioritizer, - - FRAME_TYPE_IN => FR_FRAME_PROTO_IN, - PROTOCOL_CODE_IN => FR_IP_PROTOCOL_IN, - UDP_PROTOCOL_IN => FR_DEST_UDP_PORT_IN, - - CODE_OUT => proto_code -); - -reset_prioritizer <= '1' when load_current_state = IDLE else '0'; - ---RC_FRAME_PROTO_OUT <= proto_code when (and_all(proto_code) = '0') else (others => '0'); -RC_FRAME_PROTO_OUT <= proto_code; -- no more ones as the incorrect value, last slot for Trash - ---DEBUG_OUT(3 downto 0) <= state; ---DEBUG_OUT(11 downto 4) <= frames_received_ctr(7 downto 0); ---DEBUG_OUT(19 downto 12) <= frames_readout_ctr(7 downto 0); ---DEBUG_OUT(31 downto 20) <= bytes_rec_ctr(11 downto 0); - -LOAD_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - load_current_state <= IDLE; - elsif rising_edge(CLK) then - load_current_state <= load_next_state; - end if; -end process LOAD_MACHINE_PROC; - -LOAD_MACHINE : process(load_current_state, frames_readout_ctr, frames_received_ctr, RC_LOADING_DONE_IN) -begin - case load_current_state is - - when IDLE => - state <= x"1"; - if (frames_readout_ctr /= frames_received_ctr) then -- frame is still waiting in frame_receiver - load_next_state <= PREPARE; - else - load_next_state <= IDLE; - end if; - - when PREPARE => -- prepare frame size - state <= x"2"; - load_next_state <= WAIT_ONE; --READY; - - when WAIT_ONE => - load_next_state <= READY; - - when READY => -- wait for reading out the whole frame - state <= x"3"; - if (RC_LOADING_DONE_IN = '1') then - load_next_state <= IDLE; - else - load_next_state <= READY; - end if; - - end case; -end process LOAD_MACHINE; - -process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = PREPARE) then - FR_GET_FRAME_OUT <= '1'; - else - FR_GET_FRAME_OUT <= '0'; - end if; - - if (load_current_state = READY and RC_LOADING_DONE_IN = '0') then - RC_FRAME_WAITING_OUT <= '1'; - else - RC_FRAME_WAITING_OUT <= '0'; - end if; - - --RC_FRAME_WAITING_OUT <= frame_waiting; - end if; -end process; - ---FR_GET_FRAME_OUT <= '1' when (load_current_state = PREPARE) --- else '0'; --- ---RC_FRAME_WAITING_OUT <= '1' when (load_current_state = READY) --- else '0'; - ---SYNC_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- FRAMES_RECEIVED_OUT <= frames_received_ctr; --- --BYTES_RECEIVED_OUT <= bytes_rec_ctr; --- BYTES_RECEIVED_OUT(15 downto 0) <= bytes_rec_ctr(15 downto 0); --- BYTES_RECEIVED_OUT(16 + c_MAX_PROTOCOLS - 1 downto 16) <= saved_proto; --- BYTES_RECEIVED_OUT(31 downto 16 + c_MAX_PROTOCOLS) <= (others => '0'); --- end if; ---end process SYNC_PROC; - -FRAMES_REC_CTR_PROC : process(RESET, CLK) -begin - if (RESET = '1') then - frames_received_ctr <= (others => '0'); - elsif rising_edge(CLK) then - if (FR_FRAME_VALID_IN = '1') then - frames_received_ctr <= frames_received_ctr + x"1"; - else - frames_received_ctr <= frames_received_ctr; - end if; - end if; -end process FRAMES_REC_CTR_PROC; - -FRAMES_READOUT_CTR_PROC : process(RESET, CLK) -begin - if (RESET = '1') then - frames_readout_ctr <= (others => '0'); - elsif rising_edge(CLK) then - if (RC_LOADING_DONE_IN = '1') then - frames_readout_ctr <= frames_readout_ctr + x"1"; - else - frames_readout_ctr <= frames_readout_ctr; - end if; - end if; -end process FRAMES_READOUT_CTR_PROC; - --- debug only -BYTES_REC_CTR_PROC : process(RESET, CLK) -begin - if (RESET = '1') then - bytes_rec_ctr <= (others => '0'); - elsif rising_edge(CLK) then - if (FR_FRAME_VALID_IN = '1') then - bytes_rec_ctr <= bytes_rec_ctr + FR_FRAME_SIZE_IN; - else - bytes_rec_ctr <= bytes_rec_ctr; - end if; - end if; -end process BYTES_REC_CTR_PROC; - -SAVED_PROTO_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (load_current_state = READY) then - if (and_all(proto_code) = '0') then - saved_proto <= proto_code; - else - saved_proto <= (others => '0'); - end if; - else - saved_proto <= saved_proto; - end if; - end if; -end process SAVED_PROTO_PROC; --- end of debug - - -end trb_net16_gbe_receive_control; - - diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_ARP.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_ARP.vhd deleted file mode 100644 index 8154f9f..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_ARP.vhd +++ /dev/null @@ -1,418 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - ---******** --- creates a reply for an incoming ARP request - -entity trb_net16_gbe_response_constructor_ARP is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_response_constructor_ARP; - - -architecture trb_net16_gbe_response_constructor_ARP of trb_net16_gbe_response_constructor_ARP is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_response_constructor_ARP : architecture is "GBE_MAIN_group"; - -attribute syn_encoding : string; - -type dissect_states is (IDLE, READ_FRAME, DECIDE, LOAD_FRAME, WAIT_FOR_LOAD, CLEANUP); -signal dissect_current_state, dissect_next_state : dissect_states; -attribute syn_encoding of dissect_current_state: signal is "onehot"; - -type stats_states is (IDLE, LOAD_SENT, LOAD_RECEIVED, CLEANUP); -signal stats_current_state, stats_next_state : stats_states; -attribute syn_encoding of stats_current_state : signal is "onehot"; - -signal saved_opcode : std_logic_vector(15 downto 0); -signal saved_sender_ip : std_logic_vector(31 downto 0); -signal saved_target_ip : std_logic_vector(31 downto 0); -signal data_ctr : integer range 0 to 30; -signal values : std_logic_vector(223 downto 0); -signal tc_data : std_logic_vector(8 downto 0); - -signal state : std_logic_vector(3 downto 0); -signal rec_frames : std_logic_vector(15 downto 0); -signal sent_frames : std_logic_vector(15 downto 0); -signal stat_data_temp : std_logic_vector(31 downto 0); - -signal tc_wr : std_logic; - -attribute syn_preserve : boolean; -attribute syn_keep : boolean; -attribute syn_keep of state : signal is true; -attribute syn_preserve of state : signal is true; - -begin - -values(15 downto 0) <= x"0100"; -- hardware type -values(31 downto 16) <= x"0008"; -- protocol type -values(39 downto 32) <= x"06"; -- hardware size -values(47 downto 40) <= x"04"; -- protocol size -values(63 downto 48) <= x"0200"; --opcode (reply) -values(111 downto 64) <= g_MY_MAC; -- sender (my) mac -values(143 downto 112) <= g_MY_IP; -values(191 downto 144) <= PS_SRC_MAC_ADDRESS_IN; -- target mac -values(223 downto 192) <= saved_sender_ip; -- target ip - -DISSECT_MACHINE_PROC : process(CLK) -begin - if RESET = '1' then - dissect_current_state <= IDLE; - elsif rising_edge(CLK) then --- if (RESET = '1') then --- dissect_current_state <= IDLE; --- else - dissect_current_state <= dissect_next_state; --- end if; - end if; -end process DISSECT_MACHINE_PROC; - -DISSECT_MACHINE : process(dissect_current_state, g_MY_IP, PS_WR_EN_IN, PS_ACTIVATE_IN, PS_DATA_IN, data_ctr, PS_SELECTED_IN, saved_target_ip) -begin - case dissect_current_state is - - when IDLE => - state <= x"1"; - if (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - dissect_next_state <= READ_FRAME; - else - dissect_next_state <= IDLE; - end if; - - when READ_FRAME => - state <= x"2"; - if (PS_DATA_IN(8) = '1') then - dissect_next_state <= DECIDE; - else - dissect_next_state <= READ_FRAME; - end if; - - when DECIDE => - state <= x"3"; - if (saved_target_ip = g_MY_IP or g_SIMULATE = 1) then - dissect_next_state <= WAIT_FOR_LOAD; - -- in case the request is not for me, drop it - else - dissect_next_state <= IDLE; - end if; - - when WAIT_FOR_LOAD => - state <= x"4"; - if (PS_SELECTED_IN = '1') then - dissect_next_state <= LOAD_FRAME; - else - dissect_next_state <= WAIT_FOR_LOAD; - end if; - - when LOAD_FRAME => - state <= x"5"; - if (data_ctr = 28) then - dissect_next_state <= CLEANUP; - else - dissect_next_state <= LOAD_FRAME; - end if; - - when CLEANUP => - state <= x"e"; - dissect_next_state <= IDLE; - - end case; -end process DISSECT_MACHINE; - -DATA_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (dissect_current_state = IDLE and PS_WR_EN_IN = '0') then - data_ctr <= 1; - elsif (dissect_current_state = WAIT_FOR_LOAD) then - data_ctr <= 1; - elsif (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - data_ctr <= data_ctr + 1; - elsif (dissect_current_state = READ_FRAME and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then -- in case of saving data from incoming frame - data_ctr <= data_ctr + 1; - elsif (dissect_current_state = LOAD_FRAME and PS_SELECTED_IN = '1' and TC_RD_EN_IN = '1') then -- in case of constructing response - data_ctr <= data_ctr + 1; - end if; - end if; -end process DATA_CTR_PROC; - ---TC_WR_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (dissect_current_state = LOAD_FRAME and PS_SELECTED_IN = '1') then --- tc_wr <= '1'; --- else --- tc_wr <= '0'; --- end if; --- end if; ---end process TC_WR_PROC; - -SAVE_VALUES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saved_opcode <= (others => '0'); - saved_sender_ip <= (others => '0'); - saved_target_ip <= (others => '0'); - elsif (dissect_current_state = READ_FRAME) then - case (data_ctr) is - - when 6 => - saved_opcode(7 downto 0) <= PS_DATA_IN(7 downto 0); - when 7 => - saved_opcode(15 downto 8) <= PS_DATA_IN(7 downto 0); - - - when 13 => - saved_sender_ip(7 downto 0) <= PS_DATA_IN(7 downto 0); - when 14 => - saved_sender_ip(15 downto 8) <= PS_DATA_IN(7 downto 0); - when 15 => - saved_sender_ip(23 downto 16) <= PS_DATA_IN(7 downto 0); - when 16 => - saved_sender_ip(31 downto 24) <= PS_DATA_IN(7 downto 0); - - when 23 => - saved_target_ip(7 downto 0) <= PS_DATA_IN(7 downto 0); - when 24 => - saved_target_ip(15 downto 8) <= PS_DATA_IN(7 downto 0); - when 25 => - saved_target_ip(23 downto 16) <= PS_DATA_IN(7 downto 0); - when 26 => - saved_target_ip(31 downto 24) <= PS_DATA_IN(7 downto 0); - - when others => null; - end case; - end if; - end if; -end process SAVE_VALUES_PROC; - -TC_DATA_PROC : process(dissect_current_state, data_ctr, values) -begin - if rising_edge(CLK) then - tc_data(8) <= '0'; - - if (dissect_current_state = LOAD_FRAME) then - for i in 0 to 7 loop - tc_data(i) <= values((data_ctr - 1) * 8 + i); - end loop; - -- mark the last byte - if (data_ctr = 28) then - tc_data(8) <= '1'; - end if; - else - tc_data(7 downto 0) <= (others => '0'); - end if; - - TC_DATA_OUT <= tc_data; - - end if; -end process TC_DATA_PROC; - ---TC_WR_EN_OUT <= tc_wr; - -PS_RESPONSE_SYNC : process(CLK) -begin - if rising_edge(CLK) then - if (dissect_current_state = WAIT_FOR_LOAD or dissect_current_state = LOAD_FRAME or dissect_current_state = CLEANUP) then - PS_RESPONSE_READY_OUT <= '1'; - else - PS_RESPONSE_READY_OUT <= '0'; - end if; - - if (dissect_current_state = IDLE) then - PS_BUSY_OUT <= '0'; - else - PS_BUSY_OUT <= '1'; - end if; - end if; -end process PS_RESPONSE_SYNC; - - - -TC_FRAME_SIZE_OUT <= x"001c"; -- fixed frame size - -TC_FRAME_TYPE_OUT <= x"0608"; -TC_DEST_MAC_OUT <= PS_SRC_MAC_ADDRESS_IN; -TC_DEST_IP_OUT <= x"00000000"; -- doesnt matter -TC_DEST_UDP_OUT <= x"0000"; -- doesnt matter -TC_SRC_MAC_OUT <= g_MY_MAC; -TC_SRC_IP_OUT <= x"00000000"; -- doesnt matter -TC_SRC_UDP_OUT <= x"0000"; -- doesnt matter -TC_IP_PROTOCOL_OUT <= x"00"; -- doesnt matter -TC_IDENT_OUT <= (others => '0'); -- doesn't matter - - --- **** statistice ---REC_FRAMES_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- rec_frames <= (others => '0'); --- elsif (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then --- rec_frames <= rec_frames + x"1"; --- end if; --- end if; ---end process REC_FRAMES_PROC; --- ---SENT_FRAMES_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- sent_frames <= (others => '0'); --- elsif (dissect_current_state = CLEANUP) then --- sent_frames <= sent_frames + x"1"; --- end if; --- end if; ---end process SENT_FRAMES_PROC; --- ---RECEIVED_FRAMES_OUT <= rec_frames; ---SENT_FRAMES_OUT <= sent_frames; ---STATS_MACHINE_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- stats_current_state <= IDLE; --- else --- stats_current_state <= stats_next_state; --- end if; --- end if; ---end process STATS_MACHINE_PROC; --- ---STATS_MACHINE : process(stats_current_state, PS_WR_EN_IN, PS_ACTIVATE_IN, dissect_current_state) ---begin --- --- case (stats_current_state) is --- --- when IDLE => --- if (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') or (dissect_current_state = CLEANUP) then --- stats_next_state <= LOAD_SENT; --- else --- stats_next_state <= IDLE; --- end if; --- --- when LOAD_SENT => --- if (STAT_DATA_ACK_IN = '1') then --- stats_next_state <= LOAD_RECEIVED; --- else --- stats_next_state <= LOAD_SENT; --- end if; --- --- when LOAD_RECEIVED => --- if (STAT_DATA_ACK_IN = '1') then --- stats_next_state <= CLEANUP; --- else --- stats_next_state <= LOAD_RECEIVED; --- end if; --- --- when CLEANUP => --- stats_next_state <= IDLE; --- --- end case; --- ---end process STATS_MACHINE; --- ---SELECTOR : process(CLK) ---begin --- if rising_edge(CLK) then --- case(stats_current_state) is --- --- when LOAD_SENT => --- stat_data_temp <= x"0601" & sent_frames; --- STAT_ADDR_OUT <= std_logic_vector(to_unsigned(STAT_ADDRESS_BASE, 8)); --- --- when LOAD_RECEIVED => --- stat_data_temp <= x"0602" & rec_frames; --- STAT_ADDR_OUT <= std_logic_vector(to_unsigned(STAT_ADDRESS_BASE + 1, 8)); --- --- when others => --- stat_data_temp <= (others => '0'); --- STAT_ADDR_OUT <= (others => '0'); --- --- end case; --- end if; ---end process SELECTOR; --- ---STAT_DATA_OUT(7 downto 0) <= stat_data_temp(31 downto 24); ---STAT_DATA_OUT(15 downto 8) <= stat_data_temp(23 downto 16); ---STAT_DATA_OUT(23 downto 16) <= stat_data_temp(15 downto 8); ---STAT_DATA_OUT(31 downto 24) <= stat_data_temp(7 downto 0); --- ---STAT_SYNC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (stats_current_state /= IDLE and stats_current_state /= CLEANUP) then --- STAT_DATA_RDY_OUT <= '1'; --- else --- STAT_DATA_RDY_OUT <= '0'; --- end if; --- end if; ---end process STAT_SYNC; -----STAT_DATA_RDY_OUT <= '1' when stats_current_state /= IDLE and stats_current_state /= CLEANUP else '0'; --- ----- **** debug ---DEBUG_OUT(3 downto 0) <= state; ---DEBUG_OUT(4) <= '0'; ---DEBUG_OUT(7 downto 5) <= "000"; ---DEBUG_OUT(8) <= '0'; ---DEBUG_OUT(11 downto 9) <= "000"; ---DEBUG_OUT(31 downto 12) <= (others => '0'); ----- **** - -end trb_net16_gbe_response_constructor_ARP; - - diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_DHCP.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_DHCP.vhd deleted file mode 100644 index d4d301b..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_DHCP.vhd +++ /dev/null @@ -1,818 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - ---******** --- - -entity trb_net16_gbe_response_constructor_DHCP is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - - DHCP_START_IN : in std_logic; - DHCP_DONE_OUT : out std_logic; - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_response_constructor_DHCP; - - -architecture trb_net16_gbe_response_constructor_DHCP of trb_net16_gbe_response_constructor_DHCP is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_response_constructor_DHCP : architecture is "GBE_MAIN_group"; - -attribute syn_encoding : string; - -type main_states is (BOOTING, DELAY, SENDING_DISCOVER, WAITING_FOR_OFFER, SENDING_REQUEST, WAITING_FOR_ACK, ESTABLISHED); -signal main_current_state, main_next_state : main_states; -attribute syn_encoding of main_current_state: signal is "onehot"; - -type receive_states is (IDLE, DISCARD, CLEANUP, SAVE_VALUES); -signal receive_current_state, receive_next_state : receive_states; -attribute syn_encoding of receive_current_state: signal is "onehot"; - -type discover_states is (IDLE, WAIT_FOR_LOAD, BOOTP_HEADERS, CLIENT_IP, YOUR_IP, ZEROS1, MY_MAC, ZEROS2, VENDOR_VALS, VENDOR_VALS2, TERMINATION, CLEANUP); -signal construct_current_state, construct_next_state : discover_states; -attribute syn_encoding of construct_current_state: signal is "onehot"; - - -type stats_states is (IDLE, LOAD_SENT, LOAD_RECEIVED, LOAD_DISCARDED, CLEANUP); -signal stats_current_state, stats_next_state : stats_states; -attribute syn_encoding of stats_current_state : signal is "onehot"; - -signal state : std_logic_vector(3 downto 0); -signal rec_frames : std_logic_vector(15 downto 0); -signal sent_frames : std_logic_vector(15 downto 0); - -signal wait_ctr : std_logic_vector(31 downto 0); -- wait for 5 sec before sending request -signal load_ctr : integer range 0 to 600 := 0; - -signal bootp_hdr : std_logic_vector(95 downto 0); - -signal tc_data : std_logic_vector(8 downto 0); -signal vendor_values : std_logic_vector(175 downto 0); -signal save_ctr : integer range 0 to 600 := 0; -signal saved_transaction_id : std_logic_vector(31 downto 0); -signal saved_proposed_ip : std_logic_vector(31 downto 0); -signal saved_dhcp_type : std_logic_vector(23 downto 0); -signal saved_true_ip : std_logic_vector(31 downto 0); -signal transaction_id : std_logic_vector(31 downto 0); -signal client_ip_reg : std_logic_vector(31 downto 0); -signal your_ip_reg : std_logic_vector(31 downto 0); -signal saved_server_mac : std_logic_vector(47 downto 0); -signal saved_server_ip : std_logic_vector(31 downto 0); -signal state2 : std_logic_vector(3 downto 0); -signal state3 : std_logic_vector(3 downto 0); -signal vendor_values2 : std_logic_vector(47 downto 0); - -signal discarded_ctr : std_logic_vector(15 downto 0); - -signal stat_data_temp : std_logic_vector(31 downto 0); - -attribute syn_preserve : boolean; -attribute syn_keep : boolean; -attribute syn_keep of state, state2 : signal is true; -attribute syn_preserve of state, state2 : signal is true; - -begin - - --- **** --- fixing the constant values for DHCP request headers -TC_DEST_MAC_OUT <= x"ffffffffffff" when (main_current_state = BOOTING or main_current_state = SENDING_DISCOVER) else saved_server_mac; -TC_DEST_IP_OUT <= x"ffffffff" when (main_current_state = BOOTING or main_current_state = SENDING_DISCOVER) else saved_server_ip; -TC_DEST_UDP_OUT <= x"4300"; -TC_SRC_MAC_OUT <= g_MY_MAC; -TC_SRC_IP_OUT <= x"00000000" when (main_current_state = BOOTING or main_current_state = SENDING_DISCOVER) else saved_proposed_ip; -TC_SRC_UDP_OUT <= x"4400"; -TC_IP_PROTOCOL_OUT <= x"11"; -- udp -bootp_hdr(7 downto 0) <= x"01"; -- message type(request) -bootp_hdr(15 downto 8) <= x"01"; -- hardware type (eth) -bootp_hdr(23 downto 16) <= x"06"; -- hardware address length -bootp_hdr(31 downto 24) <= x"00"; -- hops -bootp_hdr(63 downto 32) <= transaction_id; -- transaction id; -bootp_hdr(95 downto 64) <= x"0000_0000"; -- seconds elapsed/flags -transaction_id <= x"cefa" & g_MY_MAC(47 downto 32); -vendor_values(31 downto 0) <= x"63538263"; -- magic cookie (dhcp message) -vendor_values(55 downto 32) <= x"010135" when (main_current_state = BOOTING or main_current_state = SENDING_DISCOVER) else x"030135"; -- dhcp discover, then dhcp request -vendor_values(79 downto 56) <= x"01073d"; -- client identifier -vendor_values(127 downto 80) <= g_MY_MAC; -- client identifier -vendor_values(143 downto 128) <= x"040c"; -- client name -vendor_values(175 downto 144) <= x"33425254"; -- client name (TRB3) -vendor_values2(15 downto 0) <= x"0436"; -- server identifier -vendor_values2(47 downto 16) <= saved_server_ip; - ---***************** --- setting of global variable for IP address -g_MY_IP <= saved_true_ip when main_current_state = ESTABLISHED else (others => '0'); --- ---***************** - -SAVE_SERVER_ADDR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (main_current_state = BOOTING) then - saved_server_mac <= (others => '0'); - saved_server_ip <= (others => '0'); - elsif (main_current_state = WAITING_FOR_OFFER) and (receive_current_state = SAVE_VALUES and save_ctr = 1) then - saved_server_mac <= PS_SRC_MAC_ADDRESS_IN; - saved_server_ip <= PS_SRC_IP_ADDRESS_IN; - else - saved_server_mac <= saved_server_mac; - saved_server_ip <= saved_server_ip; - end if; - end if; -end process SAVE_SERVER_ADDR_PROC; - - --- **** MAIN MACHINE PART - -MAIN_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - main_current_state <= BOOTING; - elsif rising_edge(CLK) then - main_current_state <= main_next_state; - end if; -end process MAIN_MACHINE_PROC; - -MAIN_MACHINE : process(main_current_state, DHCP_START_IN, construct_current_state, wait_ctr, receive_current_state, PS_DATA_IN) -begin - - case (main_current_state) is - - when BOOTING => - state2 <= x"1"; - if (DHCP_START_IN = '1') then - main_next_state <= DELAY; - else - main_next_state <= BOOTING; - end if; - - when DELAY => - if (wait_ctr = x"2000_0000") then - main_next_state <= SENDING_DISCOVER; - else - main_next_state <= DELAY; - end if; - - when SENDING_DISCOVER => - state2 <= x"2"; - if (construct_current_state = CLEANUP) then - main_next_state <= WAITING_FOR_OFFER; - else - main_next_state <= SENDING_DISCOVER; - end if; - - when WAITING_FOR_OFFER => - state2 <= x"3"; - if (receive_current_state = SAVE_VALUES) and (PS_DATA_IN(8) = '1') then - main_next_state <= SENDING_REQUEST; - elsif (wait_ctr = x"2000_0000") then - main_next_state <= BOOTING; - else - main_next_state <= WAITING_FOR_OFFER; - end if; - - when SENDING_REQUEST => - state2 <= x"4"; - if (construct_current_state = CLEANUP) then - main_next_state <= WAITING_FOR_ACK; - else - main_next_state <= SENDING_REQUEST; - end if; - - when WAITING_FOR_ACK => - state2 <= x"5"; - if (receive_current_state = SAVE_VALUES) and (PS_DATA_IN(8) = '1') then - main_next_state <= ESTABLISHED; - elsif (wait_ctr = x"2000_0000") then - main_next_state <= BOOTING; - else - main_next_state <= WAITING_FOR_ACK; - end if; - - when ESTABLISHED => - state2 <= x"6"; - main_next_state <= ESTABLISHED; - - end case; - -end process MAIN_MACHINE; - -WAIT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (main_current_state = SENDING_DISCOVER or main_current_state = SENDING_REQUEST or main_current_state = BOOTING) then - wait_ctr <= (others => '0'); - elsif (main_current_state = WAITING_FOR_ACK or main_current_state = WAITING_FOR_OFFER or main_current_state = DELAY) then - wait_ctr <= wait_ctr + x"1"; - else - wait_ctr <= wait_ctr; - end if; - end if; -end process WAIT_CTR_PROC; - -DHCP_DONE_OUT <= '1' when main_current_state = ESTABLISHED else '0'; - - --- **** MESSAGES RECEIVING PART - -RECEIVE_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - receive_current_state <= IDLE; - elsif rising_edge(CLK) then - receive_current_state <= receive_next_state; - end if; -end process RECEIVE_MACHINE_PROC; - -RECEIVE_MACHINE : process(receive_current_state, main_current_state, bootp_hdr, saved_dhcp_type, saved_transaction_id, PS_DATA_IN, PS_DEST_MAC_ADDRESS_IN, g_MY_MAC, PS_ACTIVATE_IN, PS_WR_EN_IN, save_ctr) -begin - case receive_current_state is - - when IDLE => - state3 <= x"1"; - if (PS_ACTIVATE_IN = '1' and PS_WR_EN_IN = '1') then - if (main_current_state = WAITING_FOR_OFFER or main_current_state = WAITING_FOR_ACK) then -- ready to receive dhcp frame - if (PS_DEST_MAC_ADDRESS_IN = g_MY_MAC) then -- check if i'm the addressee (discards broadcasts also) - receive_next_state <= SAVE_VALUES; - else - receive_next_state <= DISCARD; -- discard if the frame is not for me - end if; - else - receive_next_state <= DISCARD; -- discard if the frame arrived at wrong time - end if; - else - receive_next_state <= IDLE; - end if; - - when SAVE_VALUES => - state3 <= x"2"; - if (PS_DATA_IN(8) = '1') then - receive_next_state <= CLEANUP; - -- check if the same transaction - elsif (save_ctr = 9) and (saved_transaction_id /= bootp_hdr(63 downto 32)) then - receive_next_state <= DISCARD; - -- if the wrong message at the wrong time - elsif (main_current_state = WAITING_FOR_OFFER) and (save_ctr = 242) and (saved_dhcp_type /= x"020135") then - receive_next_state <= DISCARD; - -- if the wrong message at the wrong time - elsif (main_current_state = WAITING_FOR_ACK) and (save_ctr = 242) and (saved_dhcp_type /= x"050135") then - receive_next_state <= DISCARD; - else - receive_next_state <= SAVE_VALUES; - end if; - - when DISCARD => - state3 <= x"3"; - if (PS_DATA_IN(8) = '1') then - receive_next_state <= CLEANUP; - else - receive_next_state <= DISCARD; - end if; - - when CLEANUP => - state3 <= x"4"; - receive_next_state <= IDLE; - - end case; - -end process RECEIVE_MACHINE; - -SAVE_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (receive_current_state = IDLE) then - save_ctr <= 0; - elsif (receive_current_state = SAVE_VALUES and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - save_ctr <= save_ctr + 1; - else - save_ctr <= save_ctr; - end if; - end if; -end process SAVE_CTR_PROC; - -SAVE_VALUES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (main_current_state = BOOTING) then - saved_transaction_id <= (others => '0'); - saved_proposed_ip <= (others => '0'); - saved_true_ip <= (others => '0'); - saved_dhcp_type <= (others => '0'); - -- dissection of DHCP Offer message - elsif (main_current_state = WAITING_FOR_OFFER and receive_current_state = SAVE_VALUES) then - - saved_true_ip <= saved_true_ip; - - case save_ctr is - - when 3 => - saved_transaction_id(7 downto 0) <= PS_DATA_IN(7 downto 0); - - when 4 => - saved_transaction_id(15 downto 8) <= PS_DATA_IN(7 downto 0); - - when 5 => - saved_transaction_id(23 downto 16) <= PS_DATA_IN(7 downto 0); - - when 6 => - saved_transaction_id(31 downto 24) <= PS_DATA_IN(7 downto 0); - - - when 15 => - saved_proposed_ip(7 downto 0) <= PS_DATA_IN(7 downto 0); - - when 16 => - saved_proposed_ip(15 downto 8) <= PS_DATA_IN(7 downto 0); - - when 17 => - saved_proposed_ip(23 downto 16) <= PS_DATA_IN(7 downto 0); - - when 18 => - saved_proposed_ip(31 downto 24) <= PS_DATA_IN(7 downto 0); - - - when 239 => - saved_dhcp_type(7 downto 0) <= PS_DATA_IN(7 downto 0); - - when 240 => - saved_dhcp_type(15 downto 8) <= PS_DATA_IN(7 downto 0); - - when 241 => - saved_dhcp_type(23 downto 16) <= PS_DATA_IN(7 downto 0); - - when others => null; - - end case; - -- dissection on DHCP Ack message - elsif (main_current_state = WAITING_FOR_ACK and receive_current_state = SAVE_VALUES) then - - saved_proposed_ip <= saved_proposed_ip; - - case save_ctr is - - when 3 => - saved_transaction_id(7 downto 0) <= PS_DATA_IN(7 downto 0); - - when 4 => - saved_transaction_id(15 downto 8) <= PS_DATA_IN(7 downto 0); - - when 5 => - saved_transaction_id(23 downto 16) <= PS_DATA_IN(7 downto 0); - - when 6 => - saved_transaction_id(31 downto 24) <= PS_DATA_IN(7 downto 0); - - - when 15 => - saved_true_ip(7 downto 0) <= PS_DATA_IN(7 downto 0); - - when 16 => - saved_true_ip(15 downto 8) <= PS_DATA_IN(7 downto 0); - - when 17 => - saved_true_ip(23 downto 16) <= PS_DATA_IN(7 downto 0); - - when 18 => - saved_true_ip(31 downto 24) <= PS_DATA_IN(7 downto 0); - - - when 239 => - saved_dhcp_type(7 downto 0) <= PS_DATA_IN(7 downto 0); - - when 240 => - saved_dhcp_type(15 downto 8) <= PS_DATA_IN(7 downto 0); - - when 241 => - saved_dhcp_type(23 downto 16) <= PS_DATA_IN(7 downto 0); - - when others => null; - - end case; - else - saved_transaction_id <= saved_transaction_id; - saved_proposed_ip <= saved_proposed_ip; - saved_true_ip <= saved_true_ip; - saved_dhcp_type <= saved_dhcp_type; - end if; - end if; -end process SAVE_VALUES_PROC; - - --- **** MESSAGES CONSTRUCTING PART - -CONSTRUCT_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - construct_current_state <= IDLE; - elsif rising_edge(CLK) then - if (main_current_state = BOOTING) then - construct_current_state <= IDLE; - else - construct_current_state <= construct_next_state; - end if; - end if; -end process CONSTRUCT_MACHINE_PROC; - -CONSTRUCT_MACHINE : process(construct_current_state, main_current_state, load_ctr, PS_SELECTED_IN) -begin - case construct_current_state is - - when IDLE => - state <= x"1"; - if (main_current_state = SENDING_DISCOVER) or (main_current_state = SENDING_REQUEST) then - construct_next_state <= WAIT_FOR_LOAD; - else - construct_next_state <= IDLE; - end if; - - when WAIT_FOR_LOAD => - state <= x"2"; - if (PS_SELECTED_IN = '1') then - construct_next_state <= BOOTP_HEADERS; - else - construct_next_state <= WAIT_FOR_LOAD; - end if; - - - when BOOTP_HEADERS => - state <= x"3"; - if (load_ctr = 11) then - construct_next_state <= CLIENT_IP; - else - construct_next_state <= BOOTP_HEADERS; - end if; - - when CLIENT_IP => - state <= x"5"; - if (load_ctr = 15) then - construct_next_state <= YOUR_IP; - else - construct_next_state <= CLIENT_IP; - end if; - - when YOUR_IP => - state <= x"b"; - if (load_ctr = 19) then - construct_next_state <= ZEROS1; - else - construct_next_state <= YOUR_IP; - end if; - - when ZEROS1 => - state <= x"c"; - if (load_ctr = 27) then - construct_next_state <= MY_MAC; - else - construct_next_state <= ZEROS1; - end if; - - when MY_MAC => - state <= x"6"; - if (load_ctr = 33) then - construct_next_state <= ZEROS2; - else - construct_next_state <= MY_MAC; - end if; - - when ZEROS2 => - state <= x"7"; - if (load_ctr = 235) then - construct_next_state <= VENDOR_VALS; - else - construct_next_state <= ZEROS2; - end if; - - when VENDOR_VALS => - state <= x"8"; - if (load_ctr = 257) then - -- for discover it's enough of values - if (main_current_state = SENDING_DISCOVER) then - construct_next_state <= TERMINATION; - -- for request there is some more values needed - else - construct_next_state <= VENDOR_VALS2; - end if; - else - construct_next_state <= VENDOR_VALS; - end if; - - when VENDOR_VALS2 => - state <= x"d"; - if (load_ctr = 263) then - construct_next_state <= TERMINATION; - else - construct_next_state <= VENDOR_VALS2; - end if; - - when TERMINATION => - state <= x"e"; - construct_next_state <= CLEANUP; - - when CLEANUP => - state <= x"9"; - construct_next_state <= IDLE; - - end case; -end process CONSTRUCT_MACHINE; - -LOAD_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (construct_current_state = IDLE) then - load_ctr <= 0; - elsif (TC_RD_EN_IN = '1') and (PS_SELECTED_IN = '1') then - load_ctr <= load_ctr + 1; - else - load_ctr <= load_ctr; - end if; - end if; -end process LOAD_CTR_PROC; - -TC_DATA_PROC : process(CLK) -begin - if rising_edge(CLK) then - case (construct_current_state) is - - when BOOTP_HEADERS => - for i in 0 to 7 loop - tc_data(i) <= bootp_hdr(load_ctr * 8 + i); - end loop; - tc_data(8) <= '0'; - - when CLIENT_IP => - if (main_current_state = SENDING_DISCOVER) then - tc_data(7 downto 0) <= x"00"; - elsif (main_current_state = SENDING_REQUEST) then - for i in 0 to 7 loop - tc_data(i) <= saved_proposed_ip((load_ctr - 12) * 8 + i); - end loop; - end if; - tc_data(8) <= '0'; - - when YOUR_IP => - tc_data(7 downto 0) <= x"00"; - tc_data(8) <= '0'; - - when ZEROS1 => - tc_data(7 downto 0) <= x"00"; - tc_data(8) <= '0'; - - when MY_MAC => - for i in 0 to 7 loop - tc_data(i) <= g_MY_MAC((load_ctr - 28) * 8 + i); - end loop; - tc_data(8) <= '0'; - - when ZEROS2 => - tc_data(7 downto 0) <= x"00"; - tc_data(8) <= '0'; - - when VENDOR_VALS => - for i in 0 to 7 loop - tc_data(i) <= vendor_values((load_ctr - 236) * 8 + i); - end loop; - tc_data(8) <= '0'; - - -- needed only for DHCP Request message - when VENDOR_VALS2 => - for i in 0 to 7 loop - tc_data(i) <= vendor_values2((load_ctr - 258) * 8 + i); - end loop; - tc_data(8) <= '0'; - - when TERMINATION => - tc_data(7 downto 0) <= x"ff"; - tc_data(8) <= '1'; - - when others => - tc_data(7 downto 0) <= x"00"; - tc_data(8) <= '0'; - - end case; - - TC_DATA_OUT <= tc_data; - - end if; -end process; - -PS_RESPONSE_SYNC : process(CLK) -begin - if rising_edge(CLK) then - if (construct_current_state = IDLE or construct_current_state = CLEANUP) then - PS_RESPONSE_READY_OUT <= '0'; - else - PS_RESPONSE_READY_OUT <= '1'; - end if; - - if (construct_current_state = IDLE) then - PS_BUSY_OUT <= '0'; - else - PS_BUSY_OUT <= '1'; - end if; - end if; -end process PS_RESPONSE_SYNC; - --- fixed sizes for discover and request messages -TC_FRAME_SIZE_OUT <= x"0103" when (main_current_state = SENDING_DISCOVER) else x"0109"; - -TC_FRAME_TYPE_OUT <= x"0008"; -- frame type: ip - -TC_IDENT_OUT <= x"1" & sent_frames(11 downto 0); - - --- **** statistics ---REC_FRAMES_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- rec_frames <= (others => '0'); --- elsif (receive_current_state = SAVE_VALUES and PS_DATA_IN(8) = '1') then --- rec_frames <= rec_frames + x"1"; --- end if; --- end if; ---end process REC_FRAMES_PROC; --- --- needed for identification -SENT_FRAMES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - sent_frames <= (others => '0'); - elsif (construct_current_state = CLEANUP) then - sent_frames <= sent_frames + x"1"; - end if; - end if; -end process SENT_FRAMES_PROC; --- ---RECEIVED_FRAMES_OUT <= rec_frames; ---SENT_FRAMES_OUT <= sent_frames; --- ---STATS_MACHINE_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- stats_current_state <= IDLE; --- else --- stats_current_state <= stats_next_state; --- end if; --- end if; ---end process STATS_MACHINE_PROC; --- ---STATS_MACHINE : process(stats_current_state, STAT_DATA_ACK_IN, PS_DATA_IN, construct_current_state, receive_current_state) ---begin --- --- case (stats_current_state) is --- --- when IDLE => --- if (receive_current_state = SAVE_VALUES and PS_DATA_IN(8) = '1') or (construct_current_state = CLEANUP) or (receive_current_state = DISCARD and PS_DATA_IN(8) = '1') then --- stats_next_state <= LOAD_SENT; --- else --- stats_next_state <= IDLE; --- end if; --- --- when LOAD_SENT => --- if (STAT_DATA_ACK_IN = '1') then --- stats_next_state <= LOAD_RECEIVED; --- else --- stats_next_state <= LOAD_SENT; --- end if; --- --- when LOAD_RECEIVED => --- if (STAT_DATA_ACK_IN = '1') then --- stats_next_state <= LOAD_DISCARDED; --- else --- stats_next_state <= LOAD_RECEIVED; --- end if; --- --- when LOAD_DISCARDED => --- if (STAT_DATA_ACK_IN = '1') then --- stats_next_state <= CLEANUP; --- else --- stats_next_state <= LOAD_DISCARDED; --- end if; --- --- when CLEANUP => --- stats_next_state <= IDLE; --- --- end case; --- ---end process STATS_MACHINE; --- ---SELECTOR : process(CLK) ---begin --- if rising_edge(CLK) then --- case(stats_current_state) is --- --- when LOAD_SENT => --- stat_data_temp <= x"0101" & sent_frames; --- STAT_ADDR_OUT <= std_logic_vector(to_unsigned(STAT_ADDRESS_BASE, 8)); --- --- when LOAD_RECEIVED => --- stat_data_temp <= x"0102" & rec_frames; --- STAT_ADDR_OUT <= std_logic_vector(to_unsigned(STAT_ADDRESS_BASE + 1, 8)); --- --- when LOAD_DISCARDED => --- stat_data_temp <= x"0103" & discarded_ctr; --- STAT_ADDR_OUT <= std_logic_vector(to_unsigned(STAT_ADDRESS_BASE + 2, 8)); --- --- when others => --- stat_data_temp <= (others => '0'); --- STAT_ADDR_OUT <= (others => '0'); --- --- end case; --- end if; --- ---end process SELECTOR; --- ---STAT_DATA_OUT(7 downto 0) <= stat_data_temp(31 downto 24); ---STAT_DATA_OUT(15 downto 8) <= stat_data_temp(23 downto 16); ---STAT_DATA_OUT(23 downto 16) <= stat_data_temp(15 downto 8); ---STAT_DATA_OUT(31 downto 24) <= stat_data_temp(7 downto 0); --- ---STAT_SYNC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (stats_current_state /= IDLE and stats_current_state /= CLEANUP) then --- STAT_DATA_RDY_OUT <= '1'; --- else --- STAT_DATA_RDY_OUT <= '0'; --- end if; --- end if; ---end process STAT_SYNC; --- **** - - --- **** debug ---DEBUG_OUT(3 downto 0) <= state; ---DEBUG_OUT(7 downto 4) <= state2; ---DEBUG_OUT(11 downto 8) <= state3; ---DEBUG_OUT(15 downto 12) <= (others => '0'); ---DEBUG_OUT(31 downto 16) <= discarded_ctr; --- ---DISCARDED_CTR_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- discarded_ctr <= (others => '0'); --- elsif (receive_current_state = DISCARD and PS_DATA_IN(8) = '1') then --- discarded_ctr <= discarded_ctr + x"1"; --- end if; --- end if; ---end process DISCARDED_CTR_PROC; --- **** - -end trb_net16_gbe_response_constructor_DHCP; - - diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_Forward.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_Forward.vhd deleted file mode 100644 index 813efee..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_Forward.vhd +++ /dev/null @@ -1,235 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; - ---******** --- Response Constructor which forwards received frame back ceating a loopback --- - -entity trb_net16_gbe_response_constructor_Forward is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - TC_BUSY_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end trb_net16_gbe_response_constructor_Forward; - - -architecture trb_net16_gbe_response_constructor_Forward of trb_net16_gbe_response_constructor_Forward is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_response_constructor_Forward : architecture is "GBE_MAIN_group"; - -attribute syn_encoding : string; - -type dissect_states is (IDLE, SAVE, WAIT_FOR_LOAD, LOAD, CLEANUP); -signal dissect_current_state, dissect_next_state : dissect_states; -attribute syn_encoding of dissect_current_state: signal is "safe,gray"; - -signal ff_wr_en : std_logic; -signal ff_rd_en : std_logic; -signal resp_bytes_ctr : std_logic_vector(15 downto 0); -signal ff_empty : std_logic; -signal ff_full : std_logic; -signal ff_q : std_logic_vector(8 downto 0); -signal ff_rd_lock : std_logic; - -signal state : std_logic_vector(3 downto 0); -signal rec_frames : std_logic_vector(15 downto 0); -signal sent_frames : std_logic_vector(15 downto 0); - -begin - -DISSECT_MACHINE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - dissect_current_state <= IDLE; - else - dissect_current_state <= dissect_next_state; - end if; - end if; -end process DISSECT_MACHINE_PROC; - -DISSECT_MACHINE : process(dissect_current_state, PS_WR_EN_IN, PS_ACTIVATE_IN, PS_DATA_IN, ff_q, ff_rd_lock, TC_BUSY_IN) -begin - case dissect_current_state is - - when IDLE => - state <= x"1"; - if (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - dissect_next_state <= SAVE; - else - dissect_next_state <= IDLE; - end if; - - when SAVE => - state <= x"2"; - if (PS_DATA_IN(8) = '1') then - dissect_next_state <= WAIT_FOR_LOAD; - else - dissect_next_state <= SAVE; - end if; - - when WAIT_FOR_LOAD => - state <= x"3"; - if (TC_BUSY_IN = '0') then - dissect_next_state <= LOAD; - else - dissect_next_state <= WAIT_FOR_LOAD; - end if; - - when LOAD => - state <= x"4"; - if (ff_q(8) = '1') and (ff_rd_lock = '0') then - dissect_next_state <= CLEANUP; - else - dissect_next_state <= LOAD; - end if; - - when CLEANUP => - state <= x"5"; - dissect_next_state <= IDLE; - - end case; -end process DISSECT_MACHINE; - ---PS_BUSY_OUT <= '1' when ff_wr_en = '1' else '0'; -PS_BUSY_OUT <= '0' when dissect_current_state = IDLE else '1'; - -ff_wr_en <= '1' when (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') else '0'; - -FF_RD_LOCK_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - ff_rd_lock <= '1'; - elsif (dissect_current_state = LOAD and ff_rd_en = '1') then - ff_rd_lock <= '0'; - else - ff_rd_lock <= '1'; - end if; - end if; -end process FF_RD_LOCK_PROC; - -FRAME_FIFO: fifo_4096x9 -port map( - Data => PS_DATA_IN, - WrClock => CLK, - RdClock => CLK, - WrEn => ff_wr_en, - RdEn => ff_rd_en, - Reset => RESET, - RPReset => RESET, - Q => ff_q, - Empty => ff_empty, - Full => ff_full -); - -ff_rd_en <= '1' when (TC_RD_EN_IN = '1' and PS_SELECTED_IN = '1') else '0'; - -TC_DATA_OUT <= ff_q; - -PS_RESPONSE_READY_OUT <= '1' when (dissect_current_state = LOAD) else '0'; - -TC_FRAME_SIZE_OUT <= resp_bytes_ctr + x"1"; - -TC_FRAME_TYPE_OUT <= x"0008"; -TC_DEST_MAC_OUT <= x"9a680f201300"; -TC_DEST_IP_OUT <= x"0100a8c0"; -TC_DEST_UDP_OUT <= x"50c3"; -TC_SRC_MAC_OUT <= x"efbeefbe0000"; -TC_SRC_IP_OUT <= x"0b00a8c0"; -TC_SRC_UDP_OUT <= x"50c3"; -TC_IP_PROTOCOL_OUT <= x"11"; - -RESP_BYTES_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (dissect_current_state = IDLE) then - resp_bytes_ctr <= (others => '0'); - elsif (dissect_current_state = SAVE) then - resp_bytes_ctr <= resp_bytes_ctr + x"1"; - end if; - end if; -end process RESP_BYTES_CTR_PROC; - -REC_FRAMES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - rec_frames <= (others => '0'); - elsif (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - rec_frames <= rec_frames + x"1"; - end if; - end if; -end process REC_FRAMES_PROC; - -SENT_FRAMES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - sent_frames <= (others => '0'); - elsif (dissect_current_state = WAIT_FOR_LOAD and TC_BUSY_IN = '0') then - sent_frames <= sent_frames + x"1"; - end if; - end if; -end process SENT_FRAMES_PROC; - -RECEIVED_FRAMES_OUT <= rec_frames; -SENT_FRAMES_OUT <= sent_frames; - --- **** debug -DEBUG_OUT(3 downto 0) <= state; -DEBUG_OUT(4) <= ff_empty; -DEBUG_OUT(7 downto 5) <= "000"; -DEBUG_OUT(8) <= ff_full; -DEBUG_OUT(11 downto 9) <= "000"; -DEBUG_OUT(31 downto 12) <= (others => '0'); --- **** - -end trb_net16_gbe_response_constructor_Forward; - - diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_Ping.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_Ping.vhd deleted file mode 100644 index b96eef0..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_Ping.vhd +++ /dev/null @@ -1,424 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - ---******** --- Response Constructor which responds to Ping messages --- - -entity trb_net16_gbe_response_constructor_Ping is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_response_constructor_Ping; - - -architecture trb_net16_gbe_response_constructor_Ping of trb_net16_gbe_response_constructor_Ping is - -attribute syn_encoding : string; - -type dissect_states is (IDLE, READ_FRAME, WAIT_FOR_LOAD, LOAD_FRAME, CLEANUP); -signal dissect_current_state, dissect_next_state : dissect_states; -attribute syn_encoding of dissect_current_state: signal is "onehot"; - -type stats_states is (IDLE, LOAD_SENT, LOAD_RECEIVED, CLEANUP); -signal stats_current_state, stats_next_state : stats_states; -attribute syn_encoding of stats_current_state : signal is "onehot"; - -signal sent_frames : std_logic_vector(15 downto 0); - -signal saved_data : std_logic_vector(447 downto 0); -signal saved_headers : std_logic_vector(63 downto 0); - -signal data_ctr : integer range 1 to 1500; -signal data_length : integer range 1 to 1500; -signal tc_data : std_logic_vector(8 downto 0); - -signal checksum : std_logic_vector(15 downto 0); - -signal checksum_l, checksum_r : std_logic_vector(19 downto 0); -signal checksum_ll, checksum_rr : std_logic_vector(15 downto 0); -signal checksum_lll, checksum_rrr : std_logic_vector(15 downto 0); - -begin - -DISSECT_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - dissect_current_state <= IDLE; - elsif rising_edge(CLK) then - dissect_current_state <= dissect_next_state; - end if; -end process DISSECT_MACHINE_PROC; - -DISSECT_MACHINE : process(dissect_current_state, PS_WR_EN_IN, PS_SELECTED_IN, PS_ACTIVATE_IN, PS_DATA_IN, data_ctr, data_length) -begin - case dissect_current_state is - - when IDLE => - if (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - dissect_next_state <= READ_FRAME; - else - dissect_next_state <= IDLE; - end if; - - when READ_FRAME => - if (PS_DATA_IN(8) = '1') then - dissect_next_state <= WAIT_FOR_LOAD; - else - dissect_next_state <= READ_FRAME; - end if; - - when WAIT_FOR_LOAD => - if (PS_SELECTED_IN = '1') then - dissect_next_state <= LOAD_FRAME; - else - dissect_next_state <= WAIT_FOR_LOAD; - end if; - - when LOAD_FRAME => - if (data_ctr = data_length + 1) then - dissect_next_state <= CLEANUP; - else - dissect_next_state <= LOAD_FRAME; - end if; - - when CLEANUP => - dissect_next_state <= IDLE; - - end case; -end process DISSECT_MACHINE; - -DATA_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (dissect_current_state = IDLE) or (dissect_current_state = WAIT_FOR_LOAD) then - data_ctr <= 2; - elsif (dissect_current_state = READ_FRAME and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then -- in case of saving data from incoming frame - data_ctr <= data_ctr + 1; - elsif (dissect_current_state = LOAD_FRAME and PS_SELECTED_IN = '1' and TC_RD_EN_IN = '1') then -- in case of constructing response - data_ctr <= data_ctr + 1; - end if; - end if; -end process DATA_CTR_PROC; - -DATA_LENGTH_PROC: process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - data_length <= 1; - elsif (dissect_current_state = READ_FRAME and PS_DATA_IN(8) = '1') then - data_length <= data_ctr; - end if; - end if; -end process DATA_LENGTH_PROC; - -SAVE_VALUES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (dissect_current_state = IDLE) then - saved_headers <= (others => '0'); - saved_data <= (others => '0'); - elsif (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - saved_headers(7 downto 0) <= PS_DATA_IN(7 downto 0); - elsif (dissect_current_state = READ_FRAME) then - if (data_ctr < 9) then -- headers - saved_headers(data_ctr * 8 - 1 downto (data_ctr - 1) * 8) <= PS_DATA_IN(7 downto 0); - elsif (data_ctr > 8) then -- data - saved_data((data_ctr - 8) * 8 - 1 downto (data_ctr - 8 - 1) * 8) <= PS_DATA_IN(7 downto 0); - end if; - elsif (dissect_current_state = LOAD_FRAME) then - saved_headers(7 downto 0) <= x"00"; - saved_headers(23 downto 16) <= checksum(7 downto 0); - saved_headers(31 downto 24) <= checksum(15 downto 8); - end if; - end if; -end process SAVE_VALUES_PROC; - -CS_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (dissect_current_state = IDLE) then - checksum_l(19 downto 0) <= (others => '0'); - checksum_r(19 downto 0) <= (others => '0'); - checksum_ll(15 downto 0) <= (others => '0'); - checksum_rr(15 downto 0) <= (others => '0'); - checksum_lll(15 downto 0) <= (others => '0'); - checksum_rrr(15 downto 0) <= (others => '0'); - elsif (dissect_current_state = READ_FRAME and data_ctr > 4) then - if (std_logic_vector(to_unsigned(data_ctr, 1)) = "0") then - checksum_l <= checksum_l + PS_DATA_IN(7 downto 0); - else - checksum_r <= checksum_r + PS_DATA_IN(7 downto 0); - end if; - checksum_ll <= checksum_ll; - checksum_lll <= checksum_lll; - checksum_rr <= checksum_rr; - checksum_rrr <= checksum_rrr; - elsif (dissect_current_state = WAIT_FOR_LOAD) then - checksum_ll <= x"0000" + checksum_l(7 downto 0) + checksum_r(19 downto 8); - checksum_rr <= x"0000" + checksum_r(7 downto 0) + checksum_l(19 downto 8); - checksum_l <= checksum_l; - checksum_lll <= checksum_lll; - checksum_r <= checksum_r; - checksum_rrr <= checksum_rrr; - elsif (dissect_current_state = LOAD_FRAME and data_ctr = 2) then - checksum_lll <= x"0000" + checksum_ll(7 downto 0) + checksum_rr(15 downto 8); - checksum_rrr <= x"0000" + checksum_rr(7 downto 0) + checksum_ll(15 downto 8); - checksum_l <= checksum_l; - checksum_ll <= checksum_ll; - checksum_r <= checksum_r; - checksum_rr <= checksum_rr; - else - checksum_l <= checksum_l; - checksum_ll <= checksum_ll; - checksum_lll <= checksum_lll; - checksum_r <= checksum_r; - checksum_rr <= checksum_rr; - checksum_rrr <= checksum_rrr; - end if; - end if; -end process CS_PROC; -checksum(7 downto 0) <= not (checksum_rrr(7 downto 0) + checksum_lll(15 downto 8)); -checksum(15 downto 8) <= not (checksum_lll(7 downto 0) + checksum_rrr(15 downto 8)); - -TC_DATA_PROC : process(CLK) -begin - if rising_edge(CLK) then - tc_data(8) <= '0'; - - if (dissect_current_state = LOAD_FRAME) then - if (data_ctr < 10) then -- headers - for i in 0 to 7 loop - tc_data(i) <= saved_headers((data_ctr - 2) * 8 + i); - end loop; - else -- data - for i in 0 to 7 loop - tc_data(i) <= saved_data((data_ctr - 8 - 2) * 8 + i); - end loop; - - -- mark the last byte - if (data_ctr = data_length + 1) then - tc_data(8) <= '1'; - end if; - end if; - else - tc_data(7 downto 0) <= (others => '0'); - end if; - - TC_DATA_OUT <= tc_data; - - end if; -end process TC_DATA_PROC; - -PS_RESPONSE_SYNC : process(CLK) -begin - if rising_edge(CLK) then - if (dissect_current_state = WAIT_FOR_LOAD or dissect_current_state = LOAD_FRAME or dissect_current_state = CLEANUP) then - PS_RESPONSE_READY_OUT <= '1'; - else - PS_RESPONSE_READY_OUT <= '0'; - end if; - - if (dissect_current_state = IDLE) then - PS_BUSY_OUT <= '0'; - else - PS_BUSY_OUT <= '1'; - end if; - end if; -end process PS_RESPONSE_SYNC; - -TC_FRAME_SIZE_OUT <= std_logic_vector(to_unsigned(data_length, 16)); -TC_FRAME_TYPE_OUT <= x"0008"; -TC_DEST_UDP_OUT <= x"0000"; -- not used -TC_SRC_MAC_OUT <= g_MY_MAC; -TC_SRC_IP_OUT <= g_MY_IP; -TC_SRC_UDP_OUT <= x"0000"; -- not used -TC_IP_PROTOCOL_OUT <= X"01"; -- ICMP -TC_IDENT_OUT <= x"2" & sent_frames(11 downto 0); - -ADDR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (dissect_current_state = READ_FRAME) then - TC_DEST_MAC_OUT <= PS_SRC_MAC_ADDRESS_IN; - TC_DEST_IP_OUT <= PS_SRC_IP_ADDRESS_IN; - end if; - end if; -end process ADDR_PROC; - --- statistics --- ---REC_FRAMES_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- rec_frames <= (others => '0'); --- elsif (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then --- rec_frames <= rec_frames + x"1"; --- end if; --- end if; ---end process REC_FRAMES_PROC; --- --- needed for identification -SENT_FRAMES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - sent_frames <= (others => '0'); - elsif (dissect_current_state = CLEANUP) then - sent_frames <= sent_frames + x"1"; - end if; - end if; -end process SENT_FRAMES_PROC; --- ---RECEIVED_FRAMES_OUT <= rec_frames; ---SENT_FRAMES_OUT <= sent_frames; ---RECEIVED_FRAMES_OUT <= rec_frames; ---SENT_FRAMES_OUT <= sent_frames; --- ---STATS_MACHINE_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- stats_current_state <= IDLE; --- else --- stats_current_state <= stats_next_state; --- end if; --- end if; ---end process STATS_MACHINE_PROC; --- ---STATS_MACHINE : process(stats_current_state, PS_WR_EN_IN, PS_ACTIVATE_IN, STAT_DATA_ACK_IN, PS_DATA_IN, dissect_current_state) ---begin --- --- case (stats_current_state) is --- --- when IDLE => --- if (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') or (dissect_current_state = CLEANUP) then --- stats_next_state <= LOAD_SENT; --- else --- stats_next_state <= IDLE; --- end if; --- --- when LOAD_SENT => --- if (STAT_DATA_ACK_IN = '1') then --- stats_next_state <= LOAD_RECEIVED; --- else --- stats_next_state <= LOAD_SENT; --- end if; --- --- when LOAD_RECEIVED => --- if (STAT_DATA_ACK_IN = '1') then --- stats_next_state <= CLEANUP; --- else --- stats_next_state <= LOAD_RECEIVED; --- end if; --- --- when CLEANUP => --- stats_next_state <= IDLE; --- --- end case; --- ---end process STATS_MACHINE; --- ---SELECTOR : process(CLK) ---begin --- if rising_edge(CLK) then --- case(stats_current_state) is --- --- when LOAD_SENT => --- stat_data_temp <= x"0401" & sent_frames; --- STAT_ADDR_OUT <= std_logic_vector(to_unsigned(STAT_ADDRESS_BASE, 8)); --- --- when LOAD_RECEIVED => --- stat_data_temp <= x"0402" & rec_frames; --- STAT_ADDR_OUT <= std_logic_vector(to_unsigned(STAT_ADDRESS_BASE + 1, 8)); --- --- when others => --- stat_data_temp <= (others => '0'); --- STAT_ADDR_OUT <= (others => '0'); --- --- end case; --- end if; ---end process SELECTOR; --- ---STAT_DATA_OUT(7 downto 0) <= stat_data_temp(31 downto 24); ---STAT_DATA_OUT(15 downto 8) <= stat_data_temp(23 downto 16); ---STAT_DATA_OUT(23 downto 16) <= stat_data_temp(15 downto 8); ---STAT_DATA_OUT(31 downto 24) <= stat_data_temp(7 downto 0); --- ---STAT_SYNC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (stats_current_state /= IDLE and stats_current_state /= CLEANUP) then --- STAT_DATA_RDY_OUT <= '1'; --- else --- STAT_DATA_RDY_OUT <= '0'; --- end if; --- end if; ---end process STAT_SYNC; ---STAT_DATA_RDY_OUT <= '1' when stats_current_state /= IDLE and stats_current_state /= CLEANUP else '0'; - --- **** debug ---DEBUG_OUT(3 downto 0) <= state; ---DEBUG_OUT(4) <= '0'; ---DEBUG_OUT(7 downto 5) <= "000"; ---DEBUG_OUT(8) <= '0'; ---DEBUG_OUT(11 downto 9) <= "000"; ---DEBUG_OUT(31 downto 12) <= (others => '0'); --- **** - -end trb_net16_gbe_response_constructor_Ping; - - diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_SCTRL.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_SCTRL.vhd deleted file mode 100644 index 06c5c84..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_SCTRL.vhd +++ /dev/null @@ -1,820 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - - -entity trb_net16_gbe_response_constructor_SCTRL is -generic ( STAT_ADDRESS_BASE : integer := 0 -); - port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - - -- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - DEBUG_OUT : out std_logic_vector(63 downto 0); - -- END OF INTERFACE - - -- protocol specific ports - GSC_CLK_IN : in std_logic; - GSC_INIT_DATAREADY_OUT : out std_logic; - GSC_INIT_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_INIT_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_INIT_READ_IN : in std_logic; - GSC_REPLY_DATAREADY_IN : in std_logic; - GSC_REPLY_DATA_IN : in std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_IN : in std_logic_vector(2 downto 0); - GSC_REPLY_READ_OUT : out std_logic; - GSC_BUSY_IN : in std_logic; - MAKE_RESET_OUT : out std_logic; - CFG_ADDITIONAL_HDR_IN : in std_logic; - -- end of protocol specific ports - - MONITOR_SELECT_REC_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_REC_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_SENT_OUT : out std_logic_vector(31 downto 0); - - DATA_HIST_OUT : out hist_array - ); -end entity trb_net16_gbe_response_constructor_SCTRL; - -architecture RTL of trb_net16_gbe_response_constructor_SCTRL is - -attribute syn_encoding : string; - ---type dissect_states is (IDLE, READ_FRAME, WAIT_FOR_HUB, LOAD_TO_HUB, WAIT_FOR_RESPONSE, SAVE_RESPONSE, LOAD_FRAME, WAIT_FOR_TC, DIVIDE, WAIT_FOR_LOAD, CLEANUP); -type dissect_states is (IDLE, READ_FRAME, WAIT_FOR_HUB, LOAD_TO_HUB, WAIT_FOR_RESPONSE, SAVE_RESPONSE, LOAD_FRAME, WAIT_FOR_LOAD, CLEANUP); ---type dissect_states is (IDLE, READ_FRAME, WAIT_FOR_HUB, LOAD_A_WORD, WAIT_ONE, WAIT_TWO, WAIT_FOR_RESPONSE, SAVE_RESPONSE, LOAD_FRAME, WAIT_FOR_TC, DIVIDE, WAIT_FOR_LOAD, CLEANUP); ---type dissect_states is (IDLE, READ_FRAME, WAIT_FOR_HUB, LOAD_TO_HUB, WAIT_FOR_RESPONSE, SAVE_RESPONSE, LOAD_FRAME, WAIT_FOR_TC, DIVIDE, WAIT_FOR_LOAD, CLEANUP); -signal dissect_current_state, dissect_next_state : dissect_states; -attribute syn_encoding of dissect_current_state: signal is "onehot"; - -type stats_states is (IDLE, LOAD_RECEIVED, LOAD_REPLY, CLEANUP); -signal stats_current_state, stats_next_state : stats_states; -attribute syn_encoding of stats_current_state : signal is "onehot"; - -signal saved_target_ip : std_logic_vector(31 downto 0); -signal data_ctr : integer range 0 to 30; - - -signal stat_data_temp : std_logic_vector(31 downto 0); -signal rec_frames : std_logic_vector(15 downto 0); - -signal rx_fifo_q : std_logic_vector(17 downto 0); -signal rx_fifo_qq : std_logic_vector(17 downto 0); -signal rx_fifo_wr, rx_fifo_rd : std_logic; -signal tx_eod, rx_eod : std_logic; - -signal tx_fifo_q : std_logic_vector(8 downto 0); -signal tx_fifo_wr, tx_fifo_rd : std_logic; -signal tx_fifo_reset : std_logic; -signal gsc_reply_read : std_logic; -signal gsc_init_dataready : std_logic; -signal gsc_init_dataready_q : std_logic; - -signal tx_data_ctr : std_logic_vector(15 downto 0); -signal tx_loaded_ctr : std_logic_vector(15 downto 0); -signal tx_frame_loaded : std_logic_vector(15 downto 0); - -signal packet_num : std_logic_vector(2 downto 0); - -signal init_ctr, reply_ctr : std_logic_vector(15 downto 0); -signal rx_empty, tx_empty : std_logic; - -signal rx_full, tx_full : std_logic; - -signal size_left : std_logic_vector(15 downto 0); - -signal reset_detected : std_logic := '0'; -signal make_reset : std_logic := '0'; - - -signal fifo_rd_q : std_logic; - -signal too_much_data : std_logic; - -signal rx_fifo_data : std_logic_vector(8 downto 0); -signal tx_fifo_data : std_logic_vector(17 downto 0); - -signal tc_wr : std_logic; -signal state : std_logic_vector(3 downto 0); -signal saved_hdr_1 : std_logic_vector(7 downto 0) := x"ab"; -signal saved_hdr_2 : std_logic_vector(7 downto 0) := x"cd"; -signal saved_hdr_ctr : std_logic_vector(3 downto 0); - -signal mon_rec_frames, mon_rec_bytes, mon_sent_frames, mon_sent_bytes : std_logic_vector(31 downto 0); - -attribute syn_preserve : boolean; -attribute syn_keep : boolean; -attribute syn_keep of rx_fifo_wr, rx_fifo_rd, gsc_init_dataready, tx_fifo_wr, tx_fifo_rd, gsc_reply_read, state : signal is true; -attribute syn_preserve of rx_fifo_wr, rx_fifo_rd, gsc_init_dataready, tx_fifo_wr, tx_fifo_rd, gsc_reply_read, state : signal is true; - -signal hist_inst : hist_array; -signal reset_all_hist : std_logic_vector(31 downto 0); - -begin - -MAKE_RESET_OUT <= make_reset; - -receive_fifo : fifo_2048x8x16 - PORT map( - Reset => RESET, - RPReset => RESET, - WrClock => CLK, - RdClock => CLK, - Data => rx_fifo_data, - WrEn => rx_fifo_wr, - RdEn => rx_fifo_rd, - Q => rx_fifo_q, - Full => rx_full, - Empty => rx_empty - ); - ---TODO: change to synchronous -rx_fifo_rd <= '1' when (gsc_init_dataready = '1' and dissect_current_state = LOAD_TO_HUB) or - (gsc_init_dataready = '1' and dissect_current_state = WAIT_FOR_HUB and GSC_INIT_READ_IN = '1') or - (dissect_current_state = READ_FRAME and PS_DATA_IN(8) = '1') - else '0'; -- preload first word - -RX_FIFO_WR_SYNC : process(CLK) -begin - if rising_edge(CLK) then - - if (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1' and (saved_hdr_ctr = "0100" or saved_hdr_ctr = "1000")) then - rx_fifo_wr <= '1'; - else - rx_fifo_wr <= '0'; - end if; - - rx_fifo_data <= PS_DATA_IN; - end if; -end process RX_FIFO_WR_SYNC; - -SAVED_HDR_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (dissect_current_state = IDLE and PS_WR_EN_IN = '0' and PS_ACTIVATE_IN = '0') then - saved_hdr_ctr <= "0001"; - elsif (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1' and saved_hdr_ctr /= "1000") then - saved_hdr_ctr(3 downto 0) <= saved_hdr_ctr(2 downto 0) & '0'; - else - saved_hdr_ctr <= saved_hdr_ctr; - end if; - end if; -end process SAVED_HDR_CTR_PROC; - -SAVED_HDR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - if (saved_hdr_ctr = "0001") then - saved_hdr_1 <= PS_DATA_IN(7 downto 0); - saved_hdr_2 <= saved_hdr_2; - elsif (saved_hdr_ctr = "0010") then - saved_hdr_2 <= PS_DATA_IN(7 downto 0); - saved_hdr_1 <= saved_hdr_1; - else - saved_hdr_1 <= saved_hdr_1; - saved_hdr_2 <= saved_hdr_2; - end if; - else - saved_hdr_1 <= saved_hdr_1; - saved_hdr_2 <= saved_hdr_2; - end if; - end if; -end process SAVED_HDR_PROC; - ---RX_FIFO_RD_SYNC : process(CLK) ---begin --- if rising_edge(CLK) then --- --- if (dissect_current_state = LOAD_A_WORD) then --- rx_fifo_rd <= '1'; --- else --- rx_fifo_rd <= '0'; --- end if; --- ----- if (dissect_current_state = WAIT_ONE) then ----- gsc_init_dataready <= '1'; ----- elsif (dissect_current_state = WAIT_FOR_HUB and GSC_INIT_READ_IN = '0') then ----- gsc_init_dataready <= '1'; ----- else ----- gsc_init_dataready <= '0'; ----- end if; --- ----- if (dissect_current_state = READ_FRAME and PS_DATA_IN(8) = '1') then -- preload the first byte ----- rx_fifo_rd <= '1'; ----- elsif (dissect_current_state = LOAD_TO_HUB) then ----- rx_fifo_rd <= '1'; ----- elsif (dissect_current_state = WAIT_FOR_HUB and GSC_INIT_READ_IN = '1') then ----- rx_fifo_rd <= '1'; ----- else ----- rx_fifo_rd <= '0'; ----- end if; ----- ----- if (dissect_current_state = WAIT_FOR_HUB) then ----- gsc_init_dataready <= '1'; ----- elsif (dissect_current_state = LOAD_TO_HUB and GSC_INIT_READ_IN = '1') then ----- gsc_init_dataready <= '1'; ----- else ----- gsc_init_dataready <= '0'; ----- end if; ----- ----- if (dissect_current_state = WAIT_FOR_HUB) then ----- packet_num <= "100"; ----- elsif (dissect_current_state = LOAD_TO_HUB) then ----- if (gsc_init_dataready = '1' and packet_num = "100") then ----- packet_num <= "000"; ----- elsif (gsc_init_dataready = '1' and packet_num /= "100") then ----- packet_num <= packet_num + "1"; ----- else ----- packet_num <= packet_num; ----- end if; ----- else ----- packet_num <= packet_num; ----- end if; --- --- if (dissect_current_state = READ_FRAME) then --- packet_num <= "011"; --- elsif (dissect_current_state = LOAD_A_WORD) then --- if (packet_num = "100") then --- packet_num <= "000"; --- else --- packet_num <= packet_num + "1"; --- end if; --- else --- packet_num <= packet_num; --- end if; --- --- GSC_INIT_DATA_OUT(7 downto 0) <= rx_fifo_q(16 downto 9); --- GSC_INIT_DATA_OUT(15 downto 8) <= rx_fifo_q(7 downto 0); --- --- --GSC_INIT_DATAREADY_OUT <= gsc_init_dataready; --- ----- GSC_INIT_PACKET_NUM_OUT <= packet_num; --- --- end if; ---end process RX_FIFO_RD_SYNC; --- ---GSC_INIT_DATAREADY_OUT <= '1' when dissect_current_state = WAIT_FOR_HUB else '0'; - -----TODO: add a register -GSC_INIT_DATA_OUT(7 downto 0) <= rx_fifo_q(16 downto 9); -GSC_INIT_DATA_OUT(15 downto 8) <= rx_fifo_q(7 downto 0); - ------- TODO: change it to synchronous -GSC_INIT_PACKET_NUM_OUT <= packet_num; -GSC_INIT_DATAREADY_OUT <= gsc_init_dataready; -gsc_init_dataready <= '1' when (GSC_INIT_READ_IN = '1' and dissect_current_state = LOAD_TO_HUB) or - (dissect_current_state = WAIT_FOR_HUB) else '0'; - -PACKET_NUM_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (dissect_current_state = IDLE) then - packet_num <= "100"; - elsif (GSC_INIT_READ_IN = '1' and rx_fifo_rd = '1' and packet_num = "100") then - packet_num <= "000"; - elsif (rx_fifo_rd = '1' and packet_num /= "100") then - packet_num <= packet_num + "1"; - end if; - end if; -end process PACKET_NUM_PROC; - ---temporairly changed to a smaller fifo -transmit_fifo : fifo_65536x18x9 --fifo_4kx18x9 --fifo_65536x18x9 - PORT map( - Reset => tx_fifo_reset, - RPReset => tx_fifo_reset, - WrClock => CLK, - RdClock => CLK, - Data => tx_fifo_data, - WrEn => tx_fifo_wr, - RdEn => tx_fifo_rd, - Q => tx_fifo_q, - Full => tx_full, - Empty => tx_empty - ); - -TX_FIFO_WR_SYNC : process(CLK) -begin - if rising_edge(CLK) then - if (GSC_REPLY_DATAREADY_IN = '1' and gsc_reply_read = '1') then - tx_fifo_wr <= '1'; - elsif (saved_hdr_ctr = "0010") then - tx_fifo_wr <= '1'; - else - tx_fifo_wr <= '0'; - end if; - - if (saved_hdr_ctr = "010") then - tx_fifo_data <= '0' & PS_DATA_IN(7 downto 0) & '0' & x"02"; - else - tx_fifo_data(7 downto 0) <= GSC_REPLY_DATA_IN(15 downto 8); - tx_fifo_data(8) <= '0'; - tx_fifo_data(16 downto 9) <= GSC_REPLY_DATA_IN(7 downto 0); - tx_fifo_data(17) <= '0'; - end if; - end if; -end process TX_FIFO_WR_SYNC; - ---TX_FIFO_RD_SYNC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (dissect_current_state = LOAD_FRAME and PS_SELECTED_IN = '1' and tx_frame_loaded /= g_MAX_FRAME_SIZE) then --- tx_fifo_rd <= '1'; --- else --- tx_fifo_rd <= '0'; --- end if; --- end if; ---end process TX_FIFO_RD_SYNC; -tx_fifo_rd <= '1' when TC_RD_EN_IN = '1' and PS_SELECTED_IN = '1' else '0'; - -TX_FIFO_SYNC_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (too_much_data = '1' and dissect_current_state = CLEANUP) then - tx_fifo_reset <= '1'; - else - tx_fifo_reset <= '0'; - end if; - end if; -end process TX_FIFO_SYNC_PROC; - -TC_DATA_PROC : process(CLK) -begin - if rising_edge(CLK) then - - TC_DATA_OUT(7 downto 0) <= tx_fifo_q(7 downto 0); - - --if (tx_loaded_ctr = tx_data_ctr + x"1" or tx_frame_loaded = g_MAX_FRAME_SIZE - x"1") then - if (tx_loaded_ctr = tx_data_ctr) then - TC_DATA_OUT(8) <= '1'; - else - TC_DATA_OUT(8) <= '0'; - end if; - end if; -end process TC_DATA_PROC; - -GSC_REPLY_READ_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (dissect_current_state = WAIT_FOR_RESPONSE or dissect_current_state = SAVE_RESPONSE) then - gsc_reply_read <= '1'; - else - gsc_reply_read <= '0'; - end if; - end if; -end process GSC_REPLY_READ_PROC; -GSC_REPLY_READ_OUT <= gsc_reply_read; - --- counter of data received from TRBNet hub -TX_DATA_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (dissect_current_state = IDLE) then - tx_data_ctr <= (others => '0'); - elsif (tx_fifo_wr = '1') then - tx_data_ctr <= tx_data_ctr + x"2"; - end if; - end if; -end process TX_DATA_CTR_PROC; - -TOO_MUCH_DATA_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (dissect_current_state = IDLE) then - too_much_data <= '0'; - elsif (dissect_current_state = SAVE_RESPONSE) and (tx_data_ctr = x"fa00") then - too_much_data <= '1'; - end if; - end if; -end process TOO_MUCH_DATA_PROC; - --- total counter of data transported to frame constructor -TX_LOADED_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (dissect_current_state = IDLE) then - tx_loaded_ctr <= x"0000"; - elsif (dissect_current_state = LOAD_FRAME and PS_SELECTED_IN = '1' and TC_RD_EN_IN = '1') then - tx_loaded_ctr <= tx_loaded_ctr + x"1"; - end if; - end if; -end process TX_LOADED_CTR_PROC; - -PS_RESPONSE_SYNC : process(CLK) -begin - if rising_edge(CLK) then - if (too_much_data = '0') then - if (dissect_current_state = WAIT_FOR_LOAD or dissect_current_state = LOAD_FRAME or dissect_current_state = CLEANUP) then - PS_RESPONSE_READY_OUT <= '1'; - else - PS_RESPONSE_READY_OUT <= '0'; - end if; - end if; - - if (dissect_current_state = IDLE or dissect_current_state = WAIT_FOR_RESPONSE) then - PS_BUSY_OUT <= '0'; - else - PS_BUSY_OUT <= '1'; - end if; - end if; -end process PS_RESPONSE_SYNC; - -TC_FRAME_TYPE_OUT <= x"0008"; -TC_DEST_MAC_OUT <= PS_SRC_MAC_ADDRESS_IN; -TC_DEST_IP_OUT <= PS_SRC_IP_ADDRESS_IN; -TC_DEST_UDP_OUT(7 downto 0) <= PS_SRC_UDP_PORT_IN(15 downto 8); -TC_DEST_UDP_OUT(15 downto 8) <= PS_SRC_UDP_PORT_IN(7 downto 0); -TC_SRC_MAC_OUT <= g_MY_MAC; -TC_SRC_IP_OUT <= g_MY_IP; -TC_SRC_UDP_OUT <= x"9065"; --x"a861"; -TC_IP_PROTOCOL_OUT <= x"11"; -TC_IDENT_OUT <= x"3" & reply_ctr(11 downto 0); - -TC_FRAME_SIZE_OUT <= tx_data_ctr; - -DISSECT_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - dissect_current_state <= IDLE; - elsif rising_edge(CLK) then --- if (RESET = '1') then --- if (g_SIMULATE = 0) then --- dissect_current_state <= IDLE; --- else --- dissect_current_state <= WAIT_FOR_RESPONSE; --- end if; --- else - dissect_current_state <= dissect_next_state; --- end if; - end if; -end process DISSECT_MACHINE_PROC; - -DISSECT_MACHINE : process(dissect_current_state, reset_detected, too_much_data, PS_WR_EN_IN, PS_ACTIVATE_IN, PS_DATA_IN, PS_SELECTED_IN, GSC_INIT_READ_IN, GSC_REPLY_DATAREADY_IN, tx_loaded_ctr, tx_data_ctr, rx_fifo_q, GSC_BUSY_IN) -begin - case dissect_current_state is - - when IDLE => - state <= x"0"; - if (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - dissect_next_state <= READ_FRAME; - else - dissect_next_state <= IDLE; - end if; - - when READ_FRAME => - state <= x"1"; - if (PS_DATA_IN(8) = '1') then - dissect_next_state <= WAIT_FOR_HUB; - else - dissect_next_state <= READ_FRAME; - end if; - - when WAIT_FOR_HUB => - state <= x"2"; - if (GSC_INIT_READ_IN = '1') then - dissect_next_state <= LOAD_TO_HUB; - else - dissect_next_state <= WAIT_FOR_HUB; - end if; - - when LOAD_TO_HUB => - state <= x"3"; - if (rx_fifo_q(17) = '1') then - if (reset_detected = '1') then - dissect_next_state <= CLEANUP; - else - dissect_next_state <= WAIT_FOR_RESPONSE; - end if; - else - dissect_next_state <= LOAD_TO_HUB; - end if; - - when WAIT_FOR_RESPONSE => - state <= x"4"; - if (GSC_REPLY_DATAREADY_IN = '1') then - dissect_next_state <= SAVE_RESPONSE; - else - dissect_next_state <= WAIT_FOR_RESPONSE; - end if; - - when SAVE_RESPONSE => - state <= x"5"; - if (GSC_REPLY_DATAREADY_IN = '0' and GSC_BUSY_IN = '0') then - if (too_much_data = '0') then - dissect_next_state <= WAIT_FOR_LOAD; - else - dissect_next_state <= CLEANUP; - end if; - else - dissect_next_state <= SAVE_RESPONSE; - end if; - - when WAIT_FOR_LOAD => - state <= x"6"; - if (PS_SELECTED_IN = '1') then - dissect_next_state <= LOAD_FRAME; - else - dissect_next_state <= WAIT_FOR_LOAD; - end if; - - when LOAD_FRAME => - state <= x"7"; - if (tx_loaded_ctr = tx_data_ctr) then - dissect_next_state <= CLEANUP; - else - dissect_next_state <= LOAD_FRAME; - end if; - - when CLEANUP => - state <= x"8"; - dissect_next_state <= IDLE; - - end case; -end process DISSECT_MACHINE; - --- reset request packet detection - RESET_DETECTED_PROC : process(CLK) - begin - if rising_edge(CLK) then - if (dissect_current_state = IDLE) then - reset_detected <= '0'; - elsif (PS_DATA_IN(7 downto 0) = x"80" and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1' and saved_hdr_ctr = "0100") then - reset_detected <= '1'; - else - reset_detected <= reset_detected; - end if; - end if; - end process RESET_DETECTED_PROC; - - MAKE_RESET_PROC : process(CLK) - begin - if rising_edge(CLK) then - if (dissect_current_state = IDLE) then - make_reset <= '0'; - elsif (dissect_current_state = CLEANUP and reset_detected = '1') then - make_reset <= '1'; - else - make_reset <= make_reset; - end if; - end if; - end process MAKE_RESET_PROC; - - --- monitoring - -hist_ctrs_gen : for i in 0 to 31 generate - - process(CLK) - begin - if rising_edge(CLK) then - if (RESET = '1') then - reset_all_hist(i) <= '1'; - elsif (hist_inst(i) = x"ffff_ffff") then - reset_all_hist(i) <= '1'; - else - reset_all_hist(i) <= '0'; - end if; - end if; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if (reset_all_hist /= x"0000_0000") then - hist_inst(i) <= (others => '0'); - elsif (dissect_current_state = LOAD_FRAME and tx_loaded_ctr = tx_data_ctr and i = to_integer(unsigned(tx_data_ctr(15 downto 11)))) then - hist_inst(i) <= hist_inst(i) + x"1"; - else - hist_inst(i) <= hist_inst(i); - end if; - end if; - end process; - -end generate hist_ctrs_gen; - -DATA_HIST_OUT <= hist_inst; - - -process(CLK) -begin - if rising_edge(CLK) then - DEBUG_OUT(0) <= rx_full; - DEBUG_OUT(1) <= rx_empty; - DEBUG_OUT(2) <= tx_full; - DEBUG_OUT(3) <= tx_empty; - DEBUG_OUT(7 downto 4) <= state; - end if; -end process; - -DEBUG_OUT(63 downto 8) <= (others => '0'); - -process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - mon_rec_frames <= (others => '0'); - elsif (dissect_current_state = READ_FRAME and PS_DATA_IN(8) = '1') then - mon_rec_frames <= mon_rec_frames + x"1"; - else - mon_rec_frames <= mon_rec_frames; - end if; - end if; -end process; -MONITOR_SELECT_REC_OUT <= mon_rec_frames; - -process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - mon_rec_bytes <= (others => '0'); - elsif (rx_fifo_wr = '1') then - mon_rec_bytes <= mon_rec_bytes + x"1"; - else - mon_rec_bytes <= mon_rec_bytes; - end if; - end if; -end process; -MONITOR_SELECT_REC_BYTES_OUT <= mon_rec_bytes; - -process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - mon_sent_frames <= (others => '0'); - elsif (dissect_current_state = LOAD_FRAME and tx_loaded_ctr = tx_data_ctr) then - mon_sent_frames <= mon_sent_frames + x"1"; - else - mon_sent_frames <= mon_sent_frames; - end if; - end if; -end process; -MONITOR_SELECT_SENT_OUT <= mon_sent_frames; - -process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - mon_sent_bytes <= (others => '0'); - elsif (tx_fifo_rd = '1') then - mon_sent_bytes <= mon_sent_bytes + x"1"; - else - mon_sent_bytes <= mon_sent_bytes; - end if; - end if; -end process; -MONITOR_SELECT_SENT_BYTES_OUT <= mon_sent_bytes; - --- statistics ---REC_FRAMES_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- rec_frames <= (others => '0'); --- elsif (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then --- rec_frames <= rec_frames + x"1"; --- end if; --- end if; ---end process REC_FRAMES_PROC; --- --- needed for identification -REPLY_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - reply_ctr <= (others => '0'); - elsif (dissect_current_state = LOAD_FRAME and tx_loaded_ctr = tx_data_ctr) then - reply_ctr <= reply_ctr + x"1"; - end if; - end if; -end process REPLY_CTR_PROC; --- --- ---STATS_MACHINE_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- stats_current_state <= IDLE; --- else --- stats_current_state <= stats_next_state; --- end if; --- end if; ---end process STATS_MACHINE_PROC; --- ---STATS_MACHINE : process(stats_current_state, PS_WR_EN_IN, PS_ACTIVATE_IN, dissect_current_state, tx_loaded_ctr, tx_data_ctr) ---begin --- --- case (stats_current_state) is --- --- when IDLE => --- if ((dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') or (dissect_current_state = LOAD_FRAME and tx_loaded_ctr = tx_data_ctr)) then --- stats_next_state <= LOAD_RECEIVED; --- else --- stats_next_state <= IDLE; --- end if; --- --- when LOAD_RECEIVED => --- if (STAT_DATA_ACK_IN = '1') then --- stats_next_state <= LOAD_REPLY; --- else --- stats_next_state <= LOAD_RECEIVED; --- end if; --- --- when LOAD_REPLY => --- if (STAT_DATA_ACK_IN = '1') then --- stats_next_state <= CLEANUP; --- else --- stats_next_state <= LOAD_REPLY; --- end if; --- --- when CLEANUP => --- stats_next_state <= IDLE; --- --- end case; --- ---end process STATS_MACHINE; --- ---SELECTOR : process(CLK) ---begin --- if rising_edge(CLK) then --- case(stats_current_state) is --- --- when LOAD_RECEIVED => --- stat_data_temp <= x"0502" & rec_frames; --- STAT_ADDR_OUT <= std_logic_vector(to_unsigned(STAT_ADDRESS_BASE, 8)); --- --- when LOAD_REPLY => --- stat_data_temp <= x"0503" & reply_ctr; --- STAT_ADDR_OUT <= std_logic_vector(to_unsigned(STAT_ADDRESS_BASE + 1, 8)); --- --- when others => --- stat_data_temp <= (others => '0'); --- STAT_ADDR_OUT <= (others => '0'); --- --- end case; --- end if; ---end process SELECTOR; --- ---STAT_DATA_OUT(7 downto 0) <= stat_data_temp(31 downto 24); ---STAT_DATA_OUT(15 downto 8) <= stat_data_temp(23 downto 16); ---STAT_DATA_OUT(23 downto 16) <= stat_data_temp(15 downto 8); ---STAT_DATA_OUT(31 downto 24) <= stat_data_temp(7 downto 0); --- ---STAT_SYNC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (stats_current_state /= IDLE and stats_current_state /= CLEANUP) then --- STAT_DATA_RDY_OUT <= '1'; --- else --- STAT_DATA_RDY_OUT <= '0'; --- end if; --- end if; ---end process STAT_SYNC; -----STAT_DATA_RDY_OUT <= '1' when stats_current_state /= IDLE and stats_current_state /= CLEANUP else '0'; --- ----- end of statistics - - -end architecture RTL; diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_Stat.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_Stat.vhd deleted file mode 100644 index 3f1cf11..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_Stat.vhd +++ /dev/null @@ -1,336 +0,0 @@ ----------------------------------------------------------------------------------- --- Company: --- Engineer: --- --- Create Date: 17:10:12 11/18/2011 --- Design Name: --- Module Name: trb_net16_gbe_response_constructor_Stat - Behavioral --- Project Name: --- Target Devices: --- Tool versions: --- Description: --- --- Dependencies: --- --- Revision: --- Revision 0.01 - File Created --- Additional Comments: --- ----------------------------------------------------------------------------------- -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - -entity trb_net16_gbe_response_constructor_Stat is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - TC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - - TC_BUSY_IN : in std_logic; - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - - STAT_DATA_IN : in std_logic_vector((c_MAX_PROTOCOLS + 1) * 32 - 1 downto 0); - STAT_ADDR_IN : in std_logic_vector((c_MAX_PROTOCOLS + 1) * 8 - 1 downto 0); - STAT_DATA_RDY_IN : in std_logic_vector((c_MAX_PROTOCOLS + 1) - 1 downto 0); - STAT_DATA_ACK_OUT : out std_logic_vector((c_MAX_PROTOCOLS + 1) - 1 downto 0); - --- debug - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end trb_net16_gbe_response_constructor_Stat; - -architecture Behavioral of trb_net16_gbe_response_constructor_Stat is - -attribute syn_encoding : string; - -type construct_states is (IDLE, WAIT_FOR_LOAD, LOAD_DATA, TERMINATION, CLEANUP); -signal construct_current_state, construct_next_state : construct_states; -attribute syn_encoding of construct_current_state: signal is "safe,gray"; - -signal timer : unsigned(28 downto 0); -signal state : std_logic_vector(3 downto 0); -signal load_ctr : integer range 0 to 255; -signal tc_data : std_logic_vector(8 downto 0); -signal tc_data_t : std_logic_vector(7 downto 0); -signal timer_lock : std_logic; - -signal mem_din : std_logic_vector(31 downto 0); -signal mem_dout, mem_wr_addr : std_logic_vector(7 downto 0); -signal mem_rd_addr : std_logic_vector(9 downto 0); -signal mem_wr_en : std_logic; -signal selected : std_logic_vector(c_MAX_PROTOCOLS downto 0); - -signal pause : integer range 0 to 28; - -signal stat_data_temp : std_logic_vector(31 downto 0); - -begin -pause <= 10 when g_SIMULATE = 1 else 28; - - -mem : statts_mem - PORT map( - WrClock => CLK, - Reset => RESET, - WrClockEn => '1', - WE => mem_wr_en, - WrAddress => mem_wr_addr, - Data => mem_din, - RdClock => CLK, - RdAddress => mem_rd_addr, - Q => mem_dout, - RdClockEn => '1' - ); - -mem_wr_en <= or_all(selected); -STAT_DATA_ACK_OUT <= selected; - -SELECTOR_PROC : process(CLK) - variable found : boolean := false; -begin - if rising_edge(CLK) then - - selected <= (others => '0'); - - if (RESET = '1') then - mem_wr_addr <= (others => '0'); - mem_din <= (others => '0'); - found := false; - else - if (or_all(STAT_DATA_RDY_IN) = '1') then - for i in 0 to c_MAX_PROTOCOLS loop - if (STAT_DATA_RDY_IN(i) = '1') then - mem_wr_addr <= STAT_ADDR_IN((i + 1) * 8 - 1 downto i * 8); - mem_din <= STAT_DATA_IN((i + 1) * 32 - 1 downto i * 32); - selected(i) <= '1'; - found := true; - elsif (i = c_MAX_PROTOCOLS) and (STAT_DATA_RDY_IN(i) = '0') and (found = false) then - found := false; - end if; - end loop; - else - mem_wr_addr <= (others => '0'); - mem_din <= (others => '0'); - found := false; - end if; - end if; - - end if; -end process SELECTOR_PROC; - - - - - -TIMER_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - timer <= (others => '0'); - timer_lock <= '0'; - elsif (timer(pause) = '0') then - timer_lock <= '0'; - timer <= timer + 1; - elsif (timer(pause) = '1') then - timer_lock <= '1'; - timer <= timer + 1; - else - timer <= timer + 1; - end if; - end if; -end process TIMER_PROC; - --- **** MESSAGES CONSTRUCTING PART - -CONSTRUCT_MACHINE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - construct_current_state <= IDLE; - else - if (g_SIMULATE = 1) then - construct_current_state <= IDLE; - else - construct_current_state <= construct_next_state; - end if; - end if; - end if; -end process CONSTRUCT_MACHINE_PROC; - -CONSTRUCT_MACHINE : process(construct_current_state, timer_lock, TC_BUSY_IN, PS_SELECTED_IN, timer, load_ctr) -begin - case construct_current_state is - - when IDLE => - state <= x"1"; - if (timer(pause) = '1' and timer_lock = '0') then - construct_next_state <= WAIT_FOR_LOAD; - else - construct_next_state <= IDLE; - end if; - - when WAIT_FOR_LOAD => - state <= x"4"; - if (TC_BUSY_IN = '0' and PS_SELECTED_IN = '1') then - construct_next_state <= LOAD_DATA; - else - construct_next_state <= WAIT_FOR_LOAD; - end if; - - when LOAD_DATA => - state <= x"2"; - if (load_ctr = 255) then - construct_next_state <= TERMINATION; - else - construct_next_state <= LOAD_DATA; - end if; - - when TERMINATION => - state <= x"e"; - construct_next_state <= CLEANUP; - - when CLEANUP => - state <= x"9"; - construct_next_state <= IDLE; - - end case; -end process CONSTRUCT_MACHINE; - -LOAD_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (construct_current_state = IDLE) then - load_ctr <= 1; - elsif (TC_RD_EN_IN = '1') and (PS_SELECTED_IN = '1') then - load_ctr <= load_ctr + 1; - end if; - end if; -end process LOAD_CTR_PROC; - -mem_rd_addr <= std_logic_vector(to_unsigned(load_ctr, 10)); - -TC_DATA_PROC : process(construct_current_state, tc_data_t) -begin - - tc_data(8) <= '0'; - - case (construct_current_state) is - - when LOAD_DATA => - for i in 0 to 7 loop - tc_data(i) <= mem_dout(i); - end loop; - - when TERMINATION => - tc_data(7 downto 0) <= x"ff"; - tc_data(8) <= '1'; - - when others => tc_data(7 downto 0) <= x"00"; - - end case; - -end process; - -TC_DATA_SYNC : process(CLK) -begin - if rising_edge(CLK) then - TC_DATA_OUT <= tc_data; - end if; -end process TC_DATA_SYNC; - - ---PS_BUSY_OUT <= '0' when (construct_current_state = IDLE) else '1'; ---PS_RESPONSE_READY_OUT <= '0' when (construct_current_state = IDLE) else '1'; - -PS_RESPONSE_SYNC : process(CLK) -begin - if rising_edge(CLK) then - if (construct_current_state = IDLE) then - PS_RESPONSE_READY_OUT <= '0'; - else - PS_RESPONSE_READY_OUT <= '1'; - end if; - - if (construct_current_state = IDLE) then - PS_BUSY_OUT <= '0'; - else - PS_BUSY_OUT <= '1'; - end if; - end if; -end process PS_RESPONSE_SYNC; - -TC_FRAME_SIZE_OUT <= x"0100"; -TC_FRAME_TYPE_OUT <= x"0008"; -- frame type: ip - -TC_DEST_MAC_OUT <= x"ffffffffffff"; -TC_DEST_IP_OUT <= x"ff" & g_MY_IP(23 downto 0); --x"ff00a8c0"; -TC_DEST_UDP_OUT <= x"51c3"; -TC_SRC_MAC_OUT <= g_MY_MAC; -TC_SRC_IP_OUT <= g_MY_IP; -TC_SRC_UDP_OUT <= x"51c3"; -TC_IP_PROTOCOL_OUT <= x"11"; -- udp - -TC_IP_SIZE_OUT <= x"0100"; -TC_UDP_SIZE_OUT <= x"0100"; -TC_FLAGS_OFFSET_OUT <= (others => '0'); - --- **** debug -DEBUG_OUT(3 downto 0) <= state; -DEBUG_OUT(4) <= '0'; -DEBUG_OUT(7 downto 5) <= "000"; -DEBUG_OUT(8) <= '0'; -DEBUG_OUT(11 downto 9) <= "000"; -DEBUG_OUT(31 downto 12) <= (others => '0'); --- **** - -end Behavioral; - diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_Test.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_Test.vhd deleted file mode 100644 index cf8005d..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_Test.vhd +++ /dev/null @@ -1,235 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; - ---******** --- Response Constructor which forwards received frame back ceating a loopback --- - -entity trb_net16_gbe_response_constructor_Test is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - TC_BUSY_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end trb_net16_gbe_response_constructor_Test; - - -architecture trb_net16_gbe_response_constructor_Test of trb_net16_gbe_response_constructor_Test is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_response_constructor_Test: architecture is "GBE_MAIN_group"; - -attribute syn_encoding : string; - -type dissect_states is (IDLE, SAVE, WAIT_FOR_LOAD, LOAD, CLEANUP); -signal dissect_current_state, dissect_next_state : dissect_states; -attribute syn_encoding of dissect_current_state: signal is "safe,gray"; - -signal ff_wr_en : std_logic; -signal ff_rd_en : std_logic; -signal resp_bytes_ctr : std_logic_vector(15 downto 0); -signal ff_empty : std_logic; -signal ff_full : std_logic; -signal ff_q : std_logic_vector(8 downto 0); -signal ff_rd_lock : std_logic; - -signal state : std_logic_vector(3 downto 0); -signal rec_frames : std_logic_vector(15 downto 0); -signal sent_frames : std_logic_vector(15 downto 0); - -begin - -DISSECT_MACHINE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - dissect_current_state <= IDLE; - else - dissect_current_state <= dissect_next_state; - end if; - end if; -end process DISSECT_MACHINE_PROC; - -DISSECT_MACHINE : process(dissect_current_state, PS_WR_EN_IN, PS_ACTIVATE_IN, PS_DATA_IN, ff_q, ff_rd_lock, TC_BUSY_IN) -begin - case dissect_current_state is - - when IDLE => - state <= x"1"; - if (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - dissect_next_state <= SAVE; - else - dissect_next_state <= IDLE; - end if; - - when SAVE => - state <= x"2"; - if (PS_DATA_IN(8) = '1') then - dissect_next_state <= WAIT_FOR_LOAD; - else - dissect_next_state <= SAVE; - end if; - - when WAIT_FOR_LOAD => - state <= x"3"; - if (TC_BUSY_IN = '0') then - dissect_next_state <= LOAD; - else - dissect_next_state <= WAIT_FOR_LOAD; - end if; - - when LOAD => - state <= x"4"; - if (ff_q(8) = '1') and (ff_rd_lock = '0') then - dissect_next_state <= CLEANUP; - else - dissect_next_state <= LOAD; - end if; - - when CLEANUP => - state <= x"5"; - dissect_next_state <= IDLE; - - end case; -end process DISSECT_MACHINE; - -PS_BUSY_OUT <= '0' when dissect_current_state = IDLE else '1'; - -ff_wr_en <= '1' when (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') else '0'; - -FF_RD_LOCK_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - ff_rd_lock <= '1'; - elsif (dissect_current_state = LOAD and ff_rd_en = '1') then - ff_rd_lock <= '0'; - else - ff_rd_lock <= '1'; - end if; - end if; -end process FF_RD_LOCK_PROC; - --- TODO: put a smaller fifo here -FRAME_FIFO: fifo_4096x9 -port map( - Data => PS_DATA_IN, - WrClock => CLK, - RdClock => CLK, - WrEn => ff_wr_en, - RdEn => ff_rd_en, - Reset => RESET, - RPReset => RESET, - Q => ff_q, - Empty => ff_empty, - Full => ff_full -); - -ff_rd_en <= '1' when (TC_RD_EN_IN = '1' and PS_SELECTED_IN = '1') else '0'; - -TC_DATA_OUT <= ff_q; - -PS_RESPONSE_READY_OUT <= '1' when (dissect_current_state = LOAD) else '0'; - -TC_FRAME_SIZE_OUT <= resp_bytes_ctr + x"1"; - -TC_FRAME_TYPE_OUT <= x"aa08"; -TC_DEST_MAC_OUT <= x"9a680f201300"; -TC_DEST_IP_OUT <= x"0100a8c0"; -TC_DEST_UDP_OUT <= x"51c3"; -TC_SRC_MAC_OUT <= x"efbeefbe0000"; -TC_SRC_IP_OUT <= x"0b00a8c0"; -TC_SRC_UDP_OUT <= x"51c3"; -TC_IP_PROTOCOL_OUT <= x"11"; - -RESP_BYTES_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (dissect_current_state = IDLE) then - resp_bytes_ctr <= (others => '0'); - elsif (dissect_current_state = SAVE) then - resp_bytes_ctr <= resp_bytes_ctr + x"1"; - end if; - end if; -end process RESP_BYTES_CTR_PROC; - -REC_FRAMES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - rec_frames <= (others => '0'); - elsif (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - rec_frames <= rec_frames + x"1"; - end if; - end if; -end process REC_FRAMES_PROC; - -SENT_FRAMES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - sent_frames <= (others => '0'); - elsif (dissect_current_state = WAIT_FOR_LOAD and TC_BUSY_IN = '0') then - sent_frames <= sent_frames + x"1"; - end if; - end if; -end process SENT_FRAMES_PROC; - -RECEIVED_FRAMES_OUT <= rec_frames; -SENT_FRAMES_OUT <= sent_frames; - --- **** debug -DEBUG_OUT(3 downto 0) <= state; -DEBUG_OUT(4) <= ff_empty; -DEBUG_OUT(7 downto 5) <= "000"; -DEBUG_OUT(8) <= ff_full; -DEBUG_OUT(11 downto 9) <= "000"; -DEBUG_OUT(31 downto 12) <= (others => '0'); --- **** - -end trb_net16_gbe_response_constructor_Test; - - diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_Test1.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_Test1.vhd deleted file mode 100644 index 8a1b618..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_Test1.vhd +++ /dev/null @@ -1,160 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; - ---******** --- Response Constructor which recevies data and does nothing except counting incoming packets --- - -entity trb_net16_gbe_response_constructor_Test1 is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - TC_BUSY_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end trb_net16_gbe_response_constructor_Test1; - - -architecture trb_net16_gbe_response_constructor_Test1 of trb_net16_gbe_response_constructor_Test1 is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_response_constructor_Forward : architecture is "GBE_MAIN_group"; - -attribute syn_encoding : string; - -type dissect_states is (IDLE, SAVE, CLEANUP); -signal dissect_current_state, dissect_next_state : dissect_states; -attribute syn_encoding of dissect_current_state: signal is "safe,gray"; - -signal ff_wr_en : std_logic; -signal ff_rd_en : std_logic; -signal resp_bytes_ctr : std_logic_vector(15 downto 0); -signal ff_empty : std_logic; -signal ff_full : std_logic; -signal ff_q : std_logic_vector(8 downto 0); -signal ff_rd_lock : std_logic; - -signal state : std_logic_vector(3 downto 0); -signal rec_frames : std_logic_vector(15 downto 0); -signal sent_frames : std_logic_vector(15 downto 0); - -begin - -DISSECT_MACHINE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - dissect_current_state <= IDLE; - else - dissect_current_state <= dissect_next_state; - end if; - end if; -end process DISSECT_MACHINE_PROC; - -DISSECT_MACHINE : process(dissect_current_state, PS_WR_EN_IN, PS_ACTIVATE_IN, PS_DATA_IN) -begin - case dissect_current_state is - - when IDLE => - state <= x"1"; - if (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - dissect_next_state <= SAVE; - else - dissect_next_state <= IDLE; - end if; - - when SAVE => - state <= x"2"; - if (PS_DATA_IN(8) = '1') then - dissect_next_state <= CLEANUP; - else - dissect_next_state <= SAVE; - end if; - - when CLEANUP => - state <= x"5"; - dissect_next_state <= IDLE; - - end case; -end process DISSECT_MACHINE; - -PS_BUSY_OUT <= '0'; - -TC_DATA_OUT <= (others => '0'); - -PS_RESPONSE_READY_OUT <= '0'; - -TC_FRAME_SIZE_OUT <= (others => '0'); - -TC_FRAME_TYPE_OUT <= x"0008"; -TC_DEST_MAC_OUT <= x"9a680f201300"; -TC_DEST_IP_OUT <= x"0100a8c0"; -TC_DEST_UDP_OUT <= x"50c3"; -TC_SRC_MAC_OUT <= x"efbeefbe0000"; -TC_SRC_IP_OUT <= x"0b00a8c0"; -TC_SRC_UDP_OUT <= x"50c3"; -TC_IP_PROTOCOL_OUT <= x"11"; - -REC_FRAMES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - rec_frames <= (others => '0'); - elsif (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - rec_frames <= rec_frames + x"1"; - end if; - end if; -end process REC_FRAMES_PROC; - -RECEIVED_FRAMES_OUT <= rec_frames; -SENT_FRAMES_OUT <= (others => '0'); - --- **** debug -DEBUG_OUT(31 downto 0) <= (others => '0'); --- **** - -end trb_net16_gbe_response_constructor_Test1; - - diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_Trash.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_Trash.vhd deleted file mode 100644 index 4845606..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_Trash.vhd +++ /dev/null @@ -1,163 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; - ---******** --- gets all the data which is not supposed to be received by other protocols --- simply clears the fifo from garbage - -entity trb_net16_gbe_response_constructor_Trash is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_SIZE_LEFT_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - TC_BUSY_IN : in std_logic; - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end trb_net16_gbe_response_constructor_Trash; - - -architecture trb_net16_gbe_response_constructor_Trash of trb_net16_gbe_response_constructor_Trash is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_response_constructor_Trash : architecture is "GBE_MAIN_group"; - -attribute syn_encoding : string; - -type dissect_states is (IDLE, SAVE, CLEANUP); -signal dissect_current_state, dissect_next_state : dissect_states; -attribute syn_encoding of dissect_current_state: signal is "safe,gray"; - -signal state : std_logic_vector(3 downto 0); -signal rec_frames : std_logic_vector(15 downto 0); -signal sent_frames : std_logic_vector(15 downto 0); - -begin - -DISSECT_MACHINE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - dissect_current_state <= IDLE; - else - dissect_current_state <= dissect_next_state; - end if; - end if; -end process DISSECT_MACHINE_PROC; - -DISSECT_MACHINE : process(dissect_current_state, PS_WR_EN_IN, PS_ACTIVATE_IN, PS_DATA_IN) -begin - case dissect_current_state is - - when IDLE => - state <= x"1"; - if (PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - dissect_next_state <= SAVE; - else - dissect_next_state <= IDLE; - end if; - - when SAVE => - state <= x"2"; - if (PS_DATA_IN(8) = '1') then - dissect_next_state <= CLEANUP; - else - dissect_next_state <= SAVE; - end if; - - when CLEANUP => - state <= x"5"; - dissect_next_state <= IDLE; - - end case; -end process DISSECT_MACHINE; - -PS_BUSY_OUT <= '0' when dissect_current_state = IDLE else '1'; - -TC_DATA_OUT <= '0' & x"ab"; - -PS_RESPONSE_READY_OUT <= '0'; - -TC_FRAME_SIZE_OUT <= (others => '0'); - -TC_FRAME_TYPE_OUT <= (others => '0'); -TC_DEST_MAC_OUT <= (others => '0'); -TC_DEST_IP_OUT <= (others => '0'); -TC_DEST_UDP_OUT <= (others => '0'); -TC_SRC_MAC_OUT <= (others => '0'); -TC_SRC_IP_OUT <= (others => '0'); -TC_SRC_UDP_OUT <= (others => '0'); -TC_IP_PROTOCOL_OUT <= (others => '0'); - -REC_FRAMES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - rec_frames <= (others => '0'); - elsif (dissect_current_state = IDLE and PS_WR_EN_IN = '1' and PS_ACTIVATE_IN = '1') then - rec_frames <= rec_frames + x"1"; - end if; - end if; -end process REC_FRAMES_PROC; - -RECEIVED_FRAMES_OUT <= rec_frames; -SENT_FRAMES_OUT <= (others => '0'); - --- **** debug -DEBUG_OUT(3 downto 0) <= state; -DEBUG_OUT(31 downto 4) <= (others => '0'); --- **** - -end trb_net16_gbe_response_constructor_Trash; - - diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_TrbNetData.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_TrbNetData.vhd deleted file mode 100644 index ff7546a..0000000 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_TrbNetData.vhd +++ /dev/null @@ -1,600 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - -entity trb_net16_gbe_response_constructor_TrbNetData is -generic ( - RX_PATH_ENABLE : integer range 0 to 1 := 1; - DO_SIMULATION : integer range 0 to 1 := 0 - ); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - DEBUG_OUT : out std_logic_vector(63 downto 0); --- END OF INTERFACE - - -- CTS interface - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; - CTS_READ_IN : in std_logic; - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - FEE_BUSY_IN : in std_logic; - -- ip configurator - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - - CFG_GBE_ENABLE_IN : in std_logic; - CFG_IPU_ENABLE_IN : in std_logic; - CFG_MULT_ENABLE_IN : in std_logic; - CFG_SUBEVENT_ID_IN : in std_logic_vector(31 downto 0); - CFG_SUBEVENT_DEC_IN : in std_logic_vector(31 downto 0); - CFG_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); - CFG_READOUT_CTR_IN : in std_logic_vector(23 downto 0); - CFG_READOUT_CTR_VALID_IN : in std_logic; - CFG_INSERT_TTYPE_IN : in std_logic; - CFG_MAX_SUB_IN : in std_logic_vector(15 downto 0); - CFG_MAX_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SUBS_IN_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SINGLE_SUB_IN : in std_logic_vector(15 downto 0); - - MONITOR_SELECT_REC_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_REC_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_SENT_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_DROP_IN_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_DROP_OUT_OUT : out std_logic_vector(31 downto 0); - - DATA_HIST_OUT : out hist_array -); -end trb_net16_gbe_response_constructor_TrbNetData; - - -architecture trb_net16_gbe_response_constructor_TrbNetData of trb_net16_gbe_response_constructor_TrbNetData is - -attribute syn_encoding : string; - -signal ip_cfg_start : std_logic; -signal ip_cfg_bank : std_logic_vector(3 downto 0); -signal ip_cfg_done : std_logic; -signal ip_cfg_mem_addr : std_logic_vector(7 downto 0); -signal ip_cfg_mem_data : std_logic_vector(31 downto 0); -signal ip_cfg_mem_clk : std_logic; - -signal ic_dest_mac, ic_dest_mac_shift : std_logic_vector(47 downto 0); -signal ic_dest_ip, ic_dest_ip_shift : std_logic_vector(31 downto 0); -signal ic_dest_udp, ic_dest_udp_shift : std_logic_vector(15 downto 0); -signal ic_src_mac, ic_src_mac_shift : std_logic_vector(47 downto 0); -signal ic_src_ip, ic_src_ip_shift : std_logic_vector(31 downto 0); -signal ic_src_udp, ic_src_udp_shift : std_logic_vector(15 downto 0); - -signal pc_wr_en : std_logic; -signal pc_data : std_logic_vector(7 downto 0); -signal pc_eoq : std_logic; -signal pc_sos : std_logic; -signal pc_ready : std_logic; -signal pc_sub_size : std_logic_vector(31 downto 0); -signal pc_trig_nr : std_logic_vector(31 downto 0); -signal pc_eos : std_logic; - -signal tc_rd_en : std_logic; -signal tc_data : std_logic_vector(8 downto 0); -signal tc_size : std_logic_vector(15 downto 0); -signal tc_sod : std_logic; -signal pc_trig_type, pc_trig_type_shift : std_logic_vector(3 downto 0); - -type dissect_states is (IDLE, WAIT_FOR_LOAD, LOAD, CLEANUP); -signal dissect_current_state, dissect_next_state : dissect_states; -attribute syn_encoding of dissect_current_state : signal is "onehot"; - -signal event_bytes : std_logic_vector(15 downto 0); -signal loaded_bytes : std_logic_vector(15 downto 0); -signal sent_packets : std_logic_vector(15 downto 0); - -signal mon_sent_frames, mon_sent_bytes : std_logic_vector(31 downto 0); -signal ipu_dbg : std_logic_vector(383 downto 0); -signal constr_dbg : std_logic_vector(63 downto 0); - -signal hist_inst : hist_array; -signal tc_sod_flag : std_logic; -signal reset_all_hist : std_logic_vector(31 downto 0); -signal ipu_monitor : std_logic_vector(223 downto 0); - --- JUST FOR DEBUGING PURPOSE -type sim_check_states is (IDLE, SAVE_HDR, GO_OVER_DATA, SAVE_TLR, GET_ONE_MORE, GET_SECOND_MORE, CLEANUP); -signal sim_check_current, sim_check_next : sim_check_states; - -signal hdr, tlr : std_logic_vector(255 downto 0); - - - -begin - - -sim_check_gen : if DO_SIMULATION = 1 generate - - process(RESET, CLK) - begin - if RESET = '1' then - sim_check_current <= IDLE; - elsif rising_edge(CLK) then - sim_check_current <= sim_check_next; - end if; - end process; - - process(sim_check_current, tc_sod, loaded_bytes, tc_size, hdr, tlr, event_bytes) - begin - case (sim_check_current) is - - when IDLE => - if (tc_sod = '1') then - sim_check_next <= SAVE_HDR; - else - sim_check_next <= IDLE; - end if; - - when SAVE_HDR => - if (loaded_bytes = x"001f" + x"0002") then - sim_check_next <= GO_OVER_DATA; - else - sim_check_next <= SAVE_HDR; - end if; - - when GO_OVER_DATA => - if (loaded_bytes = tc_size + x"0001") then - sim_check_next <= SAVE_TLR; - else - sim_check_next <= GO_OVER_DATA; - end if; - - when SAVE_TLR => - if (loaded_bytes = event_bytes) then - sim_check_next <= GET_ONE_MORE; - else - sim_check_next <= SAVE_TLR; - end if; - - when GET_ONE_MORE => - sim_check_next <= GET_SECOND_MORE; - - when GET_SECOND_MORE => - sim_check_next <= CLEANUP; - - when CLEANUP => - - --assert (hdr = tlr) report "--------- >>>> Header Trailer mismatch" severity failure; - - sim_check_next <= IDLE; - - end case; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if (sim_check_current = SAVE_HDR and loaded_bytes > x"0001") then - hdr((to_integer(unsigned(loaded_bytes - x"0002") * 8)) + 7 downto (to_integer(unsigned(loaded_bytes - x"0002")) * 8)) <= tc_data(7 downto 0); - else - hdr <= hdr; - end if; - end if; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if (sim_check_current = SAVE_TLR) then - tlr((to_integer(unsigned(loaded_bytes - tc_size - 2) * 8)) + 7 downto (to_integer(unsigned(loaded_bytes - tc_size - 2)) * 8)) <= tc_data(7 downto 0); - elsif (sim_check_current = GET_ONE_MORE) then - tlr((to_integer(unsigned(loaded_bytes - tc_size - 1) * 8)) + 7 downto (to_integer(unsigned(loaded_bytes - tc_size - 1)) * 8)) <= tc_data(7 downto 0); - elsif (sim_check_current = GET_ONE_MORE) then - tlr((to_integer(unsigned(loaded_bytes - tc_size) * 8)) + 7 downto (to_integer(unsigned(loaded_bytes - tc_size)) * 8)) <= tc_data(7 downto 0); - else - tlr <= tlr; - end if; - end if; - end process; - - -end generate sim_check_gen; - - - - -THE_IP_CONFIGURATOR: ip_configurator -port map( - CLK => CLK, - RESET => RESET, - -- configuration interface - START_CONFIG_IN => ip_cfg_start, - BANK_SELECT_IN => ip_cfg_bank, - CONFIG_DONE_OUT => ip_cfg_done, - MEM_ADDR_OUT => ip_cfg_mem_addr, - MEM_DATA_IN => ip_cfg_mem_data, - MEM_CLK_OUT => ip_cfg_mem_clk, - -- information for IP cores - DEST_MAC_OUT => ic_dest_mac, - DEST_IP_OUT => ic_dest_ip, - DEST_UDP_OUT => ic_dest_udp, - SRC_MAC_OUT => ic_src_mac, - SRC_IP_OUT => ic_src_ip, - SRC_UDP_OUT => ic_src_udp, - MTU_OUT => open, - -- Debug - DEBUG_OUT => open -); - -MB_IP_CONFIG: slv_mac_memory -port map( - CLK => CLK, - RESET => RESET, - BUSY_IN => '0', - -- Slave bus - SLV_ADDR_IN => SLV_ADDR_IN, - SLV_READ_IN => SLV_READ_IN, - SLV_WRITE_IN => SLV_WRITE_IN, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, - SLV_DATA_IN => SLV_DATA_IN, - SLV_DATA_OUT => SLV_DATA_OUT, - -- I/O to the backend - MEM_CLK_IN => ip_cfg_mem_clk, - MEM_ADDR_IN => ip_cfg_mem_addr, - MEM_DATA_OUT => ip_cfg_mem_data, - -- Status lines - STAT => open -); - -THE_IPU_INTERFACE: trb_net16_gbe_ipu_interface --ipu2gbe -port map( - CLK_IPU => CLK, - CLK_GBE => CLK, - RESET => RESET, - --Event information coming from CTS - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - --Information sent to CTS - --status data, equipped with DHDR - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_READ_IN => CTS_READ_IN, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - -- Data from Frontends - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - FEE_BUSY_IN => FEE_BUSY_IN, - -- slow control interface - START_CONFIG_OUT => ip_cfg_start, - BANK_SELECT_OUT => ip_cfg_bank, - CONFIG_DONE_IN => ip_cfg_done, - DATA_GBE_ENABLE_IN => CFG_GBE_ENABLE_IN, - DATA_IPU_ENABLE_IN => CFG_IPU_ENABLE_IN, - MULT_EVT_ENABLE_IN => CFG_MULT_ENABLE_IN, - MAX_SUBEVENT_SIZE_IN => CFG_MAX_SUB_IN, - MAX_QUEUE_SIZE_IN => CFG_MAX_QUEUE_IN, - MAX_SUBS_IN_QUEUE_IN => CFG_MAX_SUBS_IN_QUEUE_IN, - MAX_SINGLE_SUB_SIZE_IN => CFG_MAX_SINGLE_SUB_IN, - READOUT_CTR_IN => CFG_READOUT_CTR_IN, - READOUT_CTR_VALID_IN => CFG_READOUT_CTR_VALID_IN, - -- PacketConstructor interface - PC_WR_EN_OUT => pc_wr_en, - PC_DATA_OUT => pc_data, - PC_READY_IN => pc_ready, - PC_SOS_OUT => pc_sos, - PC_EOS_OUT => pc_eos, - PC_EOQ_OUT => pc_eoq, - PC_SUB_SIZE_OUT => pc_sub_size, - PC_TRIG_NR_OUT => pc_trig_nr, - PC_TRIGGER_TYPE_OUT => pc_trig_type, - MONITOR_OUT => ipu_monitor, - DEBUG_OUT => ipu_dbg -); - -MONITOR_SELECT_DROP_OUT_OUT <= ipu_monitor(31 downto 0); - -PACKET_CONSTRUCTOR : trb_net16_gbe_event_constr -port map( - CLK => CLK, - RESET => RESET, - PC_WR_EN_IN => pc_wr_en, - PC_DATA_IN => pc_data, - PC_READY_OUT => pc_ready, - PC_START_OF_SUB_IN => pc_sos, - PC_END_OF_SUB_IN => pc_eos, - PC_END_OF_QUEUE_IN => pc_eoq, - PC_SUB_SIZE_IN => pc_sub_size, - PC_DECODING_IN => CFG_SUBEVENT_DEC_IN, - PC_EVENT_ID_IN => CFG_SUBEVENT_ID_IN, - PC_TRIG_NR_IN => pc_trig_nr, - PC_TRIGGER_TYPE_IN => pc_trig_type_shift, - PC_QUEUE_DEC_IN => CFG_QUEUE_DEC_IN, - PC_INSERT_TTYPE_IN => CFG_INSERT_TTYPE_IN, - TC_RD_EN_IN => tc_rd_en, - TC_DATA_OUT => tc_data, - TC_EVENT_SIZE_OUT => tc_size, - TC_SOD_OUT => tc_sod, - DEBUG_OUT => constr_dbg -); - -tc_rd_en <= '1' when PS_SELECTED_IN = '1' and TC_RD_EN_IN = '1' else '0'; - -DISSECT_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - dissect_current_state <= IDLE; - elsif rising_edge(CLK) then - dissect_current_state <= dissect_next_state; - end if; -end process DISSECT_MACHINE_PROC; - -DISSECT_MACHINE : process(dissect_current_state, tc_sod, event_bytes, loaded_bytes, PS_SELECTED_IN) -begin - case dissect_current_state is - - when IDLE => - if (tc_sod = '1') then - dissect_next_state <= WAIT_FOR_LOAD; - else - dissect_next_state <= IDLE; - end if; - - when WAIT_FOR_LOAD => - if (PS_SELECTED_IN = '1') then - dissect_next_state <= LOAD; - else - dissect_next_state <= WAIT_FOR_LOAD; - end if; - - when LOAD => - if (event_bytes = loaded_bytes) then - dissect_next_state <= CLEANUP; - else - dissect_next_state <= LOAD; - end if; - - when CLEANUP => - dissect_next_state <= IDLE; - - end case; -end process DISSECT_MACHINE; - -PS_BUSY_OUT <= '0' when dissect_current_state = IDLE else '1'; -PS_RESPONSE_READY_OUT <= '1' when (dissect_current_state = LOAD) or (dissect_current_state = WAIT_FOR_LOAD) else '0'; - -TC_DATA_OUT <= tc_data; - -EVENT_BYTES_PROC : process (clk) is -begin - if rising_edge(clk) then - if dissect_current_state = IDLE and tc_sod = '1' then - event_bytes <= tc_size + x"20"; -- adding termination bytes - else - event_bytes <= event_bytes; - end if; - end if; -end process EVENT_BYTES_PROC; - -LOADED_BYTES_PROC : process (clk) is -begin - if rising_edge(clk) then - if (dissect_current_state = IDLE) then - loaded_bytes <= (others => '0'); - elsif (dissect_current_state = LOAD and TC_RD_EN_IN = '1') then - loaded_bytes <= loaded_bytes + x"1"; - else - loaded_bytes <= loaded_bytes; - end if; - end if; -end process LOADED_BYTES_PROC; - -TC_FRAME_SIZE_OUT <= event_bytes; -TC_FRAME_TYPE_OUT <= x"0008"; - -TC_DEST_MAC_OUT <= ic_dest_mac_shift; --x"c4e870211b00"; --ic_dest_mac; -TC_DEST_IP_OUT <= ic_dest_ip_shift; --x"0300a8c0"; --ic_dest_ip; -TC_DEST_UDP_OUT <= ic_dest_udp_shift; --x"c35c"; --ic_dest_udp; - ---TC_DEST_MAC_OUT <= x"87883c290c00"; --ic_dest_mac; ---TC_DEST_IP_OUT <= x"0188a8c0"; --ic_dest_ip; ---TC_DEST_UDP_OUT <= x"c35b"; --ic_dest_udp; - -process(CLK) -begin - if rising_edge(CLK) then - if (ip_cfg_start = '1') then - ic_dest_mac_shift <= ic_dest_mac; - ic_dest_ip_shift <= ic_dest_ip; - ic_dest_udp_shift <= ic_dest_udp; - pc_trig_type_shift <= pc_trig_type; - else - ic_dest_mac_shift <= ic_dest_mac_shift; - ic_dest_ip_shift <= ic_dest_ip_shift; - ic_dest_udp_shift <= ic_dest_udp_shift; - pc_trig_type_shift <= pc_trig_type_shift; - end if; - end if; -end process; - - - -rx_enable_gen : if (RX_PATH_ENABLE = 1) generate - TC_SRC_MAC_OUT <= g_MY_MAC; - TC_SRC_IP_OUT <= g_MY_IP; -end generate rx_enable_gen; - -rx_disable_gen : if (RX_PATH_ENABLE = 0) generate - TC_SRC_MAC_OUT <= g_MY_MAC; - TC_SRC_IP_OUT <= ic_src_ip; -end generate rx_disable_gen; - ---TC_SRC_MAC_OUT <= x"99883c290c00"; ---TC_SRC_IP_OUT <= x"0288a8c0"; - -TC_SRC_UDP_OUT <= ic_src_udp; -TC_IP_PROTOCOL_OUT <= x"11"; -TC_IDENT_OUT <= x"4" & sent_packets(11 downto 0); - -SENT_PACKETS_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - sent_packets <= (others => '0'); - elsif (dissect_current_state = IDLE and tc_sod = '1') then - sent_packets <= sent_packets + x"1"; - end if; - end if; -end process SENT_PACKETS_PROC; - --- monitoring - - -process(CLK) -begin - if rising_edge(CLK) then - if (tc_sod = '1' and tc_sod_flag = '0') then - tc_sod_flag <= '1'; - elsif (tc_sod = '0') then - tc_sod_flag <= '0'; - else - tc_sod_flag <= tc_sod_flag; - end if; - end if; -end process; - -hist_ctrs_gen : for i in 0 to 31 generate - - process(CLK) - begin - if rising_edge(CLK) then - if (RESET = '1') then - reset_all_hist(i) <= '1'; - elsif (hist_inst(i) = x"ffff_ffff") then - reset_all_hist(i) <= '1'; - else - reset_all_hist(i) <= '0'; - end if; - end if; - end process; - - HIST_PROC : process(CLK) - begin - if rising_edge(CLK) then - if (RESET = '1') or (reset_all_hist /= x"0000_0000") then - hist_inst(i) <= (others => '0'); - elsif (tc_sod = '1' and tc_sod_flag = '0' and i = to_integer(unsigned(event_bytes(15 downto 11)))) then - hist_inst(i) <= hist_inst(i) + x"1"; - else - hist_inst(i) <= hist_inst(i); - end if; - end if; - end process; -end generate hist_ctrs_gen; - -DATA_HIST_OUT <= hist_inst; - -process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - mon_sent_frames <= (others => '0'); - elsif (dissect_current_state = LOAD and event_bytes = loaded_bytes) then - mon_sent_frames <= mon_sent_frames + x"1"; - else - mon_sent_frames <= mon_sent_frames; - end if; - end if; -end process; -MONITOR_SELECT_SENT_OUT <= mon_sent_frames; - -process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - mon_sent_bytes <= (others => '0'); - elsif (tc_rd_en = '1') then - mon_sent_bytes <= mon_sent_bytes + x"1"; - else - mon_sent_bytes <= mon_sent_bytes; - end if; - end if; -end process; - -MONITOR_SELECT_SENT_BYTES_OUT <= mon_sent_bytes; - - -MONITOR_SELECT_REC_BYTES_OUT <= (others => '0'); -MONITOR_SELECT_REC_OUT <= (others => '0'); - -DEBUG_OUT(31 downto 0) <= ipu_dbg(31 downto 0); -DEBUG_OUT(63 downto 32) <= constr_dbg(31 downto 0); - - - -end trb_net16_gbe_response_constructor_TrbNetData; - - diff --git a/gbe2_ecp3/trb_net16_gbe_setup.vhd b/gbe2_ecp3/trb_net16_gbe_setup.vhd deleted file mode 100644 index c9bf2f3..0000000 --- a/gbe2_ecp3/trb_net16_gbe_setup.vhd +++ /dev/null @@ -1,403 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; ---use work.version.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - -entity gbe_setup is -port( - CLK : in std_logic; - RESET : in std_logic; - - -- interface to regio bus - BUS_ADDR_IN : in std_logic_vector(7 downto 0); - BUS_DATA_IN : in std_logic_vector(31 downto 0); - BUS_DATA_OUT : out std_logic_vector(31 downto 0); - BUS_WRITE_EN_IN : in std_logic; - BUS_READ_EN_IN : in std_logic; - BUS_ACK_OUT : out std_logic; - - -- output to gbe_buf - GBE_SUBEVENT_ID_OUT : out std_logic_vector(31 downto 0); - GBE_SUBEVENT_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_QUEUE_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_MAX_FRAME_OUT : out std_logic_vector(15 downto 0); - GBE_USE_GBE_OUT : out std_logic; - GBE_USE_TRBNET_OUT : out std_logic; - GBE_USE_MULTIEVENTS_OUT : out std_logic; - GBE_READOUT_CTR_OUT : out std_logic_vector(23 downto 0); - GBE_READOUT_CTR_VALID_OUT : out std_logic; - GBE_ALLOW_RX_OUT : out std_logic; - GBE_ADDITIONAL_HDR_OUT : out std_logic; - GBE_INSERT_TTYPE_OUT : out std_logic; - GBE_SOFT_RESET_OUT : out std_logic; - - GBE_MAX_SUB_OUT : out std_logic_vector(15 downto 0); - GBE_MAX_QUEUE_OUT : out std_logic_vector(15 downto 0); - GBE_MAX_SUBS_IN_QUEUE_OUT : out std_logic_vector(15 downto 0); - GBE_MAX_SINGLE_SUB_OUT : out std_logic_vector(15 downto 0); - - MONITOR_RX_BYTES_IN : in std_logic_vector(31 downto 0); - MONITOR_RX_FRAMES_IN : in std_logic_vector(31 downto 0); - MONITOR_TX_BYTES_IN : in std_logic_vector(31 downto 0); - MONITOR_TX_FRAMES_IN : in std_logic_vector(31 downto 0); - MONITOR_TX_PACKETS_IN : in std_logic_vector(31 downto 0); - MONITOR_DROPPED_IN : in std_logic_vector(31 downto 0); - - MONITOR_SELECT_REC_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_REC_BYTES_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_BYTES_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_IN_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_OUT_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_GEN_DBG_IN : in std_logic_vector(2*c_MAX_PROTOCOLS * 32 - 1 downto 0); - - DATA_HIST_IN : in hist_array; - SCTRL_HIST_IN : in hist_array -); -end entity; - -architecture gbe_setup of gbe_setup is - -signal reset_values : std_logic; -signal subevent_id : std_logic_vector(31 downto 0); -signal subevent_dec : std_logic_vector(31 downto 0); -signal queue_dec : std_logic_vector(31 downto 0); -signal max_frame : std_logic_vector(15 downto 0); -signal use_gbe : std_logic; -signal use_trbnet : std_logic; -signal use_multievents : std_logic; -signal readout_ctr : std_logic_vector(23 downto 0); -signal readout_ctr_valid : std_logic; -signal ack : std_logic; -signal ack_q : std_logic; -signal data_out : std_logic_vector(31 downto 0); -signal allow_rx : std_logic; -signal additional_hdr : std_logic; -signal insert_ttype : std_logic; - signal max_sub, max_queue, max_subs_in_queue, max_single_sub : std_logic_vector(15 downto 0); - -begin - -OUT_PROC : process(CLK) -begin - if rising_edge(CLK) then - GBE_SUBEVENT_ID_OUT <= subevent_id; - GBE_SUBEVENT_DEC_OUT <= subevent_dec; - GBE_QUEUE_DEC_OUT <= queue_dec; - GBE_MAX_FRAME_OUT <= max_frame; - GBE_USE_GBE_OUT <= use_gbe; - GBE_USE_TRBNET_OUT <= use_trbnet; - GBE_USE_MULTIEVENTS_OUT <= use_multievents; - GBE_READOUT_CTR_OUT <= readout_ctr; - GBE_READOUT_CTR_VALID_OUT <= readout_ctr_valid; - BUS_ACK_OUT <= ack_q; - ack_q <= ack; - BUS_DATA_OUT <= data_out; - GBE_ALLOW_RX_OUT <= '1'; --allow_rx; - GBE_INSERT_TTYPE_OUT <= insert_ttype; - GBE_ADDITIONAL_HDR_OUT <= additional_hdr; - GBE_MAX_SUB_OUT <= max_sub; - GBE_MAX_QUEUE_OUT <= max_queue; - GBE_MAX_SUBS_IN_QUEUE_OUT <= max_subs_in_queue; - GBE_MAX_SINGLE_SUB_OUT <= max_single_sub; - end if; -end process OUT_PROC; - -ACK_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - ack <= '0'; - elsif ((BUS_WRITE_EN_IN = '1') or (BUS_READ_EN_IN = '1')) then - ack <= '1'; - else - ack <= '0'; - end if; - end if; -end process ACK_PROC; - -WRITE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (reset_values = '1') ) then - subevent_id <= x"0000_00cf"; - subevent_dec <= x"0002_0001"; - queue_dec <= x"0003_0062"; - max_frame <= x"0578"; - use_gbe <= '0'; - use_trbnet <= '0'; - use_multievents <= '0'; - reset_values <= '0'; - readout_ctr <= x"00_0000"; - readout_ctr_valid <= '0'; - allow_rx <= '1'; - insert_ttype <= '0'; - additional_hdr <= '1'; - GBE_SOFT_RESET_OUT <= '0'; - max_sub <= x"e998"; -- 59800 - max_queue <= x"ea60"; -- 60000 - max_subs_in_queue <= x"00c8"; -- 200 - max_single_sub <= x"7d00"; -- 32000 - - elsif (BUS_WRITE_EN_IN = '1') then - - GBE_SOFT_RESET_OUT <= '0'; - - case BUS_ADDR_IN is - - when x"00" => - subevent_id <= BUS_DATA_IN; - - when x"01" => - subevent_dec <= BUS_DATA_IN; - - when x"02" => - queue_dec <= BUS_DATA_IN; - - when x"04" => - max_frame <= BUS_DATA_IN(15 downto 0); - - when x"05" => - if (BUS_DATA_IN = x"0000_0000") then - use_gbe <= '0'; - else - use_gbe <= '1'; - end if; - - when x"06" => - if (BUS_DATA_IN = x"0000_0000") then - use_trbnet <= '0'; - else - use_trbnet <= '1'; - end if; - - when x"07" => - if (BUS_DATA_IN = x"0000_0000") then - use_multievents <= '0'; - else - use_multievents <= '1'; - end if; - - when x"08" => - readout_ctr <= BUS_DATA_IN(23 downto 0); - readout_ctr_valid <= '1'; - - when x"09" => - allow_rx <= BUS_DATA_IN(0); - - when x"0a" => - additional_hdr <= BUS_DATA_IN(0); - - when x"0b" => - insert_ttype <= BUS_DATA_IN(0); - - when x"0c" => - max_sub <= BUS_DATA_IN(15 downto 0); - - when x"10" => - max_queue <= BUS_DATA_IN(15 downto 0); - - when x"0e" => - max_subs_in_queue <= BUS_DATA_IN(15 downto 0); - - when x"0f" => - max_single_sub <= BUS_DATA_IN(15 downto 0); - - - when x"ff" => - if (BUS_DATA_IN = x"ffff_ffff") then - reset_values <= '0'; - GBE_SOFT_RESET_OUT <= '1'; - else - reset_values <= '0'; - GBE_SOFT_RESET_OUT <= '0'; - end if; - - when others => - subevent_id <= subevent_id; - subevent_dec <= subevent_dec; - queue_dec <= queue_dec; - max_frame <= max_frame; - use_gbe <= use_gbe; - use_trbnet <= use_trbnet; - use_multievents <= use_multievents; - reset_values <= reset_values; - readout_ctr <= readout_ctr; - readout_ctr_valid <= readout_ctr_valid; - allow_rx <= allow_rx; - additional_hdr <= additional_hdr; - insert_ttype <= insert_ttype; - max_sub <= max_sub; - max_queue <= max_queue; - max_subs_in_queue <= max_subs_in_queue; - max_single_sub <= max_single_sub; - end case; - else - reset_values <= '0'; - readout_ctr_valid <= '0'; - GBE_SOFT_RESET_OUT <= '0'; - end if; - end if; -end process WRITE_PROC; - -READ_PROC : process(CLK) - variable address : integer range 0 to 255; -begin - if rising_edge(CLK) then - if (RESET = '1') then - data_out <= (others => '0'); - elsif (BUS_READ_EN_IN = '1') then - - address := to_integer(unsigned(BUS_ADDR_IN)); - - case address is - - when 0 => - data_out <= subevent_id; - - when 1 => - data_out <= subevent_dec; - - when 2 => - data_out <= queue_dec; - - when 4 => - data_out(15 downto 0) <= max_frame; - data_out(31 downto 16) <= (others => '0'); - - when 5 => - if (use_gbe = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - when 6 => - if (use_trbnet = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - when 7 => - if (use_multievents = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - when 9 => - data_out(0) <= allow_rx; - data_out(31 downto 1) <= (others => '0'); - - when 10 => - data_out(0) <= additional_hdr; - data_out(31 downto 1) <= (others => '0'); - - when 11 => - data_out(0) <= insert_ttype; - data_out(31 downto 1) <= (others => '0'); - - when 12 => - data_out(15 downto 0) <= max_sub; - data_out(31 downto 16) <= (others => '0'); - - when 14 => - data_out(15 downto 0) <= max_subs_in_queue; - data_out(31 downto 16) <= (others => '0'); - - when 15 => - data_out(15 downto 0) <= max_single_sub; - data_out(31 downto 16) <= (others => '0'); - - when 16 => - data_out(15 downto 0) <= max_queue; - data_out(31 downto 16) <= (others => '0'); - - -- Histogram of sctrl data sizes - when 96 to 127 => - data_out <= SCTRL_HIST_IN(address - 96); - - -- Histogram of TrbNetData data sizes - when 128 to 159 => - data_out <= DATA_HIST_IN(address - 128); - - -- General statistics - when 224 => - data_out <= MONITOR_RX_BYTES_IN; - - when 225 => - data_out <= MONITOR_RX_FRAMES_IN; - - when 226 => - data_out <= MONITOR_TX_BYTES_IN; - - when 227 => - data_out <= MONITOR_TX_FRAMES_IN; - - when 228 => - data_out <= MONITOR_TX_PACKETS_IN; - - when 229 => - data_out <= MONITOR_DROPPED_IN; - - -- Sctrl - when 160 => - data_out <= MONITOR_SELECT_REC_IN(3 * 32 - 1 downto 2 * 32); - when 161 => - data_out <= MONITOR_SELECT_REC_BYTES_IN(3 * 32 - 1 downto 2 * 32); - when 162 => - data_out <= MONITOR_SELECT_SENT_IN(3 * 32 - 1 downto 2 * 32); - when 163 => - data_out <= MONITOR_SELECT_SENT_BYTES_IN(3 * 32 - 1 downto 2 * 32); - when 164 => - data_out <= MONITOR_SELECT_GEN_DBG_IN(3 * 64 - 1 - 32 downto 2 * 64); - when 165 => - data_out <= MONITOR_SELECT_GEN_DBG_IN(3 * 64 - 1 downto 2 * 64 + 32); - when 166 => - data_out <= MONITOR_SELECT_DROP_IN_IN(3 * 32 - 1 downto 2 * 32); - when 167 => - data_out <= MONITOR_SELECT_DROP_OUT_IN(3 * 32 - 1 downto 2 * 32); - - -- TrbnetData - when 176 => - data_out <= MONITOR_SELECT_REC_IN(4 * 32 - 1 downto 3 * 32); - when 177 => - data_out <= MONITOR_SELECT_REC_BYTES_IN(4 * 32 - 1 downto 3 * 32); - when 178 => - data_out <= MONITOR_SELECT_SENT_IN(4 * 32 - 1 downto 3 * 32); - when 179 => - data_out <= MONITOR_SELECT_SENT_BYTES_IN(4 * 32 - 1 downto 3 * 32); - when 180 => - data_out <= MONITOR_SELECT_GEN_DBG_IN(4 * 64 - 1 - 32 downto 3 * 64); - when 181 => - data_out <= MONITOR_SELECT_GEN_DBG_IN(4 * 64 - 1 downto 3 * 64 + 32); - when 182 => - data_out <= MONITOR_SELECT_DROP_IN_IN(4 * 32 - 1 downto 3 * 32); - when 183 => - data_out <= MONITOR_SELECT_DROP_OUT_IN(4 * 32 - 1 downto 3 * 32); - - -- for older network monitors - when 243 => - data_out <= MONITOR_TX_BYTES_IN; - - when 244 => - data_out <= MONITOR_TX_FRAMES_IN; - - when others => - data_out <= (others => '0'); - end case; - end if; - end if; -end process READ_PROC; - -end architecture; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_gbe_setup_simplified.vhd b/gbe2_ecp3/trb_net16_gbe_setup_simplified.vhd deleted file mode 100644 index 282b036..0000000 --- a/gbe2_ecp3/trb_net16_gbe_setup_simplified.vhd +++ /dev/null @@ -1,597 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; ---use work.version.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - -entity gbe_setup is -port( - CLK : in std_logic; - RESET : in std_logic; - - -- interface to regio bus - BUS_ADDR_IN : in std_logic_vector(7 downto 0); - BUS_DATA_IN : in std_logic_vector(31 downto 0); - BUS_DATA_OUT : out std_logic_vector(31 downto 0); -- gk 26.04.10 - BUS_WRITE_EN_IN : in std_logic; -- gk 26.04.10 - BUS_READ_EN_IN : in std_logic; -- gk 26.04.10 - BUS_ACK_OUT : out std_logic; -- gk 26.04.10 - - -- gk 26.04.10 - -- input from gbe_buf (only to return the whole trigger number via regio) - GBE_TRIG_NR_IN : in std_logic_vector(31 downto 0); - - -- output to gbe_buf - GBE_SUBEVENT_ID_OUT : out std_logic_vector(31 downto 0); - GBE_SUBEVENT_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_QUEUE_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_MAX_PACKET_OUT : out std_logic_vector(31 downto 0); - GBE_MIN_PACKET_OUT : out std_logic_vector(31 downto 0); - GBE_MAX_FRAME_OUT : out std_logic_vector(15 downto 0); - GBE_USE_GBE_OUT : out std_logic; - GBE_USE_TRBNET_OUT : out std_logic; - GBE_USE_MULTIEVENTS_OUT : out std_logic; - GBE_READOUT_CTR_OUT : out std_logic_vector(23 downto 0); -- gk 26.04.10 - GBE_READOUT_CTR_VALID_OUT : out std_logic; -- gk 26.04.10 - GBE_DELAY_OUT : out std_logic_vector(31 downto 0); - GBE_ALLOW_LARGE_OUT : out std_logic; - GBE_ALLOW_RX_OUT : out std_logic; - GBE_ALLOW_BRDCST_ETH_OUT : out std_logic; - GBE_ALLOW_BRDCST_IP_OUT : out std_logic; - GBE_FRAME_DELAY_OUT : out std_logic_vector(31 downto 0); -- gk 09.12.10 - GBE_ALLOWED_TYPES_OUT : out std_logic_vector(31 downto 0); - GBE_ALLOWED_IP_OUT : out std_logic_vector(31 downto 0); - GBE_ALLOWED_UDP_OUT : out std_logic_vector(31 downto 0); - GBE_VLAN_ID_OUT : out std_logic_vector(31 downto 0); - -- gk 28.07.10 - MONITOR_BYTES_IN : in std_logic_vector(31 downto 0); - MONITOR_SENT_IN : in std_logic_vector(31 downto 0); - MONITOR_DROPPED_IN : in std_logic_vector(31 downto 0); - MONITOR_SM_IN : in std_logic_vector(31 downto 0); - MONITOR_LR_IN : in std_logic_vector(31 downto 0); - MONITOR_HDR_IN : in std_logic_vector(31 downto 0); - MONITOR_FIFOS_IN : in std_logic_vector(31 downto 0); - MONITOR_DISCFRM_IN : in std_logic_vector(31 downto 0); - MONITOR_LINK_DWN_IN : in std_logic_vector(31 downto 0); -- gk 30.09.10 - MONITOR_EMPTY_IN : in std_logic_vector(31 downto 0); -- gk 01.10.10 - MONITOR_RX_FRAMES_IN : in std_logic_vector(31 downto 0); - MONITOR_RX_BYTES_IN : in std_logic_vector(31 downto 0); - MONITOR_RX_BYTES_R_IN : in std_logic_vector(31 downto 0); - -- gk 01.06.10 - DBG_IPU2GBE1_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE2_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE3_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE4_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE5_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE6_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE7_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE8_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE9_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE10_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE11_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE12_IN : in std_logic_vector(31 downto 0); - DBG_PC1_IN : in std_logic_vector(31 downto 0); - DBG_PC2_IN : in std_logic_vector(31 downto 0); - DBG_FC1_IN : in std_logic_vector(31 downto 0); - DBG_FC2_IN : in std_logic_vector(31 downto 0); - DBG_FT1_IN : in std_logic_vector(31 downto 0); - DBG_FT2_IN : in std_logic_vector(31 downto 0); - DBG_FR_IN : in std_logic_vector(95 downto 0); - DBG_RC_IN : in std_logic_vector(63 downto 0); - DBG_MC_IN : in std_logic_vector(63 downto 0); - DBG_TC_IN : in std_logic_vector(31 downto 0); - DBG_FIFO_RD_EN_OUT : out std_logic; - - DBG_SELECT_REC_IN : in std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); - DBG_SELECT_SENT_IN : in std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0); - DBG_SELECT_PROTOS_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - - DBG_FIFO_Q_IN : in std_logic_vector(15 downto 0) - --DBG_RESET_FIFO_OUT : out std_logic -- gk 28.09.10 -); -end entity; - -architecture gbe_setup of gbe_setup is - --- attribute HGROUP : string; --- attribute HGROUP of gbe_setup : architecture is "GBE_conf"; - -signal reset_values : std_logic; - -signal subevent_id : std_logic_vector(31 downto 0); -signal subevent_dec : std_logic_vector(31 downto 0); -signal queue_dec : std_logic_vector(31 downto 0); -signal max_packet : std_logic_vector(31 downto 0); -signal min_packet : std_logic_vector(31 downto 0); -- gk 07.20.10 -signal max_frame : std_logic_vector(15 downto 0); -signal use_gbe : std_logic; -signal use_trbnet : std_logic; -signal use_multievents : std_logic; -signal readout_ctr : std_logic_vector(23 downto 0); -- gk 26.04.10 -signal readout_ctr_valid : std_logic; -- gk 26.04.10 -signal ack : std_logic; -- gk 26.04.10 -signal ack_q : std_logic; -- gk 26.04.10 -signal data_out : std_logic_vector(31 downto 0); -- gk 26.04.10 -signal delay : std_logic_vector(31 downto 0); -- gk 28.04.10 -signal allow_large : std_logic; -- gk 21.07.10 -signal reset_fifo : std_logic; -- gk 28.09.10 -signal allow_rx : std_logic; -signal frame_delay : std_logic_vector(31 downto 0); -- gk 09.12.10 -signal allowed_types : std_logic_vector(31 downto 0); -signal allowed_ip : std_logic_vector(31 downto 0); -signal allowed_udp : std_logic_vector(31 downto 0); -signal vlan_id : std_logic_vector(31 downto 0); - -begin - -OUT_PROC : process(CLK) -begin - if rising_edge(CLK) then - GBE_SUBEVENT_ID_OUT <= subevent_id; - GBE_SUBEVENT_DEC_OUT <= subevent_dec; - GBE_QUEUE_DEC_OUT <= queue_dec; - GBE_MAX_PACKET_OUT <= max_packet; - GBE_MIN_PACKET_OUT <= min_packet; - GBE_MAX_FRAME_OUT <= max_frame; - GBE_USE_GBE_OUT <= use_gbe; - GBE_USE_TRBNET_OUT <= use_trbnet; - GBE_USE_MULTIEVENTS_OUT <= use_multievents; - GBE_READOUT_CTR_OUT <= readout_ctr; -- gk 26.04.10 - GBE_READOUT_CTR_VALID_OUT <= readout_ctr_valid; -- gk 26.04.10 - BUS_ACK_OUT <= ack_q; -- gk 26.04.10 - ack_q <= ack; -- gk 26.04.10 - BUS_DATA_OUT <= data_out; -- gk 26.04.10 - GBE_DELAY_OUT <= delay; -- gk 28.04.10 - GBE_ALLOW_LARGE_OUT <= allow_large; -- gk 21.07.10 - GBE_ALLOW_RX_OUT <= allow_rx; - --DBG_RESET_FIFO_OUT <= reset_fifo; -- gk 28.09.10 - GBE_FRAME_DELAY_OUT <= frame_delay; -- gk 09.12.10 - GBE_ALLOWED_TYPES_OUT <= allowed_types; - GBE_ALLOWED_IP_OUT <= allowed_ip; - GBE_ALLOWED_UDP_OUT <= allowed_udp; - GBE_VLAN_ID_OUT <= vlan_id; - end if; -end process OUT_PROC; - --- gk 26.04.10 -ACK_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - ack <= '0'; - elsif ((BUS_WRITE_EN_IN = '1') or (BUS_READ_EN_IN = '1')) then - ack <= '1'; - else - ack <= '0'; - end if; - end if; -end process ACK_PROC; - -WRITE_PROC : process(CLK) -begin - DBG_FIFO_RD_EN_OUT <= '0'; - - if rising_edge(CLK) then - if ( (RESET = '1') or (reset_values = '1') ) then - subevent_id <= x"0000_00cf"; - subevent_dec <= x"0002_0001"; - queue_dec <= x"0003_0062"; - max_packet <= x"0000_0fd0"; --x"0000_fde8"; -- 65k --x"0000_fde8"; -- tester - min_packet <= x"0000_0007"; -- gk 20.07.10 - max_frame <= x"0578"; - use_gbe <= '0'; --'1'; -- gk 27.08.10 -- blocks the transmission until gbe gets configured - use_trbnet <= '0'; - use_multievents <= '0'; - reset_values <= '0'; - readout_ctr <= x"00_0000"; -- gk 26.04.10 -- gk 07.06.10 corrected bug found by Sergey - readout_ctr_valid <= '0'; -- gk 26.04.10 - delay <= x"0000_0000"; -- gk 28.04.10 - DBG_FIFO_RD_EN_OUT <= '0'; - allow_large <= '0'; -- gk 21.07.10 - reset_fifo <= '0'; -- gk 28.09.10 - allow_rx <= '1'; - frame_delay <= x"0000_0000"; -- gk 09.12.10 - allowed_types <= x"0000_00ff"; -- only test protocol allowed - allowed_ip <= x"0000_00ff"; - allowed_udp <= x"0000_00ff"; - vlan_id <= x"0000_0000"; -- no vlan id by default - - elsif (BUS_WRITE_EN_IN = '1') then - case BUS_ADDR_IN is - - when x"00" => - subevent_id <= BUS_DATA_IN; - - when x"01" => - subevent_dec <= BUS_DATA_IN; - - when x"02" => - queue_dec <= BUS_DATA_IN; - - when x"03" => - max_packet <= BUS_DATA_IN; - - when x"04" => - max_frame <= BUS_DATA_IN(15 downto 0); - - when x"05" => - if (BUS_DATA_IN = x"0000_0000") then - use_gbe <= '0'; - else - use_gbe <= '1'; - end if; - - when x"06" => - if (BUS_DATA_IN = x"0000_0000") then - use_trbnet <= '0'; - else - use_trbnet <= '1'; - end if; - - when x"07" => - if (BUS_DATA_IN = x"0000_0000") then - use_multievents <= '0'; - else - use_multievents <= '1'; - end if; - - -- gk 26.04.10 - when x"08" => - readout_ctr <= BUS_DATA_IN(23 downto 0); - readout_ctr_valid <= '1'; - - -- gk 28.04.10 - when x"09" => - delay <= BUS_DATA_IN; - - when x"0a" => - DBG_FIFO_RD_EN_OUT <= '1'; - - -- gk 20.07.10 - when x"0b" => - min_packet <= BUS_DATA_IN; - - -- gk 21.07.10 - when x"0c" => - if (BUS_DATA_IN = x"0000_0000") then - allow_large <= '0'; - else - allow_large <= '1'; - end if; - - -- gk 09.12.10 - when x"0d" => - frame_delay <= BUS_DATA_IN; - - when x"0e" => - allow_rx <= BUS_DATA_IN(0); - - when x"0f" => - allowed_types <= BUS_DATA_IN; - - when x"10" => - vlan_id <= BUS_DATA_IN; - - when x"11" => - allowed_ip <= BUS_DATA_IN; - - when x"12" => - allowed_udp <= BUS_DATA_IN; - - -- gk 28.09.10 - when x"fe" => - if (BUS_DATA_IN = x"ffff_ffff") then - reset_fifo <= '1'; - else - reset_fifo <= '0'; - end if; - - when x"ff" => - if (BUS_DATA_IN = x"ffff_ffff") then - reset_values <= '1'; - else - reset_values <= '0'; - end if; - - when others => - subevent_id <= subevent_id; - subevent_dec <= subevent_dec; - queue_dec <= queue_dec; - max_packet <= max_packet; - min_packet <= min_packet; - max_frame <= max_frame; - use_gbe <= use_gbe; - use_trbnet <= use_trbnet; - use_multievents <= use_multievents; - reset_values <= reset_values; - readout_ctr <= readout_ctr; -- gk 26.04.10 - readout_ctr_valid <= readout_ctr_valid; -- gk 26.04.10 - delay <= delay; -- gk 28.04.10 - DBG_FIFO_RD_EN_OUT <= '0'; - allow_large <= allow_large; - reset_fifo <= reset_fifo; -- gk 28.09.10 - allow_rx <= allow_rx; - frame_delay <= frame_delay; - allowed_types <= allowed_types; - vlan_id <= vlan_id; - allowed_ip <= allowed_ip; - allowed_udp <= allowed_udp; - - end case; - else - reset_values <= '0'; - readout_ctr_valid <= '0'; -- gk 26.04.10 - --reset_fifo <= '0'; -- gk 28.09.10 - end if; - end if; -end process WRITE_PROC; - --- gk 26.04.10 -READ_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - data_out <= (others => '0'); - elsif (BUS_READ_EN_IN = '1') then - case BUS_ADDR_IN is - - when x"00" => - data_out <= subevent_id; - - when x"01" => - data_out <= subevent_dec; - - when x"02" => - data_out <= queue_dec; - - when x"03" => - data_out <= max_packet; - - when x"04" => - data_out(15 downto 0) <= max_frame; - data_out(31 downto 16) <= (others => '0'); - - when x"05" => - if (use_gbe = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - when x"06" => - if (use_trbnet = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - when x"07" => - if (use_multievents = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - when x"08" => - data_out <= GBE_TRIG_NR_IN; - - when x"09" => - data_out <= delay; - - when x"0b" => - data_out <= min_packet; - - -- gk 21.07.10 - when x"0c" => - if (allow_large = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - -- gk 09.12.10 - when x"0d" => - data_out <= frame_delay; - - - when x"0e" => - data_out(0) <= allow_rx; - data_out(31 downto 1) <= (others => '0'); - - when x"0f" => - data_out <= allowed_types; - - when x"10" => - data_out <= vlan_id; - - when x"11" => - data_out <= allowed_ip; - - when x"12" => - data_out <= allowed_udp; - - -- gk 01.06.10 - --when x"e0" => - -- data_out <= DBG_IPU2GBE1_IN; - - --when x"e1" => - -- data_out <= DBG_IPU2GBE2_IN; - - --when x"e2" => - -- data_out <= DBG_PC1_IN; - - --when x"e3" => - -- data_out <= DBG_PC2_IN; - - --when x"e4" => - -- data_out <= DBG_FC1_IN; - - --when x"e5" => - -- data_out <= DBG_FC2_IN; - - --when x"e6" => - -- data_out <= DBG_FT1_IN; - - --when x"e7" => - -- data_out <= DBG_FT2_IN; - - --when x"e8" => - -- data_out(15 downto 0) <= DBG_FIFO_Q_IN; - -- data_out(31 downto 16) <= (others => '0'); - - --when x"e9" => - -- data_out <= DBG_IPU2GBE3_IN; - - --when x"ea" => - -- data_out <= DBG_IPU2GBE4_IN; - - --when x"eb" => - -- data_out <= DBG_IPU2GBE5_IN; - - --when x"ec" => - -- data_out <= DBG_IPU2GBE6_IN; - - --when x"ed" => - -- data_out <= DBG_IPU2GBE7_IN; - - --when x"ee" => - -- data_out <= DBG_IPU2GBE8_IN; - - --when x"ef" => - -- data_out <= DBG_IPU2GBE9_IN; - - --when x"f0" => - -- data_out <= DBG_IPU2GBE10_IN; - - --when x"f1" => - -- data_out <= DBG_IPU2GBE11_IN; - - --when x"f2" => - -- data_out <= DBG_IPU2GBE12_IN; - - --when x"f3" => - -- data_out <= MONITOR_BYTES_IN; - - --when x"f4" => - -- data_out <= MONITOR_SENT_IN; - - --when x"f5" => - -- data_out <= MONITOR_DROPPED_IN; - - --when x"f6" => - -- data_out <= MONITOR_SM_IN; - - --when x"f7" => - -- data_out <= MONITOR_LR_IN; - - --when x"f8" => - -- data_out <= MONITOR_HDR_IN; - - --when x"f9" => - -- data_out <= MONITOR_FIFOS_IN; - - --when x"fa" => - -- data_out <= MONITOR_DISCFRM_IN; - - --when x"fb" => - -- data_out <= MONITOR_LINK_DWN_IN; - - --when x"fc" => - -- data_out <= MONITOR_EMPTY_IN; - - --when x"d1" => - -- data_out <= DBG_FR_IN; - - --when x"d2" => - -- data_out <= DBG_RC_IN; - - --when x"d4" => - -- data_out <= DBG_TC_IN; - - -- **** transmit section - - when x"90" => - data_out <= DBG_FT2_IN; - - -- **** receive debug section - - when x"a0" => - data_out <= DBG_FR_IN(31 downto 0); -- received frames from tsmac | state machine | fifos status - - when x"a1" => - data_out <= DBG_FR_IN(63 downto 32); -- dropped | accepted frames - - when x"a2" => - data_out <= MONITOR_RX_FRAMES_IN; - - when x"a3" => - data_out <= MONITOR_RX_BYTES_IN; - - when x"a4" => - data_out <= MONITOR_RX_BYTES_R_IN; - - when x"a5" => - data_out <= DBG_MC_IN(31 downto 0); - - when x"a6" => - data_out <= g_MY_IP; - - when x"a7" => - data_out <= DBG_FR_IN(95 downto 64); -- ok | error frames - - - -- *** debug of response constructors - - -- ARP - when x"b0" => - data_out(15 downto 0) <= DBG_SELECT_REC_IN(1 * 16 - 1 downto 0 * 16); - data_out(31 downto 16) <= DBG_SELECT_SENT_IN(1 * 16 - 1 downto 0 * 16); - when x"b1" => - data_out <= DBG_SELECT_PROTOS_IN(1 * 32 - 1 downto 0 * 32); - - -- DHCP - when x"b2" => - data_out(15 downto 0) <= DBG_SELECT_REC_IN(2 * 16 - 1 downto 1 * 16); - data_out(31 downto 16) <= DBG_SELECT_SENT_IN(2 * 16 - 1 downto 1 * 16); - when x"b3" => - data_out <= DBG_SELECT_PROTOS_IN(1 * 32 - 1 downto 0 * 32); - - -- PING - when x"b4" => - data_out(15 downto 0) <= DBG_SELECT_REC_IN(3 * 16 - 1 downto 2 * 16); - data_out(31 downto 16) <= DBG_SELECT_SENT_IN(3 * 16 - 1 downto 2 * 16); - when x"b5" => - data_out <= DBG_SELECT_PROTOS_IN(3 * 32 - 1 downto 2 * 32); - - -- Test1a - when x"b6" => - data_out(15 downto 0) <= DBG_SELECT_REC_IN(4 * 16 - 1 downto 3 * 16); - data_out(31 downto 16) <= DBG_SELECT_SENT_IN(4 * 16 - 1 downto 3 * 16); - when x"b7" => - data_out <= DBG_SELECT_PROTOS_IN(4 * 32 - 1 downto 3 * 32); - - -- Test1b - when x"b8" => - data_out(15 downto 0) <= DBG_SELECT_REC_IN(5 * 16 - 1 downto 4 * 16); - data_out(31 downto 16) <= DBG_SELECT_SENT_IN(5 * 16 - 1 downto 4 * 16); - when x"b9" => - data_out <= DBG_SELECT_PROTOS_IN(5 * 32 - 1 downto 4 * 32); - - -- **** end of received debug section - - when others => - data_out <= (others => '0'); - end case; - end if; - end if; -end process READ_PROC; - -end architecture; diff --git a/gbe2_ecp3/trb_net16_gbe_transmit_control.vhd b/gbe2_ecp3/trb_net16_gbe_transmit_control.vhd deleted file mode 100644 index 825ee80..0000000 --- a/gbe2_ecp3/trb_net16_gbe_transmit_control.vhd +++ /dev/null @@ -1,135 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_protocols.all; - ---******** --- doing shit right now - -entity trb_net16_gbe_transmit_control is -port ( - CLK : in std_logic; - RESET : in std_logic; - --- signal to/from main controller - MC_TRANSMIT_CTRL_IN : in std_logic; - MC_DATA_IN : in std_logic_vector(8 downto 0); - MC_WR_EN_IN : in std_logic; - MC_DATA_NOT_VALID_IN : in std_logic; - MC_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - MC_FRAME_TYPE_IN : in std_logic_vector(15 downto 0); - - MC_DEST_MAC_IN : in std_logic_vector(47 downto 0); - MC_DEST_IP_IN : in std_logic_vector(31 downto 0); - MC_DEST_UDP_IN : in std_logic_vector(15 downto 0); - MC_SRC_MAC_IN : in std_logic_vector(47 downto 0); - MC_SRC_IP_IN : in std_logic_vector(31 downto 0); - MC_SRC_UDP_IN : in std_logic_vector(15 downto 0); - - MC_IP_PROTOCOL_IN : in std_logic_vector(7 downto 0); - MC_IDENT_IN : in std_logic_vector(15 downto 0); - - MC_IP_SIZE_IN : in std_logic_vector(15 downto 0); - MC_UDP_SIZE_IN : in std_logic_vector(15 downto 0); - MC_FLAGS_OFFSET_IN : in std_logic_vector(15 downto 0); - - MC_FC_H_READY_OUT : out std_logic; - MC_FC_READY_OUT : out std_logic; - MC_FC_WR_EN_IN : in std_logic; - - MC_BUSY_OUT : out std_logic; - MC_TRANSMIT_DONE_OUT : out std_logic; - --- signal to/from frame constructor - FC_DATA_OUT : out std_logic_vector(7 downto 0); - FC_WR_EN_OUT : out std_logic; - FC_READY_IN : in std_logic; - FC_H_READY_IN : in std_logic; - FC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - FC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_IDENT_OUT : out std_logic_vector(15 downto 0); -- internal packet counter - FC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - FC_SOD_OUT : out std_logic; - FC_EOD_OUT : out std_logic; - FC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - - DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_transmit_control; - - -architecture trb_net16_gbe_transmit_control of trb_net16_gbe_transmit_control is - -begin - -SYNC_PROC : process(CLK) -begin - if rising_edge(CLK) then - - MC_FC_H_READY_OUT <= FC_H_READY_IN; - MC_FC_READY_OUT <= FC_READY_IN; - - FC_FRAME_TYPE_OUT <= MC_FRAME_TYPE_IN; - - FC_DATA_OUT <= MC_DATA_IN(7 downto 0); - FC_IP_PROTOCOL_OUT <= MC_IP_PROTOCOL_IN; - - if (MC_TRANSMIT_CTRL_IN = '1') then - FC_SOD_OUT <= '1'; - else - FC_SOD_OUT <= '0'; - end if; - - if (MC_DATA_IN(8) = '1') then - FC_EOD_OUT <= '1'; - else - FC_EOD_OUT <= '0'; - end if; - - if (MC_FRAME_TYPE_IN = x"0008") then - FC_IP_SIZE_OUT <= MC_IP_SIZE_IN; - FC_UDP_SIZE_OUT <= MC_UDP_SIZE_IN; - else - FC_IP_SIZE_OUT <= MC_FRAME_SIZE_IN; - FC_UDP_SIZE_OUT <= MC_FRAME_SIZE_IN; - end if; - - - if (MC_DATA_NOT_VALID_IN = '0' and MC_WR_EN_IN = '1') then - FC_WR_EN_OUT <= '1'; - else - FC_WR_EN_OUT <= '0'; - end if; - - FC_FLAGS_OFFSET_OUT <= MC_FLAGS_OFFSET_IN; - - DEST_MAC_ADDRESS_OUT <= MC_DEST_MAC_IN; - DEST_IP_ADDRESS_OUT <= MC_DEST_IP_IN; - DEST_UDP_PORT_OUT <= MC_DEST_UDP_IN; - SRC_MAC_ADDRESS_OUT <= MC_SRC_MAC_IN; - SRC_IP_ADDRESS_OUT <= MC_SRC_IP_IN; - SRC_UDP_PORT_OUT <= MC_SRC_UDP_IN; - - FC_IDENT_OUT <= MC_IDENT_IN; - end if; -end process SYNC_PROC; - -end trb_net16_gbe_transmit_control; - - diff --git a/gbe2_ecp3/trb_net16_gbe_transmit_control2.vhd b/gbe2_ecp3/trb_net16_gbe_transmit_control2.vhd deleted file mode 100644 index d2a4963..0000000 --- a/gbe2_ecp3/trb_net16_gbe_transmit_control2.vhd +++ /dev/null @@ -1,311 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_protocols.all; - ---******** --- performs response constructors readout and splitting into frames - -entity trb_net16_gbe_transmit_control2 is -port ( - CLK : in std_logic; - RESET : in std_logic; - --- signal to/from main controller - TC_DATAREADY_IN : in std_logic; - TC_RD_EN_OUT : out std_logic; - TC_DATA_IN : in std_logic_vector(7 downto 0); - TC_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - TC_FRAME_TYPE_IN : in std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_IN : in std_logic_vector(7 downto 0); - TC_DEST_MAC_IN : in std_logic_vector(47 downto 0); - TC_DEST_IP_IN : in std_logic_vector(31 downto 0); - TC_DEST_UDP_IN : in std_logic_vector(15 downto 0); - TC_SRC_MAC_IN : in std_logic_vector(47 downto 0); - TC_SRC_IP_IN : in std_logic_vector(31 downto 0); - TC_SRC_UDP_IN : in std_logic_vector(15 downto 0); - TC_TRANSMISSION_DONE_OUT : out std_logic; - TC_IDENT_IN : in std_logic_vector(15 downto 0); - TC_MAX_FRAME_IN : in std_logic_vector(15 downto 0); - --- signal to/from frame constructor - FC_DATA_OUT : out std_logic_vector(7 downto 0); - FC_WR_EN_OUT : out std_logic; - FC_READY_IN : in std_logic; - FC_H_READY_IN : in std_logic; - FC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - FC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_IDENT_OUT : out std_logic_vector(15 downto 0); -- internal packet counter - FC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - FC_SOD_OUT : out std_logic; - FC_EOD_OUT : out std_logic; - FC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - - DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - - MONITOR_TX_PACKETS_OUT : out std_logic_vector(31 downto 0) -); -end trb_net16_gbe_transmit_control2; - - -architecture trb_net16_gbe_transmit_control2 of trb_net16_gbe_transmit_control2 is - -attribute syn_encoding : string; - -type transmit_states is (IDLE, PREPARE_HEADERS, WAIT_FOR_H, TRANSMIT, SEND_ONE, SEND_TWO, CLOSE, WAIT_FOR_TRANS, DIVIDE, CLEANUP); -signal transmit_current_state, transmit_next_state : transmit_states; -attribute syn_encoding of transmit_current_state : signal is "onehot"; - -signal tc_rd, tc_rd_q, tc_rd_qq : std_logic; -signal local_end : std_logic_vector(15 downto 0); - -signal actual_frame_bytes, full_packet_size, ip_size, packet_loaded_bytes : std_logic_vector(15 downto 0); -signal go_to_divide, more_fragments : std_logic; -signal first_frame : std_logic; -signal mon_packets_sent_ctr : std_logic_vector(31 downto 0); - -begin - -TRANSMIT_MACHINE_PROC : process(RESET, CLK) -begin - if RESET = '1' then - transmit_current_state <= IDLE; - elsif rising_edge(CLK) then - transmit_current_state <= transmit_next_state; - end if; -end process TRANSMIT_MACHINE_PROC; - -TRANSMIT_MACHINE : process(transmit_current_state, FC_H_READY_IN, TC_DATAREADY_IN, FC_READY_IN, local_end, TC_MAX_FRAME_IN, actual_frame_bytes, go_to_divide) -begin - case transmit_current_state is - - when IDLE => - if (TC_DATAREADY_IN = '1') then - transmit_next_state <= PREPARE_HEADERS; - else - transmit_next_state <= IDLE; - end if; - - when PREPARE_HEADERS => - transmit_next_state<= WAIT_FOR_H; - - when WAIT_FOR_H => - if (FC_H_READY_IN = '1') then - transmit_next_state <= TRANSMIT; - else - transmit_next_state <= WAIT_FOR_H; - end if; - - when TRANSMIT => - if (local_end = x"0000") then - transmit_next_state <= SEND_ONE; - else - if (actual_frame_bytes = TC_MAX_FRAME_IN - x"1") then - transmit_next_state <= SEND_ONE; - else - transmit_next_state <= TRANSMIT; - end if; - end if; - - when SEND_ONE => - transmit_next_state <= SEND_TWO; - - when SEND_TWO => - transmit_next_state <= CLOSE; - - when CLOSE => - transmit_next_state <= WAIT_FOR_TRANS; - - when WAIT_FOR_TRANS => - if (FC_READY_IN = '1') then - if (go_to_divide = '1') then - transmit_next_state <= DIVIDE; - else - transmit_next_state <= CLEANUP; - end if; - else - transmit_next_state <= WAIT_FOR_TRANS; - end if; - - when DIVIDE => - transmit_next_state <= PREPARE_HEADERS; - - when CLEANUP => - transmit_next_state <= IDLE; - - end case; -end process TRANSMIT_MACHINE; - -tc_rd <= '1' when transmit_current_state = TRANSMIT else '0'; -TC_RD_EN_OUT <= tc_rd; - -SYNC_PROC : process(CLK) -begin - if rising_edge(CLK) then - tc_rd_q <= tc_rd; - tc_rd_qq <= tc_rd_q; - FC_WR_EN_OUT <= tc_rd_qq; - end if; -end process SYNC_PROC; - -ACTUAL_FRAME_BYTES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (transmit_current_state = IDLE or transmit_current_state = DIVIDE) then - actual_frame_bytes <= (others => '0'); - elsif (transmit_current_state = TRANSMIT) then - actual_frame_bytes <= actual_frame_bytes + x"1"; - else - actual_frame_bytes <= actual_frame_bytes; - end if; - end if; -end process ACTUAL_FRAME_BYTES_PROC; - -GO_TO_DIVIDE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (transmit_current_state = IDLE or transmit_current_state = DIVIDE) then - go_to_divide <= '0'; - elsif (transmit_current_state = TRANSMIT and actual_frame_bytes = TC_MAX_FRAME_IN - x"1") then - go_to_divide <= '1'; --- elsif (transmit_current_state = SEND_ONE and full_packet_size < packet_loaded_bytes - x"1") then --- go_to_divide <= '1'; --- elsif (transmit_current_state = SEND_TWO and full_packet_size < packet_loaded_bytes - x"1") then --- go_to_divide <= '1'; - elsif (transmit_current_state = SEND_ONE and full_packet_size = packet_loaded_bytes) then - go_to_divide <= '0'; - else - go_to_divide <= go_to_divide; - end if; - end if; -end process GO_TO_DIVIDE_PROC; - -LOCAL_END_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (transmit_current_state = IDLE and TC_DATAREADY_IN = '1') then - local_end <= TC_FRAME_SIZE_IN - x"1"; - full_packet_size <= TC_FRAME_SIZE_IN; - elsif (transmit_current_state = TRANSMIT) then - local_end <= local_end - x"1"; - full_packet_size <= full_packet_size; - else - local_end <= local_end; - full_packet_size <= full_packet_size; - end if; - end if; -end process LOCAL_END_PROC; - -FC_DATA_OUT <= TC_DATA_IN; -FC_SOD_OUT <= '1' when transmit_current_state = WAIT_FOR_H else '0'; -FC_EOD_OUT <= '1' when transmit_current_state = CLOSE else '0'; - -process(CLK) -begin - if rising_edge(CLK) then - if (transmit_current_state = PREPARE_HEADERS) then - if (local_end >= TC_MAX_FRAME_IN) then - ip_size <= TC_MAX_FRAME_IN; - else - ip_size <= local_end + x"1"; - end if; - else - ip_size <= ip_size; - end if; - end if; -end process; -FC_IP_SIZE_OUT <= ip_size; -FC_UDP_SIZE_OUT <= full_packet_size; --TC_FRAME_SIZE_IN; - -FC_FLAGS_OFFSET_OUT(15 downto 14) <= "00"; -FC_FLAGS_OFFSET_OUT(13) <= more_fragments; -MORE_FRAGMENTS_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (transmit_current_state = PREPARE_HEADERS) then - if (local_end >= TC_MAX_FRAME_IN) then - more_fragments <= '1'; - else - more_fragments <= '0'; - end if; - else - more_fragments <= more_fragments; - end if; - end if; -end process MORE_FRAGMENTS_PROC; -FC_FLAGS_OFFSET_OUT(12 downto 0) <= ('0' & x"000") when first_frame = '1' else (packet_loaded_bytes(15 downto 3) + x"1"); - -PACKET_LOADED_BYTES_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (transmit_current_state = IDLE) then - packet_loaded_bytes <= x"0000"; - elsif (transmit_current_state = TRANSMIT) then - packet_loaded_bytes <= packet_loaded_bytes + x"1"; --- elsif (transmit_current_state = DIVIDE and first_frame = '1') then --- packet_loaded_bytes <= packet_loaded_bytes + x"8"; -- 8bytes for udp headers added for the first offset - else - packet_loaded_bytes <= packet_loaded_bytes; - end if; - end if; -end process PACKET_LOADED_BYTES_PROC; - -FIRST_FRAME_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (transmit_current_state = IDLE) then - first_frame <= '1'; - elsif (transmit_current_state = DIVIDE) then - first_frame <= '0'; - else - first_frame <= first_frame; - end if; - end if; -end process FIRST_FRAME_PROC; - - -TC_TRANSMISSION_DONE_OUT <= '1' when transmit_current_state = CLEANUP else '0'; - -FC_FRAME_TYPE_OUT <= TC_FRAME_TYPE_IN; -FC_IP_PROTOCOL_OUT <= TC_IP_PROTOCOL_IN; -DEST_MAC_ADDRESS_OUT <= TC_DEST_MAC_IN; -DEST_IP_ADDRESS_OUT <= TC_DEST_IP_IN; -DEST_UDP_PORT_OUT <= TC_DEST_UDP_IN; -SRC_MAC_ADDRESS_OUT <= TC_SRC_MAC_IN; -SRC_IP_ADDRESS_OUT <= TC_SRC_IP_IN; -SRC_UDP_PORT_OUT <= TC_SRC_UDP_IN; -FC_IDENT_OUT <= TC_IDENT_IN; - --- monitoring - -process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - mon_packets_sent_ctr <= (others => '0'); - elsif (transmit_current_state = CLEANUP) then - mon_packets_sent_ctr <= mon_packets_sent_ctr + x"1"; - else - mon_packets_sent_ctr <= mon_packets_sent_ctr; - end if; - end if; -end process; - -MONITOR_TX_PACKETS_OUT <= mon_packets_sent_ctr; - -end trb_net16_gbe_transmit_control2; - - diff --git a/gbe2_ecp3/trb_net16_gbe_type_validator.vhd b/gbe2_ecp3/trb_net16_gbe_type_validator.vhd deleted file mode 100644 index 23bab0d..0000000 --- a/gbe2_ecp3/trb_net16_gbe_type_validator.vhd +++ /dev/null @@ -1,141 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -use work.trb_net_gbe_components.all; -use work.trb_net_gbe_protocols.all; - - ---******** --- contains valid frame types codes and performs checking of type and vlan id --- by default there is place for 32 frame type which is hardcoded value --- due to allow register which is set by slow control - -entity trb_net16_gbe_type_validator is -port ( - CLK : in std_logic; -- 125MHz clock input - RESET : in std_logic; - -- ethernet level - FRAME_TYPE_IN : in std_logic_vector(15 downto 0); -- recovered frame type - SAVED_VLAN_ID_IN : in std_logic_vector(15 downto 0); -- recovered vlan id - ALLOWED_TYPES_IN : in std_logic_vector(31 downto 0); -- signal from gbe_setup - VLAN_ID_IN : in std_logic_vector(31 downto 0); -- two values from gbe setup - - -- IP level - IP_PROTOCOLS_IN : in std_logic_vector(7 downto 0); - ALLOWED_IP_PROTOCOLS_IN : in std_logic_vector(31 downto 0); - - -- UDP level - UDP_PROTOCOL_IN : in std_logic_vector(15 downto 0); - ALLOWED_UDP_PROTOCOLS_IN : in std_logic_vector(31 downto 0); - - VALID_OUT : out std_logic -); -end trb_net16_gbe_type_validator; - - -architecture trb_net16_gbe_type_validator of trb_net16_gbe_type_validator is - ---attribute HGROUP : string; ---attribute HGROUP of trb_net16_gbe_type_validator : architecture is "GBE_MAIN_group"; - -signal result : std_logic_vector(c_MAX_FRAME_TYPES - 1 downto 0); -signal ip_result : std_logic_vector(c_MAX_IP_PROTOCOLS - 1 downto 0); -signal udp_result : std_logic_vector(c_MAX_UDP_PROTOCOLS - 1 downto 0); -signal partially_valid : std_logic; -- only protocols, vlan to be checked -signal zeros : std_logic_vector(c_MAX_FRAME_TYPES - 1 downto 0); - -begin - - zeros <= (others => '0'); - --- DO NOT TOUCH -IP_RESULTS_GEN : for i in 0 to c_MAX_IP_PROTOCOLS - 1 generate -process(CLK) -begin - if rising_edge(CLK) then - if IP_PROTOCOLS(i) = IP_PROTOCOLS_IN and ALLOWED_IP_PROTOCOLS_IN(i) = '1' then - ip_result(i) <= '1'; - else - ip_result(i) <= '0'; - end if; - end if; -end process; -end generate IP_RESULTS_GEN; - -UDP_RESULTS_GEN : for i in 0 to c_MAX_UDP_PROTOCOLS - 1 generate -process(CLK) -begin - if rising_edge(CLK) then - if UDP_PROTOCOLS(i) = UDP_PROTOCOL_IN and ALLOWED_UDP_PROTOCOLS_IN(i) = '1' then - udp_result(i) <= '1'; - else - udp_result(i) <= '0'; - end if; - end if; -end process; -end generate UDP_RESULTS_GEN; - - -RESULT_GEN : for i in 0 to c_MAX_FRAME_TYPES - 1 generate -process(CLK) -begin - if rising_edge(CLK) then - if FRAME_TYPES(i) = FRAME_TYPE_IN and ALLOWED_TYPES_IN(i) = '1' then - result(i) <= '1'; - else - result(i) <= '0'; - end if; - end if; -end process; -end generate RESULT_GEN; - -PARTIALLY_VALID_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - partially_valid <= '0'; - elsif (FRAME_TYPE_IN = x"0800") then -- ip frame - if (IP_PROTOCOLS_IN = x"11") then -- in case of udp inside ip - partially_valid <= or_all(udp_result); - elsif (IP_PROTOCOLS_IN = x"01" or IP_PROTOCOLS_IN = x"dd" or IP_PROTOCOLS_IN = x"ee") then -- in case of ICMP - partially_valid <= '1'; - else -- do not accept other protocols than udp and icmp inside ip - partially_valid <= '0'; - end if; - elsif (result /= zeros) then-- other frame - partially_valid <= '1'; - else - partially_valid <= '0'; - end if; - end if; -end process PARTIALLY_VALID_PROC; - -VALID_OUT_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (partially_valid = '1') then - if (SAVED_VLAN_ID_IN = x"0000") then - VALID_OUT <= '1'; - elsif (VLAN_ID_IN = x"0000_0000") then - VALID_OUT <= '0'; - elsif (SAVED_VLAN_ID_IN = VLAN_ID_IN(15 downto 0) or SAVED_VLAN_ID_IN = VLAN_ID_IN(31 downto 16)) then - VALID_OUT <= '1'; - else - VALID_OUT <= '0'; - end if; - else - VALID_OUT <= '0'; - end if; - end if; -end process VALID_OUT_PROC; - -end trb_net16_gbe_type_validator; - - diff --git a/gbe2_ecp3/trb_net16_ipu2gbe.vhd b/gbe2_ecp3/trb_net16_ipu2gbe.vhd deleted file mode 100755 index 471956c..0000000 --- a/gbe2_ecp3/trb_net16_ipu2gbe.vhd +++ /dev/null @@ -1,1430 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; - -entity trb_net16_ipu2gbe is -port( - CLK : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- slow control interface - START_CONFIG_OUT : out std_logic; -- reconfigure MACs/IPs/ports/packet size - BANK_SELECT_OUT : out std_logic_vector(3 downto 0); -- configuration page address - CONFIG_DONE_IN : in std_logic; -- configuration finished - DATA_GBE_ENABLE_IN : in std_logic; -- IPU data is forwarded to GbE - DATA_IPU_ENABLE_IN : in std_logic; -- IPU data is forwarded to CTS / TRBnet - MULT_EVT_ENABLE_IN : in std_logic; - MAX_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- the maximum size of one HadesQueue -- gk 08.04.10 - MIN_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- gk 20.07.10 - READOUT_CTR_IN : in std_logic_vector(23 downto 0); -- gk 26.04.10 - READOUT_CTR_VALID_IN : in std_logic; -- gk 26.04.10 - -- PacketConstructor interface - ALLOW_LARGE_IN : in std_logic; -- gk 21.07.10 - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOS_OUT : out std_logic; -- gk 07.10.10 - PC_EOD_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_PADDING_OUT : out std_logic; - MONITOR_OUT : out std_logic_vector(223 downto 0); - DEBUG_OUT : out std_logic_vector(383 downto 0) -); -end entity; - -architecture trb_net16_ipu2gbe of trb_net16_ipu2gbe is - --- attribute HGROUP : string; --- attribute HGROUP of trb_net16_ipu2gbe : architecture is "GBE_ipu2gbe"; - -component fifo_32kx16x8_mb2 -port( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(8 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); - Empty : out std_logic; - AlmostEmpty : out std_logic; - Full : out std_logic; - AlmostFull : out std_logic -); -end component; - -type saveStates is (SIDLE, SAVE_EVT_ADDR, WAIT_FOR_DATA, SAVE_DATA, ADD_SUBSUB1, ADD_SUBSUB2, ADD_SUBSUB3, ADD_SUBSUB4, TERMINATE, SCLOSE, RESET_FIFO); -signal saveCurrentState, saveNextState : saveStates; -signal state : std_logic_vector(3 downto 0); -signal data_req_comb : std_logic; -signal data_req : std_logic; -- request data signal, will be used for fee_read generation -signal rst_saved_ctr_comb : std_logic; -signal rst_saved_ctr : std_logic; - -signal fee_read_comb : std_logic; -signal fee_read : std_logic; -- fee_read signal -signal saved_ctr : std_logic_vector(16 downto 0); -signal ce_saved_ctr : std_logic; - --- header data -signal cts_rnd : std_logic_vector(15 downto 0); -signal cts_rnd_saved : std_logic; -signal cts_trg : std_logic_vector(15 downto 0); -signal cts_trg_saved : std_logic; -signal cts_len : std_logic_vector(16 downto 0); -signal cts_len_saved : std_logic; - --- CTS interface -signal cts_error_pattern : std_logic_vector(31 downto 0); -signal cts_length : std_logic_vector(15 downto 0); -signal cts_readout_finished : std_logic; -signal cts_dataready : std_logic; -signal cts_data : std_logic_vector(31 downto 0); - --- Split FIFO signals -signal sf_data : std_logic_vector(15 downto 0); -signal sf_wr_en_comb : std_logic; -signal sf_wr_en : std_logic; -- write signal for FIFO -signal sf_rd_en_comb : std_logic; -signal sf_rd_en : std_logic; -- read signal for FIFO -signal sf_wcnt : std_logic_vector(15 downto 0); -signal sf_rcnt : std_logic_vector(16 downto 0); -signal sf_empty : std_logic; -signal sf_aempty : std_logic; -signal sf_full : std_logic; -signal sf_afull : std_logic; - -------------------------------------------------------------------- -type loadStates is (LIDLE, INIT, REMOVE, DECIDE, CALCA, CALCB, LOAD, PAD0, PAD1, PAD2, PAD3, LOAD_SUBSUB, CALCC, CLOSE, WAIT_PC, DROP, WAIT_TO_REMOVE, DROP_SUBSUB, PAUSE_BEFORE_DROP1, PAUSE_BEFORE_DROP2); -signal loadCurrentState, loadNextState : loadStates; -signal state2 : std_logic_vector(3 downto 0); - -signal rem_ctr : std_logic_vector(3 downto 0); -- counter for stripping / storing header data -signal rst_rem_ctr_comb : std_logic; -signal rst_rem_ctr : std_logic; -- reset the remove counter -signal rst_regs_comb : std_logic; -signal rst_regs : std_logic; -- reset storage registers -signal rem_phase_comb : std_logic; -signal rem_phase : std_logic; -- header remove phase -signal data_phase_comb : std_logic; -signal data_phase : std_logic; -- data transport phase from split fifo to PC -signal pad_phase_comb : std_logic; -signal pad_phase : std_logic; -- padding phase -signal calc_pad_comb : std_logic; -signal calc_pad : std_logic; -- check if padding bytes need to be added to PC_SUB_SIZE -signal pad_data_comb : std_logic; -signal pad_data : std_logic; -- reset PC_DATA register to known padding byte value - -signal pc_sos_comb : std_logic; -signal pc_sos : std_logic; -- start of data signal -signal pc_eod_comb : std_logic; -signal pc_eod : std_logic; -- end of data signal - -signal ce_rem_ctr_comb : std_logic; -signal ce_rem_ctr : std_logic; -- count enable for remove counter -signal remove_done_comb : std_logic; -signal remove_done : std_logic; -- end of header stripping process -signal read_done_comb : std_logic; -signal read_done : std_logic; -- end of data phase (read phase from SF) - -signal pc_data : std_logic_vector(7 downto 0); -signal pc_data_q : std_logic_vector(7 downto 0); -signal pc_trig_nr : std_logic_vector(15 downto 0); -signal pc_sub_size : std_logic_vector(17 downto 0); -signal read_size : std_logic_vector(17 downto 0); -- number of byte to be read from split fifo -signal padding_needed : std_logic; -signal pc_wr_en_comb : std_logic; -signal pc_wr_en_q : std_logic; -signal pc_wr_en_qq : std_logic; -signal pc_wr_en_qqq : std_logic; -signal pc_eod_q : std_logic; - -signal debug : std_logic_vector(383 downto 0); - --- gk -signal bank_select : std_logic_vector(3 downto 0); -signal save_addr_comb : std_logic; -signal save_addr : std_logic; -signal addr_saved_comb : std_logic; -signal addr_saved : std_logic; -signal start_config : std_logic; -signal config_done : std_logic; -signal add_sub_state : std_logic; -signal add_sub_state_comb : std_logic; -signal add_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub : std_logic; -signal load_sub_comb : std_logic; -signal load_sub_done : std_logic; -signal load_sub_done_comb : std_logic; -signal load_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub_ctr_comb : std_logic; -signal actual_message_size : std_logic_vector(31 downto 0); -signal more_subevents : std_logic; -signal trig_random : std_logic_vector(7 downto 0); -signal readout_ctr : std_logic_vector(23 downto 0); -signal readout_ctr_lock : std_logic; -signal pc_trig_nr_q : std_logic_vector(31 downto 0); - --- gk 20.07.10 -signal inc_data_ctr : std_logic_vector(31 downto 0); -signal dropped_sm_events_ctr : std_logic_vector(31 downto 0); -signal dropped_lr_events_ctr : std_logic_vector(31 downto 0); -signal dropped_ctr : std_logic_vector(31 downto 0); --- gk 22.07.10 -signal headers_invalid : std_logic; -signal headers_invalid_ctr : std_logic_vector(31 downto 0); -signal cts_len_q : std_logic_vector(15 downto 0); -signal cts_trg_q : std_logic_vector(15 downto 0); -signal cts_rnd_q : std_logic_vector(15 downto 0); -signal first_run_trg : std_logic_vector(15 downto 0); -signal first_run_addr : std_logic_vector(15 downto 0); -signal first_run_lock : std_logic; -signal cts_addr : std_logic_vector(15 downto 0); -signal cts_addr_q : std_logic_vector(15 downto 0); -signal cts_addr_saved : std_logic; - --- gk 24.07.10 -signal save_eod : std_logic; -signal save_eod_comb : std_logic; - -signal load_eod : std_logic; -signal endpoint_addr : std_logic_vector(15 downto 0); -signal endp_addr_lock : std_logic; - -signal saved_events_ctr : std_logic_vector(15 downto 0); -signal loaded_events_ctr : std_logic_vector(15 downto 0); -signal constr_events_ctr : std_logic_vector(31 downto 0); -signal event_waiting : std_logic; - -signal drop_sub : std_logic; -signal drop_sub_comb : std_logic; -signal drop_event : std_logic; -signal drop_event_comb : std_logic; -signal drop_small : std_logic; -signal drop_large : std_logic; -signal drop_headers : std_logic; -signal drop_small_comb : std_logic; -signal drop_large_comb : std_logic; -signal drop_headers_comb : std_logic; -signal inc_trg_ctr : std_logic; -signal inc_trg_ctr_comb : std_logic; - -signal invalid_hsize_ctr : std_logic_vector(15 downto 0); -signal invalid_hsize_lock : std_logic; - -signal load_eod_q : std_logic; -signal read_size_q : std_logic_vector(17 downto 0); - --- gk 06.08.10 write to fifo only if gbe is enabled but keep the saving logic unblocked -signal sf_real_wr_en : std_logic; - --- gk 01.10.10 -signal found_empty_evt : std_logic; -signal found_empty_evt_comb : std_logic; -signal found_empty_evt_ctr : std_logic_vector(31 downto 0); - --- gk 06.10.10 -signal message_size : std_logic_vector(31 downto 0); - --- gk 07.12.10 -signal prev_bank_select : std_logic_vector(3 downto 0); -signal first_event : std_logic; - -signal reset_split_fifo : std_logic; - -signal input_data_ctr : std_logic_vector(31 downto 0); - -begin - -BANK_SELECT_OUT <= bank_select; -- gk 27.03.10 -START_CONFIG_OUT <= start_config; -- gk 27.03.10 -config_done <= CONFIG_DONE_IN; -- gk 29.03.10 - --- CTS interface signals -cts_error_pattern <= (others => '0'); -- FAKE - -cts_length <= x"0000"; -- length of data payload is always 0 -cts_data <= b"0001" & cts_rnd(11 downto 0) & cts_trg; -- reserved bits = '0', pack bit = '1' - -cts_readout_finished <= '1' when (saveCurrentState = SCLOSE) else '0'; - -cts_dataready <= '1' when ((saveCurrentState = SAVE_DATA) and (FEE_BUSY_IN = '0')) or (saveCurrentState = TERMINATE) - else '0'; - --- Byte swapping... done here. TAKE CARE! --- The split FIFO is in natural bus order (i.e. Motorola style, [15:0]). This means that the two bytes --- on the write side need to be swapped to appear in GbE style (i.e. Intel style) on the 8bit port. --- Please mind that PC_SUB_SIZE and PC_TRIG_NR stay in a human readable format, and need to be byteswapped --- for GbE inside the packet constructor. --- --- Long live the Endianess! - --- Sync all critical pathes -THE_SYNC_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - --sf_data <= FEE_DATA_IN; -- gk 27.03.10 moved out to the process below - sf_wr_en <= sf_wr_en_comb; - ce_rem_ctr <= ce_rem_ctr_comb; - sf_rd_en <= sf_rd_en_comb; - fee_read <= fee_read_comb; - read_done <= read_done_comb; - pc_eod_q <= pc_eod; - pc_wr_en_qqq <= pc_wr_en_qq; - pc_wr_en_qq <= pc_wr_en_q; - pc_wr_en_q <= pc_wr_en_comb; - end if; -end process THE_SYNC_PROC; - --- gk 27.03.10 data selector for sf to write the evt builder address on top of data -SF_DATA_PROC : process( CLK ) -begin - if( rising_edge(CLK) ) then - if (RESET = '1') then -- gk 31.05.10 - sf_data <= (others => '0'); - elsif( save_addr = '1' ) then - sf_data(3 downto 0) <= CTS_INFORMATION_IN(3 downto 0); -- only last 4 bits are the evt builder address - sf_data(15 downto 4) <= x"abc"; - -- gk 29.03.10 four entries to save the fee_status into sf for the subsubevent - elsif( (add_sub_state = '1') and (add_sub_ctr = x"0") ) then - sf_data <= x"0001"; -- gk 11.06.10 - elsif( (add_sub_state = '1') and (add_sub_ctr = x"1") ) then - sf_data <= x"5555"; -- gk 11.06.10 - elsif( (add_sub_state = '1') and (add_sub_ctr = x"2") ) then - sf_data <= FEE_STATUS_BITS_IN(31 downto 16); - elsif( (add_sub_state = '1') and (add_sub_ctr = x"3") ) then - sf_data <= FEE_STATUS_BITS_IN(15 downto 0); - else - sf_data <= FEE_DATA_IN; - end if; - end if; -end process SF_DATA_PROC; - --- combinatorial read signal for the FEE data interface, DO NOT USE DIRECTLY -fee_read_comb <= '1' when ( (sf_afull = '0') and (data_req = '1') ) --and (DATA_GBE_ENABLE_IN = '1') ) -- GbE enabled - else '0'; - --- combinatorial write signal for the split FIFO, DO NOT USE DIRECTLY -sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') ) or -- and (DATA_GBE_ENABLE_IN = '1') ) or -- GbE enabled - (save_addr = '1') or - (add_sub_state = '1') -- gk 29.03.10 save the subsubevent - else '0'; - --- gk 06.08.10 -sf_real_wr_en <= '1' when ((sf_wr_en = '1') and (DATA_GBE_ENABLE_IN = '1')) else '0'; - --- gk 27.03.10 do not count evt builder address as saved ipu bytes ---ce_saved_ctr <= sf_wr_en; -ce_saved_ctr <= '0' when addr_saved = '1' else sf_wr_en; - --- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO -saveMachineProc: process( CLK ) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saveCurrentState <= SIDLE; - data_req <= '0'; - rst_saved_ctr <= '0'; - save_addr <= '0'; -- gk 27.03.10 - addr_saved <= '0'; -- gk 27.03.10 - add_sub_state <= '0'; -- gk 29.03.10 - save_eod <= '0'; -- gk 25.07.10 - else - saveCurrentState <= saveNextState; - data_req <= data_req_comb; - rst_saved_ctr <= rst_saved_ctr_comb; - save_addr <= save_addr_comb; -- gk 27.03.10 - addr_saved <= addr_saved_comb; -- gk 27.03.10 - add_sub_state <= add_sub_state_comb; -- gk 29.03.10 - save_eod <= save_eod_comb; -- gk 25.07.10 - end if; - end if; -end process saveMachineProc; - -saveMachine: process( saveCurrentState, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN, input_data_ctr, MAX_MESSAGE_SIZE_IN) -begin - saveNextState <= SIDLE; - data_req_comb <= '0'; - rst_saved_ctr_comb <= '0'; - save_addr_comb <= '0'; -- gk 27.03.10 - addr_saved_comb <= '0'; -- gk 27.03.10 - add_sub_state_comb <= '0'; -- gk 29.03.10 - save_eod_comb <= '0'; -- gk 25.07.10 - case saveCurrentState is - when SIDLE => - state <= x"0"; - if (CTS_START_READOUT_IN = '1') then - saveNextState <= SAVE_EVT_ADDR; --WAIT_FOR_DATA; -- gk 27.03.10 - data_req_comb <= '1'; - rst_saved_ctr_comb <= '1'; - else - saveNextState <= SIDLE; - end if; - -- gk 27.03.10 - when SAVE_EVT_ADDR => - state <= x"5"; - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - save_addr_comb <= '1'; - when WAIT_FOR_DATA => - state <= x"1"; - if (FEE_BUSY_IN = '1') then - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - else - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - end if; - addr_saved_comb <= '1'; -- gk 27.03.10 - when SAVE_DATA => - state <= x"2"; - if (FEE_BUSY_IN = '0') then - saveNextState <= TERMINATE; - else - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - end if; - when TERMINATE => - state <= x"3"; - if (CTS_READ_IN = '1') then - saveNextState <= SCLOSE; - else - saveNextState <= TERMINATE; - end if; - when SCLOSE => - state <= x"4"; - if (CTS_START_READOUT_IN = '0') then - if (input_data_ctr > MAX_MESSAGE_SIZE_IN) then -- gk 06.11.2012 - saveNextState <= RESET_FIFO; - else - saveNextState <= ADD_SUBSUB1; --SIDLE; -- gk 29.03.10 - end if; - else - saveNextState <= SCLOSE; - end if; - -- gk 06.11.2012 - when RESET_FIFO => - saveNextState <= SIDLE; - state <= x"E"; - -- gk 29.03.10 new states during which the subsub bytes are saved - when ADD_SUBSUB1 => - state <= x"6"; - saveNextState <= ADD_SUBSUB2; - add_sub_state_comb <= '1'; - when ADD_SUBSUB2 => - state<= x"7"; - saveNextState <= ADD_SUBSUB3; - add_sub_state_comb <= '1'; - save_eod_comb <= '1'; - when ADD_SUBSUB3 => - state<= x"8"; - saveNextState <= ADD_SUBSUB4; - add_sub_state_comb <= '1'; - when ADD_SUBSUB4 => - state<= x"9"; - saveNextState <= SIDLE; - add_sub_state_comb <= '1'; - when others => - state <= x"f"; - saveNextState <= SIDLE; - end case; -end process saveMachine; - --- gk 06.11.2012 -INPUT_DATA_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1' or rst_saved_ctr = '1') then - input_data_ctr <= (others => '0'); - elsif (saveCurrentState = SAVE_DATA and sf_real_wr_en = '1') then - input_data_ctr(31 downto 1) <= input_data_ctr(31 downto 1) + x"1"; - end if; - end if; -end process INPUT_DATA_CTR_PROC; - --- gk 29.03.10 -ADD_SUB_CTR_PROC : process( CLK ) -begin - if( rising_edge( CLK ) ) then - if( (RESET = '1') or (rst_saved_ctr = '1') ) then - add_sub_ctr <= (others => '0'); - elsif( add_sub_state = '1' ) then - add_sub_ctr <= add_sub_ctr + 1; - end if; - end if; -end process ADD_SUB_CTR_PROC; - ---******** --- SAVE INCOMING EVENT HEADERS ---******** - --- Counter for header word storage -THE_CTS_SAVED_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - saved_ctr <= (others => '0'); - elsif( ce_saved_ctr = '1' ) then - saved_ctr <= saved_ctr + 1; - end if; - end if; -end process THE_CTS_SAVED_CTR; - --- save triggerRnd from incoming data for cts response -CTS_RND_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_rnd <= (others => '0'); - cts_rnd_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"000") and (sf_wr_en = '1') and (cts_rnd_saved = '0') ) then - cts_rnd <= sf_data; - cts_rnd_saved <= '1'; - end if; - end if; -end process CTS_RND_PROC; - --- save triggerNr from incoming data for cts response -CTS_TRG_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_trg <= (others => '0'); - cts_trg_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"001") and (sf_wr_en = '1') and (cts_trg_saved = '0') ) then - cts_trg <= sf_data; - cts_trg_saved <= '1'; - end if; - end if; -end process CTS_TRG_PROC; - --- save size from incoming data for cts response (future) and to get rid of padding -CTS_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_len <= (others => '0'); - cts_len_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"010") and (sf_wr_en = '1') and (cts_len_saved = '0') ) then - cts_len(16 downto 1) <= sf_data; -- change from 32b words to 16b words - cts_len(0) <= '0'; - elsif( (saved_ctr(2 downto 0) = b"011") and (cts_len_saved = '0') ) then - cts_len <= cts_len + x"4"; - cts_len_saved <= '1'; - end if; - end if; -end process CTS_SIZE_PROC; - --- gk 22.07.10 -CTS_ADDR_PROC : process(CLK) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_addr <= (others => '0'); - cts_addr_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"011") and (sf_wr_en = '1') and (cts_addr_saved = '0') ) then - cts_addr <= sf_data; - cts_addr_saved <= '1'; - end if; - end if; -end process CTS_ADDR_PROC; - ---****** --- SAVE FIRST EVENT HEADER VALUES ---****** - --- gk 22.07.10 -FIRST_RUN_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - first_run_trg <= (others => '0'); - first_run_addr <= (others => '0'); - first_run_lock <= '0'; - elsif (first_run_lock = '0') and (cts_addr_saved = '1') then - first_run_trg <= cts_trg; - first_run_addr <= cts_addr; - first_run_lock <= '1'; - -- important: value saved by saveMachine but incremented by loadMachine - elsif (first_run_lock = '1') and (inc_trg_ctr = '1') then - first_run_trg <= first_run_trg + x"1"; - end if; - end if; -end process FIRST_RUN_PROC; - --- gk 25.07.10 -SAVED_EVT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saved_events_ctr <= (others => '0'); - elsif (save_eod = '1') and (input_data_ctr < MAX_MESSAGE_SIZE_IN) then -- gk 06.11.2012 - saved_events_ctr <= saved_events_ctr + x"1"; - end if; - end if; -end process SAVED_EVT_CTR_PROC; - - --- gk 20.07.10 ---INC_DATA_CTR_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') or (rst_saved_ctr = '1') then --- inc_data_ctr <= (others => '0'); --- elsif (sf_wr_en = '1') and (data_req = '1') then --- inc_data_ctr(31 downto 1) <= inc_data_ctr(31 downto 1) + x"1"; --- end if; --- end if; ---end process INC_DATA_CTR_proc; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Split FIFO -THE_SPLIT_FIFO: fifo_32kx16x8_mb2 -port map( - -- Byte swapping for correct byte order on readout side of FIFO - Data(7 downto 0) => sf_data(15 downto 8), - Data(8) => '0', - Data(16 downto 9) => sf_data(7 downto 0), - Data(17) => save_eod, - WrClock => CLK, - RdClock => CLK, - WrEn => sf_real_wr_en, -- gk 06.08.10 --sf_wr_en, - RdEn => sf_rd_en, - Reset => reset_split_fifo, --RESET, -- gk 06.11.2012 - RPReset => reset_split_fifo, --RESET, -- gk 06.11.2012 - AmEmptyThresh => b"0000_0000_0000_0010", -- one byte ahead - AmFullThresh => b"111_1111_1110_1111", -- 0x7fef = 32751 - Q(7 downto 0) => pc_data, - Q(8) => load_eod, - WCNT => sf_wcnt, - RCNT => sf_rcnt, - Empty => sf_empty, - AlmostEmpty => sf_aempty, - Full => sf_full, - AlmostFull => sf_afull -); - -reset_split_fifo <= '1' when (saveCurrentState = RESET_FIFO or RESET = '1') else '0'; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- gk 25.07.10 -EVENT_WAITING_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - event_waiting <= '0'; - elsif (loaded_events_ctr /= saved_events_ctr) then - event_waiting <= '1'; - else - event_waiting <= '0'; - end if; - end if; -end process EVENT_WAITING_PROC; - --- write signal for PC data -pc_wr_en_comb <= '1' when ((data_phase = '1') and (sf_rd_en = '1')) or - (pad_phase = '1') or - ((load_sub = '1') and (sf_rd_en = '1')) or - ((drop_sub = '1') and (sf_rd_en = '1')) or - ((drop_event = '1') and (sf_rd_en = '1')) - else '0'; - -sf_rd_en_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and (remove_done = '0') ) or - --( (sf_aempty = '0') and (data_phase = '1') and (read_done = '0') ) or - ( (sf_aempty = '0') and (data_phase = '1') and (load_eod = '0') ) or -- gk 26.07.10 - ( (sf_aempty = '0') and (load_sub = '1') and (load_sub_done = '0') ) or -- gk 30.03.10 - ( (sf_aempty = '0') and (drop_event = '1') and (load_eod = '0') ) or - ( (sf_aempty = '0') and (drop_sub = '1') and (load_sub_done = '0') ) - else '0'; - -ce_rem_ctr_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and ( remove_done = '0') ) - else '0'; - --- FIFO data delay process (also forces padding bytes to known value) -THE_DATA_DELAY_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if( pad_data = '1' ) then - pc_data_q <= x"aa"; -- padding for 64bit - -- gk 21.07.10 - -- set the error flag if a broken packet is sent - elsif (drop_sub = '1') and (load_sub_ctr = x"3") then - pc_data_q <= pc_data(7 downto 3) & '1' & pc_data(1 downto 0); - else - pc_data_q <= pc_data; - end if; - end if; -end process THE_DATA_DELAY_PROC; - --- Statemachine for reading the data payload from the SPLIT_FIFO and feeding --- it into the packet constructor -loadMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loadCurrentState <= LIDLE; - rst_rem_ctr <= '0'; - rem_phase <= '0'; - calc_pad <= '0'; - data_phase <= '0'; - pad_phase <= '0'; - pc_sos <= '0'; - pc_eod <= '0'; - rst_regs <= '0'; - pad_data <= '0'; - load_sub <= '0'; -- gk 30.03.10 - drop_sub <= '0'; -- gk 25.07.10 - drop_event <= '0'; -- gk 25.07.10 - drop_small <= '0'; -- gk 25.07.10 - drop_large <= '0'; -- gk 25.07.10 - drop_headers <= '0'; -- gk 25.07.10 - inc_trg_ctr <= '0'; -- gk 26.07.10 - found_empty_evt <= '0'; -- gk 01.10.10 - else - loadCurrentState <= loadNextState; - rst_rem_ctr <= rst_rem_ctr_comb; - rem_phase <= rem_phase_comb; - calc_pad <= calc_pad_comb; - data_phase <= data_phase_comb; - pad_phase <= pad_phase_comb; - pc_sos <= pc_sos_comb; - pc_eod <= pc_eod_comb; - rst_regs <= rst_regs_comb; - pad_data <= pad_data_comb; - load_sub <= load_sub_comb; -- gk 30.03.1 - drop_sub <= drop_sub_comb; -- gk 25.07.10 - drop_event <= drop_event_comb; -- gk 25.07.10 - drop_small <= drop_small_comb; -- gk 25.07.10 - drop_large <= drop_large_comb; -- gk 25.07.10 - drop_headers <= drop_headers_comb; -- gk 25.07.10 - inc_trg_ctr <= inc_trg_ctr_comb; -- gk 26.07.10 - found_empty_evt <= found_empty_evt_comb; -- gk 01.10.10 - end if; - end if; -end process loadMachineProc; - -loadMachine : process( loadCurrentState, sf_aempty, remove_done, read_done, padding_needed, - PC_READY_IN, load_sub_done, pc_sub_size, MIN_MESSAGE_SIZE_IN, - MAX_MESSAGE_SIZE_IN, pc_trig_nr, first_run_trg, endpoint_addr, - first_run_addr, load_eod, event_waiting, MULT_EVT_ENABLE_IN, message_size, DATA_GBE_ENABLE_IN, first_event, - prev_bank_select, bank_select) -begin - loadNextState <= LIDLE; - rst_rem_ctr_comb <= '0'; - rem_phase_comb <= '0'; - calc_pad_comb <= '0'; - data_phase_comb <= '0'; - pad_phase_comb <= '0'; - pc_sos_comb <= '0'; - pc_eod_comb <= '0'; - rst_regs_comb <= '0'; - pad_data_comb <= '0'; - load_sub_comb <= '0'; -- gk 30.03.10 - drop_sub_comb <= '0'; -- gk 25.07.10 - drop_event_comb <= '0'; -- gk 25.07.10 - drop_small_comb <= '0'; -- gk 25.07.10 - drop_large_comb <= '0'; -- gk 25.07.10 - drop_headers_comb <= '0'; -- gk 25.07.10 - inc_trg_ctr_comb <= '0'; -- gk 26.07.10 - found_empty_evt_comb <= '0'; -- gk 01.10.10 - case loadCurrentState is - when LIDLE => - state2 <= x"0"; - -- gk 23.07.10 - if( (sf_aempty = '0') and (event_waiting = '1') and (DATA_GBE_ENABLE_IN = '1') ) then -- gk 06.08.10 -- and (PC_READY_IN = '1') - loadNextState <= INIT; - rst_rem_ctr_comb <= '1'; - rst_regs_comb <= '1'; - else - loadNextState <= LIDLE; - end if; - when INIT => - state2 <= x"1"; - loadNextState <= REMOVE; - rem_phase_comb <= '1'; - when REMOVE => - state2 <= x"2"; - if( remove_done = '1' ) then - -- gk 06.10.10 - if (MULT_EVT_ENABLE_IN = '1') then - if (message_size + pc_sub_size < MAX_MESSAGE_SIZE_IN) then - --loadNextState <= WAIT_TO_REMOVE; - -- gk 07.12.10 - if (first_event = '0') and (prev_bank_select /= bank_select) then -- check if event builder address changed, if so close the current packet - loadNextState <= WAIT_PC; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - - else - loadNextState <= WAIT_PC; - end if; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - inc_trg_ctr_comb <= '1'; - else - loadNextState <= REMOVE; - rem_phase_comb <= '1'; - end if; - when WAIT_TO_REMOVE => - if (rem_ctr = x"a") then - loadNextState <= DECIDE; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - when DECIDE => - if (pc_sub_size >= MAX_MESSAGE_SIZE_IN) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_large_comb <= '1'; - elsif (pc_sub_size = b"0000_0000_0000_00") then -- gk 01.10.10 - loadNextState <= CALCA; - found_empty_evt_comb <= '1'; - elsif (pc_sub_size < MIN_MESSAGE_SIZE_IN) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_small_comb <= '1'; - elsif (pc_trig_nr + x"1" /= first_run_trg) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_headers_comb <= '1'; - elsif (endpoint_addr /= first_run_addr) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_headers_comb <= '1'; - else - loadNextState <= CALCA; - end if; - calc_pad_comb <= '1'; - when CALCA => - state2 <= x"3"; - loadNextState <= CALCB; - pc_sos_comb <= '1'; - when CALCB => - -- we need a branch in case of length "0"!!!! - state2 <= x"4"; - loadNextState <= LOAD; - data_phase_comb <= '1'; - when LOAD => - state2 <= x"5"; - if (load_eod = '1') then - loadNextState <= LOAD_SUBSUB; - else - loadNextState <= LOAD; - data_phase_comb <= '1'; - end if; - -- gk 31.03.10 - when LOAD_SUBSUB => - state2 <= x"d"; - if( load_sub_done = '1' ) then - if( padding_needed = '0' ) then - loadNextState <= CALCC; - else - loadNextState <= PAD0; - pad_phase_comb <= '1'; - end if; - else - loadNextState <= LOAD_SUBSUB; - load_sub_comb <= '1'; - end if; - when PAD0 => - state2 <= x"6"; - loadNextState <= PAD1; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD1 => - state2 <= x"7"; - loadNextState <= PAD2; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD2 => - state2 <= x"8"; - loadNextState <= PAD3; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD3 => - state2 <= x"9"; - loadNextState <= CALCC; - pad_data_comb <= '1'; - when CALCC => - state2 <= x"a"; - if (MULT_EVT_ENABLE_IN = '1') then - loadNextState <= LIDLE; - else - loadNextState <= CLOSE; - end if; - pc_eod_comb <= '1'; - when CLOSE => - state2 <= x"b"; - loadNextState <= WAIT_PC; - --rst_regs_comb <= '1'; -- gk 07.10.10 - when WAIT_PC => - state2 <= x"c"; - if( PC_READY_IN = '1' ) then - -- gk 06.10.10 - if (MULT_EVT_ENABLE_IN = '1') then - loadNextState <= WAIT_TO_REMOVE; - else - loadNextState <= LIDLE; - end if; - else - loadNextState <= WAIT_PC; - end if; - when PAUSE_BEFORE_DROP1 => - loadNextState <= PAUSE_BEFORE_DROP2; - pc_sos_comb <= '1'; - when PAUSE_BEFORE_DROP2 => - loadNextState <= DROP; - drop_event_comb <= '1'; - -- gk 23.07.10 - when DROP => - state2 <= x"e"; - -- when data is dropped the eod marker stands as its end - if (load_eod = '1') then - loadNextState <= DROP_SUBSUB; - else - loadNextState <= DROP; - drop_event_comb <= '1'; - end if; - -- gk 25.07.10 - when DROP_SUBSUB => - if (load_sub_done = '1') then - if( padding_needed = '0' ) then - loadNextState <= CALCC; - else - loadNextState <= PAD0; - pad_phase_comb <= '1'; - end if; - else - loadNextState <= DROP_SUBSUB; - drop_sub_comb <= '1'; - end if; - when others => - state2 <= x"f"; - loadNextState <= LIDLE; - end case; -end process loadMachine; - --- gk 07.10.10 -PC_EOS_OUT <= '1' when (MULT_EVT_ENABLE_IN = '1') and (pc_eod = '1') else '0'; - --- gk 25.07.10 ---INVALID_STATS_PROC : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- dropped_lr_events_ctr <= (others => '0'); --- dropped_sm_events_ctr <= (others => '0'); --- headers_invalid_ctr <= (others => '0'); --- dropped_ctr <= (others => '0'); --- invalid_hsize_ctr <= (others => '0'); --- found_empty_evt_ctr <= (others => '0'); -- gk 01.10.10 --- elsif (rst_regs = '1') then --- invalid_hsize_lock <= '0'; --- elsif (drop_small = '1') then --- dropped_sm_events_ctr <= dropped_sm_events_ctr + x"1"; --- dropped_ctr <= dropped_ctr + x"1"; --- elsif (drop_large = '1') then --- dropped_lr_events_ctr <= dropped_lr_events_ctr + x"1"; --- dropped_ctr <= dropped_ctr + x"1"; --- elsif (drop_headers = '1') then --- headers_invalid_ctr <= headers_invalid_ctr + x"1"; --- dropped_ctr <= dropped_ctr + x"1"; --- elsif (load_eod_q = '1') and (read_size_q /= x"3fffe") and (invalid_hsize_lock = '0') then -- ?? --- invalid_hsize_ctr <= invalid_hsize_ctr + x"1"; --- invalid_hsize_lock <= '1'; --- -- gk 01.10.10 --- elsif (found_empty_evt = '1') then --- found_empty_evt_ctr <= found_empty_evt_ctr + x"1"; --- end if; --- end if; ---end process INVALID_STATS_PROC; - --- gk 05.08.10 -INVALID_H_PROC : process(CLK) -begin - if rising_edge(CLK) then - load_eod_q <= load_eod; - read_size_q <= read_size; - end if; -end process INVALID_H_PROC; - --- gk 26.04.10 -READOUT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (READOUT_CTR_VALID_IN = '1')) then - readout_ctr <= READOUT_CTR_IN; - readout_ctr_lock <= '0'; - elsif (pc_sos = '1') then - readout_ctr <= readout_ctr + x"1"; - end if; - end if; -end process READOUT_CTR_PROC; - ---****** --- SELECTION OF EVENT BUILDER ---****** - --- gk 27.03.10 -bank_select_proc : process( CLK ) -begin - if rising_edge( CLK ) then - -- gk 29.03.10 - if( (RESET = '1') or (rst_regs = '1') ) then - bank_select <= "0000"; - -- gk 01.06.10 THERE WAS A BUG, IT SHOUDL BE TAKEN FROM SF_Q - elsif( (sf_rd_en = '1') and (rem_ctr = x"2") ) then - bank_select <= pc_data(3 downto 0); --CTS_INFORMATION_IN(3 downto 0); - end if; - end if; -end process bank_select_proc; - --- gk 07.12.10 -first_event_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = WAIT_PC) then - first_event <= '1'; - elsif (remove_done = '1') then - first_event <= '0'; - end if; - end if; -end process first_event_proc; - --- gk 07.12.10 -prev_bank_proc : process(CLK) -begin - if (RESET = '1') or (loadCurrentState = WAIT_PC) then - prev_bank_select <= "0000"; - elsif ((sf_rd_en = '1') and (rem_ctr = x"3") and (first_event = '1')) then - prev_bank_select <= bank_select; - end if; -end process prev_bank_proc; - - --- gk 29.03.10 -start_config_proc : process( CLK ) -begin - if rising_edge( CLK ) then - if( (RESET = '1') or (config_done = '1') or (rst_regs = '1') ) then - start_config <= '0'; - elsif( (sf_rd_en = '1') and (rem_ctr = x"2") and (first_event = '1') ) then -- gk 01.06.10 - start_config <= '1'; - end if; - end if; -end process start_config_proc; - - ---****** --- LOAD SUBSUBEVENT ---****** - --- gk 30.03.10 -load_sub_ctr_comb <= '1' when ( ((load_sub = '1') or (drop_sub = '1')) and (load_sub_done = '0') and (sf_aempty = '0') ) - else '0'; - --- gk 30.03.10 -LOAD_SUB_CTR_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 - load_sub_ctr <= (others => '0'); - elsif( (load_sub_ctr_comb = '1') ) then - load_sub_ctr <= load_sub_ctr + 1; - end if; - end if; -end process LOAD_SUB_CTR_PROC; - --- gk 30.03.10 --- load_sub_done_comb <= '1' when ((load_sub_ctr = x"7") and (drop_sub = '0')) or --- ((load_sub_ctr = x"4") and (drop_sub = '1')) --- else '0'; -load_sub_done_comb <= '1' when (load_sub_ctr = x"4") else '0'; - --- gk 30.03.10 -LOAD_SUB_DONE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 - load_sub_done <= '0'; - else - load_sub_done <= load_sub_done_comb; - end if; - end if; -end process LOAD_SUB_DONE_PROC; - ---****** --- EXTRACT EVENT HEADERS FROM SPLITFIFO ---****** - --- Counter for stripping the unneeded parts of the data stream, and saving the important parts -THE_REMOVE_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - rem_ctr <= (others => '0'); - elsif( (ce_rem_ctr = '1') ) then - rem_ctr <= rem_ctr + 1; - end if; - end if; -end process THE_REMOVE_CTR; - -remove_done_comb <= '1' when ( rem_ctr = x"8" ) else '0'; --( rem_ctr = x"6" ) else '0'; -- gk 29.03.10 two more for evt builder address - -THE_REM_DONE_SYNC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - remove_done <= '0'; - else - remove_done <= remove_done_comb; - end if; - end if; -end process THE_REM_DONE_SYNC; - --- gk 26.04.10 -TRIG_RANDOM_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (rst_regs = '1')) then - trig_random <= (others => '0'); - elsif ((sf_rd_en = '1') and (rem_ctr = x"4")) then - trig_random <= pc_data; - end if; - end if; -end process TRIG_RANDOM_PROC; - --- extract the trigger number from splitfifo data -THE_TRG_NR_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_trig_nr <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"6") ) then -- x"4" gk 29.03.10 - pc_trig_nr(7 downto 0) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"5") ) then -- x"3" gk 29.03.10 - pc_trig_nr(15 downto 8) <= pc_data; - end if; - end if; -end process THE_TRG_NR_PROC; - --- extract the subevent size from the splitfifo data, convert it from 32b to 8b units, --- and in case of padding needed increase it accordingly -THE_SUB_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_sub_size <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 - pc_sub_size(9 downto 2) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 - pc_sub_size(17 downto 10) <= pc_data; - -- gk 20.07.10 - -- gk 30.03.10 bug fixed in the way that is written below - -- gk 27.03.10 should be corrected by sending padding_needed signal to pc and take care of it when setting sub_size_to_save - elsif( (calc_pad = '1') and (padding_needed = '1') ) then - pc_sub_size <= pc_sub_size + x"4" + x"8"; -- BUG: SubEvtSize does NOT include 64bit padding!!! - elsif( (calc_pad = '1') and (padding_needed = '0') ) then - pc_sub_size <= pc_sub_size + x"8"; - end if; - end if; -end process THE_SUB_SIZE_PROC; - --- gk 06.10.10 -MESSAGE_SIZE_PROC : process(CLK) -begin - if rising_edge(CLK) then --- if (RESET = '1') then --- message_size <= (others => '0'); --- elsif ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) then --- message_size <= (others => '0'); --- elsif (pc_sos = '1') then --- message_size <= message_size + pc_sub_size; --- end if; - if (RESET = '1') then - message_size <= x"0000_0028"; - elsif ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) then - message_size <= x"0000_0028"; - elsif ((MULT_EVT_ENABLE_IN = '1') and (prev_bank_select /= bank_select) and (remove_done = '1')) then - message_size <= x"0000_0028"; - elsif (pc_sos = '1') then - message_size <= message_size + pc_sub_size + x"10"; -- gk 06.12.10 add 16B for subevent headers - end if; - end if; -end process MESSAGE_SIZE_PROC; - - --- gk 25.07.10 -ENDP_ADDRESS_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (rst_regs = '1') then - endpoint_addr <= (others => '0'); - endp_addr_lock <= '0'; - elsif( (rem_ctr = x"a") and (endp_addr_lock = '0') ) then - endpoint_addr(7 downto 0) <= pc_data; - endp_addr_lock <= '1'; - elsif( (sf_rd_en = '1') and (rem_ctr = x"9") ) then - endpoint_addr(15 downto 8) <= pc_data; - endp_addr_lock <= '0'; - end if; - end if; -end process ENDP_ADDRESS_PROC; - - - --- check for padding -THE_PADDING_NEEDED_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - padding_needed <= '0'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '1') ) then - padding_needed <= '1'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '0') ) then - padding_needed <= '0'; - end if; - end if; -end process THE_PADDING_NEEDED_PROC; - --- number of bytes to read from split fifo -THE_READ_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then --(rst_rem_ctr = '1') ) then - read_size <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 - read_size(9 downto 2) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 - read_size(17 downto 10) <= pc_data; - elsif( ((sf_rd_en = '1') and (data_phase = '1')) ) then - read_size <= read_size - 1; - -- gk 25.07.10 - elsif( ((sf_rd_en = '1') and (drop_event = '1')) ) then - read_size <= read_size - 1; - end if; - end if; -end process THE_READ_SIZE_PROC; - -read_done_comb <= '1' when (read_size < 3 ) else '0'; -- "2" - ---****** --- EVENTS COUNTERS ---****** - --- gk 25.07.10 -LOADED_EVT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loaded_events_ctr <= (others => '0'); - elsif (remove_done = '1') then - loaded_events_ctr <= loaded_events_ctr + x"1"; - end if; - end if; -end process LOADED_EVT_CTR_PROC; - --- gk 25.07.10 -CONSTR_EVENTS_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - constr_events_ctr <= (others => '0'); - elsif (pc_eod = '1') then - constr_events_ctr <= constr_events_ctr + x"1"; - end if; - end if; -end process CONSTR_EVENTS_CTR_PROC; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Debug signals ---debug(0) <= sf_full; ---debug(1) <= sf_empty; ---debug(2) <= sf_afull; ---debug(3) <= sf_aempty; --- ---debug(7 downto 4) <= state2; --- ---debug(11 downto 8) <= state; --- ---dbg_bs_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(15 downto 12) <= (others => '0'); --- elsif ( (sf_rd_en = '1') and (rem_ctr = x"3") ) then --- debug(15 downto 12) <= bank_select; --- end if; --- end if; ---end process dbg_bs_proc; --- ---debug(16) <= config_done; ---debug(17) <= '0'; --remove_done; ---debug(18) <= read_done; ---debug(19) <= padding_needed; --- ---debug(20) <= load_sub_done; --- ---dbg_cts_inf_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(39 downto 32) <= (others => '0'); --- elsif ( save_addr = '1' ) then --- debug(39 downto 32) <= CTS_INFORMATION_IN; --- end if; --- end if; ---end process dbg_cts_inf_proc; --- ---debug(47 downto 40) <= (others => '0'); --- --- ---debug(63 downto 48) <= actual_message_size(15 downto 0); --- ---dbg_pc_sub_size_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(81 downto 64) <= (others => '0'); --- elsif (loadCurrentState = DECIDE) then --- debug(81 downto 64) <= pc_sub_size; --- end if; --- end if; ---end process dbg_pc_sub_size_proc; --- ---dbg_empty_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') or (rst_regs = '1') then --- debug(84 downto 82) <= (others => '0'); --- elsif (read_size = 2) then --- debug(82) <= sf_empty; --- elsif (read_size = 1) then --- debug(83) <= sf_empty; --- elsif (read_size = 0) then --- debug(84) <= sf_empty; --- end if; --- end if; ---end process dbg_empty_proc; --- ---debug(95 downto 85) <= (others => '0'); --- ---dbg_inc_ctr_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(127 downto 96) <= (others => '1'); --- elsif (saveCurrentState = SCLOSE) then --- debug(127 downto 96) <= inc_data_ctr; --- end if; --- end if; ---end process dbg_inc_ctr_proc; --- ---debug(143 downto 128) <= dropped_sm_events_ctr(15 downto 0); ---debug(159 downto 144) <= dropped_lr_events_ctr(15 downto 0); --- ---debug(175 downto 160) <= headers_invalid_ctr(15 downto 0); ---debug(191 downto 176) <= (others => '0'); --- ---dbg_cts_q_proc : process(CLK) ---begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- cts_len_q <= (others => '0'); --- cts_rnd_q <= (others => '0'); --- cts_trg_q <= (others => '0'); --- cts_addr_q <= (others => '0'); --- elsif (cts_len_saved = '1') then --- cts_len_q <= cts_len(16 downto 1); --- cts_addr_q <= cts_addr; --- cts_rnd_q <= cts_rnd; --- cts_trg_q <= cts_trg; --- end if; --- end if; ---end process dbg_cts_q_proc; - ---debug(207 downto 192) <= cts_trg_q; ---debug(223 downto 208) <= cts_rnd_q; ---debug(239 downto 224) <= cts_addr_q; ---debug(255 downto 240) <= cts_len_q; ---debug(271 downto 256) <= first_run_trg; ---debug(287 downto 272) <= first_run_addr; --- ---debug(303 downto 288) <= saved_events_ctr; ---debug(319 downto 304) <= loaded_events_ctr; --- ---debug(335 downto 320) <= constr_events_ctr(15 downto 0); ---debug(351 downto 336) <= dropped_ctr(15 downto 0); --- ---debug(367 downto 352) <= invalid_hsize_ctr; ---debug(383 downto 368) <= (others => '0'); --- ---MONITOR_OUT(31 downto 0) <= constr_events_ctr; ---MONITOR_OUT(63 downto 32) <= dropped_ctr; ---MONITOR_OUT(95 downto 64) <= headers_invalid_ctr; ---MONITOR_OUT(127 downto 96) <= dropped_sm_events_ctr; ---MONITOR_OUT(159 downto 128) <= dropped_lr_events_ctr; ---MONITOR_OUT(163 downto 160) <= b"1111" when (sf_afull = '1') else b"0000"; ---MONITOR_OUT(191 downto 164) <= (others => '0'); ---MONITOR_OUT(223 downto 192) <= found_empty_evt_ctr; -- gk 01.10.10 - --- Outputs -FEE_READ_OUT <= fee_read; -CTS_ERROR_PATTERN_OUT <= cts_error_pattern; -CTS_DATA_OUT <= cts_data; -CTS_DATAREADY_OUT <= cts_dataready; -CTS_READOUT_FINISHED_OUT <= cts_readout_finished; -CTS_LENGTH_OUT <= cts_length; - -PC_SOS_OUT <= pc_sos; -PC_EOD_OUT <= '1' when ((MULT_EVT_ENABLE_IN = '0') and (pc_eod = '1')) - or ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) - -- gk 07.12.10 - or ((MULT_EVT_ENABLE_IN = '1') and (prev_bank_select /= bank_select) and (remove_done = '1')) - else '0'; -- gk 07.10.10 -PC_DATA_OUT <= pc_data_q; -PC_WR_EN_OUT <= pc_wr_en_qq; - -PC_TRIG_NR_OUT <= readout_ctr(23 downto 16) & pc_trig_nr & trig_random; - -PC_SUB_SIZE_OUT <= b"0000_0000_0000_00" & pc_sub_size; -PC_PADDING_OUT <= padding_needed; - ---DEBUG_OUT <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_ipu2gbe_20101006.vhd b/gbe2_ecp3/trb_net16_ipu2gbe_20101006.vhd deleted file mode 100644 index 73c8d7a..0000000 --- a/gbe2_ecp3/trb_net16_ipu2gbe_20101006.vhd +++ /dev/null @@ -1,1316 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; - -entity trb_net16_ipu2gbe is -port( - CLK : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- slow control interface - START_CONFIG_OUT : out std_logic; -- reconfigure MACs/IPs/ports/packet size - BANK_SELECT_OUT : out std_logic_vector(3 downto 0); -- configuration page address - CONFIG_DONE_IN : in std_logic; -- configuration finished - DATA_GBE_ENABLE_IN : in std_logic; -- IPU data is forwarded to GbE - DATA_IPU_ENABLE_IN : in std_logic; -- IPU data is forwarded to CTS / TRBnet - MULT_EVT_ENABLE_IN : in std_logic; - MAX_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- the maximum size of one HadesQueue -- gk 08.04.10 - MIN_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- gk 20.07.10 - READOUT_CTR_IN : in std_logic_vector(23 downto 0); -- gk 26.04.10 - READOUT_CTR_VALID_IN : in std_logic; -- gk 26.04.10 - -- PacketConstructor interface - ALLOW_LARGE_IN : in std_logic; -- gk 21.07.10 - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOD_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_PADDING_OUT : out std_logic; - MONITOR_OUT : out std_logic_vector(223 downto 0); - DEBUG_OUT : out std_logic_vector(383 downto 0) -); -end entity; - -architecture trb_net16_ipu2gbe of trb_net16_ipu2gbe is - --- -- Placer Directives --- attribute HGROUP : string; --- -- for whole architecture --- attribute HGROUP of trb_net16_ipu2gbe : architecture is "GBE_ipu2gbe_group"; - -component fifo_32kx16x8_mb2 -port( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(8 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); - Empty : out std_logic; - AlmostEmpty : out std_logic; - Full : out std_logic; - AlmostFull : out std_logic -); -end component; - -type saveStates is (SIDLE, SAVE_EVT_ADDR, WAIT_FOR_DATA, SAVE_DATA, ADD_SUBSUB1, ADD_SUBSUB2, ADD_SUBSUB3, ADD_SUBSUB4, TERMINATE, SCLOSE); -signal saveCurrentState, saveNextState : saveStates; -signal state : std_logic_vector(3 downto 0); -signal data_req_comb : std_logic; -signal data_req : std_logic; -- request data signal, will be used for fee_read generation -signal rst_saved_ctr_comb : std_logic; -signal rst_saved_ctr : std_logic; - -signal fee_read_comb : std_logic; -signal fee_read : std_logic; -- fee_read signal -signal saved_ctr : std_logic_vector(16 downto 0); -signal ce_saved_ctr : std_logic; - --- header data -signal cts_rnd : std_logic_vector(15 downto 0); -signal cts_rnd_saved : std_logic; -signal cts_trg : std_logic_vector(15 downto 0); -signal cts_trg_saved : std_logic; -signal cts_len : std_logic_vector(16 downto 0); -signal cts_len_saved : std_logic; - --- CTS interface -signal cts_error_pattern : std_logic_vector(31 downto 0); -signal cts_length : std_logic_vector(15 downto 0); -signal cts_readout_finished : std_logic; -signal cts_dataready : std_logic; -signal cts_data : std_logic_vector(31 downto 0); - --- Split FIFO signals -signal sf_data : std_logic_vector(15 downto 0); -signal sf_wr_en_comb : std_logic; -signal sf_wr_en : std_logic; -- write signal for FIFO -signal sf_rd_en_comb : std_logic; -signal sf_rd_en : std_logic; -- read signal for FIFO -signal sf_wcnt : std_logic_vector(15 downto 0); -signal sf_rcnt : std_logic_vector(16 downto 0); -signal sf_empty : std_logic; -signal sf_aempty : std_logic; -signal sf_full : std_logic; -signal sf_afull : std_logic; - -------------------------------------------------------------------- -type loadStates is (LIDLE, INIT, REMOVE, DECIDE, CALCA, CALCB, LOAD, PAD0, PAD1, PAD2, PAD3, LOAD_SUBSUB, CALCC, CLOSE, WAIT_PC, DROP, WAIT_TO_REMOVE, DROP_SUBSUB, PAUSE_BEFORE_DROP1, PAUSE_BEFORE_DROP2); -signal loadCurrentState, loadNextState : loadStates; -signal state2 : std_logic_vector(3 downto 0); - -signal rem_ctr : std_logic_vector(3 downto 0); -- counter for stripping / storing header data -signal rst_rem_ctr_comb : std_logic; -signal rst_rem_ctr : std_logic; -- reset the remove counter -signal rst_regs_comb : std_logic; -signal rst_regs : std_logic; -- reset storage registers -signal rem_phase_comb : std_logic; -signal rem_phase : std_logic; -- header remove phase -signal data_phase_comb : std_logic; -signal data_phase : std_logic; -- data transport phase from split fifo to PC -signal pad_phase_comb : std_logic; -signal pad_phase : std_logic; -- padding phase -signal calc_pad_comb : std_logic; -signal calc_pad : std_logic; -- check if padding bytes need to be added to PC_SUB_SIZE -signal pad_data_comb : std_logic; -signal pad_data : std_logic; -- reset PC_DATA register to known padding byte value - -signal pc_sos_comb : std_logic; -signal pc_sos : std_logic; -- start of data signal -signal pc_eod_comb : std_logic; -signal pc_eod : std_logic; -- end of data signal - -signal ce_rem_ctr_comb : std_logic; -signal ce_rem_ctr : std_logic; -- count enable for remove counter -signal remove_done_comb : std_logic; -signal remove_done : std_logic; -- end of header stripping process -signal read_done_comb : std_logic; -signal read_done : std_logic; -- end of data phase (read phase from SF) - -signal pc_data : std_logic_vector(7 downto 0); -signal pc_data_q : std_logic_vector(7 downto 0); -signal pc_trig_nr : std_logic_vector(15 downto 0); -signal pc_sub_size : std_logic_vector(17 downto 0); -signal read_size : std_logic_vector(17 downto 0); -- number of byte to be read from split fifo -signal padding_needed : std_logic; -signal pc_wr_en_comb : std_logic; -signal pc_wr_en_q : std_logic; -signal pc_wr_en_qq : std_logic; -signal pc_wr_en_qqq : std_logic; -signal pc_eod_q : std_logic; - -signal debug : std_logic_vector(383 downto 0); - --- gk -signal bank_select : std_logic_vector(3 downto 0); -signal save_addr_comb : std_logic; -signal save_addr : std_logic; -signal addr_saved_comb : std_logic; -signal addr_saved : std_logic; -signal start_config : std_logic; -signal config_done : std_logic; -signal add_sub_state : std_logic; -signal add_sub_state_comb : std_logic; -signal add_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub : std_logic; -signal load_sub_comb : std_logic; -signal load_sub_done : std_logic; -signal load_sub_done_comb : std_logic; -signal load_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub_ctr_comb : std_logic; -signal actual_message_size : std_logic_vector(31 downto 0); -signal more_subevents : std_logic; -signal trig_random : std_logic_vector(7 downto 0); -signal readout_ctr : std_logic_vector(23 downto 0); -signal readout_ctr_lock : std_logic; -signal pc_trig_nr_q : std_logic_vector(31 downto 0); - --- gk 20.07.10 -signal inc_data_ctr : std_logic_vector(31 downto 0); -signal dropped_sm_events_ctr : std_logic_vector(31 downto 0); -signal dropped_lr_events_ctr : std_logic_vector(31 downto 0); -signal dropped_ctr : std_logic_vector(31 downto 0); --- gk 22.07.10 -signal headers_invalid : std_logic; -signal headers_invalid_ctr : std_logic_vector(31 downto 0); -signal cts_len_q : std_logic_vector(15 downto 0); -signal cts_trg_q : std_logic_vector(15 downto 0); -signal cts_rnd_q : std_logic_vector(15 downto 0); -signal first_run_trg : std_logic_vector(15 downto 0); -signal first_run_addr : std_logic_vector(15 downto 0); -signal first_run_lock : std_logic; -signal cts_addr : std_logic_vector(15 downto 0); -signal cts_addr_q : std_logic_vector(15 downto 0); -signal cts_addr_saved : std_logic; - --- gk 24.07.10 -signal save_eod : std_logic; -signal save_eod_comb : std_logic; - -signal load_eod : std_logic; -signal endpoint_addr : std_logic_vector(15 downto 0); -signal endp_addr_lock : std_logic; - -signal saved_events_ctr : std_logic_vector(15 downto 0); -signal loaded_events_ctr : std_logic_vector(15 downto 0); -signal constr_events_ctr : std_logic_vector(31 downto 0); -signal event_waiting : std_logic; - -signal drop_sub : std_logic; -signal drop_sub_comb : std_logic; -signal drop_event : std_logic; -signal drop_event_comb : std_logic; -signal drop_small : std_logic; -signal drop_large : std_logic; -signal drop_headers : std_logic; -signal drop_small_comb : std_logic; -signal drop_large_comb : std_logic; -signal drop_headers_comb : std_logic; -signal inc_trg_ctr : std_logic; -signal inc_trg_ctr_comb : std_logic; - -signal invalid_hsize_ctr : std_logic_vector(15 downto 0); -signal invalid_hsize_lock : std_logic; - -signal load_eod_q : std_logic; -signal read_size_q : std_logic_vector(17 downto 0); - --- gk 06.08.10 write to fifo only if gbe is enabled but keep the saving logic unblocked -signal sf_real_wr_en : std_logic; - --- gk 01.10.10 -signal found_empty_evt : std_logic; -signal found_empty_evt_comb : std_logic; -signal found_empty_evt_ctr : std_logic_vector(31 downto 0); - -begin - -BANK_SELECT_OUT <= bank_select; -- gk 27.03.10 -START_CONFIG_OUT <= start_config; -- gk 27.03.10 -config_done <= CONFIG_DONE_IN; -- gk 29.03.10 - --- CTS interface signals -cts_error_pattern <= (others => '0'); -- FAKE - -cts_length <= x"0000"; -- length of data payload is always 0 -cts_data <= b"0001" & cts_rnd(11 downto 0) & cts_trg; -- reserved bits = '0', pack bit = '1' - -cts_readout_finished <= '1' when (saveCurrentState = SCLOSE) else '0'; - -cts_dataready <= '1' when ((saveCurrentState = SAVE_DATA) and (FEE_BUSY_IN = '0')) or (saveCurrentState = TERMINATE) - else '0'; - --- Byte swapping... done here. TAKE CARE! --- The split FIFO is in natural bus order (i.e. Motorola style, [15:0]). This means that the two bytes --- on the write side need to be swapped to appear in GbE style (i.e. Intel style) on the 8bit port. --- Please mind that PC_SUB_SIZE and PC_TRIG_NR stay in a human readable format, and need to be byteswapped --- for GbE inside the packet constructor. --- --- Long live the Endianess! - --- Sync all critical pathes -THE_SYNC_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - --sf_data <= FEE_DATA_IN; -- gk 27.03.10 moved out to the process below - sf_wr_en <= sf_wr_en_comb; - ce_rem_ctr <= ce_rem_ctr_comb; - sf_rd_en <= sf_rd_en_comb; - fee_read <= fee_read_comb; - read_done <= read_done_comb; - pc_eod_q <= pc_eod; - pc_wr_en_qqq <= pc_wr_en_qq; - pc_wr_en_qq <= pc_wr_en_q; - pc_wr_en_q <= pc_wr_en_comb; - end if; -end process THE_SYNC_PROC; - --- gk 27.03.10 data selector for sf to write the evt builder address on top of data -SF_DATA_PROC : process( CLK ) -begin - if( rising_edge(CLK) ) then - if (RESET = '1') then -- gk 31.05.10 - sf_data <= (others => '0'); - elsif( save_addr = '1' ) then - sf_data(3 downto 0) <= CTS_INFORMATION_IN(3 downto 0); -- only last 4 bits are the evt builder address - sf_data(15 downto 4) <= x"abc"; - -- gk 29.03.10 four entries to save the fee_status into sf for the subsubevent - elsif( (add_sub_state = '1') and (add_sub_ctr = x"0") ) then - sf_data <= x"0001"; -- gk 11.06.10 - elsif( (add_sub_state = '1') and (add_sub_ctr = x"1") ) then - sf_data <= x"5555"; -- gk 11.06.10 - elsif( (add_sub_state = '1') and (add_sub_ctr = x"2") ) then - sf_data <= FEE_STATUS_BITS_IN(31 downto 16); - elsif( (add_sub_state = '1') and (add_sub_ctr = x"3") ) then - sf_data <= FEE_STATUS_BITS_IN(15 downto 0); - else - sf_data <= FEE_DATA_IN; - end if; - end if; -end process SF_DATA_PROC; - --- combinatorial read signal for the FEE data interface, DO NOT USE DIRECTLY -fee_read_comb <= '1' when ( (sf_afull = '0') and (data_req = '1') ) --and (DATA_GBE_ENABLE_IN = '1') ) -- GbE enabled - else '0'; - --- combinatorial write signal for the split FIFO, DO NOT USE DIRECTLY -sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') ) or -- and (DATA_GBE_ENABLE_IN = '1') ) or -- GbE enabled - (save_addr = '1') or - (add_sub_state = '1') -- gk 29.03.10 save the subsubevent - else '0'; - --- gk 06.08.10 -sf_real_wr_en <= '1' when ((sf_wr_en = '1') and (DATA_GBE_ENABLE_IN = '1')) else '0'; - --- gk 27.03.10 do not count evt builder address as saved ipu bytes ---ce_saved_ctr <= sf_wr_en; -ce_saved_ctr <= '0' when addr_saved = '1' else sf_wr_en; - --- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO -saveMachineProc: process( CLK ) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saveCurrentState <= SIDLE; - data_req <= '0'; - rst_saved_ctr <= '0'; - save_addr <= '0'; -- gk 27.03.10 - addr_saved <= '0'; -- gk 27.03.10 - add_sub_state <= '0'; -- gk 29.03.10 - save_eod <= '0'; -- gk 25.07.10 - else - saveCurrentState <= saveNextState; - data_req <= data_req_comb; - rst_saved_ctr <= rst_saved_ctr_comb; - save_addr <= save_addr_comb; -- gk 27.03.10 - addr_saved <= addr_saved_comb; -- gk 27.03.10 - add_sub_state <= add_sub_state_comb; -- gk 29.03.10 - save_eod <= save_eod_comb; -- gk 25.07.10 - end if; - end if; -end process saveMachineProc; - -saveMachine: process( saveCurrentState, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN) -begin - saveNextState <= SIDLE; - data_req_comb <= '0'; - rst_saved_ctr_comb <= '0'; - save_addr_comb <= '0'; -- gk 27.03.10 - addr_saved_comb <= '0'; -- gk 27.03.10 - add_sub_state_comb <= '0'; -- gk 29.03.10 - save_eod_comb <= '0'; -- gk 25.07.10 - case saveCurrentState is - when SIDLE => - state <= x"0"; - if (CTS_START_READOUT_IN = '1') then - saveNextState <= SAVE_EVT_ADDR; --WAIT_FOR_DATA; -- gk 27.03.10 - data_req_comb <= '1'; - rst_saved_ctr_comb <= '1'; - else - saveNextState <= SIDLE; - end if; - -- gk 27.03.10 - when SAVE_EVT_ADDR => - state <= x"5"; - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - save_addr_comb <= '1'; - when WAIT_FOR_DATA => - state <= x"1"; - if (FEE_BUSY_IN = '1') then - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - else - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - end if; - addr_saved_comb <= '1'; -- gk 27.03.10 - when SAVE_DATA => - state <= x"2"; - if (FEE_BUSY_IN = '0') then - saveNextState <= TERMINATE; - else - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - end if; - when TERMINATE => - state <= x"3"; - if (CTS_READ_IN = '1') then - saveNextState <= SCLOSE; - else - saveNextState <= TERMINATE; - end if; - when SCLOSE => - state <= x"4"; - if (CTS_START_READOUT_IN = '0') then - saveNextState <= ADD_SUBSUB1; --SIDLE; -- gk 29.03.10 - else - saveNextState <= SCLOSE; - end if; - -- gk 29.03.10 new states during which the subsub bytes are saved - when ADD_SUBSUB1 => - state <= x"6"; - saveNextState <= ADD_SUBSUB2; - add_sub_state_comb <= '1'; - when ADD_SUBSUB2 => - state<= x"7"; - saveNextState <= ADD_SUBSUB3; - add_sub_state_comb <= '1'; - save_eod_comb <= '1'; - when ADD_SUBSUB3 => - state<= x"8"; - saveNextState <= ADD_SUBSUB4; - add_sub_state_comb <= '1'; - when ADD_SUBSUB4 => - state<= x"9"; - saveNextState <= SIDLE; - add_sub_state_comb <= '1'; - when others => - state <= x"f"; - saveNextState <= SIDLE; - end case; -end process saveMachine; - --- gk 29.03.10 -ADD_SUB_CTR_PROC : process( CLK ) -begin - if( rising_edge( CLK ) ) then - if( (RESET = '1') or (rst_saved_ctr = '1') ) then - add_sub_ctr <= (others => '0'); - elsif( add_sub_state = '1' ) then - add_sub_ctr <= add_sub_ctr + 1; - end if; - end if; -end process ADD_SUB_CTR_PROC; - ---******** --- SAVE INCOMING EVENT HEADERS ---******** - --- Counter for header word storage -THE_CTS_SAVED_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - saved_ctr <= (others => '0'); - elsif( ce_saved_ctr = '1' ) then - saved_ctr <= saved_ctr + 1; - end if; - end if; -end process THE_CTS_SAVED_CTR; - --- save triggerRnd from incoming data for cts response -CTS_RND_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_rnd <= (others => '0'); - cts_rnd_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"000") and (sf_wr_en = '1') and (cts_rnd_saved = '0') ) then - cts_rnd <= sf_data; - cts_rnd_saved <= '1'; - end if; - end if; -end process CTS_RND_PROC; - --- save triggerNr from incoming data for cts response -CTS_TRG_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_trg <= (others => '0'); - cts_trg_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"001") and (sf_wr_en = '1') and (cts_trg_saved = '0') ) then - cts_trg <= sf_data; - cts_trg_saved <= '1'; - end if; - end if; -end process CTS_TRG_PROC; - --- save size from incoming data for cts response (future) and to get rid of padding -CTS_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_len <= (others => '0'); - cts_len_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"010") and (sf_wr_en = '1') and (cts_len_saved = '0') ) then - cts_len(16 downto 1) <= sf_data; -- change from 32b words to 16b words - cts_len(0) <= '0'; - elsif( (saved_ctr(2 downto 0) = b"011") and (cts_len_saved = '0') ) then - cts_len <= cts_len + x"4"; - cts_len_saved <= '1'; - end if; - end if; -end process CTS_SIZE_PROC; - --- gk 22.07.10 -CTS_ADDR_PROC : process(CLK) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_addr <= (others => '0'); - cts_addr_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"011") and (sf_wr_en = '1') and (cts_addr_saved = '0') ) then - cts_addr <= sf_data; - cts_addr_saved <= '1'; - end if; - end if; -end process CTS_ADDR_PROC; - ---****** --- SAVE FIRST EVENT HEADER VALUES ---****** - --- gk 22.07.10 -FIRST_RUN_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - first_run_trg <= (others => '0'); - first_run_addr <= (others => '0'); - first_run_lock <= '0'; - elsif (first_run_lock = '0') and (cts_addr_saved = '1') then - first_run_trg <= cts_trg; - first_run_addr <= cts_addr; - first_run_lock <= '1'; - -- important: value saved by saveMachine but incremented by loadMachine - elsif (first_run_lock = '1') and (inc_trg_ctr = '1') then - first_run_trg <= first_run_trg + x"1"; - end if; - end if; -end process FIRST_RUN_PROC; - --- gk 25.07.10 -SAVED_EVT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saved_events_ctr <= (others => '0'); - elsif (save_eod = '1') then - saved_events_ctr <= saved_events_ctr + x"1"; - end if; - end if; -end process SAVED_EVT_CTR_PROC; - - --- gk 20.07.10 -INC_DATA_CTR_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (rst_saved_ctr = '1') then - inc_data_ctr <= (others => '0'); - elsif (sf_wr_en = '1') and (data_req = '1') then - inc_data_ctr(31 downto 1) <= inc_data_ctr(31 downto 1) + x"1"; - end if; - end if; -end process INC_DATA_CTR_proc; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Split FIFO -THE_SPLIT_FIFO: fifo_32kx16x8_mb2 -port map( - -- Byte swapping for correct byte order on readout side of FIFO - Data(7 downto 0) => sf_data(15 downto 8), - Data(8) => '0', - Data(16 downto 9) => sf_data(7 downto 0), - Data(17) => save_eod, - WrClock => CLK, - RdClock => CLK, - WrEn => sf_real_wr_en, -- gk 06.08.10 --sf_wr_en, - RdEn => sf_rd_en, - Reset => RESET, - RPReset => RESET, - AmEmptyThresh => b"0000_0000_0000_0010", -- one byte ahead - AmFullThresh => b"111_1111_1110_1111", -- 0x7fef = 32751 - Q(7 downto 0) => pc_data, - Q(8) => load_eod, - WCNT => sf_wcnt, - RCNT => sf_rcnt, - Empty => sf_empty, - AlmostEmpty => sf_aempty, - Full => sf_full, - AlmostFull => sf_afull -); - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- gk 25.07.10 -EVENT_WAITING_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - event_waiting <= '0'; - elsif (loaded_events_ctr /= saved_events_ctr) then - event_waiting <= '1'; - else - event_waiting <= '0'; - end if; - end if; -end process EVENT_WAITING_PROC; - --- write signal for PC data -pc_wr_en_comb <= '1' when ((data_phase = '1') and (sf_rd_en = '1')) or - (pad_phase = '1') or - ((load_sub = '1') and (sf_rd_en = '1')) or - ((drop_sub = '1') and (sf_rd_en = '1')) or - ((drop_event = '1') and (sf_rd_en = '1')) - else '0'; - -sf_rd_en_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and (remove_done = '0') ) or - --( (sf_aempty = '0') and (data_phase = '1') and (read_done = '0') ) or - ( (sf_aempty = '0') and (data_phase = '1') and (load_eod = '0') ) or -- gk 26.07.10 - ( (sf_aempty = '0') and (load_sub = '1') and (load_sub_done = '0') ) or -- gk 30.03.10 - ( (sf_aempty = '0') and (drop_event = '1') and (load_eod = '0') ) or - ( (sf_aempty = '0') and (drop_sub = '1') and (load_sub_done = '0') ) - else '0'; - -ce_rem_ctr_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and ( remove_done = '0') ) - else '0'; - --- FIFO data delay process (also forces padding bytes to known value) -THE_DATA_DELAY_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if( pad_data = '1' ) then - pc_data_q <= x"aa"; -- padding for 64bit - -- gk 21.07.10 - -- set the error flag if a broken packet is sent - elsif (drop_sub = '1') and (load_sub_ctr = x"3") then - pc_data_q <= pc_data(7 downto 3) & '1' & pc_data(1 downto 0); - else - pc_data_q <= pc_data; - end if; - end if; -end process THE_DATA_DELAY_PROC; - --- Statemachine for reading the data payload from the SPLIT_FIFO and feeding --- it into the packet constructor -loadMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loadCurrentState <= LIDLE; - rst_rem_ctr <= '0'; - rem_phase <= '0'; - calc_pad <= '0'; - data_phase <= '0'; - pad_phase <= '0'; - pc_sos <= '0'; - pc_eod <= '0'; - rst_regs <= '0'; - pad_data <= '0'; - load_sub <= '0'; -- gk 30.03.10 - drop_sub <= '0'; -- gk 25.07.10 - drop_event <= '0'; -- gk 25.07.10 - drop_small <= '0'; -- gk 25.07.10 - drop_large <= '0'; -- gk 25.07.10 - drop_headers <= '0'; -- gk 25.07.10 - inc_trg_ctr <= '0'; -- gk 26.07.10 - found_empty_evt <= '0'; -- gk 01.10.10 - else - loadCurrentState <= loadNextState; - rst_rem_ctr <= rst_rem_ctr_comb; - rem_phase <= rem_phase_comb; - calc_pad <= calc_pad_comb; - data_phase <= data_phase_comb; - pad_phase <= pad_phase_comb; - pc_sos <= pc_sos_comb; - pc_eod <= pc_eod_comb; - rst_regs <= rst_regs_comb; - pad_data <= pad_data_comb; - load_sub <= load_sub_comb; -- gk 30.03.1 - drop_sub <= drop_sub_comb; -- gk 25.07.10 - drop_event <= drop_event_comb; -- gk 25.07.10 - drop_small <= drop_small_comb; -- gk 25.07.10 - drop_large <= drop_large_comb; -- gk 25.07.10 - drop_headers <= drop_headers_comb; -- gk 25.07.10 - inc_trg_ctr <= inc_trg_ctr_comb; -- gk 26.07.10 - found_empty_evt <= found_empty_evt_comb; -- gk 01.10.10 - end if; - end if; -end process loadMachineProc; - -loadMachine : process( loadCurrentState, sf_aempty, remove_done, read_done, padding_needed, PC_READY_IN, load_sub_done, pc_sub_size, MIN_MESSAGE_SIZE_IN, MAX_MESSAGE_SIZE_IN, pc_trig_nr, first_run_trg, endpoint_addr, first_run_addr, load_eod, event_waiting) -begin - loadNextState <= LIDLE; - rst_rem_ctr_comb <= '0'; - rem_phase_comb <= '0'; - calc_pad_comb <= '0'; - data_phase_comb <= '0'; - pad_phase_comb <= '0'; - pc_sos_comb <= '0'; - pc_eod_comb <= '0'; - rst_regs_comb <= '0'; - pad_data_comb <= '0'; - load_sub_comb <= '0'; -- gk 30.03.10 - drop_sub_comb <= '0'; -- gk 25.07.10 - drop_event_comb <= '0'; -- gk 25.07.10 - drop_small_comb <= '0'; -- gk 25.07.10 - drop_large_comb <= '0'; -- gk 25.07.10 - drop_headers_comb <= '0'; -- gk 25.07.10 - inc_trg_ctr_comb <= '0'; -- gk 26.07.10 - found_empty_evt_comb <= '0'; -- gk 01.10.10 - case loadCurrentState is - when LIDLE => - state2 <= x"0"; - -- gk 23.07.10 - if( (sf_aempty = '0') and (PC_READY_IN = '1') and (event_waiting = '1') and (DATA_GBE_ENABLE_IN = '1') ) then -- gk 06.08.10 - loadNextState <= INIT; - rst_rem_ctr_comb <= '1'; - rst_regs_comb <= '1'; - else - loadNextState <= LIDLE; - end if; - when INIT => - state2 <= x"1"; - loadNextState <= REMOVE; - rem_phase_comb <= '1'; - when REMOVE => - state2 <= x"2"; - if( remove_done = '1' ) then - loadNextState <= WAIT_TO_REMOVE; - inc_trg_ctr_comb <= '1'; - else - loadNextState <= REMOVE; - rem_phase_comb <= '1'; - end if; - when WAIT_TO_REMOVE => - if (rem_ctr = x"a") then - loadNextState <= DECIDE; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - when DECIDE => - if (pc_sub_size >= MAX_MESSAGE_SIZE_IN) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_large_comb <= '1'; - elsif (pc_sub_size = b"0000_0000_0000_00") then -- gk 01.10.10 - loadNextState <= CALCA; - found_empty_evt_comb <= '1'; - elsif (pc_sub_size < MIN_MESSAGE_SIZE_IN) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_small_comb <= '1'; - elsif (pc_trig_nr + x"1" /= first_run_trg) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_headers_comb <= '1'; - elsif (endpoint_addr /= first_run_addr) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_headers_comb <= '1'; - else - loadNextState <= CALCA; - end if; - calc_pad_comb <= '1'; - when CALCA => - state2 <= x"3"; - loadNextState <= CALCB; - pc_sos_comb <= '1'; - when CALCB => - -- we need a branch in case of length "0"!!!! - state2 <= x"4"; - loadNextState <= LOAD; - data_phase_comb <= '1'; - when LOAD => - state2 <= x"5"; - -- gk 31.03.10 after loading subevent data read the subsubevent from sf - if (load_eod = '1') then - loadNextState <= LOAD_SUBSUB; - else - loadNextState <= LOAD; - data_phase_comb <= '1'; - end if; - -- gk 31.03.10 - when LOAD_SUBSUB => - state2 <= x"d"; - if( load_sub_done = '1' ) then - if( padding_needed = '0' ) then - loadNextState <= CALCC; - else - loadNextState <= PAD0; - pad_phase_comb <= '1'; - end if; - else - loadNextState <= LOAD_SUBSUB; - load_sub_comb <= '1'; - end if; - when PAD0 => - state2 <= x"6"; - loadNextState <= PAD1; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD1 => - state2 <= x"7"; - loadNextState <= PAD2; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD2 => - state2 <= x"8"; - loadNextState <= PAD3; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD3 => - state2 <= x"9"; - loadNextState <= CALCC; - pad_data_comb <= '1'; - when CALCC => - state2 <= x"a"; - loadNextState <= CLOSE; - pc_eod_comb <= '1'; - when CLOSE => - state2 <= x"b"; - loadNextState <= WAIT_PC; - rst_regs_comb <= '1'; - when WAIT_PC => - state2 <= x"c"; - if( PC_READY_IN = '1' ) then - loadNextState <= LIDLE; - else - loadNextState <= WAIT_PC; - end if; - when PAUSE_BEFORE_DROP1 => - loadNextState <= PAUSE_BEFORE_DROP2; - pc_sos_comb <= '1'; - when PAUSE_BEFORE_DROP2 => - loadNextState <= DROP; - drop_event_comb <= '1'; - -- gk 23.07.10 - when DROP => - state2 <= x"e"; - -- when data is dropped the eod marker stands as its end - if (load_eod = '1') then - loadNextState <= DROP_SUBSUB; - else - loadNextState <= DROP; - drop_event_comb <= '1'; - end if; - -- gk 25.07.10 - when DROP_SUBSUB => - if (load_sub_done = '1') then - if( padding_needed = '0' ) then - loadNextState <= CALCC; - else - loadNextState <= PAD0; - pad_phase_comb <= '1'; - end if; - else - loadNextState <= DROP_SUBSUB; - drop_sub_comb <= '1'; - end if; - when others => - state2 <= x"f"; - loadNextState <= LIDLE; - end case; -end process loadMachine; - --- gk 25.07.10 -INVALID_STATS_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - dropped_lr_events_ctr <= (others => '0'); - dropped_sm_events_ctr <= (others => '0'); - headers_invalid_ctr <= (others => '0'); - dropped_ctr <= (others => '0'); - invalid_hsize_ctr <= (others => '0'); - found_empty_evt_ctr <= (others => '0'); -- gk 01.10.10 - elsif (rst_regs = '1') then - invalid_hsize_lock <= '0'; - elsif (drop_small = '1') then - dropped_sm_events_ctr <= dropped_sm_events_ctr + x"1"; - dropped_ctr <= dropped_ctr + x"1"; - elsif (drop_large = '1') then - dropped_lr_events_ctr <= dropped_lr_events_ctr + x"1"; - dropped_ctr <= dropped_ctr + x"1"; - elsif (drop_headers = '1') then - headers_invalid_ctr <= headers_invalid_ctr + x"1"; - dropped_ctr <= dropped_ctr + x"1"; - elsif (load_eod_q = '1') and (read_size_q /= x"3fffe") and (invalid_hsize_lock = '0') then -- ?? - invalid_hsize_ctr <= invalid_hsize_ctr + x"1"; - invalid_hsize_lock <= '1'; - -- gk 01.10.10 - elsif (found_empty_evt = '1') then - found_empty_evt_ctr <= found_empty_evt_ctr + x"1"; - end if; - end if; -end process INVALID_STATS_PROC; - --- gk 05.08.10 -INVALID_H_PROC : process(CLK) -begin - if rising_edge(CLK) then - load_eod_q <= load_eod; - read_size_q <= read_size; - end if; -end process INVALID_H_PROC; - --- gk 26.04.10 -READOUT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (READOUT_CTR_VALID_IN = '1')) then - readout_ctr <= READOUT_CTR_IN; - readout_ctr_lock <= '0'; - elsif (pc_sos = '1') then - readout_ctr <= readout_ctr + x"1"; - end if; - end if; -end process READOUT_CTR_PROC; - ---****** --- SELECTION OF EVENT BUILDER ---****** - --- gk 27.03.10 -bank_select_proc : process( CLK ) -begin - if rising_edge( CLK ) then - -- gk 29.03.10 - if( (RESET = '1') or (rst_regs = '1') ) then - bank_select <= "0000"; - -- gk 01.06.10 THERE WAS A BUG, IT SHOUDL BE TAKEN FROM SF_Q - elsif( (sf_rd_en = '1') and (rem_ctr = x"2") ) then - bank_select <= pc_data(3 downto 0); --CTS_INFORMATION_IN(3 downto 0); - end if; - end if; -end process bank_select_proc; - --- gk 29.03.10 -start_config_proc : process( CLK ) -begin - if rising_edge( CLK ) then - if( (RESET = '1') or (config_done = '1') or (rst_regs = '1') ) then - start_config <= '0'; - elsif( (sf_rd_en = '1') and (rem_ctr = x"2") ) then -- gk 01.06.10 - start_config <= '1'; - end if; - end if; -end process start_config_proc; - - ---****** --- LOAD SUBSUBEVENT ---****** - --- gk 30.03.10 -load_sub_ctr_comb <= '1' when ( ((load_sub = '1') or (drop_sub = '1')) and (load_sub_done = '0') and (sf_aempty = '0') ) - else '0'; - --- gk 30.03.10 -LOAD_SUB_CTR_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 - load_sub_ctr <= (others => '0'); - elsif( (load_sub_ctr_comb = '1') ) then - load_sub_ctr <= load_sub_ctr + 1; - end if; - end if; -end process LOAD_SUB_CTR_PROC; - --- gk 30.03.10 --- load_sub_done_comb <= '1' when ((load_sub_ctr = x"7") and (drop_sub = '0')) or --- ((load_sub_ctr = x"4") and (drop_sub = '1')) --- else '0'; -load_sub_done_comb <= '1' when (load_sub_ctr = x"4") else '0'; - --- gk 30.03.10 -LOAD_SUB_DONE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 - load_sub_done <= '0'; - else - load_sub_done <= load_sub_done_comb; - end if; - end if; -end process LOAD_SUB_DONE_PROC; - ---****** --- EXTRACT EVENT HEADERS FROM SPLITFIFO ---****** - --- Counter for stripping the unneeded parts of the data stream, and saving the important parts -THE_REMOVE_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - rem_ctr <= (others => '0'); - elsif( (ce_rem_ctr = '1') ) then - rem_ctr <= rem_ctr + 1; - end if; - end if; -end process THE_REMOVE_CTR; - -remove_done_comb <= '1' when ( rem_ctr = x"8" ) else '0'; --( rem_ctr = x"6" ) else '0'; -- gk 29.03.10 two more for evt builder address - -THE_REM_DONE_SYNC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - remove_done <= '0'; - else - remove_done <= remove_done_comb; - end if; - end if; -end process THE_REM_DONE_SYNC; - --- gk 26.04.10 -TRIG_RANDOM_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (rst_regs = '1')) then - trig_random <= (others => '0'); - elsif ((sf_rd_en = '1') and (rem_ctr = x"4")) then - trig_random <= pc_data; - end if; - end if; -end process TRIG_RANDOM_PROC; - --- extract the trigger number from splitfifo data -THE_TRG_NR_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_trig_nr <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"6") ) then -- x"4" gk 29.03.10 - pc_trig_nr(7 downto 0) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"5") ) then -- x"3" gk 29.03.10 - pc_trig_nr(15 downto 8) <= pc_data; - end if; - end if; -end process THE_TRG_NR_PROC; - --- extract the subevent size from the splitfifo data, convert it from 32b to 8b units, --- and in case of padding needed increase it accordingly -THE_SUB_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_sub_size <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 - pc_sub_size(9 downto 2) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 - pc_sub_size(17 downto 10) <= pc_data; - -- gk 20.07.10 - -- gk 30.03.10 bug fixed in the way that is written below - -- gk 27.03.10 should be corrected by sending padding_needed signal to pc and take care of it when setting sub_size_to_save - elsif( (calc_pad = '1') and (padding_needed = '1') ) then - pc_sub_size <= pc_sub_size + x"4" + x"8"; -- BUG: SubEvtSize does NOT include 64bit padding!!! - elsif( (calc_pad = '1') and (padding_needed = '0') ) then - pc_sub_size <= pc_sub_size + x"8"; - end if; - end if; -end process THE_SUB_SIZE_PROC; - --- gk 25.07.10 -ENDP_ADDRESS_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (rst_regs = '1') then - endpoint_addr <= (others => '0'); - endp_addr_lock <= '0'; - elsif( (rem_ctr = x"a") and (endp_addr_lock = '0') ) then - endpoint_addr(7 downto 0) <= pc_data; - endp_addr_lock <= '1'; - elsif( (sf_rd_en = '1') and (rem_ctr = x"9") ) then - endpoint_addr(15 downto 8) <= pc_data; - endp_addr_lock <= '0'; - end if; - end if; -end process ENDP_ADDRESS_PROC; - - - --- check for padding -THE_PADDING_NEEDED_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - padding_needed <= '0'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '1') ) then - padding_needed <= '1'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '0') ) then - padding_needed <= '0'; - end if; - end if; -end process THE_PADDING_NEEDED_PROC; - --- number of bytes to read from split fifo -THE_READ_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then --(rst_rem_ctr = '1') ) then - read_size <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 - read_size(9 downto 2) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 - read_size(17 downto 10) <= pc_data; - elsif( ((sf_rd_en = '1') and (data_phase = '1')) ) then - read_size <= read_size - 1; - -- gk 25.07.10 - elsif( ((sf_rd_en = '1') and (drop_event = '1')) ) then - read_size <= read_size - 1; - end if; - end if; -end process THE_READ_SIZE_PROC; - -read_done_comb <= '1' when (read_size < 3 ) else '0'; -- "2" - ---****** --- EVENTS COUNTERS ---****** - --- gk 25.07.10 -LOADED_EVT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loaded_events_ctr <= (others => '0'); - elsif (remove_done = '1') then - loaded_events_ctr <= loaded_events_ctr + x"1"; - end if; - end if; -end process LOADED_EVT_CTR_PROC; - --- gk 25.07.10 -CONSTR_EVENTS_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - constr_events_ctr <= (others => '0'); - elsif (pc_eod = '1') then - constr_events_ctr <= constr_events_ctr + x"1"; - end if; - end if; -end process CONSTR_EVENTS_CTR_PROC; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Debug signals -debug(0) <= sf_full; -debug(1) <= sf_empty; -debug(2) <= sf_afull; -debug(3) <= sf_aempty; - -debug(7 downto 4) <= state2; - -debug(11 downto 8) <= state; - -dbg_bs_proc : process(CLK) -begin - if rising_edge(CLK) then - if RESET = '1' then - debug(15 downto 12) <= (others => '0'); - elsif ( (sf_rd_en = '1') and (rem_ctr = x"3") ) then - debug(15 downto 12) <= bank_select; - end if; - end if; -end process dbg_bs_proc; - -debug(16) <= config_done; -debug(17) <= remove_done; -debug(18) <= read_done; -debug(19) <= padding_needed; - -debug(20) <= load_sub_done; - -dbg_cts_inf_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - debug(39 downto 32) <= (others => '0'); - elsif ( save_addr = '1' ) then - debug(39 downto 32) <= CTS_INFORMATION_IN; - end if; - end if; -end process dbg_cts_inf_proc; - -debug(47 downto 40) <= (others => '0'); - - -debug(63 downto 48) <= actual_message_size(15 downto 0); - -dbg_pc_sub_size_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - debug(81 downto 64) <= (others => '0'); - elsif (loadCurrentState = DECIDE) then - debug(81 downto 64) <= pc_sub_size; - end if; - end if; -end process dbg_pc_sub_size_proc; - -dbg_empty_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (rst_regs = '1') then - debug(84 downto 82) <= (others => '0'); - elsif (read_size = 2) then - debug(82) <= sf_empty; - elsif (read_size = 1) then - debug(83) <= sf_empty; - elsif (read_size = 0) then - debug(84) <= sf_empty; - end if; - end if; -end process dbg_empty_proc; - -debug(95 downto 85) <= (others => '0'); - -dbg_inc_ctr_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - debug(127 downto 96) <= (others => '1'); - elsif (saveCurrentState = SCLOSE) then - debug(127 downto 96) <= inc_data_ctr; - end if; - end if; -end process dbg_inc_ctr_proc; - -debug(143 downto 128) <= dropped_sm_events_ctr(15 downto 0); -debug(159 downto 144) <= dropped_lr_events_ctr(15 downto 0); - -debug(175 downto 160) <= headers_invalid_ctr(15 downto 0); -debug(191 downto 176) <= (others => '0'); - -dbg_cts_q_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - cts_len_q <= (others => '0'); - cts_rnd_q <= (others => '0'); - cts_trg_q <= (others => '0'); - cts_addr_q <= (others => '0'); - elsif (cts_len_saved = '1') then - cts_len_q <= cts_len(16 downto 1); - cts_addr_q <= cts_addr; - cts_rnd_q <= cts_rnd; - cts_trg_q <= cts_trg; - end if; - end if; -end process dbg_cts_q_proc; - -debug(207 downto 192) <= cts_trg_q; -debug(223 downto 208) <= cts_rnd_q; -debug(239 downto 224) <= cts_addr_q; -debug(255 downto 240) <= cts_len_q; -debug(271 downto 256) <= first_run_trg; -debug(287 downto 272) <= first_run_addr; - -debug(303 downto 288) <= saved_events_ctr; -debug(319 downto 304) <= loaded_events_ctr; - -debug(335 downto 320) <= constr_events_ctr(15 downto 0); -debug(351 downto 336) <= dropped_ctr(15 downto 0); - -debug(367 downto 352) <= invalid_hsize_ctr; -debug(383 downto 368) <= (others => '0'); - -MONITOR_OUT(31 downto 0) <= constr_events_ctr; -MONITOR_OUT(63 downto 32) <= dropped_ctr; -MONITOR_OUT(95 downto 64) <= headers_invalid_ctr; -MONITOR_OUT(127 downto 96) <= dropped_sm_events_ctr; -MONITOR_OUT(159 downto 128) <= dropped_lr_events_ctr; -MONITOR_OUT(163 downto 160) <= b"1111" when (sf_afull = '1') else b"0000"; -MONITOR_OUT(191 downto 164) <= (others => '0'); -MONITOR_OUT(223 downto 192) <= found_empty_evt_ctr; -- gk 01.10.10 - --- Outputs -FEE_READ_OUT <= fee_read; -CTS_ERROR_PATTERN_OUT <= cts_error_pattern; -CTS_DATA_OUT <= cts_data; -CTS_DATAREADY_OUT <= cts_dataready; -CTS_READOUT_FINISHED_OUT <= cts_readout_finished; -CTS_LENGTH_OUT <= cts_length; - -PC_SOS_OUT <= pc_sos; -PC_EOD_OUT <= pc_eod; -- gk 26.07.10 --pc_eod_q; -PC_DATA_OUT <= pc_data_q; -PC_WR_EN_OUT <= pc_wr_en_qq; - -PC_TRIG_NR_OUT <= readout_ctr(23 downto 16) & pc_trig_nr & trig_random; - -PC_SUB_SIZE_OUT <= b"0000_0000_0000_00" & pc_sub_size; -PC_PADDING_OUT <= padding_needed; - -DEBUG_OUT <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_ipu2gbe_nologic.vhd b/gbe2_ecp3/trb_net16_ipu2gbe_nologic.vhd deleted file mode 100644 index 29b1529..0000000 --- a/gbe2_ecp3/trb_net16_ipu2gbe_nologic.vhd +++ /dev/null @@ -1,1403 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; - -entity trb_net16_ipu2gbe is -port( - CLK : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- slow control interface - START_CONFIG_OUT : out std_logic; -- reconfigure MACs/IPs/ports/packet size - BANK_SELECT_OUT : out std_logic_vector(3 downto 0); -- configuration page address - CONFIG_DONE_IN : in std_logic; -- configuration finished - DATA_GBE_ENABLE_IN : in std_logic; -- IPU data is forwarded to GbE - DATA_IPU_ENABLE_IN : in std_logic; -- IPU data is forwarded to CTS / TRBnet - MULT_EVT_ENABLE_IN : in std_logic; - MAX_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- the maximum size of one HadesQueue -- gk 08.04.10 - MIN_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- gk 20.07.10 - READOUT_CTR_IN : in std_logic_vector(23 downto 0); -- gk 26.04.10 - READOUT_CTR_VALID_IN : in std_logic; -- gk 26.04.10 - -- PacketConstructor interface - ALLOW_LARGE_IN : in std_logic; -- gk 21.07.10 - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOS_OUT : out std_logic; -- gk 07.10.10 - PC_EOD_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_PADDING_OUT : out std_logic; - MONITOR_OUT : out std_logic_vector(223 downto 0); - DEBUG_OUT : out std_logic_vector(383 downto 0) -); -end entity; - -architecture trb_net16_ipu2gbe of trb_net16_ipu2gbe is - --- attribute HGROUP : string; --- attribute HGROUP of trb_net16_ipu2gbe : architecture is "GBE_ipu2gbe"; - -component fifo_32kx16x8_mb2 -port( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(8 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); - Empty : out std_logic; - AlmostEmpty : out std_logic; - Full : out std_logic; - AlmostFull : out std_logic -); -end component; - -type saveStates is (SIDLE, SAVE_EVT_ADDR, WAIT_FOR_DATA, SAVE_DATA, ADD_SUBSUB1, ADD_SUBSUB2, ADD_SUBSUB3, ADD_SUBSUB4, TERMINATE, SCLOSE); -signal saveCurrentState, saveNextState : saveStates; -signal state : std_logic_vector(3 downto 0); -signal data_req_comb : std_logic; -signal data_req : std_logic; -- request data signal, will be used for fee_read generation -signal rst_saved_ctr_comb : std_logic; -signal rst_saved_ctr : std_logic; - -signal fee_read_comb : std_logic; -signal fee_read : std_logic; -- fee_read signal -signal saved_ctr : std_logic_vector(16 downto 0); -signal ce_saved_ctr : std_logic; - --- header data -signal cts_rnd : std_logic_vector(15 downto 0); -signal cts_rnd_saved : std_logic; -signal cts_trg : std_logic_vector(15 downto 0); -signal cts_trg_saved : std_logic; -signal cts_len : std_logic_vector(16 downto 0); -signal cts_len_saved : std_logic; - --- CTS interface -signal cts_error_pattern : std_logic_vector(31 downto 0); -signal cts_length : std_logic_vector(15 downto 0); -signal cts_readout_finished : std_logic; -signal cts_dataready : std_logic; -signal cts_data : std_logic_vector(31 downto 0); - --- Split FIFO signals -signal sf_data : std_logic_vector(15 downto 0); -signal sf_wr_en_comb : std_logic; -signal sf_wr_en : std_logic; -- write signal for FIFO -signal sf_rd_en_comb : std_logic; -signal sf_rd_en : std_logic; -- read signal for FIFO -signal sf_wcnt : std_logic_vector(15 downto 0); -signal sf_rcnt : std_logic_vector(16 downto 0); -signal sf_empty : std_logic; -signal sf_aempty : std_logic; -signal sf_full : std_logic; -signal sf_afull : std_logic; - -------------------------------------------------------------------- -type loadStates is (LIDLE, INIT, REMOVE, DECIDE, CALCA, CALCB, LOAD, PAD0, PAD1, PAD2, PAD3, LOAD_SUBSUB, CALCC, CLOSE, WAIT_PC, DROP, WAIT_TO_REMOVE, DROP_SUBSUB, PAUSE_BEFORE_DROP1, PAUSE_BEFORE_DROP2); -signal loadCurrentState, loadNextState : loadStates; -signal state2 : std_logic_vector(3 downto 0); - -signal rem_ctr : std_logic_vector(3 downto 0); -- counter for stripping / storing header data -signal rst_rem_ctr_comb : std_logic; -signal rst_rem_ctr : std_logic; -- reset the remove counter -signal rst_regs_comb : std_logic; -signal rst_regs : std_logic; -- reset storage registers -signal rem_phase_comb : std_logic; -signal rem_phase : std_logic; -- header remove phase -signal data_phase_comb : std_logic; -signal data_phase : std_logic; -- data transport phase from split fifo to PC -signal pad_phase_comb : std_logic; -signal pad_phase : std_logic; -- padding phase -signal calc_pad_comb : std_logic; -signal calc_pad : std_logic; -- check if padding bytes need to be added to PC_SUB_SIZE -signal pad_data_comb : std_logic; -signal pad_data : std_logic; -- reset PC_DATA register to known padding byte value - -signal pc_sos_comb : std_logic; -signal pc_sos : std_logic; -- start of data signal -signal pc_eod_comb : std_logic; -signal pc_eod : std_logic; -- end of data signal - -signal ce_rem_ctr_comb : std_logic; -signal ce_rem_ctr : std_logic; -- count enable for remove counter -signal remove_done_comb : std_logic; -signal remove_done : std_logic; -- end of header stripping process -signal read_done_comb : std_logic; -signal read_done : std_logic; -- end of data phase (read phase from SF) - -signal pc_data : std_logic_vector(7 downto 0); -signal pc_data_q : std_logic_vector(7 downto 0); -signal pc_trig_nr : std_logic_vector(15 downto 0); -signal pc_sub_size : std_logic_vector(17 downto 0); -signal read_size : std_logic_vector(17 downto 0); -- number of byte to be read from split fifo -signal padding_needed : std_logic; -signal pc_wr_en_comb : std_logic; -signal pc_wr_en_q : std_logic; -signal pc_wr_en_qq : std_logic; -signal pc_wr_en_qqq : std_logic; -signal pc_eod_q : std_logic; - -signal debug : std_logic_vector(383 downto 0); - --- gk -signal bank_select : std_logic_vector(3 downto 0); -signal save_addr_comb : std_logic; -signal save_addr : std_logic; -signal addr_saved_comb : std_logic; -signal addr_saved : std_logic; -signal start_config : std_logic; -signal config_done : std_logic; -signal add_sub_state : std_logic; -signal add_sub_state_comb : std_logic; -signal add_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub : std_logic; -signal load_sub_comb : std_logic; -signal load_sub_done : std_logic; -signal load_sub_done_comb : std_logic; -signal load_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub_ctr_comb : std_logic; -signal actual_message_size : std_logic_vector(31 downto 0); -signal more_subevents : std_logic; -signal trig_random : std_logic_vector(7 downto 0); -signal readout_ctr : std_logic_vector(23 downto 0); -signal readout_ctr_lock : std_logic; -signal pc_trig_nr_q : std_logic_vector(31 downto 0); - --- gk 20.07.10 -signal inc_data_ctr : std_logic_vector(31 downto 0); -signal dropped_sm_events_ctr : std_logic_vector(31 downto 0); -signal dropped_lr_events_ctr : std_logic_vector(31 downto 0); -signal dropped_ctr : std_logic_vector(31 downto 0); --- gk 22.07.10 -signal headers_invalid : std_logic; -signal headers_invalid_ctr : std_logic_vector(31 downto 0); -signal cts_len_q : std_logic_vector(15 downto 0); -signal cts_trg_q : std_logic_vector(15 downto 0); -signal cts_rnd_q : std_logic_vector(15 downto 0); -signal first_run_trg : std_logic_vector(15 downto 0); -signal first_run_addr : std_logic_vector(15 downto 0); -signal first_run_lock : std_logic; -signal cts_addr : std_logic_vector(15 downto 0); -signal cts_addr_q : std_logic_vector(15 downto 0); -signal cts_addr_saved : std_logic; - --- gk 24.07.10 -signal save_eod : std_logic; -signal save_eod_comb : std_logic; - -signal load_eod : std_logic; -signal endpoint_addr : std_logic_vector(15 downto 0); -signal endp_addr_lock : std_logic; - -signal saved_events_ctr : std_logic_vector(15 downto 0); -signal loaded_events_ctr : std_logic_vector(15 downto 0); -signal constr_events_ctr : std_logic_vector(31 downto 0); -signal event_waiting : std_logic; - -signal drop_sub : std_logic; -signal drop_sub_comb : std_logic; -signal drop_event : std_logic; -signal drop_event_comb : std_logic; -signal drop_small : std_logic; -signal drop_large : std_logic; -signal drop_headers : std_logic; -signal drop_small_comb : std_logic; -signal drop_large_comb : std_logic; -signal drop_headers_comb : std_logic; -signal inc_trg_ctr : std_logic; -signal inc_trg_ctr_comb : std_logic; - -signal invalid_hsize_ctr : std_logic_vector(15 downto 0); -signal invalid_hsize_lock : std_logic; - -signal load_eod_q : std_logic; -signal read_size_q : std_logic_vector(17 downto 0); - --- gk 06.08.10 write to fifo only if gbe is enabled but keep the saving logic unblocked -signal sf_real_wr_en : std_logic; - --- gk 01.10.10 -signal found_empty_evt : std_logic; -signal found_empty_evt_comb : std_logic; -signal found_empty_evt_ctr : std_logic_vector(31 downto 0); - --- gk 06.10.10 -signal message_size : std_logic_vector(31 downto 0); - --- gk 07.12.10 -signal prev_bank_select : std_logic_vector(3 downto 0); -signal first_event : std_logic; - -begin - -BANK_SELECT_OUT <= bank_select; -- gk 27.03.10 -START_CONFIG_OUT <= start_config; -- gk 27.03.10 -config_done <= CONFIG_DONE_IN; -- gk 29.03.10 - --- CTS interface signals -cts_error_pattern <= (others => '0'); -- FAKE - -cts_length <= x"0000"; -- length of data payload is always 0 -cts_data <= b"0001" & cts_rnd(11 downto 0) & cts_trg; -- reserved bits = '0', pack bit = '1' - -cts_readout_finished <= '1' when (saveCurrentState = SCLOSE) else '0'; - -cts_dataready <= '1' when ((saveCurrentState = SAVE_DATA) and (FEE_BUSY_IN = '0')) or (saveCurrentState = TERMINATE) - else '0'; - --- Byte swapping... done here. TAKE CARE! --- The split FIFO is in natural bus order (i.e. Motorola style, [15:0]). This means that the two bytes --- on the write side need to be swapped to appear in GbE style (i.e. Intel style) on the 8bit port. --- Please mind that PC_SUB_SIZE and PC_TRIG_NR stay in a human readable format, and need to be byteswapped --- for GbE inside the packet constructor. --- --- Long live the Endianess! - --- Sync all critical pathes -THE_SYNC_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - --sf_data <= FEE_DATA_IN; -- gk 27.03.10 moved out to the process below - sf_wr_en <= sf_wr_en_comb; - ce_rem_ctr <= ce_rem_ctr_comb; - sf_rd_en <= sf_rd_en_comb; - fee_read <= fee_read_comb; - read_done <= read_done_comb; - pc_eod_q <= pc_eod; - pc_wr_en_qqq <= pc_wr_en_qq; - pc_wr_en_qq <= pc_wr_en_q; - pc_wr_en_q <= pc_wr_en_comb; - end if; -end process THE_SYNC_PROC; - --- -- gk 27.03.10 data selector for sf to write the evt builder address on top of data --- SF_DATA_PROC : process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if (RESET = '1') then -- gk 31.05.10 --- sf_data <= (others => '0'); --- elsif( save_addr = '1' ) then --- sf_data(3 downto 0) <= CTS_INFORMATION_IN(3 downto 0); -- only last 4 bits are the evt builder address --- sf_data(15 downto 4) <= x"abc"; --- -- gk 29.03.10 four entries to save the fee_status into sf for the subsubevent --- elsif( (add_sub_state = '1') and (add_sub_ctr = x"0") ) then --- sf_data <= x"0001"; -- gk 11.06.10 --- elsif( (add_sub_state = '1') and (add_sub_ctr = x"1") ) then --- sf_data <= x"5555"; -- gk 11.06.10 --- elsif( (add_sub_state = '1') and (add_sub_ctr = x"2") ) then --- sf_data <= FEE_STATUS_BITS_IN(31 downto 16); --- elsif( (add_sub_state = '1') and (add_sub_ctr = x"3") ) then --- sf_data <= FEE_STATUS_BITS_IN(15 downto 0); --- else --- sf_data <= FEE_DATA_IN; --- end if; --- end if; --- end process SF_DATA_PROC; - --- combinatorial read signal for the FEE data interface, DO NOT USE DIRECTLY -fee_read_comb <= '1' when ( (sf_afull = '0') and (data_req = '1') ) --and (DATA_GBE_ENABLE_IN = '1') ) -- GbE enabled - else '0'; - --- combinatorial write signal for the split FIFO, DO NOT USE DIRECTLY -sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') ) or -- and (DATA_GBE_ENABLE_IN = '1') ) or -- GbE enabled - (save_addr = '1') or - (add_sub_state = '1') -- gk 29.03.10 save the subsubevent - else '0'; - --- gk 06.08.10 -sf_real_wr_en <= '1' when ((sf_wr_en = '1') and (DATA_GBE_ENABLE_IN = '1')) else '0'; - --- gk 27.03.10 do not count evt builder address as saved ipu bytes ---ce_saved_ctr <= sf_wr_en; -ce_saved_ctr <= '0' when addr_saved = '1' else sf_wr_en; - --- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO --- saveMachineProc: process( CLK ) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- saveCurrentState <= SIDLE; --- data_req <= '0'; --- rst_saved_ctr <= '0'; --- save_addr <= '0'; -- gk 27.03.10 --- addr_saved <= '0'; -- gk 27.03.10 --- add_sub_state <= '0'; -- gk 29.03.10 --- save_eod <= '0'; -- gk 25.07.10 --- else --- saveCurrentState <= saveNextState; --- data_req <= data_req_comb; --- rst_saved_ctr <= rst_saved_ctr_comb; --- save_addr <= save_addr_comb; -- gk 27.03.10 --- addr_saved <= addr_saved_comb; -- gk 27.03.10 --- add_sub_state <= add_sub_state_comb; -- gk 29.03.10 --- save_eod <= save_eod_comb; -- gk 25.07.10 --- end if; --- end if; --- end process saveMachineProc; --- --- saveMachine: process( saveCurrentState, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN) --- begin --- saveNextState <= SIDLE; --- data_req_comb <= '0'; --- rst_saved_ctr_comb <= '0'; --- save_addr_comb <= '0'; -- gk 27.03.10 --- addr_saved_comb <= '0'; -- gk 27.03.10 --- add_sub_state_comb <= '0'; -- gk 29.03.10 --- save_eod_comb <= '0'; -- gk 25.07.10 --- case saveCurrentState is --- when SIDLE => --- state <= x"0"; --- if (CTS_START_READOUT_IN = '1') then --- saveNextState <= SAVE_EVT_ADDR; --WAIT_FOR_DATA; -- gk 27.03.10 --- data_req_comb <= '1'; --- rst_saved_ctr_comb <= '1'; --- else --- saveNextState <= SIDLE; --- end if; --- -- gk 27.03.10 --- when SAVE_EVT_ADDR => --- state <= x"5"; --- saveNextState <= WAIT_FOR_DATA; --- data_req_comb <= '1'; --- save_addr_comb <= '1'; --- when WAIT_FOR_DATA => --- state <= x"1"; --- if (FEE_BUSY_IN = '1') then --- saveNextState <= SAVE_DATA; --- data_req_comb <= '1'; --- else --- saveNextState <= WAIT_FOR_DATA; --- data_req_comb <= '1'; --- end if; --- addr_saved_comb <= '1'; -- gk 27.03.10 --- when SAVE_DATA => --- state <= x"2"; --- if (FEE_BUSY_IN = '0') then --- saveNextState <= TERMINATE; --- else --- saveNextState <= SAVE_DATA; --- data_req_comb <= '1'; --- end if; --- when TERMINATE => --- state <= x"3"; --- if (CTS_READ_IN = '1') then --- saveNextState <= SCLOSE; --- else --- saveNextState <= TERMINATE; --- end if; --- when SCLOSE => --- state <= x"4"; --- if (CTS_START_READOUT_IN = '0') then --- saveNextState <= ADD_SUBSUB1; --SIDLE; -- gk 29.03.10 --- else --- saveNextState <= SCLOSE; --- end if; --- -- gk 29.03.10 new states during which the subsub bytes are saved --- when ADD_SUBSUB1 => --- state <= x"6"; --- saveNextState <= ADD_SUBSUB2; --- add_sub_state_comb <= '1'; --- when ADD_SUBSUB2 => --- state<= x"7"; --- saveNextState <= ADD_SUBSUB3; --- add_sub_state_comb <= '1'; --- save_eod_comb <= '1'; --- when ADD_SUBSUB3 => --- state<= x"8"; --- saveNextState <= ADD_SUBSUB4; --- add_sub_state_comb <= '1'; --- when ADD_SUBSUB4 => --- state<= x"9"; --- saveNextState <= SIDLE; --- add_sub_state_comb <= '1'; --- when others => --- state <= x"f"; --- saveNextState <= SIDLE; --- end case; --- end process saveMachine; --- --- -- gk 29.03.10 --- ADD_SUB_CTR_PROC : process( CLK ) --- begin --- if( rising_edge( CLK ) ) then --- if( (RESET = '1') or (rst_saved_ctr = '1') ) then --- add_sub_ctr <= (others => '0'); --- elsif( add_sub_state = '1' ) then --- add_sub_ctr <= add_sub_ctr + 1; --- end if; --- end if; --- end process ADD_SUB_CTR_PROC; --- --- --******** --- -- SAVE INCOMING EVENT HEADERS --- --******** --- --- -- Counter for header word storage --- THE_CTS_SAVED_CTR: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_saved_ctr = '1') ) then --- saved_ctr <= (others => '0'); --- elsif( ce_saved_ctr = '1' ) then --- saved_ctr <= saved_ctr + 1; --- end if; --- end if; --- end process THE_CTS_SAVED_CTR; --- --- -- save triggerRnd from incoming data for cts response --- CTS_RND_PROC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_saved_ctr = '1') ) then --- cts_rnd <= (others => '0'); --- cts_rnd_saved <= '0'; --- elsif( (saved_ctr(2 downto 0) = b"000") and (sf_wr_en = '1') and (cts_rnd_saved = '0') ) then --- cts_rnd <= sf_data; --- cts_rnd_saved <= '1'; --- end if; --- end if; --- end process CTS_RND_PROC; --- --- -- save triggerNr from incoming data for cts response --- CTS_TRG_PROC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_saved_ctr = '1') ) then --- cts_trg <= (others => '0'); --- cts_trg_saved <= '0'; --- elsif( (saved_ctr(2 downto 0) = b"001") and (sf_wr_en = '1') and (cts_trg_saved = '0') ) then --- cts_trg <= sf_data; --- cts_trg_saved <= '1'; --- end if; --- end if; --- end process CTS_TRG_PROC; --- --- -- save size from incoming data for cts response (future) and to get rid of padding --- CTS_SIZE_PROC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_saved_ctr = '1') ) then --- cts_len <= (others => '0'); --- cts_len_saved <= '0'; --- elsif( (saved_ctr(2 downto 0) = b"010") and (sf_wr_en = '1') and (cts_len_saved = '0') ) then --- cts_len(16 downto 1) <= sf_data; -- change from 32b words to 16b words --- cts_len(0) <= '0'; --- elsif( (saved_ctr(2 downto 0) = b"011") and (cts_len_saved = '0') ) then --- cts_len <= cts_len + x"4"; --- cts_len_saved <= '1'; --- end if; --- end if; --- end process CTS_SIZE_PROC; --- --- -- gk 22.07.10 --- CTS_ADDR_PROC : process(CLK) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_saved_ctr = '1') ) then --- cts_addr <= (others => '0'); --- cts_addr_saved <= '0'; --- elsif( (saved_ctr(2 downto 0) = b"011") and (sf_wr_en = '1') and (cts_addr_saved = '0') ) then --- cts_addr <= sf_data; --- cts_addr_saved <= '1'; --- end if; --- end if; --- end process CTS_ADDR_PROC; --- --- --****** --- -- SAVE FIRST EVENT HEADER VALUES --- --****** --- --- -- gk 22.07.10 --- FIRST_RUN_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- first_run_trg <= (others => '0'); --- first_run_addr <= (others => '0'); --- first_run_lock <= '0'; --- elsif (first_run_lock = '0') and (cts_addr_saved = '1') then --- first_run_trg <= cts_trg; --- first_run_addr <= cts_addr; --- first_run_lock <= '1'; --- -- important: value saved by saveMachine but incremented by loadMachine --- elsif (first_run_lock = '1') and (inc_trg_ctr = '1') then --- first_run_trg <= first_run_trg + x"1"; --- end if; --- end if; --- end process FIRST_RUN_PROC; --- --- -- gk 25.07.10 --- SAVED_EVT_CTR_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- saved_events_ctr <= (others => '0'); --- elsif (save_eod = '1') then --- saved_events_ctr <= saved_events_ctr + x"1"; --- end if; --- end if; --- end process SAVED_EVT_CTR_PROC; --- --- --- -- gk 20.07.10 --- INC_DATA_CTR_proc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (rst_saved_ctr = '1') then --- inc_data_ctr <= (others => '0'); --- elsif (sf_wr_en = '1') and (data_req = '1') then --- inc_data_ctr(31 downto 1) <= inc_data_ctr(31 downto 1) + x"1"; --- end if; --- end if; --- end process INC_DATA_CTR_proc; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Split FIFO --- THE_SPLIT_FIFO: fifo_32kx16x8_mb2 --- port map( --- -- Byte swapping for correct byte order on readout side of FIFO --- Data(7 downto 0) => sf_data(15 downto 8), --- Data(8) => '0', --- Data(16 downto 9) => sf_data(7 downto 0), --- Data(17) => save_eod, --- WrClock => CLK, --- RdClock => CLK, --- WrEn => sf_real_wr_en, -- gk 06.08.10 --sf_wr_en, --- RdEn => sf_rd_en, --- Reset => RESET, --- RPReset => RESET, --- AmEmptyThresh => b"0000_0000_0000_0010", -- one byte ahead --- AmFullThresh => b"111_1111_1110_1111", -- 0x7fef = 32751 --- Q(7 downto 0) => pc_data, --- Q(8) => load_eod, --- WCNT => sf_wcnt, --- RCNT => sf_rcnt, --- Empty => sf_empty, --- AlmostEmpty => sf_aempty, --- Full => sf_full, --- AlmostFull => sf_afull --- ); - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- gk 25.07.10 --- EVENT_WAITING_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- event_waiting <= '0'; --- elsif (loaded_events_ctr /= saved_events_ctr) then --- event_waiting <= '1'; --- else --- event_waiting <= '0'; --- end if; --- end if; --- end process EVENT_WAITING_PROC; --- --- -- write signal for PC data --- pc_wr_en_comb <= '1' when ((data_phase = '1') and (sf_rd_en = '1')) or --- (pad_phase = '1') or --- ((load_sub = '1') and (sf_rd_en = '1')) or --- ((drop_sub = '1') and (sf_rd_en = '1')) or --- ((drop_event = '1') and (sf_rd_en = '1')) --- else '0'; --- --- sf_rd_en_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and (remove_done = '0') ) or --- --( (sf_aempty = '0') and (data_phase = '1') and (read_done = '0') ) or --- ( (sf_aempty = '0') and (data_phase = '1') and (load_eod = '0') ) or -- gk 26.07.10 --- ( (sf_aempty = '0') and (load_sub = '1') and (load_sub_done = '0') ) or -- gk 30.03.10 --- ( (sf_aempty = '0') and (drop_event = '1') and (load_eod = '0') ) or --- ( (sf_aempty = '0') and (drop_sub = '1') and (load_sub_done = '0') ) --- else '0'; --- --- ce_rem_ctr_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and ( remove_done = '0') ) --- else '0'; --- --- -- FIFO data delay process (also forces padding bytes to known value) --- THE_DATA_DELAY_PROC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if( pad_data = '1' ) then --- pc_data_q <= x"aa"; -- padding for 64bit --- -- gk 21.07.10 --- -- set the error flag if a broken packet is sent --- elsif (drop_sub = '1') and (load_sub_ctr = x"3") then --- pc_data_q <= pc_data(7 downto 3) & '1' & pc_data(1 downto 0); --- else --- pc_data_q <= pc_data; --- end if; --- end if; --- end process THE_DATA_DELAY_PROC; --- --- -- Statemachine for reading the data payload from the SPLIT_FIFO and feeding --- -- it into the packet constructor --- loadMachineProc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- loadCurrentState <= LIDLE; --- rst_rem_ctr <= '0'; --- rem_phase <= '0'; --- calc_pad <= '0'; --- data_phase <= '0'; --- pad_phase <= '0'; --- pc_sos <= '0'; --- pc_eod <= '0'; --- rst_regs <= '0'; --- pad_data <= '0'; --- load_sub <= '0'; -- gk 30.03.10 --- drop_sub <= '0'; -- gk 25.07.10 --- drop_event <= '0'; -- gk 25.07.10 --- drop_small <= '0'; -- gk 25.07.10 --- drop_large <= '0'; -- gk 25.07.10 --- drop_headers <= '0'; -- gk 25.07.10 --- inc_trg_ctr <= '0'; -- gk 26.07.10 --- found_empty_evt <= '0'; -- gk 01.10.10 --- else --- loadCurrentState <= loadNextState; --- rst_rem_ctr <= rst_rem_ctr_comb; --- rem_phase <= rem_phase_comb; --- calc_pad <= calc_pad_comb; --- data_phase <= data_phase_comb; --- pad_phase <= pad_phase_comb; --- pc_sos <= pc_sos_comb; --- pc_eod <= pc_eod_comb; --- rst_regs <= rst_regs_comb; --- pad_data <= pad_data_comb; --- load_sub <= load_sub_comb; -- gk 30.03.1 --- drop_sub <= drop_sub_comb; -- gk 25.07.10 --- drop_event <= drop_event_comb; -- gk 25.07.10 --- drop_small <= drop_small_comb; -- gk 25.07.10 --- drop_large <= drop_large_comb; -- gk 25.07.10 --- drop_headers <= drop_headers_comb; -- gk 25.07.10 --- inc_trg_ctr <= inc_trg_ctr_comb; -- gk 26.07.10 --- found_empty_evt <= found_empty_evt_comb; -- gk 01.10.10 --- end if; --- end if; --- end process loadMachineProc; --- --- loadMachine : process( loadCurrentState, sf_aempty, remove_done, read_done, padding_needed, --- PC_READY_IN, load_sub_done, pc_sub_size, MIN_MESSAGE_SIZE_IN, --- MAX_MESSAGE_SIZE_IN, pc_trig_nr, first_run_trg, endpoint_addr, --- first_run_addr, load_eod, event_waiting, MULT_EVT_ENABLE_IN, message_size) --- begin --- loadNextState <= LIDLE; --- rst_rem_ctr_comb <= '0'; --- rem_phase_comb <= '0'; --- calc_pad_comb <= '0'; --- data_phase_comb <= '0'; --- pad_phase_comb <= '0'; --- pc_sos_comb <= '0'; --- pc_eod_comb <= '0'; --- rst_regs_comb <= '0'; --- pad_data_comb <= '0'; --- load_sub_comb <= '0'; -- gk 30.03.10 --- drop_sub_comb <= '0'; -- gk 25.07.10 --- drop_event_comb <= '0'; -- gk 25.07.10 --- drop_small_comb <= '0'; -- gk 25.07.10 --- drop_large_comb <= '0'; -- gk 25.07.10 --- drop_headers_comb <= '0'; -- gk 25.07.10 --- inc_trg_ctr_comb <= '0'; -- gk 26.07.10 --- found_empty_evt_comb <= '0'; -- gk 01.10.10 --- case loadCurrentState is --- when LIDLE => --- state2 <= x"0"; --- -- gk 23.07.10 --- if( (sf_aempty = '0') and (event_waiting = '1') and (DATA_GBE_ENABLE_IN = '1') ) then -- gk 06.08.10 -- and (PC_READY_IN = '1') --- loadNextState <= INIT; --- rst_rem_ctr_comb <= '1'; --- rst_regs_comb <= '1'; --- else --- loadNextState <= LIDLE; --- end if; --- when INIT => --- state2 <= x"1"; --- loadNextState <= REMOVE; --- rem_phase_comb <= '1'; --- when REMOVE => --- state2 <= x"2"; --- if( remove_done = '1' ) then --- -- gk 06.10.10 --- if (MULT_EVT_ENABLE_IN = '1') then --- if (message_size + pc_sub_size < MAX_MESSAGE_SIZE_IN) then --- --loadNextState <= WAIT_TO_REMOVE; --- -- gk 07.12.10 --- if (first_event = '0') and (prev_bank_select /= bank_select) then -- check if event builder address changed, if so close the current packet --- loadNextState <= WAIT_PC; --- else --- loadNextState <= WAIT_TO_REMOVE; --- end if; --- --- else --- loadNextState <= WAIT_PC; --- end if; --- else --- loadNextState <= WAIT_TO_REMOVE; --- end if; --- inc_trg_ctr_comb <= '1'; --- else --- loadNextState <= REMOVE; --- rem_phase_comb <= '1'; --- end if; --- when WAIT_TO_REMOVE => --- if (rem_ctr = x"a") then --- loadNextState <= DECIDE; --- else --- loadNextState <= WAIT_TO_REMOVE; --- end if; --- when DECIDE => --- if (pc_sub_size >= MAX_MESSAGE_SIZE_IN) then --- loadNextState <= PAUSE_BEFORE_DROP1; --- drop_large_comb <= '1'; --- elsif (pc_sub_size = b"0000_0000_0000_00") then -- gk 01.10.10 --- loadNextState <= CALCA; --- found_empty_evt_comb <= '1'; --- elsif (pc_sub_size < MIN_MESSAGE_SIZE_IN) then --- loadNextState <= PAUSE_BEFORE_DROP1; --- drop_small_comb <= '1'; --- elsif (pc_trig_nr + x"1" /= first_run_trg) then --- loadNextState <= PAUSE_BEFORE_DROP1; --- drop_headers_comb <= '1'; --- elsif (endpoint_addr /= first_run_addr) then --- loadNextState <= PAUSE_BEFORE_DROP1; --- drop_headers_comb <= '1'; --- else --- loadNextState <= CALCA; --- end if; --- calc_pad_comb <= '1'; --- when CALCA => --- state2 <= x"3"; --- loadNextState <= CALCB; --- pc_sos_comb <= '1'; --- when CALCB => --- -- we need a branch in case of length "0"!!!! --- state2 <= x"4"; --- loadNextState <= LOAD; --- data_phase_comb <= '1'; --- when LOAD => --- state2 <= x"5"; --- if (load_eod = '1') then --- loadNextState <= LOAD_SUBSUB; --- else --- loadNextState <= LOAD; --- data_phase_comb <= '1'; --- end if; --- -- gk 31.03.10 --- when LOAD_SUBSUB => --- state2 <= x"d"; --- if( load_sub_done = '1' ) then --- if( padding_needed = '0' ) then --- loadNextState <= CALCC; --- else --- loadNextState <= PAD0; --- pad_phase_comb <= '1'; --- end if; --- else --- loadNextState <= LOAD_SUBSUB; --- load_sub_comb <= '1'; --- end if; --- when PAD0 => --- state2 <= x"6"; --- loadNextState <= PAD1; --- pad_phase_comb <= '1'; --- pad_data_comb <= '1'; --- when PAD1 => --- state2 <= x"7"; --- loadNextState <= PAD2; --- pad_phase_comb <= '1'; --- pad_data_comb <= '1'; --- when PAD2 => --- state2 <= x"8"; --- loadNextState <= PAD3; --- pad_phase_comb <= '1'; --- pad_data_comb <= '1'; --- when PAD3 => --- state2 <= x"9"; --- loadNextState <= CALCC; --- pad_data_comb <= '1'; --- when CALCC => --- state2 <= x"a"; --- if (MULT_EVT_ENABLE_IN = '1') then --- loadNextState <= LIDLE; --- else --- loadNextState <= CLOSE; --- end if; --- pc_eod_comb <= '1'; --- when CLOSE => --- state2 <= x"b"; --- loadNextState <= WAIT_PC; --- --rst_regs_comb <= '1'; -- gk 07.10.10 --- when WAIT_PC => --- state2 <= x"c"; --- if( PC_READY_IN = '1' ) then --- -- gk 06.10.10 --- if (MULT_EVT_ENABLE_IN = '1') then --- loadNextState <= WAIT_TO_REMOVE; --- else --- loadNextState <= LIDLE; --- end if; --- else --- loadNextState <= WAIT_PC; --- end if; --- when PAUSE_BEFORE_DROP1 => --- loadNextState <= PAUSE_BEFORE_DROP2; --- pc_sos_comb <= '1'; --- when PAUSE_BEFORE_DROP2 => --- loadNextState <= DROP; --- drop_event_comb <= '1'; --- -- gk 23.07.10 --- when DROP => --- state2 <= x"e"; --- -- when data is dropped the eod marker stands as its end --- if (load_eod = '1') then --- loadNextState <= DROP_SUBSUB; --- else --- loadNextState <= DROP; --- drop_event_comb <= '1'; --- end if; --- -- gk 25.07.10 --- when DROP_SUBSUB => --- if (load_sub_done = '1') then --- if( padding_needed = '0' ) then --- loadNextState <= CALCC; --- else --- loadNextState <= PAD0; --- pad_phase_comb <= '1'; --- end if; --- else --- loadNextState <= DROP_SUBSUB; --- drop_sub_comb <= '1'; --- end if; --- when others => --- state2 <= x"f"; --- loadNextState <= LIDLE; --- end case; --- end process loadMachine; --- --- -- gk 07.10.10 --- PC_EOS_OUT <= '1' when (MULT_EVT_ENABLE_IN = '1') and (pc_eod = '1') else '0'; --- --- -- gk 25.07.10 --- INVALID_STATS_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- dropped_lr_events_ctr <= (others => '0'); --- dropped_sm_events_ctr <= (others => '0'); --- headers_invalid_ctr <= (others => '0'); --- dropped_ctr <= (others => '0'); --- invalid_hsize_ctr <= (others => '0'); --- found_empty_evt_ctr <= (others => '0'); -- gk 01.10.10 --- elsif (rst_regs = '1') then --- invalid_hsize_lock <= '0'; --- elsif (drop_small = '1') then --- dropped_sm_events_ctr <= dropped_sm_events_ctr + x"1"; --- dropped_ctr <= dropped_ctr + x"1"; --- elsif (drop_large = '1') then --- dropped_lr_events_ctr <= dropped_lr_events_ctr + x"1"; --- dropped_ctr <= dropped_ctr + x"1"; --- elsif (drop_headers = '1') then --- headers_invalid_ctr <= headers_invalid_ctr + x"1"; --- dropped_ctr <= dropped_ctr + x"1"; --- elsif (load_eod_q = '1') and (read_size_q /= x"3fffe") and (invalid_hsize_lock = '0') then -- ?? --- invalid_hsize_ctr <= invalid_hsize_ctr + x"1"; --- invalid_hsize_lock <= '1'; --- -- gk 01.10.10 --- elsif (found_empty_evt = '1') then --- found_empty_evt_ctr <= found_empty_evt_ctr + x"1"; --- end if; --- end if; --- end process INVALID_STATS_PROC; --- --- -- gk 05.08.10 --- INVALID_H_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- load_eod_q <= load_eod; --- read_size_q <= read_size; --- end if; --- end process INVALID_H_PROC; --- --- -- gk 26.04.10 --- READOUT_CTR_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if ((RESET = '1') or (READOUT_CTR_VALID_IN = '1')) then --- readout_ctr <= READOUT_CTR_IN; --- readout_ctr_lock <= '0'; --- elsif (pc_sos = '1') then --- readout_ctr <= readout_ctr + x"1"; --- end if; --- end if; --- end process READOUT_CTR_PROC; - ---****** --- SELECTION OF EVENT BUILDER ---****** - --- gk 27.03.10 -bank_select_proc : process( CLK ) -begin - if rising_edge( CLK ) then - -- gk 29.03.10 - if( (RESET = '1') or (rst_regs = '1') ) then - bank_select <= "0000"; - -- gk 01.06.10 THERE WAS A BUG, IT SHOUDL BE TAKEN FROM SF_Q - elsif( (sf_rd_en = '1') and (rem_ctr = x"2") ) then - bank_select <= pc_data(3 downto 0); --CTS_INFORMATION_IN(3 downto 0); - end if; - end if; -end process bank_select_proc; - --- gk 07.12.10 -first_event_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = WAIT_PC) then - first_event <= '1'; - elsif (remove_done = '1') then - first_event <= '0'; - end if; - end if; -end process first_event_proc; - --- gk 07.12.10 -prev_bank_proc : process(CLK) -begin - if (RESET = '1') or (loadCurrentState = WAIT_PC) then - prev_bank_select <= "0000"; - elsif ((sf_rd_en = '1') and (rem_ctr = x"3") and (first_event = '1')) then - prev_bank_select <= bank_select; - end if; -end process prev_bank_proc; - - --- gk 29.03.10 -start_config_proc : process( CLK ) -begin - if rising_edge( CLK ) then - if( (RESET = '1') or (config_done = '1') or (rst_regs = '1') ) then - start_config <= '0'; - elsif( (sf_rd_en = '1') and (rem_ctr = x"2") and (first_event = '1') ) then -- gk 01.06.10 - start_config <= '1'; - end if; - end if; -end process start_config_proc; - - ---****** --- LOAD SUBSUBEVENT ---****** - --- gk 30.03.10 --- load_sub_ctr_comb <= '1' when ( ((load_sub = '1') or (drop_sub = '1')) and (load_sub_done = '0') and (sf_aempty = '0') ) --- else '0'; --- --- -- gk 30.03.10 --- LOAD_SUB_CTR_PROC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 --- load_sub_ctr <= (others => '0'); --- elsif( (load_sub_ctr_comb = '1') ) then --- load_sub_ctr <= load_sub_ctr + 1; --- end if; --- end if; --- end process LOAD_SUB_CTR_PROC; --- --- -- gk 30.03.10 --- -- load_sub_done_comb <= '1' when ((load_sub_ctr = x"7") and (drop_sub = '0')) or --- -- ((load_sub_ctr = x"4") and (drop_sub = '1')) --- -- else '0'; --- load_sub_done_comb <= '1' when (load_sub_ctr = x"4") else '0'; --- --- -- gk 30.03.10 --- LOAD_SUB_DONE_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 --- load_sub_done <= '0'; --- else --- load_sub_done <= load_sub_done_comb; --- end if; --- end if; --- end process LOAD_SUB_DONE_PROC; --- --- --****** --- -- EXTRACT EVENT HEADERS FROM SPLITFIFO --- --****** --- --- -- Counter for stripping the unneeded parts of the data stream, and saving the important parts --- THE_REMOVE_CTR: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_rem_ctr = '1') ) then --- rem_ctr <= (others => '0'); --- elsif( (ce_rem_ctr = '1') ) then --- rem_ctr <= rem_ctr + 1; --- end if; --- end if; --- end process THE_REMOVE_CTR; --- --- remove_done_comb <= '1' when ( rem_ctr = x"8" ) else '0'; --( rem_ctr = x"6" ) else '0'; -- gk 29.03.10 two more for evt builder address --- --- THE_REM_DONE_SYNC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_rem_ctr = '1') ) then --- remove_done <= '0'; --- else --- remove_done <= remove_done_comb; --- end if; --- end if; --- end process THE_REM_DONE_SYNC; --- --- -- gk 26.04.10 --- TRIG_RANDOM_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if ((RESET = '1') or (rst_regs = '1')) then --- trig_random <= (others => '0'); --- elsif ((sf_rd_en = '1') and (rem_ctr = x"4")) then --- trig_random <= pc_data; --- end if; --- end if; --- end process TRIG_RANDOM_PROC; --- --- -- extract the trigger number from splitfifo data --- THE_TRG_NR_PROC: process( CLK ) --- begin --- if rising_edge(CLK) then --- if ( (RESET = '1') or (rst_regs = '1') ) then --- pc_trig_nr <= (others => '0'); --- elsif( (sf_rd_en = '1') and (rem_ctr = x"6") ) then -- x"4" gk 29.03.10 --- pc_trig_nr(7 downto 0) <= pc_data; --- elsif( (sf_rd_en = '1') and (rem_ctr = x"5") ) then -- x"3" gk 29.03.10 --- pc_trig_nr(15 downto 8) <= pc_data; --- end if; --- end if; --- end process THE_TRG_NR_PROC; --- --- -- extract the subevent size from the splitfifo data, convert it from 32b to 8b units, --- -- and in case of padding needed increase it accordingly --- THE_SUB_SIZE_PROC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_regs = '1') ) then --- pc_sub_size <= (others => '0'); --- elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 --- pc_sub_size(9 downto 2) <= pc_data; --- elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 --- pc_sub_size(17 downto 10) <= pc_data; --- -- gk 20.07.10 --- -- gk 30.03.10 bug fixed in the way that is written below --- -- gk 27.03.10 should be corrected by sending padding_needed signal to pc and take care of it when setting sub_size_to_save --- elsif( (calc_pad = '1') and (padding_needed = '1') ) then --- pc_sub_size <= pc_sub_size + x"4" + x"8"; -- BUG: SubEvtSize does NOT include 64bit padding!!! --- elsif( (calc_pad = '1') and (padding_needed = '0') ) then --- pc_sub_size <= pc_sub_size + x"8"; --- end if; --- end if; --- end process THE_SUB_SIZE_PROC; --- --- -- gk 06.10.10 --- MESSAGE_SIZE_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- -- if (RESET = '1') then --- -- message_size <= (others => '0'); --- -- elsif ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) then --- -- message_size <= (others => '0'); --- -- elsif (pc_sos = '1') then --- -- message_size <= message_size + pc_sub_size; --- -- end if; --- if (RESET = '1') then --- message_size <= x"0000_0028"; --- elsif ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) then --- message_size <= x"0000_0028"; --- elsif ((MULT_EVT_ENABLE_IN = '1') and (prev_bank_select /= bank_select) and (remove_done = '1')) then --- message_size <= x"0000_0028"; --- elsif (pc_sos = '1') then --- message_size <= message_size + pc_sub_size + x"10"; -- gk 06.12.10 add 16B for subevent headers --- end if; --- end if; --- end process MESSAGE_SIZE_PROC; --- --- --- -- gk 25.07.10 --- ENDP_ADDRESS_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (rst_regs = '1') then --- endpoint_addr <= (others => '0'); --- endp_addr_lock <= '0'; --- elsif( (rem_ctr = x"a") and (endp_addr_lock = '0') ) then --- endpoint_addr(7 downto 0) <= pc_data; --- endp_addr_lock <= '1'; --- elsif( (sf_rd_en = '1') and (rem_ctr = x"9") ) then --- endpoint_addr(15 downto 8) <= pc_data; --- endp_addr_lock <= '0'; --- end if; --- end if; --- end process ENDP_ADDRESS_PROC; --- --- --- --- -- check for padding --- THE_PADDING_NEEDED_PROC: process( CLK ) --- begin --- if rising_edge(CLK) then --- if ( (RESET = '1') or (rst_regs = '1') ) then --- padding_needed <= '0'; --- elsif( (remove_done = '1') and (pc_sub_size(2) = '1') ) then --- padding_needed <= '1'; --- elsif( (remove_done = '1') and (pc_sub_size(2) = '0') ) then --- padding_needed <= '0'; --- end if; --- end if; --- end process THE_PADDING_NEEDED_PROC; --- --- -- number of bytes to read from split fifo --- THE_READ_SIZE_PROC: process( CLK ) --- begin --- if( rising_edge(CLK) ) then --- if ( (RESET = '1') or (rst_regs = '1') ) then --(rst_rem_ctr = '1') ) then --- read_size <= (others => '0'); --- elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 --- read_size(9 downto 2) <= pc_data; --- elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 --- read_size(17 downto 10) <= pc_data; --- elsif( ((sf_rd_en = '1') and (data_phase = '1')) ) then --- read_size <= read_size - 1; --- -- gk 25.07.10 --- elsif( ((sf_rd_en = '1') and (drop_event = '1')) ) then --- read_size <= read_size - 1; --- end if; --- end if; --- end process THE_READ_SIZE_PROC; --- --- read_done_comb <= '1' when (read_size < 3 ) else '0'; -- "2" --- --- --****** --- -- EVENTS COUNTERS --- --****** --- --- -- gk 25.07.10 --- LOADED_EVT_CTR_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- loaded_events_ctr <= (others => '0'); --- elsif (remove_done = '1') then --- loaded_events_ctr <= loaded_events_ctr + x"1"; --- end if; --- end if; --- end process LOADED_EVT_CTR_PROC; --- --- -- gk 25.07.10 --- CONSTR_EVENTS_CTR_PROC : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- constr_events_ctr <= (others => '0'); --- elsif (pc_eod = '1') then --- constr_events_ctr <= constr_events_ctr + x"1"; --- end if; --- end if; --- end process CONSTR_EVENTS_CTR_PROC; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Debug signals --- debug(0) <= sf_full; --- debug(1) <= sf_empty; --- debug(2) <= sf_afull; --- debug(3) <= sf_aempty; --- --- debug(7 downto 4) <= state2; --- --- debug(11 downto 8) <= state; --- --- dbg_bs_proc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(15 downto 12) <= (others => '0'); --- elsif ( (sf_rd_en = '1') and (rem_ctr = x"3") ) then --- debug(15 downto 12) <= bank_select; --- end if; --- end if; --- end process dbg_bs_proc; --- --- debug(16) <= config_done; --- debug(17) <= '0'; --remove_done; --- debug(18) <= read_done; --- debug(19) <= padding_needed; --- --- debug(20) <= load_sub_done; --- --- dbg_cts_inf_proc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(39 downto 32) <= (others => '0'); --- elsif ( save_addr = '1' ) then --- debug(39 downto 32) <= CTS_INFORMATION_IN; --- end if; --- end if; --- end process dbg_cts_inf_proc; --- --- debug(47 downto 40) <= (others => '0'); --- --- --- debug(63 downto 48) <= actual_message_size(15 downto 0); --- --- dbg_pc_sub_size_proc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(81 downto 64) <= (others => '0'); --- elsif (loadCurrentState = DECIDE) then --- debug(81 downto 64) <= pc_sub_size; --- end if; --- end if; --- end process dbg_pc_sub_size_proc; --- --- dbg_empty_proc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') or (rst_regs = '1') then --- debug(84 downto 82) <= (others => '0'); --- elsif (read_size = 2) then --- debug(82) <= sf_empty; --- elsif (read_size = 1) then --- debug(83) <= sf_empty; --- elsif (read_size = 0) then --- debug(84) <= sf_empty; --- end if; --- end if; --- end process dbg_empty_proc; --- --- debug(95 downto 85) <= (others => '0'); --- --- dbg_inc_ctr_proc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- debug(127 downto 96) <= (others => '1'); --- elsif (saveCurrentState = SCLOSE) then --- debug(127 downto 96) <= inc_data_ctr; --- end if; --- end if; --- end process dbg_inc_ctr_proc; --- --- debug(143 downto 128) <= dropped_sm_events_ctr(15 downto 0); --- debug(159 downto 144) <= dropped_lr_events_ctr(15 downto 0); --- --- debug(175 downto 160) <= headers_invalid_ctr(15 downto 0); --- debug(191 downto 176) <= (others => '0'); --- --- dbg_cts_q_proc : process(CLK) --- begin --- if rising_edge(CLK) then --- if (RESET = '1') then --- cts_len_q <= (others => '0'); --- cts_rnd_q <= (others => '0'); --- cts_trg_q <= (others => '0'); --- cts_addr_q <= (others => '0'); --- elsif (cts_len_saved = '1') then --- cts_len_q <= cts_len(16 downto 1); --- cts_addr_q <= cts_addr; --- cts_rnd_q <= cts_rnd; --- cts_trg_q <= cts_trg; --- end if; --- end if; --- end process dbg_cts_q_proc; --- --- debug(207 downto 192) <= cts_trg_q; --- debug(223 downto 208) <= cts_rnd_q; --- debug(239 downto 224) <= cts_addr_q; --- debug(255 downto 240) <= cts_len_q; --- debug(271 downto 256) <= first_run_trg; --- debug(287 downto 272) <= first_run_addr; --- --- debug(303 downto 288) <= saved_events_ctr; --- debug(319 downto 304) <= loaded_events_ctr; --- --- debug(335 downto 320) <= constr_events_ctr(15 downto 0); --- debug(351 downto 336) <= dropped_ctr(15 downto 0); --- --- debug(367 downto 352) <= invalid_hsize_ctr; --- debug(383 downto 368) <= (others => '0'); --- --- MONITOR_OUT(31 downto 0) <= constr_events_ctr; --- MONITOR_OUT(63 downto 32) <= dropped_ctr; --- MONITOR_OUT(95 downto 64) <= headers_invalid_ctr; --- MONITOR_OUT(127 downto 96) <= dropped_sm_events_ctr; --- MONITOR_OUT(159 downto 128) <= dropped_lr_events_ctr; --- MONITOR_OUT(163 downto 160) <= b"1111" when (sf_afull = '1') else b"0000"; --- MONITOR_OUT(191 downto 164) <= (others => '0'); --- MONITOR_OUT(223 downto 192) <= found_empty_evt_ctr; -- gk 01.10.10 - --- Outputs -FEE_READ_OUT <= fee_read; -CTS_ERROR_PATTERN_OUT <= cts_error_pattern; -CTS_DATA_OUT <= cts_data; -CTS_DATAREADY_OUT <= cts_dataready; -CTS_READOUT_FINISHED_OUT <= cts_readout_finished; -CTS_LENGTH_OUT <= cts_length; - -PC_SOS_OUT <= pc_sos; -PC_EOD_OUT <= '1' when ((MULT_EVT_ENABLE_IN = '0') and (pc_eod = '1')) - or ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) - -- gk 07.12.10 - or ((MULT_EVT_ENABLE_IN = '1') and (prev_bank_select /= bank_select) and (remove_done = '1')) - else '0'; -- gk 07.10.10 -PC_DATA_OUT <= pc_data_q; -PC_WR_EN_OUT <= pc_wr_en_qq; - -PC_TRIG_NR_OUT <= readout_ctr(23 downto 16) & pc_trig_nr & trig_random; - -PC_SUB_SIZE_OUT <= b"0000_0000_0000_00" & pc_sub_size; -PC_PADDING_OUT <= padding_needed; - -DEBUG_OUT <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_lsm_sfp_gbe.vhd b/gbe2_ecp3/trb_net16_lsm_sfp_gbe.vhd deleted file mode 100755 index 7624a16..0000000 --- a/gbe2_ecp3/trb_net16_lsm_sfp_gbe.vhd +++ /dev/null @@ -1,236 +0,0 @@ --- LinkStateMachine for SFPs (GigE) - --- Still missing: link reset features, fifo full error handling, signals on stat_op --- Take care: all input signals must be synchronous to SYSCLK, --- all output signals are synchronous to SYSCLK. --- Clock Domain Crossing is in your responsibility! - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; ---use work.trb_net_std.all; - -entity trb_net16_lsm_sfp_gbe is -port( SYSCLK : in std_logic; -- fabric clock (100MHz) - RESET : in std_logic; -- synchronous reset - CLEAR : in std_logic; -- asynchronous reset, connect to '0' if not needed / available - -- status signals - SFP_MISSING_IN : in std_logic; -- SFP Missing ('1' = no SFP mounted, '0' = SFP in place) - SFP_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SD_LINK_OK_IN : in std_logic; -- SerDes Link OK ('0' = not linked, '1' link established) - SD_LOS_IN : in std_logic; -- SerDes Loss Of Signal ('0' = OK, '1' = signal lost) - SD_TXCLK_BAD_IN : in std_logic; -- SerDes Tx Clock locked ('0' = locked, '1' = not locked) - SD_RXCLK_BAD_IN : in std_logic; -- SerDes Rx Clock locked ('0' = locked, '1' = not locked) - -- control signals - FULL_RESET_OUT : out std_logic; -- full reset AKA quad_reset - LANE_RESET_OUT : out std_logic; -- partial reset AKA lane_reset - USER_RESET_OUT : out std_logic; -- FPGA reset for user logic - -- debug signals - TIMING_CTR_OUT : out std_logic_vector(18 downto 0); - BSM_OUT : out std_logic_vector(3 downto 0); - DEBUG_OUT : out std_logic_vector(31 downto 0) - ); -end entity; - -architecture lsm_sfp_gbe of trb_net16_lsm_sfp_gbe is - --- state machine signals -type STATES is ( QRST, SLEEP, DELAY, USERRST, LINK ); -signal CURRENT_STATE, NEXT_STATE: STATES; - -signal state_bits : std_logic_vector(3 downto 0); -signal next_ce_tctr : std_logic; -signal ce_tctr : std_logic; -signal next_rst_tctr : std_logic; -signal rst_tctr : std_logic; -signal next_quad_rst : std_logic; -signal quad_rst : std_logic; -signal next_lane_rst : std_logic; -signal lane_rst : std_logic; -signal next_user_rst : std_logic; -signal user_rst : std_logic; -signal sfp_missing_q : std_logic; -signal sfp_missing_qq : std_logic; -signal sfp_los_q : std_logic; -signal sfp_los_qq : std_logic; -signal sd_rxclk_bad_q : std_logic; -signal sd_rxclk_bad_qq : std_logic; -signal sd_rxclk_bad_qqq : std_logic; -signal sd_txclk_bad_q : std_logic; -signal sd_txclk_bad_qq : std_logic; -signal sd_txclk_bad_qqq : std_logic; -signal sd_rxclk_warn_comb : std_logic; -signal sd_rxclk_warn : std_logic; -- rising edge on rlol detected -signal sd_txclk_warn_comb : std_logic; -signal sd_txclk_warn : std_logic; -- rising edge on plol detected -signal timing_ctr : std_logic_vector(18 downto 0); -signal debug : std_logic_vector(31 downto 0); - -begin - --- Debug signals -debug(31 downto 4) <= (others => '0'); -debug(3) <= sd_txclk_warn; -debug(2) <= sd_rxclk_warn; -debug(1) <= rst_tctr; -debug(0) <= ce_tctr; - --- synchronize external signals from SFP -THE_SYNC_PROC: process( sysclk ) -begin - if( rising_edge(sysclk) ) then - -- SFP input signals - sfp_missing_qq <= sfp_missing_q; - sfp_missing_q <= sfp_missing_in; - sfp_los_qq <= sfp_los_q; - sfp_los_q <= sfp_los_in; - -- SerDes input signals - sd_rxclk_bad_qqq <= sd_rxclk_bad_qq; - sd_rxclk_bad_qq <= sd_rxclk_bad_q; - sd_rxclk_bad_q <= sd_rxclk_bad_in; - sd_txclk_bad_qqq <= sd_txclk_bad_q; - sd_txclk_bad_qq <= sd_txclk_bad_q; - sd_txclk_bad_q <= sd_txclk_bad_in; - -- edge detectors - sd_rxclk_warn <= sd_rxclk_warn_comb; - sd_txclk_warn <= sd_txclk_warn_comb; - end if; -end process THE_SYNC_PROC; - --- combinatorial part of edge detectors (rlol, see remark on page 8-63 in HB1003.pdf) -sd_rxclk_warn_comb <= '1' when ( (sd_rxclk_bad_qqq = '0') and (sd_rxclk_bad_qq = '1') ) else '0'; -sd_txclk_warn_comb <= '1' when ( (sd_txclk_bad_qqq = '0') and (sd_txclk_bad_qq = '1') ) else '0'; - --------------------------------------------------------------------------- --- Main control state machine, startup control for SFP --------------------------------------------------------------------------- - --- Timing counter for reset sequencing -THE_TIMING_COUNTER_PROC: process( sysclk, clear ) -begin - if( clear = '1' ) then - timing_ctr <= (others => '0'); - elsif( rising_edge(sysclk) ) then - if ( (rst_tctr = '1') or (sd_rxclk_warn = '1') or (sd_txclk_warn = '1') ) then - timing_ctr <= (others => '0'); - elsif( ce_tctr = '1' ) then - timing_ctr <= timing_ctr + 1; - end if; - end if; -end process THE_TIMING_COUNTER_PROC; - --- State machine --- state registers -STATE_MEM: process( sysclk, clear ) -begin - if( clear = '1' ) then - CURRENT_STATE <= QRST; - ce_tctr <= '0'; - rst_tctr <= '0'; - quad_rst <= '1'; - lane_rst <= '1'; - user_rst <= '1'; - elsif( rising_edge(sysclk) ) then - CURRENT_STATE <= NEXT_STATE; - ce_tctr <= next_ce_tctr; - rst_tctr <= next_rst_tctr; - quad_rst <= next_quad_rst; - lane_rst <= next_lane_rst; - user_rst <= next_user_rst; - end if; -end process STATE_MEM; - --- state transitions -PROC_STATE_TRANSFORM: process( CURRENT_STATE, sfp_missing_qq, sfp_los_qq, sd_txclk_bad_qqq, sd_rxclk_bad_qqq, - timing_ctr(8), timing_ctr(18), timing_ctr(17), - reset ) -begin - NEXT_STATE <= QRST; -- avoid latches - next_ce_tctr <= '0'; - next_rst_tctr <= '0'; - next_quad_rst <= '0'; - next_lane_rst <= '0'; - next_user_rst <= '0'; - case CURRENT_STATE is - when QRST => -- initial state, we stay there unless CLEAR is deasserted. - state_bits <= x"0"; - if( (timing_ctr(8) = '1') ) then - NEXT_STATE <= SLEEP; -- release QUAD_RST, wait for lock of RxClock and TxClock - next_lane_rst <= '1'; - next_user_rst <= '1'; - next_rst_tctr <= '1'; - else - NEXT_STATE <= QRST; -- count delay - next_ce_tctr <= '1'; - next_quad_rst <= '1'; - next_lane_rst <= '1'; - next_user_rst <= '1'; - end if; - when SLEEP => -- we check for SFP presence and signal - state_bits <= x"1"; - if( (sfp_missing_qq = '0') and (sfp_los_qq = '0') ) then - NEXT_STATE <= DELAY; -- do a correctly timed QUAD reset (about 150ns) - next_ce_tctr <= '1'; - next_lane_rst <= '1'; - next_user_rst <= '1'; - else - NEXT_STATE <= SLEEP; -- wait for SFP present signal - next_lane_rst <= '1'; - next_user_rst <= '1'; - end if; - when DELAY => -- we wait approx. 4ms and check for PLL lock in the SerDes - state_bits <= x"2"; - if( (timing_ctr(18) = '1') and (timing_ctr(17) = '1') and (sd_rxclk_bad_qqq = '0') and (sd_txclk_bad_qqq = '0') ) then - NEXT_STATE <= USERRST; -- we release lane reset - next_ce_tctr <= '1'; - next_user_rst <= '1'; - else - NEXT_STATE <= DELAY; - next_ce_tctr <= '1'; - next_lane_rst <= '1'; - next_user_rst <= '1'; - end if; - when USERRST => -- short delay for user reset - state_bits <= x"3"; - if( (timing_ctr(18) = '0') and (timing_ctr(17) = '0') ) then - NEXT_STATE <= LINK; - next_rst_tctr <= '1'; - else - NEXT_STATE <= USERRST; - next_ce_tctr <= '1'; - next_user_rst <= '1'; - end if; - when LINK => -- operational - state_bits <= x"4"; - NEXT_STATE <= LINK; - when others => - NEXT_STATE <= QRST; - end case; - - -- emergency jumps in case of SFP problems - if( ((sfp_missing_qq = '1') or (sfp_los_qq = '1') or (RESET = '1')) and CURRENT_STATE /= QRST ) then - NEXT_STATE <= SLEEP; -- wait for SFP present signal - next_rst_tctr <= '1'; - next_lane_rst <= '1'; - next_user_rst <= '1'; - end if; -end process; - --------------------------------------------------------------------------- --- Output signals --------------------------------------------------------------------------- -full_reset_out <= quad_rst; -lane_reset_out <= lane_rst; -user_reset_out <= user_rst; - --------------------------------------------------------------------------- --- Debug output --------------------------------------------------------------------------- -timing_ctr_out <= timing_ctr; -bsm_out <= state_bits; -debug_out <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net16_med_ecp_sfp_gbe_8b.vhd b/gbe2_ecp3/trb_net16_med_ecp_sfp_gbe_8b.vhd deleted file mode 100755 index 13141e6..0000000 --- a/gbe2_ecp3/trb_net16_med_ecp_sfp_gbe_8b.vhd +++ /dev/null @@ -1,890 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; - -use work.trb_net_gbe_components.all; - -entity trb_net16_med_ecp_sfp_gbe_8b is --- gk 28.04.10 -generic ( - USE_125MHZ_EXTCLK : integer range 0 to 1 := 1 -); -port( - RESET : in std_logic; - GSR_N : in std_logic; - CLK_125_OUT : out std_logic; - CLK_125_IN : in std_logic; -- gk 28.04.10 used when intclk - CLK_125_RX_OUT : out std_logic; - --SGMII connection to frame transmitter (tsmac) - FT_TX_CLK_EN_OUT : out std_logic; - FT_RX_CLK_EN_OUT : out std_logic; - FT_COL_OUT : out std_logic; - FT_CRS_OUT : out std_logic; - FT_TXD_IN : in std_logic_vector(7 downto 0); - FT_TX_EN_IN : in std_logic; - FT_TX_ER_IN : in std_logic; - - FT_RXD_OUT : out std_logic_vector(7 downto 0); - FT_RX_EN_OUT : out std_logic; - FT_RX_ER_OUT : out std_logic; - --SFP Connection - SD_RXD_P_IN : in std_logic; - SD_RXD_N_IN : in std_logic; - SD_TXD_P_OUT : out std_logic; - SD_TXD_N_OUT : out std_logic; - SD_REFCLK_P_IN : in std_logic; - SD_REFCLK_N_IN : in std_logic; - SD_PRSNT_N_IN : in std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted) - SD_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SD_TXDIS_OUT : out std_logic; -- SFP disable - -- Autonegotiation stuff - MR_RESET_IN : in std_logic; - MR_MODE_IN : in std_logic; - MR_ADV_ABILITY_IN : in std_logic_vector(15 downto 0); -- should be x"0020 - MR_AN_LP_ABILITY_OUT : out std_logic_vector(15 downto 0); -- advert page from link partner - MR_AN_PAGE_RX_OUT : out std_logic; - MR_AN_COMPLETE_OUT : out std_logic; - MR_AN_ENABLE_IN : in std_logic; - MR_RESTART_AN_IN : in std_logic; - -- Status and control port - STAT_OP : out std_logic_vector (15 downto 0); - CTRL_OP : in std_logic_vector (15 downto 0); - STAT_DEBUG : out std_logic_vector (63 downto 0); - CTRL_DEBUG : in std_logic_vector (63 downto 0) -); -end entity; - -architecture trb_net16_med_ecp_sfp_gbe_8b of trb_net16_med_ecp_sfp_gbe_8b is - --- Placer Directives ---attribute HGROUP : string; --- for whole architecture ---attribute HGROUP of trb_net16_med_ecp_sfp_gbe_8b : architecture is "media_interface_group"; -attribute syn_sharing : string; -attribute syn_sharing of trb_net16_med_ecp_sfp_gbe_8b : architecture is "off"; - ---component serdes_gbe_0ch is -component serdes_ch4 is - --GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0ch.txt"); -GENERIC (USER_CONFIG_FILE : String := "serdes_ch4.txt"); - port ( ------------------- --- CH0 -- - hdinp_ch3, hdinn_ch3 : in std_logic; - hdoutp_ch3, hdoutn_ch3 : out std_logic; - rxiclk_ch3 : in std_logic; - txiclk_ch3 : in std_logic; - rx_full_clk_ch3 : out std_logic; - rx_half_clk_ch3 : out std_logic; - tx_full_clk_ch3 : out std_logic; - tx_half_clk_ch3 : out std_logic; - fpga_rxrefclk_ch3 : in std_logic; - txdata_ch3 : in std_logic_vector (7 downto 0); - tx_k_ch3 : in std_logic; - xmit_ch3 : in std_logic; - tx_disp_correct_ch3 : in std_logic; - rxdata_ch3 : out std_logic_vector (7 downto 0); - rx_k_ch3 : out std_logic; - rx_disp_err_ch3 : out std_logic; - rx_cv_err_ch3 : out std_logic; - rx_serdes_rst_ch3_c : in std_logic; - sb_felb_ch3_c : in std_logic; - sb_felb_rst_ch3_c : in std_logic; - tx_pcs_rst_ch3_c : in std_logic; - tx_pwrup_ch3_c : in std_logic; - rx_pcs_rst_ch3_c : in std_logic; - rx_pwrup_ch3_c : in std_logic; - rx_los_low_ch3_s : out std_logic; - lsm_status_ch3_s : out std_logic; - rx_cdr_lol_ch3_s : out std_logic; --- CH1 -- --- CH2 -- --- CH3 -- ----- Miscillaneous ports - fpga_txrefclk : in std_logic; - tx_serdes_rst_c : in std_logic; - tx_pll_lol_qd_s : out std_logic; - rst_qd_c : in std_logic; - serdes_rst_qd_c : in std_logic); - -end component; - -component serdes_gbe_0_extclock_8b is -GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_extclock_8b.txt"); -port( refclkp : in std_logic; - refclkn : in std_logic; - hdinp0 : in std_logic; - hdinn0 : in std_logic; - hdoutp0 : out std_logic; - hdoutn0 : out std_logic; - ff_rxiclk_ch0 : in std_logic; - ff_txiclk_ch0 : in std_logic; - ff_ebrd_clk_0 : in std_logic; - ff_txdata_ch0 : in std_logic_vector (7 downto 0); - ff_rxdata_ch0 : out std_logic_vector (7 downto 0); - ff_tx_k_cntrl_ch0 : in std_logic; - ff_rx_k_cntrl_ch0 : out std_logic; - ff_rxfullclk_ch0 : out std_logic; - ff_xmit_ch0 : in std_logic; - ff_correct_disp_ch0 : in std_logic; - ff_disp_err_ch0 : out std_logic; - ff_cv_ch0 : out std_logic; - ff_rx_even_ch0 : out std_logic; - ffc_rrst_ch0 : in std_logic; - ffc_lane_tx_rst_ch0 : in std_logic; - ffc_lane_rx_rst_ch0 : in std_logic; - ffc_txpwdnb_ch0 : in std_logic; - ffc_rxpwdnb_ch0 : in std_logic; - ffs_rlos_lo_ch0 : out std_logic; - ffs_ls_sync_status_ch0 : out std_logic; - ffs_rlol_ch0 : out std_logic; - oob_out_ch0 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - refck2core : out std_logic; - ffs_plol : out std_logic - ); -end component; - -component serdes_gbe_0_intclock_8b is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt"); - port ( - core_txrefclk : in std_logic; - core_rxrefclk : in std_logic; - hdinp0, hdinn0 : in std_logic; - hdoutp0, hdoutn0 : out std_logic; - ff_rxiclk_ch0, ff_txiclk_ch0, ff_ebrd_clk_0 : in std_logic; - ff_txdata_ch0 : in std_logic_vector (7 downto 0); - ff_rxdata_ch0 : out std_logic_vector (7 downto 0); - ff_tx_k_cntrl_ch0 : in std_logic; - ff_rx_k_cntrl_ch0 : out std_logic; - ff_rxfullclk_ch0 : out std_logic; - ff_xmit_ch0 : in std_logic; - ff_correct_disp_ch0 : in std_logic; - ff_disp_err_ch0, ff_cv_ch0 : out std_logic; - ff_rx_even_ch0 : out std_logic; - ffc_rrst_ch0 : in std_logic; - ffc_lane_tx_rst_ch0 : in std_logic; - ffc_lane_rx_rst_ch0 : in std_logic; - ffc_txpwdnb_ch0 : in std_logic; - ffc_rxpwdnb_ch0 : in std_logic; - ffs_rlos_lo_ch0 : out std_logic; - ffs_ls_sync_status_ch0 : out std_logic; - ffs_rlol_ch0 : out std_logic; - oob_out_ch0 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - ffs_plol : out std_logic); - -end component; - --- component sgmii_gbe_pcs34 --- port( rst_n : in std_logic; --- signal_detect : in std_logic; --- gbe_mode : in std_logic; --- sgmii_mode : in std_logic; --- operational_rate : in std_logic_vector(1 downto 0); --- debug_link_timer_short : in std_logic; --- rx_compensation_err : out std_logic; --- tx_clk_125 : in std_logic; --- tx_clock_enable_source : out std_logic; --- tx_clock_enable_sink : in std_logic; --- tx_d : in std_logic_vector(7 downto 0); --- tx_en : in std_logic; --- tx_er : in std_logic; --- rx_clk_125 : in std_logic; --- rx_clock_enable_source : out std_logic; --- rx_clock_enable_sink : in std_logic; --- rx_d : out std_logic_vector(7 downto 0); --- rx_dv : out std_logic; --- rx_er : out std_logic; --- col : out std_logic; --- crs : out std_logic; --- tx_data : out std_logic_vector(7 downto 0); --- tx_kcntl : out std_logic; --- tx_disparity_cntl : out std_logic; --- serdes_recovered_clk : in std_logic; --- rx_data : in std_logic_vector(7 downto 0); --- rx_even : in std_logic; --- rx_kcntl : in std_logic; --- rx_disp_err : in std_logic; --- rx_cv_err : in std_logic; --- rx_err_decode_mode : in std_logic; --- mr_an_complete : out std_logic; --- mr_page_rx : out std_logic; --- mr_lp_adv_ability : out std_logic_vector(15 downto 0); --- mr_main_reset : in std_logic; --- mr_an_enable : in std_logic; --- mr_restart_an : in std_logic; --- mr_adv_ability : in std_logic_vector(15 downto 0) --- ); --- end component; - -component sgmii_gbe_pcs35 --sgmii_gbe_pcs36 -- sgmii_gbe_pcs35 -port( rst_n : in std_logic; - signal_detect : in std_logic; - gbe_mode : in std_logic; - sgmii_mode : in std_logic; - operational_rate : in std_logic_vector(1 downto 0); - debug_link_timer_short : in std_logic; - - force_isolate : in std_logic; - force_loopback : in std_logic; - force_unidir : in std_logic; - - rx_compensation_err : out std_logic; - - ctc_drop_flag : out std_logic; - ctc_add_flag : out std_logic; - an_link_ok : out std_logic; - - tx_clk_125 : in std_logic; - tx_clock_enable_source : out std_logic; - tx_clock_enable_sink : in std_logic; - tx_d : in std_logic_vector(7 downto 0); - tx_en : in std_logic; - tx_er : in std_logic; - rx_clk_125 : in std_logic; - rx_clock_enable_source : out std_logic; - rx_clock_enable_sink : in std_logic; - rx_d : out std_logic_vector(7 downto 0); - rx_dv : out std_logic; - rx_er : out std_logic; - col : out std_logic; - crs : out std_logic; - tx_data : out std_logic_vector(7 downto 0); - tx_kcntl : out std_logic; - tx_disparity_cntl : out std_logic; - - xmit_autoneg : out std_logic; - - serdes_recovered_clk : in std_logic; - rx_data : in std_logic_vector(7 downto 0); - rx_even : in std_logic; - rx_kcntl : in std_logic; - rx_disp_err : in std_logic; - rx_cv_err : in std_logic; - rx_err_decode_mode : in std_logic; - mr_an_complete : out std_logic; - mr_page_rx : out std_logic; - mr_lp_adv_ability : out std_logic_vector(15 downto 0); - mr_main_reset : in std_logic; - mr_an_enable : in std_logic; - mr_restart_an : in std_logic; - mr_adv_ability : in std_logic_vector(15 downto 0) - ); -end component; - -component trb_net16_lsm_sfp_gbe is -port( SYSCLK : in std_logic; -- fabric clock (100MHz) - RESET : in std_logic; -- synchronous reset - CLEAR : in std_logic; -- asynchronous reset, connect to '0' if not needed / available - -- status signals - SFP_MISSING_IN : in std_logic; -- SFP Missing ('1' = no SFP mounted, '0' = SFP in place) - SFP_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SD_LINK_OK_IN : in std_logic; -- SerDes Link OK ('0' = not linked, '1' link established) - SD_LOS_IN : in std_logic; -- SerDes Loss Of Signal ('0' = OK, '1' = signal lost) - SD_TXCLK_BAD_IN : in std_logic; -- SerDes Tx Clock locked ('0' = locked, '1' = not locked) - SD_RXCLK_BAD_IN : in std_logic; -- SerDes Rx Clock locked ('0' = locked, '1' = not locked) - -- control signals - FULL_RESET_OUT : out std_logic; -- full reset AKA quad_reset - LANE_RESET_OUT : out std_logic; -- partial reset AKA lane_reset - USER_RESET_OUT : out std_logic; -- FPGA reset for user logic - -- debug signals - TIMING_CTR_OUT : out std_logic_vector(18 downto 0); - BSM_OUT : out std_logic_vector(3 downto 0); - DEBUG_OUT : out std_logic_vector(31 downto 0) - ); -end component; - -component reset_controller_pcs port ( - rst_n : in std_logic; - clk : in std_logic; - tx_plol : in std_logic; - rx_cdr_lol : in std_logic; - quad_rst_out : out std_logic; - tx_pcs_rst_out : out std_logic; - rx_pcs_rst_out : out std_logic - ); -end component; -component reset_controller_cdr port ( - rst_n : in std_logic; - clk : in std_logic; - cdr_lol : in std_logic; - cdr_rst_out : out std_logic - ); -end component; - -component rate_resolution port ( - gbe_mode : in std_logic; - sgmii_mode : in std_logic; - an_enable : in std_logic; - advertised_rate : in std_logic_vector(1 downto 0); - link_partner_rate : in std_logic_vector(1 downto 0); - non_an_rate : in std_logic_vector(1 downto 0); - operational_rate : out std_logic_vector(1 downto 0) - ); -end component; - -component register_interface_hb port ( - rst_n : in std_logic; - hclk : in std_logic; - gbe_mode : in std_logic; - sgmii_mode : in std_logic; - hcs_n : in std_logic; - hwrite_n : in std_logic; - haddr : in std_logic_vector(3 downto 0); - hdatain : in std_logic_vector(7 downto 0); - hdataout : out std_logic_vector(7 downto 0); - hready_n : out std_logic; - mr_an_complete : in std_logic; - mr_page_rx : in std_logic; - mr_lp_adv_ability : in std_logic_vector(15 downto 0); - mr_main_reset : out std_logic; - mr_an_enable : out std_logic; - mr_restart_an : out std_logic; - mr_adv_ability : out std_logic_vector(15 downto 0) - ); -end component; - -component sgmii33 port ( - rst_n : in std_logic; - signal_detect : in std_logic; - gbe_mode : in std_logic; - sgmii_mode : in std_logic; - --force_isolate : in std_logic; - --force_loopback : in std_logic; - --force_unidir : in std_logic; - operational_rate : in std_logic_vector(1 downto 0); - debug_link_timer_short : in std_logic; - rx_compensation_err : out std_logic; - --ctc_drop_flag : out std_logic; - --ctc_add_flag : out std_logic; - --an_link_ok : out std_logic; - tx_clk_125 : in std_logic; - tx_clock_enable_source : out std_logic; - tx_clock_enable_sink : in std_logic; - tx_d : in std_logic_vector(7 downto 0); - tx_en : in std_logic; - tx_er : in std_logic; - rx_clk_125 : in std_logic; - rx_clock_enable_source : out std_logic; - rx_clock_enable_sink : in std_logic; - rx_d : out std_logic_vector(7 downto 0); - rx_dv : out std_logic; - rx_er : out std_logic; - col : out std_logic; - crs : out std_logic; - tx_data : out std_logic_vector(7 downto 0); - tx_kcntl : out std_logic; - tx_disparity_cntl : out std_logic; - --xmit_autoneg : out std_logic; - serdes_recovered_clk : in std_logic; - rx_data : in std_logic_vector(7 downto 0); - rx_even : in std_logic; - rx_kcntl : in std_logic; - rx_disp_err : in std_logic; - rx_cv_err : in std_logic; - rx_err_decode_mode : in std_logic; - mr_an_complete : out std_logic; - mr_page_rx : out std_logic; - mr_lp_adv_ability : out std_logic_vector(15 downto 0); - mr_main_reset : in std_logic; - mr_an_enable : in std_logic; - mr_restart_an : in std_logic; - mr_adv_ability : in std_logic_vector(15 downto 0) - ); -end component; - - -signal refclkcore : std_logic; - -signal sd_link_ok : std_logic; -signal sd_link_error : std_logic_vector(2 downto 0); - -signal sd_tx_data : std_logic_vector(7 downto 0); -signal sd_tx_kcntl : std_logic; -signal sd_tx_correct_disp : std_logic; -signal sd_tx_clk : std_logic; - -signal sd_rx_data : std_logic_vector(7 downto 0); -signal sd_rx_even : std_logic; -signal sd_rx_kcntl : std_logic; -signal sd_rx_disp_error : std_logic; -signal sd_rx_cv_error : std_logic; -signal sd_rx_clk : std_logic; - -signal sd_tx_data_q : std_logic_vector(7 downto 0); -signal sd_tx_kcntl_q : std_logic; -signal sd_tx_correct_disp_q : std_logic; - -signal sd_rx_data_q : std_logic_vector(7 downto 0); -signal sd_rx_kcntl_q : std_logic; -signal sd_rx_disp_error_q : std_logic; -signal sd_rx_cv_error_q : std_logic; - -signal pcs_mr_an_complete : std_logic; -signal pcs_mr_ability : std_logic_vector(15 downto 0); -signal pcs_mr_page_rx : std_logic; -signal pcs_mr_reset : std_logic; - -signal pcs_tx_clk_en : std_logic; -signal pcs_rx_clk_en : std_logic; -signal pcs_rx_comp_err : std_logic; - -signal pcs_rx_d : std_logic_vector(7 downto 0); -signal pcs_rx_dv : std_logic; -signal pcs_rx_er : std_logic; - -signal sd_rx_debug : std_logic_vector(15 downto 0); -signal sd_tx_debug : std_logic_vector(15 downto 0); - -signal buf_stat_debug : std_logic_vector(63 downto 0); - -signal quad_rst : std_logic; -signal lane_rst : std_logic; -signal user_rst : std_logic; - -signal reset_bsm : std_logic_vector(3 downto 0); -signal reset_debug : std_logic_vector(31 downto 0); -signal test_clk : std_logic; - -signal xmit : std_logic; -signal signal_detected, compensation_err, tx_clk_en, rx_clk_en, rst_n, an_complete : std_logic; -signal tx_pll_lol, rx_cdr_lol, los, tx_pcs_rst, rx_pcs_rst, rx_serdes_rst : std_logic; - -signal operational_rate : std_logic_vector(1 downto 0); - -signal mr_an_enable, mr_restart_an, mr_main_reset, mr_page_rx : std_logic; -signal mr_lp_adv_ability, mr_adv_ability : std_logic_vector(15 downto 0); - - - attribute syn_keep : boolean; - attribute syn_preserve : boolean; - - --attribute syn_keep of sd_tx_clk : signal is true; - --attribute syn_preserve of sd_tx_clk : signal is true; - attribute syn_keep of sd_rx_clk : signal is true; - attribute syn_preserve of sd_rx_clk : signal is true; - - attribute syn_keep of sd_tx_correct_disp_q, sd_tx_kcntl_q, sd_tx_data_q, sd_rx_data_q, sd_rx_cv_error_q, sd_rx_disp_error_q, sd_rx_kcntl_q : signal is true; - attribute syn_preserve of sd_tx_correct_disp_q, sd_tx_kcntl_q, sd_tx_data_q, sd_rx_data_q, sd_rx_cv_error_q, sd_rx_disp_error_q, sd_rx_kcntl_q : signal is true; - -begin - --- Reset state machine for SerDes --- THE_RESET_STATEMACHINE: trb_net16_lsm_sfp_gbe --- port map( --- SYSCLK => CLK_125_IN, --- RESET => '0', -- really? --- CLEAR => RESET, -- from 100MHz PLL, includes async part --- -- status signals --- SFP_MISSING_IN => SD_PRSNT_N_IN, --- SFP_LOS_IN => SD_LOS_IN, --- SD_LINK_OK_IN => '1', -- not used --- SD_LOS_IN => '0', -- not used --- SD_TXCLK_BAD_IN => sd_link_error(2), -- plol --- SD_RXCLK_BAD_IN => sd_link_error(1), -- rlol --- -- control signals --- FULL_RESET_OUT => quad_rst, --- LANE_RESET_OUT => lane_rst, --- USER_RESET_OUT => user_rst, --- -- debug signals --- TIMING_CTR_OUT => open, --- BSM_OUT => reset_bsm, --- DEBUG_OUT => reset_debug --- ); - --- gk 28.04.10 --- SerDes for GbE -clk_int : if (USE_125MHZ_EXTCLK = 0) generate - - refclkcore <= CLK_125_IN; --sd_tx_clk; --CLK_125_IN; - --- SERDES_GBE : serdes_gbe_0_intclock_8b --- port map( --- core_txrefclk => CLK_125_IN, --- core_rxrefclk => CLK_125_IN, --- hdinp0 => SD_RXD_P_IN, --- hdinn0 => SD_RXD_N_IN, --- hdoutp0 => SD_TXD_P_OUT, --- hdoutn0 => SD_TXD_N_OUT, --- ff_rxiclk_ch0 => sd_rx_clk, --- ff_txiclk_ch0 => sd_tx_clk, --- ff_ebrd_clk_0 => sd_rx_clk, --- ff_txdata_ch0 => sd_tx_data, --- ff_rxdata_ch0 => sd_rx_data, --- ff_tx_k_cntrl_ch0 => sd_tx_kcntl, --- ff_rx_k_cntrl_ch0 => sd_rx_kcntl, --- ff_rxfullclk_ch0 => sd_rx_clk, --- ff_xmit_ch0 => '0', --- ff_correct_disp_ch0 => sd_tx_correct_disp, --- ff_disp_err_ch0 => sd_rx_disp_error, --- ff_cv_ch0 => sd_rx_cv_error, --- ff_rx_even_ch0 => sd_rx_even, --- ffc_rrst_ch0 => '0', --- ffc_lane_tx_rst_ch0 => lane_rst, --- ffc_lane_rx_rst_ch0 => lane_rst, --- ffc_txpwdnb_ch0 => '1', --- ffc_rxpwdnb_ch0 => '1', --- ffs_rlos_lo_ch0 => sd_link_error(0), --- ffs_ls_sync_status_ch0 => sd_link_ok, --- ffs_rlol_ch0 => sd_link_error(1), --- oob_out_ch0 => open, --- ffc_macro_rst => '0', --- ffc_quad_rst => quad_rst, --- ffc_trst => '0', --- ff_txfullclk => sd_tx_clk, --- ff_txhalfclk => open, --- ffs_plol => sd_link_error(2) --- ); - - --SERDES_GBE : serdes_gbe_0ch - SERDES_GBE : serdes_ch4 - port map( - ------------------ - -- CH0 -- - hdinp_ch3 => SD_RXD_P_IN, - hdinn_ch3 => SD_RXD_N_IN, - hdoutp_ch3 => SD_TXD_P_OUT, - hdoutn_ch3 => SD_TXD_N_OUT, - rxiclk_ch3 => sd_rx_clk, - txiclk_ch3 => CLK_125_IN, --sd_tx_clk, - rx_full_clk_ch3 => sd_rx_clk, - rx_half_clk_ch3 => open, - tx_full_clk_ch3 => open, --sd_tx_clk, - tx_half_clk_ch3 => open, - fpga_rxrefclk_ch3 => CLK_125_IN, - txdata_ch3 => sd_tx_data_q, - tx_k_ch3 => sd_tx_kcntl_q, - xmit_ch3 => xmit, --'0', - tx_disp_correct_ch3 => sd_tx_correct_disp_q, - rxdata_ch3 => sd_rx_data, - rx_k_ch3 => sd_rx_kcntl, - rx_disp_err_ch3 => sd_rx_disp_error, - rx_cv_err_ch3 => sd_rx_cv_error, - rx_serdes_rst_ch3_c => rx_serdes_rst, - sb_felb_ch3_c => '0', - sb_felb_rst_ch3_c => '0', - tx_pcs_rst_ch3_c => tx_pcs_rst, - tx_pwrup_ch3_c => '1', - rx_pcs_rst_ch3_c => rx_pcs_rst, - rx_pwrup_ch3_c => '1', - rx_los_low_ch3_s => los, - lsm_status_ch3_s => signal_detected, - rx_cdr_lol_ch3_s => rx_cdr_lol, - -- CH1 -- - -- CH2 -- - -- CH3 -- - ---- Miscillaneous ports - fpga_txrefclk => CLK_125_IN, - tx_serdes_rst_c => '0', - tx_pll_lol_qd_s => tx_pll_lol, - rst_qd_c => quad_rst, - serdes_rst_qd_c => '0' - ); - - -end generate clk_int; - -clk_ext : if (USE_125MHZ_EXTCLK = 1) generate - --SERDES_GBE : serdes_gbe_0_extclock_8b - SERDES_GBE : serdes_gbe_0_extclock_8b - port map( -- SerDes connection to outside world - refclkp => SD_REFCLK_P_IN, -- SerDes REFCLK diff. input - refclkn => SD_REFCLK_N_IN, - hdinp0 => SD_RXD_P_IN, -- SerDes RX diff. input - hdinn0 => SD_RXD_N_IN, - hdoutp0 => SD_TXD_P_OUT, -- SerDes TX diff. output - hdoutn0 => SD_TXD_N_OUT, - refck2core => refclkcore, -- reference clock from input - -- RX part - ff_rxfullclk_ch0 => sd_rx_clk, -- RX full clock output - ff_rxiclk_ch0 => sd_rx_clk, - ff_ebrd_clk_0 => sd_rx_clk, -- EB ist not used as recommended by Lattice - ff_rxdata_ch0 => sd_rx_data, -- RX data output - ff_rx_k_cntrl_ch0 => sd_rx_kcntl, -- RX komma output - ff_rx_even_ch0 => sd_rx_even, -- for autonegotiation (output) - ff_disp_err_ch0 => sd_rx_disp_error, -- RX disparity error - ff_cv_ch0 => sd_rx_cv_error, -- RX code violation error - -- TX part - ff_txfullclk => sd_tx_clk, -- TX full clock output - ff_txiclk_ch0 => sd_tx_clk, - ff_txhalfclk => open, - ff_txdata_ch0 => sd_tx_data, -- TX data input - ff_tx_k_cntrl_ch0 => sd_tx_kcntl, -- TX komma input - ff_xmit_ch0 => '0', -- for autonegotiation (input) - ff_correct_disp_ch0 => sd_tx_correct_disp, -- controls disparity at IPG start (input) - -- Resets and power down - ffc_quad_rst => quad_rst, -- async reset for whole QUAD (active high) - ffc_lane_tx_rst_ch0 => lane_rst, -- async reset for TX channel - ffc_lane_rx_rst_ch0 => lane_rst, -- async reset for RX channel - ffc_rrst_ch0 => '0', -- '0' for normal operation - ffc_macro_rst => '0', -- '0' for normal operation - ffc_trst => '0', -- '0' for normal operation - ffc_txpwdnb_ch0 => '1', -- must be '1' - ffc_rxpwdnb_ch0 => '1', -- must be '1' - -- Status outputs - ffs_ls_sync_status_ch0 => sd_link_ok, -- synced to kommas? - ffs_rlos_lo_ch0 => sd_link_error(0), -- loss of signal in RX channel - ffs_rlol_ch0 => sd_link_error(1), -- loss of lock in RX PLL - ffs_plol => sd_link_error(2), -- loss of lock in TX PLL - oob_out_ch0 => open -- not needed - ); -end generate clk_ext; - ---SD_RX_DATA_PROC: process( sd_rx_clk ) ---begin --- if( rising_edge(sd_rx_clk) ) then --- sd_rx_debug(15 downto 12) <= (others => '0'); --- sd_rx_debug(11) <= sd_rx_disp_error; --- sd_rx_debug(10) <= sd_rx_even; --- sd_rx_debug(9) <= sd_rx_cv_error; --- sd_rx_debug(8) <= sd_rx_kcntl; --- sd_rx_debug(7 downto 0) <= sd_rx_data; --- end if; ---end process SD_RX_DATA_PROC; --- ---SD_TX_DATA_PROC: process( CLK_125_IN) --sd_tx_clk ) ---begin --- if( rising_edge(CLK_125_IN)) then --sd_tx_clk) ) then --- sd_tx_debug(15 downto 10) <= (others => '0'); --- sd_tx_debug(9) <= sd_tx_correct_disp; --- sd_tx_debug(8) <= sd_tx_kcntl; --- sd_tx_debug(7 downto 0) <= sd_tx_data; --- end if; ---end process SD_TX_DATA_PROC; - -buf_stat_debug(63 downto 40) <= (others => '0'); -buf_stat_debug(39 downto 36) <= reset_debug(3 downto 0); -buf_stat_debug(35 downto 32) <= reset_bsm; --- logic analyzer signals -buf_stat_debug(31) <= pcs_mr_page_rx; -buf_stat_debug(30) <= pcs_mr_reset; --pcs_mr_an_complete; -buf_stat_debug(28 downto 26) <= reset_bsm(2 downto 0); -buf_stat_debug(25 downto 23) <= sd_link_error(2 downto 0); -buf_stat_debug(22) <= sd_link_ok; -buf_stat_debug(21 downto 12) <= sd_tx_debug(9 downto 0); -buf_stat_debug(11 downto 0) <= sd_rx_debug(11 downto 0); - - ---SGMII_GBE_PCS : sgmii33 port map ( --- rst_n => GSR_N, --- signal_detect => signal_detected, --- gbe_mode => '1', --- sgmii_mode => '0', --- operational_rate => operational_rate, --- debug_link_timer_short => '0', --- rx_compensation_err => compensation_err, --- tx_clk_125 => CLK_125_IN, --- tx_clock_enable_source => tx_clk_en, --- tx_clock_enable_sink => tx_clk_en, --- tx_d => FT_TXD_IN, --pcs_rxd, --pcs_txd, --- tx_en => FT_TX_EN_IN, --pcs_rx_dv, --pcs_tx_en, --- tx_er => FT_TX_ER_IN, --pcs_rx_er, --pcs_tx_er, --- rx_clk_125 => CLK_125_IN, --- rx_clock_enable_source => rx_clk_en, --- rx_clock_enable_sink => rx_clk_en, --- rx_d => pcs_rx_d, --- rx_dv => pcs_rx_dv, --- rx_er => pcs_rx_er, --- col => FT_COL_OUT, --- crs => FT_CRS_OUT, --- tx_data => sd_tx_data, --- tx_kcntl => sd_tx_kcntl, --- tx_disparity_cntl => sd_tx_correct_disp, --- serdes_recovered_clk => sd_rx_clk, --- rx_data => sd_rx_data_q, --- rx_even => '0', --- rx_kcntl => sd_rx_kcntl_q, --- rx_disp_err => sd_rx_disp_error_q, --- rx_cv_err => sd_rx_cv_error_q, --- rx_err_decode_mode => '0', --- mr_an_complete => an_complete, --- mr_page_rx => mr_page_rx, --- mr_lp_adv_ability => mr_lp_adv_ability, --- mr_main_reset => mr_main_reset, --reset_i, --- mr_an_enable => '1', --'1', --- mr_restart_an => mr_restart_an, --- mr_adv_ability => mr_adv_ability --x"0020" --- ); - - SYNC_TX_PROC : process(CLK_125_IN) - begin - if rising_edge(CLK_125_IN) then - sd_tx_data_q <= sd_tx_data; - sd_tx_kcntl_q <= sd_tx_kcntl; - sd_tx_correct_disp_q <= sd_tx_correct_disp; - end if; - end process SYNC_TX_PROC; - - SYNC_RX_PROC : process(sd_rx_clk) - begin - if rising_edge(sd_rx_clk) then - sd_rx_data_q <= sd_rx_data; - sd_rx_kcntl_q <= sd_rx_kcntl; - sd_rx_disp_error_q <= sd_rx_disp_error; - sd_rx_cv_error_q <= sd_rx_cv_error; - end if; - end process SYNC_RX_PROC; - - - - - SGMII_GBE_PCS : sgmii_gbe_pcs35 --sgmii_gbe_pcs36 --sgmii_gbe_pcs35 - port map( - rst_n => rst_n, --GSR_N, - signal_detect => signal_detected, - gbe_mode => '1', - sgmii_mode => '0', - operational_rate => operational_rate, - debug_link_timer_short => '0', - - force_isolate => '0', - force_loopback => '0', - force_unidir => '0', - - rx_compensation_err => compensation_err, - - ctc_drop_flag => open, - ctc_add_flag => open, - an_link_ok => open, - - -- MAC interface - tx_clk_125 => CLK_125_IN, --refclkcore, -- original clock from SerDes - tx_clock_enable_source => tx_clk_en, - tx_clock_enable_sink => tx_clk_en, - tx_d => FT_TXD_IN, -- TX data from MAC - tx_en => FT_TX_EN_IN, -- TX data enable from MAC - tx_er => FT_TX_ER_IN, -- TX error from MAC - rx_clk_125 => sd_rx_clk, --CLK_125_IN, --refclkcore, -- original clock from SerDes - rx_clock_enable_source => rx_clk_en, - rx_clock_enable_sink => rx_clk_en, - rx_d => pcs_rx_d, -- RX data to MAC - rx_dv => pcs_rx_dv, -- RX data enable to MAC - rx_er => pcs_rx_er, -- RX error to MAC - col => FT_COL_OUT, - crs => FT_CRS_OUT, - -- SerDes interface - tx_data => sd_tx_data, -- TX data to SerDes - tx_kcntl => sd_tx_kcntl, -- TX komma control to SerDes - tx_disparity_cntl => sd_tx_correct_disp, -- idle parity state control in IPG (to SerDes) - - xmit_autoneg => xmit, - - serdes_recovered_clk => sd_rx_clk, -- 125MHz recovered from receive bit stream - rx_data => sd_rx_data_q, -- RX data from SerDes - rx_kcntl => sd_rx_kcntl_q, -- RX komma control from SerDes - rx_err_decode_mode => '0', -- receive error control mode fixed to normal - rx_even => '0', -- unused (receive error control mode = normal, tie to GND) - rx_disp_err => sd_rx_disp_error_q, -- RX disparity error from SerDes - rx_cv_err => sd_rx_cv_error_q, -- RX code violation error from SerDes - -- Autonegotiation stuff - mr_an_complete => an_complete, - mr_page_rx => mr_page_rx, - mr_lp_adv_ability => mr_lp_adv_ability, - mr_main_reset => mr_main_reset, - mr_an_enable => '1', - mr_restart_an => mr_restart_an, - mr_adv_ability => mr_adv_ability - ); - -rst_n <= not RESET; - ---SYNC_RX_PROC : process(sd_rx_clk) ---begin --- if rising_edge(sd_rx_clk) then - FT_RXD_OUT <= pcs_rx_d; - FT_RX_EN_OUT <= pcs_rx_dv; - FT_RX_ER_OUT <= pcs_rx_er; --- end if; ---end process SYNC_RX_PROC; - -u0_reset_controller_pcs : reset_controller_pcs port map( - rst_n => rst_n, - clk => CLK_125_IN, - tx_plol => tx_pll_lol, - rx_cdr_lol => rx_cdr_lol, - quad_rst_out => quad_rst, - tx_pcs_rst_out => tx_pcs_rst, - rx_pcs_rst_out => rx_pcs_rst -); - -u0_reset_controller_cdr : reset_controller_cdr port map( - rst_n => rst_n, - clk => CLK_125_IN, - cdr_lol => rx_cdr_lol, - cdr_rst_out => rx_serdes_rst -); - -u0_rate_resolution : rate_resolution port map( - gbe_mode => '1', - sgmii_mode => '0', - an_enable => '1', - advertised_rate => mr_adv_ability(11 downto 10), - link_partner_rate => mr_lp_adv_ability(11 downto 10), - non_an_rate => "10", -- 1Gbps is rate when auto-negotiation disabled - - operational_rate => operational_rate -); - -u0_ri : register_interface_hb port map( - -- Control Signals - rst_n => rst_n, - hclk => CLK_125_IN, - gbe_mode => '1', - sgmii_mode => '0', - - -- Host Bus - hcs_n => '1', - hwrite_n => '1', - haddr => (others => '0'), - hdatain => (others => '0'), - - hdataout => open, - hready_n => open, - - -- Register Outputs - mr_an_enable => mr_an_enable, - mr_restart_an => mr_restart_an, - mr_main_reset => mr_main_reset, - mr_adv_ability => mr_adv_ability, - - -- Register Inputs - mr_an_complete => an_complete, - mr_page_rx => mr_page_rx, - mr_lp_adv_ability => mr_lp_adv_ability - ); - - - -pcs_mr_reset <= MR_RESET_IN or RESET or user_rst; - -FT_TX_CLK_EN_OUT <= tx_clk_en; -- to MAC -FT_RX_CLK_EN_OUT <= rx_clk_en; -- to MAC - -MR_AN_LP_ABILITY_OUT <= pcs_mr_ability; -MR_AN_COMPLETE_OUT <= an_complete; -MR_AN_PAGE_RX_OUT <= pcs_mr_page_rx; - --- Clock games -CLK_125_OUT <= CLK_125_IN; --sd_tx_clk; -CLK_125_RX_OUT <= sd_rx_clk; - --- Fakes -STAT_OP <= (others => '0'); -SD_TXDIS_OUT <= '0'; -- enable -STAT_DEBUG <= buf_stat_debug; - -end architecture; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net_gbe_components.vhd b/gbe2_ecp3/trb_net_gbe_components.vhd deleted file mode 100644 index 42e2667..0000000 --- a/gbe2_ecp3/trb_net_gbe_components.vhd +++ /dev/null @@ -1,1360 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -library work; -use work.trb_net_std.all; - -use work.trb_net_gbe_protocols.all; - -package trb_net_gbe_components is - - - -component trb_net16_gbe_transmit_control2 is -port ( - CLK : in std_logic; - RESET : in std_logic; - --- signal to/from main controller - TC_DATAREADY_IN : in std_logic; - TC_RD_EN_OUT : out std_logic; - TC_DATA_IN : in std_logic_vector(7 downto 0); - TC_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - TC_FRAME_TYPE_IN : in std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_IN : in std_logic_vector(7 downto 0); - TC_DEST_MAC_IN : in std_logic_vector(47 downto 0); - TC_DEST_IP_IN : in std_logic_vector(31 downto 0); - TC_DEST_UDP_IN : in std_logic_vector(15 downto 0); - TC_SRC_MAC_IN : in std_logic_vector(47 downto 0); - TC_SRC_IP_IN : in std_logic_vector(31 downto 0); - TC_SRC_UDP_IN : in std_logic_vector(15 downto 0); - TC_IDENT_IN : in std_logic_vector(15 downto 0); - TC_TRANSMISSION_DONE_OUT : out std_logic; - TC_MAX_FRAME_IN : in std_logic_vector(15 downto 0); - --- signal to/from frame constructor - FC_DATA_OUT : out std_logic_vector(7 downto 0); - FC_WR_EN_OUT : out std_logic; - FC_READY_IN : in std_logic; - FC_H_READY_IN : in std_logic; - FC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - FC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_IDENT_OUT : out std_logic_vector(15 downto 0); -- internal packet counter - FC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - FC_SOD_OUT : out std_logic; - FC_EOD_OUT : out std_logic; - FC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - - DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - - MONITOR_TX_PACKETS_OUT : out std_logic_vector(31 downto 0) -); -end component; - -component trb_net16_gbe_event_constr is -port( - RESET : in std_logic; - CLK : in std_logic; - -- ports for user logic - PC_WR_EN_IN : in std_logic; -- write into queueConstr from userLogic - PC_DATA_IN : in std_logic_vector(7 downto 0); - PC_READY_OUT : out std_logic; - PC_START_OF_SUB_IN : in std_logic; - PC_END_OF_SUB_IN : in std_logic; -- gk 07.10.10 - PC_END_OF_QUEUE_IN : in std_logic; - -- queue and subevent layer headers - PC_SUB_SIZE_IN : in std_logic_vector(31 downto 0); -- store and swap - PC_DECODING_IN : in std_logic_vector(31 downto 0); -- swap - PC_EVENT_ID_IN : in std_logic_vector(31 downto 0); -- swap - PC_TRIG_NR_IN : in std_logic_vector(31 downto 0); -- store and swap! - PC_TRIGGER_TYPE_IN : in std_logic_vector(3 downto 0); - PC_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); -- swap - PC_INSERT_TTYPE_IN : in std_logic; - -- FrameConstructor ports - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_EVENT_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_SOD_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_ipu_interface is - port ( - CLK_IPU : in std_logic; - CLK_GBE : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- slow control interface - START_CONFIG_OUT : out std_logic; -- reconfigure MACs/IPs/ports/packet size - BANK_SELECT_OUT : out std_logic_vector(3 downto 0); -- configuration page address - CONFIG_DONE_IN : in std_logic; -- configuration finished - DATA_GBE_ENABLE_IN : in std_logic; -- IPU data is forwarded to GbE - DATA_IPU_ENABLE_IN : in std_logic; -- IPU data is forwarded to CTS / TRBnet - MULT_EVT_ENABLE_IN : in std_logic; - MAX_SUBEVENT_SIZE_IN : in std_logic_vector(15 downto 0); - MAX_QUEUE_SIZE_IN : in std_logic_vector(15 downto 0); - MAX_SUBS_IN_QUEUE_IN : in std_logic_vector(15 downto 0); - MAX_SINGLE_SUB_SIZE_IN : in std_logic_vector(15 downto 0); - READOUT_CTR_IN : in std_logic_vector(23 downto 0); -- gk 26.04.10 - READOUT_CTR_VALID_IN : in std_logic; -- gk 26.04.10 - -- PacketConstructor interface - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOS_OUT : out std_logic; - PC_EOQ_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_TRIGGER_TYPE_OUT : out std_logic_vector(3 downto 0); - MONITOR_OUT : out std_logic_vector(223 downto 0); - DEBUG_OUT : out std_logic_vector(383 downto 0) - ); -end component; - -component gbe_ipu_dummy is - generic ( - DO_SIMULATION : integer range 0 to 1 := 0; - FIXED_SIZE_MODE : integer range 0 to 1 := 1; - INCREMENTAL_MODE : integer range 0 to 1 := 0; - FIXED_SIZE : integer range 0 to 65535 := 10; - FIXED_DELAY_MODE : integer range 0 to 1 := 1; - UP_DOWN_MODE : integer range 0 to 1 := 0; - UP_DOWN_LIMIT : integer range 0 to 16777215 := 0; - FIXED_DELAY : integer range 0 to 16777215 := 16777215 - ); - port ( - clk : in std_logic; - rst : in std_logic; - GBE_READY_IN : in std_logic; - - CTS_NUMBER_OUT : out std_logic_vector (15 downto 0); - CTS_CODE_OUT : out std_logic_vector (7 downto 0); - CTS_INFORMATION_OUT : out std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_OUT : out std_logic_vector (3 downto 0); - CTS_START_READOUT_OUT : out std_logic; - CTS_DATA_IN : in std_logic_vector (31 downto 0); - CTS_DATAREADY_IN : in std_logic; - CTS_READOUT_FINISHED_IN : in std_logic; - CTS_READ_OUT : out std_logic; - CTS_LENGTH_IN : in std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_OUT : out std_logic_vector (15 downto 0); - FEE_DATAREADY_OUT : out std_logic; - FEE_READ_IN : in std_logic; - FEE_STATUS_BITS_OUT : out std_logic_vector (31 downto 0); - FEE_BUSY_OUT : out std_logic - ); -end component; - -component gbe_sctrl_dummy is - generic ( - DO_SIMULATION : integer range 0 to 1 := 0; - FIXED_DELAY_MODE : integer range 0 to 1 := 1; - FIXED_DELAY : integer range 0 to 65535 := 4096 - ); - port ( - clk : in std_logic; - rst : in std_logic; - - RC_RD_EN_IN : in std_logic; - RC_Q_OUT : out std_logic_vector(8 downto 0); - RC_FRAME_WAITING_OUT : out std_logic; - RC_LOADING_DONE_IN : in std_logic; - RC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - RC_FRAME_PROTO_OUT : out std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - - RC_SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - RC_DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - RC_SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - RC_DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - RC_SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - RC_DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - - GSC_REPLY_DATAREADY_OUT : out std_logic; - GSC_REPLY_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_REPLY_READ_IN : in std_logic; - GSC_BUSY_OUT : out std_logic - ); -end component; - -component trb_net16_gbe_buf is -generic( - DO_SIMULATION : integer range 0 to 1 := 1; - RX_PATH_ENABLE : integer range 0 to 1 := 1; - USE_INTERNAL_TRBNET_DUMMY : integer range 0 to 1 := 0; - USE_125MHZ_EXTCLK : integer range 0 to 1 := 1; - - FIXED_SIZE_MODE : integer range 0 to 1 := 1; - INCREMENTAL_MODE : integer range 0 to 1 := 0; - FIXED_SIZE : integer range 0 to 65535 := 10; - UP_DOWN_MODE : integer range 0 to 1 := 0; - UP_DOWN_LIMIT : integer range 0 to 16777215 := 0; - FIXED_DELAY_MODE : integer range 0 to 1 := 1; - FIXED_DELAY : integer range 0 to 16777215 := 16777215 -); -port( - CLK : in std_logic; - TEST_CLK : in std_logic; -- only for simulation! - CLK_125_IN : in std_logic; -- gk 28.04.01 used only in internal 125MHz clock mode - RESET : in std_logic; - GSR_N : in std_logic; - -- Debug - STAGE_STAT_REGS_OUT : out std_logic_vector(31 downto 0); - STAGE_CTRL_REGS_IN : in std_logic_vector(31 downto 0); - -- configuration interface - IP_CFG_START_IN : in std_logic; - IP_CFG_BANK_SEL_IN : in std_logic_vector(3 downto 0); - IP_CFG_DONE_OUT : out std_logic; - IP_CFG_MEM_ADDR_OUT : out std_logic_vector(7 downto 0); - IP_CFG_MEM_DATA_IN : in std_logic_vector(31 downto 0); - IP_CFG_MEM_CLK_OUT : out std_logic; - MR_RESET_IN : in std_logic; - MR_MODE_IN : in std_logic; - MR_RESTART_IN : in std_logic; - -- gk 29.03.10 - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - -- gk 22.04.10 - -- registers setup interface - BUS_ADDR_IN : in std_logic_vector(7 downto 0); - BUS_DATA_IN : in std_logic_vector(31 downto 0); - BUS_DATA_OUT : out std_logic_vector(31 downto 0); -- gk 26.04.10 - BUS_WRITE_EN_IN : in std_logic; -- gk 26.04.10 - BUS_READ_EN_IN : in std_logic; -- gk 26.04.10 - BUS_ACK_OUT : out std_logic; -- gk 26.04.10 - -- gk 23.04.10 - LED_PACKET_SENT_OUT : out std_logic; - LED_AN_DONE_N_OUT : out std_logic; - -- CTS interface - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; - CTS_READ_IN : in std_logic; - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - FEE_BUSY_IN : in std_logic; - --SFP Connection - SFP_RXD_P_IN : in std_logic; - SFP_RXD_N_IN : in std_logic; - SFP_TXD_P_OUT : out std_logic; - SFP_TXD_N_OUT : out std_logic; - SFP_REFCLK_P_IN : in std_logic; - SFP_REFCLK_N_IN : in std_logic; - SFP_PRSNT_N_IN : in std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted) - SFP_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SFP_TXDIS_OUT : out std_logic; -- SFP disable - - -- interface between main_controller and hub logic - MC_UNIQUE_ID_IN : in std_logic_vector(63 downto 0); - GSC_CLK_IN : in std_logic; - GSC_INIT_DATAREADY_OUT : out std_logic; - GSC_INIT_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_INIT_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_INIT_READ_IN : in std_logic; - GSC_REPLY_DATAREADY_IN : in std_logic; - GSC_REPLY_DATA_IN : in std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_IN : in std_logic_vector(2 downto 0); - GSC_REPLY_READ_OUT : out std_logic; - GSC_BUSY_IN : in std_logic; - - MAKE_RESET_OUT : out std_logic; - - -- for simulation of receiving part only - MAC_RX_EOF_IN : in std_logic; - MAC_RXD_IN : in std_logic_vector(7 downto 0); - MAC_RX_EN_IN : in std_logic; - - - -- debug ports - ANALYZER_DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - - -component trb_net16_gbe_protocol_prioritizer is -port ( - CLK : in std_logic; - RESET : in std_logic; - - FRAME_TYPE_IN : in std_logic_vector(15 downto 0); -- recovered frame type - PROTOCOL_CODE_IN : in std_logic_vector(7 downto 0); -- ip protocol - UDP_PROTOCOL_IN : in std_logic_vector(15 downto 0); - - CODE_OUT : out std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0) -); -end component; - -component trb_net16_gbe_type_validator is -port ( - CLK : in std_logic; - RESET : in std_logic; - FRAME_TYPE_IN : in std_logic_vector(15 downto 0); -- recovered frame type - SAVED_VLAN_ID_IN : in std_logic_vector(15 downto 0); -- recovered vlan id - ALLOWED_TYPES_IN : in std_logic_vector(31 downto 0); -- signal from gbe_setup - VLAN_ID_IN : in std_logic_vector(31 downto 0); -- two values from gbe setup - - -- IP level - IP_PROTOCOLS_IN : in std_logic_vector(7 downto 0); - ALLOWED_IP_PROTOCOLS_IN : in std_logic_vector(31 downto 0); - - -- UDP level - UDP_PROTOCOL_IN : in std_logic_vector(15 downto 0); - ALLOWED_UDP_PROTOCOLS_IN : in std_logic_vector(31 downto 0); - - VALID_OUT : out std_logic -); -end component; - -component trb_net16_gbe_protocol_selector is -generic( - RX_PATH_ENABLE : integer range 0 to 1 := 1; - DO_SIMULATION : integer range 0 to 1 := 0 - ); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - RESET_FOR_DHCP : in std_logic; - --- signals to/from main controller - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_PROTO_SELECT_IN : in std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - PS_BUSY_OUT : out std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - PS_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - PS_RESPONSE_READY_OUT : out std_logic; - - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - --- singals to/from transmi controller with constructed response - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_RD_EN_IN : in std_logic; - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - MC_BUSY_IN : in std_logic; - - -- misc signals for response constructors - DHCP_START_IN : in std_logic; - DHCP_DONE_OUT : out std_logic; - - GSC_CLK_IN : in std_logic; - GSC_INIT_DATAREADY_OUT : out std_logic; - GSC_INIT_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_INIT_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_INIT_READ_IN : in std_logic; - GSC_REPLY_DATAREADY_IN : in std_logic; - GSC_REPLY_DATA_IN : in std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_IN : in std_logic_vector(2 downto 0); - GSC_REPLY_READ_OUT : out std_logic; - GSC_BUSY_IN : in std_logic; - - MAKE_RESET_OUT : out std_logic; - - -- signal for data readout - -- CTS interface - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; - CTS_READ_IN : in std_logic; - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - FEE_BUSY_IN : in std_logic; - -- ip configurator - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - - CFG_GBE_ENABLE_IN : in std_logic; - CFG_IPU_ENABLE_IN : in std_logic; - CFG_MULT_ENABLE_IN : in std_logic; - CFG_SUBEVENT_ID_IN : in std_logic_vector(31 downto 0); - CFG_SUBEVENT_DEC_IN : in std_logic_vector(31 downto 0); - CFG_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); - CFG_READOUT_CTR_IN : in std_logic_vector(23 downto 0); - CFG_READOUT_CTR_VALID_IN : in std_logic; - CFG_INSERT_TTYPE_IN : in std_logic; - CFG_MAX_SUB_IN : in std_logic_vector(15 downto 0); - CFG_MAX_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SUBS_IN_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SINGLE_SUB_IN : in std_logic_vector(15 downto 0); - - CFG_ADDITIONAL_HDR_IN : in std_logic; - - -- input for statistics from outside - STAT_DATA_IN : in std_logic_vector(31 downto 0); - STAT_ADDR_IN : in std_logic_vector(7 downto 0); - STAT_DATA_RDY_IN : in std_logic; - STAT_DATA_ACK_OUT : out std_logic; - - MONITOR_SELECT_REC_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_REC_BYTES_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_IN_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_OUT_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_GEN_DBG_OUT : out std_logic_vector(2*c_MAX_PROTOCOLS * 32 - 1 downto 0); - - DATA_HIST_OUT : out hist_array; - SCTRL_HIST_OUT : out hist_array -); -end component; - -component trb_net16_gbe_mac_control is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- signals to/from main controller - MC_TSMAC_READY_OUT : out std_logic; - MC_RECONF_IN : in std_logic; - MC_GBE_EN_IN : in std_logic; - MC_RX_DISCARD_FCS : in std_logic; - MC_PROMISC_IN : in std_logic; - MC_MAC_ADDR_IN : in std_logic_vector(47 downto 0); - --- signal to/from Host interface of TriSpeed MAC - TSM_HADDR_OUT : out std_logic_vector(7 downto 0); - TSM_HDATA_OUT : out std_logic_vector(7 downto 0); - TSM_HCS_N_OUT : out std_logic; - TSM_HWRITE_N_OUT : out std_logic; - TSM_HREAD_N_OUT : out std_logic; - TSM_HREADY_N_IN : in std_logic; - TSM_HDATA_EN_N_IN : in std_logic; - - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_main_control is -generic( - RX_PATH_ENABLE : integer range 0 to 1 := 1; - DO_SIMULATION : integer range 0 to 1 := 0 - ); -port ( - CLK : in std_logic; -- system clock - CLK_125 : in std_logic; - RESET : in std_logic; - - MC_LINK_OK_OUT : out std_logic; - MC_RESET_LINK_IN : in std_logic; - MC_IDLE_TOO_LONG_OUT : out std_logic; - MC_DHCP_DONE_OUT : out std_logic; - --- signals to/from receive controller - RC_FRAME_WAITING_IN : in std_logic; - RC_LOADING_DONE_OUT : out std_logic; - RC_DATA_IN : in std_logic_vector(8 downto 0); - RC_RD_EN_OUT : out std_logic; - RC_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - RC_FRAME_PROTO_IN : in std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - - RC_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - RC_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - RC_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - RC_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - RC_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - RC_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - --- signals to/from transmit controller - TC_TRANSMIT_CTRL_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_RD_EN_IN : in std_logic; - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_TRANSMIT_DONE_IN : in std_logic; - --- signals to/from sgmii/gbe pcs_an_complete - PCS_AN_COMPLETE_IN : in std_logic; - --- signals to/from hub - MC_UNIQUE_ID_IN : in std_logic_vector(63 downto 0); - - GSC_CLK_IN : in std_logic; - GSC_INIT_DATAREADY_OUT : out std_logic; - GSC_INIT_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_INIT_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_INIT_READ_IN : in std_logic; - GSC_REPLY_DATAREADY_IN : in std_logic; - GSC_REPLY_DATA_IN : in std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_IN : in std_logic_vector(2 downto 0); - GSC_REPLY_READ_OUT : out std_logic; - GSC_BUSY_IN : in std_logic; - - -- signal for data readout - -- CTS interface - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; - CTS_READ_IN : in std_logic; - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - FEE_BUSY_IN : in std_logic; - -- ip configurator - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - - CFG_GBE_ENABLE_IN : in std_logic; - CFG_IPU_ENABLE_IN : in std_logic; - CFG_MULT_ENABLE_IN : in std_logic; - CFG_SUBEVENT_ID_IN : in std_logic_vector(31 downto 0); - CFG_SUBEVENT_DEC_IN : in std_logic_vector(31 downto 0); - CFG_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); - CFG_READOUT_CTR_IN : in std_logic_vector(23 downto 0); - CFG_READOUT_CTR_VALID_IN : in std_logic; - CFG_INSERT_TTYPE_IN : in std_logic; - CFG_MAX_SUB_IN : in std_logic_vector(15 downto 0); - CFG_MAX_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SUBS_IN_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SINGLE_SUB_IN : in std_logic_vector(15 downto 0); - - CFG_ADDITIONAL_HDR_IN : in std_logic; - - MAKE_RESET_OUT : out std_logic; - --- signal to/from Host interface of TriSpeed MAC - TSM_HADDR_OUT : out std_logic_vector(7 downto 0); - TSM_HDATA_OUT : out std_logic_vector(7 downto 0); - TSM_HCS_N_OUT : out std_logic; - TSM_HWRITE_N_OUT : out std_logic; - TSM_HREAD_N_OUT : out std_logic; - TSM_HREADY_N_IN : in std_logic; - TSM_HDATA_EN_N_IN : in std_logic; - TSM_RX_STAT_VEC_IN : in std_logic_vector(31 downto 0); - TSM_RX_STAT_EN_IN : in std_logic; - - - MONITOR_SELECT_REC_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_REC_BYTES_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_IN_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_OUT_OUT : out std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_GEN_DBG_OUT : out std_logic_vector(2*c_MAX_PROTOCOLS * 32 - 1 downto 0); - - DATA_HIST_OUT : out hist_array; - SCTRL_HIST_OUT : out hist_array -); -end component; - -component trb_net16_gbe_transmit_control is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- signal to/from main controller - MC_TRANSMIT_CTRL_IN : in std_logic; -- slow control frame is waiting to be built and sent - MC_DATA_IN : in std_logic_vector(8 downto 0); - MC_DATA_NOT_VALID_IN : in std_logic; - MC_WR_EN_IN : in std_logic; - MC_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - MC_FRAME_TYPE_IN : in std_logic_vector(15 downto 0); - - MC_DEST_MAC_IN : in std_logic_vector(47 downto 0); - MC_DEST_IP_IN : in std_logic_vector(31 downto 0); - MC_DEST_UDP_IN : in std_logic_vector(15 downto 0); - MC_SRC_MAC_IN : in std_logic_vector(47 downto 0); - MC_SRC_IP_IN : in std_logic_vector(31 downto 0); - MC_SRC_UDP_IN : in std_logic_vector(15 downto 0); - - MC_IP_PROTOCOL_IN : in std_logic_vector(7 downto 0); - MC_IDENT_IN : in std_logic_vector(15 downto 0); - - MC_IP_SIZE_IN : in std_logic_vector(15 downto 0); - MC_UDP_SIZE_IN : in std_logic_vector(15 downto 0); - MC_FLAGS_OFFSET_IN : in std_logic_vector(15 downto 0); - - MC_FC_H_READY_OUT : out std_logic; - MC_FC_READY_OUT : out std_logic; - MC_FC_WR_EN_IN : in std_logic; - - MC_BUSY_OUT : out std_logic; - MC_TRANSMIT_DONE_OUT : out std_logic; - --- signal to/from frame constructor - FC_DATA_OUT : out std_logic_vector(7 downto 0); - FC_WR_EN_OUT : out std_logic; - FC_READY_IN : in std_logic; - FC_H_READY_IN : in std_logic; - FC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - FC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_IDENT_OUT : out std_logic_vector(15 downto 0); -- internal packet counter - FC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - FC_SOD_OUT : out std_logic; - FC_EOD_OUT : out std_logic; - FC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - - DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_receive_control is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- signals to/from frame_receiver - RC_DATA_IN : in std_logic_vector(8 downto 0); - FR_RD_EN_OUT : out std_logic; - FR_FRAME_VALID_IN : in std_logic; - FR_GET_FRAME_OUT : out std_logic; - FR_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); - FR_FRAME_PROTO_IN : in std_logic_vector(15 downto 0); - FR_IP_PROTOCOL_IN : in std_logic_vector(7 downto 0); - - FR_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - FR_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - FR_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - FR_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - FR_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - FR_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - --- signals to the rest of the logic - RC_RD_EN_IN : in std_logic; - RC_Q_OUT : out std_logic_vector(8 downto 0); - RC_FRAME_WAITING_OUT : out std_logic; - RC_LOADING_DONE_IN : in std_logic; - RC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - RC_FRAME_PROTO_OUT : out std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0); - - RC_SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - RC_DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - RC_SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - RC_DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - RC_SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - RC_DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - --- statistics - FRAMES_RECEIVED_OUT : out std_logic_vector(31 downto 0); - BYTES_RECEIVED_OUT : out std_logic_vector(31 downto 0); - - - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_frame_receiver is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - LINK_OK_IN : in std_logic; - ALLOW_RX_IN : in std_logic; - RX_MAC_CLK : in std_logic; -- receiver serdes clock - --- input signals from TS_MAC - MAC_RX_EOF_IN : in std_logic; - MAC_RX_ER_IN : in std_logic; - MAC_RXD_IN : in std_logic_vector(7 downto 0); - MAC_RX_EN_IN : in std_logic; - MAC_RX_FIFO_ERR_IN : in std_logic; - MAC_RX_FIFO_FULL_OUT : out std_logic; - MAC_RX_STAT_EN_IN : in std_logic; - MAC_RX_STAT_VEC_IN : in std_logic_vector(31 downto 0); --- output signal to control logic - FR_Q_OUT : out std_logic_vector(8 downto 0); - FR_RD_EN_IN : in std_logic; - FR_FRAME_VALID_OUT : out std_logic; - FR_GET_FRAME_IN : in std_logic; - FR_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - FR_FRAME_PROTO_OUT : out std_logic_vector(15 downto 0); - FR_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - FR_ALLOWED_TYPES_IN : in std_logic_vector(31 downto 0); - FR_ALLOWED_IP_IN : in std_logic_vector(31 downto 0); - FR_ALLOWED_UDP_IN : in std_logic_vector(31 downto 0); - FR_VLAN_ID_IN : in std_logic_vector(31 downto 0); - - FR_SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - FR_DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0); - FR_SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - FR_DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0); - FR_SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - FR_DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0); - - MONITOR_RX_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_RX_FRAMES_OUT : out std_logic_vector(31 downto 0); - MONITOR_DROPPED_OUT : out std_logic_vector(31 downto 0) -); -end component; - --- gk 01.07.10 -component trb_net16_ipu2gbe is -port( - CLK : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- slow control interface - START_CONFIG_OUT : out std_logic; -- reconfigure MACs/IPs/ports/packet size - BANK_SELECT_OUT : out std_logic_vector(3 downto 0); -- configuration page address - CONFIG_DONE_IN : in std_logic; -- configuration finished - DATA_GBE_ENABLE_IN : in std_logic; -- IPU data is forwarded to GbE - DATA_IPU_ENABLE_IN : in std_logic; -- IPU data is forwarded to CTS / TRBnet - MULT_EVT_ENABLE_IN : in std_logic; - MAX_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- the maximum size of one HadesQueue -- gk 08.04.10 - MIN_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- gk 20.07.10 - READOUT_CTR_IN : in std_logic_vector(23 downto 0); -- gk 26.04.10 - READOUT_CTR_VALID_IN : in std_logic; -- gk 26.04.10 - --- SCTRL_DUMMY_SIZE_IN : in std_logic_vector(15 downto 0); --- SCTRL_DUMMY_PAUSE_IN : in std_logic_vector(31 downto 0); - - -- PacketConstructor interface - ALLOW_LARGE_IN : in std_logic; -- gk 21.07.10 - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOS_OUT : out std_logic; -- gk 07.10.10 - PC_EOD_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_PADDING_OUT : out std_logic; - MONITOR_OUT : out std_logic_vector(223 downto 0); - DEBUG_OUT : out std_logic_vector(383 downto 0) -); -end component; - -component trb_net16_gbe_packet_constr is -port( - RESET : in std_logic; - CLK : in std_logic; - MULT_EVT_ENABLE_IN : in std_logic; -- gk 06.10.10 - -- ports for user logic - PC_WR_EN_IN : in std_logic; -- write into queueConstr from userLogic - PC_DATA_IN : in std_logic_vector(7 downto 0); - PC_READY_OUT : out std_logic; - PC_START_OF_SUB_IN : in std_logic; - PC_END_OF_SUB_IN : in std_logic; -- gk 07.10.10 - PC_END_OF_DATA_IN : in std_logic; - PC_TRANSMIT_ON_OUT : out std_logic; - -- queue and subevent layer headers - PC_SUB_SIZE_IN : in std_logic_vector(31 downto 0); -- store and swap - PC_PADDING_IN : in std_logic; -- gk 29.03.10 - PC_DECODING_IN : in std_logic_vector(31 downto 0); -- swap - PC_EVENT_ID_IN : in std_logic_vector(31 downto 0); -- swap - PC_TRIG_NR_IN : in std_logic_vector(31 downto 0); -- store and swap! - PC_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); -- swap - PC_MAX_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); -- DO NOT SWAP - PC_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 28.04.10 - -- FrameConstructor ports - TC_WR_EN_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(7 downto 0); - TC_H_READY_IN : in std_logic; - TC_READY_IN : in std_logic; - TC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - TC_SOD_OUT : out std_logic; - TC_EOD_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_frame_constr is -port( - -- ports for user logic - RESET : in std_logic; - CLK : in std_logic; - LINK_OK_IN : in std_logic; -- gk 03.08.10 - -- - WR_EN_IN : in std_logic; - DATA_IN : in std_logic_vector(7 downto 0); - START_OF_DATA_IN : in std_logic; - END_OF_DATA_IN : in std_logic; - IP_F_SIZE_IN : in std_logic_vector(15 downto 0); - UDP_P_SIZE_IN : in std_logic_vector(15 downto 0); -- needed for fragmentation - HEADERS_READY_OUT : out std_logic; - READY_OUT : out std_logic; - DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - FRAME_TYPE_IN : in std_logic_vector(15 downto 0); - IHL_VERSION_IN : in std_logic_vector(7 downto 0); - TOS_IN : in std_logic_vector(7 downto 0); - IDENTIFICATION_IN : in std_logic_vector(15 downto 0); - FLAGS_OFFSET_IN : in std_logic_vector(15 downto 0); - TTL_IN : in std_logic_vector(7 downto 0); - PROTOCOL_IN : in std_logic_vector(7 downto 0); - FRAME_DELAY_IN : in std_logic_vector(31 downto 0); - -- ports for packetTransmitter - RD_CLK : in std_logic; -- 125MHz clock!!! - FT_DATA_OUT : out std_logic_vector(8 downto 0); - FT_TX_EMPTY_OUT : out std_logic; - FT_TX_RD_EN_IN : in std_logic; - FT_START_OF_PACKET_OUT : out std_logic; - FT_TX_DONE_IN : in std_logic; - FT_TX_DISCFRM_IN : in std_logic; - - MONITOR_TX_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_TX_FRAMES_OUT : out std_logic_vector(31 downto 0) -); -end component; - -component trb_net16_gbe_frame_trans is -port ( - CLK : in std_logic; - RESET : in std_logic; - LINK_OK_IN : in std_logic; -- gk 03.08.10 - TX_MAC_CLK : in std_logic; - TX_EMPTY_IN : in std_logic; - START_OF_PACKET_IN : in std_logic; - DATA_ENDFLAG_IN : in std_logic; -- (8) is end flag, rest is only for TSMAC - -- NEW PORTS --- HADDR_OUT : out std_logic_vector(7 downto 0); --- HDATA_OUT : out std_logic_vector(7 downto 0); --- HCS_OUT : out std_logic; --- HWRITE_OUT : out std_logic; --- HREAD_OUT : out std_logic; --- HREADY_IN : in std_logic; --- HDATA_EN_IN : in std_logic; - TX_FIFOAVAIL_OUT : out std_logic; - TX_FIFOEOF_OUT : out std_logic; - TX_FIFOEMPTY_OUT : out std_logic; - TX_DONE_IN : in std_logic; - TX_STAT_EN_IN : in std_logic; - TX_STATVEC_IN : in std_logic_vector(30 downto 0); - TX_DISCFRM_IN : in std_logic; - -- Debug - BSM_INIT_OUT : out std_logic_vector(3 downto 0); - BSM_MAC_OUT : out std_logic_vector(3 downto 0); - BSM_TRANS_OUT : out std_logic_vector(3 downto 0); - DBG_RD_DONE_OUT : out std_logic; - DBG_INIT_DONE_OUT : out std_logic; - DBG_ENABLED_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_med_ecp_sfp_gbe_8b is --- gk 28.04.10 -generic ( - USE_125MHZ_EXTCLK : integer range 0 to 1 := 1 -); -port( - RESET : in std_logic; - GSR_N : in std_logic; - CLK_125_OUT : out std_logic; - CLK_125_RX_OUT : out std_logic; - CLK_125_IN : in std_logic; -- gk 28.04.10 used when intclk - --SGMII connection to frame transmitter (tsmac) - FT_TX_CLK_EN_OUT : out std_logic; - FT_RX_CLK_EN_OUT : out std_logic; - FT_COL_OUT : out std_logic; - FT_CRS_OUT : out std_logic; - FT_TXD_IN : in std_logic_vector(7 downto 0); - FT_TX_EN_IN : in std_logic; - FT_TX_ER_IN : in std_logic; - FT_RXD_OUT : out std_logic_vector(7 downto 0); - FT_RX_EN_OUT : out std_logic; - FT_RX_ER_OUT : out std_logic; - --SFP Connection - SD_RXD_P_IN : in std_logic; - SD_RXD_N_IN : in std_logic; - SD_TXD_P_OUT : out std_logic; - SD_TXD_N_OUT : out std_logic; - SD_REFCLK_P_IN : in std_logic; - SD_REFCLK_N_IN : in std_logic; - SD_PRSNT_N_IN : in std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted) - SD_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SD_TXDIS_OUT : out std_logic; -- SFP disable - -- Autonegotiation stuff - MR_RESET_IN : in std_logic; - MR_MODE_IN : in std_logic; - MR_ADV_ABILITY_IN : in std_logic_vector(15 downto 0); - MR_AN_LP_ABILITY_OUT : out std_logic_vector(15 downto 0); - MR_AN_PAGE_RX_OUT : out std_logic; - MR_AN_COMPLETE_OUT : out std_logic; - MR_AN_ENABLE_IN : in std_logic; - MR_RESTART_AN_IN : in std_logic; - -- Status and control port - STAT_OP : out std_logic_vector (15 downto 0); - CTRL_OP : in std_logic_vector (15 downto 0); - STAT_DEBUG : out std_logic_vector (63 downto 0); - CTRL_DEBUG : in std_logic_vector (63 downto 0) -); -end component; - -component gbe_setup is -port( - CLK : in std_logic; - RESET : in std_logic; - - -- interface to regio bus - BUS_ADDR_IN : in std_logic_vector(7 downto 0); - BUS_DATA_IN : in std_logic_vector(31 downto 0); - BUS_DATA_OUT : out std_logic_vector(31 downto 0); - BUS_WRITE_EN_IN : in std_logic; - BUS_READ_EN_IN : in std_logic; - BUS_ACK_OUT : out std_logic; - - -- output to gbe_buf - GBE_SUBEVENT_ID_OUT : out std_logic_vector(31 downto 0); - GBE_SUBEVENT_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_QUEUE_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_MAX_FRAME_OUT : out std_logic_vector(15 downto 0); - GBE_USE_GBE_OUT : out std_logic; - GBE_USE_TRBNET_OUT : out std_logic; - GBE_USE_MULTIEVENTS_OUT : out std_logic; - GBE_READOUT_CTR_OUT : out std_logic_vector(23 downto 0); - GBE_READOUT_CTR_VALID_OUT : out std_logic; - GBE_ALLOW_RX_OUT : out std_logic; - GBE_ADDITIONAL_HDR_OUT : out std_logic; - GBE_INSERT_TTYPE_OUT : out std_logic; - GBE_SOFT_RESET_OUT : out std_logic; - - GBE_MAX_SUB_OUT : out std_logic_vector(15 downto 0); - GBE_MAX_QUEUE_OUT : out std_logic_vector(15 downto 0); - GBE_MAX_SUBS_IN_QUEUE_OUT : out std_logic_vector(15 downto 0); - GBE_MAX_SINGLE_SUB_OUT : out std_logic_vector(15 downto 0); - - MONITOR_RX_BYTES_IN : in std_logic_vector(31 downto 0); - MONITOR_RX_FRAMES_IN : in std_logic_vector(31 downto 0); - MONITOR_TX_BYTES_IN : in std_logic_vector(31 downto 0); - MONITOR_TX_FRAMES_IN : in std_logic_vector(31 downto 0); - MONITOR_TX_PACKETS_IN : in std_logic_vector(31 downto 0); - MONITOR_DROPPED_IN : in std_logic_vector(31 downto 0); - - MONITOR_SELECT_REC_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_REC_BYTES_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_BYTES_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_SENT_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_IN_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_DROP_OUT_IN : in std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0); - MONITOR_SELECT_GEN_DBG_IN : in std_logic_vector(2*c_MAX_PROTOCOLS * 32 - 1 downto 0); - - DATA_HIST_IN : in hist_array; - SCTRL_HIST_IN : in hist_array -); -end component; - - -component ip_configurator is -port( - CLK : in std_logic; - RESET : in std_logic; - -- configuration interface - START_CONFIG_IN : in std_logic; -- start configuration run - BANK_SELECT_IN : in std_logic_vector(3 downto 0); -- selects config bank - CONFIG_DONE_OUT : out std_logic; -- configuration run ended, new values can be used - MEM_ADDR_OUT : out std_logic_vector(7 downto 0); -- address for - MEM_DATA_IN : in std_logic_vector(31 downto 0); -- data from IP memory - MEM_CLK_OUT : out std_logic; -- clock for BlockRAM - -- information for IP cores - DEST_MAC_OUT : out std_logic_vector(47 downto 0); -- destination MAC address - DEST_IP_OUT : out std_logic_vector(31 downto 0); -- destination IP address - DEST_UDP_OUT : out std_logic_vector(15 downto 0); -- destination port - SRC_MAC_OUT : out std_logic_vector(47 downto 0); -- source MAC address - SRC_IP_OUT : out std_logic_vector(31 downto 0); -- source IP address - SRC_UDP_OUT : out std_logic_vector(15 downto 0); -- source port - MTU_OUT : out std_logic_vector(15 downto 0); -- MTU size (max frame size) - -- Debug - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end component; - -component fifo_4096x9 is -port( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_2048x8 is -port( - Data : in std_logic_vector(7 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(7 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_4096x32 is -port( - Data : in std_logic_vector(31 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(31 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_512x32 is -port( - Data : in std_logic_vector(31 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(31 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_512x72 is -port( - Data : in std_logic_vector(71 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(71 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_1024x16x8 is -port( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_65536x18x9 is -port( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_4kx18x9 is -port( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - - -component fifo_2048x8x16 is -port( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(17 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_4kx8_ecp3 is -port( - Data : in std_logic_vector(7 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(7 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component statts_mem is - port ( - WrAddress: in std_logic_vector(7 downto 0); - RdAddress: in std_logic_vector(9 downto 0); - Data: in std_logic_vector(31 downto 0); - WE: in std_logic; - RdClock: in std_logic; - RdClockEn: in std_logic; - Reset: in std_logic; - WrClock: in std_logic; - WrClockEn: in std_logic; - Q: out std_logic_vector(7 downto 0)); -end component; - ---component slv_mac_memory is ---port( --- CLK : in std_logic; --- RESET : in std_logic; --- BUSY_IN : in std_logic; --- -- Slave bus --- SLV_ADDR_IN : in std_logic_vector(7 downto 0); --- SLV_READ_IN : in std_logic; --- SLV_WRITE_IN : in std_logic; --- SLV_BUSY_OUT : out std_logic; --- SLV_ACK_OUT : out std_logic; --- SLV_DATA_IN : in std_logic_vector(31 downto 0); --- SLV_DATA_OUT : out std_logic_vector(31 downto 0); --- -- I/O to the backend --- MEM_CLK_IN : in std_logic; --- MEM_ADDR_IN : in std_logic_vector(7 downto 0); --- MEM_DATA_OUT : out std_logic_vector(31 downto 0); --- -- Status lines --- STAT : out std_logic_vector(31 downto 0) -- DEBUG ---); ---end component; - -component fifo_32kx16x8_mb2 -port( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(8 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); - Empty : out std_logic; - AlmostEmpty : out std_logic; - Full : out std_logic; - AlmostFull : out std_logic -); -end component; - -component fifo_64kx9 -port ( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_16kx18x9 is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(14 downto 0); - AmFullThresh: in std_logic_vector(13 downto 0); - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end component; - -component fifo_32kx9_flags is - port ( - Data: in std_logic_vector(8 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostFull : out std_logic); -end component; - - -component fifo_512x32x8 -port ( - Data : in std_logic_vector(31 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(7 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -component fifo_512x8 -port ( - Data : in std_logic_vector(7 downto 0); - Clock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - Q : out std_logic_vector(7 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -end package; \ No newline at end of file diff --git a/gbe2_ecp3/trb_net_gbe_protocols.vhd b/gbe2_ecp3/trb_net_gbe_protocols.vhd deleted file mode 100644 index 8d0dc4c..0000000 --- a/gbe2_ecp3/trb_net_gbe_protocols.vhd +++ /dev/null @@ -1,627 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -library work; -use work.trb_net_std.all; - -package trb_net_gbe_protocols is - -type hist_array is array(31 downto 0) of std_logic_vector(31 downto 0); - -signal g_SIMULATE : integer range 0 to 1 := 0; - --- g_MY_IP is being set by DHCP Response Constructor -signal g_MY_IP : std_logic_vector(31 downto 0); --- g_MY_MAC is being set by Main Controller -signal g_MY_MAC : std_logic_vector(47 downto 0); - -constant c_MAX_FRAME_TYPES : integer range 1 to 16 := 2; -constant c_MAX_PROTOCOLS : integer range 1 to 16 := 5; --5; --4; --5; -constant c_MAX_IP_PROTOCOLS : integer range 1 to 16 := 2; -constant c_MAX_UDP_PROTOCOLS : integer range 1 to 16 := 4; - -type frame_types_a is array(c_MAX_FRAME_TYPES - 1 downto 0) of std_logic_vector(15 downto 0); -constant FRAME_TYPES : frame_types_a := (x"0800", x"0806"); --- IPv4, ARP - -type ip_protos_a is array(c_MAX_IP_PROTOCOLS - 1 downto 0) of std_logic_vector(7 downto 0); -constant IP_PROTOCOLS : ip_protos_a := (x"11", x"01"); --- UDP, ICMP - --- this are the destination ports of the incoming packet -type udp_protos_a is array(c_MAX_UDP_PROTOCOLS - 1 downto 0) of std_logic_vector(15 downto 0); -constant UDP_PROTOCOLS : udp_protos_a := (x"0044", x"6590", x"7530", x"7531"); --x"6590", x"7530", x"7531"); --x"61a8", x"7530", x"7531"); --- DHCP client, SCTRL, STATs - -component trb_net16_gbe_response_constructor_Forward is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_WR_EN_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - TC_BUSY_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_response_constructor_ARP is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_response_constructor_Test is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_WR_EN_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - TC_BUSY_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_response_constructor_Trash is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_SIZE_LEFT_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - TC_BUSY_IN : in std_logic; - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_response_constructor_DHCP is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - - DHCP_START_IN : in std_logic; - DHCP_DONE_OUT : out std_logic; --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_response_constructor_Ping is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_response_constructor_PseudoPing is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_response_constructor_Test1 is -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_WR_EN_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - TC_BUSY_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_response_constructor_SCTRL is -generic ( STAT_ADDRESS_BASE : integer := 0 -); - port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - - -- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - DEBUG_OUT : out std_logic_vector(63 downto 0); - -- END OF INTERFACE - - -- protocol specific ports - GSC_CLK_IN : in std_logic; - GSC_INIT_DATAREADY_OUT : out std_logic; - GSC_INIT_DATA_OUT : out std_logic_vector(15 downto 0); - GSC_INIT_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - GSC_INIT_READ_IN : in std_logic; - GSC_REPLY_DATAREADY_IN : in std_logic; - GSC_REPLY_DATA_IN : in std_logic_vector(15 downto 0); - GSC_REPLY_PACKET_NUM_IN : in std_logic_vector(2 downto 0); - GSC_REPLY_READ_OUT : out std_logic; - GSC_BUSY_IN : in std_logic; - MAKE_RESET_OUT : out std_logic; - CFG_ADDITIONAL_HDR_IN : in std_logic; - -- end of protocol specific ports - - MONITOR_SELECT_REC_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_REC_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_SENT_OUT : out std_logic_vector(31 downto 0); - - DATA_HIST_OUT : out hist_array - ); -end component; - -component trb_net16_gbe_response_constructor_Stat is -generic ( STAT_ADDRESS_BASE : integer := 0 -); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_WR_EN_OUT : out std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - TC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - TC_BUSY_IN : in std_logic; - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - RECEIVED_FRAMES_OUT : out std_logic_vector(15 downto 0); - SENT_FRAMES_OUT : out std_logic_vector(15 downto 0); --- END OF INTERFACE - - STAT_DATA_IN : in std_logic_vector((c_MAX_PROTOCOLS + 1) * 32 - 1 downto 0); - STAT_ADDR_IN : in std_logic_vector((c_MAX_PROTOCOLS + 1) * 8 - 1 downto 0); - STAT_DATA_RDY_IN : in std_logic_vector((c_MAX_PROTOCOLS + 1) - 1 downto 0); - STAT_DATA_ACK_OUT : out std_logic_vector((c_MAX_PROTOCOLS + 1) - 1 downto 0); - --- debug - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_response_constructor_TrbNetData is -generic ( - RX_PATH_ENABLE : integer range 0 to 1 := 1; - DO_SIMULATION : integer range 0 to 1 := 0 - ); -port ( - CLK : in std_logic; -- system clock - RESET : in std_logic; - --- INTERFACE - PS_DATA_IN : in std_logic_vector(8 downto 0); - PS_WR_EN_IN : in std_logic; - PS_ACTIVATE_IN : in std_logic; - PS_RESPONSE_READY_OUT : out std_logic; - PS_BUSY_OUT : out std_logic; - PS_SELECTED_IN : in std_logic; - PS_SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - PS_SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - PS_SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - PS_DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - - TC_RD_EN_IN : in std_logic; - TC_DATA_OUT : out std_logic_vector(8 downto 0); - TC_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0); - TC_FRAME_TYPE_OUT : out std_logic_vector(15 downto 0); - TC_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0); - TC_IDENT_OUT : out std_logic_vector(15 downto 0); - TC_DEST_MAC_OUT : out std_logic_vector(47 downto 0); - TC_DEST_IP_OUT : out std_logic_vector(31 downto 0); - TC_DEST_UDP_OUT : out std_logic_vector(15 downto 0); - TC_SRC_MAC_OUT : out std_logic_vector(47 downto 0); - TC_SRC_IP_OUT : out std_logic_vector(31 downto 0); - TC_SRC_UDP_OUT : out std_logic_vector(15 downto 0); - - STAT_DATA_OUT : out std_logic_vector(31 downto 0); - STAT_ADDR_OUT : out std_logic_vector(7 downto 0); - STAT_DATA_RDY_OUT : out std_logic; - STAT_DATA_ACK_IN : in std_logic; - - DEBUG_OUT : out std_logic_vector(63 downto 0); - --- END OF INTERFACE - - -- CTS interface - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; - CTS_READ_IN : in std_logic; - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - FEE_BUSY_IN : in std_logic; - -- ip configurator - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - - CFG_GBE_ENABLE_IN : in std_logic; - CFG_IPU_ENABLE_IN : in std_logic; - CFG_MULT_ENABLE_IN : in std_logic; - CFG_SUBEVENT_ID_IN : in std_logic_vector(31 downto 0); - CFG_SUBEVENT_DEC_IN : in std_logic_vector(31 downto 0); - CFG_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); - CFG_READOUT_CTR_IN : in std_logic_vector(23 downto 0); - CFG_READOUT_CTR_VALID_IN : in std_logic; - CFG_INSERT_TTYPE_IN : in std_logic; - CFG_MAX_SUB_IN : in std_logic_vector(15 downto 0); - CFG_MAX_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SUBS_IN_QUEUE_IN : in std_logic_vector(15 downto 0); - CFG_MAX_SINGLE_SUB_IN : in std_logic_vector(15 downto 0); - - MONITOR_SELECT_REC_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_REC_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_SENT_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_DROP_IN_OUT : out std_logic_vector(31 downto 0); - MONITOR_SELECT_DROP_OUT_OUT : out std_logic_vector(31 downto 0); - - DATA_HIST_OUT : out hist_array -); -end component; - -end package; diff --git a/gbe_ecp2m/feeder.vhd b/gbe_ecp2m/feeder.vhd deleted file mode 100755 index 57fb2c2..0000000 --- a/gbe_ecp2m/feeder.vhd +++ /dev/null @@ -1,620 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; - -entity feeder is -port( CLK : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- PacketConstructor interface - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOD_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_PADDING_OUT : out std_logic; - -- Debug - BSM_SAVE_OUT : out std_logic_vector(3 downto 0); - BSM_LOAD_OUT : out std_logic_vector(3 downto 0); - DBG_REM_CTR_OUT : out std_logic_vector(3 downto 0); - DBG_CTS_CTR_OUT : out std_logic_vector(2 downto 0); - DBG_SF_WCNT_OUT : out std_logic_vector(15 downto 0); - DBG_SF_RCNT_OUT : out std_logic_vector(16 downto 0); - DBG_SF_DATA_OUT : out std_logic_vector(15 downto 0); - DBG_SF_RD_EN_OUT : out std_logic; - DBG_SF_WR_EN_OUT : out std_logic; - DBG_SF_EMPTY_OUT : out std_logic; - DBG_SF_FULL_OUT : out std_logic; - DBG_SF_AFULL_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end entity; - -architecture feeder of feeder is - -component fifo_32kx16x8_mb -port( Data : in std_logic_vector(15 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(7 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); - Empty : out std_logic; - Full : out std_logic; - AlmostFull : out std_logic - ); -end component; - -type saveStates is (SIDLE, WAIT_FOR_DATA, SAVE_DATA, TERMINATE, SCLOSE); -signal saveCurrentState, saveNextState : saveStates; -signal state : std_logic_vector(3 downto 0); -signal data_req_comb : std_logic; -signal data_req : std_logic; -- request data signal, will be used for fee_read generation -signal rst_saved_ctr_comb : std_logic; -signal rst_saved_ctr : std_logic; - -signal fee_read_comb : std_logic; -signal fee_read : std_logic; -- fee_read signal -signal saved_ctr : std_logic_vector(16 downto 0); -signal ce_saved_ctr : std_logic; - --- header data -signal cts_rnd : std_logic_vector(15 downto 0); -signal cts_rnd_saved : std_logic; -signal cts_trg : std_logic_vector(15 downto 0); -signal cts_trg_saved : std_logic; -signal cts_len : std_logic_vector(16 downto 0); -signal cts_len_saved : std_logic; - --- CTS interface -signal cts_error_pattern : std_logic_vector(31 downto 0); -signal cts_length : std_logic_vector(15 downto 0); -signal cts_readout_finished : std_logic; -signal cts_dataready : std_logic; -signal cts_data : std_logic_vector(31 downto 0); - --- Split FIFO signals -signal sf_data : std_logic_vector(15 downto 0); -signal sf_wr_en_comb : std_logic; -signal sf_wr_en : std_logic; -- write signal for FIFO -signal sf_rd_en : std_logic; -signal sf_wcnt : std_logic_vector(15 downto 0); -signal sf_rcnt : std_logic_vector(16 downto 0); -signal sf_empty : std_logic; -signal sf_full : std_logic; -signal sf_afull : std_logic; - -------------------------------------------------------------------- -type loadStates is (LIDLE, INIT, REMOVE, CALCA, CALCB, LOAD, PAD0, PAD1, PAD2, PAD3, WAIT_PC, CLOSE); -signal loadCurrentState, loadNextState : loadStates; -signal state2 : std_logic_vector(3 downto 0); - -signal rem_ctr : std_logic_vector(3 downto 0); -- counter for stripping / storing header data -signal rst_rem_ctr_comb : std_logic; -signal rst_rem_ctr : std_logic; -signal rst_regs_comb : std_logic; -signal rst_regs : std_logic; -signal ce_rem_ctr_comb : std_logic; -signal ce_rem_ctr : std_logic; -signal remove_done_comb : std_logic; -signal remove_done : std_logic; -- end of header stripping process -signal load_done_comb : std_logic; -signal load_done : std_logic; -- end of data transfer into PC -signal calc_pad_comb : std_logic; -signal calc_pad : std_logic; -- add padding bytes, if needed -signal read_data_comb : std_logic; -signal read_data : std_logic; -- fetch data from split fifo -signal data_phase_comb : std_logic; -signal data_phase : std_logic; -- data transport phase from split fifo to PC -signal pc_sos_comb : std_logic; -signal pc_sos : std_logic; -- start of data signal -signal pc_eod_comb : std_logic; -signal pc_eod : std_logic; -- end of data signal -signal pad_data_comb : std_logic; -signal pad_data : std_logic; -- insert padding bytes - -signal pc_data : std_logic_vector(7 downto 0); -signal pc_data_q : std_logic_vector(7 downto 0); -signal pc_trig_nr : std_logic_vector(15 downto 0); -signal pc_sub_size : std_logic_vector(17 downto 0); -signal read_size : std_logic_vector(17 downto 0); -- number of byte to be read from split fifo -signal padding_needed : std_logic; -signal pc_wr_en_q : std_logic; -signal pc_wr_en_qq : std_logic; -signal pc_eod_q : std_logic; - -signal debug : std_logic_vector(31 downto 0); - -begin - --- CTS interface signals -cts_error_pattern <= (others => '0'); -- FAKE -cts_dataready <= '1'; -- FAKE - -cts_length <= x"0000"; -- length of data payload is always 0 -cts_data <= b"0001" & cts_rnd(11 downto 0) & cts_trg; -- reserved bits = '0', pack bit = '1' - -cts_readout_finished <= '1' when (saveCurrentState = SCLOSE) else '0'; - - --- Sync all critical pathes -THE_SYNC_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - sf_data <= FEE_DATA_IN; - sf_wr_en <= sf_wr_en_comb; - fee_read <= fee_read_comb; - load_done <= load_done_comb; - pc_eod_q <= pc_eod; - pc_wr_en_qq <= pc_wr_en_q; - pc_wr_en_q <= data_phase; - end if; -end process THE_SYNC_PROC; - --- combinatorial read signal for the FEE data interface, DO NOT USE DIRECTLY -fee_read_comb <= '1' when ( (sf_afull = '0') and (data_req = '1') ) - else '0'; - --- combinatorial write signal for the split FIFO, DO NOT USE DIRECTLY -sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') ) - else '0'; - --- Counter for header word storage -THE_CTS_SAVED_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - saved_ctr <= (others => '0'); - elsif( ce_saved_ctr = '1' ) then - saved_ctr <= saved_ctr + 1; - end if; - end if; -end process THE_CTS_SAVED_CTR; - -ce_saved_ctr <= sf_wr_en; - --- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO -saveMachineProc: process( CLK ) -begin - if rising_edge(CLK) then - if RESET = '1' then - saveCurrentState <= SIDLE; - data_req <= '0'; - rst_saved_ctr <= '0'; - else - saveCurrentState <= saveNextState; - data_req <= data_req_comb; - rst_saved_ctr <= rst_saved_ctr_comb; - end if; - end if; -end process saveMachineProc; - -saveMachine: process( saveCurrentState, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN ) -begin - saveNextState <= SIDLE; - data_req_comb <= '0'; - rst_saved_ctr_comb <= '0'; - case saveCurrentState is - when SIDLE => - state <= x"0"; - if (CTS_START_READOUT_IN = '1') then - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - rst_saved_ctr_comb <= '1'; - else - saveNextState <= SIDLE; - end if; - when WAIT_FOR_DATA => - state <= x"1"; - if (FEE_BUSY_IN = '1') then - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - else - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - end if; - when SAVE_DATA => - state <= x"2"; - if (FEE_BUSY_IN = '0') then - saveNextState <= TERMINATE; - else - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - end if; - when TERMINATE => - state <= x"3"; - if (CTS_READ_IN = '1') then - saveNextState <= SCLOSE; - else - saveNextState <= TERMINATE; - end if; - when SCLOSE => - state <= x"4"; - if (CTS_START_READOUT_IN = '0') then - saveNextState <= SIDLE; - else - saveNextState <= SCLOSE; - end if; - when others => - state <= x"f"; - saveNextState <= SIDLE; - end case; -end process saveMachine; - --- save triggerRnd from incoming data for cts response -CTS_RND_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_rnd <= (others => '0'); - cts_rnd_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"000") and (sf_wr_en = '1') and (cts_rnd_saved = '0') ) then - cts_rnd <= sf_data; - cts_rnd_saved <= '1'; - end if; - end if; -end process CTS_RND_PROC; - --- save triggerNr from incoming data for cts response -CTS_TRG_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_trg <= (others => '0'); - cts_trg_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"001") and (sf_wr_en = '1') and (cts_trg_saved = '0') ) then - cts_trg <= sf_data; - cts_trg_saved <= '1'; - end if; - end if; -end process CTS_TRG_PROC; - --- save size from incoming data for cts response (future) and to get rid of padding -CTS_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_len <= (others => '0'); - cts_len_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"010") and (sf_wr_en = '1') and (cts_len_saved = '0') ) then - cts_len(16 downto 1) <= sf_data; -- change from 32b words to 16b words - elsif( (saved_ctr(2 downto 0) = b"011") and (cts_len_saved = '0') ) then - cts_len <= cts_len + x"4"; - cts_len_saved <= '1'; - end if; - end if; -end process CTS_SIZE_PROC; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Split FIFO -THE_SPLIT_FIFO: fifo_32kx16x8_mb -port map( Data => sf_data, - WrClock => CLK, - RdClock => CLK, - WrEn => sf_wr_en, - RdEn => sf_rd_en, - Reset => RESET, - RPReset => RESET, - AmFullThresh => b"111_1111_1110_1111", -- 0x7fef = 32751 - Q => pc_data, --open, - WCNT => sf_wcnt, - RCNT => sf_rcnt, - Empty => sf_empty, - Full => sf_full, - AlmostFull => sf_afull - ); - -sf_rd_en <= read_data; ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- FIFO data delay process (also forces padding bytes to known value) -THE_DATA_DELAY_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if( pad_data = '1' ) then - pc_data_q <= x"ee"; - else - pc_data_q <= pc_data; - end if; - end if; -end process THE_DATA_DELAY_PROC; - --- Statemachine for reading the data payload from the SPLIT_FIFO and feeding --- it into the packet constructor -loadMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if RESET = '1' then - loadCurrentState <= LIDLE; - rst_regs <= '0'; - rst_rem_ctr <= '0'; - ce_rem_ctr <= '0'; - calc_pad <= '0'; - read_data <= '0'; - data_phase <= '0'; - pc_sos <= '0'; - pc_eod <= '0'; - pad_data <= '0'; - else - loadCurrentState <= loadNextState; - rst_regs <= rst_regs_comb; - rst_rem_ctr <= rst_rem_ctr_comb; - ce_rem_ctr <= ce_rem_ctr_comb; - calc_pad <= calc_pad_comb; - read_data <= read_data_comb; - data_phase <= data_phase_comb; - pc_sos <= pc_sos_comb; - pc_eod <= pc_eod_comb; - pad_data <= pad_data_comb; - end if; - end if; -end process loadMachineProc; - -loadMachine : process( loadCurrentState, sf_empty, remove_done, load_done, padding_needed, PC_READY_IN ) -begin - loadNextState <= LIDLE; - rst_regs_comb <= '0'; - rst_rem_ctr_comb <= '0'; - ce_rem_ctr_comb <= '0'; - calc_pad_comb <= '0'; - read_data_comb <= '0'; - data_phase_comb <= '0'; - pc_sos_comb <= '0'; - pc_eod_comb <= '0'; - pad_data_comb <= '0'; - case loadCurrentState is - when LIDLE => - state2 <= x"0"; - if( (sf_empty = '0') and (PC_READY_IN = '1') ) then - loadNextState <= INIT; - rst_regs_comb <= '1'; - rst_rem_ctr_comb <= '1'; - else - loadNextState <= LIDLE; - end if; - when INIT => - state2 <= x"1"; - loadNextState <= REMOVE; - ce_rem_ctr_comb <= '1'; - read_data_comb <= '1'; - when REMOVE => - state2 <= x"2"; - if( remove_done = '1' ) then - loadNextState <= CALCA; - calc_pad_comb <= '1'; - else - loadNextState <= REMOVE; - ce_rem_ctr_comb <= '1'; - read_data_comb <= '1'; - end if; - when CALCA => - state2 <= x"3"; - loadNextState <= CALCB; - when CALCB => - -- we need a branch in case of length "0"!!!! - state2 <= x"4"; - loadNextState <= LOAD; - read_data_comb <= '1'; - data_phase_comb <= '1'; - pc_sos_comb <= '1'; - when LOAD => - state2 <= x"5"; - if ( (load_done = '1') and (padding_needed = '0') ) then - loadNextState <= CLOSE; - elsif( (load_done = '1') and (padding_needed = '1') ) then - loadNextState <= PAD0; - data_phase_comb <= '1'; - else - loadNextState <= LOAD; - read_data_comb <= '1'; - data_phase_comb <= '1'; - end if; - when PAD0 => - state2 <= x"5"; - loadNextState <= PAD1; - data_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD1 => - state2 <= x"6"; - loadNextState <= PAD2; - data_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD2 => - state2 <= x"7"; - loadNextState <= PAD3; - data_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD3 => - state2 <= x"8"; - loadNextState <= CLOSE; - pad_data_comb <= '1'; - when CLOSE => - state2 <= x"9"; - loadNextState <= WAIT_PC; - pc_eod_comb <= '1'; - when WAIT_PC => - state2 <= x"a"; - if( PC_READY_IN = '1' ) then - loadNextState <= LIDLE; - rst_rem_ctr_comb <= '1'; - rst_regs_comb <= '1'; - else - loadNextState <= WAIT_PC; - end if; - when others => - state2 <= x"f"; - loadNextState <= LIDLE; - end case; -end process loadMachine; - --- Counter for stripping the unneeded parts of the data stream, and saving the important parts -THE_REMOVE_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - rem_ctr <= (others => '0'); - elsif( ce_rem_ctr = '1' ) then - rem_ctr <= rem_ctr + 1; - end if; - end if; -end process THE_REMOVE_CTR; - -remove_done_comb <= '1' when ( rem_ctr = x"6" ) else '0'; - -THE_REM_DONE_SYNC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - remove_done <= '0'; - else - remove_done <= remove_done_comb; - end if; - end if; -end process THE_REM_DONE_SYNC; - --- extract the trigger number from splitfifo data -THE_TRG_NR_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_trig_nr <= (others => '0'); - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"3") ) then - pc_trig_nr(7 downto 0) <= pc_data; - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"4") ) then - pc_trig_nr(15 downto 8) <= pc_data; - end if; - end if; -end process THE_TRG_NR_PROC; - --- check for padding -THE_PADDING_NEEDED_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - padding_needed <= '0'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '1') ) then - padding_needed <= '1'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '0') ) then - padding_needed <= '0'; - end if; - end if; -end process THE_PADDING_NEEDED_PROC; - --- extract the subevent size from the splitfifo data, convert it from 32b to 8b units, --- and in case of padding needed increase it accordingly -THE_SUB_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_sub_size <= (others => '0'); - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"5") ) then - pc_sub_size(9 downto 2) <= pc_data; - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"6") ) then - pc_sub_size(17 downto 10) <= pc_data; - elsif( (calc_pad = '1') and (padding_needed = '1') ) then - pc_sub_size <= pc_sub_size + 4; - end if; - end if; -end process THE_SUB_SIZE_PROC; - --- number of bytes to read from split fifo -THE_READ_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - read_size <= (others => '0'); - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"5") ) then - read_size(9 downto 2) <= pc_data; - elsif( (ce_rem_ctr = '1') and (rem_ctr = x"6") ) then - read_size(17 downto 10) <= pc_data; - elsif( ((calc_pad = '1') and (load_done = '0')) ) then - read_size <= read_size - 2; - elsif( ((read_data = '1') and (data_phase = '1')) ) then - read_size <= read_size - 1; - end if; - end if; -end process THE_READ_SIZE_PROC; - -load_done_comb <= '1' when (read_size = 0) else '0'; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Debug signals -debug(31) <= remove_done; -debug(30) <= load_done; -debug(29) <= ce_rem_ctr; -debug(28) <= rst_rem_ctr; -debug(27) <= rst_regs; -debug(26) <= data_phase; -debug(25) <= read_data; -debug(24) <= pad_data; -debug(23 downto 18) <= (others => '0'); -debug(17 downto 0) <= read_size; - --- Outputs -FEE_READ_OUT <= fee_read; -CTS_ERROR_PATTERN_OUT <= cts_error_pattern; -CTS_DATA_OUT <= cts_data; -CTS_DATAREADY_OUT <= cts_dataready; -CTS_READOUT_FINISHED_OUT <= cts_readout_finished; -CTS_LENGTH_OUT <= cts_length; - -PC_SOS_OUT <= pc_sos; -PC_EOD_OUT <= pc_eod_q; -PC_DATA_OUT <= pc_data_q; -PC_WR_EN_OUT <= pc_wr_en_qq; -PC_TRIG_NR_OUT <= x"0000" & pc_trig_nr; -PC_SUB_SIZE_OUT <= b"0000_0000_0000_00" & pc_sub_size; -PC_PADDING_OUT <= padding_needed; - -BSM_SAVE_OUT <= state; -BSM_LOAD_OUT <= state2; -DBG_CTS_CTR_OUT <= saved_ctr(2 downto 0); -DBG_REM_CTR_OUT <= rem_ctr; -DBG_SF_DATA_OUT <= sf_data; -DBG_SF_WCNT_OUT <= sf_wcnt; -DBG_SF_RCNT_OUT <= sf_rcnt; -DBG_SF_RD_EN_OUT <= sf_rd_en; -DBG_SF_WR_EN_OUT <= sf_wr_en; -DBG_SF_EMPTY_OUT <= sf_empty; -DBG_SF_FULL_OUT <= sf_full; -DBG_SF_AFULL_OUT <= sf_afull; - -DEBUG_OUT <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe_ecp2m/ip_configurator.vhd b/gbe_ecp2m/ip_configurator.vhd deleted file mode 100755 index d6b0778..0000000 --- a/gbe_ecp2m/ip_configurator.vhd +++ /dev/null @@ -1,342 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; - -entity ip_configurator is -port( - CLK : in std_logic; - RESET : in std_logic; - -- configuration interface - START_CONFIG_IN : in std_logic; -- start configuration run - BANK_SELECT_IN : in std_logic_vector(3 downto 0); -- selects config bank - CONFIG_DONE_OUT : out std_logic; -- configuration run ended, new values can be used - MEM_ADDR_OUT : out std_logic_vector(7 downto 0); -- address for - MEM_DATA_IN : in std_logic_vector(31 downto 0); -- data from IP memory - MEM_CLK_OUT : out std_logic; -- clock for BlockRAM - -- information for IP cores - DEST_MAC_OUT : out std_logic_vector(47 downto 0); -- destination MAC address - DEST_IP_OUT : out std_logic_vector(31 downto 0); -- destination IP address - DEST_UDP_OUT : out std_logic_vector(15 downto 0); -- destination port - SRC_MAC_OUT : out std_logic_vector(47 downto 0); -- source MAC address - SRC_IP_OUT : out std_logic_vector(31 downto 0); -- source IP address - SRC_UDP_OUT : out std_logic_vector(15 downto 0); -- source port - MTU_OUT : out std_logic_vector(15 downto 0); -- MTU size (max frame size) - -- Debug - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end entity; - -architecture ip_configurator of ip_configurator is - --- -- Placer Directives --- attribute HGROUP : string; --- -- for whole architecture --- attribute HGROUP of ip_configurator : architecture is "GBE_conf_group"; - -type STATES is (IDLE, LOAD_REG, DELAY0, DELAY1, DELAY2, LOAD_DONE); -signal CURRENT_STATE, NEXT_STATE : STATES; -signal bsm : std_logic_vector(3 downto 0); -signal ce_ctr_comb : std_logic; -signal ce_ctr : std_logic; -signal rst_ctr_comb : std_logic; -signal rst_ctr : std_logic; -signal cfg_done_comb : std_logic; -signal cfg_done : std_logic; - -signal ctr_done_comb : std_logic; -signal ctr_done : std_logic; - -signal wr_select_comb : std_logic_vector(15 downto 0); -signal wr_select : std_logic_vector(15 downto 0); -signal wr_select_q : std_logic_vector(15 downto 0); - -signal addr_ctr : std_logic_vector(3 downto 0); -signal dest_mac : std_logic_vector(47 downto 0); -signal dest_ip : std_logic_vector(31 downto 0); -signal dest_udp : std_logic_vector(15 downto 0); -signal src_mac : std_logic_vector(47 downto 0); -signal src_ip : std_logic_vector(31 downto 0); -signal src_udp : std_logic_vector(15 downto 0); -signal mtu : std_logic_vector(15 downto 0); - -signal debug : std_logic_vector(31 downto 0); - -begin - - --- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO -STATE_MACHINE_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if RESET = '1' then - CURRENT_STATE <= IDLE; - ce_ctr <= '0'; - rst_ctr <= '0'; - cfg_done <= '0'; - else - CURRENT_STATE <= NEXT_STATE; - ce_ctr <= ce_ctr_comb; - rst_ctr <= rst_ctr_comb; - cfg_done <= cfg_done_comb; - end if; - end if; -end process STATE_MACHINE_PROC; - -STATE_MACHINE_TRANS: process( CURRENT_STATE, START_CONFIG_IN, ctr_done ) -begin - NEXT_STATE <= IDLE; - ce_ctr_comb <= '0'; - rst_ctr_comb <= '0'; - cfg_done_comb <= '0'; - case CURRENT_STATE is - when IDLE => - bsm <= x"0"; - if( START_CONFIG_IN = '1' ) then - NEXT_STATE <= LOAD_REG; - ce_ctr_comb <= '1'; - else - NEXT_STATE <= IDLE; - end if; - when LOAD_REG => - bsm <= x"1"; - if( ctr_done = '1' ) then - NEXT_STATE <= DELAY0; - rst_ctr_comb <= '1'; - else - NEXT_STATE <= LOAD_REG; - ce_ctr_comb <= '1'; - end if; - when DELAY0 => - bsm <= x"2"; - NEXT_STATE <= DELAY1; - when DELAY1 => - bsm <= x"3"; - NEXT_STATE <= DELAY2; - when DELAY2 => - bsm <= x"4"; - NEXT_STATE <= LOAD_DONE; - cfg_done_comb <= '1'; - when LOAD_DONE => - bsm <= x"2"; - if( START_CONFIG_IN = '0' ) then - NEXT_STATE <= IDLE; - else - NEXT_STATE <= LOAD_DONE; - cfg_done_comb <= '1'; - end if; - when others => - bsm <= x"f"; - NEXT_STATE <= IDLE; - end case; -end process STATE_MACHINE_TRANS; - --- address counter -THE_ADDR_CTR_PROC: process( CLK ) -begin - if ( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_ctr = '1') ) then - addr_ctr <= (others => '0'); - elsif( ce_ctr = '1' ) then - addr_ctr <= addr_ctr + 1; - end if; - end if; -end process THE_ADDR_CTR_PROC; - -ctr_done_comb <= '1' when (addr_ctr = x"e") else '0'; - -THE_SYNC_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - ctr_done <= ctr_done_comb; - wr_select_q <= wr_select; - wr_select <= wr_select_comb; - end if; -end process THE_SYNC_PROC; - --- generate combinatorial write select signals, register and delay the (output registers in EBR!) -wr_select_comb(0) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"0") ) else '0'; -- dest MAC low -wr_select_comb(1) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"1") ) else '0'; -- dest MAC high -wr_select_comb(2) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"2") ) else '0'; -- dest IP -wr_select_comb(3) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"3") ) else '0'; -- dest port -wr_select_comb(4) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"4") ) else '0'; -- src MAC low -wr_select_comb(5) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"5") ) else '0'; -- src MAC high -wr_select_comb(6) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"6") ) else '0'; -- src IP -wr_select_comb(7) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"7") ) else '0'; -- src port -wr_select_comb(8) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"8") ) else '0'; -- MTU -wr_select_comb(9) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"9") ) else '0'; -wr_select_comb(10) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"a") ) else '0'; -wr_select_comb(11) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"b") ) else '0'; -wr_select_comb(12) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"c") ) else '0'; -wr_select_comb(13) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"d") ) else '0'; -wr_select_comb(14) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"e") ) else '0'; -wr_select_comb(15) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"f") ) else '0'; - --- destination MAC low register -THE_D_MAC_LOW_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - dest_mac(31 downto 0) <= (others => '0'); - elsif( wr_select_q(0) = '1') then - dest_mac(31 downto 0) <= mem_data_in; - end if; - end if; -end process THE_D_MAC_LOW_PROC; - --- destination MAC high register -THE_D_MAC_HIGH_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - dest_mac(47 downto 32) <= (others => '0'); - elsif( wr_select_q(1) = '1') then - dest_mac(47 downto 32) <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_D_MAC_HIGH_PROC; - --- destination IP register -THE_D_IP_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - dest_ip <= (others => '0'); - elsif( wr_select_q(2) = '1') then - dest_ip <= mem_data_in; - end if; - end if; -end process THE_D_IP_PROC; - --- destination PORT register -THE_D_PORT_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - dest_udp <= (others => '0'); - elsif( wr_select_q(3) = '1') then - dest_udp <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_D_PORT_PROC; - --- source MAC low register -THE_S_MAC_LOW_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - src_mac(31 downto 0) <= (others => '0'); - elsif( wr_select_q(4) = '1') then - src_mac(31 downto 0) <= mem_data_in; - end if; - end if; -end process THE_S_MAC_LOW_PROC; - --- source MAC high register -THE_S_MAC_HIGH_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - src_mac(47 downto 32) <= (others => '0'); - elsif( wr_select_q(5) = '1') then - src_mac(47 downto 32) <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_S_MAC_HIGH_PROC; - --- source IP register -THE_S_IP_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - src_ip <= (others => '0'); - elsif( wr_select_q(6) = '1') then - src_ip <= mem_data_in; - end if; - end if; -end process THE_S_IP_PROC; - --- source PORT register -THE_S_PORT_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - src_udp <= (others => '0'); - elsif( wr_select_q(7) = '1') then - src_udp <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_S_PORT_PROC; - --- MTU size register -THE_MTU_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( RESET = '1' ) then - mtu <= (others => '0'); - elsif( wr_select_q(8) = '1') then - mtu <= mem_data_in(15 downto 0); - end if; - end if; -end process THE_MTU_PROC; - - --- Debug signals -debug(31 downto 12) <= (others => '0'); -debug(11 downto 8) <= addr_ctr; -debug(7) <= '0'; -debug(6) <= ctr_done; -debug(5) <= ce_ctr; -debug(4) <= rst_ctr; -debug(3 downto 0) <= bsm; --- Outputs -MEM_ADDR_OUT(7 downto 4) <= BANK_SELECT_IN; -MEM_ADDR_OUT(3 downto 0) <= addr_ctr; -MEM_CLK_OUT <= CLK; -CONFIG_DONE_OUT <= cfg_done; - --- destination MAC address - swap for user convinience -DEST_MAC_OUT(47 downto 40) <= dest_mac(7 downto 0); -DEST_MAC_OUT(39 downto 32) <= dest_mac(15 downto 8); -DEST_MAC_OUT(31 downto 24) <= dest_mac(23 downto 16); -DEST_MAC_OUT(23 downto 16) <= dest_mac(31 downto 24); -DEST_MAC_OUT(15 downto 8) <= dest_mac(39 downto 32); -DEST_MAC_OUT(7 downto 0) <= dest_mac(47 downto 40); - --- destination IP address - swap for user convinience -DEST_IP_OUT(31 downto 24) <= dest_ip(7 downto 0); -DEST_IP_OUT(23 downto 16) <= dest_ip(15 downto 8); -DEST_IP_OUT(15 downto 8) <= dest_ip(23 downto 16); -DEST_IP_OUT(7 downto 0) <= dest_ip(31 downto 24); - --- destination port address - swap for user convinience -DEST_UDP_OUT(15 downto 8) <= dest_udp(7 downto 0); -DEST_UDP_OUT(7 downto 0) <= dest_udp(15 downto 8); - --- source MAC address - swap for user convinience -SRC_MAC_OUT(47 downto 40) <= src_mac(7 downto 0); -SRC_MAC_OUT(39 downto 32) <= src_mac(15 downto 8); -SRC_MAC_OUT(31 downto 24) <= src_mac(23 downto 16); -SRC_MAC_OUT(23 downto 16) <= src_mac(31 downto 24); -SRC_MAC_OUT(15 downto 8) <= src_mac(39 downto 32); -SRC_MAC_OUT(7 downto 0) <= src_mac(47 downto 40); - --- source IP address - swap for user convinience -SRC_IP_OUT(31 downto 24) <= src_ip(7 downto 0); -SRC_IP_OUT(23 downto 16) <= src_ip(15 downto 8); -SRC_IP_OUT(15 downto 8) <= src_ip(23 downto 16); -SRC_IP_OUT(7 downto 0) <= src_ip(31 downto 24); - --- source port address - swap for user convinience -SRC_UDP_OUT(15 downto 8) <= src_udp(7 downto 0); -SRC_UDP_OUT(7 downto 0) <= src_udp(15 downto 8); - --- DO NOT SWAP! -MTU_OUT <= mtu; - -DEBUG_OUT <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe_ecp2m/ipcores/.cvsignore b/gbe_ecp2m/ipcores/.cvsignore deleted file mode 100644 index 25a5568..0000000 --- a/gbe_ecp2m/ipcores/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.jhd -*.naf -*.srp -*.sym -*.log -*tmpl.vhd diff --git a/gbe_ecp2m/ipcores/debug_fifo_2kx16.vhd b/gbe_ecp2m/ipcores/debug_fifo_2kx16.vhd deleted file mode 100644 index e10ee86..0000000 --- a/gbe_ecp2m/ipcores/debug_fifo_2kx16.vhd +++ /dev/null @@ -1,1965 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.2 ---/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 2048 -width 16 -depth 2048 -rdata_width 16 -no_enable -pe -1 -pf -1 -e - --- Wed Jul 21 14:35:10 2010 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity debug_fifo_2kx16 is - port ( - Data: in std_logic_vector(15 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(15 downto 0); - Empty: out std_logic; - Full: out std_logic); -end debug_fifo_2kx16; - -architecture Structure of debug_fifo_2kx16 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co5: std_logic; - signal wcount_11: std_logic; - signal co4: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co5_1: std_logic; - signal rcount_11: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_10: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_10: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "debug_fifo_2kx16.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_1 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_1 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_1 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_1 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_0_1 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_0_1_0 : label is "debug_fifo_2kx16.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_0 : label is ""; - attribute CSDECODE_B of pdp_ram_0_1_0 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_1_0 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_1_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_1_0 : label is "NORMAL"; - attribute GSR of pdp_ram_0_1_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_1_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_1_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_1_0 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_1_0 : label is "9"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t24: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t23: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t22: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t21: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t20: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t19: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t18: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t17: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t16: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t15: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t14: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t13: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t12: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t11: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t9: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t8: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t7: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t6: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t5: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t4: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t3: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t2: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t1: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t0: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_0); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_2); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_2); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), - DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>Q(4), DOB5=>Q(5), - DOB6=>Q(6), DOB7=>Q(7), DOB8=>Q(8), DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_0_1_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(9), DIA1=>Data(10), DIA2=>Data(11), - DIA3=>Data(12), DIA4=>Data(13), DIA5=>Data(14), - DIA6=>Data(15), DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>scuba_vlo, - ADA3=>wptr_0, ADA4=>wptr_1, ADA5=>wptr_2, ADA6=>wptr_3, - ADA7=>wptr_4, ADA8=>wptr_5, ADA9=>wptr_6, ADA10=>wptr_7, - ADA11=>wptr_8, ADA12=>wptr_9, ADA13=>wptr_10, CEA=>wren_i, - CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(9), - DOB1=>Q(10), DOB2=>Q(11), DOB3=>Q(12), DOB4=>Q(13), - DOB5=>Q(14), DOB6=>Q(15), DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_121: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_106: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_85: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_57: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_53: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_52: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_51: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_50: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r10, - B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w10, - B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of debug_fifo_2kx16 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_1024x16x8.lpc b/gbe_ecp2m/ipcores/fifo_1024x16x8.lpc deleted file mode 100644 index 0bcc570..0000000 --- a/gbe_ecp2m/ipcores/fifo_1024x16x8.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_1024x16x8 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=12/05/2011 -Time=18:27:25 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=1024 -Width=18 -RDepth=2048 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_1024x16x8.vhd b/gbe_ecp2m/ipcores/fifo_1024x16x8.vhd deleted file mode 100644 index 956f91e..0000000 --- a/gbe_ecp2m/ipcores/fifo_1024x16x8.vhd +++ /dev/null @@ -1,1366 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 1024 -width 18 -depth 1024 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - --- Mon Dec 5 18:27:25 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_1024x16x8 is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_1024x16x8; - -architecture Structure of fifo_1024x16x8 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal rcount_w0: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal co5: std_logic; - signal wcount_10: std_logic; - signal co4: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co5_1: std_logic; - signal rcount_11: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r8: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r9: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_10: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w7: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w9: std_logic; - signal rcount_w10: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_1024x16x8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute RESETMODE of pdp_ram_0_0_0 : label is "SYNC"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t23: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t22: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t21: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t20: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t19: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t18: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t17: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t16: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t15: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t14: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t13: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t12: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t11: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t10: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t9: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t8: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t7: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t6: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t5: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t4: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t3: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t2: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t1: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t0: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>w_gcount_r210, - DO0=>w_g2b_xor_cluster_0); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_gcount_r26, - DO0=>w_g2b_xor_cluster_1); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r4); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>w_gcount_r22, DO0=>wcount_r1); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_2); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_2); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r210, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r210, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_10, AD2=>wcount_10, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_10, AD2=>wcount_10, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, WEA=>scuba_vhi, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, OCEB=>rden_i, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(0), DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), - DOB4=>Q(4), DOB5=>Q(5), DOB6=>Q(6), DOB7=>Q(7), DOB8=>Q(8), - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - FF_116: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_115: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_114: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_113: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_112: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_111: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_110: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_109: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_108: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_107: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_106: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_105: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_104: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_103: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_102: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_101: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_100: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_99: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_98: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_97: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_96: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_95: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_94: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_93: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_92: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_91: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_90: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_89: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_88: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_87: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_86: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_85: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_84: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_83: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_82: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_81: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_80: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_79: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_78: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_77: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_76: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_75: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_74: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_73: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_72: FD1P3DX - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_71: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_70: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_69: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_68: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_67: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_66: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_65: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_64: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_63: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_62: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_61: FD1P3DX - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_60: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_59: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_58: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_57: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_56: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_55: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_54: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_53: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_52: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_51: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_50: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_49: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_48: FD1P3DX - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_47: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_46: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_45: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_44: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_43: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_42: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_41: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_40: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_39: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_38: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_37: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_36: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_35: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_34: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_33: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_32: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_31: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_30: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_29: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_28: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_27: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_26: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_25: FD1S3DX - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_24: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_23: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_22: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_21: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_20: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_19: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_18: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_17: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_16: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_15: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_14: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_13: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_12: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_11: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_10: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_9: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_8: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_7: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_6: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_5: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_4: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_3: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_2: FD1S3DX - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>scuba_vlo, CO=>co5, - NC0=>iwcount_10, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r8, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r9, - B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>r_g2b_xor_cluster_0, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, - B1=>rcount_w10, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_1024x16x8 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_1024x16x8_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_1024x16x8_tmpl.vhd deleted file mode 100644 index d7608a4..0000000 --- a/gbe_ecp2m/ipcores/fifo_1024x16x8_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Mon Dec 5 18:27:25 2011 - --- parameterized module component declaration -component fifo_1024x16x8 - port (Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_1024x16x8 - port map (Data(17 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(8 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/fifo_16kx8.vhd b/gbe_ecp2m/ipcores/fifo_16kx8.vhd deleted file mode 100644 index 12a3160..0000000 --- a/gbe_ecp2m/ipcores/fifo_16kx8.vhd +++ /dev/null @@ -1,2711 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v8.0_PROD_Build (41) --- Module Version: 5.4 ---/opt/lattice/ispLEVER8.0/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 16384 -width 8 -depth 16384 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - --- Mon Dec 6 19:08:10 2010 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_16kx8 is - port ( - Data: in std_logic_vector(7 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_16kx8; - -architecture Structure of fifo_16kx8 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal co7: std_logic; - signal wcount_14: std_logic; - signal co6: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal co7_1: std_logic; - signal rcount_14: std_logic; - signal co6_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal wcount_r12: std_logic; - signal wcount_r13: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal rcount_w12: std_logic; - signal rcount_w13: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_41 : label is "0x6996"; - attribute initval of LUT4_40 : label is "0x6996"; - attribute initval of LUT4_39 : label is "0x6996"; - attribute initval of LUT4_38 : label is "0x6996"; - attribute initval of LUT4_37 : label is "0x6996"; - attribute initval of LUT4_36 : label is "0x6996"; - attribute initval of LUT4_35 : label is "0x6996"; - attribute initval of LUT4_34 : label is "0x6996"; - attribute initval of LUT4_33 : label is "0x6996"; - attribute initval of LUT4_32 : label is "0x6996"; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_7 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_7 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_7 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_7 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_7 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_7 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_7 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_7 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_7 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_7 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_7 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_0_7 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_1_6 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_6 : label is ""; - attribute CSDECODE_B of pdp_ram_0_1_6 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_1_6 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_1_6 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_1_6 : label is "NORMAL"; - attribute GSR of pdp_ram_0_1_6 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_6 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_1_6 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_1_6 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_1_6 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_1_6 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_2_5 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_5 : label is ""; - attribute CSDECODE_B of pdp_ram_0_2_5 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_2_5 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_2_5 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_2_5 : label is "NORMAL"; - attribute GSR of pdp_ram_0_2_5 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_2_5 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_2_5 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_2_5 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_2_5 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_2_5 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_3_4 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_4 : label is ""; - attribute CSDECODE_B of pdp_ram_0_3_4 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_3_4 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_3_4 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_3_4 : label is "NORMAL"; - attribute GSR of pdp_ram_0_3_4 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_3_4 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_3_4 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_3_4 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_3_4 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_3_4 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_4_3 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_3 : label is ""; - attribute CSDECODE_B of pdp_ram_0_4_3 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_4_3 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_4_3 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_4_3 : label is "NORMAL"; - attribute GSR of pdp_ram_0_4_3 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_4_3 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_4_3 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_4_3 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_4_3 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_4_3 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_5_2 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_2 : label is ""; - attribute CSDECODE_B of pdp_ram_0_5_2 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_5_2 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_5_2 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_5_2 : label is "NORMAL"; - attribute GSR of pdp_ram_0_5_2 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_5_2 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_5_2 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_5_2 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_5_2 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_5_2 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_6_1 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_1 : label is ""; - attribute CSDECODE_B of pdp_ram_0_6_1 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_6_1 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_6_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_6_1 : label is "NORMAL"; - attribute GSR of pdp_ram_0_6_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_6_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_6_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_6_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_6_1 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_6_1 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_7_0 : label is "fifo_16kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_0 : label is ""; - attribute CSDECODE_B of pdp_ram_0_7_0 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_7_0 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_7_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_7_0 : label is "NORMAL"; - attribute GSR of pdp_ram_0_7_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_7_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_7_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_7_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_7_0 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_7_0 : label is "1"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t30: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t29: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t28: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t27: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t26: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t25: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t24: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t23: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t22: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t21: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t20: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t19: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t18: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t17: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t16: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t15: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t14: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t13: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t12: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t11: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t10: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t9: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t8: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t7: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t6: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t5: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t4: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t3: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t2: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t1: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t0: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - LUT4_41: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>w_gcount_r214, - DO0=>w_g2b_xor_cluster_0); - - LUT4_40: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>w_gcount_r210, - DO0=>w_g2b_xor_cluster_1); - - LUT4_39: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_gcount_r26, - DO0=>w_g2b_xor_cluster_2); - - LUT4_38: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_37: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>scuba_vlo, DO0=>wcount_r12); - - LUT4_36: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_35: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>wcount_r12, DO0=>wcount_r9); - - LUT4_34: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r8); - - LUT4_33: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_32: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>scuba_vlo, DO0=>wcount_r6); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r25, AD0=>w_gcount_r26, DO0=>wcount_r5); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r22, DO0=>wcount_r2); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r1); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_1); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r0); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>r_gcount_w214, - DO0=>r_g2b_xor_cluster_0); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>r_gcount_w210, - DO0=>r_g2b_xor_cluster_1); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_gcount_w26, - DO0=>r_g2b_xor_cluster_2); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w13); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>scuba_vlo, DO0=>rcount_w12); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>rcount_w13, DO0=>rcount_w10); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>rcount_w12, DO0=>rcount_w9); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w8); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w26, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w25, AD0=>r_gcount_w26, DO0=>rcount_w5); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w22, DO0=>rcount_w2); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_14, AD2=>rcount_14, AD1=>w_gcount_r214, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_14, AD2=>rcount_14, AD1=>w_gcount_r214, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_14, AD2=>wcount_14, AD1=>r_gcount_w214, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_14, AD2=>wcount_14, AD1=>r_gcount_w214, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_7: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(0), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_1_6: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(1), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_2_5: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(2), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_3_4: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(3), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_4_3: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(4), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_5_2: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(5), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_6_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(6), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_7_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(7), DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - FF_151: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_150: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_149: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_148: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_147: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_146: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_145: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_144: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_143: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_142: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_141: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_140: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_139: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_138: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_137: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_136: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_135: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_134: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_133: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_132: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_131: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_130: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_129: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_128: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_127: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_126: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_125: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_124: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_123: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_122: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_121: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_106: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_61: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_60: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_59: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_58: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_57: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_56: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_55: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_54: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>scuba_vlo, CO=>co7, - NC0=>iwcount_14, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>scuba_vlo, CO=>co7_1, - NC0=>ircount_14, NC1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>w_g2b_xor_cluster_0, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, - B1=>wcount_r13, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co6_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>r_g2b_xor_cluster_0, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, - B1=>rcount_w13, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co6_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_16kx8 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_2048x8.lpc b/gbe_ecp2m/ipcores/fifo_2048x8.lpc deleted file mode 100755 index 542bbe2..0000000 --- a/gbe_ecp2m/ipcores/fifo_2048x8.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.2 -ModuleName=fifo_2048x8 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=12/26/2009 -Time=00:12:59 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=2048 -Width=8 -RDepth=2048 -RWidth=8 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_2048x8.vhd b/gbe_ecp2m/ipcores/fifo_2048x8.vhd deleted file mode 100755 index 2b75855..0000000 --- a/gbe_ecp2m/ipcores/fifo_2048x8.vhd +++ /dev/null @@ -1,1913 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.2 ---/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 2048 -width 8 -depth 2048 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - --- Sat Dec 26 00:12:59 2009 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_2048x8 is - port ( - Data: in std_logic_vector(7 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_2048x8; - -architecture Structure of fifo_2048x8 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co5: std_logic; - signal wcount_11: std_logic; - signal co4: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co5_1: std_logic; - signal rcount_11: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_10: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_10: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_2048x8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_0 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_0 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_0 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_0 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_0_0 : label is "9"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t24: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t23: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t22: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t21: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t20: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t19: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t18: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t17: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t16: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t15: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t14: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t13: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t12: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t11: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t9: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t8: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t7: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t6: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t5: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t4: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t3: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t2: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t1: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t0: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_0); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_2); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_2); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>scuba_vlo, DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), - DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>Q(4), DOB5=>Q(5), - DOB6=>Q(6), DOB7=>Q(7), DOB8=>open, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - FF_121: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_106: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_85: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_57: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_53: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_52: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_51: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_50: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r10, - B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w10, - B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_2048x8 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_2048x8_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_2048x8_tmpl.vhd deleted file mode 100755 index c365fcc..0000000 --- a/gbe_ecp2m/ipcores/fifo_2048x8_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.2 --- Sat Dec 26 00:12:59 2009 - --- parameterized module component declaration -component fifo_2048x8 - port (Data: in std_logic_vector(7 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_2048x8 - port map (Data(7 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(7 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/fifo_2048x8x16.lpc b/gbe_ecp2m/ipcores/fifo_2048x8x16.lpc deleted file mode 100644 index 4f4da58..0000000 --- a/gbe_ecp2m/ipcores/fifo_2048x8x16.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_2048x8x16 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=12/05/2011 -Time=18:26:53 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=2048 -Width=9 -RDepth=1024 -RWidth=18 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_2048x8x16.vhd b/gbe_ecp2m/ipcores/fifo_2048x8x16.vhd deleted file mode 100644 index 4486567..0000000 --- a/gbe_ecp2m/ipcores/fifo_2048x8x16.vhd +++ /dev/null @@ -1,1367 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 2048 -width 9 -depth 2048 -rdata_width 18 -no_enable -pe -1 -pf -1 -e - --- Mon Dec 5 18:26:53 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_2048x8x16 is - port ( - Data: in std_logic_vector(8 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(17 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_2048x8x16; - -architecture Structure of fifo_2048x8x16 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal wcount_r0: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co5: std_logic; - signal wcount_11: std_logic; - signal co4: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal co5_1: std_logic; - signal rcount_10: std_logic; - signal co4_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r7: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r9: std_logic; - signal wcount_r10: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w8: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w9: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_10: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KC - generic (GSR : in String; WRITEMODE_B : in String; - WRITEMODE_A : in String; CSDECODE_B : in String; - CSDECODE_A : in String; REGMODE_B : in String; - REGMODE_A : in String; DATA_WIDTH_B : in Integer; - DATA_WIDTH_A : in Integer); - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; OCEA: in std_logic; - WEA: in std_logic; CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; OCEB: in std_logic; - WEB: in std_logic; CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_2048x8x16.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute RESETMODE of pdp_ram_0_0_0 : label is "SYNC"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t23: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t22: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t21: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t20: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t19: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t18: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t17: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t16: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t15: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t14: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t13: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t12: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t11: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t10: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t9: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t8: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t7: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t6: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t5: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t4: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t3: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t2: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t1: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t0: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - LUT4_29: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_0); - - LUT4_28: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_1); - - LUT4_27: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_2); - - LUT4_26: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_25: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_24: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>r_gcount_w210, - DO0=>r_g2b_xor_cluster_0); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_gcount_w26, - DO0=>r_g2b_xor_cluster_1); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w4); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w3); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w22, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>r_gcount_w22, DO0=>rcount_w1); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_2); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_10, AD2=>rcount_10, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_10, AD2=>rcount_10, AD1=>w_gcount_r211, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w210, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w210, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: DP16KC - generic map (CSDECODE_B=> "0b000", CSDECODE_A=> "0b000", - WRITEMODE_B=> "NORMAL", WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 18, - DATA_WIDTH_A=> 9) - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, OCEA=>wren_i, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>scuba_vlo, ADB3=>scuba_vlo, - ADB4=>rptr_0, ADB5=>rptr_1, ADB6=>rptr_2, ADB7=>rptr_3, - ADB8=>rptr_4, ADB9=>rptr_5, ADB10=>rptr_6, ADB11=>rptr_7, - ADB12=>rptr_8, ADB13=>rptr_9, CEB=>rden_i, CLKB=>RdClock, - OCEB=>rden_i, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), - DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>Q(4), DOB5=>Q(5), - DOB6=>Q(6), DOB7=>Q(7), DOB8=>Q(8), DOB9=>Q(9), DOB10=>Q(10), - DOB11=>Q(11), DOB12=>Q(12), DOB13=>Q(13), DOB14=>Q(14), - DOB15=>Q(15), DOB16=>Q(16), DOB17=>Q(17)); - - FF_116: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_115: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_114: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_113: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_112: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_111: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_110: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_109: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_108: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_107: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_106: FD1P3DX - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_105: FD1P3DX - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_104: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_103: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_102: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_101: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_100: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_99: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_98: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_97: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_96: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_95: FD1P3DX - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_94: FD1P3DX - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_93: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_92: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_91: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_90: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_89: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_88: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_87: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_86: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_85: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_84: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_83: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_82: FD1P3DX - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_81: FD1P3DX - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_80: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_79: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_78: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_77: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_76: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_75: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_74: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_73: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_72: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_71: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_70: FD1P3DX - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_69: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_68: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_67: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_66: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_65: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_64: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_63: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_62: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_61: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_60: FD1P3DX - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_59: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_58: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_57: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_56: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_55: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_54: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_53: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_52: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_51: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_50: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_49: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_48: FD1P3DX - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_47: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_46: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_45: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_44: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_43: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_42: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_41: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_40: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_39: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_38: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_37: FD1S3DX - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_36: FD1S3DX - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_35: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_34: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_33: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_32: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_31: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_30: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_29: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_28: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_27: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_26: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_25: FD1S3DX - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_24: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_23: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_22: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_21: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_20: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_19: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_18: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_17: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_16: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_15: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_14: FD1S3DX - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_13: FD1S3DX - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_12: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_11: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_10: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_9: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_8: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_7: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_6: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_5: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_4: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_3: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_2: FD1S3DX - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>scuba_vlo, CO=>co5_1, - NC0=>ircount_10, NC1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r1, - B1=>wcount_r2, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r3, - B1=>wcount_r4, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r5, - B1=>wcount_r6, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r7, - B1=>w_g2b_xor_cluster_0, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r9, - B1=>wcount_r10, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co4_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>scuba_vlo, - B1=>rcount_w0, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w1, - B1=>rcount_w2, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w3, - B1=>rcount_w4, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w5, - B1=>rcount_w6, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w8, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w9, - B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_2048x8x16 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:DP16KC use entity ecp3.DP16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_2048x8x16_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_2048x8x16_tmpl.vhd deleted file mode 100644 index e3db862..0000000 --- a/gbe_ecp2m/ipcores/fifo_2048x8x16_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Mon Dec 5 18:26:53 2011 - --- parameterized module component declaration -component fifo_2048x8x16 - port (Data: in std_logic_vector(8 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(17 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_2048x8x16 - port map (Data(8 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(17 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.lpc b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.lpc deleted file mode 100755 index 8c82306..0000000 --- a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.3 -ModuleName=fifo_32kx16x8_mb -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=02/05/2010 -Time=16:48:12 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=32768 -Width=16 -RDepth=65536 -RWidth=8 -regout=0 -CtrlByRdEn=0 -EmpFlg=1 -PeMode=Dynamic - Single Threshold -PeAssert=16 -PeDeassert=12 -FullFlg=1 -PfMode=Dynamic - Single Threshold -PfAssert=32752 -PfDeassert=506 -RDataCount=1 -WDataCount=1 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.vhd b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.vhd deleted file mode 100755 index d40ad50..0000000 --- a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.vhd +++ /dev/null @@ -1,5245 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v8.0_PROD_Build (41) --- Module Version: 5.3 ---X:\Programme\ispTOOLS_80\ispfpga\bin\nt\scuba.exe -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 32768 -width 16 -depth 32768 -rdata_width 8 -no_enable -pe 0 -pf 0 -rfill -fill -e - --- Fri Feb 05 16:48:13 2010 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_32kx16x8_mb is - port ( - Data: in std_logic_vector(15 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(7 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end fifo_32kx16x8_mb; - -architecture Structure of fifo_32kx16x8_mb is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal rcount_w0: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal rcnt_reg_15_inv: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal wptr_15: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_16: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal rcnt_reg_16: std_logic; - signal empty_i: std_logic; - signal full_i: std_logic; - signal rRst: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co7: std_logic; - signal wcount_15: std_logic; - signal co6: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8: std_logic; - signal rcount_16: std_logic; - signal co7_1: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal wcnt_sub_0: std_logic; - signal wcnt_sub_1: std_logic; - signal wcnt_sub_2: std_logic; - signal co0_2: std_logic; - signal wcnt_sub_3: std_logic; - signal wcnt_sub_4: std_logic; - signal co1_2: std_logic; - signal wcnt_sub_5: std_logic; - signal wcnt_sub_6: std_logic; - signal co2_2: std_logic; - signal wcnt_sub_7: std_logic; - signal wcnt_sub_8: std_logic; - signal co3_2: std_logic; - signal wcnt_sub_9: std_logic; - signal wcnt_sub_10: std_logic; - signal co4_2: std_logic; - signal wcnt_sub_11: std_logic; - signal wcnt_sub_12: std_logic; - signal co5_2: std_logic; - signal wcnt_sub_13: std_logic; - signal wcnt_sub_14: std_logic; - signal co6_2: std_logic; - signal wcnt_sub_15: std_logic; - signal co7_2: std_logic; - signal wcnt_sub_msb: std_logic; - signal rcnt_sub_0: std_logic; - signal rcnt_sub_1: std_logic; - signal rcnt_sub_2: std_logic; - signal co0_3: std_logic; - signal rcnt_sub_3: std_logic; - signal rcnt_sub_4: std_logic; - signal co1_3: std_logic; - signal rcnt_sub_5: std_logic; - signal rcnt_sub_6: std_logic; - signal co2_3: std_logic; - signal rcnt_sub_7: std_logic; - signal rcnt_sub_8: std_logic; - signal co3_3: std_logic; - signal rcnt_sub_9: std_logic; - signal rcnt_sub_10: std_logic; - signal co4_3: std_logic; - signal rcnt_sub_11: std_logic; - signal rcnt_sub_12: std_logic; - signal co5_3: std_logic; - signal rcnt_sub_13: std_logic; - signal rcnt_sub_14: std_logic; - signal co6_3: std_logic; - signal rcnt_sub_15: std_logic; - signal rcnt_sub_16: std_logic; - signal co7_3: std_logic; - signal rcnt_sub_msb: std_logic; - signal co8_1d: std_logic; - signal co8_1: std_logic; - signal wfill_sub_0: std_logic; - signal wptr_0: std_logic; - signal wfill_sub_1: std_logic; - signal wfill_sub_2: std_logic; - signal co0_4: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wfill_sub_3: std_logic; - signal wfill_sub_4: std_logic; - signal co1_4: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wfill_sub_5: std_logic; - signal wfill_sub_6: std_logic; - signal co2_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wfill_sub_7: std_logic; - signal wfill_sub_8: std_logic; - signal co3_4: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wfill_sub_9: std_logic; - signal wfill_sub_10: std_logic; - signal co4_4: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wfill_sub_11: std_logic; - signal wfill_sub_12: std_logic; - signal co5_4: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wfill_sub_13: std_logic; - signal wfill_sub_14: std_logic; - signal co6_4: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wfill_sub_15: std_logic; - signal co7_4: std_logic; - signal wfill_sub_msb: std_logic; - signal rfill_sub_0: std_logic; - signal rptr_0: std_logic; - signal scuba_vhi: std_logic; - signal rfill_sub_1: std_logic; - signal rfill_sub_2: std_logic; - signal co0_5: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rfill_sub_3: std_logic; - signal rfill_sub_4: std_logic; - signal co1_5: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rfill_sub_5: std_logic; - signal rfill_sub_6: std_logic; - signal co2_5: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rfill_sub_7: std_logic; - signal rfill_sub_8: std_logic; - signal co3_5: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rfill_sub_9: std_logic; - signal rfill_sub_10: std_logic; - signal co4_5: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rfill_sub_11: std_logic; - signal rfill_sub_12: std_logic; - signal co5_5: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rfill_sub_13: std_logic; - signal rfill_sub_14: std_logic; - signal co6_5: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal rfill_sub_15: std_logic; - signal rfill_sub_16: std_logic; - signal co7_5: std_logic; - signal rptr_15: std_logic; - signal rfill_sub_msb: std_logic; - signal co8_2d: std_logic; - signal co8_2: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_6: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_6: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_6: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_6: std_logic; - signal wcount_r7: std_logic; - signal wcount_r8: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_6: std_logic; - signal wcount_r9: std_logic; - signal wcount_r10: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_6: std_logic; - signal wcount_r11: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_6: std_logic; - signal wcount_r13: std_logic; - signal wcount_r14: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_6: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_7: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_7: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_7: std_logic; - signal rcount_w7: std_logic; - signal rcount_w8: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_7: std_logic; - signal rcount_w9: std_logic; - signal rcount_w10: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_7: std_logic; - signal rcount_w11: std_logic; - signal rcount_w12: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_7: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w14: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_7: std_logic; - signal rcount_w15: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_14: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal rden_i: std_logic; - signal cmp_ci_2: std_logic; - signal rcnt_reg_0: std_logic; - signal rcnt_reg_1: std_logic; - signal co0_8: std_logic; - signal rcnt_reg_2: std_logic; - signal rcnt_reg_3: std_logic; - signal co1_8: std_logic; - signal rcnt_reg_4: std_logic; - signal rcnt_reg_5: std_logic; - signal co2_8: std_logic; - signal rcnt_reg_6: std_logic; - signal rcnt_reg_7: std_logic; - signal co3_8: std_logic; - signal rcnt_reg_8: std_logic; - signal rcnt_reg_9: std_logic; - signal co4_8: std_logic; - signal rcnt_reg_10: std_logic; - signal rcnt_reg_11: std_logic; - signal co5_8: std_logic; - signal rcnt_reg_12: std_logic; - signal rcnt_reg_13: std_logic; - signal co6_8: std_logic; - signal rcnt_reg_14: std_logic; - signal rcnt_reg_15: std_logic; - signal co7_7: std_logic; - signal ae_clrsig: std_logic; - signal ae_setsig: std_logic; - signal ae_d: std_logic; - signal ae_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_3: std_logic; - signal wcnt_reg_0: std_logic; - signal wcnt_reg_1: std_logic; - signal co0_9: std_logic; - signal wcnt_reg_2: std_logic; - signal wcnt_reg_3: std_logic; - signal co1_9: std_logic; - signal wcnt_reg_4: std_logic; - signal wcnt_reg_5: std_logic; - signal co2_9: std_logic; - signal wcnt_reg_6: std_logic; - signal wcnt_reg_7: std_logic; - signal co3_9: std_logic; - signal wcnt_reg_8: std_logic; - signal wcnt_reg_9: std_logic; - signal co4_9: std_logic; - signal wcnt_reg_10: std_logic; - signal wcnt_reg_11: std_logic; - signal co5_9: std_logic; - signal wcnt_reg_12: std_logic; - signal wcnt_reg_13: std_logic; - signal co6_9: std_logic; - signal wcnt_reg_14: std_logic; - signal wcnt_reg_15: std_logic; - signal af_d: std_logic; - signal af_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FSUB2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; BI: in std_logic; BOUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX41 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; SD1: in std_logic; SD2: in std_logic; - Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_52 : label is "0x6996"; - attribute initval of LUT4_51 : label is "0x6996"; - attribute initval of LUT4_50 : label is "0x6996"; - attribute initval of LUT4_49 : label is "0x6996"; - attribute initval of LUT4_48 : label is "0x6996"; - attribute initval of LUT4_47 : label is "0x6996"; - attribute initval of LUT4_46 : label is "0x6996"; - attribute initval of LUT4_45 : label is "0x6996"; - attribute initval of LUT4_44 : label is "0x6996"; - attribute initval of LUT4_43 : label is "0x6996"; - attribute initval of LUT4_42 : label is "0x6996"; - attribute initval of LUT4_41 : label is "0x6996"; - attribute initval of LUT4_40 : label is "0x6996"; - attribute initval of LUT4_39 : label is "0x6996"; - attribute initval of LUT4_38 : label is "0x6996"; - attribute initval of LUT4_37 : label is "0x6996"; - attribute initval of LUT4_36 : label is "0x6996"; - attribute initval of LUT4_35 : label is "0x6996"; - attribute initval of LUT4_34 : label is "0x6996"; - attribute initval of LUT4_33 : label is "0x6996"; - attribute initval of LUT4_32 : label is "0x6996"; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_31 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_31 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_31 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_31 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_31 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_31 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_31 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_31 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_31 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_0_31 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_0_1_30 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_30 : label is ""; - attribute CSDECODE_B of pdp_ram_0_1_30 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_1_30 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_1_30 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_1_30 : label is "NORMAL"; - attribute GSR of pdp_ram_0_1_30 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_30 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_1_30 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_1_30 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_1_30 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_1_30 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_0_2_29 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_29 : label is ""; - attribute CSDECODE_B of pdp_ram_0_2_29 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_2_29 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_2_29 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_2_29 : label is "NORMAL"; - attribute GSR of pdp_ram_0_2_29 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_2_29 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_2_29 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_2_29 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_2_29 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_2_29 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_0_3_28 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_28 : label is ""; - attribute CSDECODE_B of pdp_ram_0_3_28 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_3_28 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_3_28 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_3_28 : label is "NORMAL"; - attribute GSR of pdp_ram_0_3_28 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_3_28 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_3_28 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_3_28 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_3_28 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_3_28 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_0_4_27 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_27 : label is ""; - attribute CSDECODE_B of pdp_ram_0_4_27 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_4_27 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_4_27 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_4_27 : label is "NORMAL"; - attribute GSR of pdp_ram_0_4_27 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_4_27 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_4_27 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_4_27 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_4_27 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_4_27 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_0_5_26 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_26 : label is ""; - attribute CSDECODE_B of pdp_ram_0_5_26 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_5_26 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_5_26 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_5_26 : label is "NORMAL"; - attribute GSR of pdp_ram_0_5_26 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_5_26 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_5_26 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_5_26 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_5_26 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_5_26 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_0_6_25 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_25 : label is ""; - attribute CSDECODE_B of pdp_ram_0_6_25 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_6_25 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_6_25 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_6_25 : label is "NORMAL"; - attribute GSR of pdp_ram_0_6_25 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_6_25 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_6_25 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_6_25 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_6_25 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_6_25 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_0_7_24 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_24 : label is ""; - attribute CSDECODE_B of pdp_ram_0_7_24 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_7_24 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_7_24 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_7_24 : label is "NORMAL"; - attribute GSR of pdp_ram_0_7_24 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_7_24 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_7_24 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_7_24 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_7_24 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_7_24 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_1_0_23 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_23 : label is ""; - attribute CSDECODE_B of pdp_ram_1_0_23 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_0_23 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_0_23 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_0_23 : label is "NORMAL"; - attribute GSR of pdp_ram_1_0_23 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_0_23 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_0_23 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_0_23 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_0_23 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_0_23 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_1_1_22 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_1_22 : label is ""; - attribute CSDECODE_B of pdp_ram_1_1_22 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_1_22 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_1_22 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_1_22 : label is "NORMAL"; - attribute GSR of pdp_ram_1_1_22 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_1_22 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_1_22 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_1_22 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_1_22 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_1_22 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_1_2_21 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_2_21 : label is ""; - attribute CSDECODE_B of pdp_ram_1_2_21 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_2_21 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_2_21 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_2_21 : label is "NORMAL"; - attribute GSR of pdp_ram_1_2_21 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_2_21 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_2_21 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_2_21 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_2_21 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_2_21 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_1_3_20 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_3_20 : label is ""; - attribute CSDECODE_B of pdp_ram_1_3_20 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_3_20 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_3_20 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_3_20 : label is "NORMAL"; - attribute GSR of pdp_ram_1_3_20 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_3_20 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_3_20 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_3_20 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_3_20 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_3_20 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_1_4_19 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_4_19 : label is ""; - attribute CSDECODE_B of pdp_ram_1_4_19 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_4_19 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_4_19 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_4_19 : label is "NORMAL"; - attribute GSR of pdp_ram_1_4_19 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_4_19 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_4_19 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_4_19 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_4_19 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_4_19 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_1_5_18 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_5_18 : label is ""; - attribute CSDECODE_B of pdp_ram_1_5_18 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_5_18 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_5_18 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_5_18 : label is "NORMAL"; - attribute GSR of pdp_ram_1_5_18 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_5_18 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_5_18 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_5_18 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_5_18 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_5_18 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_1_6_17 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_6_17 : label is ""; - attribute CSDECODE_B of pdp_ram_1_6_17 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_6_17 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_6_17 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_6_17 : label is "NORMAL"; - attribute GSR of pdp_ram_1_6_17 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_6_17 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_6_17 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_6_17 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_6_17 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_6_17 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_1_7_16 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_7_16 : label is ""; - attribute CSDECODE_B of pdp_ram_1_7_16 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_7_16 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_7_16 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_7_16 : label is "NORMAL"; - attribute GSR of pdp_ram_1_7_16 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_7_16 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_7_16 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_7_16 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_7_16 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_7_16 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_2_0_15 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_15 : label is ""; - attribute CSDECODE_B of pdp_ram_2_0_15 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_0_15 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_0_15 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_0_15 : label is "NORMAL"; - attribute GSR of pdp_ram_2_0_15 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_0_15 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_0_15 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_0_15 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_0_15 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_0_15 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_2_1_14 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_1_14 : label is ""; - attribute CSDECODE_B of pdp_ram_2_1_14 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_1_14 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_1_14 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_1_14 : label is "NORMAL"; - attribute GSR of pdp_ram_2_1_14 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_1_14 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_1_14 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_1_14 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_1_14 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_1_14 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_2_2_13 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_2_13 : label is ""; - attribute CSDECODE_B of pdp_ram_2_2_13 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_2_13 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_2_13 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_2_13 : label is "NORMAL"; - attribute GSR of pdp_ram_2_2_13 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_2_13 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_2_13 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_2_13 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_2_13 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_2_13 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_2_3_12 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_3_12 : label is ""; - attribute CSDECODE_B of pdp_ram_2_3_12 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_3_12 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_3_12 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_3_12 : label is "NORMAL"; - attribute GSR of pdp_ram_2_3_12 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_3_12 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_3_12 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_3_12 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_3_12 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_3_12 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_2_4_11 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_4_11 : label is ""; - attribute CSDECODE_B of pdp_ram_2_4_11 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_4_11 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_4_11 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_4_11 : label is "NORMAL"; - attribute GSR of pdp_ram_2_4_11 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_4_11 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_4_11 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_4_11 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_4_11 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_4_11 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_2_5_10 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_5_10 : label is ""; - attribute CSDECODE_B of pdp_ram_2_5_10 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_5_10 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_5_10 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_5_10 : label is "NORMAL"; - attribute GSR of pdp_ram_2_5_10 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_5_10 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_5_10 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_5_10 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_5_10 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_5_10 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_2_6_9 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_6_9 : label is ""; - attribute CSDECODE_B of pdp_ram_2_6_9 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_6_9 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_6_9 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_6_9 : label is "NORMAL"; - attribute GSR of pdp_ram_2_6_9 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_6_9 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_6_9 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_6_9 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_6_9 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_6_9 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_2_7_8 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_7_8 : label is ""; - attribute CSDECODE_B of pdp_ram_2_7_8 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_7_8 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_7_8 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_7_8 : label is "NORMAL"; - attribute GSR of pdp_ram_2_7_8 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_7_8 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_7_8 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_7_8 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_7_8 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_7_8 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_3_0_7 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_7 : label is ""; - attribute CSDECODE_B of pdp_ram_3_0_7 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_0_7 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_0_7 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_0_7 : label is "NORMAL"; - attribute GSR of pdp_ram_3_0_7 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_0_7 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_0_7 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_0_7 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_0_7 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_0_7 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_3_1_6 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_1_6 : label is ""; - attribute CSDECODE_B of pdp_ram_3_1_6 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_1_6 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_1_6 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_1_6 : label is "NORMAL"; - attribute GSR of pdp_ram_3_1_6 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_1_6 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_1_6 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_1_6 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_1_6 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_1_6 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_3_2_5 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_2_5 : label is ""; - attribute CSDECODE_B of pdp_ram_3_2_5 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_2_5 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_2_5 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_2_5 : label is "NORMAL"; - attribute GSR of pdp_ram_3_2_5 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_2_5 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_2_5 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_2_5 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_2_5 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_2_5 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_3_3_4 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_3_4 : label is ""; - attribute CSDECODE_B of pdp_ram_3_3_4 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_3_4 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_3_4 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_3_4 : label is "NORMAL"; - attribute GSR of pdp_ram_3_3_4 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_3_4 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_3_4 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_3_4 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_3_4 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_3_4 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_3_4_3 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_4_3 : label is ""; - attribute CSDECODE_B of pdp_ram_3_4_3 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_4_3 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_4_3 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_4_3 : label is "NORMAL"; - attribute GSR of pdp_ram_3_4_3 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_4_3 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_4_3 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_4_3 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_4_3 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_4_3 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_3_5_2 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_5_2 : label is ""; - attribute CSDECODE_B of pdp_ram_3_5_2 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_5_2 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_5_2 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_5_2 : label is "NORMAL"; - attribute GSR of pdp_ram_3_5_2 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_5_2 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_5_2 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_5_2 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_5_2 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_5_2 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_3_6_1 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_6_1 : label is ""; - attribute CSDECODE_B of pdp_ram_3_6_1 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_6_1 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_6_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_6_1 : label is "NORMAL"; - attribute GSR of pdp_ram_3_6_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_6_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_6_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_6_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_6_1 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_6_1 : label is "2"; - attribute MEM_LPC_FILE of pdp_ram_3_7_0 : label is "fifo_32kx16x8_mb.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_7_0 : label is ""; - attribute CSDECODE_B of pdp_ram_3_7_0 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_7_0 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_7_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_7_0 : label is "NORMAL"; - attribute GSR of pdp_ram_3_7_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_7_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_7_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_7_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_7_0 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_7_0 : label is "2"; - attribute GSR of FF_236 : label is "ENABLED"; - attribute GSR of FF_235 : label is "ENABLED"; - attribute GSR of FF_234 : label is "ENABLED"; - attribute GSR of FF_233 : label is "ENABLED"; - attribute GSR of FF_232 : label is "ENABLED"; - attribute GSR of FF_231 : label is "ENABLED"; - attribute GSR of FF_230 : label is "ENABLED"; - attribute GSR of FF_229 : label is "ENABLED"; - attribute GSR of FF_228 : label is "ENABLED"; - attribute GSR of FF_227 : label is "ENABLED"; - attribute GSR of FF_226 : label is "ENABLED"; - attribute GSR of FF_225 : label is "ENABLED"; - attribute GSR of FF_224 : label is "ENABLED"; - attribute GSR of FF_223 : label is "ENABLED"; - attribute GSR of FF_222 : label is "ENABLED"; - attribute GSR of FF_221 : label is "ENABLED"; - attribute GSR of FF_220 : label is "ENABLED"; - attribute GSR of FF_219 : label is "ENABLED"; - attribute GSR of FF_218 : label is "ENABLED"; - attribute GSR of FF_217 : label is "ENABLED"; - attribute GSR of FF_216 : label is "ENABLED"; - attribute GSR of FF_215 : label is "ENABLED"; - attribute GSR of FF_214 : label is "ENABLED"; - attribute GSR of FF_213 : label is "ENABLED"; - attribute GSR of FF_212 : label is "ENABLED"; - attribute GSR of FF_211 : label is "ENABLED"; - attribute GSR of FF_210 : label is "ENABLED"; - attribute GSR of FF_209 : label is "ENABLED"; - attribute GSR of FF_208 : label is "ENABLED"; - attribute GSR of FF_207 : label is "ENABLED"; - attribute GSR of FF_206 : label is "ENABLED"; - attribute GSR of FF_205 : label is "ENABLED"; - attribute GSR of FF_204 : label is "ENABLED"; - attribute GSR of FF_203 : label is "ENABLED"; - attribute GSR of FF_202 : label is "ENABLED"; - attribute GSR of FF_201 : label is "ENABLED"; - attribute GSR of FF_200 : label is "ENABLED"; - attribute GSR of FF_199 : label is "ENABLED"; - attribute GSR of FF_198 : label is "ENABLED"; - attribute GSR of FF_197 : label is "ENABLED"; - attribute GSR of FF_196 : label is "ENABLED"; - attribute GSR of FF_195 : label is "ENABLED"; - attribute GSR of FF_194 : label is "ENABLED"; - attribute GSR of FF_193 : label is "ENABLED"; - attribute GSR of FF_192 : label is "ENABLED"; - attribute GSR of FF_191 : label is "ENABLED"; - attribute GSR of FF_190 : label is "ENABLED"; - attribute GSR of FF_189 : label is "ENABLED"; - attribute GSR of FF_188 : label is "ENABLED"; - attribute GSR of FF_187 : label is "ENABLED"; - attribute GSR of FF_186 : label is "ENABLED"; - attribute GSR of FF_185 : label is "ENABLED"; - attribute GSR of FF_184 : label is "ENABLED"; - attribute GSR of FF_183 : label is "ENABLED"; - attribute GSR of FF_182 : label is "ENABLED"; - attribute GSR of FF_181 : label is "ENABLED"; - attribute GSR of FF_180 : label is "ENABLED"; - attribute GSR of FF_179 : label is "ENABLED"; - attribute GSR of FF_178 : label is "ENABLED"; - attribute GSR of FF_177 : label is "ENABLED"; - attribute GSR of FF_176 : label is "ENABLED"; - attribute GSR of FF_175 : label is "ENABLED"; - attribute GSR of FF_174 : label is "ENABLED"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t39: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_2: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t38: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_1: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t37: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t36: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t35: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t34: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t33: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t32: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t31: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t30: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t29: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t28: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t27: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t26: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t25: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t24: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t23: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t22: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t21: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t20: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t19: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t18: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t17: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t16: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t15: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t14: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t13: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t12: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t11: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t9: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t8: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t7: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t6: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - LUT4_52: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, - DO0=>w_g2b_xor_cluster_0); - - LUT4_51: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_1); - - LUT4_50: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_2); - - LUT4_49: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_3); - - LUT4_48: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_47: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_46: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_45: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_44: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r9); - - LUT4_43: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_42: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_41: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>wcount_r6); - - LUT4_40: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_39: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_38: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_37: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r23, DO0=>wcount_r3); - - LUT4_36: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_35: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r2); - - LUT4_34: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_33: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r1); - - LUT4_32: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r0); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_1); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_2); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_3); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - XOR2_t5: XOR2 - port map (A=>wcount_15, B=>r_gcount_w216, Z=>wcnt_sub_msb); - - XOR2_t4: XOR2 - port map (A=>w_gcount_r215, B=>rcount_16, Z=>rcnt_sub_msb); - - XOR2_t3: XOR2 - port map (A=>wptr_15, B=>r_gcount_w216, Z=>wfill_sub_msb); - - XOR2_t2: XOR2 - port map (A=>w_gcount_r215, B=>rptr_16, Z=>rfill_sub_msb); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - INV_0: INV - port map (A=>rcnt_reg_15, Z=>rcnt_reg_15_inv); - - AND2_t1: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15_inv, Z=>ae_clrsig); - - AND2_t0: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15, Z=>ae_setsig); - - pdp_ram_0_0_31: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_0, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_1_30: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_1, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_2_29: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_2, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_3_28: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_3, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_4_27: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_4, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_5_26: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_5, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_6_25: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_6, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_7_24: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_7, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_0_23: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_0, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_1_22: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_1, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_2_21: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_2, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_3_20: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_3, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_4_19: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_4, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_5_18: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_5, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_6_17: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_6, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_7_16: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_7, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_0_15: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_0, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_1_14: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_1, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_2_13: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_2, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_3_12: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_3, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_4_11: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_4, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_5_10: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_5, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_6_9: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_6, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_7_8: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_7, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_0_7: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_0, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_1_6: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_1, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_2_5: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_2, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_3_4: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_3, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_4_3: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_4, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_5_2: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_5, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_6_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_6, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_7_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 2) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, - ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, - ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, - ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_7, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - FF_236: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_235: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_234: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_233: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_232: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_231: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_230: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_229: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_228: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_227: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_226: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_225: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_224: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_223: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_222: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_221: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_220: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_219: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_218: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_217: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_216: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_215: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_214: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_213: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_212: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_211: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_210: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_209: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_208: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_207: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_206: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_205: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_204: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_203: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_202: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_201: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_200: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_199: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_198: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_197: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_196: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_195: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_194: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_193: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_192: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_191: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_190: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_189: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_188: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_187: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_186: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_185: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_184: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_183: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_182: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_181: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_180: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_179: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_178: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_177: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_176: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_175: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_174: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_173: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_172: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_171: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_170: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_169: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_168: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_167: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_166: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_165: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_164: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_163: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_162: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_161: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_160: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_159: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_158: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_157: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_156: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_155: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_154: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_153: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_152: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_151: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_150: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_149: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_148: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_147: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_146: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_145: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_144: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_143: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_142: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_141: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_140: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_139: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_138: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_137: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_136: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_135: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_134: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_133: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_132: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_131: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_130: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_129: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_128: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_127: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_126: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_125: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_124: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_123: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_122: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_121: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_120: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_119: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_118: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_117: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_116: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_115: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_114: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_113: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_112: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_111: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_110: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_109: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_108: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_107: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_106: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_105: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_104: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_103: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_102: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_101: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_100: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_99: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_98: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_97: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_96: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_95: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_94: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_93: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_92: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_91: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_90: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_89: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_88: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_87: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_86: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_85: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_84: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_83: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_82: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_81: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_80: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_79: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_78: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_77: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_76: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_75: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_74: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_73: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_72: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_71: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_70: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_69: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_0, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_0); - - FF_68: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_1, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_1); - - FF_67: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_2, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_2); - - FF_66: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_3, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_3); - - FF_65: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_4, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_4); - - FF_64: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_5, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_5); - - FF_63: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_6, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_6); - - FF_62: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_7, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_7); - - FF_61: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_8, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_8); - - FF_60: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_9, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_9); - - FF_59: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_10, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_10); - - FF_58: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_11, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_11); - - FF_57: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_12, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_12); - - FF_56: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_13, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_13); - - FF_55: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_14, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_14); - - FF_54: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_15, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_15); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_0, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_0); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_1, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_1); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_2, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_2); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_3, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_3); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_4, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_4); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_5, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_5); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_6, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_6); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_7, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_7); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_8, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_8); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_9, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_9); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_10, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_10); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_11, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_11); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_12, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_12); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_13, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_13); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_14, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_14); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_15, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_15); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_16, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_16); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_0, CK=>WrClock, CD=>Reset, Q=>WCNT(0)); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_1, CK=>WrClock, CD=>Reset, Q=>WCNT(1)); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_2, CK=>WrClock, CD=>Reset, Q=>WCNT(2)); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_3, CK=>WrClock, CD=>Reset, Q=>WCNT(3)); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_4, CK=>WrClock, CD=>Reset, Q=>WCNT(4)); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_5, CK=>WrClock, CD=>Reset, Q=>WCNT(5)); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_6, CK=>WrClock, CD=>Reset, Q=>WCNT(6)); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_7, CK=>WrClock, CD=>Reset, Q=>WCNT(7)); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_8, CK=>WrClock, CD=>Reset, Q=>WCNT(8)); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_9, CK=>WrClock, CD=>Reset, Q=>WCNT(9)); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_10, CK=>WrClock, CD=>Reset, Q=>WCNT(10)); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_11, CK=>WrClock, CD=>Reset, Q=>WCNT(11)); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_12, CK=>WrClock, CD=>Reset, Q=>WCNT(12)); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_13, CK=>WrClock, CD=>Reset, Q=>WCNT(13)); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_14, CK=>WrClock, CD=>Reset, Q=>WCNT(14)); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_15, CK=>WrClock, CD=>Reset, Q=>WCNT(15)); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_0, CK=>RdClock, CD=>rRst, Q=>RCNT(0)); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_1, CK=>RdClock, CD=>rRst, Q=>RCNT(1)); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_2, CK=>RdClock, CD=>rRst, Q=>RCNT(2)); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_3, CK=>RdClock, CD=>rRst, Q=>RCNT(3)); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_4, CK=>RdClock, CD=>rRst, Q=>RCNT(4)); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_5, CK=>RdClock, CD=>rRst, Q=>RCNT(5)); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_6, CK=>RdClock, CD=>rRst, Q=>RCNT(6)); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_7, CK=>RdClock, CD=>rRst, Q=>RCNT(7)); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_8, CK=>RdClock, CD=>rRst, Q=>RCNT(8)); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_9, CK=>RdClock, CD=>rRst, Q=>RCNT(9)); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_10, CK=>RdClock, CD=>rRst, Q=>RCNT(10)); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_11, CK=>RdClock, CD=>rRst, Q=>RCNT(11)); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_12, CK=>RdClock, CD=>rRst, Q=>RCNT(12)); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_13, CK=>RdClock, CD=>rRst, Q=>RCNT(13)); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_14, CK=>RdClock, CD=>rRst, Q=>RCNT(14)); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_15, CK=>RdClock, CD=>rRst, Q=>RCNT(15)); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_16, CK=>RdClock, CD=>rRst, Q=>RCNT(16)); - - FF_3: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ae_d, CK=>RdClock, PD=>rRst, Q=>AlmostEmpty); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>af_d, CK=>WrClock, CD=>Reset, Q=>AlmostFull); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>ircount_16, NC1=>open); - - mux_7: MUX41 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(0)); - - mux_6: MUX41 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(1)); - - mux_5: MUX41 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(2)); - - mux_4: MUX41 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(3)); - - mux_3: MUX41 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(4)); - - mux_2: MUX41 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(5)); - - mux_1: MUX41 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(6)); - - mux_0: MUX41 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(7)); - - wcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wcount_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_2, S0=>open, - S1=>wcnt_sub_0); - - wcnt_1: FSUB2B - port map (A0=>wcount_1, A1=>wcount_2, B0=>rcount_w2, - B1=>rcount_w3, BI=>co0_2, BOUT=>co1_2, S0=>wcnt_sub_1, - S1=>wcnt_sub_2); - - wcnt_2: FSUB2B - port map (A0=>wcount_3, A1=>wcount_4, B0=>rcount_w4, - B1=>rcount_w5, BI=>co1_2, BOUT=>co2_2, S0=>wcnt_sub_3, - S1=>wcnt_sub_4); - - wcnt_3: FSUB2B - port map (A0=>wcount_5, A1=>wcount_6, B0=>rcount_w6, - B1=>rcount_w7, BI=>co2_2, BOUT=>co3_2, S0=>wcnt_sub_5, - S1=>wcnt_sub_6); - - wcnt_4: FSUB2B - port map (A0=>wcount_7, A1=>wcount_8, B0=>rcount_w8, - B1=>rcount_w9, BI=>co3_2, BOUT=>co4_2, S0=>wcnt_sub_7, - S1=>wcnt_sub_8); - - wcnt_5: FSUB2B - port map (A0=>wcount_9, A1=>wcount_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_2, BOUT=>co5_2, S0=>wcnt_sub_9, - S1=>wcnt_sub_10); - - wcnt_6: FSUB2B - port map (A0=>wcount_11, A1=>wcount_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_2, BOUT=>co6_2, - S0=>wcnt_sub_11, S1=>wcnt_sub_12); - - wcnt_7: FSUB2B - port map (A0=>wcount_13, A1=>wcount_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_2, BOUT=>co7_2, S0=>wcnt_sub_13, - S1=>wcnt_sub_14); - - wcnt_8: FSUB2B - port map (A0=>wcnt_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_2, BOUT=>open, S0=>wcnt_sub_15, - S1=>open); - - rcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rcount_0, BI=>scuba_vlo, BOUT=>co0_3, S0=>open, - S1=>rcnt_sub_0); - - rcnt_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rcount_1, - B1=>rcount_2, BI=>co0_3, BOUT=>co1_3, S0=>rcnt_sub_1, - S1=>rcnt_sub_2); - - rcnt_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rcount_3, - B1=>rcount_4, BI=>co1_3, BOUT=>co2_3, S0=>rcnt_sub_3, - S1=>rcnt_sub_4); - - rcnt_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rcount_5, - B1=>rcount_6, BI=>co2_3, BOUT=>co3_3, S0=>rcnt_sub_5, - S1=>rcnt_sub_6); - - rcnt_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rcount_7, - B1=>rcount_8, BI=>co3_3, BOUT=>co4_3, S0=>rcnt_sub_7, - S1=>rcnt_sub_8); - - rcnt_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rcount_9, - B1=>rcount_10, BI=>co4_3, BOUT=>co5_3, S0=>rcnt_sub_9, - S1=>rcnt_sub_10); - - rcnt_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rcount_11, - B1=>rcount_12, BI=>co5_3, BOUT=>co6_3, S0=>rcnt_sub_11, - S1=>rcnt_sub_12); - - rcnt_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rcount_13, - B1=>rcount_14, BI=>co6_3, BOUT=>co7_3, S0=>rcnt_sub_13, - S1=>rcnt_sub_14); - - rcnt_8: FSUB2B - port map (A0=>wcount_r14, A1=>rcnt_sub_msb, B0=>rcount_15, - B1=>scuba_vlo, BI=>co7_3, BOUT=>co8_1, S0=>rcnt_sub_15, - S1=>rcnt_sub_16); - - rcntd: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_1, COUT=>open, S0=>co8_1d, S1=>open); - - wfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wptr_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_4, S0=>open, - S1=>wfill_sub_0); - - wfill_1: FSUB2B - port map (A0=>wptr_1, A1=>wptr_2, B0=>rcount_w2, B1=>rcount_w3, - BI=>co0_4, BOUT=>co1_4, S0=>wfill_sub_1, S1=>wfill_sub_2); - - wfill_2: FSUB2B - port map (A0=>wptr_3, A1=>wptr_4, B0=>rcount_w4, B1=>rcount_w5, - BI=>co1_4, BOUT=>co2_4, S0=>wfill_sub_3, S1=>wfill_sub_4); - - wfill_3: FSUB2B - port map (A0=>wptr_5, A1=>wptr_6, B0=>rcount_w6, B1=>rcount_w7, - BI=>co2_4, BOUT=>co3_4, S0=>wfill_sub_5, S1=>wfill_sub_6); - - wfill_4: FSUB2B - port map (A0=>wptr_7, A1=>wptr_8, B0=>rcount_w8, B1=>rcount_w9, - BI=>co3_4, BOUT=>co4_4, S0=>wfill_sub_7, S1=>wfill_sub_8); - - wfill_5: FSUB2B - port map (A0=>wptr_9, A1=>wptr_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_4, BOUT=>co5_4, S0=>wfill_sub_9, - S1=>wfill_sub_10); - - wfill_6: FSUB2B - port map (A0=>wptr_11, A1=>wptr_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_4, BOUT=>co6_4, - S0=>wfill_sub_11, S1=>wfill_sub_12); - - wfill_7: FSUB2B - port map (A0=>wptr_13, A1=>wptr_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_4, BOUT=>co7_4, S0=>wfill_sub_13, - S1=>wfill_sub_14); - - wfill_8: FSUB2B - port map (A0=>wfill_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_4, BOUT=>open, S0=>wfill_sub_15, - S1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - rfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rptr_0, BI=>scuba_vlo, BOUT=>co0_5, S0=>open, - S1=>rfill_sub_0); - - rfill_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rptr_1, B1=>rptr_2, - BI=>co0_5, BOUT=>co1_5, S0=>rfill_sub_1, S1=>rfill_sub_2); - - rfill_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rptr_3, B1=>rptr_4, - BI=>co1_5, BOUT=>co2_5, S0=>rfill_sub_3, S1=>rfill_sub_4); - - rfill_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rptr_5, B1=>rptr_6, - BI=>co2_5, BOUT=>co3_5, S0=>rfill_sub_5, S1=>rfill_sub_6); - - rfill_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rptr_7, B1=>rptr_8, - BI=>co3_5, BOUT=>co4_5, S0=>rfill_sub_7, S1=>rfill_sub_8); - - rfill_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rptr_9, B1=>rptr_10, - BI=>co4_5, BOUT=>co5_5, S0=>rfill_sub_9, S1=>rfill_sub_10); - - rfill_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rptr_11, - B1=>rptr_12, BI=>co5_5, BOUT=>co6_5, S0=>rfill_sub_11, - S1=>rfill_sub_12); - - rfill_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rptr_13, - B1=>rptr_14, BI=>co6_5, BOUT=>co7_5, S0=>rfill_sub_13, - S1=>rfill_sub_14); - - rfill_8: FSUB2B - port map (A0=>wcount_r14, A1=>rfill_sub_msb, B0=>rptr_15, - B1=>scuba_vlo, BI=>co7_5, BOUT=>co8_2, S0=>rfill_sub_15, - S1=>rfill_sub_16); - - rfilld: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_2, COUT=>open, S0=>co8_2d, S1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_6); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_6, GE=>co1_6); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_6, GE=>co2_6); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_6, GE=>co3_6); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r7, - B1=>wcount_r8, CI=>co3_6, GE=>co4_6); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r9, - B1=>wcount_r10, CI=>co4_6, GE=>co5_6); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r11, - B1=>w_g2b_xor_cluster_0, CI=>co5_6, GE=>co6_6); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r13, - B1=>wcount_r14, CI=>co6_6, GE=>co7_6); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_6, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_7); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_7, GE=>co1_7); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_7, GE=>co2_7); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>rcount_w8, CI=>co2_7, GE=>co3_7); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, - B1=>rcount_w10, CI=>co3_7, GE=>co4_7); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w11, - B1=>rcount_w12, CI=>co4_7, GE=>co5_7); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w14, CI=>co5_7, GE=>co6_7); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>full_cmp_set, B0=>rcount_w15, - B1=>full_cmp_clr, CI=>co6_7, GE=>full_d_c); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - ae_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci_2, S0=>open, S1=>open); - - ae_cmp_0: AGEB2 - port map (A0=>AmEmptyThresh(0), A1=>AmEmptyThresh(1), - B0=>rcnt_reg_0, B1=>rcnt_reg_1, CI=>cmp_ci_2, GE=>co0_8); - - ae_cmp_1: AGEB2 - port map (A0=>AmEmptyThresh(2), A1=>AmEmptyThresh(3), - B0=>rcnt_reg_2, B1=>rcnt_reg_3, CI=>co0_8, GE=>co1_8); - - ae_cmp_2: AGEB2 - port map (A0=>AmEmptyThresh(4), A1=>AmEmptyThresh(5), - B0=>rcnt_reg_4, B1=>rcnt_reg_5, CI=>co1_8, GE=>co2_8); - - ae_cmp_3: AGEB2 - port map (A0=>AmEmptyThresh(6), A1=>AmEmptyThresh(7), - B0=>rcnt_reg_6, B1=>rcnt_reg_7, CI=>co2_8, GE=>co3_8); - - ae_cmp_4: AGEB2 - port map (A0=>AmEmptyThresh(8), A1=>AmEmptyThresh(9), - B0=>rcnt_reg_8, B1=>rcnt_reg_9, CI=>co3_8, GE=>co4_8); - - ae_cmp_5: AGEB2 - port map (A0=>AmEmptyThresh(10), A1=>AmEmptyThresh(11), - B0=>rcnt_reg_10, B1=>rcnt_reg_11, CI=>co4_8, GE=>co5_8); - - ae_cmp_6: AGEB2 - port map (A0=>AmEmptyThresh(12), A1=>AmEmptyThresh(13), - B0=>rcnt_reg_12, B1=>rcnt_reg_13, CI=>co5_8, GE=>co6_8); - - ae_cmp_7: AGEB2 - port map (A0=>AmEmptyThresh(14), A1=>AmEmptyThresh(15), - B0=>rcnt_reg_14, B1=>rcnt_reg_15, CI=>co6_8, GE=>co7_7); - - ae_cmp_8: AGEB2 - port map (A0=>ae_setsig, A1=>scuba_vlo, B0=>ae_clrsig, - B1=>scuba_vlo, CI=>co7_7, GE=>ae_d_c); - - a2: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>ae_d_c, COUT=>open, S0=>ae_d, S1=>open); - - af_d_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_3, S0=>open, S1=>open); - - af_d_cmp_0: AGEB2 - port map (A0=>wcnt_reg_0, A1=>wcnt_reg_1, B0=>AmFullThresh(0), - B1=>AmFullThresh(1), CI=>cmp_ci_3, GE=>co0_9); - - af_d_cmp_1: AGEB2 - port map (A0=>wcnt_reg_2, A1=>wcnt_reg_3, B0=>AmFullThresh(2), - B1=>AmFullThresh(3), CI=>co0_9, GE=>co1_9); - - af_d_cmp_2: AGEB2 - port map (A0=>wcnt_reg_4, A1=>wcnt_reg_5, B0=>AmFullThresh(4), - B1=>AmFullThresh(5), CI=>co1_9, GE=>co2_9); - - af_d_cmp_3: AGEB2 - port map (A0=>wcnt_reg_6, A1=>wcnt_reg_7, B0=>AmFullThresh(6), - B1=>AmFullThresh(7), CI=>co2_9, GE=>co3_9); - - af_d_cmp_4: AGEB2 - port map (A0=>wcnt_reg_8, A1=>wcnt_reg_9, B0=>AmFullThresh(8), - B1=>AmFullThresh(9), CI=>co3_9, GE=>co4_9); - - af_d_cmp_5: AGEB2 - port map (A0=>wcnt_reg_10, A1=>wcnt_reg_11, B0=>AmFullThresh(10), - B1=>AmFullThresh(11), CI=>co4_9, GE=>co5_9); - - af_d_cmp_6: AGEB2 - port map (A0=>wcnt_reg_12, A1=>wcnt_reg_13, B0=>AmFullThresh(12), - B1=>AmFullThresh(13), CI=>co5_9, GE=>co6_9); - - af_d_cmp_7: AGEB2 - port map (A0=>wcnt_reg_14, A1=>wcnt_reg_15, B0=>AmFullThresh(14), - B1=>scuba_vlo, CI=>co6_9, GE=>af_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a3: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>af_d_c, COUT=>open, S0=>af_d, S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_32kx16x8_mb is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FSUB2B use entity ecp2m.FSUB2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:MUX41 use entity ecp2m.MUX41(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.ipx b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.ipx deleted file mode 100644 index 388cfd7..0000000 --- a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.lpc b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.lpc deleted file mode 100644 index 54bda83..0000000 --- a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.lpc +++ /dev/null @@ -1,50 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F1152C -SpeedGrade=5 -Package=FPBGA1152 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.8 -ModuleName=fifo_32kx16x8_mb2 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=01/18/2018 -Time=18:38:11 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=32768 -Width=18 -RDepth=65536 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=1 -PeMode=Dynamic - Single Threshold -PeAssert=16 -PeDeassert=12 -FullFlg=1 -PfMode=Dynamic - Single Threshold -PfAssert=32752 -PfDeassert=506 -RDataCount=1 -WDataCount=1 -EnECC=0 - -[Command] -cmd_line= -w -n fifo_32kx16x8_mb2 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 15 -data_width 18 -num_words 32768 -rdata_width 9 -no_enable -pe 0 -pf 0 -rfill -fill diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.srp b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.srp deleted file mode 100644 index 047efc7..0000000 --- a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.srp +++ /dev/null @@ -1,44 +0,0 @@ -SCUBA, Version Diamond (64-bit) 3.9.1.119 -Thu Jan 18 18:38:11 2018 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2017 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /d/jspc29/lattice/diamond/3.9_x64/ispfpga/bin/lin64/scuba -w -n fifo_32kx16x8_mb2 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 15 -data_width 18 -num_words 32768 -rdata_width 9 -no_enable -pe 0 -pf 0 -rfill -fill - Circuit name : fifo_32kx16x8_mb2 - Module type : ebfifo - Module Version : 5.8 - Ports : - Inputs : Data[17:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[8:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : fifo_32kx16x8_mb2.edn - VHDL output : fifo_32kx16x8_mb2.vhd - VHDL template : fifo_32kx16x8_mb2_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb2_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb2.srp - Element Usage : - AGEB2 : 34 - AND2 : 4 - CU2 : 17 - FADD2B : 16 - FSUB2B : 36 - FD1P3BX : 2 - FD1P3DX : 102 - FD1S3BX : 2 - FD1S3DX : 134 - INV : 13 - MUX321 : 9 - OR2 : 1 - ROM16X1 : 181 - XOR2 : 35 - DP16KB : 32 - Estimated Resource Usage: - LUT : 499 - EBR : 32 - Reg : 240 diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.vhd b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.vhd deleted file mode 100644 index 09f89d5..0000000 --- a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2.vhd +++ /dev/null @@ -1,6859 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond (64-bit) 3.9.1.119 --- Module Version: 5.8 ---/d/jspc29/lattice/diamond/3.9_x64/ispfpga/bin/lin64/scuba -w -n fifo_32kx16x8_mb2 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 32768 -width 18 -depth 32768 -rdata_width 9 -no_enable -pe 0 -pf 0 -rfill -fill - --- Thu Jan 18 18:38:11 2018 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_32kx16x8_mb2 is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(8 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end fifo_32kx16x8_mb2; - -architecture Structure of fifo_32kx16x8_mb2 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal func_and_inet: std_logic; - signal func_and_inet_1: std_logic; - signal func_and_inet_2: std_logic; - signal func_and_inet_3: std_logic; - signal func_and_inet_4: std_logic; - signal func_and_inet_5: std_logic; - signal func_and_inet_6: std_logic; - signal func_and_inet_7: std_logic; - signal func_and_inet_8: std_logic; - signal func_and_inet_9: std_logic; - signal func_and_inet_10: std_logic; - signal func_and_inet_11: std_logic; - signal func_and_inet_12: std_logic; - signal func_and_inet_13: std_logic; - signal func_and_inet_14: std_logic; - signal func_and_inet_15: std_logic; - signal func_and_inet_16: std_logic; - signal func_and_inet_17: std_logic; - signal func_and_inet_18: std_logic; - signal func_and_inet_19: std_logic; - signal func_and_inet_20: std_logic; - signal func_and_inet_21: std_logic; - signal func_and_inet_22: std_logic; - signal func_and_inet_23: std_logic; - signal func_and_inet_24: std_logic; - signal func_and_inet_25: std_logic; - signal func_and_inet_26: std_logic; - signal func_and_inet_27: std_logic; - signal func_and_inet_28: std_logic; - signal func_and_inet_29: std_logic; - signal wptr_14_inv: std_logic; - signal func_and_inet_30: std_logic; - signal rptr_15_inv: std_logic; - signal func_and_inet_31: std_logic; - signal func_and_inet_32: std_logic; - signal func_and_inet_33: std_logic; - signal func_and_inet_34: std_logic; - signal func_and_inet_35: std_logic; - signal func_and_inet_36: std_logic; - signal func_and_inet_37: std_logic; - signal func_and_inet_38: std_logic; - signal func_and_inet_39: std_logic; - signal func_and_inet_40: std_logic; - signal func_and_inet_41: std_logic; - signal func_and_inet_42: std_logic; - signal func_and_inet_43: std_logic; - signal func_and_inet_44: std_logic; - signal func_and_inet_45: std_logic; - signal wptr_13_inv: std_logic; - signal func_and_inet_46: std_logic; - signal rptr_14_inv: std_logic; - signal func_and_inet_47: std_logic; - signal func_and_inet_48: std_logic; - signal func_and_inet_49: std_logic; - signal func_and_inet_50: std_logic; - signal func_and_inet_51: std_logic; - signal func_and_inet_52: std_logic; - signal func_and_inet_53: std_logic; - signal wptr_12_inv: std_logic; - signal func_and_inet_54: std_logic; - signal rptr_13_inv: std_logic; - signal func_and_inet_55: std_logic; - signal func_and_inet_56: std_logic; - signal func_and_inet_57: std_logic; - signal wptr_11_inv: std_logic; - signal func_and_inet_58: std_logic; - signal rptr_12_inv: std_logic; - signal func_and_inet_59: std_logic; - signal wptr_10_inv: std_logic; - signal func_and_inet_60: std_logic; - signal rptr_11_inv: std_logic; - signal func_and_inet_61: std_logic; - signal func_and_inet_62: std_logic; - signal func_and_inet_63: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal rcount_w0: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal rcnt_reg_15_inv: std_logic; - signal dec1_r10: std_logic; - signal dec0_p00: std_logic; - signal dec3_r11: std_logic; - signal dec2_p01: std_logic; - signal dec5_r12: std_logic; - signal dec4_p02: std_logic; - signal dec7_r13: std_logic; - signal dec6_p03: std_logic; - signal dec9_r14: std_logic; - signal dec8_p04: std_logic; - signal dec11_r15: std_logic; - signal dec10_p05: std_logic; - signal dec13_r16: std_logic; - signal dec12_p06: std_logic; - signal dec15_r17: std_logic; - signal dec14_p07: std_logic; - signal dec17_r18: std_logic; - signal dec16_p08: std_logic; - signal dec19_r19: std_logic; - signal dec18_p09: std_logic; - signal dec21_r110: std_logic; - signal dec20_p010: std_logic; - signal dec23_r111: std_logic; - signal dec22_p011: std_logic; - signal dec25_r112: std_logic; - signal dec24_p012: std_logic; - signal dec27_r113: std_logic; - signal dec26_p013: std_logic; - signal dec29_r114: std_logic; - signal dec28_p014: std_logic; - signal dec31_r115: std_logic; - signal dec30_p015: std_logic; - signal dec33_r116: std_logic; - signal dec32_p016: std_logic; - signal dec35_r117: std_logic; - signal dec34_p017: std_logic; - signal dec37_r118: std_logic; - signal dec36_p018: std_logic; - signal dec39_r119: std_logic; - signal dec38_p019: std_logic; - signal dec41_r120: std_logic; - signal dec40_p020: std_logic; - signal dec43_r121: std_logic; - signal dec42_p021: std_logic; - signal dec45_r122: std_logic; - signal dec44_p022: std_logic; - signal dec47_r123: std_logic; - signal dec46_p023: std_logic; - signal dec49_r124: std_logic; - signal dec48_p024: std_logic; - signal dec51_r125: std_logic; - signal dec50_p025: std_logic; - signal dec53_r126: std_logic; - signal dec52_p026: std_logic; - signal dec55_r127: std_logic; - signal dec54_p027: std_logic; - signal dec57_r128: std_logic; - signal dec56_p028: std_logic; - signal dec59_r129: std_logic; - signal dec58_p029: std_logic; - signal dec61_r130: std_logic; - signal dec60_p030: std_logic; - signal dec63_r131: std_logic; - signal dec62_p031: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal wptr_15: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_16: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal rcnt_reg_16: std_logic; - signal empty_i: std_logic; - signal full_i: std_logic; - signal rRst: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co7: std_logic; - signal co6: std_logic; - signal wcount_15: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8: std_logic; - signal co7_1: std_logic; - signal rcount_16: std_logic; - signal mdout1_31_0: std_logic; - signal mdout1_30_0: std_logic; - signal mdout1_29_0: std_logic; - signal mdout1_28_0: std_logic; - signal mdout1_27_0: std_logic; - signal mdout1_26_0: std_logic; - signal mdout1_25_0: std_logic; - signal mdout1_24_0: std_logic; - signal mdout1_23_0: std_logic; - signal mdout1_22_0: std_logic; - signal mdout1_21_0: std_logic; - signal mdout1_20_0: std_logic; - signal mdout1_19_0: std_logic; - signal mdout1_18_0: std_logic; - signal mdout1_17_0: std_logic; - signal mdout1_16_0: std_logic; - signal mdout1_15_0: std_logic; - signal mdout1_14_0: std_logic; - signal mdout1_13_0: std_logic; - signal mdout1_12_0: std_logic; - signal mdout1_11_0: std_logic; - signal mdout1_10_0: std_logic; - signal mdout1_9_0: std_logic; - signal mdout1_8_0: std_logic; - signal mdout1_7_0: std_logic; - signal mdout1_6_0: std_logic; - signal mdout1_5_0: std_logic; - signal mdout1_4_0: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_31_1: std_logic; - signal mdout1_30_1: std_logic; - signal mdout1_29_1: std_logic; - signal mdout1_28_1: std_logic; - signal mdout1_27_1: std_logic; - signal mdout1_26_1: std_logic; - signal mdout1_25_1: std_logic; - signal mdout1_24_1: std_logic; - signal mdout1_23_1: std_logic; - signal mdout1_22_1: std_logic; - signal mdout1_21_1: std_logic; - signal mdout1_20_1: std_logic; - signal mdout1_19_1: std_logic; - signal mdout1_18_1: std_logic; - signal mdout1_17_1: std_logic; - signal mdout1_16_1: std_logic; - signal mdout1_15_1: std_logic; - signal mdout1_14_1: std_logic; - signal mdout1_13_1: std_logic; - signal mdout1_12_1: std_logic; - signal mdout1_11_1: std_logic; - signal mdout1_10_1: std_logic; - signal mdout1_9_1: std_logic; - signal mdout1_8_1: std_logic; - signal mdout1_7_1: std_logic; - signal mdout1_6_1: std_logic; - signal mdout1_5_1: std_logic; - signal mdout1_4_1: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_31_2: std_logic; - signal mdout1_30_2: std_logic; - signal mdout1_29_2: std_logic; - signal mdout1_28_2: std_logic; - signal mdout1_27_2: std_logic; - signal mdout1_26_2: std_logic; - signal mdout1_25_2: std_logic; - signal mdout1_24_2: std_logic; - signal mdout1_23_2: std_logic; - signal mdout1_22_2: std_logic; - signal mdout1_21_2: std_logic; - signal mdout1_20_2: std_logic; - signal mdout1_19_2: std_logic; - signal mdout1_18_2: std_logic; - signal mdout1_17_2: std_logic; - signal mdout1_16_2: std_logic; - signal mdout1_15_2: std_logic; - signal mdout1_14_2: std_logic; - signal mdout1_13_2: std_logic; - signal mdout1_12_2: std_logic; - signal mdout1_11_2: std_logic; - signal mdout1_10_2: std_logic; - signal mdout1_9_2: std_logic; - signal mdout1_8_2: std_logic; - signal mdout1_7_2: std_logic; - signal mdout1_6_2: std_logic; - signal mdout1_5_2: std_logic; - signal mdout1_4_2: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_31_3: std_logic; - signal mdout1_30_3: std_logic; - signal mdout1_29_3: std_logic; - signal mdout1_28_3: std_logic; - signal mdout1_27_3: std_logic; - signal mdout1_26_3: std_logic; - signal mdout1_25_3: std_logic; - signal mdout1_24_3: std_logic; - signal mdout1_23_3: std_logic; - signal mdout1_22_3: std_logic; - signal mdout1_21_3: std_logic; - signal mdout1_20_3: std_logic; - signal mdout1_19_3: std_logic; - signal mdout1_18_3: std_logic; - signal mdout1_17_3: std_logic; - signal mdout1_16_3: std_logic; - signal mdout1_15_3: std_logic; - signal mdout1_14_3: std_logic; - signal mdout1_13_3: std_logic; - signal mdout1_12_3: std_logic; - signal mdout1_11_3: std_logic; - signal mdout1_10_3: std_logic; - signal mdout1_9_3: std_logic; - signal mdout1_8_3: std_logic; - signal mdout1_7_3: std_logic; - signal mdout1_6_3: std_logic; - signal mdout1_5_3: std_logic; - signal mdout1_4_3: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_31_4: std_logic; - signal mdout1_30_4: std_logic; - signal mdout1_29_4: std_logic; - signal mdout1_28_4: std_logic; - signal mdout1_27_4: std_logic; - signal mdout1_26_4: std_logic; - signal mdout1_25_4: std_logic; - signal mdout1_24_4: std_logic; - signal mdout1_23_4: std_logic; - signal mdout1_22_4: std_logic; - signal mdout1_21_4: std_logic; - signal mdout1_20_4: std_logic; - signal mdout1_19_4: std_logic; - signal mdout1_18_4: std_logic; - signal mdout1_17_4: std_logic; - signal mdout1_16_4: std_logic; - signal mdout1_15_4: std_logic; - signal mdout1_14_4: std_logic; - signal mdout1_13_4: std_logic; - signal mdout1_12_4: std_logic; - signal mdout1_11_4: std_logic; - signal mdout1_10_4: std_logic; - signal mdout1_9_4: std_logic; - signal mdout1_8_4: std_logic; - signal mdout1_7_4: std_logic; - signal mdout1_6_4: std_logic; - signal mdout1_5_4: std_logic; - signal mdout1_4_4: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_31_5: std_logic; - signal mdout1_30_5: std_logic; - signal mdout1_29_5: std_logic; - signal mdout1_28_5: std_logic; - signal mdout1_27_5: std_logic; - signal mdout1_26_5: std_logic; - signal mdout1_25_5: std_logic; - signal mdout1_24_5: std_logic; - signal mdout1_23_5: std_logic; - signal mdout1_22_5: std_logic; - signal mdout1_21_5: std_logic; - signal mdout1_20_5: std_logic; - signal mdout1_19_5: std_logic; - signal mdout1_18_5: std_logic; - signal mdout1_17_5: std_logic; - signal mdout1_16_5: std_logic; - signal mdout1_15_5: std_logic; - signal mdout1_14_5: std_logic; - signal mdout1_13_5: std_logic; - signal mdout1_12_5: std_logic; - signal mdout1_11_5: std_logic; - signal mdout1_10_5: std_logic; - signal mdout1_9_5: std_logic; - signal mdout1_8_5: std_logic; - signal mdout1_7_5: std_logic; - signal mdout1_6_5: std_logic; - signal mdout1_5_5: std_logic; - signal mdout1_4_5: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_31_6: std_logic; - signal mdout1_30_6: std_logic; - signal mdout1_29_6: std_logic; - signal mdout1_28_6: std_logic; - signal mdout1_27_6: std_logic; - signal mdout1_26_6: std_logic; - signal mdout1_25_6: std_logic; - signal mdout1_24_6: std_logic; - signal mdout1_23_6: std_logic; - signal mdout1_22_6: std_logic; - signal mdout1_21_6: std_logic; - signal mdout1_20_6: std_logic; - signal mdout1_19_6: std_logic; - signal mdout1_18_6: std_logic; - signal mdout1_17_6: std_logic; - signal mdout1_16_6: std_logic; - signal mdout1_15_6: std_logic; - signal mdout1_14_6: std_logic; - signal mdout1_13_6: std_logic; - signal mdout1_12_6: std_logic; - signal mdout1_11_6: std_logic; - signal mdout1_10_6: std_logic; - signal mdout1_9_6: std_logic; - signal mdout1_8_6: std_logic; - signal mdout1_7_6: std_logic; - signal mdout1_6_6: std_logic; - signal mdout1_5_6: std_logic; - signal mdout1_4_6: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_31_7: std_logic; - signal mdout1_30_7: std_logic; - signal mdout1_29_7: std_logic; - signal mdout1_28_7: std_logic; - signal mdout1_27_7: std_logic; - signal mdout1_26_7: std_logic; - signal mdout1_25_7: std_logic; - signal mdout1_24_7: std_logic; - signal mdout1_23_7: std_logic; - signal mdout1_22_7: std_logic; - signal mdout1_21_7: std_logic; - signal mdout1_20_7: std_logic; - signal mdout1_19_7: std_logic; - signal mdout1_18_7: std_logic; - signal mdout1_17_7: std_logic; - signal mdout1_16_7: std_logic; - signal mdout1_15_7: std_logic; - signal mdout1_14_7: std_logic; - signal mdout1_13_7: std_logic; - signal mdout1_12_7: std_logic; - signal mdout1_11_7: std_logic; - signal mdout1_10_7: std_logic; - signal mdout1_9_7: std_logic; - signal mdout1_8_7: std_logic; - signal mdout1_7_7: std_logic; - signal mdout1_6_7: std_logic; - signal mdout1_5_7: std_logic; - signal mdout1_4_7: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal rptr_13_ff: std_logic; - signal rptr_12_ff: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_31_8: std_logic; - signal mdout1_30_8: std_logic; - signal mdout1_29_8: std_logic; - signal mdout1_28_8: std_logic; - signal mdout1_27_8: std_logic; - signal mdout1_26_8: std_logic; - signal mdout1_25_8: std_logic; - signal mdout1_24_8: std_logic; - signal mdout1_23_8: std_logic; - signal mdout1_22_8: std_logic; - signal mdout1_21_8: std_logic; - signal mdout1_20_8: std_logic; - signal mdout1_19_8: std_logic; - signal mdout1_18_8: std_logic; - signal mdout1_17_8: std_logic; - signal mdout1_16_8: std_logic; - signal mdout1_15_8: std_logic; - signal mdout1_14_8: std_logic; - signal mdout1_13_8: std_logic; - signal mdout1_12_8: std_logic; - signal mdout1_11_8: std_logic; - signal mdout1_10_8: std_logic; - signal mdout1_9_8: std_logic; - signal mdout1_8_8: std_logic; - signal mdout1_7_8: std_logic; - signal mdout1_6_8: std_logic; - signal mdout1_5_8: std_logic; - signal mdout1_4_8: std_logic; - signal mdout1_3_8: std_logic; - signal mdout1_2_8: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal wcnt_sub_0: std_logic; - signal precin: std_logic; - signal wcnt_sub_1: std_logic; - signal wcnt_sub_2: std_logic; - signal co0_2: std_logic; - signal wcnt_sub_3: std_logic; - signal wcnt_sub_4: std_logic; - signal co1_2: std_logic; - signal wcnt_sub_5: std_logic; - signal wcnt_sub_6: std_logic; - signal co2_2: std_logic; - signal wcnt_sub_7: std_logic; - signal wcnt_sub_8: std_logic; - signal co3_2: std_logic; - signal wcnt_sub_9: std_logic; - signal wcnt_sub_10: std_logic; - signal co4_2: std_logic; - signal wcnt_sub_11: std_logic; - signal wcnt_sub_12: std_logic; - signal co5_2: std_logic; - signal wcnt_sub_13: std_logic; - signal wcnt_sub_14: std_logic; - signal co6_2: std_logic; - signal wcnt_sub_15: std_logic; - signal co7_2: std_logic; - signal wcnt_sub_msb: std_logic; - signal rcnt_sub_0: std_logic; - signal precin_1: std_logic; - signal rcnt_sub_1: std_logic; - signal rcnt_sub_2: std_logic; - signal co0_3: std_logic; - signal rcnt_sub_3: std_logic; - signal rcnt_sub_4: std_logic; - signal co1_3: std_logic; - signal rcnt_sub_5: std_logic; - signal rcnt_sub_6: std_logic; - signal co2_3: std_logic; - signal rcnt_sub_7: std_logic; - signal rcnt_sub_8: std_logic; - signal co3_3: std_logic; - signal rcnt_sub_9: std_logic; - signal rcnt_sub_10: std_logic; - signal co4_3: std_logic; - signal rcnt_sub_11: std_logic; - signal rcnt_sub_12: std_logic; - signal co5_3: std_logic; - signal rcnt_sub_13: std_logic; - signal rcnt_sub_14: std_logic; - signal co6_3: std_logic; - signal rcnt_sub_15: std_logic; - signal rcnt_sub_16: std_logic; - signal co7_3: std_logic; - signal rcnt_sub_msb: std_logic; - signal co8_1d: std_logic; - signal co8_1: std_logic; - signal wfill_sub_0: std_logic; - signal precin_2: std_logic; - signal wptr_0: std_logic; - signal wfill_sub_1: std_logic; - signal wfill_sub_2: std_logic; - signal co0_4: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wfill_sub_3: std_logic; - signal wfill_sub_4: std_logic; - signal co1_4: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wfill_sub_5: std_logic; - signal wfill_sub_6: std_logic; - signal co2_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wfill_sub_7: std_logic; - signal wfill_sub_8: std_logic; - signal co3_4: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wfill_sub_9: std_logic; - signal wfill_sub_10: std_logic; - signal co4_4: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wfill_sub_11: std_logic; - signal wfill_sub_12: std_logic; - signal co5_4: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wfill_sub_13: std_logic; - signal wfill_sub_14: std_logic; - signal co6_4: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wfill_sub_15: std_logic; - signal co7_4: std_logic; - signal wfill_sub_msb: std_logic; - signal rfill_sub_0: std_logic; - signal precin_3: std_logic; - signal rptr_0: std_logic; - signal scuba_vhi: std_logic; - signal rfill_sub_1: std_logic; - signal rfill_sub_2: std_logic; - signal co0_5: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rfill_sub_3: std_logic; - signal rfill_sub_4: std_logic; - signal co1_5: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rfill_sub_5: std_logic; - signal rfill_sub_6: std_logic; - signal co2_5: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rfill_sub_7: std_logic; - signal rfill_sub_8: std_logic; - signal co3_5: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rfill_sub_9: std_logic; - signal rfill_sub_10: std_logic; - signal co4_5: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rfill_sub_11: std_logic; - signal rfill_sub_12: std_logic; - signal co5_5: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rfill_sub_13: std_logic; - signal rfill_sub_14: std_logic; - signal co6_5: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal rfill_sub_15: std_logic; - signal rfill_sub_16: std_logic; - signal co7_5: std_logic; - signal rptr_15: std_logic; - signal rfill_sub_msb: std_logic; - signal co8_2d: std_logic; - signal co8_2: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_6: std_logic; - signal wcount_r1: std_logic; - signal wcount_r2: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_6: std_logic; - signal wcount_r3: std_logic; - signal wcount_r4: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_6: std_logic; - signal wcount_r5: std_logic; - signal wcount_r6: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_6: std_logic; - signal wcount_r7: std_logic; - signal wcount_r8: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_6: std_logic; - signal wcount_r9: std_logic; - signal wcount_r10: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_6: std_logic; - signal wcount_r11: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_6: std_logic; - signal wcount_r13: std_logic; - signal wcount_r14: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_6: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w1: std_logic; - signal rcount_w2: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_7: std_logic; - signal rcount_w3: std_logic; - signal rcount_w4: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_7: std_logic; - signal rcount_w5: std_logic; - signal rcount_w6: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_7: std_logic; - signal rcount_w7: std_logic; - signal rcount_w8: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_7: std_logic; - signal rcount_w9: std_logic; - signal rcount_w10: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_7: std_logic; - signal rcount_w11: std_logic; - signal rcount_w12: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_7: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w14: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_7: std_logic; - signal rcount_w15: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_14: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal rden_i: std_logic; - signal cmp_ci_2: std_logic; - signal rcnt_reg_0: std_logic; - signal rcnt_reg_1: std_logic; - signal co0_8: std_logic; - signal rcnt_reg_2: std_logic; - signal rcnt_reg_3: std_logic; - signal co1_8: std_logic; - signal rcnt_reg_4: std_logic; - signal rcnt_reg_5: std_logic; - signal co2_8: std_logic; - signal rcnt_reg_6: std_logic; - signal rcnt_reg_7: std_logic; - signal co3_8: std_logic; - signal rcnt_reg_8: std_logic; - signal rcnt_reg_9: std_logic; - signal co4_8: std_logic; - signal rcnt_reg_10: std_logic; - signal rcnt_reg_11: std_logic; - signal co5_8: std_logic; - signal rcnt_reg_12: std_logic; - signal rcnt_reg_13: std_logic; - signal co6_8: std_logic; - signal rcnt_reg_14: std_logic; - signal rcnt_reg_15: std_logic; - signal co7_7: std_logic; - signal ae_clrsig: std_logic; - signal ae_setsig: std_logic; - signal ae_d: std_logic; - signal ae_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_3: std_logic; - signal wcnt_reg_0: std_logic; - signal wcnt_reg_1: std_logic; - signal co0_9: std_logic; - signal wcnt_reg_2: std_logic; - signal wcnt_reg_3: std_logic; - signal co1_9: std_logic; - signal wcnt_reg_4: std_logic; - signal wcnt_reg_5: std_logic; - signal co2_9: std_logic; - signal wcnt_reg_6: std_logic; - signal wcnt_reg_7: std_logic; - signal co3_9: std_logic; - signal wcnt_reg_8: std_logic; - signal wcnt_reg_9: std_logic; - signal co4_9: std_logic; - signal wcnt_reg_10: std_logic; - signal wcnt_reg_11: std_logic; - signal co5_9: std_logic; - signal wcnt_reg_12: std_logic; - signal wcnt_reg_13: std_logic; - signal co6_9: std_logic; - signal wcnt_reg_14: std_logic; - signal wcnt_reg_15: std_logic; - signal af_d: std_logic; - signal af_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FSUB2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; BI: in std_logic; BOUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX321 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; D4: in std_logic; D5: in std_logic; - D6: in std_logic; D7: in std_logic; D8: in std_logic; - D9: in std_logic; D10: in std_logic; D11: in std_logic; - D12: in std_logic; D13: in std_logic; D14: in std_logic; - D15: in std_logic; D16: in std_logic; D17: in std_logic; - D18: in std_logic; D19: in std_logic; D20: in std_logic; - D21: in std_logic; D22: in std_logic; D23: in std_logic; - D24: in std_logic; D25: in std_logic; D26: in std_logic; - D27: in std_logic; D28: in std_logic; D29: in std_logic; - D30: in std_logic; D31: in std_logic; SD1: in std_logic; - SD2: in std_logic; SD3: in std_logic; SD4: in std_logic; - SD5: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_180 : label is "0x8000"; - attribute initval of LUT4_179 : label is "0x8000"; - attribute initval of LUT4_178 : label is "0x8000"; - attribute initval of LUT4_177 : label is "0x8000"; - attribute initval of LUT4_176 : label is "0x8000"; - attribute initval of LUT4_175 : label is "0x8000"; - attribute initval of LUT4_174 : label is "0x8000"; - attribute initval of LUT4_173 : label is "0x8000"; - attribute initval of LUT4_172 : label is "0x8000"; - attribute initval of LUT4_171 : label is "0x8000"; - attribute initval of LUT4_170 : label is "0x8000"; - attribute initval of LUT4_169 : label is "0x8000"; - attribute initval of LUT4_168 : label is "0x8000"; - attribute initval of LUT4_167 : label is "0x8000"; - attribute initval of LUT4_166 : label is "0x8000"; - attribute initval of LUT4_165 : label is "0x8000"; - attribute initval of LUT4_164 : label is "0x8000"; - attribute initval of LUT4_163 : label is "0x8000"; - attribute initval of LUT4_162 : label is "0x8000"; - attribute initval of LUT4_161 : label is "0x8000"; - attribute initval of LUT4_160 : label is "0x8000"; - attribute initval of LUT4_159 : label is "0x8000"; - attribute initval of LUT4_158 : label is "0x8000"; - attribute initval of LUT4_157 : label is "0x8000"; - attribute initval of LUT4_156 : label is "0x8000"; - attribute initval of LUT4_155 : label is "0x8000"; - attribute initval of LUT4_154 : label is "0x8000"; - attribute initval of LUT4_153 : label is "0x8000"; - attribute initval of LUT4_152 : label is "0x8000"; - attribute initval of LUT4_151 : label is "0x8000"; - attribute initval of LUT4_150 : label is "0x8000"; - attribute initval of LUT4_149 : label is "0x8000"; - attribute initval of LUT4_148 : label is "0x8000"; - attribute initval of LUT4_147 : label is "0x8000"; - attribute initval of LUT4_146 : label is "0x8000"; - attribute initval of LUT4_145 : label is "0x8000"; - attribute initval of LUT4_144 : label is "0x8000"; - attribute initval of LUT4_143 : label is "0x8000"; - attribute initval of LUT4_142 : label is "0x8000"; - attribute initval of LUT4_141 : label is "0x8000"; - attribute initval of LUT4_140 : label is "0x8000"; - attribute initval of LUT4_139 : label is "0x8000"; - attribute initval of LUT4_138 : label is "0x8000"; - attribute initval of LUT4_137 : label is "0x8000"; - attribute initval of LUT4_136 : label is "0x8000"; - attribute initval of LUT4_135 : label is "0x8000"; - attribute initval of LUT4_134 : label is "0x8000"; - attribute initval of LUT4_133 : label is "0x8000"; - attribute initval of LUT4_132 : label is "0x8000"; - attribute initval of LUT4_131 : label is "0x8000"; - attribute initval of LUT4_130 : label is "0x8000"; - attribute initval of LUT4_129 : label is "0x8000"; - attribute initval of LUT4_128 : label is "0x8000"; - attribute initval of LUT4_127 : label is "0x8000"; - attribute initval of LUT4_126 : label is "0x8000"; - attribute initval of LUT4_125 : label is "0x8000"; - attribute initval of LUT4_124 : label is "0x8000"; - attribute initval of LUT4_123 : label is "0x8000"; - attribute initval of LUT4_122 : label is "0x8000"; - attribute initval of LUT4_121 : label is "0x8000"; - attribute initval of LUT4_120 : label is "0x8000"; - attribute initval of LUT4_119 : label is "0x8000"; - attribute initval of LUT4_118 : label is "0x8000"; - attribute initval of LUT4_117 : label is "0x8000"; - attribute initval of LUT4_116 : label is "0x8000"; - attribute initval of LUT4_115 : label is "0x8000"; - attribute initval of LUT4_114 : label is "0x8000"; - attribute initval of LUT4_113 : label is "0x8000"; - attribute initval of LUT4_112 : label is "0x8000"; - attribute initval of LUT4_111 : label is "0x8000"; - attribute initval of LUT4_110 : label is "0x8000"; - attribute initval of LUT4_109 : label is "0x8000"; - attribute initval of LUT4_108 : label is "0x8000"; - attribute initval of LUT4_107 : label is "0x8000"; - attribute initval of LUT4_106 : label is "0x8000"; - attribute initval of LUT4_105 : label is "0x8000"; - attribute initval of LUT4_104 : label is "0x8000"; - attribute initval of LUT4_103 : label is "0x8000"; - attribute initval of LUT4_102 : label is "0x8000"; - attribute initval of LUT4_101 : label is "0x8000"; - attribute initval of LUT4_100 : label is "0x8000"; - attribute initval of LUT4_99 : label is "0x8000"; - attribute initval of LUT4_98 : label is "0x8000"; - attribute initval of LUT4_97 : label is "0x8000"; - attribute initval of LUT4_96 : label is "0x8000"; - attribute initval of LUT4_95 : label is "0x8000"; - attribute initval of LUT4_94 : label is "0x8000"; - attribute initval of LUT4_93 : label is "0x8000"; - attribute initval of LUT4_92 : label is "0x8000"; - attribute initval of LUT4_91 : label is "0x8000"; - attribute initval of LUT4_90 : label is "0x8000"; - attribute initval of LUT4_89 : label is "0x8000"; - attribute initval of LUT4_88 : label is "0x8000"; - attribute initval of LUT4_87 : label is "0x8000"; - attribute initval of LUT4_86 : label is "0x8000"; - attribute initval of LUT4_85 : label is "0x8000"; - attribute initval of LUT4_84 : label is "0x8000"; - attribute initval of LUT4_83 : label is "0x8000"; - attribute initval of LUT4_82 : label is "0x8000"; - attribute initval of LUT4_81 : label is "0x8000"; - attribute initval of LUT4_80 : label is "0x8000"; - attribute initval of LUT4_79 : label is "0x8000"; - attribute initval of LUT4_78 : label is "0x8000"; - attribute initval of LUT4_77 : label is "0x8000"; - attribute initval of LUT4_76 : label is "0x8000"; - attribute initval of LUT4_75 : label is "0x8000"; - attribute initval of LUT4_74 : label is "0x8000"; - attribute initval of LUT4_73 : label is "0x8000"; - attribute initval of LUT4_72 : label is "0x8000"; - attribute initval of LUT4_71 : label is "0x8000"; - attribute initval of LUT4_70 : label is "0x8000"; - attribute initval of LUT4_69 : label is "0x8000"; - attribute initval of LUT4_68 : label is "0x8000"; - attribute initval of LUT4_67 : label is "0x8000"; - attribute initval of LUT4_66 : label is "0x8000"; - attribute initval of LUT4_65 : label is "0x8000"; - attribute initval of LUT4_64 : label is "0x8000"; - attribute initval of LUT4_63 : label is "0x8000"; - attribute initval of LUT4_62 : label is "0x8000"; - attribute initval of LUT4_61 : label is "0x8000"; - attribute initval of LUT4_60 : label is "0x8000"; - attribute initval of LUT4_59 : label is "0x8000"; - attribute initval of LUT4_58 : label is "0x8000"; - attribute initval of LUT4_57 : label is "0x8000"; - attribute initval of LUT4_56 : label is "0x8000"; - attribute initval of LUT4_55 : label is "0x8000"; - attribute initval of LUT4_54 : label is "0x8000"; - attribute initval of LUT4_53 : label is "0x8000"; - attribute initval of LUT4_52 : label is "0x6996"; - attribute initval of LUT4_51 : label is "0x6996"; - attribute initval of LUT4_50 : label is "0x6996"; - attribute initval of LUT4_49 : label is "0x6996"; - attribute initval of LUT4_48 : label is "0x6996"; - attribute initval of LUT4_47 : label is "0x6996"; - attribute initval of LUT4_46 : label is "0x6996"; - attribute initval of LUT4_45 : label is "0x6996"; - attribute initval of LUT4_44 : label is "0x6996"; - attribute initval of LUT4_43 : label is "0x6996"; - attribute initval of LUT4_42 : label is "0x6996"; - attribute initval of LUT4_41 : label is "0x6996"; - attribute initval of LUT4_40 : label is "0x6996"; - attribute initval of LUT4_39 : label is "0x6996"; - attribute initval of LUT4_38 : label is "0x6996"; - attribute initval of LUT4_37 : label is "0x6996"; - attribute initval of LUT4_36 : label is "0x6996"; - attribute initval of LUT4_35 : label is "0x6996"; - attribute initval of LUT4_34 : label is "0x6996"; - attribute initval of LUT4_33 : label is "0x6996"; - attribute initval of LUT4_32 : label is "0x6996"; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_31 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_0_0_31 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_0_0_31 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_31 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_31 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_31 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_31 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_31 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_31 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_0_31 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_1_0_30 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_30 : label is ""; - attribute CSDECODE_B of pdp_ram_1_0_30 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_0_30 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_0_30 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_0_30 : label is "NORMAL"; - attribute GSR of pdp_ram_1_0_30 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_0_30 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_0_30 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_0_30 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_0_30 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_1_0_30 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_2_0_29 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_29 : label is ""; - attribute CSDECODE_B of pdp_ram_2_0_29 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_2_0_29 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_2_0_29 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_0_29 : label is "NORMAL"; - attribute GSR of pdp_ram_2_0_29 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_0_29 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_0_29 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_0_29 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_0_29 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_2_0_29 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_3_0_28 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_28 : label is ""; - attribute CSDECODE_B of pdp_ram_3_0_28 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_3_0_28 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_3_0_28 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_0_28 : label is "NORMAL"; - attribute GSR of pdp_ram_3_0_28 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_0_28 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_0_28 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_0_28 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_0_28 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_3_0_28 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_4_0_27 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_4_0_27 : label is ""; - attribute CSDECODE_B of pdp_ram_4_0_27 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_4_0_27 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_4_0_27 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_4_0_27 : label is "NORMAL"; - attribute GSR of pdp_ram_4_0_27 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_4_0_27 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_4_0_27 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_4_0_27 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_4_0_27 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_4_0_27 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_5_0_26 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_5_0_26 : label is ""; - attribute CSDECODE_B of pdp_ram_5_0_26 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_5_0_26 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_5_0_26 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_5_0_26 : label is "NORMAL"; - attribute GSR of pdp_ram_5_0_26 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_5_0_26 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_5_0_26 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_5_0_26 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_5_0_26 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_5_0_26 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_6_0_25 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_6_0_25 : label is ""; - attribute CSDECODE_B of pdp_ram_6_0_25 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_6_0_25 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_6_0_25 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_6_0_25 : label is "NORMAL"; - attribute GSR of pdp_ram_6_0_25 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_6_0_25 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_6_0_25 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_6_0_25 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_6_0_25 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_6_0_25 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_7_0_24 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_7_0_24 : label is ""; - attribute CSDECODE_B of pdp_ram_7_0_24 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_7_0_24 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_7_0_24 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_7_0_24 : label is "NORMAL"; - attribute GSR of pdp_ram_7_0_24 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_7_0_24 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_7_0_24 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_7_0_24 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_7_0_24 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_7_0_24 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_8_0_23 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_8_0_23 : label is ""; - attribute CSDECODE_B of pdp_ram_8_0_23 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_8_0_23 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_8_0_23 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_8_0_23 : label is "NORMAL"; - attribute GSR of pdp_ram_8_0_23 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_8_0_23 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_8_0_23 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_8_0_23 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_8_0_23 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_8_0_23 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_9_0_22 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_9_0_22 : label is ""; - attribute CSDECODE_B of pdp_ram_9_0_22 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_9_0_22 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_9_0_22 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_9_0_22 : label is "NORMAL"; - attribute GSR of pdp_ram_9_0_22 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_9_0_22 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_9_0_22 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_9_0_22 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_9_0_22 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_9_0_22 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_10_0_21 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_10_0_21 : label is ""; - attribute CSDECODE_B of pdp_ram_10_0_21 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_10_0_21 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_10_0_21 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_10_0_21 : label is "NORMAL"; - attribute GSR of pdp_ram_10_0_21 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_10_0_21 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_10_0_21 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_10_0_21 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_10_0_21 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_10_0_21 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_11_0_20 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_11_0_20 : label is ""; - attribute CSDECODE_B of pdp_ram_11_0_20 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_11_0_20 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_11_0_20 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_11_0_20 : label is "NORMAL"; - attribute GSR of pdp_ram_11_0_20 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_11_0_20 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_11_0_20 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_11_0_20 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_11_0_20 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_11_0_20 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_12_0_19 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_12_0_19 : label is ""; - attribute CSDECODE_B of pdp_ram_12_0_19 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_12_0_19 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_12_0_19 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_12_0_19 : label is "NORMAL"; - attribute GSR of pdp_ram_12_0_19 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_12_0_19 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_12_0_19 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_12_0_19 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_12_0_19 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_12_0_19 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_13_0_18 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_13_0_18 : label is ""; - attribute CSDECODE_B of pdp_ram_13_0_18 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_13_0_18 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_13_0_18 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_13_0_18 : label is "NORMAL"; - attribute GSR of pdp_ram_13_0_18 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_13_0_18 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_13_0_18 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_13_0_18 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_13_0_18 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_13_0_18 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_14_0_17 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_14_0_17 : label is ""; - attribute CSDECODE_B of pdp_ram_14_0_17 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_14_0_17 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_14_0_17 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_14_0_17 : label is "NORMAL"; - attribute GSR of pdp_ram_14_0_17 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_14_0_17 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_14_0_17 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_14_0_17 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_14_0_17 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_14_0_17 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_15_0_16 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_15_0_16 : label is ""; - attribute CSDECODE_B of pdp_ram_15_0_16 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_15_0_16 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_15_0_16 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_15_0_16 : label is "NORMAL"; - attribute GSR of pdp_ram_15_0_16 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_15_0_16 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_15_0_16 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_15_0_16 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_15_0_16 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_15_0_16 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_16_0_15 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_16_0_15 : label is ""; - attribute CSDECODE_B of pdp_ram_16_0_15 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_16_0_15 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_16_0_15 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_16_0_15 : label is "NORMAL"; - attribute GSR of pdp_ram_16_0_15 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_16_0_15 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_16_0_15 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_16_0_15 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_16_0_15 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_16_0_15 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_17_0_14 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_17_0_14 : label is ""; - attribute CSDECODE_B of pdp_ram_17_0_14 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_17_0_14 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_17_0_14 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_17_0_14 : label is "NORMAL"; - attribute GSR of pdp_ram_17_0_14 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_17_0_14 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_17_0_14 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_17_0_14 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_17_0_14 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_17_0_14 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_18_0_13 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_18_0_13 : label is ""; - attribute CSDECODE_B of pdp_ram_18_0_13 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_18_0_13 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_18_0_13 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_18_0_13 : label is "NORMAL"; - attribute GSR of pdp_ram_18_0_13 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_18_0_13 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_18_0_13 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_18_0_13 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_18_0_13 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_18_0_13 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_19_0_12 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_19_0_12 : label is ""; - attribute CSDECODE_B of pdp_ram_19_0_12 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_19_0_12 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_19_0_12 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_19_0_12 : label is "NORMAL"; - attribute GSR of pdp_ram_19_0_12 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_19_0_12 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_19_0_12 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_19_0_12 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_19_0_12 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_19_0_12 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_20_0_11 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_20_0_11 : label is ""; - attribute CSDECODE_B of pdp_ram_20_0_11 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_20_0_11 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_20_0_11 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_20_0_11 : label is "NORMAL"; - attribute GSR of pdp_ram_20_0_11 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_20_0_11 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_20_0_11 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_20_0_11 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_20_0_11 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_20_0_11 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_21_0_10 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_21_0_10 : label is ""; - attribute CSDECODE_B of pdp_ram_21_0_10 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_21_0_10 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_21_0_10 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_21_0_10 : label is "NORMAL"; - attribute GSR of pdp_ram_21_0_10 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_21_0_10 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_21_0_10 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_21_0_10 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_21_0_10 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_21_0_10 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_22_0_9 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_22_0_9 : label is ""; - attribute CSDECODE_B of pdp_ram_22_0_9 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_22_0_9 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_22_0_9 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_22_0_9 : label is "NORMAL"; - attribute GSR of pdp_ram_22_0_9 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_22_0_9 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_22_0_9 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_22_0_9 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_22_0_9 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_22_0_9 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_23_0_8 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_23_0_8 : label is ""; - attribute CSDECODE_B of pdp_ram_23_0_8 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_23_0_8 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_23_0_8 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_23_0_8 : label is "NORMAL"; - attribute GSR of pdp_ram_23_0_8 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_23_0_8 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_23_0_8 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_23_0_8 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_23_0_8 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_23_0_8 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_24_0_7 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_24_0_7 : label is ""; - attribute CSDECODE_B of pdp_ram_24_0_7 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_24_0_7 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_24_0_7 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_24_0_7 : label is "NORMAL"; - attribute GSR of pdp_ram_24_0_7 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_24_0_7 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_24_0_7 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_24_0_7 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_24_0_7 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_24_0_7 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_25_0_6 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_25_0_6 : label is ""; - attribute CSDECODE_B of pdp_ram_25_0_6 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_25_0_6 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_25_0_6 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_25_0_6 : label is "NORMAL"; - attribute GSR of pdp_ram_25_0_6 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_25_0_6 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_25_0_6 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_25_0_6 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_25_0_6 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_25_0_6 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_26_0_5 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_26_0_5 : label is ""; - attribute CSDECODE_B of pdp_ram_26_0_5 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_26_0_5 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_26_0_5 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_26_0_5 : label is "NORMAL"; - attribute GSR of pdp_ram_26_0_5 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_26_0_5 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_26_0_5 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_26_0_5 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_26_0_5 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_26_0_5 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_27_0_4 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_27_0_4 : label is ""; - attribute CSDECODE_B of pdp_ram_27_0_4 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_27_0_4 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_27_0_4 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_27_0_4 : label is "NORMAL"; - attribute GSR of pdp_ram_27_0_4 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_27_0_4 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_27_0_4 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_27_0_4 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_27_0_4 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_27_0_4 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_28_0_3 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_28_0_3 : label is ""; - attribute CSDECODE_B of pdp_ram_28_0_3 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_28_0_3 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_28_0_3 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_28_0_3 : label is "NORMAL"; - attribute GSR of pdp_ram_28_0_3 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_28_0_3 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_28_0_3 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_28_0_3 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_28_0_3 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_28_0_3 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_29_0_2 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_29_0_2 : label is ""; - attribute CSDECODE_B of pdp_ram_29_0_2 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_29_0_2 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_29_0_2 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_29_0_2 : label is "NORMAL"; - attribute GSR of pdp_ram_29_0_2 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_29_0_2 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_29_0_2 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_29_0_2 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_29_0_2 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_29_0_2 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_30_0_1 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_30_0_1 : label is ""; - attribute CSDECODE_B of pdp_ram_30_0_1 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_30_0_1 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_30_0_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_30_0_1 : label is "NORMAL"; - attribute GSR of pdp_ram_30_0_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_30_0_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_30_0_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_30_0_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_30_0_1 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_30_0_1 : label is "18"; - attribute MEM_LPC_FILE of pdp_ram_31_0_0 : label is "fifo_32kx16x8_mb2.lpc"; - attribute MEM_INIT_FILE of pdp_ram_31_0_0 : label is ""; - attribute CSDECODE_B of pdp_ram_31_0_0 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_31_0_0 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_31_0_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_31_0_0 : label is "NORMAL"; - attribute GSR of pdp_ram_31_0_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_31_0_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_31_0_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_31_0_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_31_0_0 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_31_0_0 : label is "18"; - attribute GSR of FF_239 : label is "ENABLED"; - attribute GSR of FF_238 : label is "ENABLED"; - attribute GSR of FF_237 : label is "ENABLED"; - attribute GSR of FF_236 : label is "ENABLED"; - attribute GSR of FF_235 : label is "ENABLED"; - attribute GSR of FF_234 : label is "ENABLED"; - attribute GSR of FF_233 : label is "ENABLED"; - attribute GSR of FF_232 : label is "ENABLED"; - attribute GSR of FF_231 : label is "ENABLED"; - attribute GSR of FF_230 : label is "ENABLED"; - attribute GSR of FF_229 : label is "ENABLED"; - attribute GSR of FF_228 : label is "ENABLED"; - attribute GSR of FF_227 : label is "ENABLED"; - attribute GSR of FF_226 : label is "ENABLED"; - attribute GSR of FF_225 : label is "ENABLED"; - attribute GSR of FF_224 : label is "ENABLED"; - attribute GSR of FF_223 : label is "ENABLED"; - attribute GSR of FF_222 : label is "ENABLED"; - attribute GSR of FF_221 : label is "ENABLED"; - attribute GSR of FF_220 : label is "ENABLED"; - attribute GSR of FF_219 : label is "ENABLED"; - attribute GSR of FF_218 : label is "ENABLED"; - attribute GSR of FF_217 : label is "ENABLED"; - attribute GSR of FF_216 : label is "ENABLED"; - attribute GSR of FF_215 : label is "ENABLED"; - attribute GSR of FF_214 : label is "ENABLED"; - attribute GSR of FF_213 : label is "ENABLED"; - attribute GSR of FF_212 : label is "ENABLED"; - attribute GSR of FF_211 : label is "ENABLED"; - attribute GSR of FF_210 : label is "ENABLED"; - attribute GSR of FF_209 : label is "ENABLED"; - attribute GSR of FF_208 : label is "ENABLED"; - attribute GSR of FF_207 : label is "ENABLED"; - attribute GSR of FF_206 : label is "ENABLED"; - attribute GSR of FF_205 : label is "ENABLED"; - attribute GSR of FF_204 : label is "ENABLED"; - attribute GSR of FF_203 : label is "ENABLED"; - attribute GSR of FF_202 : label is "ENABLED"; - attribute GSR of FF_201 : label is "ENABLED"; - attribute GSR of FF_200 : label is "ENABLED"; - attribute GSR of FF_199 : label is "ENABLED"; - attribute GSR of FF_198 : label is "ENABLED"; - attribute GSR of FF_197 : label is "ENABLED"; - attribute GSR of FF_196 : label is "ENABLED"; - attribute GSR of FF_195 : label is "ENABLED"; - attribute GSR of FF_194 : label is "ENABLED"; - attribute GSR of FF_193 : label is "ENABLED"; - attribute GSR of FF_192 : label is "ENABLED"; - attribute GSR of FF_191 : label is "ENABLED"; - attribute GSR of FF_190 : label is "ENABLED"; - attribute GSR of FF_189 : label is "ENABLED"; - attribute GSR of FF_188 : label is "ENABLED"; - attribute GSR of FF_187 : label is "ENABLED"; - attribute GSR of FF_186 : label is "ENABLED"; - attribute GSR of FF_185 : label is "ENABLED"; - attribute GSR of FF_184 : label is "ENABLED"; - attribute GSR of FF_183 : label is "ENABLED"; - attribute GSR of FF_182 : label is "ENABLED"; - attribute GSR of FF_181 : label is "ENABLED"; - attribute GSR of FF_180 : label is "ENABLED"; - attribute GSR of FF_179 : label is "ENABLED"; - attribute GSR of FF_178 : label is "ENABLED"; - attribute GSR of FF_177 : label is "ENABLED"; - attribute GSR of FF_176 : label is "ENABLED"; - attribute GSR of FF_175 : label is "ENABLED"; - attribute GSR of FF_174 : label is "ENABLED"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - attribute NGD_DRC_MASK : integer; - attribute NGD_DRC_MASK of Structure : architecture is 1; - -begin - -- component instantiation statements - AND2_t39: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_12: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t38: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_11: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t37: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t36: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t35: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t34: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t33: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t32: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t31: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t30: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t29: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t28: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t27: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t26: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t25: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t24: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t23: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t22: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t21: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t20: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t19: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t18: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t17: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t16: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t15: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t14: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t13: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t12: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t11: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t10: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t9: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t8: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t7: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t6: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - INV_10: INV - port map (A=>wptr_10, Z=>wptr_10_inv); - - INV_9: INV - port map (A=>wptr_11, Z=>wptr_11_inv); - - INV_8: INV - port map (A=>wptr_12, Z=>wptr_12_inv); - - INV_7: INV - port map (A=>wptr_13, Z=>wptr_13_inv); - - INV_6: INV - port map (A=>wptr_14, Z=>wptr_14_inv); - - LUT4_180: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet); - - LUT4_179: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec0_p00); - - INV_5: INV - port map (A=>rptr_11, Z=>rptr_11_inv); - - INV_4: INV - port map (A=>rptr_12, Z=>rptr_12_inv); - - INV_3: INV - port map (A=>rptr_13, Z=>rptr_13_inv); - - INV_2: INV - port map (A=>rptr_14, Z=>rptr_14_inv); - - INV_1: INV - port map (A=>rptr_15, Z=>rptr_15_inv); - - LUT4_178: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_1); - - LUT4_177: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_1, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec1_r10); - - LUT4_176: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_2); - - LUT4_175: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_2, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec2_p01); - - LUT4_174: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_3); - - LUT4_173: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_3, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec3_r11); - - LUT4_172: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_4); - - LUT4_171: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_4, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec4_p02); - - LUT4_170: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_5); - - LUT4_169: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_5, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec5_r12); - - LUT4_168: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_6); - - LUT4_167: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_6, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec6_p03); - - LUT4_166: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_7); - - LUT4_165: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_7, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec7_r13); - - LUT4_164: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_8); - - LUT4_163: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_8, AD2=>wptr_14_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec8_p04); - - LUT4_162: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_9); - - LUT4_161: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_9, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec9_r14); - - LUT4_160: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_10); - - LUT4_159: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_10, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec10_p05); - - LUT4_158: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_11); - - LUT4_157: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_11, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec11_r15); - - LUT4_156: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_12); - - LUT4_155: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_12, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec12_p06); - - LUT4_154: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_13); - - LUT4_153: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_13, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec13_r16); - - LUT4_152: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_14); - - LUT4_151: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_14, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec14_p07); - - LUT4_150: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_15); - - LUT4_149: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_15, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec15_r17); - - LUT4_148: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_16); - - LUT4_147: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_16, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec16_p08); - - LUT4_146: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_17); - - LUT4_145: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_17, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec17_r18); - - LUT4_144: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_18); - - LUT4_143: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_18, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec18_p09); - - LUT4_142: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_19); - - LUT4_141: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_19, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec19_r19); - - LUT4_140: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_20); - - LUT4_139: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_20, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec20_p010); - - LUT4_138: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_21); - - LUT4_137: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_21, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec21_r110); - - LUT4_136: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_22); - - LUT4_135: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_22, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec22_p011); - - LUT4_134: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_23); - - LUT4_133: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_23, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec23_r111); - - LUT4_132: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_24); - - LUT4_131: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_24, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec24_p012); - - LUT4_130: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_25); - - LUT4_129: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_25, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec25_r112); - - LUT4_128: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_26); - - LUT4_127: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_26, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec26_p013); - - LUT4_126: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_27); - - LUT4_125: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_27, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec27_r113); - - LUT4_124: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_28); - - LUT4_123: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_28, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec28_p014); - - LUT4_122: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_29); - - LUT4_121: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_29, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec29_r114); - - LUT4_120: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, AD0=>wptr_13, - DO0=>func_and_inet_30); - - LUT4_119: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_30, AD2=>wptr_14_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec30_p015); - - LUT4_118: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_31); - - LUT4_117: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_31, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec31_r115); - - LUT4_116: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_32); - - LUT4_115: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_32, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec32_p016); - - LUT4_114: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_33); - - LUT4_113: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_33, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec33_r116); - - LUT4_112: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_34); - - LUT4_111: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_34, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec34_p017); - - LUT4_110: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_35); - - LUT4_109: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_35, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec35_r117); - - LUT4_108: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_36); - - LUT4_107: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_36, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec36_p018); - - LUT4_106: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_37); - - LUT4_105: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_37, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec37_r118); - - LUT4_104: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13_inv, DO0=>func_and_inet_38); - - LUT4_103: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_38, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec38_p019); - - LUT4_102: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_39); - - LUT4_101: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_39, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec39_r119); - - LUT4_100: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_40); - - LUT4_99: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_40, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec40_p020); - - LUT4_98: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_41); - - LUT4_97: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_41, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec41_r120); - - LUT4_96: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_42); - - LUT4_95: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_42, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec42_p021); - - LUT4_94: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_43); - - LUT4_93: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_43, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec43_r121); - - LUT4_92: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_44); - - LUT4_91: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_44, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec44_p022); - - LUT4_90: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_45); - - LUT4_89: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_45, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec45_r122); - - LUT4_88: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13_inv, DO0=>func_and_inet_46); - - LUT4_87: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_46, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec46_p023); - - LUT4_86: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_47); - - LUT4_85: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_47, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec47_r123); - - LUT4_84: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_48); - - LUT4_83: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_48, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec48_p024); - - LUT4_82: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_49); - - LUT4_81: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_49, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec49_r124); - - LUT4_80: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_50); - - LUT4_79: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_50, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec50_p025); - - LUT4_78: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_51); - - LUT4_77: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_51, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec51_r125); - - LUT4_76: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_52); - - LUT4_75: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_52, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec52_p026); - - LUT4_74: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_53); - - LUT4_73: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_53, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec53_r126); - - LUT4_72: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12_inv, - AD0=>wptr_13, DO0=>func_and_inet_54); - - LUT4_71: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_54, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec54_p027); - - LUT4_70: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_55); - - LUT4_69: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_55, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec55_r127); - - LUT4_68: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_56); - - LUT4_67: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_56, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec56_p028); - - LUT4_66: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_57); - - LUT4_65: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_57, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec57_r128); - - LUT4_64: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11_inv, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_58); - - LUT4_63: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_58, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec58_p029); - - LUT4_62: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_59); - - LUT4_61: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_59, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec59_r129); - - LUT4_60: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10_inv, AD2=>wptr_11, AD1=>wptr_12, - AD0=>wptr_13, DO0=>func_and_inet_60); - - LUT4_59: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_60, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec60_p030); - - LUT4_58: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_61); - - LUT4_57: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_61, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec61_r130); - - LUT4_56: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_10, AD2=>wptr_11, AD1=>wptr_12, AD0=>wptr_13, - DO0=>func_and_inet_62); - - LUT4_55: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_62, AD2=>wptr_14, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec62_p031); - - LUT4_54: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_63); - - LUT4_53: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_63, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec63_r131); - - LUT4_52: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, - DO0=>w_g2b_xor_cluster_0); - - LUT4_51: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, - DO0=>w_g2b_xor_cluster_1); - - LUT4_50: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, - DO0=>w_g2b_xor_cluster_2); - - LUT4_49: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_3); - - LUT4_48: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_47: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>scuba_vlo, DO0=>wcount_r13); - - LUT4_46: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_45: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10); - - LUT4_44: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r9); - - LUT4_43: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_42: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_41: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>wcount_r6); - - LUT4_40: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_39: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_38: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_37: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r23, DO0=>wcount_r3); - - LUT4_36: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_35: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r2); - - LUT4_34: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_33: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r1); - - LUT4_32: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r0); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_1); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_2); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_3); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - XOR2_t5: XOR2 - port map (A=>wcount_15, B=>r_gcount_w216, Z=>wcnt_sub_msb); - - XOR2_t4: XOR2 - port map (A=>w_gcount_r215, B=>rcount_16, Z=>rcnt_sub_msb); - - XOR2_t3: XOR2 - port map (A=>wptr_15, B=>r_gcount_w216, Z=>wfill_sub_msb); - - XOR2_t2: XOR2 - port map (A=>w_gcount_r215, B=>rptr_16, Z=>rfill_sub_msb); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - INV_0: INV - port map (A=>rcnt_reg_15, Z=>rcnt_reg_15_inv); - - AND2_t1: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15_inv, Z=>ae_clrsig); - - AND2_t0: AND2 - port map (A=>rcnt_reg_16, B=>rcnt_reg_15, Z=>ae_setsig); - - pdp_ram_0_0_31: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec0_p00, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec1_r10, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, - DOB1=>mdout1_0_1, DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, - DOB4=>mdout1_0_4, DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, - DOB7=>mdout1_0_7, DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_1_0_30: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec2_p01, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec3_r11, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, - DOB1=>mdout1_1_1, DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, - DOB4=>mdout1_1_4, DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, - DOB7=>mdout1_1_7, DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_2_0_29: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec4_p02, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec5_r12, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_2_0, - DOB1=>mdout1_2_1, DOB2=>mdout1_2_2, DOB3=>mdout1_2_3, - DOB4=>mdout1_2_4, DOB5=>mdout1_2_5, DOB6=>mdout1_2_6, - DOB7=>mdout1_2_7, DOB8=>mdout1_2_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_3_0_28: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec6_p03, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec7_r13, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_3_0, - DOB1=>mdout1_3_1, DOB2=>mdout1_3_2, DOB3=>mdout1_3_3, - DOB4=>mdout1_3_4, DOB5=>mdout1_3_5, DOB6=>mdout1_3_6, - DOB7=>mdout1_3_7, DOB8=>mdout1_3_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_4_0_27: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec8_p04, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec9_r14, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_4_0, - DOB1=>mdout1_4_1, DOB2=>mdout1_4_2, DOB3=>mdout1_4_3, - DOB4=>mdout1_4_4, DOB5=>mdout1_4_5, DOB6=>mdout1_4_6, - DOB7=>mdout1_4_7, DOB8=>mdout1_4_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_5_0_26: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec10_p05, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec11_r15, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_5_0, - DOB1=>mdout1_5_1, DOB2=>mdout1_5_2, DOB3=>mdout1_5_3, - DOB4=>mdout1_5_4, DOB5=>mdout1_5_5, DOB6=>mdout1_5_6, - DOB7=>mdout1_5_7, DOB8=>mdout1_5_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_6_0_25: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec12_p06, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec13_r16, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_6_0, - DOB1=>mdout1_6_1, DOB2=>mdout1_6_2, DOB3=>mdout1_6_3, - DOB4=>mdout1_6_4, DOB5=>mdout1_6_5, DOB6=>mdout1_6_6, - DOB7=>mdout1_6_7, DOB8=>mdout1_6_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_7_0_24: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec14_p07, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec15_r17, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_7_0, - DOB1=>mdout1_7_1, DOB2=>mdout1_7_2, DOB3=>mdout1_7_3, - DOB4=>mdout1_7_4, DOB5=>mdout1_7_5, DOB6=>mdout1_7_6, - DOB7=>mdout1_7_7, DOB8=>mdout1_7_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_8_0_23: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec16_p08, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec17_r18, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_8_0, - DOB1=>mdout1_8_1, DOB2=>mdout1_8_2, DOB3=>mdout1_8_3, - DOB4=>mdout1_8_4, DOB5=>mdout1_8_5, DOB6=>mdout1_8_6, - DOB7=>mdout1_8_7, DOB8=>mdout1_8_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_9_0_22: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec18_p09, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec19_r19, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_9_0, - DOB1=>mdout1_9_1, DOB2=>mdout1_9_2, DOB3=>mdout1_9_3, - DOB4=>mdout1_9_4, DOB5=>mdout1_9_5, DOB6=>mdout1_9_6, - DOB7=>mdout1_9_7, DOB8=>mdout1_9_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_10_0_21: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec20_p010, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec21_r110, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_10_0, - DOB1=>mdout1_10_1, DOB2=>mdout1_10_2, DOB3=>mdout1_10_3, - DOB4=>mdout1_10_4, DOB5=>mdout1_10_5, DOB6=>mdout1_10_6, - DOB7=>mdout1_10_7, DOB8=>mdout1_10_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_11_0_20: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec22_p011, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec23_r111, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_11_0, - DOB1=>mdout1_11_1, DOB2=>mdout1_11_2, DOB3=>mdout1_11_3, - DOB4=>mdout1_11_4, DOB5=>mdout1_11_5, DOB6=>mdout1_11_6, - DOB7=>mdout1_11_7, DOB8=>mdout1_11_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_12_0_19: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec24_p012, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec25_r112, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_12_0, - DOB1=>mdout1_12_1, DOB2=>mdout1_12_2, DOB3=>mdout1_12_3, - DOB4=>mdout1_12_4, DOB5=>mdout1_12_5, DOB6=>mdout1_12_6, - DOB7=>mdout1_12_7, DOB8=>mdout1_12_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_13_0_18: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec26_p013, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec27_r113, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_13_0, - DOB1=>mdout1_13_1, DOB2=>mdout1_13_2, DOB3=>mdout1_13_3, - DOB4=>mdout1_13_4, DOB5=>mdout1_13_5, DOB6=>mdout1_13_6, - DOB7=>mdout1_13_7, DOB8=>mdout1_13_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_14_0_17: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec28_p014, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec29_r114, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_14_0, - DOB1=>mdout1_14_1, DOB2=>mdout1_14_2, DOB3=>mdout1_14_3, - DOB4=>mdout1_14_4, DOB5=>mdout1_14_5, DOB6=>mdout1_14_6, - DOB7=>mdout1_14_7, DOB8=>mdout1_14_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_15_0_16: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec30_p015, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec31_r115, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_15_0, - DOB1=>mdout1_15_1, DOB2=>mdout1_15_2, DOB3=>mdout1_15_3, - DOB4=>mdout1_15_4, DOB5=>mdout1_15_5, DOB6=>mdout1_15_6, - DOB7=>mdout1_15_7, DOB8=>mdout1_15_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_16_0_15: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec32_p016, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec33_r116, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_16_0, - DOB1=>mdout1_16_1, DOB2=>mdout1_16_2, DOB3=>mdout1_16_3, - DOB4=>mdout1_16_4, DOB5=>mdout1_16_5, DOB6=>mdout1_16_6, - DOB7=>mdout1_16_7, DOB8=>mdout1_16_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_17_0_14: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec34_p017, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec35_r117, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_17_0, - DOB1=>mdout1_17_1, DOB2=>mdout1_17_2, DOB3=>mdout1_17_3, - DOB4=>mdout1_17_4, DOB5=>mdout1_17_5, DOB6=>mdout1_17_6, - DOB7=>mdout1_17_7, DOB8=>mdout1_17_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_18_0_13: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec36_p018, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec37_r118, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_18_0, - DOB1=>mdout1_18_1, DOB2=>mdout1_18_2, DOB3=>mdout1_18_3, - DOB4=>mdout1_18_4, DOB5=>mdout1_18_5, DOB6=>mdout1_18_6, - DOB7=>mdout1_18_7, DOB8=>mdout1_18_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_19_0_12: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec38_p019, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec39_r119, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_19_0, - DOB1=>mdout1_19_1, DOB2=>mdout1_19_2, DOB3=>mdout1_19_3, - DOB4=>mdout1_19_4, DOB5=>mdout1_19_5, DOB6=>mdout1_19_6, - DOB7=>mdout1_19_7, DOB8=>mdout1_19_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_20_0_11: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec40_p020, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec41_r120, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_20_0, - DOB1=>mdout1_20_1, DOB2=>mdout1_20_2, DOB3=>mdout1_20_3, - DOB4=>mdout1_20_4, DOB5=>mdout1_20_5, DOB6=>mdout1_20_6, - DOB7=>mdout1_20_7, DOB8=>mdout1_20_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_21_0_10: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec42_p021, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec43_r121, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_21_0, - DOB1=>mdout1_21_1, DOB2=>mdout1_21_2, DOB3=>mdout1_21_3, - DOB4=>mdout1_21_4, DOB5=>mdout1_21_5, DOB6=>mdout1_21_6, - DOB7=>mdout1_21_7, DOB8=>mdout1_21_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_22_0_9: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec44_p022, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec45_r122, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_22_0, - DOB1=>mdout1_22_1, DOB2=>mdout1_22_2, DOB3=>mdout1_22_3, - DOB4=>mdout1_22_4, DOB5=>mdout1_22_5, DOB6=>mdout1_22_6, - DOB7=>mdout1_22_7, DOB8=>mdout1_22_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_23_0_8: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec46_p023, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec47_r123, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_23_0, - DOB1=>mdout1_23_1, DOB2=>mdout1_23_2, DOB3=>mdout1_23_3, - DOB4=>mdout1_23_4, DOB5=>mdout1_23_5, DOB6=>mdout1_23_6, - DOB7=>mdout1_23_7, DOB8=>mdout1_23_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_24_0_7: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec48_p024, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec49_r124, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_24_0, - DOB1=>mdout1_24_1, DOB2=>mdout1_24_2, DOB3=>mdout1_24_3, - DOB4=>mdout1_24_4, DOB5=>mdout1_24_5, DOB6=>mdout1_24_6, - DOB7=>mdout1_24_7, DOB8=>mdout1_24_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_25_0_6: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec50_p025, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec51_r125, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_25_0, - DOB1=>mdout1_25_1, DOB2=>mdout1_25_2, DOB3=>mdout1_25_3, - DOB4=>mdout1_25_4, DOB5=>mdout1_25_5, DOB6=>mdout1_25_6, - DOB7=>mdout1_25_7, DOB8=>mdout1_25_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_26_0_5: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec52_p026, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec53_r126, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_26_0, - DOB1=>mdout1_26_1, DOB2=>mdout1_26_2, DOB3=>mdout1_26_3, - DOB4=>mdout1_26_4, DOB5=>mdout1_26_5, DOB6=>mdout1_26_6, - DOB7=>mdout1_26_7, DOB8=>mdout1_26_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_27_0_4: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec54_p027, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec55_r127, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_27_0, - DOB1=>mdout1_27_1, DOB2=>mdout1_27_2, DOB3=>mdout1_27_3, - DOB4=>mdout1_27_4, DOB5=>mdout1_27_5, DOB6=>mdout1_27_6, - DOB7=>mdout1_27_7, DOB8=>mdout1_27_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_28_0_3: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec56_p028, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec57_r128, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_28_0, - DOB1=>mdout1_28_1, DOB2=>mdout1_28_2, DOB3=>mdout1_28_3, - DOB4=>mdout1_28_4, DOB5=>mdout1_28_5, DOB6=>mdout1_28_6, - DOB7=>mdout1_28_7, DOB8=>mdout1_28_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_29_0_2: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec58_p029, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec59_r129, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_29_0, - DOB1=>mdout1_29_1, DOB2=>mdout1_29_2, DOB3=>mdout1_29_3, - DOB4=>mdout1_29_4, DOB5=>mdout1_29_5, DOB6=>mdout1_29_6, - DOB7=>mdout1_29_7, DOB8=>mdout1_29_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_30_0_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec60_p030, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec61_r130, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_30_0, - DOB1=>mdout1_30_1, DOB2=>mdout1_30_2, DOB3=>mdout1_30_3, - DOB4=>mdout1_30_4, DOB5=>mdout1_30_5, DOB6=>mdout1_30_6, - DOB7=>mdout1_30_7, DOB8=>mdout1_30_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_31_0_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>Data(9), DIA10=>Data(10), - DIA11=>Data(11), DIA12=>Data(12), DIA13=>Data(13), - DIA14=>Data(14), DIA15=>Data(15), DIA16=>Data(16), - DIA17=>Data(17), ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>wptr_0, ADA5=>wptr_1, - ADA6=>wptr_2, ADA7=>wptr_3, ADA8=>wptr_4, ADA9=>wptr_5, - ADA10=>wptr_6, ADA11=>wptr_7, ADA12=>wptr_8, ADA13=>wptr_9, - CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, CSA0=>dec62_p031, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec63_r131, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_31_0, - DOB1=>mdout1_31_1, DOB2=>mdout1_31_2, DOB3=>mdout1_31_3, - DOB4=>mdout1_31_4, DOB5=>mdout1_31_5, DOB6=>mdout1_31_6, - DOB7=>mdout1_31_7, DOB8=>mdout1_31_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_239: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_238: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_237: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_236: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_235: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_234: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_233: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_232: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_231: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_230: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_229: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_228: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_227: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_226: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_225: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_224: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_223: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_222: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_221: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_220: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_219: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_218: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_217: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_216: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_215: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_214: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_213: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_212: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_211: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_210: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_209: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_208: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_207: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_206: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_205: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_204: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_203: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_202: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_201: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_200: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_199: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_198: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_197: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_196: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_195: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_194: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_193: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_192: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_191: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_190: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_189: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_188: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_187: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_186: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_185: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_184: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_183: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_182: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_181: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_180: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_179: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_178: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_177: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_176: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_175: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_174: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_173: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_172: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_171: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_170: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_169: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_168: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_167: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_166: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_165: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_164: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_163: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_162: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_161: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_160: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_159: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_158: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_157: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_156: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_155: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_154: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_153: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_152: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_151: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_150: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_149: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_148: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_147: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_146: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_145: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_144: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_143: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_142: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_141: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_140: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_139: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_12, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_12_ff); - - FF_138: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_13, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_13_ff); - - FF_137: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_136: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_135: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_134: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_133: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_132: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_131: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_130: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_129: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_128: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_127: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_126: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_125: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_124: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_123: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_122: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_121: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_120: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_119: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_118: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_117: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_116: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_115: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_114: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_113: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_112: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_111: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_110: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_109: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_108: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_107: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_106: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_105: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_104: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_103: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_102: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_101: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_100: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_99: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_98: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_97: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_96: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_95: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_94: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_93: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_92: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_91: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_90: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_89: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_88: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_87: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_86: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_85: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_84: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_83: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_82: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_81: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_80: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_79: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_78: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_77: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_76: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_75: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_74: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_73: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_72: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_71: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_70: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_69: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_0, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_0); - - FF_68: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_1, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_1); - - FF_67: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_2, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_2); - - FF_66: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_3, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_3); - - FF_65: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_4, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_4); - - FF_64: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_5, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_5); - - FF_63: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_6, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_6); - - FF_62: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_7, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_7); - - FF_61: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_8, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_8); - - FF_60: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_9, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_9); - - FF_59: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_10, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_10); - - FF_58: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_11, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_11); - - FF_57: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_12, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_12); - - FF_56: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_13, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_13); - - FF_55: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_14, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_14); - - FF_54: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcnt_sub_15, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_15); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_0, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_0); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_1, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_1); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_2, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_2); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_3, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_3); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_4, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_4); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_5, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_5); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_6, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_6); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_7, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_7); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_8, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_8); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_9, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_9); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_10, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_10); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_11, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_11); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_12, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_12); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_13, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_13); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_14, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_14); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_15, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_15); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcnt_sub_16, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_16); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_0, CK=>WrClock, CD=>Reset, Q=>WCNT(0)); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_1, CK=>WrClock, CD=>Reset, Q=>WCNT(1)); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_2, CK=>WrClock, CD=>Reset, Q=>WCNT(2)); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_3, CK=>WrClock, CD=>Reset, Q=>WCNT(3)); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_4, CK=>WrClock, CD=>Reset, Q=>WCNT(4)); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_5, CK=>WrClock, CD=>Reset, Q=>WCNT(5)); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_6, CK=>WrClock, CD=>Reset, Q=>WCNT(6)); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_7, CK=>WrClock, CD=>Reset, Q=>WCNT(7)); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_8, CK=>WrClock, CD=>Reset, Q=>WCNT(8)); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_9, CK=>WrClock, CD=>Reset, Q=>WCNT(9)); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_10, CK=>WrClock, CD=>Reset, Q=>WCNT(10)); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_11, CK=>WrClock, CD=>Reset, Q=>WCNT(11)); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_12, CK=>WrClock, CD=>Reset, Q=>WCNT(12)); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_13, CK=>WrClock, CD=>Reset, Q=>WCNT(13)); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_14, CK=>WrClock, CD=>Reset, Q=>WCNT(14)); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wfill_sub_15, CK=>WrClock, CD=>Reset, Q=>WCNT(15)); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_0, CK=>RdClock, CD=>rRst, Q=>RCNT(0)); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_1, CK=>RdClock, CD=>rRst, Q=>RCNT(1)); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_2, CK=>RdClock, CD=>rRst, Q=>RCNT(2)); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_3, CK=>RdClock, CD=>rRst, Q=>RCNT(3)); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_4, CK=>RdClock, CD=>rRst, Q=>RCNT(4)); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_5, CK=>RdClock, CD=>rRst, Q=>RCNT(5)); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_6, CK=>RdClock, CD=>rRst, Q=>RCNT(6)); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_7, CK=>RdClock, CD=>rRst, Q=>RCNT(7)); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_8, CK=>RdClock, CD=>rRst, Q=>RCNT(8)); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_9, CK=>RdClock, CD=>rRst, Q=>RCNT(9)); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_10, CK=>RdClock, CD=>rRst, Q=>RCNT(10)); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_11, CK=>RdClock, CD=>rRst, Q=>RCNT(11)); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_12, CK=>RdClock, CD=>rRst, Q=>RCNT(12)); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_13, CK=>RdClock, CD=>rRst, Q=>RCNT(13)); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_14, CK=>RdClock, CD=>rRst, Q=>RCNT(14)); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_15, CK=>RdClock, CD=>rRst, Q=>RCNT(15)); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rfill_sub_16, CK=>RdClock, CD=>rRst, Q=>RCNT(16)); - - FF_3: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ae_d, CK=>RdClock, PD=>rRst, Q=>AlmostEmpty); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>af_d, CK=>WrClock, CD=>Reset, Q=>AlmostFull); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>ircount_16, NC1=>open); - - mux_8: MUX321 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, D4=>mdout1_4_0, D5=>mdout1_5_0, - D6=>mdout1_6_0, D7=>mdout1_7_0, D8=>mdout1_8_0, - D9=>mdout1_9_0, D10=>mdout1_10_0, D11=>mdout1_11_0, - D12=>mdout1_12_0, D13=>mdout1_13_0, D14=>mdout1_14_0, - D15=>mdout1_15_0, D16=>mdout1_16_0, D17=>mdout1_17_0, - D18=>mdout1_18_0, D19=>mdout1_19_0, D20=>mdout1_20_0, - D21=>mdout1_21_0, D22=>mdout1_22_0, D23=>mdout1_23_0, - D24=>mdout1_24_0, D25=>mdout1_25_0, D26=>mdout1_26_0, - D27=>mdout1_27_0, D28=>mdout1_28_0, D29=>mdout1_29_0, - D30=>mdout1_30_0, D31=>mdout1_31_0, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(0)); - - mux_7: MUX321 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, D4=>mdout1_4_1, D5=>mdout1_5_1, - D6=>mdout1_6_1, D7=>mdout1_7_1, D8=>mdout1_8_1, - D9=>mdout1_9_1, D10=>mdout1_10_1, D11=>mdout1_11_1, - D12=>mdout1_12_1, D13=>mdout1_13_1, D14=>mdout1_14_1, - D15=>mdout1_15_1, D16=>mdout1_16_1, D17=>mdout1_17_1, - D18=>mdout1_18_1, D19=>mdout1_19_1, D20=>mdout1_20_1, - D21=>mdout1_21_1, D22=>mdout1_22_1, D23=>mdout1_23_1, - D24=>mdout1_24_1, D25=>mdout1_25_1, D26=>mdout1_26_1, - D27=>mdout1_27_1, D28=>mdout1_28_1, D29=>mdout1_29_1, - D30=>mdout1_30_1, D31=>mdout1_31_1, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(1)); - - mux_6: MUX321 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, D4=>mdout1_4_2, D5=>mdout1_5_2, - D6=>mdout1_6_2, D7=>mdout1_7_2, D8=>mdout1_8_2, - D9=>mdout1_9_2, D10=>mdout1_10_2, D11=>mdout1_11_2, - D12=>mdout1_12_2, D13=>mdout1_13_2, D14=>mdout1_14_2, - D15=>mdout1_15_2, D16=>mdout1_16_2, D17=>mdout1_17_2, - D18=>mdout1_18_2, D19=>mdout1_19_2, D20=>mdout1_20_2, - D21=>mdout1_21_2, D22=>mdout1_22_2, D23=>mdout1_23_2, - D24=>mdout1_24_2, D25=>mdout1_25_2, D26=>mdout1_26_2, - D27=>mdout1_27_2, D28=>mdout1_28_2, D29=>mdout1_29_2, - D30=>mdout1_30_2, D31=>mdout1_31_2, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(2)); - - mux_5: MUX321 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, D4=>mdout1_4_3, D5=>mdout1_5_3, - D6=>mdout1_6_3, D7=>mdout1_7_3, D8=>mdout1_8_3, - D9=>mdout1_9_3, D10=>mdout1_10_3, D11=>mdout1_11_3, - D12=>mdout1_12_3, D13=>mdout1_13_3, D14=>mdout1_14_3, - D15=>mdout1_15_3, D16=>mdout1_16_3, D17=>mdout1_17_3, - D18=>mdout1_18_3, D19=>mdout1_19_3, D20=>mdout1_20_3, - D21=>mdout1_21_3, D22=>mdout1_22_3, D23=>mdout1_23_3, - D24=>mdout1_24_3, D25=>mdout1_25_3, D26=>mdout1_26_3, - D27=>mdout1_27_3, D28=>mdout1_28_3, D29=>mdout1_29_3, - D30=>mdout1_30_3, D31=>mdout1_31_3, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(3)); - - mux_4: MUX321 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, D4=>mdout1_4_4, D5=>mdout1_5_4, - D6=>mdout1_6_4, D7=>mdout1_7_4, D8=>mdout1_8_4, - D9=>mdout1_9_4, D10=>mdout1_10_4, D11=>mdout1_11_4, - D12=>mdout1_12_4, D13=>mdout1_13_4, D14=>mdout1_14_4, - D15=>mdout1_15_4, D16=>mdout1_16_4, D17=>mdout1_17_4, - D18=>mdout1_18_4, D19=>mdout1_19_4, D20=>mdout1_20_4, - D21=>mdout1_21_4, D22=>mdout1_22_4, D23=>mdout1_23_4, - D24=>mdout1_24_4, D25=>mdout1_25_4, D26=>mdout1_26_4, - D27=>mdout1_27_4, D28=>mdout1_28_4, D29=>mdout1_29_4, - D30=>mdout1_30_4, D31=>mdout1_31_4, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(4)); - - mux_3: MUX321 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, D4=>mdout1_4_5, D5=>mdout1_5_5, - D6=>mdout1_6_5, D7=>mdout1_7_5, D8=>mdout1_8_5, - D9=>mdout1_9_5, D10=>mdout1_10_5, D11=>mdout1_11_5, - D12=>mdout1_12_5, D13=>mdout1_13_5, D14=>mdout1_14_5, - D15=>mdout1_15_5, D16=>mdout1_16_5, D17=>mdout1_17_5, - D18=>mdout1_18_5, D19=>mdout1_19_5, D20=>mdout1_20_5, - D21=>mdout1_21_5, D22=>mdout1_22_5, D23=>mdout1_23_5, - D24=>mdout1_24_5, D25=>mdout1_25_5, D26=>mdout1_26_5, - D27=>mdout1_27_5, D28=>mdout1_28_5, D29=>mdout1_29_5, - D30=>mdout1_30_5, D31=>mdout1_31_5, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(5)); - - mux_2: MUX321 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, D4=>mdout1_4_6, D5=>mdout1_5_6, - D6=>mdout1_6_6, D7=>mdout1_7_6, D8=>mdout1_8_6, - D9=>mdout1_9_6, D10=>mdout1_10_6, D11=>mdout1_11_6, - D12=>mdout1_12_6, D13=>mdout1_13_6, D14=>mdout1_14_6, - D15=>mdout1_15_6, D16=>mdout1_16_6, D17=>mdout1_17_6, - D18=>mdout1_18_6, D19=>mdout1_19_6, D20=>mdout1_20_6, - D21=>mdout1_21_6, D22=>mdout1_22_6, D23=>mdout1_23_6, - D24=>mdout1_24_6, D25=>mdout1_25_6, D26=>mdout1_26_6, - D27=>mdout1_27_6, D28=>mdout1_28_6, D29=>mdout1_29_6, - D30=>mdout1_30_6, D31=>mdout1_31_6, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(6)); - - mux_1: MUX321 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, D4=>mdout1_4_7, D5=>mdout1_5_7, - D6=>mdout1_6_7, D7=>mdout1_7_7, D8=>mdout1_8_7, - D9=>mdout1_9_7, D10=>mdout1_10_7, D11=>mdout1_11_7, - D12=>mdout1_12_7, D13=>mdout1_13_7, D14=>mdout1_14_7, - D15=>mdout1_15_7, D16=>mdout1_16_7, D17=>mdout1_17_7, - D18=>mdout1_18_7, D19=>mdout1_19_7, D20=>mdout1_20_7, - D21=>mdout1_21_7, D22=>mdout1_22_7, D23=>mdout1_23_7, - D24=>mdout1_24_7, D25=>mdout1_25_7, D26=>mdout1_26_7, - D27=>mdout1_27_7, D28=>mdout1_28_7, D29=>mdout1_29_7, - D30=>mdout1_30_7, D31=>mdout1_31_7, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(7)); - - mux_0: MUX321 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, D2=>mdout1_2_8, - D3=>mdout1_3_8, D4=>mdout1_4_8, D5=>mdout1_5_8, - D6=>mdout1_6_8, D7=>mdout1_7_8, D8=>mdout1_8_8, - D9=>mdout1_9_8, D10=>mdout1_10_8, D11=>mdout1_11_8, - D12=>mdout1_12_8, D13=>mdout1_13_8, D14=>mdout1_14_8, - D15=>mdout1_15_8, D16=>mdout1_16_8, D17=>mdout1_17_8, - D18=>mdout1_18_8, D19=>mdout1_19_8, D20=>mdout1_20_8, - D21=>mdout1_21_8, D22=>mdout1_22_8, D23=>mdout1_23_8, - D24=>mdout1_24_8, D25=>mdout1_25_8, D26=>mdout1_26_8, - D27=>mdout1_27_8, D28=>mdout1_28_8, D29=>mdout1_29_8, - D30=>mdout1_30_8, D31=>mdout1_31_8, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(8)); - - precin_inst860: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>scuba_vlo, COUT=>precin, S0=>open, - S1=>open); - - wcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wcount_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>precin, BOUT=>co0_2, S0=>open, - S1=>wcnt_sub_0); - - wcnt_1: FSUB2B - port map (A0=>wcount_1, A1=>wcount_2, B0=>rcount_w2, - B1=>rcount_w3, BI=>co0_2, BOUT=>co1_2, S0=>wcnt_sub_1, - S1=>wcnt_sub_2); - - wcnt_2: FSUB2B - port map (A0=>wcount_3, A1=>wcount_4, B0=>rcount_w4, - B1=>rcount_w5, BI=>co1_2, BOUT=>co2_2, S0=>wcnt_sub_3, - S1=>wcnt_sub_4); - - wcnt_3: FSUB2B - port map (A0=>wcount_5, A1=>wcount_6, B0=>rcount_w6, - B1=>rcount_w7, BI=>co2_2, BOUT=>co3_2, S0=>wcnt_sub_5, - S1=>wcnt_sub_6); - - wcnt_4: FSUB2B - port map (A0=>wcount_7, A1=>wcount_8, B0=>rcount_w8, - B1=>rcount_w9, BI=>co3_2, BOUT=>co4_2, S0=>wcnt_sub_7, - S1=>wcnt_sub_8); - - wcnt_5: FSUB2B - port map (A0=>wcount_9, A1=>wcount_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_2, BOUT=>co5_2, S0=>wcnt_sub_9, - S1=>wcnt_sub_10); - - wcnt_6: FSUB2B - port map (A0=>wcount_11, A1=>wcount_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_2, BOUT=>co6_2, - S0=>wcnt_sub_11, S1=>wcnt_sub_12); - - wcnt_7: FSUB2B - port map (A0=>wcount_13, A1=>wcount_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_2, BOUT=>co7_2, S0=>wcnt_sub_13, - S1=>wcnt_sub_14); - - wcnt_8: FSUB2B - port map (A0=>wcnt_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_2, BOUT=>open, S0=>wcnt_sub_15, - S1=>open); - - precin_inst903: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>scuba_vlo, COUT=>precin_1, S0=>open, - S1=>open); - - rcnt_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rcount_0, BI=>precin_1, BOUT=>co0_3, S0=>open, - S1=>rcnt_sub_0); - - rcnt_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rcount_1, - B1=>rcount_2, BI=>co0_3, BOUT=>co1_3, S0=>rcnt_sub_1, - S1=>rcnt_sub_2); - - rcnt_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rcount_3, - B1=>rcount_4, BI=>co1_3, BOUT=>co2_3, S0=>rcnt_sub_3, - S1=>rcnt_sub_4); - - rcnt_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rcount_5, - B1=>rcount_6, BI=>co2_3, BOUT=>co3_3, S0=>rcnt_sub_5, - S1=>rcnt_sub_6); - - rcnt_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rcount_7, - B1=>rcount_8, BI=>co3_3, BOUT=>co4_3, S0=>rcnt_sub_7, - S1=>rcnt_sub_8); - - rcnt_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rcount_9, - B1=>rcount_10, BI=>co4_3, BOUT=>co5_3, S0=>rcnt_sub_9, - S1=>rcnt_sub_10); - - rcnt_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rcount_11, - B1=>rcount_12, BI=>co5_3, BOUT=>co6_3, S0=>rcnt_sub_11, - S1=>rcnt_sub_12); - - rcnt_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rcount_13, - B1=>rcount_14, BI=>co6_3, BOUT=>co7_3, S0=>rcnt_sub_13, - S1=>rcnt_sub_14); - - rcnt_8: FSUB2B - port map (A0=>wcount_r14, A1=>rcnt_sub_msb, B0=>rcount_15, - B1=>scuba_vlo, BI=>co7_3, BOUT=>co8_1, S0=>rcnt_sub_15, - S1=>rcnt_sub_16); - - rcntd: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_1, COUT=>open, S0=>co8_1d, S1=>open); - - precin_inst948: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>scuba_vlo, COUT=>precin_2, S0=>open, - S1=>open); - - wfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>wptr_0, B0=>scuba_vlo, - B1=>rcount_w1, BI=>precin_2, BOUT=>co0_4, S0=>open, - S1=>wfill_sub_0); - - wfill_1: FSUB2B - port map (A0=>wptr_1, A1=>wptr_2, B0=>rcount_w2, B1=>rcount_w3, - BI=>co0_4, BOUT=>co1_4, S0=>wfill_sub_1, S1=>wfill_sub_2); - - wfill_2: FSUB2B - port map (A0=>wptr_3, A1=>wptr_4, B0=>rcount_w4, B1=>rcount_w5, - BI=>co1_4, BOUT=>co2_4, S0=>wfill_sub_3, S1=>wfill_sub_4); - - wfill_3: FSUB2B - port map (A0=>wptr_5, A1=>wptr_6, B0=>rcount_w6, B1=>rcount_w7, - BI=>co2_4, BOUT=>co3_4, S0=>wfill_sub_5, S1=>wfill_sub_6); - - wfill_4: FSUB2B - port map (A0=>wptr_7, A1=>wptr_8, B0=>rcount_w8, B1=>rcount_w9, - BI=>co3_4, BOUT=>co4_4, S0=>wfill_sub_7, S1=>wfill_sub_8); - - wfill_5: FSUB2B - port map (A0=>wptr_9, A1=>wptr_10, B0=>rcount_w10, - B1=>rcount_w11, BI=>co4_4, BOUT=>co5_4, S0=>wfill_sub_9, - S1=>wfill_sub_10); - - wfill_6: FSUB2B - port map (A0=>wptr_11, A1=>wptr_12, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, BI=>co5_4, BOUT=>co6_4, - S0=>wfill_sub_11, S1=>wfill_sub_12); - - wfill_7: FSUB2B - port map (A0=>wptr_13, A1=>wptr_14, B0=>rcount_w14, - B1=>rcount_w15, BI=>co6_4, BOUT=>co7_4, S0=>wfill_sub_13, - S1=>wfill_sub_14); - - wfill_8: FSUB2B - port map (A0=>wfill_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, BI=>co7_4, BOUT=>open, S0=>wfill_sub_15, - S1=>open); - - precin_inst975: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>scuba_vlo, COUT=>precin_3, S0=>open, - S1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - rfill_0: FSUB2B - port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>rptr_0, BI=>precin_3, BOUT=>co0_5, S0=>open, - S1=>rfill_sub_0); - - rfill_1: FSUB2B - port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rptr_1, B1=>rptr_2, - BI=>co0_5, BOUT=>co1_5, S0=>rfill_sub_1, S1=>rfill_sub_2); - - rfill_2: FSUB2B - port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rptr_3, B1=>rptr_4, - BI=>co1_5, BOUT=>co2_5, S0=>rfill_sub_3, S1=>rfill_sub_4); - - rfill_3: FSUB2B - port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rptr_5, B1=>rptr_6, - BI=>co2_5, BOUT=>co3_5, S0=>rfill_sub_5, S1=>rfill_sub_6); - - rfill_4: FSUB2B - port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rptr_7, B1=>rptr_8, - BI=>co3_5, BOUT=>co4_5, S0=>rfill_sub_7, S1=>rfill_sub_8); - - rfill_5: FSUB2B - port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rptr_9, B1=>rptr_10, - BI=>co4_5, BOUT=>co5_5, S0=>rfill_sub_9, S1=>rfill_sub_10); - - rfill_6: FSUB2B - port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rptr_11, - B1=>rptr_12, BI=>co5_5, BOUT=>co6_5, S0=>rfill_sub_11, - S1=>rfill_sub_12); - - rfill_7: FSUB2B - port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rptr_13, - B1=>rptr_14, BI=>co6_5, BOUT=>co7_5, S0=>rfill_sub_13, - S1=>rfill_sub_14); - - rfill_8: FSUB2B - port map (A0=>wcount_r14, A1=>rfill_sub_msb, B0=>rptr_15, - B1=>scuba_vlo, BI=>co7_5, BOUT=>co8_2, S0=>rfill_sub_15, - S1=>rfill_sub_16); - - rfilld: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>co8_2, COUT=>open, S0=>co8_2d, S1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, - B1=>wcount_r0, CI=>cmp_ci, GE=>co0_6); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, - B1=>wcount_r2, CI=>co0_6, GE=>co1_6); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, - B1=>wcount_r4, CI=>co1_6, GE=>co2_6); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, - B1=>wcount_r6, CI=>co2_6, GE=>co3_6); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r7, - B1=>wcount_r8, CI=>co3_6, GE=>co4_6); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r9, - B1=>wcount_r10, CI=>co4_6, GE=>co5_6); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r11, - B1=>w_g2b_xor_cluster_0, CI=>co5_6, GE=>co6_6); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r13, - B1=>wcount_r14, CI=>co6_6, GE=>co7_6); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_6, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, - B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_7); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, - B1=>rcount_w4, CI=>co0_7, GE=>co1_7); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, - B1=>rcount_w6, CI=>co1_7, GE=>co2_7); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, - B1=>rcount_w8, CI=>co2_7, GE=>co3_7); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, - B1=>rcount_w10, CI=>co3_7, GE=>co4_7); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w11, - B1=>rcount_w12, CI=>co4_7, GE=>co5_7); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w14, CI=>co5_7, GE=>co6_7); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>full_cmp_set, B0=>rcount_w15, - B1=>full_cmp_clr, CI=>co6_7, GE=>full_d_c); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - ae_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci_2, S0=>open, S1=>open); - - ae_cmp_0: AGEB2 - port map (A0=>AmEmptyThresh(0), A1=>AmEmptyThresh(1), - B0=>rcnt_reg_0, B1=>rcnt_reg_1, CI=>cmp_ci_2, GE=>co0_8); - - ae_cmp_1: AGEB2 - port map (A0=>AmEmptyThresh(2), A1=>AmEmptyThresh(3), - B0=>rcnt_reg_2, B1=>rcnt_reg_3, CI=>co0_8, GE=>co1_8); - - ae_cmp_2: AGEB2 - port map (A0=>AmEmptyThresh(4), A1=>AmEmptyThresh(5), - B0=>rcnt_reg_4, B1=>rcnt_reg_5, CI=>co1_8, GE=>co2_8); - - ae_cmp_3: AGEB2 - port map (A0=>AmEmptyThresh(6), A1=>AmEmptyThresh(7), - B0=>rcnt_reg_6, B1=>rcnt_reg_7, CI=>co2_8, GE=>co3_8); - - ae_cmp_4: AGEB2 - port map (A0=>AmEmptyThresh(8), A1=>AmEmptyThresh(9), - B0=>rcnt_reg_8, B1=>rcnt_reg_9, CI=>co3_8, GE=>co4_8); - - ae_cmp_5: AGEB2 - port map (A0=>AmEmptyThresh(10), A1=>AmEmptyThresh(11), - B0=>rcnt_reg_10, B1=>rcnt_reg_11, CI=>co4_8, GE=>co5_8); - - ae_cmp_6: AGEB2 - port map (A0=>AmEmptyThresh(12), A1=>AmEmptyThresh(13), - B0=>rcnt_reg_12, B1=>rcnt_reg_13, CI=>co5_8, GE=>co6_8); - - ae_cmp_7: AGEB2 - port map (A0=>AmEmptyThresh(14), A1=>AmEmptyThresh(15), - B0=>rcnt_reg_14, B1=>rcnt_reg_15, CI=>co6_8, GE=>co7_7); - - ae_cmp_8: AGEB2 - port map (A0=>ae_setsig, A1=>scuba_vlo, B0=>ae_clrsig, - B1=>scuba_vlo, CI=>co7_7, GE=>ae_d_c); - - a2: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>ae_d_c, COUT=>open, S0=>ae_d, S1=>open); - - af_d_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_3, S0=>open, S1=>open); - - af_d_cmp_0: AGEB2 - port map (A0=>wcnt_reg_0, A1=>wcnt_reg_1, B0=>AmFullThresh(0), - B1=>AmFullThresh(1), CI=>cmp_ci_3, GE=>co0_9); - - af_d_cmp_1: AGEB2 - port map (A0=>wcnt_reg_2, A1=>wcnt_reg_3, B0=>AmFullThresh(2), - B1=>AmFullThresh(3), CI=>co0_9, GE=>co1_9); - - af_d_cmp_2: AGEB2 - port map (A0=>wcnt_reg_4, A1=>wcnt_reg_5, B0=>AmFullThresh(4), - B1=>AmFullThresh(5), CI=>co1_9, GE=>co2_9); - - af_d_cmp_3: AGEB2 - port map (A0=>wcnt_reg_6, A1=>wcnt_reg_7, B0=>AmFullThresh(6), - B1=>AmFullThresh(7), CI=>co2_9, GE=>co3_9); - - af_d_cmp_4: AGEB2 - port map (A0=>wcnt_reg_8, A1=>wcnt_reg_9, B0=>AmFullThresh(8), - B1=>AmFullThresh(9), CI=>co3_9, GE=>co4_9); - - af_d_cmp_5: AGEB2 - port map (A0=>wcnt_reg_10, A1=>wcnt_reg_11, B0=>AmFullThresh(10), - B1=>AmFullThresh(11), CI=>co4_9, GE=>co5_9); - - af_d_cmp_6: AGEB2 - port map (A0=>wcnt_reg_12, A1=>wcnt_reg_13, B0=>AmFullThresh(12), - B1=>AmFullThresh(13), CI=>co5_9, GE=>co6_9); - - af_d_cmp_7: AGEB2 - port map (A0=>wcnt_reg_14, A1=>wcnt_reg_15, B0=>AmFullThresh(14), - B1=>scuba_vlo, CI=>co6_9, GE=>af_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a3: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>af_d_c, COUT=>open, S0=>af_d, S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_32kx16x8_mb2 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FSUB2B use entity ecp2m.FSUB2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:MUX321 use entity ecp2m.MUX321(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2_generate.log b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2_generate.log deleted file mode 100644 index 6d3aa14..0000000 --- a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond (64-bit) 3.9.1.119 -Thu Jan 18 18:38:11 2018 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2017 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /d/jspc29/lattice/diamond/3.9_x64/ispfpga/bin/lin64/scuba -w -n fifo_32kx16x8_mb2 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 15 -data_width 18 -num_words 32768 -rdata_width 9 -no_enable -pe 0 -pf 0 -rfill -fill - Circuit name : fifo_32kx16x8_mb2 - Module type : ebfifo - Module Version : 5.8 - Ports : - Inputs : Data[17:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset, AmEmptyThresh[15:0], AmFullThresh[14:0] - Outputs : Q[8:0], WCNT[15:0], RCNT[16:0], Empty, Full, AlmostEmpty, AlmostFull - I/O buffer : not inserted - EDIF output : fifo_32kx16x8_mb2.edn - VHDL output : fifo_32kx16x8_mb2.vhd - VHDL template : fifo_32kx16x8_mb2_tmpl.vhd - VHDL testbench : tb_fifo_32kx16x8_mb2_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_32kx16x8_mb2.srp - Estimated Resource Usage: - LUT : 499 - EBR : 32 - Reg : 240 - -END SCUBA Module Synthesis - -File: fifo_32kx16x8_mb2.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2_tmpl.vhd deleted file mode 100644 index faa3a80..0000000 --- a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb2_tmpl.vhd +++ /dev/null @@ -1,26 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond (64-bit) 3.9.1.119 --- Module Version: 5.8 --- Thu Jan 18 18:38:11 2018 - --- parameterized module component declaration -component fifo_32kx16x8_mb2 - port (Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(8 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_32kx16x8_mb2 - port map (Data(17 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, AmEmptyThresh(15 downto 0)=>__, - AmFullThresh(14 downto 0)=>__, Q(8 downto 0)=>__, WCNT(15 downto 0)=>__, - RCNT(16 downto 0)=>__, Empty=>__, Full=>__, AlmostEmpty=>__, - AlmostFull=>__); diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb_tmpl.vhd deleted file mode 100755 index bc2e00d..0000000 --- a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb_tmpl.vhd +++ /dev/null @@ -1,26 +0,0 @@ --- VHDL module instantiation generated by SCUBA ispLever_v8.0_PROD_Build (41) --- Module Version: 5.3 --- Fri Feb 05 16:48:13 2010 - --- parameterized module component declaration -component fifo_32kx16x8_mb - port (Data: in std_logic_vector(15 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; - AmEmptyThresh: in std_logic_vector(15 downto 0); - AmFullThresh: in std_logic_vector(14 downto 0); - Q: out std_logic_vector(7 downto 0); - WCNT: out std_logic_vector(15 downto 0); - RCNT: out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_32kx16x8_mb - port map (Data(15 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, AmEmptyThresh(15 downto 0)=>__, - AmFullThresh(14 downto 0)=>__, Q(7 downto 0)=>__, WCNT(15 downto 0)=>__, - RCNT(16 downto 0)=>__, Empty=>__, Full=>__, AlmostEmpty=>__, - AlmostFull=>__); diff --git a/gbe_ecp2m/ipcores/fifo_4096x32.lpc b/gbe_ecp2m/ipcores/fifo_4096x32.lpc deleted file mode 100755 index 3f5196b..0000000 --- a/gbe_ecp2m/ipcores/fifo_4096x32.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.3 -ModuleName=fifo_4096x32 -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=12/18/2009 -Time=03:02:30 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=4096 -Width=32 -RDepth=4096 -RWidth=32 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_4096x32.vhd b/gbe_ecp2m/ipcores/fifo_4096x32.vhd deleted file mode 100755 index 51a2cd4..0000000 --- a/gbe_ecp2m/ipcores/fifo_4096x32.vhd +++ /dev/null @@ -1,2415 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v8.0_PROD_Build (41) --- Module Version: 5.3 ---/opt/lattice/ispLEVER8.0/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 4096 -width 32 -depth 4096 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - --- Fri Dec 18 03:02:30 2009 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_4096x32 is - port ( - Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_4096x32; - -architecture Structure of fifo_4096x32 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal co6: std_logic; - signal wcount_12: std_logic; - signal co5: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal co6_1: std_logic; - signal rcount_12: std_logic; - signal co5_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_33 : label is "0x6996"; - attribute initval of LUT4_32 : label is "0x6996"; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_7 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_7 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_7 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_7 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_7 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_7 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_7 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_7 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_7 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_7 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_7 : label is "4"; - attribute DATA_WIDTH_A of pdp_ram_0_0_7 : label is "4"; - attribute MEM_LPC_FILE of pdp_ram_0_1_6 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_6 : label is ""; - attribute CSDECODE_B of pdp_ram_0_1_6 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_1_6 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_1_6 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_1_6 : label is "NORMAL"; - attribute GSR of pdp_ram_0_1_6 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_6 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_1_6 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_1_6 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_1_6 : label is "4"; - attribute DATA_WIDTH_A of pdp_ram_0_1_6 : label is "4"; - attribute MEM_LPC_FILE of pdp_ram_0_2_5 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_5 : label is ""; - attribute CSDECODE_B of pdp_ram_0_2_5 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_2_5 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_2_5 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_2_5 : label is "NORMAL"; - attribute GSR of pdp_ram_0_2_5 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_2_5 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_2_5 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_2_5 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_2_5 : label is "4"; - attribute DATA_WIDTH_A of pdp_ram_0_2_5 : label is "4"; - attribute MEM_LPC_FILE of pdp_ram_0_3_4 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_4 : label is ""; - attribute CSDECODE_B of pdp_ram_0_3_4 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_3_4 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_3_4 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_3_4 : label is "NORMAL"; - attribute GSR of pdp_ram_0_3_4 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_3_4 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_3_4 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_3_4 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_3_4 : label is "4"; - attribute DATA_WIDTH_A of pdp_ram_0_3_4 : label is "4"; - attribute MEM_LPC_FILE of pdp_ram_0_4_3 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_3 : label is ""; - attribute CSDECODE_B of pdp_ram_0_4_3 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_4_3 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_4_3 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_4_3 : label is "NORMAL"; - attribute GSR of pdp_ram_0_4_3 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_4_3 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_4_3 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_4_3 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_4_3 : label is "4"; - attribute DATA_WIDTH_A of pdp_ram_0_4_3 : label is "4"; - attribute MEM_LPC_FILE of pdp_ram_0_5_2 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_2 : label is ""; - attribute CSDECODE_B of pdp_ram_0_5_2 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_5_2 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_5_2 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_5_2 : label is "NORMAL"; - attribute GSR of pdp_ram_0_5_2 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_5_2 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_5_2 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_5_2 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_5_2 : label is "4"; - attribute DATA_WIDTH_A of pdp_ram_0_5_2 : label is "4"; - attribute MEM_LPC_FILE of pdp_ram_0_6_1 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_1 : label is ""; - attribute CSDECODE_B of pdp_ram_0_6_1 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_6_1 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_6_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_6_1 : label is "NORMAL"; - attribute GSR of pdp_ram_0_6_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_6_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_6_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_6_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_6_1 : label is "4"; - attribute DATA_WIDTH_A of pdp_ram_0_6_1 : label is "4"; - attribute MEM_LPC_FILE of pdp_ram_0_7_0 : label is "fifo_4096x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_0 : label is ""; - attribute CSDECODE_B of pdp_ram_0_7_0 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_7_0 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_7_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_7_0 : label is "NORMAL"; - attribute GSR of pdp_ram_0_7_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_7_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_7_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_7_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_7_0 : label is "4"; - attribute DATA_WIDTH_A of pdp_ram_0_7_0 : label is "4"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t26: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t25: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t24: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t23: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t22: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t21: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t20: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t19: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t18: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t17: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t16: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t15: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t14: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t13: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t12: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t11: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t10: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t9: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t8: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t7: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t6: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t5: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t4: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t3: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t2: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t1: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t0: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - LUT4_33: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_0); - - LUT4_32: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_1); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_2); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r11); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>wcount_r11, DO0=>wcount_r8); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r6); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r24, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, DO0=>wcount_r3); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r20, DO0=>wcount_r0); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_0); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_1); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_2); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w11); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_7: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, - ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, - ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, - ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(0), DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_1_6: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - -- synopsys translate_on - port map (DIA0=>Data(4), DIA1=>Data(5), DIA2=>Data(6), - DIA3=>Data(7), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, - ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, - ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, - ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(4), DOB1=>Q(5), DOB2=>Q(6), DOB3=>Q(7), - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_2_5: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - -- synopsys translate_on - port map (DIA0=>Data(8), DIA1=>Data(9), DIA2=>Data(10), - DIA3=>Data(11), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, - ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, - ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, - ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(8), DOB1=>Q(9), DOB2=>Q(10), - DOB3=>Q(11), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_3_4: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - -- synopsys translate_on - port map (DIA0=>Data(12), DIA1=>Data(13), DIA2=>Data(14), - DIA3=>Data(15), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, - ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, - ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, - ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(12), DOB1=>Q(13), DOB2=>Q(14), - DOB3=>Q(15), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_4_3: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - -- synopsys translate_on - port map (DIA0=>Data(16), DIA1=>Data(17), DIA2=>Data(18), - DIA3=>Data(19), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, - ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, - ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, - ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(16), DOB1=>Q(17), DOB2=>Q(18), - DOB3=>Q(19), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_5_2: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - -- synopsys translate_on - port map (DIA0=>Data(20), DIA1=>Data(21), DIA2=>Data(22), - DIA3=>Data(23), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, - ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, - ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, - ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(20), DOB1=>Q(21), DOB2=>Q(22), - DOB3=>Q(23), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_6_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - -- synopsys translate_on - port map (DIA0=>Data(24), DIA1=>Data(25), DIA2=>Data(26), - DIA3=>Data(27), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, - ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, - ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, - ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(24), DOB1=>Q(25), DOB2=>Q(26), - DOB3=>Q(27), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - pdp_ram_0_7_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 4, - DATA_WIDTH_A=> 4) - -- synopsys translate_on - port map (DIA0=>Data(28), DIA1=>Data(29), DIA2=>Data(30), - DIA3=>Data(31), DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, - ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, - ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, - ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, - ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, - ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, - ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, - ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, - DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, - DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, - DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, - DOA17=>open, DOB0=>Q(28), DOB1=>Q(29), DOB2=>Q(30), - DOB3=>Q(31), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, - DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, - DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - - FF_131: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_130: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_129: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_128: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_127: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_126: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_125: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_124: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_123: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_122: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_121: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_106: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_92: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_57: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>scuba_vlo, CO=>co6, - NC0=>iwcount_12, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6_1, - NC0=>ircount_12, NC1=>open); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>r_g2b_xor_cluster_0, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co5_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_4096x32 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_4096x32_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_4096x32_tmpl.vhd deleted file mode 100755 index 745eb44..0000000 --- a/gbe_ecp2m/ipcores/fifo_4096x32_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA ispLever_v8.0_PROD_Build (41) --- Module Version: 5.3 --- Fri Dec 18 03:02:30 2009 - --- parameterized module component declaration -component fifo_4096x32 - port (Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_4096x32 - port map (Data(31 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(31 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/fifo_4096x9.lpc b/gbe_ecp2m/ipcores/fifo_4096x9.lpc deleted file mode 100755 index 22cb7c6..0000000 --- a/gbe_ecp2m/ipcores/fifo_4096x9.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.2 -ModuleName=fifo_4096x9 -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=01/05/2010 -Time=23:44:15 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=4096 -Width=9 -RDepth=4096 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_4096x9.vhd b/gbe_ecp2m/ipcores/fifo_4096x9.vhd deleted file mode 100755 index ca644d2..0000000 --- a/gbe_ecp2m/ipcores/fifo_4096x9.vhd +++ /dev/null @@ -1,2171 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.2 ---/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 4096 -width 9 -depth 4096 -rdata_width 9 -no_enable -pe -1 -pf -1 -e - --- Tue Jan 5 23:44:15 2010 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_4096x9 is - port ( - Data: in std_logic_vector(8 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_4096x9; - -architecture Structure of fifo_4096x9 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_12: std_logic; - signal rptr_11: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal co6: std_logic; - signal wcount_12: std_logic; - signal co5: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal co6_1: std_logic; - signal rcount_12: std_logic; - signal co5_1: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX21 - port (D0: in std_logic; D1: in std_logic; SD: in std_logic; - Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_33 : label is "0x6996"; - attribute initval of LUT4_32 : label is "0x6996"; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "fifo_4096x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_1 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_1 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_1 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_1 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_0_1 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_1_0_0 : label is "fifo_4096x9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_0 : label is ""; - attribute CSDECODE_B of pdp_ram_1_0_0 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_0_0 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_0_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_0_0 : label is "NORMAL"; - attribute GSR of pdp_ram_1_0_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_0_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_0_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_0_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_0_0 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_1_0_0 : label is "9"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t26: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t25: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t24: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t23: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t22: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t21: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t20: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t19: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t18: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t17: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t16: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t15: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t14: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t13: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t12: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t11: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t10: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t9: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t8: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t7: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t6: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t5: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t4: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t3: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t2: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t1: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t0: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - LUT4_33: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_0); - - LUT4_32: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_1); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_2); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r11); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>scuba_vlo, DO0=>wcount_r10); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>wcount_r11, DO0=>wcount_r8); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r6); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r24, AD0=>scuba_vlo, DO0=>wcount_r4); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, DO0=>wcount_r3); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r20, DO0=>wcount_r0); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_0); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_1); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_2); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w11); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>wptr_11, CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>rptr_11, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, - DOB1=>mdout1_0_1, DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, - DOB4=>mdout1_0_4, DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, - DOB7=>mdout1_0_7, DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_1_0_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>wptr_11, CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, - ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, - ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, - CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>rptr_11, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, - DOB1=>mdout1_1_1, DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, - DOB4=>mdout1_1_4, DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, - DOB7=>mdout1_1_7, DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - FF_132: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_131: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_130: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_129: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_128: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_127: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_126: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_125: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_124: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_123: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_122: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_121: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_106: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_93: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_57: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>scuba_vlo, CO=>co6, - NC0=>iwcount_12, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6_1, - NC0=>ircount_12, NC1=>open); - - mux_8: MUX21 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, SD=>rptr_11_ff, - Z=>Q(0)); - - mux_7: MUX21 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, SD=>rptr_11_ff, - Z=>Q(1)); - - mux_6: MUX21 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, SD=>rptr_11_ff, - Z=>Q(2)); - - mux_5: MUX21 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, SD=>rptr_11_ff, - Z=>Q(3)); - - mux_4: MUX21 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, SD=>rptr_11_ff, - Z=>Q(4)); - - mux_3: MUX21 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, SD=>rptr_11_ff, - Z=>Q(5)); - - mux_2: MUX21 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, SD=>rptr_11_ff, - Z=>Q(6)); - - mux_1: MUX21 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, SD=>rptr_11_ff, - Z=>Q(7)); - - mux_0: MUX21 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, SD=>rptr_11_ff, - Z=>Q(8)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>r_g2b_xor_cluster_0, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co5_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_4096x9 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:MUX21 use entity ecp2m.MUX21(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_4096x9_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_4096x9_tmpl.vhd deleted file mode 100755 index f754d74..0000000 --- a/gbe_ecp2m/ipcores/fifo_4096x9_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.2 --- Tue Jan 5 23:44:15 2010 - --- parameterized module component declaration -component fifo_4096x9 - port (Data: in std_logic_vector(8 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_4096x9 - port map (Data(8 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(8 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/fifo_512x32.lpc b/gbe_ecp2m/ipcores/fifo_512x32.lpc deleted file mode 100644 index 67057ca..0000000 --- a/gbe_ecp2m/ipcores/fifo_512x32.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_512x32 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:13:43 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=512 -Width=32 -RDepth=512 -RWidth=32 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_512x32.vhd b/gbe_ecp2m/ipcores/fifo_512x32.vhd deleted file mode 100644 index 73e04d7..0000000 --- a/gbe_ecp2m/ipcores/fifo_512x32.vhd +++ /dev/null @@ -1,1193 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 512 -width 32 -depth 512 -rdata_width 32 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:13:43 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_512x32 is - port ( - Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_512x32; - -architecture Structure of fifo_512x32 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co4: std_logic; - signal wcount_9: std_logic; - signal co3: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co4_1: std_logic; - signal rcount_9: std_logic; - signal co3_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_8: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_8: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component PDPW16KC - generic (GSR : in String; CSDECODE_R : in String; - CSDECODE_W : in String; REGMODE : in String; - DATA_WIDTH_R : in Integer; DATA_WIDTH_W : in Integer); - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_512x32.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute RESETMODE of pdp_ram_0_0_0 : label is "SYNC"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t20: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_0: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>Data(18), DI19=>Data(19), DI20=>Data(20), - DI21=>Data(21), DI22=>Data(22), DI23=>Data(23), - DI24=>Data(24), DI25=>Data(25), DI26=>Data(26), - DI27=>Data(27), DI28=>Data(28), DI29=>Data(29), - DI30=>Data(30), DI31=>Data(31), DI32=>scuba_vlo, - DI33=>scuba_vlo, DI34=>scuba_vlo, DI35=>scuba_vlo, - ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, - ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, - ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>Q(18), DO1=>Q(19), DO2=>Q(20), DO3=>Q(21), - DO4=>Q(22), DO5=>Q(23), DO6=>Q(24), DO7=>Q(25), DO8=>Q(26), - DO9=>Q(27), DO10=>Q(28), DO11=>Q(29), DO12=>Q(30), - DO13=>Q(31), DO14=>open, DO15=>open, DO16=>open, DO17=>open, - DO18=>Q(0), DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), DO22=>Q(4), - DO23=>Q(5), DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), DO27=>Q(9), - DO28=>Q(10), DO29=>Q(11), DO30=>Q(12), DO31=>Q(13), - DO32=>Q(14), DO33=>Q(15), DO34=>Q(16), DO35=>Q(17)); - - FF_101: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_100: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_99: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_98: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_97: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_96: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_95: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_94: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_93: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_92: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_91: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_90: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_89: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_88: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_87: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_86: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_85: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_84: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_83: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_82: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_81: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_80: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_79: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_78: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_77: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_76: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_75: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_74: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_73: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_72: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_71: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_70: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_69: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_68: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_67: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_66: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_65: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_64: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_63: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_62: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_61: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_60: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_59: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_58: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_57: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_56: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_55: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_54: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_53: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_52: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_51: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_50: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_49: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_48: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_47: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_46: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_45: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_44: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_43: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_42: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_41: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_40: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_39: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_38: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_37: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_36: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_35: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_34: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_33: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_32: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_31: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_30: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_29: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_28: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_27: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_26: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_25: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_24: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_23: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_22: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_21: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_20: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_19: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_18: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_17: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_16: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_15: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_14: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_13: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_12: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_11: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_10: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_9: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_8: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_7: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_6: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_5: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_4: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_3: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_2: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_512x32 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:PDPW16KC use entity ecp3.PDPW16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_512x32_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_512x32_tmpl.vhd deleted file mode 100644 index a461685..0000000 --- a/gbe_ecp2m/ipcores/fifo_512x32_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:13:43 2011 - --- parameterized module component declaration -component fifo_512x32 - port (Data: in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(31 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_512x32 - port map (Data(31 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(31 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/fifo_512x64.lpc b/gbe_ecp2m/ipcores/fifo_512x64.lpc deleted file mode 100644 index f17569e..0000000 --- a/gbe_ecp2m/ipcores/fifo_512x64.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_512x64 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:23:40 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=512 -Width=72 -RDepth=512 -RWidth=72 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_512x64.vhd b/gbe_ecp2m/ipcores/fifo_512x64.vhd deleted file mode 100644 index dae4c8f..0000000 --- a/gbe_ecp2m/ipcores/fifo_512x64.vhd +++ /dev/null @@ -1,1231 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 512 -width 72 -depth 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:23:40 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_512x64 is - port ( - Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_512x64; - -architecture Structure of fifo_512x64 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co4: std_logic; - signal wcount_9: std_logic; - signal co3: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co4_1: std_logic; - signal rcount_9: std_logic; - signal co3_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_8: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_8: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component PDPW16KC - generic (GSR : in String; CSDECODE_R : in String; - CSDECODE_W : in String; REGMODE : in String; - DATA_WIDTH_R : in Integer; DATA_WIDTH_W : in Integer); - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "fifo_512x64.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute RESETMODE of pdp_ram_0_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_1_0 : label is "fifo_512x64.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_0 : label is ""; - attribute RESETMODE of pdp_ram_0_1_0 : label is "SYNC"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t20: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>Data(18), DI19=>Data(19), DI20=>Data(20), - DI21=>Data(21), DI22=>Data(22), DI23=>Data(23), - DI24=>Data(24), DI25=>Data(25), DI26=>Data(26), - DI27=>Data(27), DI28=>Data(28), DI29=>Data(29), - DI30=>Data(30), DI31=>Data(31), DI32=>Data(32), - DI33=>Data(33), DI34=>Data(34), DI35=>Data(35), ADW0=>wptr_0, - ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, ADW4=>wptr_4, - ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, ADW8=>wptr_8, - BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>Q(18), DO1=>Q(19), DO2=>Q(20), DO3=>Q(21), - DO4=>Q(22), DO5=>Q(23), DO6=>Q(24), DO7=>Q(25), DO8=>Q(26), - DO9=>Q(27), DO10=>Q(28), DO11=>Q(29), DO12=>Q(30), - DO13=>Q(31), DO14=>Q(32), DO15=>Q(33), DO16=>Q(34), - DO17=>Q(35), DO18=>Q(0), DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), - DO22=>Q(4), DO23=>Q(5), DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), - DO27=>Q(9), DO28=>Q(10), DO29=>Q(11), DO30=>Q(12), - DO31=>Q(13), DO32=>Q(14), DO33=>Q(15), DO34=>Q(16), - DO35=>Q(17)); - - pdp_ram_0_1_0: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(36), DI1=>Data(37), DI2=>Data(38), - DI3=>Data(39), DI4=>Data(40), DI5=>Data(41), DI6=>Data(42), - DI7=>Data(43), DI8=>Data(44), DI9=>Data(45), DI10=>Data(46), - DI11=>Data(47), DI12=>Data(48), DI13=>Data(49), - DI14=>Data(50), DI15=>Data(51), DI16=>Data(52), - DI17=>Data(53), DI18=>Data(54), DI19=>Data(55), - DI20=>Data(56), DI21=>Data(57), DI22=>Data(58), - DI23=>Data(59), DI24=>Data(60), DI25=>Data(61), - DI26=>Data(62), DI27=>Data(63), DI28=>Data(64), - DI29=>Data(65), DI30=>Data(66), DI31=>Data(67), - DI32=>Data(68), DI33=>Data(69), DI34=>Data(70), - DI35=>Data(71), ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, - ADW3=>wptr_3, ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, - ADW7=>wptr_7, ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, - BE2=>scuba_vhi, BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, - CSW0=>scuba_vhi, CSW1=>scuba_vlo, CSW2=>scuba_vlo, - ADR0=>scuba_vlo, ADR1=>scuba_vlo, ADR2=>scuba_vlo, - ADR3=>scuba_vlo, ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, - ADR7=>rptr_2, ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, - ADR11=>rptr_6, ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, - CLKR=>RdClock, CSR0=>scuba_vlo, CSR1=>scuba_vlo, - CSR2=>scuba_vlo, RST=>Reset, DO0=>Q(54), DO1=>Q(55), - DO2=>Q(56), DO3=>Q(57), DO4=>Q(58), DO5=>Q(59), DO6=>Q(60), - DO7=>Q(61), DO8=>Q(62), DO9=>Q(63), DO10=>Q(64), DO11=>Q(65), - DO12=>Q(66), DO13=>Q(67), DO14=>Q(68), DO15=>Q(69), - DO16=>Q(70), DO17=>Q(71), DO18=>Q(36), DO19=>Q(37), - DO20=>Q(38), DO21=>Q(39), DO22=>Q(40), DO23=>Q(41), - DO24=>Q(42), DO25=>Q(43), DO26=>Q(44), DO27=>Q(45), - DO28=>Q(46), DO29=>Q(47), DO30=>Q(48), DO31=>Q(49), - DO32=>Q(50), DO33=>Q(51), DO34=>Q(52), DO35=>Q(53)); - - FF_101: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_100: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_99: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_98: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_97: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_96: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_95: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_94: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_93: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_92: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_91: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_90: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_89: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_88: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_87: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_86: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_85: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_84: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_83: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_82: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_81: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_80: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_79: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_78: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_77: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_76: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_75: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_74: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_73: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_72: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_71: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_70: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_69: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_68: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_67: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_66: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_65: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_64: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_63: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_62: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_61: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_60: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_59: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_58: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_57: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_56: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_55: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_54: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_53: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_52: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_51: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_50: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_49: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_48: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_47: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_46: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_45: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_44: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_43: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_42: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_41: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_40: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_39: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_38: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_37: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_36: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_35: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_34: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_33: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_32: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_31: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_30: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_29: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_28: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_27: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_26: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_25: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_24: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_23: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_22: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_21: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_20: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_19: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_18: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_17: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_16: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_15: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_14: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_13: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_12: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_11: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_10: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_9: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_8: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_7: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_6: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_5: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_4: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_3: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_2: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_512x64 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:PDPW16KC use entity ecp3.PDPW16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_512x64_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_512x64_tmpl.vhd deleted file mode 100644 index 490c7e6..0000000 --- a/gbe_ecp2m/ipcores/fifo_512x64_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:23:40 2011 - --- parameterized module component declaration -component fifo_512x64 - port (Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_512x64 - port map (Data(71 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(71 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/fifo_512x72.lpc b/gbe_ecp2m/ipcores/fifo_512x72.lpc deleted file mode 100644 index 1467961..0000000 --- a/gbe_ecp2m/ipcores/fifo_512x72.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.4 -ModuleName=fifo_512x72 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=09/22/2011 -Time=11:14:03 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=512 -Width=72 -RDepth=512 -RWidth=72 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_512x72.vhd b/gbe_ecp2m/ipcores/fifo_512x72.vhd deleted file mode 100644 index 4ffa914..0000000 --- a/gbe_ecp2m/ipcores/fifo_512x72.vhd +++ /dev/null @@ -1,1231 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type ebfifo -depth 512 -width 72 -depth 512 -rdata_width 72 -no_enable -pe -1 -pf -1 -e - --- Thu Sep 22 11:14:04 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity fifo_512x72 is - port ( - Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_512x72; - -architecture Structure of fifo_512x72 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co4: std_logic; - signal wcount_9: std_logic; - signal co3: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co4_1: std_logic; - signal rcount_9: std_logic; - signal co3_1: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_8: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_8: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1A - generic (INITVAL : in std_logic_vector(15 downto 0)); - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component PDPW16KC - generic (GSR : in String; CSDECODE_R : in String; - CSDECODE_W : in String; REGMODE : in String; - DATA_WIDTH_R : in Integer; DATA_WIDTH_W : in Integer); - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute GSR : string; - attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "fifo_512x72.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is ""; - attribute RESETMODE of pdp_ram_0_0_1 : label is "SYNC"; - attribute MEM_LPC_FILE of pdp_ram_0_1_0 : label is "fifo_512x72.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_0 : label is ""; - attribute RESETMODE of pdp_ram_0_1_0 : label is "SYNC"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t20: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_23: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_22: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_21: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_20: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_19: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_18: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_17: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_16: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_15: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_14: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_13: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_12: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_11: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_10: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_9: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_8: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_7: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_6: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_5: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_4: ROM16X1A - generic map (initval=> X"6996") - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_3: ROM16X1A - generic map (initval=> X"0410") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1A - generic map (initval=> X"1004") - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1A - generic map (initval=> X"0140") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1A - generic map (initval=> X"4001") - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_1: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>Data(18), DI19=>Data(19), DI20=>Data(20), - DI21=>Data(21), DI22=>Data(22), DI23=>Data(23), - DI24=>Data(24), DI25=>Data(25), DI26=>Data(26), - DI27=>Data(27), DI28=>Data(28), DI29=>Data(29), - DI30=>Data(30), DI31=>Data(31), DI32=>Data(32), - DI33=>Data(33), DI34=>Data(34), DI35=>Data(35), ADW0=>wptr_0, - ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, ADW4=>wptr_4, - ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, ADW8=>wptr_8, - BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>Q(18), DO1=>Q(19), DO2=>Q(20), DO3=>Q(21), - DO4=>Q(22), DO5=>Q(23), DO6=>Q(24), DO7=>Q(25), DO8=>Q(26), - DO9=>Q(27), DO10=>Q(28), DO11=>Q(29), DO12=>Q(30), - DO13=>Q(31), DO14=>Q(32), DO15=>Q(33), DO16=>Q(34), - DO17=>Q(35), DO18=>Q(0), DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), - DO22=>Q(4), DO23=>Q(5), DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), - DO27=>Q(9), DO28=>Q(10), DO29=>Q(11), DO30=>Q(12), - DO31=>Q(13), DO32=>Q(14), DO33=>Q(15), DO34=>Q(16), - DO35=>Q(17)); - - pdp_ram_0_1_0: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - port map (DI0=>Data(36), DI1=>Data(37), DI2=>Data(38), - DI3=>Data(39), DI4=>Data(40), DI5=>Data(41), DI6=>Data(42), - DI7=>Data(43), DI8=>Data(44), DI9=>Data(45), DI10=>Data(46), - DI11=>Data(47), DI12=>Data(48), DI13=>Data(49), - DI14=>Data(50), DI15=>Data(51), DI16=>Data(52), - DI17=>Data(53), DI18=>Data(54), DI19=>Data(55), - DI20=>Data(56), DI21=>Data(57), DI22=>Data(58), - DI23=>Data(59), DI24=>Data(60), DI25=>Data(61), - DI26=>Data(62), DI27=>Data(63), DI28=>Data(64), - DI29=>Data(65), DI30=>Data(66), DI31=>Data(67), - DI32=>Data(68), DI33=>Data(69), DI34=>Data(70), - DI35=>Data(71), ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, - ADW3=>wptr_3, ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, - ADW7=>wptr_7, ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, - BE2=>scuba_vhi, BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, - CSW0=>scuba_vhi, CSW1=>scuba_vlo, CSW2=>scuba_vlo, - ADR0=>scuba_vlo, ADR1=>scuba_vlo, ADR2=>scuba_vlo, - ADR3=>scuba_vlo, ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, - ADR7=>rptr_2, ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, - ADR11=>rptr_6, ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, - CLKR=>RdClock, CSR0=>scuba_vlo, CSR1=>scuba_vlo, - CSR2=>scuba_vlo, RST=>Reset, DO0=>Q(54), DO1=>Q(55), - DO2=>Q(56), DO3=>Q(57), DO4=>Q(58), DO5=>Q(59), DO6=>Q(60), - DO7=>Q(61), DO8=>Q(62), DO9=>Q(63), DO10=>Q(64), DO11=>Q(65), - DO12=>Q(66), DO13=>Q(67), DO14=>Q(68), DO15=>Q(69), - DO16=>Q(70), DO17=>Q(71), DO18=>Q(36), DO19=>Q(37), - DO20=>Q(38), DO21=>Q(39), DO22=>Q(40), DO23=>Q(41), - DO24=>Q(42), DO25=>Q(43), DO26=>Q(44), DO27=>Q(45), - DO28=>Q(46), DO29=>Q(47), DO30=>Q(48), DO31=>Q(49), - DO32=>Q(50), DO33=>Q(51), DO34=>Q(52), DO35=>Q(53)); - - FF_101: FD1P3BX - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_100: FD1P3DX - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_99: FD1P3DX - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_98: FD1P3DX - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_97: FD1P3DX - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_96: FD1P3DX - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_95: FD1P3DX - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_94: FD1P3DX - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_93: FD1P3DX - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_92: FD1P3DX - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_91: FD1P3DX - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_90: FD1P3DX - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_89: FD1P3DX - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_88: FD1P3DX - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_87: FD1P3DX - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_86: FD1P3DX - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_85: FD1P3DX - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_84: FD1P3DX - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_83: FD1P3DX - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_82: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_81: FD1P3DX - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_80: FD1P3DX - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_79: FD1P3DX - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_78: FD1P3DX - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_77: FD1P3DX - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_76: FD1P3DX - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_75: FD1P3DX - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_74: FD1P3DX - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_73: FD1P3DX - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_72: FD1P3DX - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_71: FD1P3BX - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_70: FD1P3DX - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_69: FD1P3DX - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_68: FD1P3DX - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_67: FD1P3DX - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_66: FD1P3DX - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_65: FD1P3DX - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_64: FD1P3DX - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_63: FD1P3DX - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_62: FD1P3DX - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_61: FD1P3DX - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_60: FD1P3DX - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_59: FD1P3DX - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_58: FD1P3DX - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_57: FD1P3DX - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_56: FD1P3DX - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_55: FD1P3DX - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_54: FD1P3DX - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_53: FD1P3DX - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_52: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_51: FD1P3DX - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_50: FD1P3DX - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_49: FD1P3DX - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_48: FD1P3DX - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_47: FD1P3DX - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_46: FD1P3DX - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_45: FD1P3DX - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_44: FD1P3DX - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_43: FD1P3DX - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_42: FD1P3DX - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_41: FD1S3DX - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_40: FD1S3DX - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_39: FD1S3DX - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_38: FD1S3DX - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_37: FD1S3DX - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_36: FD1S3DX - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_35: FD1S3DX - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_34: FD1S3DX - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_33: FD1S3DX - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_32: FD1S3DX - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_31: FD1S3DX - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_30: FD1S3DX - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_29: FD1S3DX - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_28: FD1S3DX - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_27: FD1S3DX - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_26: FD1S3DX - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_25: FD1S3DX - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_24: FD1S3DX - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_23: FD1S3DX - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_22: FD1S3DX - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_21: FD1S3DX - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_20: FD1S3DX - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_19: FD1S3DX - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_18: FD1S3DX - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_17: FD1S3DX - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_16: FD1S3DX - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_15: FD1S3DX - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_14: FD1S3DX - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_13: FD1S3DX - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_12: FD1S3DX - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_11: FD1S3DX - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_10: FD1S3DX - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_9: FD1S3DX - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_8: FD1S3DX - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_7: FD1S3DX - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_6: FD1S3DX - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_5: FD1S3DX - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_4: FD1S3DX - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_3: FD1S3DX - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_2: FD1S3DX - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_1: FD1S3BX - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of fifo_512x72 is - for Structure - for all:AGEB2 use entity ecp3.AGEB2(V); end for; - for all:AND2 use entity ecp3.AND2(V); end for; - for all:CU2 use entity ecp3.CU2(V); end for; - for all:FADD2B use entity ecp3.FADD2B(V); end for; - for all:FD1P3BX use entity ecp3.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp3.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp3.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp3.FD1S3DX(V); end for; - for all:INV use entity ecp3.INV(V); end for; - for all:OR2 use entity ecp3.OR2(V); end for; - for all:ROM16X1A use entity ecp3.ROM16X1A(V); end for; - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:XOR2 use entity ecp3.XOR2(V); end for; - for all:PDPW16KC use entity ecp3.PDPW16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_512x72_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_512x72_tmpl.vhd deleted file mode 100644 index b52a2b9..0000000 --- a/gbe_ecp2m/ipcores/fifo_512x72_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 5.4 --- Thu Sep 22 11:14:04 2011 - --- parameterized module component declaration -component fifo_512x72 - port (Data: in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; - WrEn: in std_logic; RdEn: in std_logic; Reset: in std_logic; - RPReset: in std_logic; Q: out std_logic_vector(71 downto 0); - Empty: out std_logic; Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_512x72 - port map (Data(71 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(71 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/fifo_64kx8.lpc b/gbe_ecp2m/ipcores/fifo_64kx8.lpc deleted file mode 100755 index 3d27821..0000000 --- a/gbe_ecp2m/ipcores/fifo_64kx8.lpc +++ /dev/null @@ -1,47 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.2 -ModuleName=fifo_64kx8 -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=12/26/2009 -Time=00:12:05 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=65536 -Width=8 -RDepth=65536 -RWidth=8 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 diff --git a/gbe_ecp2m/ipcores/fifo_64kx8.vhd b/gbe_ecp2m/ipcores/fifo_64kx8.vhd deleted file mode 100755 index ba79880..0000000 --- a/gbe_ecp2m/ipcores/fifo_64kx8.vhd +++ /dev/null @@ -1,4435 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.2 ---/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 65536 -width 8 -depth 65536 -rdata_width 8 -no_enable -pe -1 -pf -1 -e - --- Sat Dec 26 00:12:05 2009 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_64kx8 is - port ( - Data: in std_logic_vector(7 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_64kx8; - -architecture Structure of fifo_64kx8 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_9: std_logic; - signal func_xor_inet_8: std_logic; - signal func_xor_inet_7: std_logic; - signal func_xor_inet_6: std_logic; - signal func_xor_inet_10: std_logic; - signal func_xor_inet_11: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal w_gdata_15: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wptr_15: std_logic; - signal wptr_16: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rptr_13: std_logic; - signal rptr_16: std_logic; - signal rptr_14: std_logic; - signal rptr_15: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal w_gcount_16: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal w_gcount_r216: std_logic; - signal w_gcount_r16: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co6: std_logic; - signal iwcount_16: std_logic; - signal co8: std_logic; - signal wcount_16: std_logic; - signal co7: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8_1: std_logic; - signal rcount_16: std_logic; - signal co7_1: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal wcount_r12: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_2: std_logic; - signal wcount_r14: std_logic; - signal wcount_r15: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal rcount_w12: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_3: std_logic; - signal rcount_w14: std_logic; - signal rcount_w15: std_logic; - signal wcount_14: std_logic; - signal wcount_15: std_logic; - signal co7_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX41 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; SD1: in std_logic; SD2: in std_logic; - Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_59 : label is "0x6996"; - attribute initval of LUT4_58 : label is "0x6996"; - attribute initval of LUT4_57 : label is "0x6996"; - attribute initval of LUT4_56 : label is "0x6996"; - attribute initval of LUT4_55 : label is "0x6996"; - attribute initval of LUT4_54 : label is "0x6996"; - attribute initval of LUT4_53 : label is "0x6996"; - attribute initval of LUT4_52 : label is "0x6996"; - attribute initval of LUT4_51 : label is "0x6996"; - attribute initval of LUT4_50 : label is "0x6996"; - attribute initval of LUT4_49 : label is "0x6996"; - attribute initval of LUT4_48 : label is "0x6996"; - attribute initval of LUT4_47 : label is "0x6996"; - attribute initval of LUT4_46 : label is "0x6996"; - attribute initval of LUT4_45 : label is "0x6996"; - attribute initval of LUT4_44 : label is "0x6996"; - attribute initval of LUT4_43 : label is "0x6996"; - attribute initval of LUT4_42 : label is "0x6996"; - attribute initval of LUT4_41 : label is "0x6996"; - attribute initval of LUT4_40 : label is "0x6996"; - attribute initval of LUT4_39 : label is "0x6996"; - attribute initval of LUT4_38 : label is "0x6996"; - attribute initval of LUT4_37 : label is "0x6996"; - attribute initval of LUT4_36 : label is "0x6996"; - attribute initval of LUT4_35 : label is "0x6996"; - attribute initval of LUT4_34 : label is "0x6996"; - attribute initval of LUT4_33 : label is "0x6996"; - attribute initval of LUT4_32 : label is "0x6996"; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_31 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_0_31 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_0_31 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_31 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_31 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_31 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_31 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_31 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_31 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_0_31 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_1_30 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_1_30 : label is ""; - attribute CSDECODE_B of pdp_ram_0_1_30 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_1_30 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_1_30 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_1_30 : label is "NORMAL"; - attribute GSR of pdp_ram_0_1_30 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_1_30 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_1_30 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_1_30 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_1_30 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_1_30 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_2_29 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_2_29 : label is ""; - attribute CSDECODE_B of pdp_ram_0_2_29 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_2_29 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_2_29 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_2_29 : label is "NORMAL"; - attribute GSR of pdp_ram_0_2_29 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_2_29 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_2_29 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_2_29 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_2_29 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_2_29 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_3_28 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_3_28 : label is ""; - attribute CSDECODE_B of pdp_ram_0_3_28 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_3_28 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_3_28 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_3_28 : label is "NORMAL"; - attribute GSR of pdp_ram_0_3_28 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_3_28 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_3_28 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_3_28 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_3_28 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_3_28 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_4_27 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_4_27 : label is ""; - attribute CSDECODE_B of pdp_ram_0_4_27 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_4_27 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_4_27 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_4_27 : label is "NORMAL"; - attribute GSR of pdp_ram_0_4_27 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_4_27 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_4_27 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_4_27 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_4_27 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_4_27 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_5_26 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_5_26 : label is ""; - attribute CSDECODE_B of pdp_ram_0_5_26 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_5_26 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_5_26 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_5_26 : label is "NORMAL"; - attribute GSR of pdp_ram_0_5_26 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_5_26 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_5_26 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_5_26 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_5_26 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_5_26 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_6_25 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_6_25 : label is ""; - attribute CSDECODE_B of pdp_ram_0_6_25 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_6_25 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_6_25 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_6_25 : label is "NORMAL"; - attribute GSR of pdp_ram_0_6_25 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_6_25 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_6_25 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_6_25 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_6_25 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_6_25 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_0_7_24 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_7_24 : label is ""; - attribute CSDECODE_B of pdp_ram_0_7_24 : label is "0b000"; - attribute CSDECODE_A of pdp_ram_0_7_24 : label is "0b000"; - attribute WRITEMODE_B of pdp_ram_0_7_24 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_7_24 : label is "NORMAL"; - attribute GSR of pdp_ram_0_7_24 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_7_24 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_7_24 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_7_24 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_7_24 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_0_7_24 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_1_0_23 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_23 : label is ""; - attribute CSDECODE_B of pdp_ram_1_0_23 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_0_23 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_0_23 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_0_23 : label is "NORMAL"; - attribute GSR of pdp_ram_1_0_23 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_0_23 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_0_23 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_0_23 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_0_23 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_0_23 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_1_1_22 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_1_22 : label is ""; - attribute CSDECODE_B of pdp_ram_1_1_22 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_1_22 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_1_22 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_1_22 : label is "NORMAL"; - attribute GSR of pdp_ram_1_1_22 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_1_22 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_1_22 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_1_22 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_1_22 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_1_22 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_1_2_21 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_2_21 : label is ""; - attribute CSDECODE_B of pdp_ram_1_2_21 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_2_21 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_2_21 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_2_21 : label is "NORMAL"; - attribute GSR of pdp_ram_1_2_21 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_2_21 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_2_21 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_2_21 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_2_21 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_2_21 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_1_3_20 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_3_20 : label is ""; - attribute CSDECODE_B of pdp_ram_1_3_20 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_3_20 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_3_20 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_3_20 : label is "NORMAL"; - attribute GSR of pdp_ram_1_3_20 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_3_20 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_3_20 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_3_20 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_3_20 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_3_20 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_1_4_19 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_4_19 : label is ""; - attribute CSDECODE_B of pdp_ram_1_4_19 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_4_19 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_4_19 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_4_19 : label is "NORMAL"; - attribute GSR of pdp_ram_1_4_19 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_4_19 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_4_19 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_4_19 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_4_19 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_4_19 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_1_5_18 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_5_18 : label is ""; - attribute CSDECODE_B of pdp_ram_1_5_18 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_5_18 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_5_18 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_5_18 : label is "NORMAL"; - attribute GSR of pdp_ram_1_5_18 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_5_18 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_5_18 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_5_18 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_5_18 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_5_18 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_1_6_17 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_6_17 : label is ""; - attribute CSDECODE_B of pdp_ram_1_6_17 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_6_17 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_6_17 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_6_17 : label is "NORMAL"; - attribute GSR of pdp_ram_1_6_17 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_6_17 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_6_17 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_6_17 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_6_17 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_6_17 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_1_7_16 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_7_16 : label is ""; - attribute CSDECODE_B of pdp_ram_1_7_16 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_7_16 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_7_16 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_7_16 : label is "NORMAL"; - attribute GSR of pdp_ram_1_7_16 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_7_16 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_7_16 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_7_16 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_7_16 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_1_7_16 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_2_0_15 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_15 : label is ""; - attribute CSDECODE_B of pdp_ram_2_0_15 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_0_15 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_0_15 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_0_15 : label is "NORMAL"; - attribute GSR of pdp_ram_2_0_15 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_0_15 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_0_15 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_0_15 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_0_15 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_0_15 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_2_1_14 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_1_14 : label is ""; - attribute CSDECODE_B of pdp_ram_2_1_14 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_1_14 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_1_14 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_1_14 : label is "NORMAL"; - attribute GSR of pdp_ram_2_1_14 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_1_14 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_1_14 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_1_14 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_1_14 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_1_14 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_2_2_13 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_2_13 : label is ""; - attribute CSDECODE_B of pdp_ram_2_2_13 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_2_13 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_2_13 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_2_13 : label is "NORMAL"; - attribute GSR of pdp_ram_2_2_13 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_2_13 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_2_13 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_2_13 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_2_13 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_2_13 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_2_3_12 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_3_12 : label is ""; - attribute CSDECODE_B of pdp_ram_2_3_12 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_3_12 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_3_12 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_3_12 : label is "NORMAL"; - attribute GSR of pdp_ram_2_3_12 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_3_12 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_3_12 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_3_12 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_3_12 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_3_12 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_2_4_11 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_4_11 : label is ""; - attribute CSDECODE_B of pdp_ram_2_4_11 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_4_11 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_4_11 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_4_11 : label is "NORMAL"; - attribute GSR of pdp_ram_2_4_11 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_4_11 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_4_11 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_4_11 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_4_11 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_4_11 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_2_5_10 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_5_10 : label is ""; - attribute CSDECODE_B of pdp_ram_2_5_10 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_5_10 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_5_10 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_5_10 : label is "NORMAL"; - attribute GSR of pdp_ram_2_5_10 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_5_10 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_5_10 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_5_10 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_5_10 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_5_10 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_2_6_9 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_6_9 : label is ""; - attribute CSDECODE_B of pdp_ram_2_6_9 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_6_9 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_6_9 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_6_9 : label is "NORMAL"; - attribute GSR of pdp_ram_2_6_9 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_6_9 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_6_9 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_6_9 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_6_9 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_6_9 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_2_7_8 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_7_8 : label is ""; - attribute CSDECODE_B of pdp_ram_2_7_8 : label is "0b010"; - attribute CSDECODE_A of pdp_ram_2_7_8 : label is "0b010"; - attribute WRITEMODE_B of pdp_ram_2_7_8 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_7_8 : label is "NORMAL"; - attribute GSR of pdp_ram_2_7_8 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_7_8 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_7_8 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_7_8 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_7_8 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_2_7_8 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_3_0_7 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_7 : label is ""; - attribute CSDECODE_B of pdp_ram_3_0_7 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_0_7 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_0_7 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_0_7 : label is "NORMAL"; - attribute GSR of pdp_ram_3_0_7 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_0_7 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_0_7 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_0_7 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_0_7 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_0_7 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_3_1_6 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_1_6 : label is ""; - attribute CSDECODE_B of pdp_ram_3_1_6 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_1_6 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_1_6 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_1_6 : label is "NORMAL"; - attribute GSR of pdp_ram_3_1_6 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_1_6 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_1_6 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_1_6 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_1_6 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_1_6 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_3_2_5 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_2_5 : label is ""; - attribute CSDECODE_B of pdp_ram_3_2_5 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_2_5 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_2_5 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_2_5 : label is "NORMAL"; - attribute GSR of pdp_ram_3_2_5 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_2_5 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_2_5 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_2_5 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_2_5 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_2_5 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_3_3_4 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_3_4 : label is ""; - attribute CSDECODE_B of pdp_ram_3_3_4 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_3_4 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_3_4 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_3_4 : label is "NORMAL"; - attribute GSR of pdp_ram_3_3_4 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_3_4 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_3_4 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_3_4 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_3_4 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_3_4 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_3_4_3 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_4_3 : label is ""; - attribute CSDECODE_B of pdp_ram_3_4_3 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_4_3 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_4_3 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_4_3 : label is "NORMAL"; - attribute GSR of pdp_ram_3_4_3 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_4_3 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_4_3 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_4_3 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_4_3 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_4_3 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_3_5_2 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_5_2 : label is ""; - attribute CSDECODE_B of pdp_ram_3_5_2 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_5_2 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_5_2 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_5_2 : label is "NORMAL"; - attribute GSR of pdp_ram_3_5_2 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_5_2 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_5_2 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_5_2 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_5_2 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_5_2 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_3_6_1 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_6_1 : label is ""; - attribute CSDECODE_B of pdp_ram_3_6_1 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_6_1 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_6_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_6_1 : label is "NORMAL"; - attribute GSR of pdp_ram_3_6_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_6_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_6_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_6_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_6_1 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_6_1 : label is "1"; - attribute MEM_LPC_FILE of pdp_ram_3_7_0 : label is "fifo_64kx8.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_7_0 : label is ""; - attribute CSDECODE_B of pdp_ram_3_7_0 : label is "0b011"; - attribute CSDECODE_A of pdp_ram_3_7_0 : label is "0b011"; - attribute WRITEMODE_B of pdp_ram_3_7_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_7_0 : label is "NORMAL"; - attribute GSR of pdp_ram_3_7_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_7_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_7_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_7_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_7_0 : label is "1"; - attribute DATA_WIDTH_A of pdp_ram_3_7_0 : label is "1"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t34: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t33: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t32: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t31: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t30: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t29: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t28: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t27: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t26: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t25: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t24: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t23: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t22: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t21: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t20: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t19: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t18: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t17: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t16: XOR2 - port map (A=>wcount_15, B=>wcount_16, Z=>w_gdata_15); - - XOR2_t15: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t14: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t13: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t12: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t11: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t10: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t9: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t8: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t7: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t6: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t5: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t4: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t3: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t2: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t1: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t0: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - LUT4_59: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>w_gcount_r216, - DO0=>w_g2b_xor_cluster_0); - - LUT4_58: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_1); - - LUT4_57: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_2); - - LUT4_56: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_3); - - LUT4_55: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r215, AD2=>w_gcount_r216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r15); - - LUT4_54: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, - AD1=>w_gcount_r216, AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_53: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>wcount_r15, DO0=>wcount_r12); - - LUT4_52: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_51: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>w_g2b_xor_cluster_0, - DO0=>wcount_r10); - - LUT4_50: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_49: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r28, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_48: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, DO0=>wcount_r7); - - LUT4_47: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_46: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r6); - - LUT4_45: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_44: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r24, DO0=>wcount_r4); - - LUT4_43: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_42: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r3); - - LUT4_41: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_40: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r2); - - LUT4_39: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r1); - - LUT4_38: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>func_xor_inet); - - LUT4_37: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>func_xor_inet_1); - - LUT4_36: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, DO0=>func_xor_inet_2); - - LUT4_35: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, DO0=>func_xor_inet_3); - - LUT4_34: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_33: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_32: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet_6); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_7); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_8); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_9); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_10); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet_6, AD2=>func_xor_inet_7, - AD1=>func_xor_inet_8, AD0=>func_xor_inet_9, - DO0=>func_xor_inet_11); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet_11, AD2=>func_xor_inet_10, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_31: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_0, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_1_30: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_1, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_2_29: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_2, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_3_28: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_3, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_4_27: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_4, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_5_26: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_5, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_6_25: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_6, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_0_7_24: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_0_7, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_0_23: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_0, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_1_22: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_1, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_2_21: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_2, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_3_20: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_3, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_4_19: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_4, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_5_18: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_5, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_6_17: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_6, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_1_7_16: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_1_7, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_0_15: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_0, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_1_14: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_1, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_2_13: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_2, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_3_12: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_3, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_4_11: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_4, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_5_10: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_5, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_6_9: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_6, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_2_7_8: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_2_7, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_0_7: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_0, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_1_6: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_1, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_2_5: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_2, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_3_4: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_3, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_4_3: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_4, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_5_2: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_5, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_6_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_6, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - pdp_ram_3_7_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 1, - DATA_WIDTH_A=> 1) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, - ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, - ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, - ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, - WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, - CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, - DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, - DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, - DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, - DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, - DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, - DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, - ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, - ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, - ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, - ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, - CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, - DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, - DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>mdout1_3_7, DOB1=>open, DOB2=>open, DOB3=>open, - DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, - DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, - DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, - DOB17=>open); - - FF_173: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_172: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_171: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_170: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_169: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_168: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_167: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_166: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_165: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_164: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_163: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_162: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_161: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_160: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_159: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_158: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_157: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_16); - - FF_156: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_155: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_154: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_153: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_152: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_151: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_150: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_149: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_148: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_147: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_146: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_145: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_144: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_143: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_142: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_141: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_140: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_16); - - FF_139: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_138: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_137: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_136: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_135: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_134: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_133: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_132: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_131: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_130: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_129: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_128: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_127: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_126: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_125: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_124: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_123: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_16); - - FF_122: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_121: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_106: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_69: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_68: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_67: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_66: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_65: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_64: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_63: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_62: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_61: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_60: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_59: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_58: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_57: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_56: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_55: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_54: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r16); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r216); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - w_gctr_8: CU2 - port map (CI=>co7, PC0=>wcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>iwcount_16, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8_1, - NC0=>ircount_16, NC1=>open); - - mux_7: MUX41 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(0)); - - mux_6: MUX41 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(1)); - - mux_5: MUX41 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(2)); - - mux_4: MUX41 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(3)); - - mux_3: MUX41 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(4)); - - mux_2: MUX41 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(5)); - - mux_1: MUX41 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(6)); - - mux_0: MUX41 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(7)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, - B1=>w_g2b_xor_cluster_0, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r14, - B1=>wcount_r15, CI=>co6_2, GE=>co7_2); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>wcount_15, B0=>rcount_w14, - B1=>rcount_w15, CI=>co6_3, GE=>co7_3); - - full_cmp_8: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co7_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_64kx8 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:MUX41 use entity ecp2m.MUX41(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_64kx8_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_64kx8_tmpl.vhd deleted file mode 100755 index c0c7959..0000000 --- a/gbe_ecp2m/ipcores/fifo_64kx8_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.2 --- Sat Dec 26 00:12:05 2009 - --- parameterized module component declaration -component fifo_64kx8 - port (Data: in std_logic_vector(7 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_64kx8 - port map (Data(7 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(7 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/fifo_64kx9.ipx b/gbe_ecp2m/ipcores/fifo_64kx9.ipx deleted file mode 100644 index 7d82e48..0000000 --- a/gbe_ecp2m/ipcores/fifo_64kx9.ipx +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/gbe_ecp2m/ipcores/fifo_64kx9.lpc b/gbe_ecp2m/ipcores/fifo_64kx9.lpc deleted file mode 100644 index a33833d..0000000 --- a/gbe_ecp2m/ipcores/fifo_64kx9.lpc +++ /dev/null @@ -1,50 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F1152C -SpeedGrade=5 -Package=FPBGA1152 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=FIFO_DC -CoreRevision=5.8 -ModuleName=fifo_64kx9 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=01/18/2018 -Time=18:38:41 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -FIFOImp=EBR Based -Depth=65536 -Width=9 -RDepth=65536 -RWidth=9 -regout=0 -CtrlByRdEn=0 -EmpFlg=0 -PeMode=Static - Dual Threshold -PeAssert=10 -PeDeassert=12 -FullFlg=0 -PfMode=Static - Dual Threshold -PfAssert=508 -PfDeassert=506 -RDataCount=0 -WDataCount=0 -EnECC=0 - -[Command] -cmd_line= -w -n fifo_64kx9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 16 -data_width 9 -num_words 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 diff --git a/gbe_ecp2m/ipcores/fifo_64kx9.srp b/gbe_ecp2m/ipcores/fifo_64kx9.srp deleted file mode 100644 index 6928a7b..0000000 --- a/gbe_ecp2m/ipcores/fifo_64kx9.srp +++ /dev/null @@ -1,43 +0,0 @@ -SCUBA, Version Diamond (64-bit) 3.9.1.119 -Thu Jan 18 18:38:41 2018 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2017 Lattice Semiconductor Corporation, All rights reserved. - - Issued command : /d/jspc29/lattice/diamond/3.9_x64/ispfpga/bin/lin64/scuba -w -n fifo_64kx9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 16 -data_width 9 -num_words 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 - Circuit name : fifo_64kx9 - Module type : ebfifo - Module Version : 5.8 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : fifo_64kx9.edn - VHDL output : fifo_64kx9.vhd - VHDL template : fifo_64kx9_tmpl.vhd - VHDL testbench : tb_fifo_64kx9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx9.srp - Element Usage : - AGEB2 : 18 - AND2 : 2 - CU2 : 18 - FADD2B : 6 - FD1P3BX : 2 - FD1P3DX : 105 - FD1S3BX : 1 - FD1S3DX : 69 - INV : 12 - MUX321 : 9 - OR2 : 1 - ROM16X1 : 188 - XOR2 : 32 - DP16KB : 32 - Estimated Resource Usage: - LUT : 379 - EBR : 32 - Reg : 177 diff --git a/gbe_ecp2m/ipcores/fifo_64kx9.vhd b/gbe_ecp2m/ipcores/fifo_64kx9.vhd deleted file mode 100644 index 7b840df..0000000 --- a/gbe_ecp2m/ipcores/fifo_64kx9.vhd +++ /dev/null @@ -1,6025 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond (64-bit) 3.9.1.119 --- Module Version: 5.8 ---/d/jspc29/lattice/diamond/3.9_x64/ispfpga/bin/lin64/scuba -w -n fifo_64kx9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 65536 -width 9 -depth 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 - --- Thu Jan 18 18:38:41 2018 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity fifo_64kx9 is - port ( - Data: in std_logic_vector(8 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); - Empty: out std_logic; - Full: out std_logic); -end fifo_64kx9; - -architecture Structure of fifo_64kx9 is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal func_and_inet: std_logic; - signal func_and_inet_1: std_logic; - signal func_and_inet_2: std_logic; - signal func_and_inet_3: std_logic; - signal func_and_inet_4: std_logic; - signal func_and_inet_5: std_logic; - signal func_and_inet_6: std_logic; - signal func_and_inet_7: std_logic; - signal func_and_inet_8: std_logic; - signal func_and_inet_9: std_logic; - signal func_and_inet_10: std_logic; - signal func_and_inet_11: std_logic; - signal func_and_inet_12: std_logic; - signal func_and_inet_13: std_logic; - signal func_and_inet_14: std_logic; - signal func_and_inet_15: std_logic; - signal func_and_inet_16: std_logic; - signal func_and_inet_17: std_logic; - signal func_and_inet_18: std_logic; - signal func_and_inet_19: std_logic; - signal func_and_inet_20: std_logic; - signal func_and_inet_21: std_logic; - signal func_and_inet_22: std_logic; - signal func_and_inet_23: std_logic; - signal func_and_inet_24: std_logic; - signal func_and_inet_25: std_logic; - signal func_and_inet_26: std_logic; - signal func_and_inet_27: std_logic; - signal func_and_inet_28: std_logic; - signal func_and_inet_29: std_logic; - signal wptr_15_inv: std_logic; - signal func_and_inet_30: std_logic; - signal rptr_15_inv: std_logic; - signal func_and_inet_31: std_logic; - signal func_and_inet_32: std_logic; - signal func_and_inet_33: std_logic; - signal func_and_inet_34: std_logic; - signal func_and_inet_35: std_logic; - signal func_and_inet_36: std_logic; - signal func_and_inet_37: std_logic; - signal func_and_inet_38: std_logic; - signal func_and_inet_39: std_logic; - signal func_and_inet_40: std_logic; - signal func_and_inet_41: std_logic; - signal func_and_inet_42: std_logic; - signal func_and_inet_43: std_logic; - signal func_and_inet_44: std_logic; - signal func_and_inet_45: std_logic; - signal wptr_14_inv: std_logic; - signal func_and_inet_46: std_logic; - signal rptr_14_inv: std_logic; - signal func_and_inet_47: std_logic; - signal func_and_inet_48: std_logic; - signal func_and_inet_49: std_logic; - signal func_and_inet_50: std_logic; - signal func_and_inet_51: std_logic; - signal func_and_inet_52: std_logic; - signal func_and_inet_53: std_logic; - signal wptr_13_inv: std_logic; - signal func_and_inet_54: std_logic; - signal rptr_13_inv: std_logic; - signal func_and_inet_55: std_logic; - signal func_and_inet_56: std_logic; - signal func_and_inet_57: std_logic; - signal wptr_12_inv: std_logic; - signal func_and_inet_58: std_logic; - signal rptr_12_inv: std_logic; - signal func_and_inet_59: std_logic; - signal wptr_11_inv: std_logic; - signal func_and_inet_60: std_logic; - signal rptr_11_inv: std_logic; - signal func_and_inet_61: std_logic; - signal func_and_inet_62: std_logic; - signal func_and_inet_63: std_logic; - signal w_g2b_xor_cluster_2_1: std_logic; - signal w_g2b_xor_cluster_3_1: std_logic; - signal w_g2b_xor_cluster_3_2: std_logic; - signal w_g2b_xor_cluster_3: std_logic; - signal w_g2b_xor_cluster_2: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_3: std_logic; - signal func_xor_inet_2: std_logic; - signal func_xor_inet_1: std_logic; - signal func_xor_inet: std_logic; - signal func_xor_inet_4: std_logic; - signal func_xor_inet_5: std_logic; - signal r_g2b_xor_cluster_2_1: std_logic; - signal r_g2b_xor_cluster_3_1: std_logic; - signal r_g2b_xor_cluster_3_2: std_logic; - signal r_g2b_xor_cluster_3: std_logic; - signal r_g2b_xor_cluster_2: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal func_xor_inet_9: std_logic; - signal func_xor_inet_8: std_logic; - signal func_xor_inet_7: std_logic; - signal func_xor_inet_6: std_logic; - signal func_xor_inet_10: std_logic; - signal func_xor_inet_11: std_logic; - signal dec1_r10: std_logic; - signal dec0_p00: std_logic; - signal dec3_r11: std_logic; - signal dec2_p01: std_logic; - signal dec5_r12: std_logic; - signal dec4_p02: std_logic; - signal dec7_r13: std_logic; - signal dec6_p03: std_logic; - signal dec9_r14: std_logic; - signal dec8_p04: std_logic; - signal dec11_r15: std_logic; - signal dec10_p05: std_logic; - signal dec13_r16: std_logic; - signal dec12_p06: std_logic; - signal dec15_r17: std_logic; - signal dec14_p07: std_logic; - signal dec17_r18: std_logic; - signal dec16_p08: std_logic; - signal dec19_r19: std_logic; - signal dec18_p09: std_logic; - signal dec21_r110: std_logic; - signal dec20_p010: std_logic; - signal dec23_r111: std_logic; - signal dec22_p011: std_logic; - signal dec25_r112: std_logic; - signal dec24_p012: std_logic; - signal dec27_r113: std_logic; - signal dec26_p013: std_logic; - signal dec29_r114: std_logic; - signal dec28_p014: std_logic; - signal dec31_r115: std_logic; - signal dec30_p015: std_logic; - signal dec33_r116: std_logic; - signal dec32_p016: std_logic; - signal dec35_r117: std_logic; - signal dec34_p017: std_logic; - signal dec37_r118: std_logic; - signal dec36_p018: std_logic; - signal dec39_r119: std_logic; - signal dec38_p019: std_logic; - signal dec41_r120: std_logic; - signal dec40_p020: std_logic; - signal dec43_r121: std_logic; - signal dec42_p021: std_logic; - signal dec45_r122: std_logic; - signal dec44_p022: std_logic; - signal dec47_r123: std_logic; - signal dec46_p023: std_logic; - signal dec49_r124: std_logic; - signal dec48_p024: std_logic; - signal dec51_r125: std_logic; - signal dec50_p025: std_logic; - signal dec53_r126: std_logic; - signal dec52_p026: std_logic; - signal dec55_r127: std_logic; - signal dec54_p027: std_logic; - signal dec57_r128: std_logic; - signal dec56_p028: std_logic; - signal dec59_r129: std_logic; - signal dec58_p029: std_logic; - signal dec61_r130: std_logic; - signal dec60_p030: std_logic; - signal dec63_r131: std_logic; - signal dec62_p031: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal w_gdata_9: std_logic; - signal w_gdata_10: std_logic; - signal w_gdata_11: std_logic; - signal w_gdata_12: std_logic; - signal w_gdata_13: std_logic; - signal w_gdata_14: std_logic; - signal w_gdata_15: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal wptr_10: std_logic; - signal wptr_11: std_logic; - signal wptr_12: std_logic; - signal wptr_13: std_logic; - signal wptr_14: std_logic; - signal wptr_15: std_logic; - signal wptr_16: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal r_gdata_9: std_logic; - signal r_gdata_10: std_logic; - signal r_gdata_11: std_logic; - signal r_gdata_12: std_logic; - signal r_gdata_13: std_logic; - signal r_gdata_14: std_logic; - signal r_gdata_15: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal rptr_10: std_logic; - signal rptr_16: std_logic; - signal rptr_11: std_logic; - signal rptr_12: std_logic; - signal rptr_13: std_logic; - signal rptr_14: std_logic; - signal rptr_15: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal w_gcount_10: std_logic; - signal w_gcount_11: std_logic; - signal w_gcount_12: std_logic; - signal w_gcount_13: std_logic; - signal w_gcount_14: std_logic; - signal w_gcount_15: std_logic; - signal w_gcount_16: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal r_gcount_10: std_logic; - signal r_gcount_11: std_logic; - signal r_gcount_12: std_logic; - signal r_gcount_13: std_logic; - signal r_gcount_14: std_logic; - signal r_gcount_15: std_logic; - signal r_gcount_16: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal w_gcount_r210: std_logic; - signal w_gcount_r10: std_logic; - signal w_gcount_r211: std_logic; - signal w_gcount_r11: std_logic; - signal w_gcount_r212: std_logic; - signal w_gcount_r12: std_logic; - signal w_gcount_r213: std_logic; - signal w_gcount_r13: std_logic; - signal w_gcount_r214: std_logic; - signal w_gcount_r14: std_logic; - signal w_gcount_r215: std_logic; - signal w_gcount_r15: std_logic; - signal w_gcount_r216: std_logic; - signal w_gcount_r16: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal r_gcount_w210: std_logic; - signal r_gcount_w10: std_logic; - signal r_gcount_w211: std_logic; - signal r_gcount_w11: std_logic; - signal r_gcount_w212: std_logic; - signal r_gcount_w12: std_logic; - signal r_gcount_w213: std_logic; - signal r_gcount_w13: std_logic; - signal r_gcount_w214: std_logic; - signal r_gcount_w14: std_logic; - signal r_gcount_w215: std_logic; - signal r_gcount_w15: std_logic; - signal r_gcount_w216: std_logic; - signal r_gcount_w16: std_logic; - signal empty_i: std_logic; - signal rRst: std_logic; - signal full_i: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co3: std_logic; - signal iwcount_10: std_logic; - signal iwcount_11: std_logic; - signal co4: std_logic; - signal iwcount_12: std_logic; - signal iwcount_13: std_logic; - signal co5: std_logic; - signal iwcount_14: std_logic; - signal iwcount_15: std_logic; - signal co6: std_logic; - signal iwcount_16: std_logic; - signal co8: std_logic; - signal co7: std_logic; - signal wcount_16: std_logic; - signal scuba_vhi: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co3_1: std_logic; - signal ircount_10: std_logic; - signal ircount_11: std_logic; - signal co4_1: std_logic; - signal ircount_12: std_logic; - signal ircount_13: std_logic; - signal co5_1: std_logic; - signal ircount_14: std_logic; - signal ircount_15: std_logic; - signal co6_1: std_logic; - signal ircount_16: std_logic; - signal co8_1: std_logic; - signal co7_1: std_logic; - signal rcount_16: std_logic; - signal mdout1_31_0: std_logic; - signal mdout1_30_0: std_logic; - signal mdout1_29_0: std_logic; - signal mdout1_28_0: std_logic; - signal mdout1_27_0: std_logic; - signal mdout1_26_0: std_logic; - signal mdout1_25_0: std_logic; - signal mdout1_24_0: std_logic; - signal mdout1_23_0: std_logic; - signal mdout1_22_0: std_logic; - signal mdout1_21_0: std_logic; - signal mdout1_20_0: std_logic; - signal mdout1_19_0: std_logic; - signal mdout1_18_0: std_logic; - signal mdout1_17_0: std_logic; - signal mdout1_16_0: std_logic; - signal mdout1_15_0: std_logic; - signal mdout1_14_0: std_logic; - signal mdout1_13_0: std_logic; - signal mdout1_12_0: std_logic; - signal mdout1_11_0: std_logic; - signal mdout1_10_0: std_logic; - signal mdout1_9_0: std_logic; - signal mdout1_8_0: std_logic; - signal mdout1_7_0: std_logic; - signal mdout1_6_0: std_logic; - signal mdout1_5_0: std_logic; - signal mdout1_4_0: std_logic; - signal mdout1_3_0: std_logic; - signal mdout1_2_0: std_logic; - signal mdout1_1_0: std_logic; - signal mdout1_0_0: std_logic; - signal mdout1_31_1: std_logic; - signal mdout1_30_1: std_logic; - signal mdout1_29_1: std_logic; - signal mdout1_28_1: std_logic; - signal mdout1_27_1: std_logic; - signal mdout1_26_1: std_logic; - signal mdout1_25_1: std_logic; - signal mdout1_24_1: std_logic; - signal mdout1_23_1: std_logic; - signal mdout1_22_1: std_logic; - signal mdout1_21_1: std_logic; - signal mdout1_20_1: std_logic; - signal mdout1_19_1: std_logic; - signal mdout1_18_1: std_logic; - signal mdout1_17_1: std_logic; - signal mdout1_16_1: std_logic; - signal mdout1_15_1: std_logic; - signal mdout1_14_1: std_logic; - signal mdout1_13_1: std_logic; - signal mdout1_12_1: std_logic; - signal mdout1_11_1: std_logic; - signal mdout1_10_1: std_logic; - signal mdout1_9_1: std_logic; - signal mdout1_8_1: std_logic; - signal mdout1_7_1: std_logic; - signal mdout1_6_1: std_logic; - signal mdout1_5_1: std_logic; - signal mdout1_4_1: std_logic; - signal mdout1_3_1: std_logic; - signal mdout1_2_1: std_logic; - signal mdout1_1_1: std_logic; - signal mdout1_0_1: std_logic; - signal mdout1_31_2: std_logic; - signal mdout1_30_2: std_logic; - signal mdout1_29_2: std_logic; - signal mdout1_28_2: std_logic; - signal mdout1_27_2: std_logic; - signal mdout1_26_2: std_logic; - signal mdout1_25_2: std_logic; - signal mdout1_24_2: std_logic; - signal mdout1_23_2: std_logic; - signal mdout1_22_2: std_logic; - signal mdout1_21_2: std_logic; - signal mdout1_20_2: std_logic; - signal mdout1_19_2: std_logic; - signal mdout1_18_2: std_logic; - signal mdout1_17_2: std_logic; - signal mdout1_16_2: std_logic; - signal mdout1_15_2: std_logic; - signal mdout1_14_2: std_logic; - signal mdout1_13_2: std_logic; - signal mdout1_12_2: std_logic; - signal mdout1_11_2: std_logic; - signal mdout1_10_2: std_logic; - signal mdout1_9_2: std_logic; - signal mdout1_8_2: std_logic; - signal mdout1_7_2: std_logic; - signal mdout1_6_2: std_logic; - signal mdout1_5_2: std_logic; - signal mdout1_4_2: std_logic; - signal mdout1_3_2: std_logic; - signal mdout1_2_2: std_logic; - signal mdout1_1_2: std_logic; - signal mdout1_0_2: std_logic; - signal mdout1_31_3: std_logic; - signal mdout1_30_3: std_logic; - signal mdout1_29_3: std_logic; - signal mdout1_28_3: std_logic; - signal mdout1_27_3: std_logic; - signal mdout1_26_3: std_logic; - signal mdout1_25_3: std_logic; - signal mdout1_24_3: std_logic; - signal mdout1_23_3: std_logic; - signal mdout1_22_3: std_logic; - signal mdout1_21_3: std_logic; - signal mdout1_20_3: std_logic; - signal mdout1_19_3: std_logic; - signal mdout1_18_3: std_logic; - signal mdout1_17_3: std_logic; - signal mdout1_16_3: std_logic; - signal mdout1_15_3: std_logic; - signal mdout1_14_3: std_logic; - signal mdout1_13_3: std_logic; - signal mdout1_12_3: std_logic; - signal mdout1_11_3: std_logic; - signal mdout1_10_3: std_logic; - signal mdout1_9_3: std_logic; - signal mdout1_8_3: std_logic; - signal mdout1_7_3: std_logic; - signal mdout1_6_3: std_logic; - signal mdout1_5_3: std_logic; - signal mdout1_4_3: std_logic; - signal mdout1_3_3: std_logic; - signal mdout1_2_3: std_logic; - signal mdout1_1_3: std_logic; - signal mdout1_0_3: std_logic; - signal mdout1_31_4: std_logic; - signal mdout1_30_4: std_logic; - signal mdout1_29_4: std_logic; - signal mdout1_28_4: std_logic; - signal mdout1_27_4: std_logic; - signal mdout1_26_4: std_logic; - signal mdout1_25_4: std_logic; - signal mdout1_24_4: std_logic; - signal mdout1_23_4: std_logic; - signal mdout1_22_4: std_logic; - signal mdout1_21_4: std_logic; - signal mdout1_20_4: std_logic; - signal mdout1_19_4: std_logic; - signal mdout1_18_4: std_logic; - signal mdout1_17_4: std_logic; - signal mdout1_16_4: std_logic; - signal mdout1_15_4: std_logic; - signal mdout1_14_4: std_logic; - signal mdout1_13_4: std_logic; - signal mdout1_12_4: std_logic; - signal mdout1_11_4: std_logic; - signal mdout1_10_4: std_logic; - signal mdout1_9_4: std_logic; - signal mdout1_8_4: std_logic; - signal mdout1_7_4: std_logic; - signal mdout1_6_4: std_logic; - signal mdout1_5_4: std_logic; - signal mdout1_4_4: std_logic; - signal mdout1_3_4: std_logic; - signal mdout1_2_4: std_logic; - signal mdout1_1_4: std_logic; - signal mdout1_0_4: std_logic; - signal mdout1_31_5: std_logic; - signal mdout1_30_5: std_logic; - signal mdout1_29_5: std_logic; - signal mdout1_28_5: std_logic; - signal mdout1_27_5: std_logic; - signal mdout1_26_5: std_logic; - signal mdout1_25_5: std_logic; - signal mdout1_24_5: std_logic; - signal mdout1_23_5: std_logic; - signal mdout1_22_5: std_logic; - signal mdout1_21_5: std_logic; - signal mdout1_20_5: std_logic; - signal mdout1_19_5: std_logic; - signal mdout1_18_5: std_logic; - signal mdout1_17_5: std_logic; - signal mdout1_16_5: std_logic; - signal mdout1_15_5: std_logic; - signal mdout1_14_5: std_logic; - signal mdout1_13_5: std_logic; - signal mdout1_12_5: std_logic; - signal mdout1_11_5: std_logic; - signal mdout1_10_5: std_logic; - signal mdout1_9_5: std_logic; - signal mdout1_8_5: std_logic; - signal mdout1_7_5: std_logic; - signal mdout1_6_5: std_logic; - signal mdout1_5_5: std_logic; - signal mdout1_4_5: std_logic; - signal mdout1_3_5: std_logic; - signal mdout1_2_5: std_logic; - signal mdout1_1_5: std_logic; - signal mdout1_0_5: std_logic; - signal mdout1_31_6: std_logic; - signal mdout1_30_6: std_logic; - signal mdout1_29_6: std_logic; - signal mdout1_28_6: std_logic; - signal mdout1_27_6: std_logic; - signal mdout1_26_6: std_logic; - signal mdout1_25_6: std_logic; - signal mdout1_24_6: std_logic; - signal mdout1_23_6: std_logic; - signal mdout1_22_6: std_logic; - signal mdout1_21_6: std_logic; - signal mdout1_20_6: std_logic; - signal mdout1_19_6: std_logic; - signal mdout1_18_6: std_logic; - signal mdout1_17_6: std_logic; - signal mdout1_16_6: std_logic; - signal mdout1_15_6: std_logic; - signal mdout1_14_6: std_logic; - signal mdout1_13_6: std_logic; - signal mdout1_12_6: std_logic; - signal mdout1_11_6: std_logic; - signal mdout1_10_6: std_logic; - signal mdout1_9_6: std_logic; - signal mdout1_8_6: std_logic; - signal mdout1_7_6: std_logic; - signal mdout1_6_6: std_logic; - signal mdout1_5_6: std_logic; - signal mdout1_4_6: std_logic; - signal mdout1_3_6: std_logic; - signal mdout1_2_6: std_logic; - signal mdout1_1_6: std_logic; - signal mdout1_0_6: std_logic; - signal mdout1_31_7: std_logic; - signal mdout1_30_7: std_logic; - signal mdout1_29_7: std_logic; - signal mdout1_28_7: std_logic; - signal mdout1_27_7: std_logic; - signal mdout1_26_7: std_logic; - signal mdout1_25_7: std_logic; - signal mdout1_24_7: std_logic; - signal mdout1_23_7: std_logic; - signal mdout1_22_7: std_logic; - signal mdout1_21_7: std_logic; - signal mdout1_20_7: std_logic; - signal mdout1_19_7: std_logic; - signal mdout1_18_7: std_logic; - signal mdout1_17_7: std_logic; - signal mdout1_16_7: std_logic; - signal mdout1_15_7: std_logic; - signal mdout1_14_7: std_logic; - signal mdout1_13_7: std_logic; - signal mdout1_12_7: std_logic; - signal mdout1_11_7: std_logic; - signal mdout1_10_7: std_logic; - signal mdout1_9_7: std_logic; - signal mdout1_8_7: std_logic; - signal mdout1_7_7: std_logic; - signal mdout1_6_7: std_logic; - signal mdout1_5_7: std_logic; - signal mdout1_4_7: std_logic; - signal mdout1_3_7: std_logic; - signal mdout1_2_7: std_logic; - signal mdout1_1_7: std_logic; - signal mdout1_0_7: std_logic; - signal rptr_15_ff: std_logic; - signal rptr_14_ff: std_logic; - signal rptr_13_ff: std_logic; - signal rptr_12_ff: std_logic; - signal rptr_11_ff: std_logic; - signal mdout1_31_8: std_logic; - signal mdout1_30_8: std_logic; - signal mdout1_29_8: std_logic; - signal mdout1_28_8: std_logic; - signal mdout1_27_8: std_logic; - signal mdout1_26_8: std_logic; - signal mdout1_25_8: std_logic; - signal mdout1_24_8: std_logic; - signal mdout1_23_8: std_logic; - signal mdout1_22_8: std_logic; - signal mdout1_21_8: std_logic; - signal mdout1_20_8: std_logic; - signal mdout1_19_8: std_logic; - signal mdout1_18_8: std_logic; - signal mdout1_17_8: std_logic; - signal mdout1_16_8: std_logic; - signal mdout1_15_8: std_logic; - signal mdout1_14_8: std_logic; - signal mdout1_13_8: std_logic; - signal mdout1_12_8: std_logic; - signal mdout1_11_8: std_logic; - signal mdout1_10_8: std_logic; - signal mdout1_9_8: std_logic; - signal mdout1_8_8: std_logic; - signal mdout1_7_8: std_logic; - signal mdout1_6_8: std_logic; - signal mdout1_5_8: std_logic; - signal mdout1_4_8: std_logic; - signal mdout1_3_8: std_logic; - signal mdout1_2_8: std_logic; - signal mdout1_1_8: std_logic; - signal mdout1_0_8: std_logic; - signal rden_i: std_logic; - signal cmp_ci: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal wcount_r6: std_logic; - signal wcount_r7: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal wcount_r8: std_logic; - signal wcount_r9: std_logic; - signal rcount_8: std_logic; - signal rcount_9: std_logic; - signal co4_2: std_logic; - signal wcount_r10: std_logic; - signal wcount_r11: std_logic; - signal rcount_10: std_logic; - signal rcount_11: std_logic; - signal co5_2: std_logic; - signal wcount_r12: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal rcount_12: std_logic; - signal rcount_13: std_logic; - signal co6_2: std_logic; - signal wcount_r14: std_logic; - signal wcount_r15: std_logic; - signal rcount_14: std_logic; - signal rcount_15: std_logic; - signal co7_2: std_logic; - signal empty_cmp_clr: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wren_i: std_logic; - signal cmp_ci_1: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal rcount_w6: std_logic; - signal rcount_w7: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal rcount_w8: std_logic; - signal rcount_w9: std_logic; - signal wcount_8: std_logic; - signal wcount_9: std_logic; - signal co4_3: std_logic; - signal rcount_w10: std_logic; - signal rcount_w11: std_logic; - signal wcount_10: std_logic; - signal wcount_11: std_logic; - signal co5_3: std_logic; - signal rcount_w12: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal wcount_12: std_logic; - signal wcount_13: std_logic; - signal co6_3: std_logic; - signal rcount_w14: std_logic; - signal rcount_w15: std_logic; - signal wcount_14: std_logic; - signal wcount_15: std_logic; - signal co7_3: std_logic; - signal full_cmp_clr: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component MUX321 - port (D0: in std_logic; D1: in std_logic; D2: in std_logic; - D3: in std_logic; D4: in std_logic; D5: in std_logic; - D6: in std_logic; D7: in std_logic; D8: in std_logic; - D9: in std_logic; D10: in std_logic; D11: in std_logic; - D12: in std_logic; D13: in std_logic; D14: in std_logic; - D15: in std_logic; D16: in std_logic; D17: in std_logic; - D18: in std_logic; D19: in std_logic; D20: in std_logic; - D21: in std_logic; D22: in std_logic; D23: in std_logic; - D24: in std_logic; D25: in std_logic; D26: in std_logic; - D27: in std_logic; D28: in std_logic; D29: in std_logic; - D30: in std_logic; D31: in std_logic; SD1: in std_logic; - SD2: in std_logic; SD3: in std_logic; SD4: in std_logic; - SD5: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute GSR : string; - attribute initval of LUT4_187 : label is "0x8000"; - attribute initval of LUT4_186 : label is "0x8000"; - attribute initval of LUT4_185 : label is "0x8000"; - attribute initval of LUT4_184 : label is "0x8000"; - attribute initval of LUT4_183 : label is "0x8000"; - attribute initval of LUT4_182 : label is "0x8000"; - attribute initval of LUT4_181 : label is "0x8000"; - attribute initval of LUT4_180 : label is "0x8000"; - attribute initval of LUT4_179 : label is "0x8000"; - attribute initval of LUT4_178 : label is "0x8000"; - attribute initval of LUT4_177 : label is "0x8000"; - attribute initval of LUT4_176 : label is "0x8000"; - attribute initval of LUT4_175 : label is "0x8000"; - attribute initval of LUT4_174 : label is "0x8000"; - attribute initval of LUT4_173 : label is "0x8000"; - attribute initval of LUT4_172 : label is "0x8000"; - attribute initval of LUT4_171 : label is "0x8000"; - attribute initval of LUT4_170 : label is "0x8000"; - attribute initval of LUT4_169 : label is "0x8000"; - attribute initval of LUT4_168 : label is "0x8000"; - attribute initval of LUT4_167 : label is "0x8000"; - attribute initval of LUT4_166 : label is "0x8000"; - attribute initval of LUT4_165 : label is "0x8000"; - attribute initval of LUT4_164 : label is "0x8000"; - attribute initval of LUT4_163 : label is "0x8000"; - attribute initval of LUT4_162 : label is "0x8000"; - attribute initval of LUT4_161 : label is "0x8000"; - attribute initval of LUT4_160 : label is "0x8000"; - attribute initval of LUT4_159 : label is "0x8000"; - attribute initval of LUT4_158 : label is "0x8000"; - attribute initval of LUT4_157 : label is "0x8000"; - attribute initval of LUT4_156 : label is "0x8000"; - attribute initval of LUT4_155 : label is "0x8000"; - attribute initval of LUT4_154 : label is "0x8000"; - attribute initval of LUT4_153 : label is "0x8000"; - attribute initval of LUT4_152 : label is "0x8000"; - attribute initval of LUT4_151 : label is "0x8000"; - attribute initval of LUT4_150 : label is "0x8000"; - attribute initval of LUT4_149 : label is "0x8000"; - attribute initval of LUT4_148 : label is "0x8000"; - attribute initval of LUT4_147 : label is "0x8000"; - attribute initval of LUT4_146 : label is "0x8000"; - attribute initval of LUT4_145 : label is "0x8000"; - attribute initval of LUT4_144 : label is "0x8000"; - attribute initval of LUT4_143 : label is "0x8000"; - attribute initval of LUT4_142 : label is "0x8000"; - attribute initval of LUT4_141 : label is "0x8000"; - attribute initval of LUT4_140 : label is "0x8000"; - attribute initval of LUT4_139 : label is "0x8000"; - attribute initval of LUT4_138 : label is "0x8000"; - attribute initval of LUT4_137 : label is "0x8000"; - attribute initval of LUT4_136 : label is "0x8000"; - attribute initval of LUT4_135 : label is "0x8000"; - attribute initval of LUT4_134 : label is "0x8000"; - attribute initval of LUT4_133 : label is "0x8000"; - attribute initval of LUT4_132 : label is "0x8000"; - attribute initval of LUT4_131 : label is "0x8000"; - attribute initval of LUT4_130 : label is "0x8000"; - attribute initval of LUT4_129 : label is "0x8000"; - attribute initval of LUT4_128 : label is "0x8000"; - attribute initval of LUT4_127 : label is "0x8000"; - attribute initval of LUT4_126 : label is "0x8000"; - attribute initval of LUT4_125 : label is "0x8000"; - attribute initval of LUT4_124 : label is "0x8000"; - attribute initval of LUT4_123 : label is "0x8000"; - attribute initval of LUT4_122 : label is "0x8000"; - attribute initval of LUT4_121 : label is "0x8000"; - attribute initval of LUT4_120 : label is "0x8000"; - attribute initval of LUT4_119 : label is "0x8000"; - attribute initval of LUT4_118 : label is "0x8000"; - attribute initval of LUT4_117 : label is "0x8000"; - attribute initval of LUT4_116 : label is "0x8000"; - attribute initval of LUT4_115 : label is "0x8000"; - attribute initval of LUT4_114 : label is "0x8000"; - attribute initval of LUT4_113 : label is "0x8000"; - attribute initval of LUT4_112 : label is "0x8000"; - attribute initval of LUT4_111 : label is "0x8000"; - attribute initval of LUT4_110 : label is "0x8000"; - attribute initval of LUT4_109 : label is "0x8000"; - attribute initval of LUT4_108 : label is "0x8000"; - attribute initval of LUT4_107 : label is "0x8000"; - attribute initval of LUT4_106 : label is "0x8000"; - attribute initval of LUT4_105 : label is "0x8000"; - attribute initval of LUT4_104 : label is "0x8000"; - attribute initval of LUT4_103 : label is "0x8000"; - attribute initval of LUT4_102 : label is "0x8000"; - attribute initval of LUT4_101 : label is "0x8000"; - attribute initval of LUT4_100 : label is "0x8000"; - attribute initval of LUT4_99 : label is "0x8000"; - attribute initval of LUT4_98 : label is "0x8000"; - attribute initval of LUT4_97 : label is "0x8000"; - attribute initval of LUT4_96 : label is "0x8000"; - attribute initval of LUT4_95 : label is "0x8000"; - attribute initval of LUT4_94 : label is "0x8000"; - attribute initval of LUT4_93 : label is "0x8000"; - attribute initval of LUT4_92 : label is "0x8000"; - attribute initval of LUT4_91 : label is "0x8000"; - attribute initval of LUT4_90 : label is "0x8000"; - attribute initval of LUT4_89 : label is "0x8000"; - attribute initval of LUT4_88 : label is "0x8000"; - attribute initval of LUT4_87 : label is "0x8000"; - attribute initval of LUT4_86 : label is "0x8000"; - attribute initval of LUT4_85 : label is "0x8000"; - attribute initval of LUT4_84 : label is "0x8000"; - attribute initval of LUT4_83 : label is "0x8000"; - attribute initval of LUT4_82 : label is "0x8000"; - attribute initval of LUT4_81 : label is "0x8000"; - attribute initval of LUT4_80 : label is "0x8000"; - attribute initval of LUT4_79 : label is "0x8000"; - attribute initval of LUT4_78 : label is "0x8000"; - attribute initval of LUT4_77 : label is "0x8000"; - attribute initval of LUT4_76 : label is "0x8000"; - attribute initval of LUT4_75 : label is "0x8000"; - attribute initval of LUT4_74 : label is "0x8000"; - attribute initval of LUT4_73 : label is "0x8000"; - attribute initval of LUT4_72 : label is "0x8000"; - attribute initval of LUT4_71 : label is "0x8000"; - attribute initval of LUT4_70 : label is "0x8000"; - attribute initval of LUT4_69 : label is "0x8000"; - attribute initval of LUT4_68 : label is "0x8000"; - attribute initval of LUT4_67 : label is "0x8000"; - attribute initval of LUT4_66 : label is "0x8000"; - attribute initval of LUT4_65 : label is "0x8000"; - attribute initval of LUT4_64 : label is "0x8000"; - attribute initval of LUT4_63 : label is "0x8000"; - attribute initval of LUT4_62 : label is "0x8000"; - attribute initval of LUT4_61 : label is "0x8000"; - attribute initval of LUT4_60 : label is "0x8000"; - attribute initval of LUT4_59 : label is "0x6996"; - attribute initval of LUT4_58 : label is "0x6996"; - attribute initval of LUT4_57 : label is "0x6996"; - attribute initval of LUT4_56 : label is "0x6996"; - attribute initval of LUT4_55 : label is "0x6996"; - attribute initval of LUT4_54 : label is "0x6996"; - attribute initval of LUT4_53 : label is "0x6996"; - attribute initval of LUT4_52 : label is "0x6996"; - attribute initval of LUT4_51 : label is "0x6996"; - attribute initval of LUT4_50 : label is "0x6996"; - attribute initval of LUT4_49 : label is "0x6996"; - attribute initval of LUT4_48 : label is "0x6996"; - attribute initval of LUT4_47 : label is "0x6996"; - attribute initval of LUT4_46 : label is "0x6996"; - attribute initval of LUT4_45 : label is "0x6996"; - attribute initval of LUT4_44 : label is "0x6996"; - attribute initval of LUT4_43 : label is "0x6996"; - attribute initval of LUT4_42 : label is "0x6996"; - attribute initval of LUT4_41 : label is "0x6996"; - attribute initval of LUT4_40 : label is "0x6996"; - attribute initval of LUT4_39 : label is "0x6996"; - attribute initval of LUT4_38 : label is "0x6996"; - attribute initval of LUT4_37 : label is "0x6996"; - attribute initval of LUT4_36 : label is "0x6996"; - attribute initval of LUT4_35 : label is "0x6996"; - attribute initval of LUT4_34 : label is "0x6996"; - attribute initval of LUT4_33 : label is "0x6996"; - attribute initval of LUT4_32 : label is "0x6996"; - attribute initval of LUT4_31 : label is "0x6996"; - attribute initval of LUT4_30 : label is "0x6996"; - attribute initval of LUT4_29 : label is "0x6996"; - attribute initval of LUT4_28 : label is "0x6996"; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x6996"; - attribute initval of LUT4_6 : label is "0x6996"; - attribute initval of LUT4_5 : label is "0x6996"; - attribute initval of LUT4_4 : label is "0x6996"; - attribute initval of LUT4_3 : label is "0x0410"; - attribute initval of LUT4_2 : label is "0x1004"; - attribute initval of LUT4_1 : label is "0x0140"; - attribute initval of LUT4_0 : label is "0x4001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is ""; - attribute CSDECODE_B of pdp_ram_0_0_31 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_0_0_31 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_0_0_31 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_0_0_31 : label is "NORMAL"; - attribute GSR of pdp_ram_0_0_31 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_0_0_31 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_0_0_31 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_0_0_31 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_0_0_31 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_0_0_31 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_1_0_30 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_1_0_30 : label is ""; - attribute CSDECODE_B of pdp_ram_1_0_30 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_1_0_30 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_1_0_30 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_1_0_30 : label is "NORMAL"; - attribute GSR of pdp_ram_1_0_30 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_1_0_30 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_1_0_30 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_1_0_30 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_1_0_30 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_1_0_30 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_2_0_29 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_2_0_29 : label is ""; - attribute CSDECODE_B of pdp_ram_2_0_29 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_2_0_29 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_2_0_29 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_2_0_29 : label is "NORMAL"; - attribute GSR of pdp_ram_2_0_29 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_2_0_29 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_2_0_29 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_2_0_29 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_2_0_29 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_2_0_29 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_3_0_28 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_3_0_28 : label is ""; - attribute CSDECODE_B of pdp_ram_3_0_28 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_3_0_28 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_3_0_28 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_3_0_28 : label is "NORMAL"; - attribute GSR of pdp_ram_3_0_28 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_3_0_28 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_3_0_28 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_3_0_28 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_3_0_28 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_3_0_28 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_4_0_27 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_4_0_27 : label is ""; - attribute CSDECODE_B of pdp_ram_4_0_27 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_4_0_27 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_4_0_27 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_4_0_27 : label is "NORMAL"; - attribute GSR of pdp_ram_4_0_27 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_4_0_27 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_4_0_27 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_4_0_27 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_4_0_27 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_4_0_27 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_5_0_26 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_5_0_26 : label is ""; - attribute CSDECODE_B of pdp_ram_5_0_26 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_5_0_26 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_5_0_26 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_5_0_26 : label is "NORMAL"; - attribute GSR of pdp_ram_5_0_26 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_5_0_26 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_5_0_26 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_5_0_26 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_5_0_26 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_5_0_26 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_6_0_25 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_6_0_25 : label is ""; - attribute CSDECODE_B of pdp_ram_6_0_25 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_6_0_25 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_6_0_25 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_6_0_25 : label is "NORMAL"; - attribute GSR of pdp_ram_6_0_25 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_6_0_25 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_6_0_25 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_6_0_25 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_6_0_25 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_6_0_25 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_7_0_24 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_7_0_24 : label is ""; - attribute CSDECODE_B of pdp_ram_7_0_24 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_7_0_24 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_7_0_24 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_7_0_24 : label is "NORMAL"; - attribute GSR of pdp_ram_7_0_24 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_7_0_24 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_7_0_24 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_7_0_24 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_7_0_24 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_7_0_24 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_8_0_23 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_8_0_23 : label is ""; - attribute CSDECODE_B of pdp_ram_8_0_23 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_8_0_23 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_8_0_23 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_8_0_23 : label is "NORMAL"; - attribute GSR of pdp_ram_8_0_23 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_8_0_23 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_8_0_23 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_8_0_23 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_8_0_23 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_8_0_23 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_9_0_22 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_9_0_22 : label is ""; - attribute CSDECODE_B of pdp_ram_9_0_22 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_9_0_22 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_9_0_22 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_9_0_22 : label is "NORMAL"; - attribute GSR of pdp_ram_9_0_22 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_9_0_22 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_9_0_22 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_9_0_22 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_9_0_22 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_9_0_22 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_10_0_21 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_10_0_21 : label is ""; - attribute CSDECODE_B of pdp_ram_10_0_21 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_10_0_21 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_10_0_21 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_10_0_21 : label is "NORMAL"; - attribute GSR of pdp_ram_10_0_21 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_10_0_21 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_10_0_21 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_10_0_21 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_10_0_21 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_10_0_21 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_11_0_20 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_11_0_20 : label is ""; - attribute CSDECODE_B of pdp_ram_11_0_20 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_11_0_20 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_11_0_20 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_11_0_20 : label is "NORMAL"; - attribute GSR of pdp_ram_11_0_20 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_11_0_20 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_11_0_20 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_11_0_20 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_11_0_20 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_11_0_20 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_12_0_19 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_12_0_19 : label is ""; - attribute CSDECODE_B of pdp_ram_12_0_19 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_12_0_19 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_12_0_19 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_12_0_19 : label is "NORMAL"; - attribute GSR of pdp_ram_12_0_19 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_12_0_19 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_12_0_19 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_12_0_19 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_12_0_19 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_12_0_19 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_13_0_18 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_13_0_18 : label is ""; - attribute CSDECODE_B of pdp_ram_13_0_18 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_13_0_18 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_13_0_18 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_13_0_18 : label is "NORMAL"; - attribute GSR of pdp_ram_13_0_18 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_13_0_18 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_13_0_18 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_13_0_18 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_13_0_18 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_13_0_18 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_14_0_17 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_14_0_17 : label is ""; - attribute CSDECODE_B of pdp_ram_14_0_17 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_14_0_17 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_14_0_17 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_14_0_17 : label is "NORMAL"; - attribute GSR of pdp_ram_14_0_17 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_14_0_17 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_14_0_17 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_14_0_17 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_14_0_17 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_14_0_17 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_15_0_16 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_15_0_16 : label is ""; - attribute CSDECODE_B of pdp_ram_15_0_16 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_15_0_16 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_15_0_16 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_15_0_16 : label is "NORMAL"; - attribute GSR of pdp_ram_15_0_16 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_15_0_16 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_15_0_16 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_15_0_16 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_15_0_16 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_15_0_16 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_16_0_15 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_16_0_15 : label is ""; - attribute CSDECODE_B of pdp_ram_16_0_15 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_16_0_15 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_16_0_15 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_16_0_15 : label is "NORMAL"; - attribute GSR of pdp_ram_16_0_15 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_16_0_15 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_16_0_15 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_16_0_15 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_16_0_15 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_16_0_15 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_17_0_14 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_17_0_14 : label is ""; - attribute CSDECODE_B of pdp_ram_17_0_14 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_17_0_14 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_17_0_14 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_17_0_14 : label is "NORMAL"; - attribute GSR of pdp_ram_17_0_14 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_17_0_14 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_17_0_14 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_17_0_14 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_17_0_14 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_17_0_14 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_18_0_13 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_18_0_13 : label is ""; - attribute CSDECODE_B of pdp_ram_18_0_13 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_18_0_13 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_18_0_13 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_18_0_13 : label is "NORMAL"; - attribute GSR of pdp_ram_18_0_13 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_18_0_13 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_18_0_13 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_18_0_13 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_18_0_13 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_18_0_13 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_19_0_12 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_19_0_12 : label is ""; - attribute CSDECODE_B of pdp_ram_19_0_12 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_19_0_12 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_19_0_12 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_19_0_12 : label is "NORMAL"; - attribute GSR of pdp_ram_19_0_12 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_19_0_12 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_19_0_12 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_19_0_12 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_19_0_12 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_19_0_12 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_20_0_11 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_20_0_11 : label is ""; - attribute CSDECODE_B of pdp_ram_20_0_11 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_20_0_11 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_20_0_11 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_20_0_11 : label is "NORMAL"; - attribute GSR of pdp_ram_20_0_11 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_20_0_11 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_20_0_11 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_20_0_11 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_20_0_11 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_20_0_11 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_21_0_10 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_21_0_10 : label is ""; - attribute CSDECODE_B of pdp_ram_21_0_10 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_21_0_10 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_21_0_10 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_21_0_10 : label is "NORMAL"; - attribute GSR of pdp_ram_21_0_10 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_21_0_10 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_21_0_10 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_21_0_10 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_21_0_10 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_21_0_10 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_22_0_9 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_22_0_9 : label is ""; - attribute CSDECODE_B of pdp_ram_22_0_9 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_22_0_9 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_22_0_9 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_22_0_9 : label is "NORMAL"; - attribute GSR of pdp_ram_22_0_9 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_22_0_9 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_22_0_9 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_22_0_9 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_22_0_9 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_22_0_9 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_23_0_8 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_23_0_8 : label is ""; - attribute CSDECODE_B of pdp_ram_23_0_8 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_23_0_8 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_23_0_8 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_23_0_8 : label is "NORMAL"; - attribute GSR of pdp_ram_23_0_8 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_23_0_8 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_23_0_8 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_23_0_8 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_23_0_8 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_23_0_8 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_24_0_7 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_24_0_7 : label is ""; - attribute CSDECODE_B of pdp_ram_24_0_7 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_24_0_7 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_24_0_7 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_24_0_7 : label is "NORMAL"; - attribute GSR of pdp_ram_24_0_7 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_24_0_7 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_24_0_7 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_24_0_7 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_24_0_7 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_24_0_7 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_25_0_6 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_25_0_6 : label is ""; - attribute CSDECODE_B of pdp_ram_25_0_6 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_25_0_6 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_25_0_6 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_25_0_6 : label is "NORMAL"; - attribute GSR of pdp_ram_25_0_6 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_25_0_6 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_25_0_6 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_25_0_6 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_25_0_6 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_25_0_6 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_26_0_5 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_26_0_5 : label is ""; - attribute CSDECODE_B of pdp_ram_26_0_5 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_26_0_5 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_26_0_5 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_26_0_5 : label is "NORMAL"; - attribute GSR of pdp_ram_26_0_5 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_26_0_5 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_26_0_5 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_26_0_5 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_26_0_5 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_26_0_5 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_27_0_4 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_27_0_4 : label is ""; - attribute CSDECODE_B of pdp_ram_27_0_4 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_27_0_4 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_27_0_4 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_27_0_4 : label is "NORMAL"; - attribute GSR of pdp_ram_27_0_4 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_27_0_4 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_27_0_4 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_27_0_4 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_27_0_4 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_27_0_4 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_28_0_3 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_28_0_3 : label is ""; - attribute CSDECODE_B of pdp_ram_28_0_3 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_28_0_3 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_28_0_3 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_28_0_3 : label is "NORMAL"; - attribute GSR of pdp_ram_28_0_3 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_28_0_3 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_28_0_3 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_28_0_3 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_28_0_3 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_28_0_3 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_29_0_2 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_29_0_2 : label is ""; - attribute CSDECODE_B of pdp_ram_29_0_2 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_29_0_2 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_29_0_2 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_29_0_2 : label is "NORMAL"; - attribute GSR of pdp_ram_29_0_2 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_29_0_2 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_29_0_2 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_29_0_2 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_29_0_2 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_29_0_2 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_30_0_1 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_30_0_1 : label is ""; - attribute CSDECODE_B of pdp_ram_30_0_1 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_30_0_1 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_30_0_1 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_30_0_1 : label is "NORMAL"; - attribute GSR of pdp_ram_30_0_1 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_30_0_1 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_30_0_1 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_30_0_1 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_30_0_1 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_30_0_1 : label is "9"; - attribute MEM_LPC_FILE of pdp_ram_31_0_0 : label is "fifo_64kx9.lpc"; - attribute MEM_INIT_FILE of pdp_ram_31_0_0 : label is ""; - attribute CSDECODE_B of pdp_ram_31_0_0 : label is "0b001"; - attribute CSDECODE_A of pdp_ram_31_0_0 : label is "0b001"; - attribute WRITEMODE_B of pdp_ram_31_0_0 : label is "NORMAL"; - attribute WRITEMODE_A of pdp_ram_31_0_0 : label is "NORMAL"; - attribute GSR of pdp_ram_31_0_0 : label is "DISABLED"; - attribute RESETMODE of pdp_ram_31_0_0 : label is "ASYNC"; - attribute REGMODE_B of pdp_ram_31_0_0 : label is "NOREG"; - attribute REGMODE_A of pdp_ram_31_0_0 : label is "NOREG"; - attribute DATA_WIDTH_B of pdp_ram_31_0_0 : label is "9"; - attribute DATA_WIDTH_A of pdp_ram_31_0_0 : label is "9"; - attribute GSR of FF_176 : label is "ENABLED"; - attribute GSR of FF_175 : label is "ENABLED"; - attribute GSR of FF_174 : label is "ENABLED"; - attribute GSR of FF_173 : label is "ENABLED"; - attribute GSR of FF_172 : label is "ENABLED"; - attribute GSR of FF_171 : label is "ENABLED"; - attribute GSR of FF_170 : label is "ENABLED"; - attribute GSR of FF_169 : label is "ENABLED"; - attribute GSR of FF_168 : label is "ENABLED"; - attribute GSR of FF_167 : label is "ENABLED"; - attribute GSR of FF_166 : label is "ENABLED"; - attribute GSR of FF_165 : label is "ENABLED"; - attribute GSR of FF_164 : label is "ENABLED"; - attribute GSR of FF_163 : label is "ENABLED"; - attribute GSR of FF_162 : label is "ENABLED"; - attribute GSR of FF_161 : label is "ENABLED"; - attribute GSR of FF_160 : label is "ENABLED"; - attribute GSR of FF_159 : label is "ENABLED"; - attribute GSR of FF_158 : label is "ENABLED"; - attribute GSR of FF_157 : label is "ENABLED"; - attribute GSR of FF_156 : label is "ENABLED"; - attribute GSR of FF_155 : label is "ENABLED"; - attribute GSR of FF_154 : label is "ENABLED"; - attribute GSR of FF_153 : label is "ENABLED"; - attribute GSR of FF_152 : label is "ENABLED"; - attribute GSR of FF_151 : label is "ENABLED"; - attribute GSR of FF_150 : label is "ENABLED"; - attribute GSR of FF_149 : label is "ENABLED"; - attribute GSR of FF_148 : label is "ENABLED"; - attribute GSR of FF_147 : label is "ENABLED"; - attribute GSR of FF_146 : label is "ENABLED"; - attribute GSR of FF_145 : label is "ENABLED"; - attribute GSR of FF_144 : label is "ENABLED"; - attribute GSR of FF_143 : label is "ENABLED"; - attribute GSR of FF_142 : label is "ENABLED"; - attribute GSR of FF_141 : label is "ENABLED"; - attribute GSR of FF_140 : label is "ENABLED"; - attribute GSR of FF_139 : label is "ENABLED"; - attribute GSR of FF_138 : label is "ENABLED"; - attribute GSR of FF_137 : label is "ENABLED"; - attribute GSR of FF_136 : label is "ENABLED"; - attribute GSR of FF_135 : label is "ENABLED"; - attribute GSR of FF_134 : label is "ENABLED"; - attribute GSR of FF_133 : label is "ENABLED"; - attribute GSR of FF_132 : label is "ENABLED"; - attribute GSR of FF_131 : label is "ENABLED"; - attribute GSR of FF_130 : label is "ENABLED"; - attribute GSR of FF_129 : label is "ENABLED"; - attribute GSR of FF_128 : label is "ENABLED"; - attribute GSR of FF_127 : label is "ENABLED"; - attribute GSR of FF_126 : label is "ENABLED"; - attribute GSR of FF_125 : label is "ENABLED"; - attribute GSR of FF_124 : label is "ENABLED"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - attribute NGD_DRC_MASK : integer; - attribute NGD_DRC_MASK of Structure : architecture is 1; - -begin - -- component instantiation statements - AND2_t34: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_11: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t33: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_10: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t32: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t31: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t30: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t29: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t28: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t27: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t26: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t25: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t24: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t23: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t22: XOR2 - port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9); - - XOR2_t21: XOR2 - port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10); - - XOR2_t20: XOR2 - port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11); - - XOR2_t19: XOR2 - port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12); - - XOR2_t18: XOR2 - port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13); - - XOR2_t17: XOR2 - port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14); - - XOR2_t16: XOR2 - port map (A=>wcount_15, B=>wcount_16, Z=>w_gdata_15); - - XOR2_t15: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t14: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t13: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t12: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t11: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t10: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t9: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t8: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t7: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - XOR2_t6: XOR2 - port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9); - - XOR2_t5: XOR2 - port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10); - - XOR2_t4: XOR2 - port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11); - - XOR2_t3: XOR2 - port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12); - - XOR2_t2: XOR2 - port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13); - - XOR2_t1: XOR2 - port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14); - - XOR2_t0: XOR2 - port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15); - - INV_9: INV - port map (A=>wptr_11, Z=>wptr_11_inv); - - INV_8: INV - port map (A=>wptr_12, Z=>wptr_12_inv); - - INV_7: INV - port map (A=>wptr_13, Z=>wptr_13_inv); - - INV_6: INV - port map (A=>wptr_14, Z=>wptr_14_inv); - - INV_5: INV - port map (A=>wptr_15, Z=>wptr_15_inv); - - LUT4_187: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet); - - LUT4_186: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec0_p00); - - INV_4: INV - port map (A=>rptr_11, Z=>rptr_11_inv); - - INV_3: INV - port map (A=>rptr_12, Z=>rptr_12_inv); - - INV_2: INV - port map (A=>rptr_13, Z=>rptr_13_inv); - - INV_1: INV - port map (A=>rptr_14, Z=>rptr_14_inv); - - INV_0: INV - port map (A=>rptr_15, Z=>rptr_15_inv); - - LUT4_185: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_1); - - LUT4_184: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_1, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec1_r10); - - LUT4_183: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_2); - - LUT4_182: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_2, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec2_p01); - - LUT4_181: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_3); - - LUT4_180: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_3, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec3_r11); - - LUT4_179: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_4); - - LUT4_178: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_4, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec4_p02); - - LUT4_177: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_5); - - LUT4_176: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_5, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec5_r12); - - LUT4_175: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_6); - - LUT4_174: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_6, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec6_p03); - - LUT4_173: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_7); - - LUT4_172: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_7, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec7_r13); - - LUT4_171: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_8); - - LUT4_170: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_8, AD2=>wptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec8_p04); - - LUT4_169: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_9); - - LUT4_168: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_9, AD2=>rptr_15_inv, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec9_r14); - - LUT4_167: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_10); - - LUT4_166: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_10, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec10_p05); - - LUT4_165: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_11); - - LUT4_164: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_11, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec11_r15); - - LUT4_163: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_12); - - LUT4_162: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_12, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec12_p06); - - LUT4_161: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_13); - - LUT4_160: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_13, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec13_r16); - - LUT4_159: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_14); - - LUT4_158: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_14, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec14_p07); - - LUT4_157: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_15); - - LUT4_156: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_15, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec15_r17); - - LUT4_155: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_16); - - LUT4_154: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_16, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec16_p08); - - LUT4_153: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_17); - - LUT4_152: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_17, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec17_r18); - - LUT4_151: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_18); - - LUT4_150: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_18, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec18_p09); - - LUT4_149: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_19); - - LUT4_148: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_19, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec19_r19); - - LUT4_147: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_20); - - LUT4_146: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_20, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec20_p010); - - LUT4_145: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_21); - - LUT4_144: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_21, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec21_r110); - - LUT4_143: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_22); - - LUT4_142: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_22, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec22_p011); - - LUT4_141: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_23); - - LUT4_140: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_23, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec23_r111); - - LUT4_139: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_24); - - LUT4_138: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_24, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec24_p012); - - LUT4_137: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_25); - - LUT4_136: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_25, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec25_r112); - - LUT4_135: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_26); - - LUT4_134: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_26, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec26_p013); - - LUT4_133: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_27); - - LUT4_132: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_27, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec27_r113); - - LUT4_131: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_28); - - LUT4_130: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_28, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec28_p014); - - LUT4_129: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_29); - - LUT4_128: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_29, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec29_r114); - - LUT4_127: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, AD0=>wptr_14, - DO0=>func_and_inet_30); - - LUT4_126: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_30, AD2=>wptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec30_p015); - - LUT4_125: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_31); - - LUT4_124: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_31, AD2=>rptr_15_inv, - AD1=>scuba_vhi, AD0=>scuba_vhi, DO0=>dec31_r115); - - LUT4_123: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_32); - - LUT4_122: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_32, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec32_p016); - - LUT4_121: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_33); - - LUT4_120: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_33, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec33_r116); - - LUT4_119: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_34); - - LUT4_118: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_34, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec34_p017); - - LUT4_117: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_35); - - LUT4_116: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_35, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec35_r117); - - LUT4_115: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_36); - - LUT4_114: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_36, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec36_p018); - - LUT4_113: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_37); - - LUT4_112: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_37, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec37_r118); - - LUT4_111: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14_inv, DO0=>func_and_inet_38); - - LUT4_110: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_38, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec38_p019); - - LUT4_109: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14_inv, DO0=>func_and_inet_39); - - LUT4_108: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_39, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec39_r119); - - LUT4_107: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_40); - - LUT4_106: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_40, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec40_p020); - - LUT4_105: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_41); - - LUT4_104: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_41, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec41_r120); - - LUT4_103: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_42); - - LUT4_102: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_42, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec42_p021); - - LUT4_101: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_43); - - LUT4_100: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_43, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec43_r121); - - LUT4_99: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_44); - - LUT4_98: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_44, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec44_p022); - - LUT4_97: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_45); - - LUT4_96: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_45, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec45_r122); - - LUT4_95: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14_inv, DO0=>func_and_inet_46); - - LUT4_94: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_46, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec46_p023); - - LUT4_93: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14_inv, DO0=>func_and_inet_47); - - LUT4_92: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_47, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec47_r123); - - LUT4_91: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_48); - - LUT4_90: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_48, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec48_p024); - - LUT4_89: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_49); - - LUT4_88: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_49, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec49_r124); - - LUT4_87: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_50); - - LUT4_86: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_50, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec50_p025); - - LUT4_85: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_51); - - LUT4_84: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_51, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec51_r125); - - LUT4_83: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_52); - - LUT4_82: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_52, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec52_p026); - - LUT4_81: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_53); - - LUT4_80: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_53, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec53_r126); - - LUT4_79: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13_inv, - AD0=>wptr_14, DO0=>func_and_inet_54); - - LUT4_78: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_54, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec54_p027); - - LUT4_77: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13_inv, - AD0=>rptr_14, DO0=>func_and_inet_55); - - LUT4_76: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_55, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec55_r127); - - LUT4_75: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_56); - - LUT4_74: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_56, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec56_p028); - - LUT4_73: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_57); - - LUT4_72: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_57, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec57_r128); - - LUT4_71: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12_inv, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_58); - - LUT4_70: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_58, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec58_p029); - - LUT4_69: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12_inv, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_59); - - LUT4_68: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_59, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec59_r129); - - LUT4_67: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11_inv, AD2=>wptr_12, AD1=>wptr_13, - AD0=>wptr_14, DO0=>func_and_inet_60); - - LUT4_66: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_60, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec60_p030); - - LUT4_65: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11_inv, AD2=>rptr_12, AD1=>rptr_13, - AD0=>rptr_14, DO0=>func_and_inet_61); - - LUT4_64: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_61, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec61_r130); - - LUT4_63: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>wptr_11, AD2=>wptr_12, AD1=>wptr_13, AD0=>wptr_14, - DO0=>func_and_inet_62); - - LUT4_62: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_62, AD2=>wptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec62_p031); - - LUT4_61: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>rptr_11, AD2=>rptr_12, AD1=>rptr_13, AD0=>rptr_14, - DO0=>func_and_inet_63); - - LUT4_60: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8000") - -- synopsys translate_on - port map (AD3=>func_and_inet_63, AD2=>rptr_15, AD1=>scuba_vhi, - AD0=>scuba_vhi, DO0=>dec63_r131); - - LUT4_59: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, - AD1=>w_gcount_r215, AD0=>w_gcount_r216, - DO0=>w_g2b_xor_cluster_0); - - LUT4_58: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, - AD1=>w_gcount_r211, AD0=>w_gcount_r212, - DO0=>w_g2b_xor_cluster_1); - - LUT4_57: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, - DO0=>w_g2b_xor_cluster_2); - - LUT4_56: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>w_gcount_r24, - DO0=>w_g2b_xor_cluster_3); - - LUT4_55: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r215, AD2=>w_gcount_r216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r15); - - LUT4_54: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, - AD1=>w_gcount_r216, AD0=>scuba_vlo, DO0=>wcount_r14); - - LUT4_53: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>wcount_r15, DO0=>wcount_r12); - - LUT4_52: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, - AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11); - - LUT4_51: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, - AD1=>w_gcount_r212, AD0=>w_g2b_xor_cluster_0, - DO0=>wcount_r10); - - LUT4_50: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r9); - - LUT4_49: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r28, AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_48: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r27, AD0=>w_gcount_r28, DO0=>wcount_r7); - - LUT4_47: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_2_1); - - LUT4_46: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r6); - - LUT4_45: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r5); - - LUT4_44: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r24, DO0=>wcount_r4); - - LUT4_43: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1); - - LUT4_42: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, - DO0=>wcount_r3); - - LUT4_41: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>scuba_vlo, - DO0=>w_g2b_xor_cluster_3_2); - - LUT4_40: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, - DO0=>wcount_r2); - - LUT4_39: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, - DO0=>wcount_r1); - - LUT4_38: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>func_xor_inet); - - LUT4_37: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>func_xor_inet_1); - - LUT4_36: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, - AD1=>w_gcount_r210, AD0=>w_gcount_r211, DO0=>func_xor_inet_2); - - LUT4_35: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, - AD1=>w_gcount_r214, AD0=>w_gcount_r215, DO0=>func_xor_inet_3); - - LUT4_34: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_4); - - LUT4_33: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, - AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, - DO0=>func_xor_inet_5); - - LUT4_32: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r0); - - LUT4_31: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, - AD1=>r_gcount_w215, AD0=>r_gcount_w216, - DO0=>r_g2b_xor_cluster_0); - - LUT4_30: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, - AD1=>r_gcount_w211, AD0=>r_gcount_w212, - DO0=>r_g2b_xor_cluster_1); - - LUT4_29: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, - DO0=>r_g2b_xor_cluster_2); - - LUT4_28: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>r_gcount_w24, - DO0=>r_g2b_xor_cluster_3); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w15); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, - AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, - AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, - AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, - DO0=>rcount_w10); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_2_1); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, - DO0=>rcount_w3); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>scuba_vlo, - DO0=>r_g2b_xor_cluster_3_2); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, - DO0=>rcount_w2); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, - DO0=>rcount_w1); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet_6); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_7); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, - AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_8); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, - AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_9); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>func_xor_inet_10); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet_6, AD2=>func_xor_inet_7, - AD1=>func_xor_inet_8, AD0=>func_xor_inet_9, - DO0=>func_xor_inet_11); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>func_xor_inet_11, AD2=>func_xor_inet_10, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - pdp_ram_0_0_31: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec0_p00, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec1_r10, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, - DOB1=>mdout1_0_1, DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, - DOB4=>mdout1_0_4, DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, - DOB7=>mdout1_0_7, DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_1_0_30: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec2_p01, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec3_r11, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, - DOB1=>mdout1_1_1, DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, - DOB4=>mdout1_1_4, DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, - DOB7=>mdout1_1_7, DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_2_0_29: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec4_p02, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec5_r12, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_2_0, - DOB1=>mdout1_2_1, DOB2=>mdout1_2_2, DOB3=>mdout1_2_3, - DOB4=>mdout1_2_4, DOB5=>mdout1_2_5, DOB6=>mdout1_2_6, - DOB7=>mdout1_2_7, DOB8=>mdout1_2_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_3_0_28: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec6_p03, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec7_r13, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_3_0, - DOB1=>mdout1_3_1, DOB2=>mdout1_3_2, DOB3=>mdout1_3_3, - DOB4=>mdout1_3_4, DOB5=>mdout1_3_5, DOB6=>mdout1_3_6, - DOB7=>mdout1_3_7, DOB8=>mdout1_3_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_4_0_27: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec8_p04, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec9_r14, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_4_0, - DOB1=>mdout1_4_1, DOB2=>mdout1_4_2, DOB3=>mdout1_4_3, - DOB4=>mdout1_4_4, DOB5=>mdout1_4_5, DOB6=>mdout1_4_6, - DOB7=>mdout1_4_7, DOB8=>mdout1_4_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_5_0_26: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec10_p05, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec11_r15, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_5_0, - DOB1=>mdout1_5_1, DOB2=>mdout1_5_2, DOB3=>mdout1_5_3, - DOB4=>mdout1_5_4, DOB5=>mdout1_5_5, DOB6=>mdout1_5_6, - DOB7=>mdout1_5_7, DOB8=>mdout1_5_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_6_0_25: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec12_p06, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec13_r16, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_6_0, - DOB1=>mdout1_6_1, DOB2=>mdout1_6_2, DOB3=>mdout1_6_3, - DOB4=>mdout1_6_4, DOB5=>mdout1_6_5, DOB6=>mdout1_6_6, - DOB7=>mdout1_6_7, DOB8=>mdout1_6_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_7_0_24: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec14_p07, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec15_r17, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_7_0, - DOB1=>mdout1_7_1, DOB2=>mdout1_7_2, DOB3=>mdout1_7_3, - DOB4=>mdout1_7_4, DOB5=>mdout1_7_5, DOB6=>mdout1_7_6, - DOB7=>mdout1_7_7, DOB8=>mdout1_7_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_8_0_23: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec16_p08, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec17_r18, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_8_0, - DOB1=>mdout1_8_1, DOB2=>mdout1_8_2, DOB3=>mdout1_8_3, - DOB4=>mdout1_8_4, DOB5=>mdout1_8_5, DOB6=>mdout1_8_6, - DOB7=>mdout1_8_7, DOB8=>mdout1_8_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_9_0_22: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec18_p09, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec19_r19, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_9_0, - DOB1=>mdout1_9_1, DOB2=>mdout1_9_2, DOB3=>mdout1_9_3, - DOB4=>mdout1_9_4, DOB5=>mdout1_9_5, DOB6=>mdout1_9_6, - DOB7=>mdout1_9_7, DOB8=>mdout1_9_8, DOB9=>open, DOB10=>open, - DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, - DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_10_0_21: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec20_p010, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec21_r110, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_10_0, - DOB1=>mdout1_10_1, DOB2=>mdout1_10_2, DOB3=>mdout1_10_3, - DOB4=>mdout1_10_4, DOB5=>mdout1_10_5, DOB6=>mdout1_10_6, - DOB7=>mdout1_10_7, DOB8=>mdout1_10_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_11_0_20: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec22_p011, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec23_r111, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_11_0, - DOB1=>mdout1_11_1, DOB2=>mdout1_11_2, DOB3=>mdout1_11_3, - DOB4=>mdout1_11_4, DOB5=>mdout1_11_5, DOB6=>mdout1_11_6, - DOB7=>mdout1_11_7, DOB8=>mdout1_11_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_12_0_19: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec24_p012, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec25_r112, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_12_0, - DOB1=>mdout1_12_1, DOB2=>mdout1_12_2, DOB3=>mdout1_12_3, - DOB4=>mdout1_12_4, DOB5=>mdout1_12_5, DOB6=>mdout1_12_6, - DOB7=>mdout1_12_7, DOB8=>mdout1_12_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_13_0_18: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec26_p013, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec27_r113, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_13_0, - DOB1=>mdout1_13_1, DOB2=>mdout1_13_2, DOB3=>mdout1_13_3, - DOB4=>mdout1_13_4, DOB5=>mdout1_13_5, DOB6=>mdout1_13_6, - DOB7=>mdout1_13_7, DOB8=>mdout1_13_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_14_0_17: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec28_p014, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec29_r114, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_14_0, - DOB1=>mdout1_14_1, DOB2=>mdout1_14_2, DOB3=>mdout1_14_3, - DOB4=>mdout1_14_4, DOB5=>mdout1_14_5, DOB6=>mdout1_14_6, - DOB7=>mdout1_14_7, DOB8=>mdout1_14_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_15_0_16: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec30_p015, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec31_r115, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_15_0, - DOB1=>mdout1_15_1, DOB2=>mdout1_15_2, DOB3=>mdout1_15_3, - DOB4=>mdout1_15_4, DOB5=>mdout1_15_5, DOB6=>mdout1_15_6, - DOB7=>mdout1_15_7, DOB8=>mdout1_15_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_16_0_15: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec32_p016, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec33_r116, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_16_0, - DOB1=>mdout1_16_1, DOB2=>mdout1_16_2, DOB3=>mdout1_16_3, - DOB4=>mdout1_16_4, DOB5=>mdout1_16_5, DOB6=>mdout1_16_6, - DOB7=>mdout1_16_7, DOB8=>mdout1_16_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_17_0_14: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec34_p017, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec35_r117, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_17_0, - DOB1=>mdout1_17_1, DOB2=>mdout1_17_2, DOB3=>mdout1_17_3, - DOB4=>mdout1_17_4, DOB5=>mdout1_17_5, DOB6=>mdout1_17_6, - DOB7=>mdout1_17_7, DOB8=>mdout1_17_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_18_0_13: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec36_p018, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec37_r118, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_18_0, - DOB1=>mdout1_18_1, DOB2=>mdout1_18_2, DOB3=>mdout1_18_3, - DOB4=>mdout1_18_4, DOB5=>mdout1_18_5, DOB6=>mdout1_18_6, - DOB7=>mdout1_18_7, DOB8=>mdout1_18_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_19_0_12: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec38_p019, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec39_r119, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_19_0, - DOB1=>mdout1_19_1, DOB2=>mdout1_19_2, DOB3=>mdout1_19_3, - DOB4=>mdout1_19_4, DOB5=>mdout1_19_5, DOB6=>mdout1_19_6, - DOB7=>mdout1_19_7, DOB8=>mdout1_19_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_20_0_11: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec40_p020, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec41_r120, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_20_0, - DOB1=>mdout1_20_1, DOB2=>mdout1_20_2, DOB3=>mdout1_20_3, - DOB4=>mdout1_20_4, DOB5=>mdout1_20_5, DOB6=>mdout1_20_6, - DOB7=>mdout1_20_7, DOB8=>mdout1_20_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_21_0_10: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec42_p021, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec43_r121, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_21_0, - DOB1=>mdout1_21_1, DOB2=>mdout1_21_2, DOB3=>mdout1_21_3, - DOB4=>mdout1_21_4, DOB5=>mdout1_21_5, DOB6=>mdout1_21_6, - DOB7=>mdout1_21_7, DOB8=>mdout1_21_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_22_0_9: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec44_p022, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec45_r122, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_22_0, - DOB1=>mdout1_22_1, DOB2=>mdout1_22_2, DOB3=>mdout1_22_3, - DOB4=>mdout1_22_4, DOB5=>mdout1_22_5, DOB6=>mdout1_22_6, - DOB7=>mdout1_22_7, DOB8=>mdout1_22_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_23_0_8: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec46_p023, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec47_r123, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_23_0, - DOB1=>mdout1_23_1, DOB2=>mdout1_23_2, DOB3=>mdout1_23_3, - DOB4=>mdout1_23_4, DOB5=>mdout1_23_5, DOB6=>mdout1_23_6, - DOB7=>mdout1_23_7, DOB8=>mdout1_23_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_24_0_7: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec48_p024, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec49_r124, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_24_0, - DOB1=>mdout1_24_1, DOB2=>mdout1_24_2, DOB3=>mdout1_24_3, - DOB4=>mdout1_24_4, DOB5=>mdout1_24_5, DOB6=>mdout1_24_6, - DOB7=>mdout1_24_7, DOB8=>mdout1_24_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_25_0_6: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec50_p025, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec51_r125, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_25_0, - DOB1=>mdout1_25_1, DOB2=>mdout1_25_2, DOB3=>mdout1_25_3, - DOB4=>mdout1_25_4, DOB5=>mdout1_25_5, DOB6=>mdout1_25_6, - DOB7=>mdout1_25_7, DOB8=>mdout1_25_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_26_0_5: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec52_p026, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec53_r126, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_26_0, - DOB1=>mdout1_26_1, DOB2=>mdout1_26_2, DOB3=>mdout1_26_3, - DOB4=>mdout1_26_4, DOB5=>mdout1_26_5, DOB6=>mdout1_26_6, - DOB7=>mdout1_26_7, DOB8=>mdout1_26_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_27_0_4: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec54_p027, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec55_r127, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_27_0, - DOB1=>mdout1_27_1, DOB2=>mdout1_27_2, DOB3=>mdout1_27_3, - DOB4=>mdout1_27_4, DOB5=>mdout1_27_5, DOB6=>mdout1_27_6, - DOB7=>mdout1_27_7, DOB8=>mdout1_27_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_28_0_3: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec56_p028, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec57_r128, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_28_0, - DOB1=>mdout1_28_1, DOB2=>mdout1_28_2, DOB3=>mdout1_28_3, - DOB4=>mdout1_28_4, DOB5=>mdout1_28_5, DOB6=>mdout1_28_6, - DOB7=>mdout1_28_7, DOB8=>mdout1_28_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_29_0_2: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec58_p029, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec59_r129, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_29_0, - DOB1=>mdout1_29_1, DOB2=>mdout1_29_2, DOB3=>mdout1_29_3, - DOB4=>mdout1_29_4, DOB5=>mdout1_29_5, DOB6=>mdout1_29_6, - DOB7=>mdout1_29_7, DOB8=>mdout1_29_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_30_0_1: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec60_p030, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec61_r130, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_30_0, - DOB1=>mdout1_30_1, DOB2=>mdout1_30_2, DOB3=>mdout1_30_3, - DOB4=>mdout1_30_4, DOB5=>mdout1_30_5, DOB6=>mdout1_30_6, - DOB7=>mdout1_30_7, DOB8=>mdout1_30_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - pdp_ram_31_0_0: DP16KB - -- synopsys translate_off - generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), - DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), - DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, - DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, - DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, - DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, - ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, - ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, - ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, - ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, - CSA0=>dec62_p031, CSA1=>scuba_vlo, CSA2=>scuba_vlo, - RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, - DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, - DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, - DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, - DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, - DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, - DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, - ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, - ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, - ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, - CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>dec63_r131, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, - DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, - DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, - DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, - DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_31_0, - DOB1=>mdout1_31_1, DOB2=>mdout1_31_2, DOB3=>mdout1_31_3, - DOB4=>mdout1_31_4, DOB5=>mdout1_31_5, DOB6=>mdout1_31_6, - DOB7=>mdout1_31_7, DOB8=>mdout1_31_8, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - - FF_176: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_175: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_174: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_173: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_172: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_171: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_170: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_169: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_168: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_167: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_166: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_10); - - FF_165: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_11); - - FF_164: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_12); - - FF_163: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_13); - - FF_162: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_14); - - FF_161: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_15); - - FF_160: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_16); - - FF_159: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_158: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_157: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_156: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_155: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_154: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_153: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_152: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_151: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_150: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_149: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_10); - - FF_148: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_11); - - FF_147: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_12); - - FF_146: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_13); - - FF_145: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_14); - - FF_144: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_15); - - FF_143: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_16); - - FF_142: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_141: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_140: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_139: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_138: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_137: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_136: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_135: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_134: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_133: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_132: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_10); - - FF_131: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_11); - - FF_130: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_12); - - FF_129: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_13); - - FF_128: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_14); - - FF_127: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_15); - - FF_126: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_16); - - FF_125: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_124: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_123: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_122: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_121: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_10); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_11); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_12); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_13); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_14); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_15); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_16); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_106: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_10); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_11); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_12); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_13); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_14); - - FF_93: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_15); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_16); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_10); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_11); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_12); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_13); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_14); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_15); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_16); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_11_ff); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_12, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_12_ff); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_13, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_13_ff); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_14_ff); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, - Q=>rptr_15_ff); - - FF_69: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_68: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_67: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_66: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_65: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_64: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_63: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_62: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_61: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_60: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_59: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r10); - - FF_58: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r11); - - FF_57: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r12); - - FF_56: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r13); - - FF_55: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r14); - - FF_54: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r15); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r16); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r210); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r211); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r212); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r213); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r214); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r215); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r16, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r216); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_11: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_9: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_8: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w210); - - FF_7: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w211); - - FF_6: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w212); - - FF_5: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w213); - - FF_4: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w214); - - FF_3: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w215); - - FF_2: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, - Q=>r_gcount_w216); - - FF_1: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - w_gctr_5: CU2 - port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, - NC0=>iwcount_10, NC1=>iwcount_11); - - w_gctr_6: CU2 - port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, - NC0=>iwcount_12, NC1=>iwcount_13); - - w_gctr_7: CU2 - port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, - NC0=>iwcount_14, NC1=>iwcount_15); - - w_gctr_8: CU2 - port map (CI=>co7, PC0=>wcount_16, PC1=>scuba_vlo, CO=>co8, - NC0=>iwcount_16, NC1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - r_gctr_5: CU2 - port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, - NC0=>ircount_10, NC1=>ircount_11); - - r_gctr_6: CU2 - port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, - NC0=>ircount_12, NC1=>ircount_13); - - r_gctr_7: CU2 - port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, - NC0=>ircount_14, NC1=>ircount_15); - - r_gctr_8: CU2 - port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8_1, - NC0=>ircount_16, NC1=>open); - - mux_8: MUX321 - port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, - D3=>mdout1_3_0, D4=>mdout1_4_0, D5=>mdout1_5_0, - D6=>mdout1_6_0, D7=>mdout1_7_0, D8=>mdout1_8_0, - D9=>mdout1_9_0, D10=>mdout1_10_0, D11=>mdout1_11_0, - D12=>mdout1_12_0, D13=>mdout1_13_0, D14=>mdout1_14_0, - D15=>mdout1_15_0, D16=>mdout1_16_0, D17=>mdout1_17_0, - D18=>mdout1_18_0, D19=>mdout1_19_0, D20=>mdout1_20_0, - D21=>mdout1_21_0, D22=>mdout1_22_0, D23=>mdout1_23_0, - D24=>mdout1_24_0, D25=>mdout1_25_0, D26=>mdout1_26_0, - D27=>mdout1_27_0, D28=>mdout1_28_0, D29=>mdout1_29_0, - D30=>mdout1_30_0, D31=>mdout1_31_0, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(0)); - - mux_7: MUX321 - port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, - D3=>mdout1_3_1, D4=>mdout1_4_1, D5=>mdout1_5_1, - D6=>mdout1_6_1, D7=>mdout1_7_1, D8=>mdout1_8_1, - D9=>mdout1_9_1, D10=>mdout1_10_1, D11=>mdout1_11_1, - D12=>mdout1_12_1, D13=>mdout1_13_1, D14=>mdout1_14_1, - D15=>mdout1_15_1, D16=>mdout1_16_1, D17=>mdout1_17_1, - D18=>mdout1_18_1, D19=>mdout1_19_1, D20=>mdout1_20_1, - D21=>mdout1_21_1, D22=>mdout1_22_1, D23=>mdout1_23_1, - D24=>mdout1_24_1, D25=>mdout1_25_1, D26=>mdout1_26_1, - D27=>mdout1_27_1, D28=>mdout1_28_1, D29=>mdout1_29_1, - D30=>mdout1_30_1, D31=>mdout1_31_1, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(1)); - - mux_6: MUX321 - port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, - D3=>mdout1_3_2, D4=>mdout1_4_2, D5=>mdout1_5_2, - D6=>mdout1_6_2, D7=>mdout1_7_2, D8=>mdout1_8_2, - D9=>mdout1_9_2, D10=>mdout1_10_2, D11=>mdout1_11_2, - D12=>mdout1_12_2, D13=>mdout1_13_2, D14=>mdout1_14_2, - D15=>mdout1_15_2, D16=>mdout1_16_2, D17=>mdout1_17_2, - D18=>mdout1_18_2, D19=>mdout1_19_2, D20=>mdout1_20_2, - D21=>mdout1_21_2, D22=>mdout1_22_2, D23=>mdout1_23_2, - D24=>mdout1_24_2, D25=>mdout1_25_2, D26=>mdout1_26_2, - D27=>mdout1_27_2, D28=>mdout1_28_2, D29=>mdout1_29_2, - D30=>mdout1_30_2, D31=>mdout1_31_2, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(2)); - - mux_5: MUX321 - port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, - D3=>mdout1_3_3, D4=>mdout1_4_3, D5=>mdout1_5_3, - D6=>mdout1_6_3, D7=>mdout1_7_3, D8=>mdout1_8_3, - D9=>mdout1_9_3, D10=>mdout1_10_3, D11=>mdout1_11_3, - D12=>mdout1_12_3, D13=>mdout1_13_3, D14=>mdout1_14_3, - D15=>mdout1_15_3, D16=>mdout1_16_3, D17=>mdout1_17_3, - D18=>mdout1_18_3, D19=>mdout1_19_3, D20=>mdout1_20_3, - D21=>mdout1_21_3, D22=>mdout1_22_3, D23=>mdout1_23_3, - D24=>mdout1_24_3, D25=>mdout1_25_3, D26=>mdout1_26_3, - D27=>mdout1_27_3, D28=>mdout1_28_3, D29=>mdout1_29_3, - D30=>mdout1_30_3, D31=>mdout1_31_3, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(3)); - - mux_4: MUX321 - port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, - D3=>mdout1_3_4, D4=>mdout1_4_4, D5=>mdout1_5_4, - D6=>mdout1_6_4, D7=>mdout1_7_4, D8=>mdout1_8_4, - D9=>mdout1_9_4, D10=>mdout1_10_4, D11=>mdout1_11_4, - D12=>mdout1_12_4, D13=>mdout1_13_4, D14=>mdout1_14_4, - D15=>mdout1_15_4, D16=>mdout1_16_4, D17=>mdout1_17_4, - D18=>mdout1_18_4, D19=>mdout1_19_4, D20=>mdout1_20_4, - D21=>mdout1_21_4, D22=>mdout1_22_4, D23=>mdout1_23_4, - D24=>mdout1_24_4, D25=>mdout1_25_4, D26=>mdout1_26_4, - D27=>mdout1_27_4, D28=>mdout1_28_4, D29=>mdout1_29_4, - D30=>mdout1_30_4, D31=>mdout1_31_4, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(4)); - - mux_3: MUX321 - port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, - D3=>mdout1_3_5, D4=>mdout1_4_5, D5=>mdout1_5_5, - D6=>mdout1_6_5, D7=>mdout1_7_5, D8=>mdout1_8_5, - D9=>mdout1_9_5, D10=>mdout1_10_5, D11=>mdout1_11_5, - D12=>mdout1_12_5, D13=>mdout1_13_5, D14=>mdout1_14_5, - D15=>mdout1_15_5, D16=>mdout1_16_5, D17=>mdout1_17_5, - D18=>mdout1_18_5, D19=>mdout1_19_5, D20=>mdout1_20_5, - D21=>mdout1_21_5, D22=>mdout1_22_5, D23=>mdout1_23_5, - D24=>mdout1_24_5, D25=>mdout1_25_5, D26=>mdout1_26_5, - D27=>mdout1_27_5, D28=>mdout1_28_5, D29=>mdout1_29_5, - D30=>mdout1_30_5, D31=>mdout1_31_5, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(5)); - - mux_2: MUX321 - port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, - D3=>mdout1_3_6, D4=>mdout1_4_6, D5=>mdout1_5_6, - D6=>mdout1_6_6, D7=>mdout1_7_6, D8=>mdout1_8_6, - D9=>mdout1_9_6, D10=>mdout1_10_6, D11=>mdout1_11_6, - D12=>mdout1_12_6, D13=>mdout1_13_6, D14=>mdout1_14_6, - D15=>mdout1_15_6, D16=>mdout1_16_6, D17=>mdout1_17_6, - D18=>mdout1_18_6, D19=>mdout1_19_6, D20=>mdout1_20_6, - D21=>mdout1_21_6, D22=>mdout1_22_6, D23=>mdout1_23_6, - D24=>mdout1_24_6, D25=>mdout1_25_6, D26=>mdout1_26_6, - D27=>mdout1_27_6, D28=>mdout1_28_6, D29=>mdout1_29_6, - D30=>mdout1_30_6, D31=>mdout1_31_6, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(6)); - - mux_1: MUX321 - port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, - D3=>mdout1_3_7, D4=>mdout1_4_7, D5=>mdout1_5_7, - D6=>mdout1_6_7, D7=>mdout1_7_7, D8=>mdout1_8_7, - D9=>mdout1_9_7, D10=>mdout1_10_7, D11=>mdout1_11_7, - D12=>mdout1_12_7, D13=>mdout1_13_7, D14=>mdout1_14_7, - D15=>mdout1_15_7, D16=>mdout1_16_7, D17=>mdout1_17_7, - D18=>mdout1_18_7, D19=>mdout1_19_7, D20=>mdout1_20_7, - D21=>mdout1_21_7, D22=>mdout1_22_7, D23=>mdout1_23_7, - D24=>mdout1_24_7, D25=>mdout1_25_7, D26=>mdout1_26_7, - D27=>mdout1_27_7, D28=>mdout1_28_7, D29=>mdout1_29_7, - D30=>mdout1_30_7, D31=>mdout1_31_7, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(7)); - - mux_0: MUX321 - port map (D0=>mdout1_0_8, D1=>mdout1_1_8, D2=>mdout1_2_8, - D3=>mdout1_3_8, D4=>mdout1_4_8, D5=>mdout1_5_8, - D6=>mdout1_6_8, D7=>mdout1_7_8, D8=>mdout1_8_8, - D9=>mdout1_9_8, D10=>mdout1_10_8, D11=>mdout1_11_8, - D12=>mdout1_12_8, D13=>mdout1_13_8, D14=>mdout1_14_8, - D15=>mdout1_15_8, D16=>mdout1_16_8, D17=>mdout1_17_8, - D18=>mdout1_18_8, D19=>mdout1_19_8, D20=>mdout1_20_8, - D21=>mdout1_21_8, D22=>mdout1_22_8, D23=>mdout1_23_8, - D24=>mdout1_24_8, D25=>mdout1_25_8, D26=>mdout1_26_8, - D27=>mdout1_27_8, D28=>mdout1_28_8, D29=>mdout1_29_8, - D30=>mdout1_30_8, D31=>mdout1_31_8, SD1=>rptr_11_ff, - SD2=>rptr_12_ff, SD3=>rptr_13_ff, SD4=>rptr_14_ff, - SD5=>rptr_15_ff, Z=>Q(8)); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, - B1=>wcount_r9, CI=>co3_2, GE=>co4_2); - - empty_cmp_5: AGEB2 - port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, - B1=>wcount_r11, CI=>co4_2, GE=>co5_2); - - empty_cmp_6: AGEB2 - port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, - B1=>w_g2b_xor_cluster_0, CI=>co5_2, GE=>co6_2); - - empty_cmp_7: AGEB2 - port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r14, - B1=>wcount_r15, CI=>co6_2, GE=>co7_2); - - empty_cmp_8: AGEB2 - port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, - B1=>scuba_vlo, CI=>co7_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, - B1=>rcount_w9, CI=>co3_3, GE=>co4_3); - - full_cmp_5: AGEB2 - port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, - B1=>rcount_w11, CI=>co4_3, GE=>co5_3); - - full_cmp_6: AGEB2 - port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, - B1=>r_g2b_xor_cluster_0, CI=>co5_3, GE=>co6_3); - - full_cmp_7: AGEB2 - port map (A0=>wcount_14, A1=>wcount_15, B0=>rcount_w14, - B1=>rcount_w15, CI=>co6_3, GE=>co7_3); - - full_cmp_8: AGEB2 - port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, - B1=>scuba_vlo, CI=>co7_3, GE=>full_d_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of fifo_64kx9 is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:MUX321 use entity ecp2m.MUX321(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/fifo_64kx9_generate.log b/gbe_ecp2m/ipcores/fifo_64kx9_generate.log deleted file mode 100644 index 0cdd257..0000000 --- a/gbe_ecp2m/ipcores/fifo_64kx9_generate.log +++ /dev/null @@ -1,48 +0,0 @@ -Starting process: module - -Starting process: - -SCUBA, Version Diamond (64-bit) 3.9.1.119 -Thu Jan 18 18:38:41 2018 - -Copyright (c) 1991-1994 by NeoCAD Inc. All rights reserved. -Copyright (c) 1995 AT&T Corp. All rights reserved. -Copyright (c) 1995-2001 Lucent Technologies Inc. All rights reserved. -Copyright (c) 2001 Agere Systems All rights reserved. -Copyright (c) 2002-2017 Lattice Semiconductor Corporation, All rights reserved. - -BEGIN SCUBA Module Synthesis - - Issued command : /d/jspc29/lattice/diamond/3.9_x64/ispfpga/bin/lin64/scuba -w -n fifo_64kx9 -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type fifodc -addr_width 16 -data_width 9 -num_words 65536 -rdata_width 9 -no_enable -pe -1 -pf -1 - Circuit name : fifo_64kx9 - Module type : ebfifo - Module Version : 5.8 - Ports : - Inputs : Data[8:0], WrClock, RdClock, WrEn, RdEn, Reset, RPReset - Outputs : Q[8:0], Empty, Full - I/O buffer : not inserted - EDIF output : fifo_64kx9.edn - VHDL output : fifo_64kx9.vhd - VHDL template : fifo_64kx9_tmpl.vhd - VHDL testbench : tb_fifo_64kx9_tmpl.vhd - VHDL purpose : for synthesis and simulation - Bus notation : big endian - Report output : fifo_64kx9.srp - Estimated Resource Usage: - LUT : 379 - EBR : 32 - Reg : 177 - -END SCUBA Module Synthesis - -File: fifo_64kx9.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe_ecp2m/ipcores/fifo_64kx9_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_64kx9_tmpl.vhd deleted file mode 100644 index 80fb22a..0000000 --- a/gbe_ecp2m/ipcores/fifo_64kx9_tmpl.vhd +++ /dev/null @@ -1,18 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond (64-bit) 3.9.1.119 --- Module Version: 5.8 --- Thu Jan 18 18:38:41 2018 - --- parameterized module component declaration -component fifo_64kx9 - port (Data: in std_logic_vector(8 downto 0); WrClock: in std_logic; - RdClock: in std_logic; WrEn: in std_logic; RdEn: in std_logic; - Reset: in std_logic; RPReset: in std_logic; - Q: out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic); -end component; - --- parameterized module component instance -__ : fifo_64kx9 - port map (Data(8 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, - RdEn=>__, Reset=>__, RPReset=>__, Q(8 downto 0)=>__, Empty=>__, - Full=>__); diff --git a/gbe_ecp2m/ipcores/ip_mem.lpc b/gbe_ecp2m/ipcores/ip_mem.lpc deleted file mode 100755 index 8383be6..0000000 --- a/gbe_ecp2m/ipcores/ip_mem.lpc +++ /dev/null @@ -1,57 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=RAM_DP_TRUE -CoreRevision=7.1 -ModuleName=ip_mem -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=03/29/2010 -Time=21:52:48 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -AAddress=256 -BAddress=256 -AData=32 -BData=32 -enByte=0 -ByteSize=9 -AadPipeline=0 -BadPipeline=0 -AinPipeline=0 -BinPipeline=0 -AoutPipeline=0 -BoutPipeline=1 -AMOR=0 -BMOR=0 -AInData=Registered -BInData=Registered -AAdControl=Registered -BAdControl=Registered -MemFile=/home/greg/projects/HubGen3/NewHub3/hub2/ipexpress/ip_mem/ip_mem.mem -MemFormat=orca -Reset=Sync -GSR=Enabled -WriteA=Normal -WriteB=Normal -Pad=0 -EnECC=0 -Optimization=Speed -Pipeline=0 diff --git a/gbe_ecp2m/ipcores/ip_mem.mem b/gbe_ecp2m/ipcores/ip_mem.mem deleted file mode 100755 index 836ca91..0000000 --- a/gbe_ecp2m/ipcores/ip_mem.mem +++ /dev/null @@ -1,277 +0,0 @@ -#Format=Address-Hex -#Depth=256 -#DataWidth=32 -#AddrRadix=3 -#DataRadix=3 - -00: 214397e9 -01: 0000001b -02: c0a80002 -03: 0000c350 -04: 023bdc00 -05: 00000013 -06: c0a80005 -07: 0000c350 -08: 00000578 -09: 00000000 -0a: 00000000 -0b: 00000000 -0c: 00000000 -0d: 00000000 -0e: 00000000 -0f: 00000000 - -10: 214397e9 -11: 0000001b -12: c0a80002 -13: 0000c351 -14: 023bdc01 -15: 00000013 -16: c0a80006 -17: 0000c350 -18: 00000578 -19: 00000000 -1a: 00000000 -1b: 00000000 -1c: 00000000 -1d: 00000000 -1e: 00000000 -1f: 00000000 - -20: 214397e9 -21: 0000001b -22: c0a80002 -23: 0000c352 -24: 023bdc02 -25: 00000013 -26: c0a80007 -27: 0000c350 -28: 00000578 -29: 00000000 -2a: 00000000 -2b: 00000000 -2c: 00000000 -2d: 00000000 -2e: 00000000 -2f: 00000000 - -30: 214397e9 -31: 0000001b -32: c0a80002 -33: 0000c353 -34: 023bdc03 -35: 00000013 -36: c0a80008 -37: 0000c350 -38: 00000578 -39: 00000000 -3a: 00000000 -3b: 00000000 -3c: 00000000 -3d: 00000000 -3e: 00000000 -3f: 00000000 - -40: 00000000 -41: 00000000 -42: 00000000 -43: 00000000 -44: 00000000 -45: 00000000 -46: 00000000 -47: 00000000 -48: 00000578 -49: 00000000 -4a: 00000000 -4b: 00000000 -4c: 00000000 -4d: 00000000 -4e: 00000000 -4f: 00000000 - -50: 00000000 -51: 00000000 -52: 00000000 -53: 00000000 -54: 00000000 -55: 00000000 -56: 00000000 -57: 00000000 -58: 00000578 -59: 00000000 -5a: 00000000 -5b: 00000000 -5c: 00000000 -5d: 00000000 -5e: 00000000 -5f: 00000000 - -60: 00000000 -61: 00000000 -62: 00000000 -63: 00000000 -64: 00000000 -65: 00000000 -66: 00000000 -67: 00000000 -68: 00000578 -69: 00000000 -6a: 00000000 -6b: 00000000 -6c: 00000000 -6d: 00000000 -6e: 00000000 -6f: 00000000 - -70: 00000000 -71: 00000000 -72: 00000000 -73: 00000000 -74: 00000000 -75: 00000000 -76: 00000000 -77: 00000000 -78: 00000578 -79: 00000000 -7a: 00000000 -7b: 00000000 -7c: 00000000 -7d: 00000000 -7e: 00000000 -7f: 00000000 - -80: 00000000 -81: 00000000 -82: 00000000 -83: 00000000 -84: 00000000 -85: 00000000 -86: 00000000 -87: 00000000 -88: 00000578 -89: 00000000 -8a: 00000000 -8b: 00000000 -8c: 00000000 -8d: 00000000 -8e: 00000000 -8f: 00000000 - -90: 00000000 -91: 00000000 -92: 00000000 -93: 00000000 -94: 00000000 -95: 00000000 -96: 00000000 -97: 00000000 -98: 00000578 -99: 00000000 -9a: 00000000 -9b: 00000000 -9c: 00000000 -9d: 00000000 -9e: 00000000 -9f: 00000000 - -a0: 00000000 -a1: 00000000 -a2: 00000000 -a3: 00000000 -a4: 00000000 -a5: 00000000 -a6: 00000000 -a7: 00000000 -a8: 00000578 -a9: 00000000 -aa: 00000000 -ab: 00000000 -ac: 00000000 -ad: 00000000 -ae: 00000000 -af: 00000000 - -b0: 00000000 -b1: 00000000 -b2: 00000000 -b3: 00000000 -b4: 00000000 -b5: 00000000 -b6: 00000000 -b7: 00000000 -b8: 00000578 -b9: 00000000 -ba: 00000000 -bb: 00000000 -bc: 00000000 -bd: 00000000 -be: 00000000 -bf: 00000000 - -c0: 00000000 -c1: 00000000 -c2: 00000000 -c3: 00000000 -c4: 00000000 -c5: 00000000 -c6: 00000000 -c7: 00000000 -c8: 00000578 -c9: 00000000 -ca: 00000000 -cb: 00000000 -cc: 00000000 -cd: 00000000 -ce: 00000000 -cf: 00000000 - -d0: 00000000 -d1: 00000000 -d2: 00000000 -d3: 00000000 -d4: 00000000 -d5: 00000000 -d6: 00000000 -d7: 00000000 -d8: 00000578 -d9: 00000000 -da: 00000000 -db: 00000000 -dc: 00000000 -dd: 00000000 -de: 00000000 -df: 00000000 - -e0: 00000000 -e1: 00000000 -e2: 00000000 -e3: 00000000 -e4: 00000000 -e5: 00000000 -e6: 00000000 -e7: 00000000 -e8: 00000578 -e9: 00000000 -ea: 00000000 -eb: 00000000 -ec: 00000000 -ed: 00000000 -ee: 00000000 -ef: 00000000 - -f0: 00000000 -f1: 00000000 -f2: 00000000 -f3: 00000000 -f4: 00000000 -f5: 00000000 -f6: 00000000 -f7: 00000000 -f8: 00000578 -f9: 00000000 -fa: 00000000 -fb: 00000000 -fc: 00000000 -fd: 00000000 -fe: 00000000 -ff: 00000000 diff --git a/gbe_ecp2m/ipcores/ip_mem.vhd b/gbe_ecp2m/ipcores/ip_mem.vhd deleted file mode 100755 index cfa2c6e..0000000 --- a/gbe_ecp2m/ipcores/ip_mem.vhd +++ /dev/null @@ -1,606 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 7.1 ---/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type bram -wp 11 -rp 1010 -data_width 32 -rdata_width 32 -num_rows 256 -outdataB REGISTERED -writemodeA NORMAL -writemodeB NORMAL -resetmode SYNC -memfile /home/greg/projects/HubGen3/NewHub3/hub2/ipexpress/ip_mem/ip_mem.mem -memformat orca -cascade -1 -e - --- Mon Mar 29 21:52:49 2010 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity ip_mem is - port ( - DataInA: in std_logic_vector(31 downto 0); - DataInB: in std_logic_vector(31 downto 0); - AddressA: in std_logic_vector(7 downto 0); - AddressB: in std_logic_vector(7 downto 0); - ClockA: in std_logic; - ClockB: in std_logic; - ClockEnA: in std_logic; - ClockEnB: in std_logic; - WrA: in std_logic; - WrB: in std_logic; - ResetA: in std_logic; - ResetB: in std_logic; - QA: out std_logic_vector(31 downto 0); - QB: out std_logic_vector(31 downto 0)); -end ip_mem; - -architecture Structure of ip_mem is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (INITVAL_3F : in String; INITVAL_3E : in String; - INITVAL_3D : in String; INITVAL_3C : in String; - INITVAL_3B : in String; INITVAL_3A : in String; - INITVAL_39 : in String; INITVAL_38 : in String; - INITVAL_37 : in String; INITVAL_36 : in String; - INITVAL_35 : in String; INITVAL_34 : in String; - INITVAL_33 : in String; INITVAL_32 : in String; - INITVAL_31 : in String; INITVAL_30 : in String; - INITVAL_2F : in String; INITVAL_2E : in String; - INITVAL_2D : in String; INITVAL_2C : in String; - INITVAL_2B : in String; INITVAL_2A : in String; - INITVAL_29 : in String; INITVAL_28 : in String; - INITVAL_27 : in String; INITVAL_26 : in String; - INITVAL_25 : in String; INITVAL_24 : in String; - INITVAL_23 : in String; INITVAL_22 : in String; - INITVAL_21 : in String; INITVAL_20 : in String; - INITVAL_1F : in String; INITVAL_1E : in String; - INITVAL_1D : in String; INITVAL_1C : in String; - INITVAL_1B : in String; INITVAL_1A : in String; - INITVAL_19 : in String; INITVAL_18 : in String; - INITVAL_17 : in String; INITVAL_16 : in String; - INITVAL_15 : in String; INITVAL_14 : in String; - INITVAL_13 : in String; INITVAL_12 : in String; - INITVAL_11 : in String; INITVAL_10 : in String; - INITVAL_0F : in String; INITVAL_0E : in String; - INITVAL_0D : in String; INITVAL_0C : in String; - INITVAL_0B : in String; INITVAL_0A : in String; - INITVAL_09 : in String; INITVAL_08 : in String; - INITVAL_07 : in String; INITVAL_06 : in String; - INITVAL_05 : in String; INITVAL_04 : in String; - INITVAL_03 : in String; INITVAL_02 : in String; - INITVAL_01 : in String; INITVAL_00 : in String; - GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute INITVAL_3F : string; - attribute INITVAL_3E : string; - attribute INITVAL_3D : string; - attribute INITVAL_3C : string; - attribute INITVAL_3B : string; - attribute INITVAL_3A : string; - attribute INITVAL_39 : string; - attribute INITVAL_38 : string; - attribute INITVAL_37 : string; - attribute INITVAL_36 : string; - attribute INITVAL_35 : string; - attribute INITVAL_34 : string; - attribute INITVAL_33 : string; - attribute INITVAL_32 : string; - attribute INITVAL_31 : string; - attribute INITVAL_30 : string; - attribute INITVAL_2F : string; - attribute INITVAL_2E : string; - attribute INITVAL_2D : string; - attribute INITVAL_2C : string; - attribute INITVAL_2B : string; - attribute INITVAL_2A : string; - attribute INITVAL_29 : string; - attribute INITVAL_28 : string; - attribute INITVAL_27 : string; - attribute INITVAL_26 : string; - attribute INITVAL_25 : string; - attribute INITVAL_24 : string; - attribute INITVAL_23 : string; - attribute INITVAL_22 : string; - attribute INITVAL_21 : string; - attribute INITVAL_20 : string; - attribute INITVAL_1F : string; - attribute INITVAL_1E : string; - attribute INITVAL_1D : string; - attribute INITVAL_1C : string; - attribute INITVAL_1B : string; - attribute INITVAL_1A : string; - attribute INITVAL_19 : string; - attribute INITVAL_18 : string; - attribute INITVAL_17 : string; - attribute INITVAL_16 : string; - attribute INITVAL_15 : string; - attribute INITVAL_14 : string; - attribute INITVAL_13 : string; - attribute INITVAL_12 : string; - attribute INITVAL_11 : string; - attribute INITVAL_10 : string; - attribute INITVAL_0F : string; - attribute INITVAL_0E : string; - attribute INITVAL_0D : string; - attribute INITVAL_0C : string; - attribute INITVAL_0B : string; - attribute INITVAL_0A : string; - attribute INITVAL_09 : string; - attribute INITVAL_08 : string; - attribute INITVAL_07 : string; - attribute INITVAL_06 : string; - attribute INITVAL_05 : string; - attribute INITVAL_04 : string; - attribute INITVAL_03 : string; - attribute INITVAL_02 : string; - attribute INITVAL_01 : string; - attribute INITVAL_00 : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute GSR : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute MEM_LPC_FILE of ip_mem_0_0_1 : label is "ip_mem.lpc"; - attribute MEM_INIT_FILE of ip_mem_0_0_1 : label is "ip_mem.mem"; - attribute INITVAL_3F of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3E of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3D of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3C of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3B of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3A of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_39 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_38 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_37 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_36 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_35 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_34 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_33 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_32 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_31 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_30 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2F of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2E of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2D of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2C of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2B of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2A of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_29 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_28 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_27 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_26 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_25 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_24 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_23 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_22 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_21 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_20 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1F of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1E of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1D of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1C of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1B of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1A of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_19 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_18 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_17 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_16 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_15 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_14 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_13 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_12 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_11 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_10 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0F of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_0E of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_0D of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_0C of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_0B of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_0A of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_09 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_08 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_07 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_06 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_05 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_04 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000"; - attribute INITVAL_03 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780C35000008000133DC030C353000020001B397E9"; - attribute INITVAL_02 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780C35000007000133DC020C352000020001B397E9"; - attribute INITVAL_01 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780C35000006000133DC010C351000020001B397E9"; - attribute INITVAL_00 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780C35000005000133DC000C350000020001B397E9"; - attribute CSDECODE_B of ip_mem_0_0_1 : label is "0b000"; - attribute CSDECODE_A of ip_mem_0_0_1 : label is "0b000"; - attribute WRITEMODE_B of ip_mem_0_0_1 : label is "NORMAL"; - attribute WRITEMODE_A of ip_mem_0_0_1 : label is "NORMAL"; - attribute GSR of ip_mem_0_0_1 : label is "DISABLED"; - attribute RESETMODE of ip_mem_0_0_1 : label is "SYNC"; - attribute REGMODE_B of ip_mem_0_0_1 : label is "OUTREG"; - attribute REGMODE_A of ip_mem_0_0_1 : label is "NOREG"; - attribute DATA_WIDTH_B of ip_mem_0_0_1 : label is "18"; - attribute DATA_WIDTH_A of ip_mem_0_0_1 : label is "18"; - attribute MEM_LPC_FILE of ip_mem_0_1_0 : label is "ip_mem.lpc"; - attribute MEM_INIT_FILE of ip_mem_0_1_0 : label is "ip_mem.mem"; - attribute INITVAL_3F of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3E of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3D of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3C of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3B of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3A of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_39 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_38 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_37 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_36 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_35 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_34 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_33 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_32 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_31 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_30 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2F of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2E of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2D of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2C of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2B of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2A of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_29 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_28 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_27 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_26 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_25 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_24 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_23 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_22 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_21 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_20 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1F of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1E of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1D of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1C of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1B of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1A of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_19 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_18 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_17 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_16 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_15 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_14 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_13 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_12 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_11 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_10 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0F of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0E of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0D of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0C of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0B of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0A of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_09 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_08 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_07 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_06 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_05 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_04 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_03 of ip_mem_0_1_0 : label is "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850"; - attribute INITVAL_02 of ip_mem_0_1_0 : label is "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850"; - attribute INITVAL_01 of ip_mem_0_1_0 : label is "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850"; - attribute INITVAL_00 of ip_mem_0_1_0 : label is "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850"; - attribute CSDECODE_B of ip_mem_0_1_0 : label is "0b000"; - attribute CSDECODE_A of ip_mem_0_1_0 : label is "0b000"; - attribute WRITEMODE_B of ip_mem_0_1_0 : label is "NORMAL"; - attribute WRITEMODE_A of ip_mem_0_1_0 : label is "NORMAL"; - attribute GSR of ip_mem_0_1_0 : label is "DISABLED"; - attribute RESETMODE of ip_mem_0_1_0 : label is "SYNC"; - attribute REGMODE_B of ip_mem_0_1_0 : label is "OUTREG"; - attribute REGMODE_A of ip_mem_0_1_0 : label is "NOREG"; - attribute DATA_WIDTH_B of ip_mem_0_1_0 : label is "18"; - attribute DATA_WIDTH_A of ip_mem_0_1_0 : label is "18"; - -begin - -- component instantiation statements - ip_mem_0_0_1: DP16KB - -- synopsys translate_off - generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0F=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0E=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0D=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0C=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0B=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_0A=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_09=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_08=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_07=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_06=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_05=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_04=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", - INITVAL_03=> "0x00000000000000000000000000000000000005780C35000008000133DC030C353000020001B397E9", - INITVAL_02=> "0x00000000000000000000000000000000000005780C35000007000133DC020C352000020001B397E9", - INITVAL_01=> "0x00000000000000000000000000000000000005780C35000006000133DC010C351000020001B397E9", - INITVAL_00=> "0x00000000000000000000000000000000000005780C35000005000133DC000C350000020001B397E9", - CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "SYNC", - REGMODE_B=> "OUTREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 18, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>DataInA(0), DIA1=>DataInA(1), DIA2=>DataInA(2), - DIA3=>DataInA(3), DIA4=>DataInA(4), DIA5=>DataInA(5), - DIA6=>DataInA(6), DIA7=>DataInA(7), DIA8=>DataInA(8), - DIA9=>DataInA(9), DIA10=>DataInA(10), DIA11=>DataInA(11), - DIA12=>DataInA(12), DIA13=>DataInA(13), DIA14=>DataInA(14), - DIA15=>DataInA(15), DIA16=>DataInA(16), DIA17=>DataInA(17), - ADA0=>scuba_vhi, ADA1=>scuba_vhi, ADA2=>scuba_vlo, - ADA3=>scuba_vlo, ADA4=>AddressA(0), ADA5=>AddressA(1), - ADA6=>AddressA(2), ADA7=>AddressA(3), ADA8=>AddressA(4), - ADA9=>AddressA(5), ADA10=>AddressA(6), ADA11=>AddressA(7), - ADA12=>scuba_vlo, ADA13=>scuba_vlo, CEA=>ClockEnA, - CLKA=>ClockA, WEA=>WrA, CSA0=>scuba_vlo, CSA1=>scuba_vlo, - CSA2=>scuba_vlo, RSTA=>ResetA, DIB0=>DataInB(0), - DIB1=>DataInB(1), DIB2=>DataInB(2), DIB3=>DataInB(3), - DIB4=>DataInB(4), DIB5=>DataInB(5), DIB6=>DataInB(6), - DIB7=>DataInB(7), DIB8=>DataInB(8), DIB9=>DataInB(9), - DIB10=>DataInB(10), DIB11=>DataInB(11), DIB12=>DataInB(12), - DIB13=>DataInB(13), DIB14=>DataInB(14), DIB15=>DataInB(15), - DIB16=>DataInB(16), DIB17=>DataInB(17), ADB0=>scuba_vhi, - ADB1=>scuba_vhi, ADB2=>scuba_vlo, ADB3=>scuba_vlo, - ADB4=>AddressB(0), ADB5=>AddressB(1), ADB6=>AddressB(2), - ADB7=>AddressB(3), ADB8=>AddressB(4), ADB9=>AddressB(5), - ADB10=>AddressB(6), ADB11=>AddressB(7), ADB12=>scuba_vlo, - ADB13=>scuba_vlo, CEB=>ClockEnB, CLKB=>ClockB, WEB=>WrB, - CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, - RSTB=>ResetB, DOA0=>QA(0), DOA1=>QA(1), DOA2=>QA(2), - DOA3=>QA(3), DOA4=>QA(4), DOA5=>QA(5), DOA6=>QA(6), - DOA7=>QA(7), DOA8=>QA(8), DOA9=>QA(9), DOA10=>QA(10), - DOA11=>QA(11), DOA12=>QA(12), DOA13=>QA(13), DOA14=>QA(14), - DOA15=>QA(15), DOA16=>QA(16), DOA17=>QA(17), DOB0=>QB(0), - DOB1=>QB(1), DOB2=>QB(2), DOB3=>QB(3), DOB4=>QB(4), - DOB5=>QB(5), DOB6=>QB(6), DOB7=>QB(7), DOB8=>QB(8), - DOB9=>QB(9), DOB10=>QB(10), DOB11=>QB(11), DOB12=>QB(12), - DOB13=>QB(13), DOB14=>QB(14), DOB15=>QB(15), DOB16=>QB(16), - DOB17=>QB(17)); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - ip_mem_0_1_0: DP16KB - -- synopsys translate_off - generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_09=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_08=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_07=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_06=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_05=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_04=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_03=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - INITVAL_02=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - INITVAL_01=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - INITVAL_00=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", - CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "SYNC", - REGMODE_B=> "OUTREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=> 18, - DATA_WIDTH_A=> 18) - -- synopsys translate_on - port map (DIA0=>DataInA(18), DIA1=>DataInA(19), - DIA2=>DataInA(20), DIA3=>DataInA(21), DIA4=>DataInA(22), - DIA5=>DataInA(23), DIA6=>DataInA(24), DIA7=>DataInA(25), - DIA8=>DataInA(26), DIA9=>DataInA(27), DIA10=>DataInA(28), - DIA11=>DataInA(29), DIA12=>DataInA(30), DIA13=>DataInA(31), - DIA14=>scuba_vlo, DIA15=>scuba_vlo, DIA16=>scuba_vlo, - DIA17=>scuba_vlo, ADA0=>scuba_vhi, ADA1=>scuba_vhi, - ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>AddressA(0), - ADA5=>AddressA(1), ADA6=>AddressA(2), ADA7=>AddressA(3), - ADA8=>AddressA(4), ADA9=>AddressA(5), ADA10=>AddressA(6), - ADA11=>AddressA(7), ADA12=>scuba_vlo, ADA13=>scuba_vlo, - CEA=>ClockEnA, CLKA=>ClockA, WEA=>WrA, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>ResetA, - DIB0=>DataInB(18), DIB1=>DataInB(19), DIB2=>DataInB(20), - DIB3=>DataInB(21), DIB4=>DataInB(22), DIB5=>DataInB(23), - DIB6=>DataInB(24), DIB7=>DataInB(25), DIB8=>DataInB(26), - DIB9=>DataInB(27), DIB10=>DataInB(28), DIB11=>DataInB(29), - DIB12=>DataInB(30), DIB13=>DataInB(31), DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vhi, ADB1=>scuba_vhi, ADB2=>scuba_vlo, - ADB3=>scuba_vlo, ADB4=>AddressB(0), ADB5=>AddressB(1), - ADB6=>AddressB(2), ADB7=>AddressB(3), ADB8=>AddressB(4), - ADB9=>AddressB(5), ADB10=>AddressB(6), ADB11=>AddressB(7), - ADB12=>scuba_vlo, ADB13=>scuba_vlo, CEB=>ClockEnB, - CLKB=>ClockB, WEB=>WrB, CSB0=>scuba_vlo, CSB1=>scuba_vlo, - CSB2=>scuba_vlo, RSTB=>ResetB, DOA0=>QA(18), DOA1=>QA(19), - DOA2=>QA(20), DOA3=>QA(21), DOA4=>QA(22), DOA5=>QA(23), - DOA6=>QA(24), DOA7=>QA(25), DOA8=>QA(26), DOA9=>QA(27), - DOA10=>QA(28), DOA11=>QA(29), DOA12=>QA(30), DOA13=>QA(31), - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>QB(18), DOB1=>QB(19), DOB2=>QB(20), DOB3=>QB(21), - DOB4=>QB(22), DOB5=>QB(23), DOB6=>QB(24), DOB7=>QB(25), - DOB8=>QB(26), DOB9=>QB(27), DOB10=>QB(28), DOB11=>QB(29), - DOB12=>QB(30), DOB13=>QB(31), DOB14=>open, DOB15=>open, - DOB16=>open, DOB17=>open); - -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of ip_mem is - for Structure - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/ip_mem_tmpl.vhd b/gbe_ecp2m/ipcores/ip_mem_tmpl.vhd deleted file mode 100755 index 7d1cea6..0000000 --- a/gbe_ecp2m/ipcores/ip_mem_tmpl.vhd +++ /dev/null @@ -1,23 +0,0 @@ --- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 7.1 --- Mon Mar 29 21:52:49 2010 - --- parameterized module component declaration -component ip_mem - port (DataInA: in std_logic_vector(31 downto 0); - DataInB: in std_logic_vector(31 downto 0); - AddressA: in std_logic_vector(7 downto 0); - AddressB: in std_logic_vector(7 downto 0); - ClockA: in std_logic; ClockB: in std_logic; - ClockEnA: in std_logic; ClockEnB: in std_logic; - WrA: in std_logic; WrB: in std_logic; ResetA: in std_logic; - ResetB: in std_logic; QA: out std_logic_vector(31 downto 0); - QB: out std_logic_vector(31 downto 0)); -end component; - --- parameterized module component instance -__ : ip_mem - port map (DataInA(31 downto 0)=>__, DataInB(31 downto 0)=>__, - AddressA(7 downto 0)=>__, AddressB(7 downto 0)=>__, ClockA=>__, - ClockB=>__, ClockEnA=>__, ClockEnB=>__, WrA=>__, WrB=>__, ResetA=>__, - ResetB=>__, QA(31 downto 0)=>__, QB(31 downto 0)=>__); diff --git a/gbe_ecp2m/ipcores/macInitDataInvWithMac.mem b/gbe_ecp2m/ipcores/macInitDataInvWithMac.mem deleted file mode 100755 index c93b822..0000000 --- a/gbe_ecp2m/ipcores/macInitDataInvWithMac.mem +++ /dev/null @@ -1,59 +0,0 @@ -#Format=Bin -#Depth=54 -#Width=8 -#AddrRadix=3 -#DataRadix=3 -#Data -00001111 -00001111 -10011001 -00000001 -11101110 -00000101 -00000000 -00000000 -00001100 -00000000 -00110100 -00010010 -01111000 -01010110 -10111100 -10011010 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -10000000 diff --git a/gbe_ecp2m/ipcores/mac_init_mem.lpc b/gbe_ecp2m/ipcores/mac_init_mem.lpc deleted file mode 100755 index 02c8376..0000000 --- a/gbe_ecp2m/ipcores/mac_init_mem.lpc +++ /dev/null @@ -1,45 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-6F900C -SpeedGrade=-6 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=ROM -CoreRevision=5.0 -ModuleName=mac_init_mem -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=08/20/2009 -Time=16:00:49 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -Address=54 -Data=8 -adPipeline=0 -inPipeline=0 -outPipeline=1 -MOR=0 -InData=Registered -AdControl=Registered -MemFile=/home/greg/NewHub2/hub2/ipexpress/mac_init_mem/macInitDataInvWithMac.mem -MemFormat=bin -Reset=Sync -Pad=0 -GSR=Enabled -EnECC=0 -Optimization=Speed -Pipeline=0 diff --git a/gbe_ecp2m/ipcores/mac_init_mem.vhd b/gbe_ecp2m/ipcores/mac_init_mem.vhd deleted file mode 100755 index c2c95e4..0000000 --- a/gbe_ecp2m/ipcores/mac_init_mem.vhd +++ /dev/null @@ -1,413 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.0 ---/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type bram -wp 00 -rp 1100 -addr_width 6 -data_width 8 -num_rows 54 -outdata REGISTERED -resetmode SYNC -memfile /home/greg/NewHub2/hub2/ipexpress/mac_init_mem/macInitDataInvWithMac.mem -memformat bin -cascade -1 -e - --- Thu Aug 20 16:00:49 2009 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity mac_init_mem is - port ( - Address: in std_logic_vector(5 downto 0); - OutClock: in std_logic; - OutClockEn: in std_logic; - Reset: in std_logic; - Q: out std_logic_vector(7 downto 0)); -end mac_init_mem; - -architecture Structure of mac_init_mem is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component DP16KB - -- synopsys translate_off - generic (INITVAL_3F : in String; INITVAL_3E : in String; - INITVAL_3D : in String; INITVAL_3C : in String; - INITVAL_3B : in String; INITVAL_3A : in String; - INITVAL_39 : in String; INITVAL_38 : in String; - INITVAL_37 : in String; INITVAL_36 : in String; - INITVAL_35 : in String; INITVAL_34 : in String; - INITVAL_33 : in String; INITVAL_32 : in String; - INITVAL_31 : in String; INITVAL_30 : in String; - INITVAL_2F : in String; INITVAL_2E : in String; - INITVAL_2D : in String; INITVAL_2C : in String; - INITVAL_2B : in String; INITVAL_2A : in String; - INITVAL_29 : in String; INITVAL_28 : in String; - INITVAL_27 : in String; INITVAL_26 : in String; - INITVAL_25 : in String; INITVAL_24 : in String; - INITVAL_23 : in String; INITVAL_22 : in String; - INITVAL_21 : in String; INITVAL_20 : in String; - INITVAL_1F : in String; INITVAL_1E : in String; - INITVAL_1D : in String; INITVAL_1C : in String; - INITVAL_1B : in String; INITVAL_1A : in String; - INITVAL_19 : in String; INITVAL_18 : in String; - INITVAL_17 : in String; INITVAL_16 : in String; - INITVAL_15 : in String; INITVAL_14 : in String; - INITVAL_13 : in String; INITVAL_12 : in String; - INITVAL_11 : in String; INITVAL_10 : in String; - INITVAL_0F : in String; INITVAL_0E : in String; - INITVAL_0D : in String; INITVAL_0C : in String; - INITVAL_0B : in String; INITVAL_0A : in String; - INITVAL_09 : in String; INITVAL_08 : in String; - INITVAL_07 : in String; INITVAL_06 : in String; - INITVAL_05 : in String; INITVAL_04 : in String; - INITVAL_03 : in String; INITVAL_02 : in String; - INITVAL_01 : in String; INITVAL_00 : in String; - GSR : in String; WRITEMODE_B : in String; - CSDECODE_B : in std_logic_vector(2 downto 0); - CSDECODE_A : in std_logic_vector(2 downto 0); - WRITEMODE_A : in String; RESETMODE : in String; - REGMODE_B : in String; REGMODE_A : in String; - DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer); - -- synopsys translate_on - port (DIA0: in std_logic; DIA1: in std_logic; - DIA2: in std_logic; DIA3: in std_logic; - DIA4: in std_logic; DIA5: in std_logic; - DIA6: in std_logic; DIA7: in std_logic; - DIA8: in std_logic; DIA9: in std_logic; - DIA10: in std_logic; DIA11: in std_logic; - DIA12: in std_logic; DIA13: in std_logic; - DIA14: in std_logic; DIA15: in std_logic; - DIA16: in std_logic; DIA17: in std_logic; - ADA0: in std_logic; ADA1: in std_logic; - ADA2: in std_logic; ADA3: in std_logic; - ADA4: in std_logic; ADA5: in std_logic; - ADA6: in std_logic; ADA7: in std_logic; - ADA8: in std_logic; ADA9: in std_logic; - ADA10: in std_logic; ADA11: in std_logic; - ADA12: in std_logic; ADA13: in std_logic; - CEA: in std_logic; CLKA: in std_logic; WEA: in std_logic; - CSA0: in std_logic; CSA1: in std_logic; - CSA2: in std_logic; RSTA: in std_logic; - DIB0: in std_logic; DIB1: in std_logic; - DIB2: in std_logic; DIB3: in std_logic; - DIB4: in std_logic; DIB5: in std_logic; - DIB6: in std_logic; DIB7: in std_logic; - DIB8: in std_logic; DIB9: in std_logic; - DIB10: in std_logic; DIB11: in std_logic; - DIB12: in std_logic; DIB13: in std_logic; - DIB14: in std_logic; DIB15: in std_logic; - DIB16: in std_logic; DIB17: in std_logic; - ADB0: in std_logic; ADB1: in std_logic; - ADB2: in std_logic; ADB3: in std_logic; - ADB4: in std_logic; ADB5: in std_logic; - ADB6: in std_logic; ADB7: in std_logic; - ADB8: in std_logic; ADB9: in std_logic; - ADB10: in std_logic; ADB11: in std_logic; - ADB12: in std_logic; ADB13: in std_logic; - CEB: in std_logic; CLKB: in std_logic; WEB: in std_logic; - CSB0: in std_logic; CSB1: in std_logic; - CSB2: in std_logic; RSTB: in std_logic; - DOA0: out std_logic; DOA1: out std_logic; - DOA2: out std_logic; DOA3: out std_logic; - DOA4: out std_logic; DOA5: out std_logic; - DOA6: out std_logic; DOA7: out std_logic; - DOA8: out std_logic; DOA9: out std_logic; - DOA10: out std_logic; DOA11: out std_logic; - DOA12: out std_logic; DOA13: out std_logic; - DOA14: out std_logic; DOA15: out std_logic; - DOA16: out std_logic; DOA17: out std_logic; - DOB0: out std_logic; DOB1: out std_logic; - DOB2: out std_logic; DOB3: out std_logic; - DOB4: out std_logic; DOB5: out std_logic; - DOB6: out std_logic; DOB7: out std_logic; - DOB8: out std_logic; DOB9: out std_logic; - DOB10: out std_logic; DOB11: out std_logic; - DOB12: out std_logic; DOB13: out std_logic; - DOB14: out std_logic; DOB15: out std_logic; - DOB16: out std_logic; DOB17: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute INITVAL_3F : string; - attribute INITVAL_3E : string; - attribute INITVAL_3D : string; - attribute INITVAL_3C : string; - attribute INITVAL_3B : string; - attribute INITVAL_3A : string; - attribute INITVAL_39 : string; - attribute INITVAL_38 : string; - attribute INITVAL_37 : string; - attribute INITVAL_36 : string; - attribute INITVAL_35 : string; - attribute INITVAL_34 : string; - attribute INITVAL_33 : string; - attribute INITVAL_32 : string; - attribute INITVAL_31 : string; - attribute INITVAL_30 : string; - attribute INITVAL_2F : string; - attribute INITVAL_2E : string; - attribute INITVAL_2D : string; - attribute INITVAL_2C : string; - attribute INITVAL_2B : string; - attribute INITVAL_2A : string; - attribute INITVAL_29 : string; - attribute INITVAL_28 : string; - attribute INITVAL_27 : string; - attribute INITVAL_26 : string; - attribute INITVAL_25 : string; - attribute INITVAL_24 : string; - attribute INITVAL_23 : string; - attribute INITVAL_22 : string; - attribute INITVAL_21 : string; - attribute INITVAL_20 : string; - attribute INITVAL_1F : string; - attribute INITVAL_1E : string; - attribute INITVAL_1D : string; - attribute INITVAL_1C : string; - attribute INITVAL_1B : string; - attribute INITVAL_1A : string; - attribute INITVAL_19 : string; - attribute INITVAL_18 : string; - attribute INITVAL_17 : string; - attribute INITVAL_16 : string; - attribute INITVAL_15 : string; - attribute INITVAL_14 : string; - attribute INITVAL_13 : string; - attribute INITVAL_12 : string; - attribute INITVAL_11 : string; - attribute INITVAL_10 : string; - attribute INITVAL_0F : string; - attribute INITVAL_0E : string; - attribute INITVAL_0D : string; - attribute INITVAL_0C : string; - attribute INITVAL_0B : string; - attribute INITVAL_0A : string; - attribute INITVAL_09 : string; - attribute INITVAL_08 : string; - attribute INITVAL_07 : string; - attribute INITVAL_06 : string; - attribute INITVAL_05 : string; - attribute INITVAL_04 : string; - attribute INITVAL_03 : string; - attribute INITVAL_02 : string; - attribute INITVAL_01 : string; - attribute INITVAL_00 : string; - attribute CSDECODE_B : string; - attribute CSDECODE_A : string; - attribute WRITEMODE_B : string; - attribute WRITEMODE_A : string; - attribute GSR : string; - attribute RESETMODE : string; - attribute REGMODE_B : string; - attribute REGMODE_A : string; - attribute DATA_WIDTH_B : string; - attribute DATA_WIDTH_A : string; - attribute MEM_LPC_FILE of mac_init_mem_0_0_0 : label is "mac_init_mem.lpc"; - attribute MEM_INIT_FILE of mac_init_mem_0_0_0 : label is "macInitDataInvWithMac.mem"; - attribute INITVAL_3F of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3E of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3D of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3C of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3B of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_3A of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_39 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_38 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_37 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_36 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_35 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_34 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_33 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_32 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_31 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_30 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2F of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2E of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2D of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2C of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2B of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_2A of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_29 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_28 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_27 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_26 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_25 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_24 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_23 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_22 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_21 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_20 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1F of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1E of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1D of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1C of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1B of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_1A of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_19 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_18 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_17 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_16 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_15 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_14 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_13 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_12 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_11 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_10 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0F of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0E of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0D of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0C of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0B of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_0A of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_09 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_08 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_07 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_06 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_05 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_04 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_03 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_02 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; - attribute INITVAL_01 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000008000000000000000000000000000000000000000000000000000"; - attribute INITVAL_00 of mac_init_mem_0_0_0 : label is "0x0000000000000000000000000000000000000000134BC0AC78024340000C0000000AEE0029901E0F"; - attribute CSDECODE_B of mac_init_mem_0_0_0 : label is "0b111"; - attribute CSDECODE_A of mac_init_mem_0_0_0 : label is "0b000"; - attribute WRITEMODE_B of mac_init_mem_0_0_0 : label is "NORMAL"; - attribute WRITEMODE_A of mac_init_mem_0_0_0 : label is "NORMAL"; - attribute GSR of mac_init_mem_0_0_0 : label is "DISABLED"; - attribute RESETMODE of mac_init_mem_0_0_0 : label is "SYNC"; - attribute REGMODE_B of mac_init_mem_0_0_0 : label is "NOREG"; - attribute REGMODE_A of mac_init_mem_0_0_0 : label is "OUTREG"; - attribute DATA_WIDTH_B of mac_init_mem_0_0_0 : label is "9"; - attribute DATA_WIDTH_A of mac_init_mem_0_0_0 : label is "9"; - -begin - -- component instantiation statements - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - mac_init_mem_0_0_0: DP16KB - -- synopsys translate_off - generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_0A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_09=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_08=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_07=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_06=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_05=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_04=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_03=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_02=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", - INITVAL_01=> "0x00000000000000000000000000008000000000000000000000000000000000000000000000000000", - INITVAL_00=> "0x0000000000000000000000000000000000000000134BC0AC78024340000C0000000AEE0029901E0F", - CSDECODE_B=> "111", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", - WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "SYNC", - REGMODE_B=> "NOREG", REGMODE_A=> "OUTREG", DATA_WIDTH_B=> 9, - DATA_WIDTH_A=> 9) - -- synopsys translate_on - port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, - DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, - DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, - DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, - DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, - DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, - ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>scuba_vlo, - ADA3=>Address(0), ADA4=>Address(1), ADA5=>Address(2), - ADA6=>Address(3), ADA7=>Address(4), ADA8=>Address(5), - ADA9=>scuba_vlo, ADA10=>scuba_vlo, ADA11=>scuba_vlo, - ADA12=>scuba_vlo, ADA13=>scuba_vlo, CEA=>OutClockEn, - CLKA=>OutClock, WEA=>scuba_vlo, CSA0=>scuba_vlo, - CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, - DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, - DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, - DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, - DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, - DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, - DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, - ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, - ADB3=>scuba_vlo, ADB4=>scuba_vlo, ADB5=>scuba_vlo, - ADB6=>scuba_vlo, ADB7=>scuba_vlo, ADB8=>scuba_vlo, - ADB9=>scuba_vlo, ADB10=>scuba_vlo, ADB11=>scuba_vlo, - ADB12=>scuba_vlo, ADB13=>scuba_vlo, CEB=>scuba_vhi, - CLKB=>scuba_vlo, WEB=>scuba_vlo, CSB0=>scuba_vlo, - CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>scuba_vlo, - DOA0=>Q(0), DOA1=>Q(1), DOA2=>Q(2), DOA3=>Q(3), DOA4=>Q(4), - DOA5=>Q(5), DOA6=>Q(6), DOA7=>Q(7), DOA8=>open, DOA9=>open, - DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, - DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, - DOB0=>open, DOB1=>open, DOB2=>open, DOB3=>open, DOB4=>open, - DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, - DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, - DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open); - -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of mac_init_mem is - for Structure - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:DP16KB use entity ecp2m.DP16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/mac_init_mem_tmpl.vhd b/gbe_ecp2m/ipcores/mac_init_mem_tmpl.vhd deleted file mode 100755 index 1aee5c2..0000000 --- a/gbe_ecp2m/ipcores/mac_init_mem_tmpl.vhd +++ /dev/null @@ -1,15 +0,0 @@ --- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23) --- Module Version: 5.0 --- Thu Aug 20 16:00:49 2009 - --- parameterized module component declaration -component mac_init_mem - port (Address: in std_logic_vector(5 downto 0); - OutClock: in std_logic; OutClockEn: in std_logic; - Reset: in std_logic; Q: out std_logic_vector(7 downto 0)); -end component; - --- parameterized module component instance -__ : mac_init_mem - port map (Address(5 downto 0)=>__, OutClock=>__, OutClockEn=>__, - Reset=>__, Q(7 downto 0)=>__); diff --git a/gbe_ecp2m/ipcores/serdes/.cvsignore b/gbe_ecp2m/ipcores/serdes/.cvsignore deleted file mode 100644 index 85eef7b..0000000 --- a/gbe_ecp2m/ipcores/serdes/.cvsignore +++ /dev/null @@ -1,9 +0,0 @@ -*.jhd -*.naf -*.srp -*.sym -*.log -*.pp -*.tft -*.readme -*tmpl.vhd diff --git a/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.lpc b/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.lpc deleted file mode 100755 index 4efe9cf..0000000 --- a/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.lpc +++ /dev/null @@ -1,140 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-6F900C -SpeedGrade=-6 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=7.0 -ModuleName=serdes_gbe_0_extclock_8b -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=08/20/2009 -Time=11:50:53 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -Protocol=Quad -mode=Gigabit Ethernet -Channel0=SINGLE -Channel1=DISABLE -Channel2=DISABLE -Channel3=DISABLE -Rate0=None -Rate1=None -Rate2=None -Rate3=None -TxRefClk=REFCLK -RxRefClk=REFCLK -ClkRate=1.25 -ClkMult=10X -CalClkRate=125.0 -DataWidth=8 -FPGAClkRate=125.0 -TxRefClkCM=REFCLK -RxRefClk0CM=REFCLK -RxRefClk1CM=REFCLK -RxRefClk2CM=REFCLK -RxRefClk3CM=REFCLK -ClkRateH=0.625 -ClkMultH=10XH -CalClkRateH=125.0 -DataWidthH=8 -FPGAClkRateH=62.5 -VCh0=0 -VCh1=0 -VCh2=0 -VCh3=0 -PreCh0=DISABLE -PreCh1=DISABLE -PreCh2=DISABLE -PreCh3=DISABLE -TxCh0=50 -TxCh1=50 -TxCh2=50 -TxCh3=50 -EqCh0=DISABLE -EqCh1=DISABLE -EqCh2=DISABLE -EqCh3=DISABLE -RxTermCh0=50 -RxTermCh1=50 -RxTermCh2=50 -RxTermCh3=50 -RxCoupCh0=AC -RxCoupCh1=AC -RxCoupCh2=AC -RxCoupCh3=AC -Loss=0 -CDRLoss=0 -TxTerm=50 -TxCoup=AC -TxPllLoss=0 -TxInvCh0=NORMAL -TxInvCh1=NORMAL -TxInvCh2=NORMAL -TxInvCh3=NORMAL -RxInvCh0=NORMAL -RxInvCh1=NORMAL -RxInvCh2=NORMAL -RxInvCh3=NORMAL -RxModeCh0=NORMAL -RxModeCh1=NORMAL -RxModeCh2=NORMAL -RxModeCh3=NORMAL -Plus=1100000101 -Minus=0011111010 -Mask=1111111111 -Align=AUTO -CTCCh0=NORMAL -CTCCh1=NORMAL -CTCCh2=NORMAL -CTCCh3=NORMAL -CC_MATCH1=0000000000 -CC_MATCH2=0000000000 -CC_MATCH3=0110111100 -CC_MATCH4=0001010000 -MinIPG=3 -High=9 -Low=7 -CC_MATCH_MODE=MATCH_3_4 -RxDataCh0=FALSE -RxDataCh1=FALSE -RxDataCh2=FALSE -RxDataCh3=FALSE -AlignerCh0=FALSE -AlignerCh1=FALSE -AlignerCh2=FALSE -AlignerCh3=FALSE -DetectCh0=FALSE -DetectCh1=FALSE -DetectCh2=FALSE -DetectCh3=FALSE -ELSMCh0=FALSE -ELSMCh1=FALSE -ELSMCh2=FALSE -ELSMCh3=FALSE -_teidleCh0=FALSE -_teidleCh1=FALSE -_teidleCh2=FALSE -_teidleCh3=FALSE -Ports0=FALSE -rdoPorts0=Serial Loopback -Ports1=FALSE -Ports2=TRUE -Ports3=FALSE -Ports3_1=FALSE -Ports4=FALSE diff --git a/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.txt b/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.txt deleted file mode 100755 index 860001f..0000000 --- a/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.txt +++ /dev/null @@ -1,49 +0,0 @@ - -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSC quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSC quad to the final design requirements. - -DEVICE_NAME "LFE2M100E" -PROTOCOL "GIGE" -CH0_MODE "SINGLE" -CH1_MODE "DISABLE" -CH2_MODE "DISABLE" -CH3_MODE "DISABLE" -PLL_SRC "REFCLK" -DATARANGE "MED" -CH0_CDR_SRC "REFCLK" -CH0_DATA_WIDTH "8" -CH0_REFCK_MULT "10X" -#REFCLK_RATE 125.0 -#FPGAINTCLK_RATE 125.0 -CH0_TDRV_AMP "0" -CH0_TX_PRE "DISABLE" -CH0_RTERM_TX "50" -CH0_RX_EQ "DISABLE" -CH0_RTERM_RX "50" -CH0_RX_DCC "AC" -LOS_THRESHOLD "0" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH0_TX_SB "NORMAL" -CH0_RX_SB "NORMAL" -CH0_8B10B "NORMAL" -COMMA_A "1100000101" -COMMA_B "0011111010" -COMMA_M "1111111111" -CH0_COMMA_ALIGN "AUTO" -CH0_CTC_BYP "BYPASS" -CC_MATCH1 "0000000000" -CC_MATCH2 "0000000000" -CC_MATCH3 "0110111100" -CC_MATCH4 "0001010000" -CC_MATCH_MODE "MATCH_3_4" -CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -OS_REFCK2CORE "1" -OS_PLLQCLKPORTS "0" -OS_INT_ALL "0" - diff --git a/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.vhd b/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.vhd deleted file mode 100755 index c3d0eda..0000000 --- a/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.vhd +++ /dev/null @@ -1,2182 +0,0 @@ - - ---synopsys translate_off - -library pcsc_work; -use pcsc_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSC is -GENERIC( - CONFIG_FILE : String := "serdes_gbe_0_extclock_8b.txt" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); - -end PCSC; - -architecture PCSC_arch of PCSC is - -component PCSC_sim -GENERIC( - CONFIG_FILE : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - -begin - -PCSC_sim_inst : PCSC_sim -generic map ( - CONFIG_FILE => CONFIG_FILE) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX => FFC_CK_CORE_RX, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_RX_Q_CLK_0 => FF_RX_Q_CLK_0, - FF_RX_Q_CLK_1 => FF_RX_Q_CLK_1, - FF_RX_Q_CLK_2 => FF_RX_Q_CLK_2, - FF_RX_Q_CLK_3 => FF_RX_Q_CLK_3, - FF_TX_F_CLK => FF_TX_F_CLK, - FF_TX_H_CLK => FF_TX_H_CLK, - FF_TX_Q_CLK => FF_TX_Q_CLK, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - OOB_OUT_0 => OOB_OUT_0, - OOB_OUT_1 => OOB_OUT_1, - OOB_OUT_2 => OOB_OUT_2, - OOB_OUT_3 => OOB_OUT_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7 - ); - -end PCSC_arch; - ---synopsys translate_on - ---synopsys translate_off -library ECP2; -use ECP2.components.all; ---synopsys translate_on - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_gbe_0_extclock_8b is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_extclock_8b.txt"); - port ( - refclkp, refclkn : in std_logic; - hdinp0, hdinn0 : in std_logic; - hdoutp0, hdoutn0 : out std_logic; - ff_rxiclk_ch0, ff_txiclk_ch0, ff_ebrd_clk_0 : in std_logic; - ff_txdata_ch0 : in std_logic_vector (7 downto 0); - ff_rxdata_ch0 : out std_logic_vector (7 downto 0); - ff_tx_k_cntrl_ch0 : in std_logic; - ff_rx_k_cntrl_ch0 : out std_logic; - ff_rxfullclk_ch0 : out std_logic; - ff_xmit_ch0 : in std_logic; - ff_correct_disp_ch0 : in std_logic; - ff_disp_err_ch0, ff_cv_ch0 : out std_logic; - ff_rx_even_ch0 : out std_logic; - ffc_rrst_ch0 : in std_logic; - ffc_lane_tx_rst_ch0 : in std_logic; - ffc_lane_rx_rst_ch0 : in std_logic; - ffc_txpwdnb_ch0 : in std_logic; - ffc_rxpwdnb_ch0 : in std_logic; - ffs_rlos_lo_ch0 : out std_logic; - ffs_ls_sync_status_ch0 : out std_logic; - ffs_rlol_ch0 : out std_logic; - oob_out_ch0 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - refck2core : out std_logic; - ffs_plol : out std_logic); - -end serdes_gbe_0_extclock_8b; - -architecture serdes_gbe_0_extclock_8b_arch of serdes_gbe_0_extclock_8b is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; -component PCSC ---synopsys translate_off -GENERIC( - CONFIG_FILE : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - attribute IS_ASB: string; - attribute IS_ASB of PCSC_INST : label is "ep5m00/data/ep5m00.acd"; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSC_INST : label is USER_CONFIG_FILE; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSC : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal fpsc_vlo : std_logic := '0'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); - --- pcs_quad instance -PCSC_INST : PCSC ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE) ---synopsys translate_on -port map ( - FFC_CK_CORE_TX => fpsc_vlo, - FFC_CK_CORE_RX => fpsc_vlo, - REFCLKP => refclkp, - REFCLKN => refclkn, - HDINP0 => hdinp0, - HDINN0 => hdinn0, - HDOUTP0 => hdoutp0, - HDOUTN0 => hdoutn0, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => ff_rxiclk_ch0, - FF_TXI_CLK_0 => ff_txiclk_ch0, - FF_EBRD_CLK_0 => ff_ebrd_clk_0, - FF_RX_F_CLK_0 => ff_rxfullclk_ch0, - FF_RX_H_CLK_0 => open, - FF_RX_Q_CLK_0 => open, - FF_TX_D_0_0 => ff_txdata_ch0(0), - FF_TX_D_0_1 => ff_txdata_ch0(1), - FF_TX_D_0_2 => ff_txdata_ch0(2), - FF_TX_D_0_3 => ff_txdata_ch0(3), - FF_TX_D_0_4 => ff_txdata_ch0(4), - FF_TX_D_0_5 => ff_txdata_ch0(5), - FF_TX_D_0_6 => ff_txdata_ch0(6), - FF_TX_D_0_7 => ff_txdata_ch0(7), - FF_TX_D_0_8 => ff_tx_k_cntrl_ch0, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => ff_xmit_ch0, - FF_TX_D_0_11 => ff_correct_disp_ch0, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => ff_rxdata_ch0(0), - FF_RX_D_0_1 => ff_rxdata_ch0(1), - FF_RX_D_0_2 => ff_rxdata_ch0(2), - FF_RX_D_0_3 => ff_rxdata_ch0(3), - FF_RX_D_0_4 => ff_rxdata_ch0(4), - FF_RX_D_0_5 => ff_rxdata_ch0(5), - FF_RX_D_0_6 => ff_rxdata_ch0(6), - FF_RX_D_0_7 => ff_rxdata_ch0(7), - FF_RX_D_0_8 => ff_rx_k_cntrl_ch0, - FF_RX_D_0_9 => ff_disp_err_ch0, - FF_RX_D_0_10 => ff_cv_ch0, - FF_RX_D_0_11 => ff_rx_even_ch0, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - FFC_RRST_0 => ffc_rrst_ch0, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => fpsc_vlo, - FFC_PFIFO_CLR_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFS_PCIE_DONE_0 => open, - FFS_PCIE_CON_0 => open, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => ffc_lane_tx_rst_ch0, - FFC_LANE_RX_RST_0 => ffc_lane_rx_rst_ch0, - FFC_TXPWDNB_0 => ffc_txpwdnb_ch0, - FFC_RXPWDNB_0 => ffc_rxpwdnb_ch0, - FFS_RLOS_LO_0 => ffs_rlos_lo_ch0, - FFS_LS_SYNC_STATUS_0 => ffs_ls_sync_status_ch0, - FFS_CC_UNDERRUN_0 => open, - FFS_CC_OVERRUN_0 => open, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - FFS_RLOL_0 => ffs_rlol_ch0, - OOB_OUT_0 => oob_out_ch0, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - HDOUTP1 => open, - HDOUTN1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_RX_Q_CLK_1 => open, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_PCIE_CON_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - OOB_OUT_1 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - HDOUTP2 => open, - HDOUTN2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_RX_Q_CLK_2 => open, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_PCIE_CON_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - OOB_OUT_2 => open, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - HDOUTP3 => open, - HDOUTN3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_RX_Q_CLK_3 => open, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_PCIE_CON_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - OOB_OUT_3 => open, - SCIWDATA0 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA7 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIRDATA0 => open, - SCIRDATA1 => open, - SCIRDATA2 => open, - SCIRDATA3 => open, - SCIRDATA4 => open, - SCIRDATA5 => open, - SCIRDATA6 => open, - SCIRDATA7 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_MACRO_RST => ffc_macro_rst, - FFC_QUAD_RST => ffc_quad_rst, - FFC_TRST => ffc_trst, - FF_TX_F_CLK => ff_txfullclk, - FF_TX_H_CLK => ff_txhalfclk, - FF_TX_Q_CLK => open, - REFCK2CORE => refck2core, - CIN0 => cin(0), - CIN1 => cin(1), - CIN2 => cin(2), - CIN3 => cin(3), - CIN4 => cin(4), - CIN5 => cin(5), - CIN6 => cin(6), - CIN7 => cin(7), - CIN8 => cin(8), - CIN9 => cin(9), - CIN10 => cin(10), - CIN11 => cin(11), - COUT0 => cout(0), - COUT1 => cout(1), - COUT2 => cout(2), - COUT3 => cout(3), - COUT4 => cout(4), - COUT5 => cout(5), - COUT6 => cout(6), - COUT7 => cout(7), - COUT8 => cout(8), - COUT9 => cout(9), - COUT10 => cout(10), - COUT11 => cout(11), - COUT12 => cout(12), - COUT13 => cout(13), - COUT14 => cout(14), - COUT15 => cout(15), - COUT16 => cout(16), - COUT17 => cout(17), - COUT18 => cout(18), - COUT19 => cout(19), - FFS_PLOL => ffs_plol); - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on - -end serdes_gbe_0_extclock_8b_arch ; diff --git a/gbe_ecp2m/ipcores/serdes_ch4.ipx b/gbe_ecp2m/ipcores/serdes_ch4.ipx deleted file mode 100644 index 82a5965..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.ipx +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/gbe_ecp2m/ipcores/serdes_ch4.jhd b/gbe_ecp2m/ipcores/serdes_ch4.jhd deleted file mode 100644 index 0338a8f..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.jhd +++ /dev/null @@ -1,7 +0,0 @@ -MODULE serdes_ch4 DEFIN serdes_ch4.vhd - SUBMODULE PCSD - INSTANCE PCSD_INST - SUBMODULE VHI - INSTANCE vhi_inst - SUBMODULE VLO - INSTANCE vlo_inst diff --git a/gbe_ecp2m/ipcores/serdes_ch4.lpc b/gbe_ecp2m/ipcores/serdes_ch4.lpc deleted file mode 100644 index daf6272..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.lpc +++ /dev/null @@ -1,258 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=8.1 -ModuleName=serdes_ch4 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=04/04/2012 -Time=20:33:49 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -_mode0=DISABLED -_mode1=DISABLED -_mode2=DISABLED -_mode3=RXTX -_protocol0=G8B10B -_protocol1=G8B10B -_protocol2=G8B10B -_protocol3=GIGE -_ldr0=DISABLED -_ldr1=DISABLED -_ldr2=DISABLED -_ldr3=DISABLED -_datarange=1.25 -_pll_txsrc=INTERNAL -_refclk_mult=10X -_refclk_rate=125.0 -_tx_protocol0=DISABLED -_tx_protocol1=DISABLED -_tx_protocol2=DISABLED -_tx_protocol3=GIGE -_tx_data_rate0=FULL -_tx_data_rate1=FULL -_tx_data_rate2=FULL -_tx_data_rate3=FULL -_tx_data_width0=8 -_tx_data_width1=8 -_tx_data_width2=8 -_tx_data_width3=8 -_tx_fifo0=ENABLED -_tx_fifo1=ENABLED -_tx_fifo2=ENABLED -_tx_fifo3=ENABLED -_tx_ficlk_rate0=125.0 -_tx_ficlk_rate1=125.0 -_tx_ficlk_rate2=125.0 -_tx_ficlk_rate3=125.0 -_pll_rxsrc0=EXTERNAL -_pll_rxsrc1=EXTERNAL -_pll_rxsrc2=EXTERNAL -_pll_rxsrc3=INTERNAL -Multiplier0= -Multiplier1= -Multiplier2= -Multiplier3= -_rx_datarange0=2.5 -_rx_datarange1=2.5 -_rx_datarange2=2.5 -_rx_datarange3=1.25 -_rx_protocol0=DISABLED -_rx_protocol1=DISABLED -_rx_protocol2=DISABLED -_rx_protocol3=GIGE -_rx_data_rate0=FULL -_rx_data_rate1=FULL -_rx_data_rate2=FULL -_rx_data_rate3=FULL -_rxrefclk_rate0=250.0 -_rxrefclk_rate1=250.0 -_rxrefclk_rate2=250.0 -_rxrefclk_rate3=125.0 -_rx_data_width0=8 -_rx_data_width1=8 -_rx_data_width2=8 -_rx_data_width3=8 -_rx_fifo0=ENABLED -_rx_fifo1=ENABLED -_rx_fifo2=ENABLED -_rx_fifo3=ENABLED -_rx_ficlk_rate0=250.0 -_rx_ficlk_rate1=250.0 -_rx_ficlk_rate2=250.0 -_rx_ficlk_rate3=125.0 -_tdrv_ch0=0 -_tdrv_ch1=0 -_tdrv_ch2=0 -_tdrv_ch3=0 -_tx_pre0=DISABLED -_tx_pre1=DISABLED -_tx_pre2=DISABLED -_tx_pre3=DISABLED -_rterm_tx0=50 -_rterm_tx1=50 -_rterm_tx2=50 -_rterm_tx3=50 -_rx_eq0=DISABLED -_rx_eq1=DISABLED -_rx_eq2=DISABLED -_rx_eq3=DISABLED -_rterm_rx0=50 -_rterm_rx1=50 -_rterm_rx2=50 -_rterm_rx3=50 -_rx_dcc0=AC -_rx_dcc1=AC -_rx_dcc2=AC -_rx_dcc3=AC -_los_threshold_mode0=LOS_E -_los_threshold_mode1=LOS_E -_los_threshold_mode2=LOS_E -_los_threshold_mode3=LOS_E -_los_threshold_lo0=2 -_los_threshold_lo1=2 -_los_threshold_lo2=2 -_los_threshold_lo3=2 -_los_threshold_hi0=7 -_los_threshold_hi1=7 -_los_threshold_hi2=7 -_los_threshold_hi3=7 -_pll_term=50 -_pll_dcc=AC -_pll_lol_set=0 -_tx_sb0=DISABLED -_tx_sb1=DISABLED -_tx_sb2=DISABLED -_tx_sb3=DISABLED -_tx_8b10b0=ENABLED -_tx_8b10b1=ENABLED -_tx_8b10b2=ENABLED -_tx_8b10b3=ENABLED -_rx_sb0=DISABLED -_rx_sb1=DISABLED -_rx_sb2=DISABLED -_rx_sb3=DISABLED -_ird0=DISABLED -_ird1=DISABLED -_ird2=DISABLED -_ird3=DISABLED -_rx_8b10b0=ENABLED -_rx_8b10b1=ENABLED -_rx_8b10b2=ENABLED -_rx_8b10b3=ENABLED -_rxwa0=ENABLED -_rxwa1=ENABLED -_rxwa2=ENABLED -_rxwa3=ENABLED -_ilsm0=ENABLED -_ilsm1=ENABLED -_ilsm2=ENABLED -_ilsm3=ENABLED -_scomma0=K28P157 -_scomma1=K28P157 -_scomma2=K28P157 -_scomma3=K28P5 -_comma_a0=1100000101 -_comma_a1=1100000101 -_comma_a2=1100000101 -_comma_a3=1100000101 -_comma_b0=0011111010 -_comma_b1=0011111010 -_comma_b2=0011111010 -_comma_b3=0011111010 -_comma_m0=1111111100 -_comma_m1=1111111100 -_comma_m2=1111111100 -_comma_m3=1111111111 -_ctc0=DISABLED -_ctc1=DISABLED -_ctc2=DISABLED -_ctc3=DISABLED -_cc_match_mode0=1 -_cc_match_mode1=1 -_cc_match_mode2=1 -_cc_match_mode3=2 -_k00=00 -_k01=00 -_k02=00 -_k03=01 -_k10=00 -_k11=00 -_k12=00 -_k13=00 -_k20=01 -_k21=01 -_k22=01 -_k23=01 -_k30=01 -_k31=01 -_k32=01 -_k33=00 -_byten00=00000000 -_byten01=00000000 -_byten02=00000000 -_byten03=10111100 -_byten10=00000000 -_byten11=00000000 -_byten12=00000000 -_byten13=01010000 -_byten20=00011100 -_byten21=00011100 -_byten22=00011100 -_byten23=10111100 -_byten30=00011100 -_byten31=00011100 -_byten32=00011100 -_byten33=01010000 -_cc_min_ipg0=3 -_cc_min_ipg1=3 -_cc_min_ipg2=3 -_cc_min_ipg3=3 -_cchmark=9 -_cclmark=7 -_loopback=DISABLED -_lbtype0=DISABLED -_lbtype1=DISABLED -_lbtype2=DISABLED -_lbtype3=DISABLED -_teidle_ch0=DISABLED -_teidle_ch1=DISABLED -_teidle_ch2=DISABLED -_teidle_ch3=DISABLED -_rst_gen=DISABLED -_rx_los_port0=Internal -_rx_los_port1=Internal -_rx_los_port2=Internal -_rx_los_port3=Internal -_sci_ports=DISABLED -_sci_int_port=DISABLED -_refck2core=DISABLED -Regen=auto -PAR1=0 -PARTrace1=0 -PAR3=0 -PARTrace3=0 - -[FilesGenerated] -serdes_ch4.pp=pp -serdes_ch4.tft=tft -serdes_ch4.txt=pcs_module -serdes_ch4.sym=sym diff --git a/gbe_ecp2m/ipcores/serdes_ch4.naf b/gbe_ecp2m/ipcores/serdes_ch4.naf deleted file mode 100644 index 22645f6..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.naf +++ /dev/null @@ -1,48 +0,0 @@ -hdinp_ch3 i -hdinn_ch3 i -hdoutp_ch3 o -hdoutn_ch3 o -rxiclk_ch3 i -txiclk_ch3 i -rx_full_clk_ch3 o -rx_half_clk_ch3 o -tx_full_clk_ch3 o -tx_half_clk_ch3 o -fpga_rxrefclk_ch3 i -txdata_ch3[7] i -txdata_ch3[6] i -txdata_ch3[5] i -txdata_ch3[4] i -txdata_ch3[3] i -txdata_ch3[2] i -txdata_ch3[1] i -txdata_ch3[0] i -tx_k_ch3 i -xmit_ch3 i -tx_disp_correct_ch3 i -rxdata_ch3[7] o -rxdata_ch3[6] o -rxdata_ch3[5] o -rxdata_ch3[4] o -rxdata_ch3[3] o -rxdata_ch3[2] o -rxdata_ch3[1] o -rxdata_ch3[0] o -rx_k_ch3 o -rx_disp_err_ch3 o -rx_cv_err_ch3 o -rx_serdes_rst_ch3_c i -sb_felb_ch3_c i -sb_felb_rst_ch3_c i -tx_pcs_rst_ch3_c i -tx_pwrup_ch3_c i -rx_pcs_rst_ch3_c i -rx_pwrup_ch3_c i -rx_los_low_ch3_s o -lsm_status_ch3_s o -rx_cdr_lol_ch3_s o -fpga_txrefclk i -tx_serdes_rst_c i -tx_pll_lol_qd_s o -rst_qd_c i -serdes_rst_qd_c i diff --git a/gbe_ecp2m/ipcores/serdes_ch4.pp b/gbe_ecp2m/ipcores/serdes_ch4.pp deleted file mode 100644 index 76f371d..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.pp +++ /dev/null @@ -1,191 +0,0 @@ -#define _device_name "LFE3-150EA" -#define _ch0_pll_rxsrc "REFCLK_EXT" -#define _ch0_mode "DISABLED" -#define _ch0_protocol "G8B10B" -#define _ch0_ldr "DISABLED" -#define _ch0_tx_data_rate "FULL" -#define _ch0_tx_data_width "8" -#define _ch0_tx_fifo "ENABLED" -#define _ch0_tx_ficlk_rate 125.0 -#define _ch0_rx_datarange "MEDHIGH" -#define _ch0_rx_data_rate "FULL" -#define _ch0_rxrefclk_rate "250.0" -#define _ch0_rx_data_width "8" -#define _ch0_rx_fifo "ENABLED" -#define _ch0_rx_ficlk_rate 250.0 -#define _ch0_tdrv "0" -#define _ch0_tx_pre "DISABLED" -#define _ch0_rterm_tx "50" -#define _ch0_rx_eq "DISABLED" -#define _ch0_rterm_rx "50" -#define _ch0_rx_dcc "AC" -#define _los_threshold_lo0 "2" -#define _ch0_tx_sb "DISABLED" -#define _ch0_tx_8b10b "ENABLED" -#define _ch0_rx_sb "DISABLED" -#define _ch0_ird "DISABLED" -#define _ch0_rx_8b10b "ENABLED" -#define _ch0_rxwa "ENABLED" -#define _ch0_ilsm "ENABLED" -#define _ch0_scomma "K28P157" -#define _ch0_comma_a "1100000101" -#define _ch0_comma_b "0011111010" -#define _ch0_comma_m "1111111100" -#define _ch0_ctc "DISABLED" -#define _ch0_cc_match_mode "1" -#define _ch0_byten "0000000000" -#define _ch0_byten1 "0000000000" -#define _ch0_byten2 "0100011100" -#define _ch0_byten3 "0100011100" -#define _ch0_cc_min_ipg "3" -#define _ch0_lbtype "DISABLED" -#define _ch0_teidle "DISABLED" -#define _ch0_rx_lol_port "INTERNAL" - -#define _ch1_pll_rxsrc "REFCLK_EXT" -#define _ch1_mode "DISABLED" -#define _ch1_protocol "G8B10B" -#define _ch1_ldr "DISABLED" -#define _ch1_tx_data_rate "FULL" -#define _ch1_tx_data_width "8" -#define _ch1_tx_fifo "ENABLED" -#define _ch1_tx_ficlk_rate 125.0 -#define _ch1_rx_datarange "MEDHIGH" -#define _ch1_rx_data_rate "FULL" -#define _ch1_rxrefclk_rate "250.0" -#define _ch1_rx_data_width "8" -#define _ch1_rx_fifo "ENABLED" -#define _ch1_rx_ficlk_rate 250.0 -#define _ch1_tdrv "0" -#define _ch1_tx_pre "DISABLED" -#define _ch1_rterm_tx "50" -#define _ch1_rx_eq "DISABLED" -#define _ch1_rterm_rx "50" -#define _ch1_rx_dcc "AC" -#define _los_threshold_lo1 "2" -#define _ch1_tx_sb "DISABLED" -#define _ch1_tx_8b10b "ENABLED" -#define _ch1_rx_sb "DISABLED" -#define _ch1_ird "DISABLED" -#define _ch1_rx_8b10b "ENABLED" -#define _ch1_rxwa "ENABLED" -#define _ch1_ilsm "ENABLED" -#define _ch1_scomma "K28P157" -#define _ch1_comma_a "1100000101" -#define _ch1_comma_b "0011111010" -#define _ch1_comma_m "1111111100" -#define _ch1_ctc "DISABLED" -#define _ch1_cc_match_mode "1" -#define _ch1_byten "0000000000" -#define _ch1_byten1 "0000000000" -#define _ch1_byten2 "0100011100" -#define _ch1_byten3 "0100011100" -#define _ch1_cc_min_ipg "3" -#define _ch1_lbtype "DISABLED" -#define _ch1_teidle "DISABLED" -#define _ch1_rx_lol_port "INTERNAL" - -#define _ch2_pll_rxsrc "REFCLK_EXT" -#define _ch2_mode "DISABLED" -#define _ch2_protocol "G8B10B" -#define _ch2_ldr "DISABLED" -#define _ch2_tx_data_rate "FULL" -#define _ch2_tx_data_width "8" -#define _ch2_tx_fifo "ENABLED" -#define _ch2_tx_ficlk_rate 125.0 -#define _ch2_rx_datarange "MEDHIGH" -#define _ch2_rx_data_rate "FULL" -#define _ch2_rxrefclk_rate "250.0" -#define _ch2_rx_data_width "8" -#define _ch2_rx_fifo "ENABLED" -#define _ch2_rx_ficlk_rate 250.0 -#define _ch2_tdrv "0" -#define _ch2_tx_pre "DISABLED" -#define _ch2_rterm_tx "50" -#define _ch2_rx_eq "DISABLED" -#define _ch2_rterm_rx "50" -#define _ch2_rx_dcc "AC" -#define _los_threshold_lo2 "2" -#define _ch2_tx_sb "DISABLED" -#define _ch2_tx_8b10b "ENABLED" -#define _ch2_rx_sb "DISABLED" -#define _ch2_ird "DISABLED" -#define _ch2_rx_8b10b "ENABLED" -#define _ch2_rxwa "ENABLED" -#define _ch2_ilsm "ENABLED" -#define _ch2_scomma "K28P157" -#define _ch2_comma_a "1100000101" -#define _ch2_comma_b "0011111010" -#define _ch2_comma_m "1111111100" -#define _ch2_ctc "DISABLED" -#define _ch2_cc_match_mode "1" -#define _ch2_byten "0000000000" -#define _ch2_byten1 "0000000000" -#define _ch2_byten2 "0100011100" -#define _ch2_byten3 "0100011100" -#define _ch2_cc_min_ipg "3" -#define _ch2_lbtype "DISABLED" -#define _ch2_teidle "DISABLED" -#define _ch2_rx_lol_port "INTERNAL" - -#define _ch3_pll_rxsrc "REFCLK_CORE" -#define _ch3_mode "RXTX" -#define _ch3_protocol "GIGE" -#define _ch3_ldr "DISABLED" -#define _ch3_tx_data_rate "FULL" -#define _ch3_tx_data_width "8" -#define _ch3_tx_fifo "ENABLED" -#define _ch3_tx_ficlk_rate 125.0 -#define _ch3_rx_datarange "MED" -#define _ch3_rx_data_rate "FULL" -#define _ch3_rxrefclk_rate "125.0" -#define _ch3_rx_data_width "8" -#define _ch3_rx_fifo "ENABLED" -#define _ch3_rx_ficlk_rate 125.0 -#define _ch3_tdrv "0" -#define _ch3_tx_pre "DISABLED" -#define _ch3_rterm_tx "50" -#define _ch3_rx_eq "DISABLED" -#define _ch3_rterm_rx "50" -#define _ch3_rx_dcc "AC" -#define _los_threshold_lo3 "2" -#define _ch3_tx_sb "DISABLED" -#define _ch3_tx_8b10b "ENABLED" -#define _ch3_rx_sb "DISABLED" -#define _ch3_ird "DISABLED" -#define _ch3_rx_8b10b "ENABLED" -#define _ch3_rxwa "ENABLED" -#define _ch3_ilsm "ENABLED" -#define _ch3_scomma "K28P5" -#define _ch3_comma_a "1100000101" -#define _ch3_comma_b "0011111010" -#define _ch3_comma_m "1111111111" -#define _ch3_ctc "DISABLED" -#define _ch3_cc_match_mode "2" -#define _ch3_byten "0110111100" -#define _ch3_byten1 "0001010000" -#define _ch3_byten2 "0110111100" -#define _ch3_byten3 "0001010000" -#define _ch3_cc_min_ipg "3" -#define _ch3_lbtype "DISABLED" -#define _ch3_teidle "DISABLED" -#define _ch3_rx_lol_port "INTERNAL" - -#define _datarange "MED" -#define _pll_txsrc "REFCLK_CORE" -#define _refclk_mult "10X" -#define _refclk_rate 125.0 -#define _pll_term "50" -#define _pll_dcc "AC" -#define _pll_lol_set "0" -#define _cchmark "9" -#define _cclmark "7" -#define _rst_gen "DISABLED" -#define _sci_ports "DISABLED" -#define _sci_int_port "DISABLED" -#define _refck2core "DISABLED" -#define _circuit_name serdes_ch4 -#define _lang vhdl - -#include -#include diff --git a/gbe_ecp2m/ipcores/serdes_ch4.readme b/gbe_ecp2m/ipcores/serdes_ch4.readme deleted file mode 100644 index 98e2a4b..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.readme +++ /dev/null @@ -1,141 +0,0 @@ - - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: Lattice Semiconductor Corporation - MODULE: serdes_ch4 - DESIGN: serdes_ch4 - FILENAME: serdes_ch4.readme - PROJECT: Unknown - VERSION: 2.0 - This file is auto generated by the ispLEVER - - -NOTE: This readme file has been provided to instantiate the interface -netlist. Since this template contains synthesis attributes for precision that -are crucial to the design flow, we recommend that you use this -template in your FPGA design. -entity chip is -port ( - --- Add your FPGA design top level I/Os here - - --- ASIC side pins for PCSD. These pins must exist for the --- PCS core. - refclkp : in std_logic; - refclkn : in std_logic; - hdinp_ch0 : in std_logic; - hdinn_ch0 : in std_logic; - hdinp_ch1 : in std_logic; - hdinn_ch1 : in std_logic; - hdinp_ch2 : in std_logic; - hdinn_ch2 : in std_logic; - hdinp_ch3 : in std_logic; - hdinn_ch3 : in std_logic; - - hdoutp_ch0 : out std_logic; - hdoutn_ch0 : out std_logic; - hdoutp_ch1 : out std_logic; - hdoutn_ch1 : out std_logic; - hdoutp_ch2 : out std_logic; - hdoutn_ch2 : out std_logic; - hdoutp_ch3 : out std_logic; - hdoutn_ch3 : out std_logic; - - -); -end chip; - -architecture chip_arch of chip is - --- This defines all the high-speed ports. You may have to remove --- some of them depending on your design. -attribute nopad : string; -attribute nopad of - refclkp, refclkn, - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1, - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3, - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1, - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true"; - - COMPONENT serdes_ch4 - PORT( - hdinp_ch3 : IN std_logic; - hdinn_ch3 : IN std_logic; - rxiclk_ch3 : IN std_logic; - txiclk_ch3 : IN std_logic; - fpga_rxrefclk_ch3 : IN std_logic; - txdata_ch3 : IN std_logic_vector(7 downto 0); - tx_k_ch3 : IN std_logic; - xmit_ch3 : IN std_logic; - tx_disp_correct_ch3 : IN std_logic; - rx_serdes_rst_ch3_c : IN std_logic; - sb_felb_ch3_c : IN std_logic; - sb_felb_rst_ch3_c : IN std_logic; - tx_pcs_rst_ch3_c : IN std_logic; - tx_pwrup_ch3_c : IN std_logic; - rx_pcs_rst_ch3_c : IN std_logic; - rx_pwrup_ch3_c : IN std_logic; - fpga_txrefclk : IN std_logic; - tx_serdes_rst_c : IN std_logic; - rst_qd_c : IN std_logic; - serdes_rst_qd_c : IN std_logic; - hdoutp_ch3 : OUT std_logic; - hdoutn_ch3 : OUT std_logic; - rx_full_clk_ch3 : OUT std_logic; - rx_half_clk_ch3 : OUT std_logic; - tx_full_clk_ch3 : OUT std_logic; - tx_half_clk_ch3 : OUT std_logic; - rxdata_ch3 : OUT std_logic_vector(7 downto 0); - rx_k_ch3 : OUT std_logic; - rx_disp_err_ch3 : OUT std_logic; - rx_cv_err_ch3 : OUT std_logic; - rx_los_low_ch3_s : OUT std_logic; - lsm_status_ch3_s : OUT std_logic; - rx_cdr_lol_ch3_s : OUT std_logic; - tx_pll_lol_qd_s : OUT std_logic - ); - END COMPONENT; - - - - uut: serdes_ch4 PORT MAP( - hdinp_ch3 => hdinp_ch3, - hdinn_ch3 => hdinn_ch3, - hdoutp_ch3 => hdoutp_ch3, - hdoutn_ch3 => hdoutn_ch3, - rxiclk_ch3 => rxiclk_ch3, - txiclk_ch3 => txiclk_ch3, - rx_full_clk_ch3 => rx_full_clk_ch3, - rx_half_clk_ch3 => rx_half_clk_ch3, - tx_full_clk_ch3 => tx_full_clk_ch3, - tx_half_clk_ch3 => tx_half_clk_ch3, - fpga_rxrefclk_ch3 => fpga_rxrefclk_ch3, - txdata_ch3 => txdata_ch3, - tx_k_ch3 => tx_k_ch3, - xmit_ch3 => xmit_ch3, - tx_disp_correct_ch3 => tx_disp_correct_ch3, - rxdata_ch3 => rxdata_ch3, - rx_k_ch3 => rx_k_ch3, - rx_disp_err_ch3 => rx_disp_err_ch3, - rx_cv_err_ch3 => rx_cv_err_ch3, - rx_serdes_rst_ch3_c => rx_serdes_rst_ch3_c, - sb_felb_ch3_c => sb_felb_ch3_c, - sb_felb_rst_ch3_c => sb_felb_rst_ch3_c, - tx_pcs_rst_ch3_c => tx_pcs_rst_ch3_c, - tx_pwrup_ch3_c => tx_pwrup_ch3_c, - rx_pcs_rst_ch3_c => rx_pcs_rst_ch3_c, - rx_pwrup_ch3_c => rx_pwrup_ch3_c, - rx_los_low_ch3_s => rx_los_low_ch3_s, - lsm_status_ch3_s => lsm_status_ch3_s, - rx_cdr_lol_ch3_s => rx_cdr_lol_ch3_s, - fpga_txrefclk => fpga_txrefclk, - tx_serdes_rst_c => tx_serdes_rst_c, - tx_pll_lol_qd_s => tx_pll_lol_qd_s, - rst_qd_c => rst_qd_c, - serdes_rst_qd_c => serdes_rst_qd_c - ); - - - - diff --git a/gbe_ecp2m/ipcores/serdes_ch4.sort b/gbe_ecp2m/ipcores/serdes_ch4.sort deleted file mode 100644 index 9e836ba..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.sort +++ /dev/null @@ -1 +0,0 @@ -serdes_ch4.vhd diff --git a/gbe_ecp2m/ipcores/serdes_ch4.sym b/gbe_ecp2m/ipcores/serdes_ch4.sym deleted file mode 100644 index 9e4bc2056f3cc01409a4b03f74743dc4b3268e15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1580 zcmZvbKZq1r5XP%sw=z4pvn{)bfgBSIavTN?io&vi$U2A!*TKqxciJ;Mf1JhEZM%E5 zBN@a%#GsMm0=Ynr4Gfl}5d(t@4lxipq>&3m3>GmE5g9}b#K7;>o6&LIfyex&zHjQi zs(Nqj7sAKF+OyTxh#%{!N~wJnKYR8;1akU`YV&~Y-SBkNkJ6~qZ3SoiR&Ou;hOnoO z8hujqWT;c3HR>8|qSszJcTWCu9dVZ~jm1NWuOgnQKTNz7#fg8u?YD>?AnvHYP27o6 zKWxRmmT>^BztH*AW20BJelc2+lv=f!DC9RrorW5BqIPFI!4KL&6_y&yQMxoLj%J}` z{G(AO<3+#Q2^NRjo`9C~ywSFgw6DiXwXWJmpBmd#in$Foz zC!n^QNmG~m>w#JKB-Np2wBM-ZWUNo8pt$TArIemsG9^%7k(E1%HCCV$r1bUGO_mq-|ev&B2p%)vDF^Su_QYOlPBOQD>q$TqlgH zyAoi#;ma7E>ndCW3gGG+SFag#zjNJ&E8`n*-Lj~J9f#8%WhrzPz61TCCDjGXF{-<` zvAPfNHTW5PZ)LY{CpgNs%SKO`>{@-sCVdMwJ^3NHT;2`WtZ{96ax~5I)G@dk#ucIo zy6?E>dOT*%L^I{#RcrP35%ujp7wRzdK09=nf5$UjR~}~QsawLX%yUiH0XyoRFzz=x z@j$o$7hDME;GCZeXW)!q*%Qdw05|x(#9c7f7QL4Pc6gic05uF~r*Hu-s3x3)b8>|< za7J@r!n>|w9TCpJnOYDI!J%phdtgrm!Y diff --git a/gbe_ecp2m/ipcores/serdes_ch4.tft b/gbe_ecp2m/ipcores/serdes_ch4.tft deleted file mode 100644 index b9db080..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.tft +++ /dev/null @@ -1,100 +0,0 @@ -@set suppresnewline=on@ - -@comment --------------------------------------------------------------------- @ -@comment Template-drive TFI generator @ -@comment Template for TFI generation. @ -@comment --------------------------------------------------------------------- @ - -@set suppresnewline=off@ - TOOL: orcapp - DATE: 19-MAR-2008 13:11:52 - TITLE: %title% - MODULE: %module% - DESIGN: %module% - FILENAME: %filename% - PROJECT: %project% - VERSION: %ver% - This file is auto generated by the ispLEVER -@set suppresnewline=on@ - -@cr@ -@cr@ - -@set sigdelim=@ - -NOTE: This readme file has been provided to instantiate the interface@cr@ -netlist. Since this template contains synthesis attributes for precision that@cr@ -are crucial to the design flow, we recommend that you use this@cr@ -template in your FPGA design.@cr@ -entity chip is@cr@ -port (@cr@ -@cr@ --- Add your FPGA design top level I/Os here@cr@ -@cr@ -@cr@ --- ASIC side pins for PCSD. These pins must exist for the@cr@ --- PCS core.@cr@ - refclkp : in std_logic;@cr@ - refclkn : in std_logic;@cr@ - hdinp_ch0 : in std_logic;@cr@ - hdinn_ch0 : in std_logic;@cr@ - hdinp_ch1 : in std_logic;@cr@ - hdinn_ch1 : in std_logic;@cr@ - hdinp_ch2 : in std_logic;@cr@ - hdinn_ch2 : in std_logic;@cr@ - hdinp_ch3 : in std_logic;@cr@ - hdinn_ch3 : in std_logic;@cr@ -@cr@ - hdoutp_ch0 : out std_logic;@cr@ - hdoutn_ch0 : out std_logic;@cr@ - hdoutp_ch1 : out std_logic;@cr@ - hdoutn_ch1 : out std_logic;@cr@ - hdoutp_ch2 : out std_logic;@cr@ - hdoutn_ch2 : out std_logic;@cr@ - hdoutp_ch3 : out std_logic;@cr@ - hdoutn_ch3 : out std_logic;@cr@ -@cr@ -@cr@ -);@cr@ -end chip;@cr@ -@cr@ -architecture chip_arch of chip is@cr@ -@cr@ --- This defines all the high-speed ports. You may have to remove@cr@ --- some of them depending on your design.@cr@ -attribute nopad : string;@cr@ -attribute nopad of@cr@ - refclkp, refclkn,@cr@ - hdinp_ch0, hdinn_ch0, hdinp_ch1, hdinn_ch1,@cr@ - hdinp_ch2, hdinn_ch2, hdinp_ch3, hdinn_ch3,@cr@ - hdoutp_ch0, hdoutn_ch0, hdoutp_ch1, hdoutn_ch1,@cr@ - hdoutp_ch2, hdoutn_ch2, hdoutp_ch3, hdoutn_ch3 : signal is "true";@cr@ - -@cr@ -@tab@COMPONENT %module% -@set sigdelim=@ -@cr@@tab@PORT( -@iterate@%iport%@cr@@tab@@tab@@iterator@ : IN @vhdl_typedec@;@enditerate@ -@ifhas oport=*@ @comment if the design has any output ports... @ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@;@enditerate@ - @set sigdelim=;@ - @iterate@%oport%@cr@@tab@@tab@@iterator@ : OUT @vhdl_typedec@@enditerate@ -@endif@ -@ifnhas oport=*@ @comment we need an "else in this language! @ - @set sigdelim=;@ - @iterate@%bport%@cr@@tab@@tab@@iterator@ : INOUT @vhdl_typedec@@enditerate@ -@endif@ -@cr@@tab@@tab@);@cr@ -@tab@END COMPONENT;@cr@@cr@ -@comment Now do a signal declaration for each port @ - -@cr@@cr@ -@comment do the component instantiation @ -@set sigdelim=,@ -@tab@uut: %module% PORT MAP( -@iterate@%port% -@cr@@tab@@tab@@iterator@ => @iterator@@enditerate@ -@cr@@tab@);@cr@@cr@ -@set suppresnewline=off@ - - diff --git a/gbe_ecp2m/ipcores/serdes_ch4.txt b/gbe_ecp2m/ipcores/serdes_ch4.txt deleted file mode 100644 index 6b3b65f..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.txt +++ /dev/null @@ -1,59 +0,0 @@ -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSD quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSD quad to the final design requirements. - -DEVICE_NAME "LFE3-150EA" -CH3_PROTOCOL "GIGE" -CH0_MODE "DISABLED" -CH1_MODE "DISABLED" -CH2_MODE "DISABLED" -CH3_MODE "RXTX" -CH3_CDR_SRC "REFCLK_CORE" -PLL_SRC "REFCLK_CORE" -TX_DATARATE_RANGE "MED" -CH3_RX_DATARATE_RANGE "MED" -REFCK_MULT "10X" -#REFCLK_RATE 125.0 -CH3_RX_DATA_RATE "FULL" -CH3_TX_DATA_RATE "FULL" -CH3_TX_DATA_WIDTH "8" -CH3_RX_DATA_WIDTH "8" -CH3_TX_FIFO "ENABLED" -CH3_RX_FIFO "ENABLED" -CH3_TDRV "0" -#CH3_TX_FICLK_RATE 125.0 -#CH3_RXREFCLK_RATE "125.0" -#CH3_RX_FICLK_RATE 125.0 -CH3_TX_PRE "DISABLED" -CH3_RTERM_TX "50" -CH3_RX_EQ "DISABLED" -CH3_RTERM_RX "50" -CH3_RX_DCC "AC" -CH3_LOS_THRESHOLD_LO "2" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH3_TX_SB "DISABLED" -CH3_RX_SB "DISABLED" -CH3_TX_8B10B "ENABLED" -CH3_RX_8B10B "ENABLED" -CH3_COMMA_A "1100000101" -CH3_COMMA_B "0011111010" -CH3_COMMA_M "1111111111" -CH3_RXWA "ENABLED" -CH3_ILSM "ENABLED" -CH3_CTC "DISABLED" -CH3_CC_MATCH3 "0110111100" -CH3_CC_MATCH4 "0001010000" -CH3_CC_MATCH_MODE "2" -CH3_CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -CH3_SSLB "DISABLED" -CH3_SPLBPORTS "DISABLED" -CH3_PCSLBPORTS "DISABLED" -INT_ALL "DISABLED" -QD_REFCK2CORE "DISABLED" - - diff --git a/gbe_ecp2m/ipcores/serdes_ch4.vhd b/gbe_ecp2m/ipcores/serdes_ch4.vhd deleted file mode 100644 index 9f3f819..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4.vhd +++ /dev/null @@ -1,2689 +0,0 @@ - - - ---synopsys translate_off - -library pcsd_work; -use pcsd_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSD is -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String --- CONFIG_FILE : String := "serdes_ch4.txt"; --- QUAD_MODE : String := "SINGLE"; --- CH0_CDR_SRC : String := "REFCLK_EXT"; --- CH1_CDR_SRC : String := "REFCLK_EXT"; --- CH2_CDR_SRC : String := "REFCLK_EXT"; --- CH3_CDR_SRC : String := "REFCLK_CORE"; --- PLL_SRC : String := "REFCLK_CORE" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); - -end PCSD; - -architecture PCSD_arch of PCSD is - - -component PCSD_sim -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String; - CH1_CDR_SRC : String; - CH2_CDR_SRC : String; - CH3_CDR_SRC : String; - PLL_SRC : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - -begin - -PCSD_sim_inst : PCSD_sim -generic map ( - CONFIG_FILE => CONFIG_FILE, - QUAD_MODE => QUAD_MODE, - CH0_CDR_SRC => CH0_CDR_SRC, - CH1_CDR_SRC => CH1_CDR_SRC, - CH2_CDR_SRC => CH2_CDR_SRC, - CH3_CDR_SRC => CH3_CDR_SRC, - PLL_SRC => PLL_SRC - ) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX_0 => FFC_CK_CORE_RX_0, - FFC_CK_CORE_RX_1 => FFC_CK_CORE_RX_1, - FFC_CK_CORE_RX_2 => FFC_CK_CORE_RX_2, - FFC_CK_CORE_RX_3 => FFC_CK_CORE_RX_3, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_SYNC_TOGGLE => FFC_SYNC_TOGGLE, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - FFC_RATE_MODE_RX_0 => FFC_RATE_MODE_RX_0, - FFC_RATE_MODE_RX_1 => FFC_RATE_MODE_RX_1, - FFC_RATE_MODE_RX_2 => FFC_RATE_MODE_RX_2, - FFC_RATE_MODE_RX_3 => FFC_RATE_MODE_RX_3, - FFC_RATE_MODE_TX_0 => FFC_RATE_MODE_TX_0, - FFC_RATE_MODE_TX_1 => FFC_RATE_MODE_TX_1, - FFC_RATE_MODE_TX_2 => FFC_RATE_MODE_TX_2, - FFC_RATE_MODE_TX_3 => FFC_RATE_MODE_TX_3, - FFC_DIV11_MODE_RX_0 => FFC_DIV11_MODE_RX_0, - FFC_DIV11_MODE_RX_1 => FFC_DIV11_MODE_RX_1, - FFC_DIV11_MODE_RX_2 => FFC_DIV11_MODE_RX_2, - FFC_DIV11_MODE_RX_3 => FFC_DIV11_MODE_RX_3, - FFC_DIV11_MODE_TX_0 => FFC_DIV11_MODE_TX_0, - FFC_DIV11_MODE_TX_1 => FFC_DIV11_MODE_TX_1, - FFC_DIV11_MODE_TX_2 => FFC_DIV11_MODE_TX_2, - FFC_DIV11_MODE_TX_3 => FFC_DIV11_MODE_TX_3, - LDR_CORE2TX_0 => LDR_CORE2TX_0, - LDR_CORE2TX_1 => LDR_CORE2TX_1, - LDR_CORE2TX_2 => LDR_CORE2TX_2, - LDR_CORE2TX_3 => LDR_CORE2TX_3, - FFC_LDR_CORE2TX_EN_0 => FFC_LDR_CORE2TX_EN_0, - FFC_LDR_CORE2TX_EN_1 => FFC_LDR_CORE2TX_EN_1, - FFC_LDR_CORE2TX_EN_2 => FFC_LDR_CORE2TX_EN_2, - FFC_LDR_CORE2TX_EN_3 => FFC_LDR_CORE2TX_EN_3, - PCIE_POWERDOWN_0_0 => PCIE_POWERDOWN_0_0, - PCIE_POWERDOWN_0_1 => PCIE_POWERDOWN_0_1, - PCIE_POWERDOWN_1_0 => PCIE_POWERDOWN_1_0, - PCIE_POWERDOWN_1_1 => PCIE_POWERDOWN_1_1, - PCIE_POWERDOWN_2_0 => PCIE_POWERDOWN_2_0, - PCIE_POWERDOWN_2_1 => PCIE_POWERDOWN_2_1, - PCIE_POWERDOWN_3_0 => PCIE_POWERDOWN_3_0, - PCIE_POWERDOWN_3_1 => PCIE_POWERDOWN_3_1, - PCIE_RXPOLARITY_0 => PCIE_RXPOLARITY_0, - PCIE_RXPOLARITY_1 => PCIE_RXPOLARITY_1, - PCIE_RXPOLARITY_2 => PCIE_RXPOLARITY_2, - PCIE_RXPOLARITY_3 => PCIE_RXPOLARITY_3, - PCIE_TXCOMPLIANCE_0 => PCIE_TXCOMPLIANCE_0, - PCIE_TXCOMPLIANCE_1 => PCIE_TXCOMPLIANCE_1, - PCIE_TXCOMPLIANCE_2 => PCIE_TXCOMPLIANCE_2, - PCIE_TXCOMPLIANCE_3 => PCIE_TXCOMPLIANCE_3, - PCIE_TXDETRX_PR2TLB_0 => PCIE_TXDETRX_PR2TLB_0, - PCIE_TXDETRX_PR2TLB_1 => PCIE_TXDETRX_PR2TLB_1, - PCIE_TXDETRX_PR2TLB_2 => PCIE_TXDETRX_PR2TLB_2, - PCIE_TXDETRX_PR2TLB_3 => PCIE_TXDETRX_PR2TLB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_TX_F_CLK_0 => FF_TX_F_CLK_0, - FF_TX_F_CLK_1 => FF_TX_F_CLK_1, - FF_TX_F_CLK_2 => FF_TX_F_CLK_2, - FF_TX_F_CLK_3 => FF_TX_F_CLK_3, - FF_TX_H_CLK_0 => FF_TX_H_CLK_0, - FF_TX_H_CLK_1 => FF_TX_H_CLK_1, - FF_TX_H_CLK_2 => FF_TX_H_CLK_2, - FF_TX_H_CLK_3 => FF_TX_H_CLK_3, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_CDR_TRAIN_DONE_0 => FFS_CDR_TRAIN_DONE_0, - FFS_CDR_TRAIN_DONE_1 => FFS_CDR_TRAIN_DONE_1, - FFS_CDR_TRAIN_DONE_2 => FFS_CDR_TRAIN_DONE_2, - FFS_CDR_TRAIN_DONE_3 => FFS_CDR_TRAIN_DONE_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RLOS_HI_0 => FFS_RLOS_HI_0, - FFS_RLOS_HI_1 => FFS_RLOS_HI_1, - FFS_RLOS_HI_2 => FFS_RLOS_HI_2, - FFS_RLOS_HI_3 => FFS_RLOS_HI_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - PCIE_PHYSTATUS_0 => PCIE_PHYSTATUS_0, - PCIE_PHYSTATUS_1 => PCIE_PHYSTATUS_1, - PCIE_PHYSTATUS_2 => PCIE_PHYSTATUS_2, - PCIE_PHYSTATUS_3 => PCIE_PHYSTATUS_3, - PCIE_RXVALID_0 => PCIE_RXVALID_0, - PCIE_RXVALID_1 => PCIE_RXVALID_1, - PCIE_RXVALID_2 => PCIE_RXVALID_2, - PCIE_RXVALID_3 => PCIE_RXVALID_3, - FFS_SKP_ADDED_0 => FFS_SKP_ADDED_0, - FFS_SKP_ADDED_1 => FFS_SKP_ADDED_1, - FFS_SKP_ADDED_2 => FFS_SKP_ADDED_2, - FFS_SKP_ADDED_3 => FFS_SKP_ADDED_3, - FFS_SKP_DELETED_0 => FFS_SKP_DELETED_0, - FFS_SKP_DELETED_1 => FFS_SKP_DELETED_1, - FFS_SKP_DELETED_2 => FFS_SKP_DELETED_2, - FFS_SKP_DELETED_3 => FFS_SKP_DELETED_3, - LDR_RX2CORE_0 => LDR_RX2CORE_0, - LDR_RX2CORE_1 => LDR_RX2CORE_1, - LDR_RX2CORE_2 => LDR_RX2CORE_2, - LDR_RX2CORE_3 => LDR_RX2CORE_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7, - REFCLK_FROM_NQ => REFCLK_FROM_NQ, - REFCLK_TO_NQ => REFCLK_TO_NQ - ); - -end PCSD_arch; - ---synopsys translate_on - - - - ---synopsys translate_off -library ECP3; -use ECP3.components.all; ---synopsys translate_on - - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_ch4 is - GENERIC (USER_CONFIG_FILE : String := "serdes_ch4.txt"); - port ( ------------------- --- CH0 -- --- CH1 -- --- CH2 -- --- CH3 -- - hdinp_ch3, hdinn_ch3 : in std_logic; - hdoutp_ch3, hdoutn_ch3 : out std_logic; - rxiclk_ch3 : in std_logic; - txiclk_ch3 : in std_logic; - rx_full_clk_ch3 : out std_logic; - rx_half_clk_ch3 : out std_logic; - tx_full_clk_ch3 : out std_logic; - tx_half_clk_ch3 : out std_logic; - fpga_rxrefclk_ch3 : in std_logic; - txdata_ch3 : in std_logic_vector (7 downto 0); - tx_k_ch3 : in std_logic; - xmit_ch3 : in std_logic; - tx_disp_correct_ch3 : in std_logic; - rxdata_ch3 : out std_logic_vector (7 downto 0); - rx_k_ch3 : out std_logic; - rx_disp_err_ch3 : out std_logic; - rx_cv_err_ch3 : out std_logic; - rx_serdes_rst_ch3_c : in std_logic; - sb_felb_ch3_c : in std_logic; - sb_felb_rst_ch3_c : in std_logic; - tx_pcs_rst_ch3_c : in std_logic; - tx_pwrup_ch3_c : in std_logic; - rx_pcs_rst_ch3_c : in std_logic; - rx_pwrup_ch3_c : in std_logic; - rx_los_low_ch3_s : out std_logic; - lsm_status_ch3_s : out std_logic; - rx_cdr_lol_ch3_s : out std_logic; ----- Miscillaneous ports - fpga_txrefclk : in std_logic; - tx_serdes_rst_c : in std_logic; - tx_pll_lol_qd_s : out std_logic; - rst_qd_c : in std_logic; - serdes_rst_qd_c : in std_logic); - -end serdes_ch4; - - -architecture serdes_ch4_arch of serdes_ch4 is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; - - - -component PCSD ---synopsys translate_off -GENERIC( - CONFIG_FILE : String; - QUAD_MODE : String; - CH0_CDR_SRC : String := "REFCLK_EXT"; - CH1_CDR_SRC : String := "REFCLK_EXT"; - CH2_CDR_SRC : String := "REFCLK_EXT"; - CH3_CDR_SRC : String := "REFCLK_EXT"; - PLL_SRC : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX_0 : in std_logic; - FFC_CK_CORE_RX_1 : in std_logic; - FFC_CK_CORE_RX_2 : in std_logic; - FFC_CK_CORE_RX_3 : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_SYNC_TOGGLE : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - FFC_RATE_MODE_RX_0 : in std_logic; - FFC_RATE_MODE_RX_1 : in std_logic; - FFC_RATE_MODE_RX_2 : in std_logic; - FFC_RATE_MODE_RX_3 : in std_logic; - FFC_RATE_MODE_TX_0 : in std_logic; - FFC_RATE_MODE_TX_1 : in std_logic; - FFC_RATE_MODE_TX_2 : in std_logic; - FFC_RATE_MODE_TX_3 : in std_logic; - FFC_DIV11_MODE_RX_0 : in std_logic; - FFC_DIV11_MODE_RX_1 : in std_logic; - FFC_DIV11_MODE_RX_2 : in std_logic; - FFC_DIV11_MODE_RX_3 : in std_logic; - FFC_DIV11_MODE_TX_0 : in std_logic; - FFC_DIV11_MODE_TX_1 : in std_logic; - FFC_DIV11_MODE_TX_2 : in std_logic; - FFC_DIV11_MODE_TX_3 : in std_logic; - LDR_CORE2TX_0 : in std_logic; - LDR_CORE2TX_1 : in std_logic; - LDR_CORE2TX_2 : in std_logic; - LDR_CORE2TX_3 : in std_logic; - FFC_LDR_CORE2TX_EN_0 : in std_logic; - FFC_LDR_CORE2TX_EN_1 : in std_logic; - FFC_LDR_CORE2TX_EN_2 : in std_logic; - FFC_LDR_CORE2TX_EN_3 : in std_logic; - PCIE_POWERDOWN_0_0 : in std_logic; - PCIE_POWERDOWN_0_1 : in std_logic; - PCIE_POWERDOWN_1_0 : in std_logic; - PCIE_POWERDOWN_1_1 : in std_logic; - PCIE_POWERDOWN_2_0 : in std_logic; - PCIE_POWERDOWN_2_1 : in std_logic; - PCIE_POWERDOWN_3_0 : in std_logic; - PCIE_POWERDOWN_3_1 : in std_logic; - PCIE_RXPOLARITY_0 : in std_logic; - PCIE_RXPOLARITY_1 : in std_logic; - PCIE_RXPOLARITY_2 : in std_logic; - PCIE_RXPOLARITY_3 : in std_logic; - PCIE_TXCOMPLIANCE_0 : in std_logic; - PCIE_TXCOMPLIANCE_1 : in std_logic; - PCIE_TXCOMPLIANCE_2 : in std_logic; - PCIE_TXCOMPLIANCE_3 : in std_logic; - PCIE_TXDETRX_PR2TLB_0 : in std_logic; - PCIE_TXDETRX_PR2TLB_1 : in std_logic; - PCIE_TXDETRX_PR2TLB_2 : in std_logic; - PCIE_TXDETRX_PR2TLB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - REFCLK_FROM_NQ : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_TX_F_CLK_0 : out std_logic; - FF_TX_F_CLK_1 : out std_logic; - FF_TX_F_CLK_2 : out std_logic; - FF_TX_F_CLK_3 : out std_logic; - FF_TX_H_CLK_0 : out std_logic; - FF_TX_H_CLK_1 : out std_logic; - FF_TX_H_CLK_2 : out std_logic; - FF_TX_H_CLK_3 : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_CDR_TRAIN_DONE_0 : out std_logic; - FFS_CDR_TRAIN_DONE_1 : out std_logic; - FFS_CDR_TRAIN_DONE_2 : out std_logic; - FFS_CDR_TRAIN_DONE_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RLOS_HI_0 : out std_logic; - FFS_RLOS_HI_1 : out std_logic; - FFS_RLOS_HI_2 : out std_logic; - FFS_RLOS_HI_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic; - PCIE_PHYSTATUS_0 : out std_logic; - PCIE_PHYSTATUS_1 : out std_logic; - PCIE_PHYSTATUS_2 : out std_logic; - PCIE_PHYSTATUS_3 : out std_logic; - PCIE_RXVALID_0 : out std_logic; - PCIE_RXVALID_1 : out std_logic; - PCIE_RXVALID_2 : out std_logic; - PCIE_RXVALID_3 : out std_logic; - FFS_SKP_ADDED_0 : out std_logic; - FFS_SKP_ADDED_1 : out std_logic; - FFS_SKP_ADDED_2 : out std_logic; - FFS_SKP_ADDED_3 : out std_logic; - FFS_SKP_DELETED_0 : out std_logic; - FFS_SKP_DELETED_1 : out std_logic; - FFS_SKP_DELETED_2 : out std_logic; - FFS_SKP_DELETED_3 : out std_logic; - LDR_RX2CORE_0 : out std_logic; - LDR_RX2CORE_1 : out std_logic; - LDR_RX2CORE_2 : out std_logic; - LDR_RX2CORE_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - REFCLK_TO_NQ : out std_logic -); -end component; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSD_INST : label is USER_CONFIG_FILE; - attribute QUAD_MODE: string; - attribute QUAD_MODE of PCSD_INST : label is "SINGLE"; - attribute PLL_SRC: string; - attribute PLL_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute CH3_CDR_SRC: string; - attribute CH3_CDR_SRC of PCSD_INST : label is "REFCLK_CORE"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2 of PCSD_INST : label is "250.000"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_0 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_1 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_2 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK_3 of PCSD_INST : label is "125.000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_0 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_1 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_2 of PCSD_INST : label is "62.5000"; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK_3 of PCSD_INST : label is "62.5000"; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSD : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal refclk_from_nq : std_logic := '0'; -signal fpsc_vlo : std_logic := '0'; -signal fpsc_vhi : std_logic := '1'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); -signal tx_full_clk_ch3_sig : std_logic; - -signal refclk2fpga_sig : std_logic; -signal tx_pll_lol_qd_sig : std_logic; -signal rx_los_low_ch0_sig : std_logic; -signal rx_los_low_ch1_sig : std_logic; -signal rx_los_low_ch2_sig : std_logic; -signal rx_los_low_ch3_sig : std_logic; -signal rx_cdr_lol_ch0_sig : std_logic; -signal rx_cdr_lol_ch1_sig : std_logic; -signal rx_cdr_lol_ch2_sig : std_logic; -signal rx_cdr_lol_ch3_sig : std_logic; - - - - - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); -vhi_inst : VHI port map(Z => fpsc_vhi); - - rx_los_low_ch3_s <= rx_los_low_ch3_sig; - rx_cdr_lol_ch3_s <= rx_cdr_lol_ch3_sig; - tx_pll_lol_qd_s <= tx_pll_lol_qd_sig; - tx_full_clk_ch3 <= tx_full_clk_ch3_sig; - --- pcs_quad instance -PCSD_INST : PCSD ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE, - QUAD_MODE => "SINGLE", - CH3_CDR_SRC => "REFCLK_CORE", - PLL_SRC => "REFCLK_CORE" - ) ---synopsys translate_on -port map ( - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - ------ CH0 ----- - HDOUTP0 => open, - HDOUTN0 => open, - HDINP0 => fpsc_vlo, - HDINN0 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_0 => fpsc_vlo, - PCIE_TXCOMPLIANCE_0 => fpsc_vlo, - PCIE_RXPOLARITY_0 => fpsc_vlo, - PCIE_POWERDOWN_0_0 => fpsc_vlo, - PCIE_POWERDOWN_0_1 => fpsc_vlo, - PCIE_RXVALID_0 => open, - PCIE_PHYSTATUS_0 => open, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => fpsc_vlo, - FF_TXI_CLK_0 => fpsc_vlo, - FF_EBRD_CLK_0 => fpsc_vlo, - FF_RX_F_CLK_0 => open, - FF_RX_H_CLK_0 => open, - FF_TX_F_CLK_0 => open, - FF_TX_H_CLK_0 => open, - FFC_CK_CORE_RX_0 => fpsc_vlo, - FF_TX_D_0_0 => fpsc_vlo, - FF_TX_D_0_1 => fpsc_vlo, - FF_TX_D_0_2 => fpsc_vlo, - FF_TX_D_0_3 => fpsc_vlo, - FF_TX_D_0_4 => fpsc_vlo, - FF_TX_D_0_5 => fpsc_vlo, - FF_TX_D_0_6 => fpsc_vlo, - FF_TX_D_0_7 => fpsc_vlo, - FF_TX_D_0_8 => fpsc_vlo, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => fpsc_vlo, - FF_TX_D_0_11 => fpsc_vlo, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => open, - FF_RX_D_0_1 => open, - FF_RX_D_0_2 => open, - FF_RX_D_0_3 => open, - FF_RX_D_0_4 => open, - FF_RX_D_0_5 => open, - FF_RX_D_0_6 => open, - FF_RX_D_0_7 => open, - FF_RX_D_0_8 => open, - FF_RX_D_0_9 => open, - FF_RX_D_0_10 => open, - FF_RX_D_0_11 => open, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - - FFC_RRST_0 => fpsc_vlo, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => fpsc_vlo, - FFC_PFIFO_CLR_0 => fpsc_vlo, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => fpsc_vlo, - FFC_TXPWDNB_0 => fpsc_vlo, - FFC_LANE_RX_RST_0 => fpsc_vlo, - FFC_RXPWDNB_0 => fpsc_vlo, - FFS_RLOS_LO_0 => open, - FFS_RLOS_HI_0 => open, - FFS_PCIE_CON_0 => open, - FFS_PCIE_DONE_0 => open, - FFS_LS_SYNC_STATUS_0 => open, - FFS_CC_OVERRUN_0 => open, - FFS_CC_UNDERRUN_0 => open, - FFS_SKP_ADDED_0 => open, - FFS_SKP_DELETED_0 => open, - FFS_RLOL_0 => open, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - LDR_CORE2TX_0 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_0 => fpsc_vlo, - LDR_RX2CORE_0 => open, - FFS_CDR_TRAIN_DONE_0 => open, - FFC_DIV11_MODE_TX_0 => fpsc_vlo, - FFC_RATE_MODE_TX_0 => fpsc_vlo, - FFC_DIV11_MODE_RX_0 => fpsc_vlo, - FFC_RATE_MODE_RX_0 => fpsc_vlo, - ------ CH1 ----- - HDOUTP1 => open, - HDOUTN1 => open, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_1 => fpsc_vlo, - PCIE_TXCOMPLIANCE_1 => fpsc_vlo, - PCIE_RXPOLARITY_1 => fpsc_vlo, - PCIE_POWERDOWN_1_0 => fpsc_vlo, - PCIE_POWERDOWN_1_1 => fpsc_vlo, - PCIE_RXVALID_1 => open, - PCIE_PHYSTATUS_1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_TX_F_CLK_1 => open, - FF_TX_H_CLK_1 => open, - FFC_CK_CORE_RX_1 => fpsc_vlo, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_RLOS_HI_1 => open, - FFS_PCIE_CON_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_SKP_ADDED_1 => open, - FFS_SKP_DELETED_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - LDR_CORE2TX_1 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_1 => fpsc_vlo, - LDR_RX2CORE_1 => open, - FFS_CDR_TRAIN_DONE_1 => open, - FFC_DIV11_MODE_TX_1 => fpsc_vlo, - FFC_RATE_MODE_TX_1 => fpsc_vlo, - FFC_DIV11_MODE_RX_1 => fpsc_vlo, - FFC_RATE_MODE_RX_1 => fpsc_vlo, - ------ CH2 ----- - HDOUTP2 => open, - HDOUTN2 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - PCIE_TXDETRX_PR2TLB_2 => fpsc_vlo, - PCIE_TXCOMPLIANCE_2 => fpsc_vlo, - PCIE_RXPOLARITY_2 => fpsc_vlo, - PCIE_POWERDOWN_2_0 => fpsc_vlo, - PCIE_POWERDOWN_2_1 => fpsc_vlo, - PCIE_RXVALID_2 => open, - PCIE_PHYSTATUS_2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_TX_F_CLK_2 => open, - FF_TX_H_CLK_2 => open, - FFC_CK_CORE_RX_2 => fpsc_vlo, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_RLOS_HI_2 => open, - FFS_PCIE_CON_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_SKP_ADDED_2 => open, - FFS_SKP_DELETED_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - LDR_CORE2TX_2 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_2 => fpsc_vlo, - LDR_RX2CORE_2 => open, - FFS_CDR_TRAIN_DONE_2 => open, - FFC_DIV11_MODE_TX_2 => fpsc_vlo, - FFC_RATE_MODE_TX_2 => fpsc_vlo, - FFC_DIV11_MODE_RX_2 => fpsc_vlo, - FFC_RATE_MODE_RX_2 => fpsc_vlo, - ------ CH3 ----- - HDOUTP3 => hdoutp_ch3, - HDOUTN3 => hdoutn_ch3, - HDINP3 => hdinp_ch3, - HDINN3 => hdinn_ch3, - PCIE_TXDETRX_PR2TLB_3 => fpsc_vlo, - PCIE_TXCOMPLIANCE_3 => fpsc_vlo, - PCIE_RXPOLARITY_3 => fpsc_vlo, - PCIE_POWERDOWN_3_0 => fpsc_vlo, - PCIE_POWERDOWN_3_1 => fpsc_vlo, - PCIE_RXVALID_3 => open, - PCIE_PHYSTATUS_3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => rxiclk_ch3, - FF_TXI_CLK_3 => txiclk_ch3, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => rx_full_clk_ch3, - FF_RX_H_CLK_3 => rx_half_clk_ch3, - FF_TX_F_CLK_3 => tx_full_clk_ch3_sig, - FF_TX_H_CLK_3 => tx_half_clk_ch3, - FFC_CK_CORE_RX_3 => fpga_rxrefclk_ch3, - FF_TX_D_3_0 => txdata_ch3(0), - FF_TX_D_3_1 => txdata_ch3(1), - FF_TX_D_3_2 => txdata_ch3(2), - FF_TX_D_3_3 => txdata_ch3(3), - FF_TX_D_3_4 => txdata_ch3(4), - FF_TX_D_3_5 => txdata_ch3(5), - FF_TX_D_3_6 => txdata_ch3(6), - FF_TX_D_3_7 => txdata_ch3(7), - FF_TX_D_3_8 => tx_k_ch3, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => xmit_ch3, - FF_TX_D_3_11 => tx_disp_correct_ch3, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => rxdata_ch3(0), - FF_RX_D_3_1 => rxdata_ch3(1), - FF_RX_D_3_2 => rxdata_ch3(2), - FF_RX_D_3_3 => rxdata_ch3(3), - FF_RX_D_3_4 => rxdata_ch3(4), - FF_RX_D_3_5 => rxdata_ch3(5), - FF_RX_D_3_6 => rxdata_ch3(6), - FF_RX_D_3_7 => rxdata_ch3(7), - FF_RX_D_3_8 => rx_k_ch3, - FF_RX_D_3_9 => rx_disp_err_ch3, - FF_RX_D_3_10 => rx_cv_err_ch3, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - - FFC_RRST_3 => rx_serdes_rst_ch3_c, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => sb_felb_ch3_c, - FFC_PFIFO_CLR_3 => sb_felb_rst_ch3_c, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => tx_pcs_rst_ch3_c, - FFC_TXPWDNB_3 => tx_pwrup_ch3_c, - FFC_LANE_RX_RST_3 => rx_pcs_rst_ch3_c, - FFC_RXPWDNB_3 => rx_pwrup_ch3_c, - FFS_RLOS_LO_3 => rx_los_low_ch3_sig, - FFS_RLOS_HI_3 => open, - FFS_PCIE_CON_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_LS_SYNC_STATUS_3 => lsm_status_ch3_s, - FFS_CC_OVERRUN_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_SKP_ADDED_3 => open, - FFS_SKP_DELETED_3 => open, - FFS_RLOL_3 => rx_cdr_lol_ch3_sig, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - LDR_CORE2TX_3 => fpsc_vlo, - FFC_LDR_CORE2TX_EN_3 => fpsc_vlo, - LDR_RX2CORE_3 => open, - FFS_CDR_TRAIN_DONE_3 => open, - FFC_DIV11_MODE_TX_3 => fpsc_vlo, - FFC_RATE_MODE_TX_3 => fpsc_vlo, - FFC_DIV11_MODE_RX_3 => fpsc_vlo, - FFC_RATE_MODE_RX_3 => fpsc_vlo, - ------ Auxilliary ---- - SCIWDATA7 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA0 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIRDATA7 => open, - SCIRDATA6 => open, - SCIRDATA5 => open, - SCIRDATA4 => open, - SCIRDATA3 => open, - SCIRDATA2 => open, - SCIRDATA1 => open, - SCIRDATA0 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_CK_CORE_TX => fpga_txrefclk, - FFC_MACRO_RST => serdes_rst_qd_c, - FFC_QUAD_RST => rst_qd_c, - FFC_TRST => tx_serdes_rst_c, - FFS_PLOL => tx_pll_lol_qd_sig, - FFC_SYNC_TOGGLE => fpsc_vlo, - REFCK2CORE => refclk2fpga_sig, - CIN0 => fpsc_vlo, - CIN1 => fpsc_vlo, - CIN2 => fpsc_vlo, - CIN3 => fpsc_vlo, - CIN4 => fpsc_vlo, - CIN5 => fpsc_vlo, - CIN6 => fpsc_vlo, - CIN7 => fpsc_vlo, - CIN8 => fpsc_vlo, - CIN9 => fpsc_vlo, - CIN10 => fpsc_vlo, - CIN11 => fpsc_vlo, - COUT0 => open, - COUT1 => open, - COUT2 => open, - COUT3 => open, - COUT4 => open, - COUT5 => open, - COUT6 => open, - COUT7 => open, - COUT8 => open, - COUT9 => open, - COUT10 => open, - COUT11 => open, - COUT12 => open, - COUT13 => open, - COUT14 => open, - COUT15 => open, - COUT16 => open, - COUT17 => open, - COUT18 => open, - COUT19 => open, - REFCLK_FROM_NQ => refclk_from_nq, - REFCLK_TO_NQ => open); - - - - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on -end serdes_ch4_arch ; diff --git a/gbe_ecp2m/ipcores/serdes_ch4_generate.log b/gbe_ecp2m/ipcores/serdes_ch4_generate.log deleted file mode 100644 index 26130c0..0000000 --- a/gbe_ecp2m/ipcores/serdes_ch4_generate.log +++ /dev/null @@ -1,29 +0,0 @@ -Starting process: Module - -Starting process: - - Module Name: serdes_ch4 - Core Name: PCS - LPC file : serdes_ch4.lpc - Parameter File : serdes_ch4.pp - Command line: /opt/lattice/diamond/1.4/ispfpga/bin/lin/orcapp -Fmaco serdes_ch4.pp - Return Value: - - - - Module PCS has been generated in /home/greg/projects/trb3/trb3_gbe/. successfully! - -/opt/lattice/diamond/1.4/bin/lin/hdl2jhd -tfi -mod serdes_ch4 -ext readme -out serdes_ch4 -tpl serdes_ch4.tft serdes_ch4.vhd - -Done successfully! -File: serdes_ch4.lpc created. - - -End process: completed successfully. - - -Total Warnings: 0 - -Total Errors: 0 - - diff --git a/gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.lpc b/gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.lpc deleted file mode 100644 index c331cfe..0000000 --- a/gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.lpc +++ /dev/null @@ -1,140 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M100E -PartName=LFE2M100E-6F900C -SpeedGrade=-6 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=7.0 -ModuleName=serdes_gbe_0_intclock_8b -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=04/28/2010 -Time=20:09:02 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -Protocol=Quad -mode=Gigabit Ethernet -Channel0=SINGLE -Channel1=DISABLE -Channel2=DISABLE -Channel3=DISABLE -Rate0=None -Rate1=None -Rate2=None -Rate3=None -TxRefClk=CORE_TXREFCLK -RxRefClk=CORE_RXREFCLK -ClkRate=1.25 -ClkMult=10X -CalClkRate=125.0 -DataWidth=8 -FPGAClkRate=125.0 -TxRefClkCM=REFCLK -RxRefClk0CM=REFCLK -RxRefClk1CM=REFCLK -RxRefClk2CM=REFCLK -RxRefClk3CM=REFCLK -ClkRateH=0.625 -ClkMultH=10XH -CalClkRateH=125.0 -DataWidthH=8 -FPGAClkRateH=62.5 -VCh0=0 -VCh1=0 -VCh2=0 -VCh3=0 -PreCh0=DISABLE -PreCh1=DISABLE -PreCh2=DISABLE -PreCh3=DISABLE -TxCh0=50 -TxCh1=50 -TxCh2=50 -TxCh3=50 -EqCh0=DISABLE -EqCh1=DISABLE -EqCh2=DISABLE -EqCh3=DISABLE -RxTermCh0=50 -RxTermCh1=50 -RxTermCh2=50 -RxTermCh3=50 -RxCoupCh0=AC -RxCoupCh1=AC -RxCoupCh2=AC -RxCoupCh3=AC -Loss=0 -CDRLoss=0 -TxTerm=50 -TxCoup=AC -TxPllLoss=0 -TxInvCh0=NORMAL -TxInvCh1=NORMAL -TxInvCh2=NORMAL -TxInvCh3=NORMAL -RxInvCh0=NORMAL -RxInvCh1=NORMAL -RxInvCh2=NORMAL -RxInvCh3=NORMAL -RxModeCh0=NORMAL -RxModeCh1=NORMAL -RxModeCh2=NORMAL -RxModeCh3=NORMAL -Plus=1100000101 -Minus=0011111010 -Mask=1111111111 -Align=AUTO -CTCCh0=NORMAL -CTCCh1=NORMAL -CTCCh2=NORMAL -CTCCh3=NORMAL -CC_MATCH1=0000000000 -CC_MATCH2=0000000000 -CC_MATCH3=0110111100 -CC_MATCH4=0001010000 -MinIPG=3 -High=9 -Low=7 -CC_MATCH_MODE=MATCH_3_4 -RxDataCh0=FALSE -RxDataCh1=FALSE -RxDataCh2=FALSE -RxDataCh3=FALSE -AlignerCh0=FALSE -AlignerCh1=FALSE -AlignerCh2=FALSE -AlignerCh3=FALSE -DetectCh0=FALSE -DetectCh1=FALSE -DetectCh2=FALSE -DetectCh3=FALSE -ELSMCh0=FALSE -ELSMCh1=FALSE -ELSMCh2=FALSE -ELSMCh3=FALSE -_teidleCh0=FALSE -_teidleCh1=FALSE -_teidleCh2=FALSE -_teidleCh3=FALSE -Ports0=FALSE -rdoPorts0=Serial Loopback -Ports1=FALSE -Ports2=TRUE -Ports3=FALSE -Ports3_1=FALSE -Ports4=FALSE diff --git a/gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.txt b/gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.txt deleted file mode 100644 index a2e883f..0000000 --- a/gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.txt +++ /dev/null @@ -1,49 +0,0 @@ - -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSC quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSC quad to the final design requirements. - -DEVICE_NAME "LFE2M100E" -PROTOCOL "GIGE" -CH0_MODE "SINGLE" -CH1_MODE "DISABLE" -CH2_MODE "DISABLE" -CH3_MODE "DISABLE" -PLL_SRC "CORE_TXREFCLK" -DATARANGE "MED" -CH0_CDR_SRC "CORE_RXREFCLK" -CH0_DATA_WIDTH "8" -CH0_REFCK_MULT "10X" -#REFCLK_RATE 125.0 -#FPGAINTCLK_RATE 125.0 -CH0_TDRV_AMP "0" -CH0_TX_PRE "DISABLE" -CH0_RTERM_TX "50" -CH0_RX_EQ "DISABLE" -CH0_RTERM_RX "50" -CH0_RX_DCC "AC" -LOS_THRESHOLD "0" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH0_TX_SB "NORMAL" -CH0_RX_SB "NORMAL" -CH0_8B10B "NORMAL" -COMMA_A "1100000101" -COMMA_B "0011111010" -COMMA_M "1111111111" -CH0_COMMA_ALIGN "AUTO" -CH0_CTC_BYP "BYPASS" -CC_MATCH1 "0000000000" -CC_MATCH2 "0000000000" -CC_MATCH3 "0110111100" -CC_MATCH4 "0001010000" -CC_MATCH_MODE "MATCH_3_4" -CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -OS_REFCK2CORE "1" -OS_PLLQCLKPORTS "0" -OS_INT_ALL "0" - diff --git a/gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.vhd b/gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.vhd deleted file mode 100644 index f3224c6..0000000 --- a/gbe_ecp2m/ipcores/serdes_intclk/serdes_gbe_0_intclock_8b.vhd +++ /dev/null @@ -1,2183 +0,0 @@ - - ---synopsys translate_off - -library pcsc_work; -use pcsc_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSC is -GENERIC( - CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); - -end PCSC; - -architecture PCSC_arch of PCSC is - -component PCSC_sim -GENERIC( - CONFIG_FILE : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - -begin - -PCSC_sim_inst : PCSC_sim -generic map ( - CONFIG_FILE => CONFIG_FILE) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX => FFC_CK_CORE_RX, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_RX_Q_CLK_0 => FF_RX_Q_CLK_0, - FF_RX_Q_CLK_1 => FF_RX_Q_CLK_1, - FF_RX_Q_CLK_2 => FF_RX_Q_CLK_2, - FF_RX_Q_CLK_3 => FF_RX_Q_CLK_3, - FF_TX_F_CLK => FF_TX_F_CLK, - FF_TX_H_CLK => FF_TX_H_CLK, - FF_TX_Q_CLK => FF_TX_Q_CLK, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - OOB_OUT_0 => OOB_OUT_0, - OOB_OUT_1 => OOB_OUT_1, - OOB_OUT_2 => OOB_OUT_2, - OOB_OUT_3 => OOB_OUT_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7 - ); - -end PCSC_arch; - ---synopsys translate_on - ---synopsys translate_off -library ECP2; -use ECP2.components.all; ---synopsys translate_on - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_gbe_0_intclock_8b is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt"); - port ( - core_txrefclk : in std_logic; - core_rxrefclk : in std_logic; - hdinp0, hdinn0 : in std_logic; - hdoutp0, hdoutn0 : out std_logic; - ff_rxiclk_ch0, ff_txiclk_ch0, ff_ebrd_clk_0 : in std_logic; - ff_txdata_ch0 : in std_logic_vector (7 downto 0); - ff_rxdata_ch0 : out std_logic_vector (7 downto 0); - ff_tx_k_cntrl_ch0 : in std_logic; - ff_rx_k_cntrl_ch0 : out std_logic; - ff_rxfullclk_ch0 : out std_logic; - ff_xmit_ch0 : in std_logic; - ff_correct_disp_ch0 : in std_logic; - ff_disp_err_ch0, ff_cv_ch0 : out std_logic; - ff_rx_even_ch0 : out std_logic; - ffc_rrst_ch0 : in std_logic; - ffc_lane_tx_rst_ch0 : in std_logic; - ffc_lane_rx_rst_ch0 : in std_logic; - ffc_txpwdnb_ch0 : in std_logic; - ffc_rxpwdnb_ch0 : in std_logic; - ffs_rlos_lo_ch0 : out std_logic; - ffs_ls_sync_status_ch0 : out std_logic; - ffs_rlol_ch0 : out std_logic; - oob_out_ch0 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - refck2core : out std_logic; - ffs_plol : out std_logic); - -end serdes_gbe_0_intclock_8b; - -architecture serdes_gbe_0_intclock_8b_arch of serdes_gbe_0_intclock_8b is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; -component PCSC ---synopsys translate_off -GENERIC( - CONFIG_FILE : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - attribute IS_ASB: string; - attribute IS_ASB of PCSC_INST : label is "ep5m00/data/ep5m00.acd"; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSC_INST : label is USER_CONFIG_FILE; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSC : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal fpsc_vlo : std_logic := '0'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); - --- pcs_quad instance -PCSC_INST : PCSC ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE) ---synopsys translate_on -port map ( - FFC_CK_CORE_TX => core_txrefclk, - FFC_CK_CORE_RX => core_rxrefclk, - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - HDINP0 => hdinp0, - HDINN0 => hdinn0, - HDOUTP0 => hdoutp0, - HDOUTN0 => hdoutn0, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => ff_rxiclk_ch0, - FF_TXI_CLK_0 => ff_txiclk_ch0, - FF_EBRD_CLK_0 => ff_ebrd_clk_0, - FF_RX_F_CLK_0 => ff_rxfullclk_ch0, - FF_RX_H_CLK_0 => open, - FF_RX_Q_CLK_0 => open, - FF_TX_D_0_0 => ff_txdata_ch0(0), - FF_TX_D_0_1 => ff_txdata_ch0(1), - FF_TX_D_0_2 => ff_txdata_ch0(2), - FF_TX_D_0_3 => ff_txdata_ch0(3), - FF_TX_D_0_4 => ff_txdata_ch0(4), - FF_TX_D_0_5 => ff_txdata_ch0(5), - FF_TX_D_0_6 => ff_txdata_ch0(6), - FF_TX_D_0_7 => ff_txdata_ch0(7), - FF_TX_D_0_8 => ff_tx_k_cntrl_ch0, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => ff_xmit_ch0, - FF_TX_D_0_11 => ff_correct_disp_ch0, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => ff_rxdata_ch0(0), - FF_RX_D_0_1 => ff_rxdata_ch0(1), - FF_RX_D_0_2 => ff_rxdata_ch0(2), - FF_RX_D_0_3 => ff_rxdata_ch0(3), - FF_RX_D_0_4 => ff_rxdata_ch0(4), - FF_RX_D_0_5 => ff_rxdata_ch0(5), - FF_RX_D_0_6 => ff_rxdata_ch0(6), - FF_RX_D_0_7 => ff_rxdata_ch0(7), - FF_RX_D_0_8 => ff_rx_k_cntrl_ch0, - FF_RX_D_0_9 => ff_disp_err_ch0, - FF_RX_D_0_10 => ff_cv_ch0, - FF_RX_D_0_11 => ff_rx_even_ch0, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - FFC_RRST_0 => ffc_rrst_ch0, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => fpsc_vlo, - FFC_PFIFO_CLR_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFS_PCIE_DONE_0 => open, - FFS_PCIE_CON_0 => open, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => ffc_lane_tx_rst_ch0, - FFC_LANE_RX_RST_0 => ffc_lane_rx_rst_ch0, - FFC_TXPWDNB_0 => ffc_txpwdnb_ch0, - FFC_RXPWDNB_0 => ffc_rxpwdnb_ch0, - FFS_RLOS_LO_0 => ffs_rlos_lo_ch0, - FFS_LS_SYNC_STATUS_0 => ffs_ls_sync_status_ch0, - FFS_CC_UNDERRUN_0 => open, - FFS_CC_OVERRUN_0 => open, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - FFS_RLOL_0 => ffs_rlol_ch0, - OOB_OUT_0 => oob_out_ch0, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - HDOUTP1 => open, - HDOUTN1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_RX_Q_CLK_1 => open, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_PCIE_CON_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - OOB_OUT_1 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - HDOUTP2 => open, - HDOUTN2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_RX_Q_CLK_2 => open, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_PCIE_CON_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - OOB_OUT_2 => open, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - HDOUTP3 => open, - HDOUTN3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_RX_Q_CLK_3 => open, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_PCIE_CON_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - OOB_OUT_3 => open, - SCIWDATA0 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA7 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIRDATA0 => open, - SCIRDATA1 => open, - SCIRDATA2 => open, - SCIRDATA3 => open, - SCIRDATA4 => open, - SCIRDATA5 => open, - SCIRDATA6 => open, - SCIRDATA7 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_MACRO_RST => ffc_macro_rst, - FFC_QUAD_RST => ffc_quad_rst, - FFC_TRST => ffc_trst, - FF_TX_F_CLK => ff_txfullclk, - FF_TX_H_CLK => ff_txhalfclk, - FF_TX_Q_CLK => open, - REFCK2CORE => refck2core, - CIN0 => cin(0), - CIN1 => cin(1), - CIN2 => cin(2), - CIN3 => cin(3), - CIN4 => cin(4), - CIN5 => cin(5), - CIN6 => cin(6), - CIN7 => cin(7), - CIN8 => cin(8), - CIN9 => cin(9), - CIN10 => cin(10), - CIN11 => cin(11), - COUT0 => cout(0), - COUT1 => cout(1), - COUT2 => cout(2), - COUT3 => cout(3), - COUT4 => cout(4), - COUT5 => cout(5), - COUT6 => cout(6), - COUT7 => cout(7), - COUT8 => cout(8), - COUT9 => cout(9), - COUT10 => cout(10), - COUT11 => cout(11), - COUT12 => cout(12), - COUT13 => cout(13), - COUT14 => cout(14), - COUT15 => cout(15), - COUT16 => cout(16), - COUT17 => cout(17), - COUT18 => cout(18), - COUT19 => cout(19), - FFS_PLOL => ffs_plol); - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on - -end serdes_gbe_0_intclock_8b_arch ; diff --git a/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.lpc b/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.lpc deleted file mode 100644 index 2a5b9c7..0000000 --- a/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.lpc +++ /dev/null @@ -1,145 +0,0 @@ -[Device] -Family=latticeecp2m -PartType=LFE2M50E -PartName=LFE2M50E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=PCS -CoreRevision=8.1 -ModuleName=serdes_gbe_0_intclock_8b -SourceFormat=Schematic/VHDL -ParameterFileVersion=1.0 -Date=07/31/2010 -Time=18:08:44 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -Protocol=Quad -mode=Gigabit Ethernet -Channel0=SINGLE -Channel1=DISABLE -Channel2=DISABLE -Channel3=DISABLE -Rate0=None -Rate1=None -Rate2=None -Rate3=None -TxRefClk=CORE_TXREFCLK -RxRefClk=CORE_RXREFCLK -ClkRate=1.25 -ClkMult=10X -CalClkRate=125.0 -DataWidth=8 -FPGAClkRate=125.0 -TxRefClkCM=REFCLK -RxRefClk0CM=REFCLK -RxRefClk1CM=REFCLK -RxRefClk2CM=REFCLK -RxRefClk3CM=REFCLK -ClkRateH=0.625 -ClkMultH=10XH -CalClkRateH=125.0 -DataWidthH=8 -FPGAClkRateH=62.5 -VCh0=0 -VCh1=0 -VCh2=0 -VCh3=0 -PreCh0=DISABLE -PreCh1=DISABLE -PreCh2=DISABLE -PreCh3=DISABLE -TxCh0=50 -TxCh1=50 -TxCh2=50 -TxCh3=50 -EqCh0=DISABLE -EqCh1=DISABLE -EqCh2=DISABLE -EqCh3=DISABLE -RxTermCh0=50 -RxTermCh1=50 -RxTermCh2=50 -RxTermCh3=50 -RxCoupCh0=AC -RxCoupCh1=AC -RxCoupCh2=AC -RxCoupCh3=AC -Loss=0 -CDRLoss=0 -TxTerm=50 -TxCoup=AC -TxPllLoss=0 -TxInvCh0=NORMAL -TxInvCh1=NORMAL -TxInvCh2=NORMAL -TxInvCh3=NORMAL -RxInvCh0=NORMAL -RxInvCh1=NORMAL -RxInvCh2=NORMAL -RxInvCh3=NORMAL -RxModeCh0=NORMAL -RxModeCh1=NORMAL -RxModeCh2=NORMAL -RxModeCh3=NORMAL -Plus=1100000101 -Minus=0011111010 -Mask=1111111111 -Align=AUTO -CTCCh0=NORMAL -CTCCh1=NORMAL -CTCCh2=NORMAL -CTCCh3=NORMAL -CC_MATCH1=0000000000 -CC_MATCH2=0000000000 -CC_MATCH3=0110111100 -CC_MATCH4=0001010000 -MinIPG=3 -High=9 -Low=7 -CC_MATCH_MODE=MATCH_3_4 -RxDataCh0=FALSE -RxDataCh1=FALSE -RxDataCh2=FALSE -RxDataCh3=FALSE -AlignerCh0=FALSE -AlignerCh1=FALSE -AlignerCh2=FALSE -AlignerCh3=FALSE -DetectCh0=FALSE -DetectCh1=FALSE -DetectCh2=FALSE -DetectCh3=FALSE -ELSMCh0=FALSE -ELSMCh1=FALSE -ELSMCh2=FALSE -ELSMCh3=FALSE -_teidleCh0=FALSE -_teidleCh1=FALSE -_teidleCh2=FALSE -_teidleCh3=FALSE -Ports0=FALSE -rdoPorts0=Serial Loopback -Ports1=FALSE -Ports2=FALSE -Ports3=FALSE -Ports3_1=FALSE -Ports4=FALSE -_rst_gen=DISABLED -_rx_los_port0=Internal -_rx_los_port1=Internal -_rx_los_port2=Internal -_rx_los_port3=Internal diff --git a/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.txt b/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.txt deleted file mode 100644 index 4ac16e9..0000000 --- a/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.txt +++ /dev/null @@ -1,49 +0,0 @@ - -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSC quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSC quad to the final design requirements. - -DEVICE_NAME "LFE2M50E" -PROTOCOL "GIGE" -CH0_MODE "SINGLE" -CH1_MODE "DISABLE" -CH2_MODE "DISABLE" -CH3_MODE "DISABLE" -PLL_SRC "CORE_TXREFCLK" -DATARANGE "MED" -CH0_CDR_SRC "CORE_RXREFCLK" -CH0_DATA_WIDTH "8" -CH0_REFCK_MULT "10X" -#REFCLK_RATE 125.0 -#FPGAINTCLK_RATE 125.0 -CH0_TDRV_AMP "0" -CH0_TX_PRE "DISABLE" -CH0_RTERM_TX "50" -CH0_RX_EQ "DISABLE" -CH0_RTERM_RX "50" -CH0_RX_DCC "AC" -LOS_THRESHOLD "0" -PLL_TERM "50" -PLL_DCC "AC" -PLL_LOL_SET "0" -CH0_TX_SB "NORMAL" -CH0_RX_SB "NORMAL" -CH0_8B10B "NORMAL" -COMMA_A "1100000101" -COMMA_B "0011111010" -COMMA_M "1111111111" -CH0_COMMA_ALIGN "AUTO" -CH0_CTC_BYP "BYPASS" -CC_MATCH1 "0000000000" -CC_MATCH2 "0000000000" -CC_MATCH3 "0110111100" -CC_MATCH4 "0001010000" -CC_MATCH_MODE "MATCH_3_4" -CC_MIN_IPG "3" -CCHMARK "9" -CCLMARK "7" -OS_REFCK2CORE "0" -OS_PLLQCLKPORTS "0" -OS_INT_ALL "0" - diff --git a/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.vhd b/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.vhd deleted file mode 100644 index b57bb59..0000000 --- a/gbe_ecp2m/ipcores/serdes_intclk_ecp2m50/serdes_gbe_0_intclock_8b.vhd +++ /dev/null @@ -1,2202 +0,0 @@ - - ---synopsys translate_off - -library pcsc_work; -use pcsc_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSC is -GENERIC( - CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); - -end PCSC; - -architecture PCSC_arch of PCSC is - -component PCSC_sim -GENERIC( - CONFIG_FILE : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - -begin - -PCSC_sim_inst : PCSC_sim -generic map ( - CONFIG_FILE => CONFIG_FILE) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX => FFC_CK_CORE_RX, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_RX_Q_CLK_0 => FF_RX_Q_CLK_0, - FF_RX_Q_CLK_1 => FF_RX_Q_CLK_1, - FF_RX_Q_CLK_2 => FF_RX_Q_CLK_2, - FF_RX_Q_CLK_3 => FF_RX_Q_CLK_3, - FF_TX_F_CLK => FF_TX_F_CLK, - FF_TX_H_CLK => FF_TX_H_CLK, - FF_TX_Q_CLK => FF_TX_Q_CLK, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - OOB_OUT_0 => OOB_OUT_0, - OOB_OUT_1 => OOB_OUT_1, - OOB_OUT_2 => OOB_OUT_2, - OOB_OUT_3 => OOB_OUT_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7 - ); - -end PCSC_arch; - ---synopsys translate_on - ---synopsys translate_off -library ECP2; -use ECP2.components.all; ---synopsys translate_on - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity serdes_gbe_0_intclock_8b is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt"); - port ( - core_txrefclk : in std_logic; - core_rxrefclk : in std_logic; - hdinp0, hdinn0 : in std_logic; - hdoutp0, hdoutn0 : out std_logic; - ff_rxiclk_ch0, ff_txiclk_ch0, ff_ebrd_clk_0 : in std_logic; - ff_txdata_ch0 : in std_logic_vector (7 downto 0); - ff_rxdata_ch0 : out std_logic_vector (7 downto 0); - ff_tx_k_cntrl_ch0 : in std_logic; - ff_rx_k_cntrl_ch0 : out std_logic; - ff_rxfullclk_ch0 : out std_logic; - ff_xmit_ch0 : in std_logic; - ff_correct_disp_ch0 : in std_logic; - ff_disp_err_ch0, ff_cv_ch0 : out std_logic; - ff_rx_even_ch0 : out std_logic; - ffc_rrst_ch0 : in std_logic; - ffc_lane_tx_rst_ch0 : in std_logic; - ffc_lane_rx_rst_ch0 : in std_logic; - ffc_txpwdnb_ch0 : in std_logic; - ffc_rxpwdnb_ch0 : in std_logic; - ffs_rlos_lo_ch0 : out std_logic; - ffs_ls_sync_status_ch0 : out std_logic; - ffs_rlol_ch0 : out std_logic; - oob_out_ch0 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - ffs_plol : out std_logic); - -end serdes_gbe_0_intclock_8b; - -architecture serdes_gbe_0_intclock_8b_arch of serdes_gbe_0_intclock_8b is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; -component PCSC ---synopsys translate_off -GENERIC( - CONFIG_FILE : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - attribute IS_ASB: string; - attribute IS_ASB of PCSC_INST : label is "ep5m00/data/ep5m00.acd"; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSC_INST : label is USER_CONFIG_FILE; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_0 of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_1 of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_2 of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_F_CLK_3 of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_0 of PCSC_INST : label is "62.5"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_1 of PCSC_INST : label is "62.5"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_2 of PCSC_INST : label is "62.5"; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3: string; - attribute FREQUENCY_PIN_FF_RX_H_CLK_3 of PCSC_INST : label is "62.5"; - attribute FREQUENCY_PIN_FF_TX_F_CLK: string; - attribute FREQUENCY_PIN_FF_TX_F_CLK of PCSC_INST : label is "125.0"; - attribute FREQUENCY_PIN_FF_TX_H_CLK: string; - attribute FREQUENCY_PIN_FF_TX_H_CLK of PCSC_INST : label is "62.5"; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSC : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal fpsc_vlo : std_logic := '0'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); - --- pcs_quad instance -PCSC_INST : PCSC ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE) ---synopsys translate_on -port map ( - FFC_CK_CORE_TX => core_txrefclk, - FFC_CK_CORE_RX => core_rxrefclk, - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - HDINP0 => hdinp0, - HDINN0 => hdinn0, - HDOUTP0 => hdoutp0, - HDOUTN0 => hdoutn0, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => ff_rxiclk_ch0, - FF_TXI_CLK_0 => ff_txiclk_ch0, - FF_EBRD_CLK_0 => ff_ebrd_clk_0, - FF_RX_F_CLK_0 => ff_rxfullclk_ch0, - FF_RX_H_CLK_0 => open, - FF_RX_Q_CLK_0 => open, - FF_TX_D_0_0 => ff_txdata_ch0(0), - FF_TX_D_0_1 => ff_txdata_ch0(1), - FF_TX_D_0_2 => ff_txdata_ch0(2), - FF_TX_D_0_3 => ff_txdata_ch0(3), - FF_TX_D_0_4 => ff_txdata_ch0(4), - FF_TX_D_0_5 => ff_txdata_ch0(5), - FF_TX_D_0_6 => ff_txdata_ch0(6), - FF_TX_D_0_7 => ff_txdata_ch0(7), - FF_TX_D_0_8 => ff_tx_k_cntrl_ch0, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => ff_xmit_ch0, - FF_TX_D_0_11 => ff_correct_disp_ch0, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => ff_rxdata_ch0(0), - FF_RX_D_0_1 => ff_rxdata_ch0(1), - FF_RX_D_0_2 => ff_rxdata_ch0(2), - FF_RX_D_0_3 => ff_rxdata_ch0(3), - FF_RX_D_0_4 => ff_rxdata_ch0(4), - FF_RX_D_0_5 => ff_rxdata_ch0(5), - FF_RX_D_0_6 => ff_rxdata_ch0(6), - FF_RX_D_0_7 => ff_rxdata_ch0(7), - FF_RX_D_0_8 => ff_rx_k_cntrl_ch0, - FF_RX_D_0_9 => ff_disp_err_ch0, - FF_RX_D_0_10 => ff_cv_ch0, - FF_RX_D_0_11 => ff_rx_even_ch0, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - FFC_RRST_0 => ffc_rrst_ch0, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => fpsc_vlo, - FFC_PFIFO_CLR_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFS_PCIE_DONE_0 => open, - FFS_PCIE_CON_0 => open, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => ffc_lane_tx_rst_ch0, - FFC_LANE_RX_RST_0 => ffc_lane_rx_rst_ch0, - FFC_TXPWDNB_0 => ffc_txpwdnb_ch0, - FFC_RXPWDNB_0 => ffc_rxpwdnb_ch0, - FFS_RLOS_LO_0 => ffs_rlos_lo_ch0, - FFS_LS_SYNC_STATUS_0 => ffs_ls_sync_status_ch0, - FFS_CC_UNDERRUN_0 => open, - FFS_CC_OVERRUN_0 => open, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - FFS_RLOL_0 => ffs_rlol_ch0, - OOB_OUT_0 => oob_out_ch0, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - HDOUTP1 => open, - HDOUTN1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_RX_Q_CLK_1 => open, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_PCIE_CON_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - OOB_OUT_1 => open, - HDINP2 => fpsc_vlo, - HDINN2 => fpsc_vlo, - HDOUTP2 => open, - HDOUTN2 => open, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => fpsc_vlo, - FF_TXI_CLK_2 => fpsc_vlo, - FF_EBRD_CLK_2 => fpsc_vlo, - FF_RX_F_CLK_2 => open, - FF_RX_H_CLK_2 => open, - FF_RX_Q_CLK_2 => open, - FF_TX_D_2_0 => fpsc_vlo, - FF_TX_D_2_1 => fpsc_vlo, - FF_TX_D_2_2 => fpsc_vlo, - FF_TX_D_2_3 => fpsc_vlo, - FF_TX_D_2_4 => fpsc_vlo, - FF_TX_D_2_5 => fpsc_vlo, - FF_TX_D_2_6 => fpsc_vlo, - FF_TX_D_2_7 => fpsc_vlo, - FF_TX_D_2_8 => fpsc_vlo, - FF_TX_D_2_9 => fpsc_vlo, - FF_TX_D_2_10 => fpsc_vlo, - FF_TX_D_2_11 => fpsc_vlo, - FF_TX_D_2_12 => fpsc_vlo, - FF_TX_D_2_13 => fpsc_vlo, - FF_TX_D_2_14 => fpsc_vlo, - FF_TX_D_2_15 => fpsc_vlo, - FF_TX_D_2_16 => fpsc_vlo, - FF_TX_D_2_17 => fpsc_vlo, - FF_TX_D_2_18 => fpsc_vlo, - FF_TX_D_2_19 => fpsc_vlo, - FF_TX_D_2_20 => fpsc_vlo, - FF_TX_D_2_21 => fpsc_vlo, - FF_TX_D_2_22 => fpsc_vlo, - FF_TX_D_2_23 => fpsc_vlo, - FF_RX_D_2_0 => open, - FF_RX_D_2_1 => open, - FF_RX_D_2_2 => open, - FF_RX_D_2_3 => open, - FF_RX_D_2_4 => open, - FF_RX_D_2_5 => open, - FF_RX_D_2_6 => open, - FF_RX_D_2_7 => open, - FF_RX_D_2_8 => open, - FF_RX_D_2_9 => open, - FF_RX_D_2_10 => open, - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => open, - FF_RX_D_2_13 => open, - FF_RX_D_2_14 => open, - FF_RX_D_2_15 => open, - FF_RX_D_2_16 => open, - FF_RX_D_2_17 => open, - FF_RX_D_2_18 => open, - FF_RX_D_2_19 => open, - FF_RX_D_2_20 => open, - FF_RX_D_2_21 => open, - FF_RX_D_2_22 => open, - FF_RX_D_2_23 => open, - FFC_RRST_2 => fpsc_vlo, - FFC_SIGNAL_DETECT_2 => fpsc_vlo, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_ENABLE_CGALIGN_2 => fpsc_vlo, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => fpsc_vlo, - FFC_LANE_RX_RST_2 => fpsc_vlo, - FFC_TXPWDNB_2 => fpsc_vlo, - FFC_RXPWDNB_2 => fpsc_vlo, - FFS_RLOS_LO_2 => open, - FFS_PCIE_DONE_2 => open, - FFS_PCIE_CON_2 => open, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_RLOL_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - OOB_OUT_2 => open, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - HDOUTP3 => open, - HDOUTN3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_RX_Q_CLK_3 => open, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_PCIE_CON_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - OOB_OUT_3 => open, - SCIWDATA0 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA7 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIRDATA0 => open, - SCIRDATA1 => open, - SCIRDATA2 => open, - SCIRDATA3 => open, - SCIRDATA4 => open, - SCIRDATA5 => open, - SCIRDATA6 => open, - SCIRDATA7 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_MACRO_RST => ffc_macro_rst, - FFC_QUAD_RST => ffc_quad_rst, - FFC_TRST => ffc_trst, - FF_TX_F_CLK => ff_txfullclk, - FF_TX_H_CLK => ff_txhalfclk, - FF_TX_Q_CLK => open, - REFCK2CORE => open, - CIN0 => cin(0), - CIN1 => cin(1), - CIN2 => cin(2), - CIN3 => cin(3), - CIN4 => cin(4), - CIN5 => cin(5), - CIN6 => cin(6), - CIN7 => cin(7), - CIN8 => cin(8), - CIN9 => cin(9), - CIN10 => cin(10), - CIN11 => cin(11), - COUT0 => cout(0), - COUT1 => cout(1), - COUT2 => cout(2), - COUT3 => cout(3), - COUT4 => cout(4), - COUT5 => cout(5), - COUT6 => cout(6), - COUT7 => cout(7), - COUT8 => cout(8), - COUT9 => cout(9), - COUT10 => cout(10), - COUT11 => cout(11), - COUT12 => cout(12), - COUT13 => cout(13), - COUT14 => cout(14), - COUT15 => cout(15), - COUT16 => cout(16), - COUT17 => cout(17), - COUT18 => cout(18), - COUT19 => cout(19), - FFS_PLOL => ffs_plol); - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on - -end serdes_gbe_0_intclock_8b_arch ; diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/.cvsignore b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/.cvsignore deleted file mode 100644 index 67edf82..0000000 --- a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/.cvsignore +++ /dev/null @@ -1,11 +0,0 @@ -*.jhd -*.naf -*.srp -*.sym -*.log -*.v -*.htm -*.tcl -*tmpl.vhd -sgmii_pcs_eval - diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo deleted file mode 100755 index d3c4b97c352a5cfa8fff25b327440ad74a0271e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35501 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 diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc deleted file mode 100755 index c91da93..0000000 --- a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc +++ /dev/null @@ -1,26 +0,0 @@ -[Device] -Family=ep5m00 -PartType=LFE2M100E -PartName=LFE2M100E-5F900C -SpeedGrade=-5 -Package=FPBGA900 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=IPCFG -CoreStatus=Demo -CoreName=SGMII/Gb Ethernet PCS -CoreRevision=3.2 -ModuleName=sgmii_gbe_pcs32 -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=06/17/2011 -Time=11:34:20 - -[Parameters] -RX_CTC=2 -RX_CTC_LOW=16 -RX_CTC_HIGH=32 -EasyConnect=1 diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo deleted file mode 100755 index 4bfd6e06e5be71df4f7969a47cabece5ca352283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377069 zcmb@vd3;=Dy+59$r3}atL_0HCXOb?{Bu&mtGU*gWCtVZh61rf3FV3WC+C`UY5f`Ee1{IBaRK%cgjjRKxM7iD@Wea8dz2BeboHOUloRj9hUO)aQ z`Rt$1`|~`{*`9M|Vk$Ko$qCoy@V_OVHHWA1|J>gF2Rl0x`}edby4!kdBRQTmO_Sue zcSjFuT8=0B3m?fXn>I$aMzoDNp3~0v2%~A;j)ol)~qT}@jz?%dU|wHba9Z&5DgTXyZ-xQKojYY`nV%1hOM-H?-W%7q^9Q{C{e=#sXs zz5|JU`*J+q=f>%>C$Yb+uO|`B@%ZYR!N}|DPwY+fv|hC4EbZb@-KrcDqv$qgxNop!GwAFPx5WdFn#)$G7}Z0t)sPT ze|w_+NPAa~C$Ns;b0z$aZQJR!OtP6nPiwbj;FQJs>1ILn_@Jw@cS($$xMEb_Qk;W$4n_))%;cPJ-V;= zAd%HxR<1~P^(H!rp!TP3u`qei3%7-=JZOd6$E+Oa)I2)?PM)}iLeaJkQP2kzur2s% z%ECdNMNI=1Mh|K!+A?9~U`!V^2do@g)vAhg#|*VeWo(RYa5m3btvJ3nOj3x_l9?zn}4nhNflvM|uI zf*)E-Vzwvg8hW6Ey?dbbQ)>x~^z)R(4@xT9lT-}d3^f$J9~=xVPIIQr42wRXJJNXs zzCGWjMx6I`*jTLpK)}Xgf4c1~R8w?mzfBAE6vT9t5RpcQ2W=Y6=_okXJYjU!u*pJ- z-q&V@RLdR9UvFi!b+%%(|2&}U>}~C9WvId*DJO~j!eLkAEv8!zgZK2CBwNuCGfBiK z{7JLbA*b$-=d2vg-k*+IIh?@1oU(E_XMdrh=xLyw!e0+qb&yHnWXQ_lT>gzM7V`1F zXn5wD&%t%&jBX?cfyB1;tm!A+7G@h3B<~CP77lRn&NW*Yh~<5G$ihI%-eXo1=C@+X z(9jPfK(p}O;Gu8kv4!Q=`RqJ`6wc72?HbLlM|jr_*m;ENy^VGr`?|5i&LhYLV|HGI z$yCi|Fd3yLvlOOyMn;$jhidVFZXVf_=s(nxXghGYx39g2D`jDSi_JAt4P~St>vx66 zrq>e@?z;@n#=6B4HfBH<;V@ucR*WMIzAlr=7BvPkG{M_5ZsW1iZE+i`hyKpB7t=#` ztx206dvfD=%BziABc(}inhsKgM!zTX{QX8xswXbtVoW@Uk-m2TEG^bROvJyDZUmxCdtheF-hml&Gucm|3PZD)ah8Pk*9q zAI^|!AwJmJ*Vd8f)K$Z4MKv+C099&MggTC|$@qz#)L!0yJZ)Jk`wn*V)TZV+f|qx= zYj1ncz5|DjCfa*?aF%crle2Sq9$8UF*Z_}veWr8Fmx@)B$5U6xC3d1G6{}{Br)@fC zp=#>SmrGM364PN>rp`3x*H%resBS)99)@FP9d0?kHqMi!#AWY0Zi&h@{8o1_&@Zr9 zJ~FTXWsEyDL`oJ=AVz6h&t=G?Ft$+FM5A+7|5qnv9fxdG* z)&JIKNo`{Pp+kEUZTow1rL=xKyhNWvf}B{ji35k)S`Q?8+I!pk61dta>zYux*CtxK z675~Bdk(ZG^a7bfKPGGC_A#Xs=JIl|wT-hi%)!+PX-RH2YOs+r5k$EwyH5q9x3f0ZPR?T~oFw0`FDd%0GT&=q)=km)1+{ zWtmNh+BI_6@elx)q|CMF^m!68);`3kc!zI3XN;&8oOcc#UypOlH+?)k1U-FTXR_j} z#ie3RJnc@wV8YI$lRuRfXCKkkI)SVz3ZUi=nXK&uqsRifgF9lu8bbre@dlm1$h+2<^MNbKeGHc!t!Zh_3G75zh|b+K%hmZ7xjieVSIoVnCk z=8NIiJoTv9Fr95HqlRVfcSwn*$Z1{N#g4*FKC6&bnq!+?ji;<)wF0D%eCq;kQl@mJ zLp8L;0`!#4Z5ms30(Y)uW-8>(oH!cJ(X3HzDRVludR)aU_}uPHu`!k)EtV5j8K?Sr zI}aN;>f+F`?7DcirGj|Xhm+1CRZn6xTWXH83U#|kT@V=KEIoX0v4NE?$35> z8EX~mlP+?e-!J=SJX@;9aC^W}qE>3L-g}TbrWsM4Q;^Cp#&!_@^z9SsPu4G}&tSyus{OI$lIB_bzC3 zu}bXN*0lSab7`$^;$&U=QDePUixFC~n2od6qhiB0cZ8C@{=GO|QMbzdpPFGvVRiL| z;blAT4g0R0u&^V-hHL-upus-GG2(qWo~9wM`8&Pk9ma!!ni(R1KXDp{6RH7D3q^6T zYxj6`8ifCmBnZjjPy(xh|L4-93<|5!`pa zX3)5}RmH$<$sRL|u-m$NaeJ~Wu`R*-9VOd4Y(|v!f?qn7%Hk(_4{E&Q?)$)iO-3+L zkMHL3EH>}z{7*mFsvAs;m3=f@lLg#AlH~xY6wL-~4iKv7Uz0W#$}IYO(#E3Ue^1$1 z=v>kB(hz+dMC57Ab4(_k9}+40TfU8jAyD*E%)(L=|;u1Q%U}eO_%tvU*Ab( z=>v=sZ!(LG5{rkj*&1OkIdu^FM!sq&quAo#JLw~A(QDH-eYWJSMjMOpy)j~A5#%|0 zAo@DSA(oC!L|;zXSWLwOj;_V|hls^*3)onU_(HeI;*2JoULr zoz;5~3OV_T(w7q?>aQOFYYCjlBSJ9ZqhN^F9`RaQ$c!*Jbg!6E|3Ns@99bhvTEGLI zxO7C`Ii9+cL5t(|9<=&T9AQQcEY!DsMwjpH?CoytksDulNQo>1K1jq>mvZ&C30;+s z?@At@1ZBG7IC^Tp%Hc}!D04P-I5vMjWaVILlsufWa?p;FKQvl7fWBmW%*p{?zAuL? z9Mz09Xol}(tF7YmnV;{9jx2pXUG-fymBo*e|NdF+Ivh-`o@956r^BHUD+h+|v zy2wde>NP!+158T&lU5zz=4%-Q$A>POLk()a0jnASFMa2XmBVgs4uQj-r5_>_meNzl zt(t(n^o(gM2OyW8Y=X?h2=aTGhTR)Sysx1ni%-zJkH)~y#mxXYFYN5XxpKM%%YHsb zY42rSZHeB#*1p5NiN4N*7^b)ng=2geNcir6h6HRo)U~g3KWnmfU?X}3jkh`yTzBGDqc8zSb|J-ao8y$Unvl$L4 z`8TCN=35&9oij&F9dtP=SGp=g^e&oD6GZ}x=xK42#IT8;IB1e+P1G}DlIUi*VA3EJ z0&G)laMaG^NQgX}Z)dV`zYbjv>yaF(HW<(JPo z%h06qOI^@F6UuMYob9kZ#Z%rl;w;42EdPA7vy5}1d}zu=$dK2&q#CAMb*n79t9%Gk zdgmP6X3QnDw7knD7uwuDkZl8?OJ&qnCR?9fD7`!7AfTuF#vKF<{aNrcQzE*)w=)J8j`W<-*QywXap~<2 zcEoU`+rc0B<0%I|415obLf{x@E#mm@htydtOZ5*zZelrHKI~cq*M${7p|!)3-78D# zCn*g$Ab|Dn^g*|{VOd_U&v%oH_za@tShO5%pC5G-hvlgLs;l>~9NoPhS9|e)%Ydt# zm_Ix0D&`XAd)&QvIp%zP#?7AM6~AM3j;LdG^1Z>}ClmDpmn6b`%pDmcT0D7d!&8S# zjHe5|hYt6&wL^T5v$(VC5(ImgP&fv|%wF-Qked{1#fqs(Hz{WSiu=dhq?lJLe$(M5 zMMW#_8*!6j7Oy?+2JwBlaZc5v-m@n`qcuqFq#64X4m(=(n8aOtkt7kAEqXK@6m z;&6+*0^}>cKkY2< z=nN8%3Ka+Q=kdT0>Q1w>2i}k)3KgBcdAvX&&^!W#d7FjNw(NNqsMQ%aM%1#$TigR_ z+*4U0r+5z2LHXd5m_(Sd{xVO>8gGp)y9c41CYJIfPF|Wf9Sq`S_s@ebE+P;oxPtRL zk5?hMe5m6!m-n}gV0n7md-k^DVP$*Up(E`*?Rau~04rdiubcYW9f4usat=5L8S8l? z2AL}|7_Q469-dc&Di4g$tHKnZ2N=A6aM0O1Mtk6h$61DP zT>d^6)auqG4l?VbBhI!Mb%D!>oI^!e9?CDAc9zw}#BceofQvk$Q^ zZB)t6alxZjkH2-o#eS`_-#p+VuUGQ3T}D)Gt&+!QTx}#5x#|n~hE~u3p!|&dHEVY~ZR17a>R0 zV8BJlVRf~eCB{`i_Lev#6vki}~IBZ|lRomA6xUac_4!*2}QA6`Y_4oIJ(Zybi%`m=H!^YfoR|0M07aeI10l zg=y#FW{*w4OmJ5EKT0T$H?Px~FK|euqjB-BesD(ITl3Ok8n z9)3TU?Lnbl{g5ig=3HSL7;X_Od6(qip}p;VT>y=$k(DnOI1!{ocMs1js$U#}vW>|D z`I@F?VT%vEi^3hm2~ERu%Q~$$Q6IxUwRQXhJBaG>cO?D)h_<#qwswu=|4_f4zaBBi zv-&SdN5>d+UuD`$)GIJd8x6W?R_tw+VDzZBW%9D#mRa^;0R=};*_#Ed(T3pQI3t3| zjY)EY4=&0(*&G`eGqLg`F$xJibizAQKP8r`4$U%FE%wn^^p{Kj4kPdhmBPztL(N$ zi>~aBtbB#Nw5#G!dvVgDDD`83tW zviU&0{K;_dn9R7-rW>M*tK6YJLn^`n*VOh)W?GHa{{o$a00D=d2HrH1nJfMubHo8K{m>- z_~InAPc+OEZGCO<`5T`e$e1GvJnxS=P!>U%Qv@D3ac>+qbg|2sh%UQ{39u|^38dA3 zAjZPs9!)SYpf4H&kBu{8z_hNKNg7PJx^d7jq$|L_`oO4-lQ<8&gQj~)fxMa*35%Wt zQ{4;WKnwFXGeh>PyJl@1G5yz6nwLNu(WzqQ#qP6k4kq-e=A{{no{neuXmci0e7-V} z!A9`#XEPmysT;VGSuz-}JE8*enJKVNAnOR0Es+Z9Md-g*^BNA4K$r$0o{O(Vi);vZn4g^_A_0@sL-@un9EcWskK6r{|VaX1Xb9}qzU7OgOw9=IrFW3in{YpP+nBk&_AnZrzN=6XW2v6$)(I|~tO9vOmG);K`mnmcahCaW3-NH)kLmJTL-YmTMGHGo5sjprhe42~(C02ke^=*d^2t zb4u9s>*a{EIGM>u;$gX2ZPVt>IJ7!k5YN#nQT6@`b{#M4`jSgHiB>V!V;a&gS?O1(6mVTSjGE9 z%*9ro{y#S2BIOeu@8cmCDId6aAG0BAiOc6HCBA&va_VM1YGYb~hY5{cjQtN7G{HZz z9GUZSxKuFn8B6)?gu!PFGaPvJhs~>hI0b>M334*u*Csm*-sv$Mk<0udoFQ6aM>Ze5 z_dYrfzQ=H%t_LQ?fou~_O&`IPT+<;?gXU*K8GH;QZRtoh9|J;Lp5-S@EVMJ2QidN4 z6z$CBY(A$@D66!vKv4m8yB}H1HF?3*=3fp4S|H269B#Dofowm_KRA=kC)6cb`O6}{ zdSVRvwuS-Cayc0^mkXo6AwCmb{hd^%1^lm`7|G-Uwbgq=nOtDM`aafVi;2uvk9#t? zz<2e1%-g05beH9_%Iy3&3Cj-Bd$x?zsQfmF9Auma%T8eDv+X!J%U&6FlyUNv7o{9! zGEcrgj7#KOEm$gVkw}sEC6InN6sdRt_ds zO*qQ8&_EZLw;A`KE*)@r7 z-A4%q7q+$|>fBj-WXi6_k*$3yZf6pI?fDTfWmxNDI{MlyI6N=GTAkQ?Sy$`9&bGvb zD5(CyZi|E;^-(utA&Nf3ymTXU^{XW9jZ<9(rh)rYElVdJI!v8F1RQ5;- zbCw7G+UO$WLoc}n;bh5{s|O9Xm4o9!E^PyUY<6+Ww*5BXB4o#3gv>Ep?&}D=G~yW|Ml zN!aH9N;*kUc-ih)wviW9|g;A*c56 z!9-wg%F!LW_V2i(h*tkI<0xXNnSMtRs~Q<_6alASuqa2IP}juAhp*=0X+6{FU&pL*Pk zS@ClrHz|(+WvLlgF|D7Nb`>-9pT=Fq7=vX$aCeR?`BURC&RBMF9m&D_)_{`;5ra#T zP7<^ycv8wqfya1jLA$)Op+#bZtqU>VG9c9H7d!NZb8c{UX}*Iq zt{{h#4gwUj@(_JxriD^gen4{&FkyKGJJSMb`Tsl%3;UR|?BHIxc_`Z<%!=O+wzHXR z$bKTW8G`!Lp2K@P6Pn_Hfv7vI7)!x4!vPuELgNmn^98j7!XwdaLK$!WuG=Dd(7sqSzS%WiGI zyxZ)Y9qo(1>FQqgnwO|I{%mJudY{8my}T#k>>uvEPqMhvXl`t{uDsX>79YB`9XiRbqpf{r$`8pJ;jIad(hb&;@57`k&e^v@Nr58^d!JKw?Yd#KB$;Bp? z-QB^W7I7@Yp-ca|i|iZ<7ECxvFpsN@XP(Hbcs8x1k0xjoUQI-Dd-Tt42FsXWUJrxl zSIlbE1%m+x0UVUcsbg-21z#|3TDPqZ3elrUSmyTN#o{hFy_$dZeQqH&QG?T<} zr0}z8Db}FEp;=RkMXd1pDU(D|TFo%XydM4Yo#8)%f@l3xom9B0-^yu~PwIr1*qEJs zP*ixskSMYNnDm98(@YWtg%>wl-N=^`V5EJy!^(ztWE?(8c{0BjinPPiQ&vTAw2`Eh z15<{1oIslSBSKhhyf-R>d+$>N7M+VUyvc|6bk7?FQ{jN`mZE_0??xXzz}Jk=KL!H!vuuAq4|`7mt~p z+-;KlmMQcLI_E47kVk>sJvL$>)q)FkBS{t0v7i+eW_@s5(AHsLpx%N5Necs|6!gqm z7))$)vxULt6&$wWh|-Eq8dECBU6N%_!CsOsiER0@YtfLNfv!tDKVjD+=z~d{N7PdE zk$f8q1G4BE9TD9Zal3Zhrp1V^>WvU`kZQUrCCZtd+yor_bqvP^$9Rp6=5;t|!*XWSp3Xf<> zD}bb)q4tm^2JUD{CL2Rg)#HX)A>*FQ^sG!~_#~^)%T_m9z>Qo;Rg)_(zi68Wz|+%~ zM}?J386~ZiJ{*KoR>_6hg(|68sGpz^RwLoJL*OhDj{eO(*@GN?aZWi-9E@P`kG>XA zB*tLt-q!BE#Qw;^MC*YAi5R}%96dIeA%&4Ct^Y|%N$E;HJ+JOkW17_euESA;`cE4k z)bc^bnZiRKDaHP?y!{uO|5uG15R$qAjlEPaz=eF#%utmh2K*K7XtA+)+d*4LM#1_?2hlvkKr?+JQh3^s z;mJI>7rrB9=Mnc36C9<7ED8&gc0G0@IAG_oAFof_dGaCSg8v=N;KICMHju$&>{F8& zOspT?M=}zZuQq!#vWy^n;X5+TnS0QLRMo>T2o>RVP08QZq_S#tP`=)JL?9_Qa8%t`v zC}rbunqF)#in%@>pq6b0BsOes;52_-63i5>^Vsd=OvEsZo1M#6(!sEBx0mV`LY> zrW_l0mJ!kClg=`B?%yeA8Ji@Hs>j4OnAq%@V}fZr`Z!O;n=rFMjgXJRMjv?(V^~k9G`L5hadUH zff_%n62`Ty);!=O)lX@)Z4;2@@$FN~$GE>XlF8(ix%Q1|uyd`tyc4p0M?K2Yb_B#G zBMF8q&(F*=fx|(SywaK|??FXr_I8#B+x^@$nyhHeeowkyo zdos1;muDa?XJJ`B)bG;BHU60d-$g-o5A5ntq0}exK0a(x0^D~3It>&nBQqd!ahsv1 zpWpbaj(RLKcY+2FPEh?|4^H`xnBRUkAKF$-Q6JI+-8Kb2Da52Jeu>2_fgE2|miOFR z@olW2oI%rPnk)MPAd(F|*&_5NSYc#xuoXK7)n}TK2>M;}-Vnl^2#4LR_yL`se%wQQ zp+(OuLz|;y_wLPbSl2oLmBp}1tKdBL!5FyAAkD?VL40**EJGl73!}f+9BdFGuyPUt z7kqFeDt;ygMAMV~d!jT}Aeh`vdOo<;~4H$lc;&EedF}?sBY0fz>H@ zIo71Wna%EUe(oS}R@_|y12C{A-(8LY88~~M0BA~JDZAwYux!j&mYPQa3s#_Xo($wc zeh~+kTL{(=oSR31BRAFv1&0;_!Qi_%LL6im9f5dq9>=g<%fJq{n0dkaVP_edQnG6T zGS^YZ@ACxLxunITTd-!_**9lNxWidSyV{tu42=$MYH^mai9vOVlRXDG#DW_JTrBBU zZcREs#J0TGEhL2v92QQ7Eb{CT7a;~zvAkj8iY_05t$d&x_Sq^tP!vBy+{A3~$J|2`tPi{U=D5Cm&ds;9_=Cf)Vw4?PYpjV@v=BA4j!9*} z%y%0?>qi^}nD?QLPQYWNgyP1UYK;L{Le(J$S3o2b$#)Q-*w7j$S7<=!oJj`@PTkNJ z%}GL=t%N4CM4pI*HWSk<3Gr%5I!T!Grfw$*W?4zZL1I15m%}hKnl9&QL@0M8TQ27i zE8^J#-B7;1_$P>69Lw3mgnMGVCMh0u=&0_W2i<}bQ?CByyy7z>u5uo1i~b&PmCKR8 z_@ric1v$AXopx7{6qac23X+37{K#mvUZd=bDUzq-E($!<`+tfEE+|u8c6~qP8OvEe zzM!5!(yG>BNF4)X>S-ra>WCI5bNP2=KsY7MyX)nbjJO$xk#^bF zM%~1`k6zyHa}{Iim)$Kx$tgC!+NPcEakYl=T{Dn67R`&B@{VpdW8M=i`^uoJH86{Q zeE{Oztjur=B)Yp%K1>(=X=*+dfU~@y1sW%1IpHwHX!+_mq>gRjiCOuc7{t!yVGx&n zW75?cZL7Md(N&DTM5kz-mz5b#ZTT#G#LbqbKj(OHMFwq)emgmz2C|Eej?AY){C_kw zp9cCH{Y7d%4YW9V&)9q#m^aby#^=-EViEnpyoqp%L?__H9TCoh==b9Ds-WM|2iOu< zT$#$R=0%<>U-Uau^Eu(Xh<;;sUKIlOt>nBa7~0YA2j*2_3-6jg5Mh~|nAZ!7{_VW5 z@N^_PJ~poxf_pzS+`(lkKk1%NgFf!epGO1oKg1!=np1cyaV`Zx#zf~DfNuEZSy;v_ zhpZL>OJ8Yrv?KiePN>NFJXWa9Yt}N~hhd$SkLbuWFMTEC=$4zx07!0Y>SD0`%1{f!$ugp4%Fr59%h8#r^c=Y+4J@S#e|0L$09jz9PE}io^%V2hj zOE@6zesm(F!K%V2iujI#)p zN95Z9*{DP~*5;f`=P_RE9&_}`Lv-ofxU-DQh`hp_v7%vk)}3=6J}(XV<@vC6mb1!N z=Nw(5693yrAUe^0_~ML$*V0!tM>8&urLTINWgLdDwm8cql~HFI$J46=&N8C<>Xfq# z#eZ-DBIn|{cz$@qRZM6~S23seVA560Bg7R%!Z|e_W7O_KJNSBAIl-b| z=yo-iW8sYuySV49h<vBRUtnKAB;H(Ga|0D1(U}28SCn zm}p$^rc?$KgC+Q%a~VvuFgT=TFxi*SOlC0A%;49#Fj_0;3=jN}6D|Qgzr~lANZwkVk z#q#sUNAYu6?fTCx;HJap$Ee(SRPF2IJ;=(l1ma5~YZ7btDZd0Z$nwjeNW5}(7TS52 z;FlqzRuQaJTHW;9DLm2P3iI9_DBU#b_z`9vEp3dQ|YE5i19ivf#&zWm;jP6tqtXM}L=& zes-p;97g|@U}O|X5Y(lR!9gDjcE_w%0HNUjOiwFP!z%WNtQ_XtKV#+4bJwJm z!z#K1Rt~E;#}&bjWH&m0hD26);MV4T5n>diOBQYCH^|Xa2-_ zojgjoYlKXBwNQVtE%?p2oyB3w0TWp4fgm@nD+2u$`|_y)7a>9izs0I7QN$90ve|fs zmF(jVe!E%M=LeE;Q|2Vq+r9D~Yxylx{(^ewD>J$^)reK~FI&hlYt)mg{x2W>nQUtQ zDQ064pmno0WA#1ByT^oSex^kB??fJ*19u7W?P-@ykZ*KYZSlSzUem%Dj9inSRzzRq zn*wi3_XSl%uAMMc)E09N1Ft~6?=beNw;k-3ZBSPaLoH8O*hCJc=+jAZ=uF=P&yTA{ zhQ)}E6aY46W(58!`3VhQx z7OF2OirH8gdD^wAg3f)164nDwB4T{e&^V;jJUJ@HS(*a3_I$uq%IO-3c00?>I7nH0 zq!~(iSw}xCdpN0`-yYyRlZ475e(H7~_6hp8jTshUEmGGXjwRaLx+4dx4|JoQ-qZw@ zB@}*`vab_6E!k`&aUTTeDeLTMZ{2JB;8B#52+h*oub?*NdJD7{hh6OsaVoqmjeyNB zipyY95>`@5WIa7dAp|{m76%}Wmu0oDblX`xxNAR(8_ad7Vqz&|?-L+XL?w8vo7$tyeB4`Nn^tlj5M8h)q)>}l9xrpkBfBexHUnSncF zT|6LW28*XZ%>7;(=4O6lyXN1sS!|Ra83h*r8cr}lwe#|`G?7r`D=junOt;!I8*Q4k zJj19hrOR~uTB02J(u~a*-HhB8x3QpAyPhGerl_a(+++rm$=o_@Ge+FP*SbyCzI|M2 zB6kPCS!{laSiWc)xpyRkNzI!>V5U)Egzrve=y83yYa)Zm+P=-e)-bH@8}SS#N{M`n z$XYeo**k|an27FuhS3!g`}V0%0rH`I;R}qV5=D{lSvWUl~iocR$*W?aS@3R~Yc0M;X zc>luc?0jyQ@IIT&;&Y=%<&r`0u{_~yN>-=JuDF$9T(AqEDM&mr7IZ-2m%NO4+>2E? zk_6xMYq$YQRk_MSkEly<>HP08@nrJh3a0{3HwVtI73I%iyT{9vCIn{}gK*A9pfvRIQ%u&a%Mzk4aJX>69+% z>xp2kpgy*(1XbBfK^OWiv~4guzSVT;*y4lX?uPz#^lx zdUhg9+KMY#v8>9L9gHYRP&>DevgF}da=nGM67uYRjJ!v}GK@+pJaeCXFK znE>COqsB9+nlrK+!sA#?bUMQk&SMexx2X)a^oMDl>>$AauemC-EJARFC&LZeQgii0 z29w}^ESbSX($zm71JkTVGOM{Zvk-3hsJU!3!<;Eyo7sQC`S3`FD(ycS&twvu9$yBR z&^$d1rkNBADz{^i)r`Shc{Z zyebKfEiWKc`TkiOw==xkk&7;X+Ps zr)$ReFi+1RfVY5u+`)pNG!117aL!8Df0&saqfqdoQ+OVbewoa0hI-^DUMjzq83qy_ zBY;leLvf%#y>{zmNR(EISEwR|RW+w@U%!g(joB^Jy`&zOEviMcr zm&}k5fE`mAOdJ~kfB9z|-SF|=virI-P1G2Wfpb%qKMLi3K=pf@9SxE6*)d2s8I4gO zKU!0HEVFtRcz)&}N4iy~4rDn10-8EnD3>g3FD^4O!Qeh%8{S=-58SIJ?}ni`tP z20R_ea!vJ{z_nEZbtc$G&@$XWzw&1x@Y6AYK32oBM*?=P{H#xvmWeGNidCum3l{9y zq{`{p?08T<2(BfZdTvy8b7Ll#Dep{WavkgFB zb>>_~4AxQ=AIRWR^>7MI9Wa`6AZ)R~LmmhAWfOKidMs`m)0xJZzMM!`o?_`Tr~Dbi zP}581O7ae-tkayjO9`@0Bd1EQC4J;md1fdr2dtH+^`~jhn0!x~<`92dEKPH!m9$uB z8U!s4WNjIyEDQ!I^jR2;QZ#8{ux$UJg#iqU-%V z?kfI+k-p)CbDrAj7Mtl^4xhy@q^vH0Sn;jRRt`!nSz(MT@rX{BoHSz9L7^o}2CN(a zU9vuD<)Aqwwe(|_r;^fG@?skn_D{)wE3uDU`&So;eNxX~~&!aLkJ2 zQnmO3dt#V4rRPD*FeJn~?JDqHe6=U7f^xW$l+mbl?Qo1#kmIL3?bLY}D z!zL{Hti0quXVMCsKc(v}QGrA0*_Om$P`bxbF%JZ#?XwmSfT^r4nP%wSV(Kjxw$yUb zU|NrBP-zWl0~63?FIz%O@A2_n-seD&@{#Veu2qH-$_`9r$RrEoT7Eyv*PCNn$$3>t zK+}!(^64rEO8HWABHis`iQ%e(aR_LQ?YCemL)Xkg59TMR5L22qju8=Wn2=bMh7 z4cNsT?d3`EIQ|uC91n6RCu(xFU$Uh|*T6Meb5otX2wEIsA2`ML$}$ulHc5CWDF&6Z z$aD(WO8f@cDh@&ySNEGnoWhlCmU2m)XOkeA7@Nt~o3ow_OpWq?(!kJQeJ?NzgMo2W zehjq9;Gp|)w}rtdKOMI)kj1i`77GJemYZiWa`a`jrEf3}0RkdBG)*nKiAmG2X-#x1 z$9Nz=mgY5To8>O~vc=3nx86=BYAL&CI<2{hKZH$0*35xPM4(apE}w3ORipUbqdI{l zqj)W+A=Q9EaoxC1AbxRuhfV;D;@Xf-0L;pjjF;EeaS5Ig?@jdeT!IH!8ydmOZR33b zsGk#86n=uX4SNCcLy&l2@bHwF$v4Sld9QhF2Am~rJ-sk_Pm4%y2Y%} zss)`NGODgao8L14TG8z>MaddobSQ36^#2vTQtEwLk0r}` z(T|!9J^KI7utCxPuS|+|!y_WY5W)5Yme(<$lyPu}_zt~TnZiYVNkhi)cj=ncyIxOI z?o$-~c+}8i`0whe$rJyg$yr0j@ck`9sqj!P81L7`nDzQ)GPZ#8aM8L4KcCQh=x`5y z>r3|BK;z^_(RS0|Ns1iOitg!1$3fVydeS88tUZ;E7PYxLl5ITCbk846?bE59WxaXs zzL*r|&CEh_#{yG#Xd#O5Sa;y~f#I*})00w$c?`zKV0k`=c2vsNHp}7J5OHKg9@Sjx z0)9_J?S>k z@bP|o0!HVd9#3Yd8>urwFqCBnZzpP2E+8{a*z)R?KC8H=2VxjqGn~aW#${Cov}i%q z#V#@6|C8*F3AQyngatNCM2I3UZGnlU$$QfoL_H3D!(!5>Kb@3 z_&~mc1Mttv=!+Q@M-+Ij`rNFuX9TUu42nD}vWo!sIn}QHi9M~@0$3BK&)ha4)!C5$ z?;f&R_u)#B8}$Hm@HhR8j89Bqzz2UlrW3MF0pE)3JB&$O8CH&4vEL9|!*F4CQb=6u z4CTD|TsqHdQ>z4=m8+W5N=@gV7emPU=|)<&9`3`-So;&(5)o}JPa^AcVpjfz7((?q z5=d9Y1>jfmMFrWKr-o%W1i+IDbRLf+p+6~0(S+gYle&_zw&}ae(KPMAs4kNi#SUGf z{~nQc34_tGg^#4PLvuP`KmMwZcxhe9EH<=*4@}$H#@6tHJn${eP&*-m4-V<-_C&D} z`8mPUY#t^;!ATx*fxYtRCQ2#zje-yj29cw{GP;d%=1+FpVj@5PKgMk=c=5lPw6OqZ z(M2t37IqZ=U6x28oY47Xp#8)4Rt{~dEtq^k&D>z|LC-ohp1^GS;L*D{= zqKcqu;mG_W8F{!0P^bFF>lH<(o5lxvBwWEM9Ts=Uw&3J(3j;+KoMzepC;(CZ#HeW4 zob#pvtb`du{4dJvhfX8q@;}8Tn)R@1zGuRS4^4=z zEgNR}#~F7!#(a2I?6UkqR(8gqk|pqa3>=5Af=uVvb{LmtxadW@gHL#@k^`;yK_ePG zZF4ScjJe=n16kTQ@eTfMI*W~)Bf%LCI1?3dg4-m)XZ7UNd4{lY!4Z6NB1@YIrdqPt z93YQn`zDzGlbttjtp;baW6H*Ze+RO>^G-B;gI` zvXcXjB0yiJ9?F|5nm+afZ%%gQ|6PDZ>1AAD)RQ3RvKvyKv0CEu^b zDCJxMW@Ux>N|iJlRidS7w5RN1TdVax0MfFek+dS(Qsz&lY0A&^rD+25j?pyD!dAr% zS{^`^Rhx-KI91C|*T)4DBj(G741Lg4SP`%==yBzkg~8f_%@ziIl!N9J6`usYbi%?Q zJayd$BO-9DF{7$Y3a2$1a@_xhemzL#QTASzVH%h;Q;4L}G*PJ;Nz=^vtf@3DL+k8W z3xj1gr#+1R3%jL3j#?mxHZk3`isS_VNVGOw&N#|I3Lqjp@4V zB-T`V!N#4C{gi*}&d>$_&n(W-MgK%9EoZEUV`(}}=hG8u20wS=e{9Uc0B-(Xiw5aO zEiU+t7k`f>U($cF(rm&b7MJ`EgZ~c}m)w=%f5>7YAOHESl|iQuTB33W_#d$PkUXie zl(<6rYYPsXbNZ-k~s)+ceNzeZ{N15 zX|tr-$DhaS+Sj=sFX`>ayM6L-6OWRbHts_7vV8*!GeIq1?tp4`Ek_P@;;~%fa2MWJ z*N3@0b1gZ0oUT>v1g*FAXaW~RiKY!(HYVyhe~Pb>gxyu-ZQK%VHtonVr_8{$>A;wy zg%<7Xun77U=C!~&FhPnxC_})thnQoH6boea3Z(;$8g#LfJkEe(O2?y3=spBakG&?mDIG!Rra$wx=Ii4aD zoSre5}Yb)Bsj6Xj) zfQ zZ=jjqG1#_Ilk%u@C$*DIq2<7&*P zKt1g!Uo>ddX}iRJ4}|;TB*W07$I(OV2dDJdIBi;flQq+f*wFprn68WJi@vGp1cqwS z_r`SsN0Oqiwde$Q^ z=Xawz!8kt&=mgU7esTsx(@y&Oyiezo812>x#6RigIEfuQcj2_?q?8mqdQvjHCR@8$@|qA|`i1y#sS%yK%FeWWj;=!!1@0{IA&@C#QM$ zjzrV8ox7m&MZ{RN={)@Py)lULAj03b@$ZJ_4fyjh4-77BZrYYuw|i&Ph8D0MO;f$=Z%l|>whQu_;F$X*bKt^ zx9?crux0lyFjjsOk#q94CD!802RWWqs<$AqSgm?p-~@pYvhpq+m$h>8v+}D_HDq!v zvGUFUkL#L*{?g|?^~682Bk8kD1Wr6^!izys>7J6$kkJbVrZ?p zW?C0vXq8+PGV~x?eybiX3Ku0;P3WRpRn;d(4O%cLxpKy!vE2^(AJMak*2+kVw9n~s zF)zKGzJYvg40TjJGNFWZb%rt}0m~0EF-lHc}2fsjU^-H?nx|nov_22V#{d(y{^^yUdUZdXgQkXUB93A#T#t-?ft7YV}wIfUiY2tFIi;g&gYDt$M1pYcV{kzTR&b z%AsTRiAjU5=ek~fTcbf^W>mN6D5H^-mOK-Kl#Q*I>`OnQS6W*S?b7cz>$Z5+%2WN} z34>w-mc$K8_Mub{Pa5xFtIeltj4|?_KtV+?y8%*a*N8$Tk##EmZ;QP^^%#7^sn>_ zL%P4ZdY+A}xM#wkRX*QsG2*H5cKv`M=fGVtK4Fk5-S0ITw3JsGXZmb7+(W6U&h1)9)74!BBV&4ygc^Q(g|7i8Jwx7?VgVZ87Rf6IqG%3hJBpD?o3#kUz~p|sHV zCyZDEMd;T)gBEBj@&g79IkTzyuI|0IR=})&Plv8itFrG48MJsTISf*&i-^2hZhWyi ze1;C$t{fWI_0?qk2+avbM8K(*YaCHm<1obDh+M!ZJ(6$G5^m)cdO8siue^3j_b$*> zebXpU?R2a9iGf8}I$M1Ov;}(HJV0{Q?;0>@mCarwS!@f2y!M6}C6A~ja^8VAe?$GaIx>Qh)){W{UP(@dke|Od}mb#Z; zHK^!tJx(oghzR{Pq%)+j&~G|)QtDp$mZqC)A}-0J`C{{7Zk61fK^G#}Ka0X@uGEtY zuNC{6kLoao*NT0`3zNG0HC!z}->g$Hx#L{3liuMi9OJ?D--dJz*1MYT8kRAvaG_^B zx~4!B{Fshscny~1RW}-j^|+`e3agBX80IlN^v^lnSRh&TIl~u^;uSdtRge3Sm*alY zgEP8zRF>tMWXPc911I>jZ$B3ye(Fv9$89Nka}msx}yz z@e&H&-epK@RrjXHpp8Kuj!3sxeR^28t_3KoK4VgVFZ_y;mwwuChR@JdtHEQ_I;{rM z@~65DT3UH(n04oE+rDFK!xk)Fxf8k=kKd8n@)zO;EvYUy&bGp8hAjWv1msLr&7j&B z20*j7au`_tKSp+H!Yw~$idCgAPZ{Pip_adC>PvRvzoZOzG7VOE3|bA;6(=<7a<%JV zg|S|RHA#2HDMN-_*5c(?8(r3br2mlgSXNR%>6O!nQ?|(&@^ynS+_;UmAO{SDHg2X8 zGlmkzoA-Bf^uBfD*2I?P^@&YQTX5Fx|A?d{PSI=sC+H|wNZ$Ls1?|Z5gG_ANy>0!j zrtRCnysF#O!5r}SkC-Hes{e{%lf)^f|8R>*VwC&8l{87Y9sS+3FFA$(zC}*+`_tz9 zTDt#x9cg<;`?f_6Q2clFn{v5%t*(=#9-cw^zizPyCjJ8+Q=bsunik8g?k}a&ksI(g zr_<$~@3K2)V4k<7Y1_GpT}@jz?vRUk%Qt`JK5}5wqy(8qi~FxJ1~s*vWqEV{LJZ`A zmtVFBs*cIM^Xn}o5Rn@O#Frd@*?}QT2`ssTCFu4bKWR}XVC^1L406qiaUpS|p{Y56 ze;aotc5dF<)P%M0icyQGcmKi8&P4aYL}zz9=4D-6WXC~ZZGwx{Ik5%m>R`o_3(;Rg z-xZ&jTZk@3_43BhLNue|^=ei5ajL_3srZx{p2yKdo0h+0W+CyhPNA&jr_3%$S@2!{ zzUc)iOJ&zC2n7tIih=loydniW0@=L_7FUih$b!u%T9~Tp#-XtV`9(XHFI!OK@bOWO zokK$l@{8tG^ejvjxUITn;&@(L`}fFsebwMXG_h(|bWa^mQ`Q@foT>#4NG?rKPK+$X zue^FvG1Rd@-2`uLRb02Al%cswU!v!kLIe!QhE-3+j+X*8aa38AI&NXq#7JEA#PmXZ zVhoh;eE-aGD+RWp%f^oD4P7t4#CKe8 z7~5rE>Nu_%VxCWD^A?KC%2#%0_}Z`?&wu#5-Ev~eAEUrE6MI|!&Efxp0lHjvv$k*p zjIr{&|1SYBKFTZpF9vK{5DD2v`g}D5@bYDu<9R*D2Vr4yaj|U?H+yd2Ea+PA_TW2W@Xh9-QbLs6=6Rk z`8F28ku83vd;Xf2cV*nBMR1n)+gJo=mB+>+IMo9-7Qv|+x3LJ0)@Wl9oVCq17Qu;5 z*jNOo)&>qQ!@X+;ZCV6J-7+^I3=^Dp`D|JQ=RK2FR+!*iY;&)1Fr8obVbdaB=Zx4`#A};oV-YX)NXe{`cq1)+8u4lwu^AGt|7S}=BVKamjQQNOi}4TiTWvH#)gH642vzH-jYX&u6E+s1 zYU{SK2vx_VjYX*TgOi>G8ln2Yn2klKddF=nrrPbXu?SUH+{PkQmrmJOgzE5sjRjo% z9U-ua2!ibH!a?V1l{|N-ZEe`KzLA%a+jilWOUCbK;2tDDEJJWV%Y+0;QcrV)7ev~%~m2%y)lpq7fXWxF1UKceS-nw?uLDVPE-@!qHDEW?6JwbnQ6AOMV7 zFZfv&05g2*M7BUZo$x-L%oed`?aJnC0e{2H`}80LD&aI{%43d8>laEn$f=SV*$Mgb>{ckh901cnF--rO> zEkhJz@VtQG5^4HgH=M*!oloBXkZ^SJf@#N8UXB}fNZL1R+5uJHJB)C2`469=h`fBy z1$1f+a`xRdtW)(2@CQS44V^q@YNA%33|TpeK+?V^O--gbZ6wAgAHGNOjR;KhXNDJU zdGMWK#3S*0L$rp$A26LT&0iV;_?+4IYoj{ux$ynKa8l32el(p-JkB=A> z6O-!;mcT6)z7J39GHz1vjTo9ydO2;}umkZ8LsZYizG8%nGO@3X>WWb&_GKfnD9gKU z%#hLU^CrbqZZYi`{6CEdQ6_ey>4hbH#?&N8pE44wW4yOb8xcVKhhbL7;Di0TsE%oV z)HGvto;gDX;xdz9v=5pTv+Ro*ii~~KXHd-Y(iVeabr%{kJ_GW#kL$8phP$NSpqNUR zNwI>CVME5G)nj`!h-YlRJ=2Da82!IFgJPcViy0I%+tp%F$YtrP6QnjYt)pVVr;B(` z#ka_yNW6DW7xCASedi7v6f@b@Z&1wnJdbB!^J*M7DAu}e&Y)PqSuulRmS_76 ziqY4!7!>iV9M>scR{O&J2F2)gCdKI0!-kA`E}t_f#tTgw6f-L`WvI`;%4f*9wZz|$ zCgIh;A>WYlHjV!rP_oR037db5>4_JR{>>g!%DReUCJA9Q?HEb;-(~7*$k+cK(=ksp z{4q1EhPwSVX=TQV1PsR-s`FQ+m64S9^>JNF{0dr3RcNkA8&a5K8iL4We$h=E!aHl% zwZP3A6F9J}5qbk?-_>;cAn4{=p`VX|K1FEiFMTBrI(NhN2HuNUsvanA*uD;g_q8dA zdev1QP80lp9R_{!riKk0c$#q1&Hc)99RY7{7NR*^e=cN8Uue-~KxL`?ZU928g`sA(}WImd;J-1i_t~(+QUNYPU`>rB@quf*HL! ztP@P=%?T3gcdld1k1}TNhK5}YiT5>a*wvW8`TWw?&}dr62ZKwGB@K!} zj^!H^GkbMLr&!vtm?2^U$Hokb;2j$@DCTo)+MsCn+K8eWSl(;RhKNMSAc)Cp{W>MY ztZu|KUYpbjV)D9ACz!<>13JM4XX)!HgQC^zLpmj*4xM0rYDw78)WG!K&qd0?;TJ*W&LguOJ1g!&3|(kVh#^x`qs1%d|hej zTZ8iVmUBTAeTYtS)rY_+%U4DXG80ix03iXcl{QwY2KR~K~%5DvtsWxbNDl|z6sk2ynLXuXw&+0sXiv^ zeDltGPYeEDv<{E%L0n7IsBCq(bqMSe)&s<4o^kO4JZNxjKqzMSvl0B6yN=1S7vJf| zlJ4gfu$+9JN&yXqp_P=m^fTm;bILlV_FMSRsaUsV`}%Wbzw)+C+*NTcTtFAjy>}vN zUL7L(cQdQphMgB|gYTk0#6T?yZ3u+c2SUMhfndX`RjX(^K~uu(m19kA!v^-(d(Q~< zxm6jr7wa?-c@5hVbe7;X@9v#)&laD6uzV0BjQi{uG;lZ6TdTY z5UG{lJG~$SW`o&N{u^j7z(3V7U(4l8=lJPR9kbE@4bP0i^S;RYUpy*VMBz;forpLDZ9 zj`q)WgYY$M-Y6p>M@85mCk;81x*lrx=8WhB>h|W$>I6oBchRsS8hAqH%~MHlXket= zab1t6Zr!xZ%QYa`l3diU=E7{Iw5s*>jcNOci0E2sDX>2cX3RYkXSThs0lS;P|SOAzCnSw zaS{YPFwhOt>Ti0!aaR2egR*NT@ON&*x~45nyDrGMn`D1Igum1(HA=od=}o& zF@JumR({3`kJImvsIjxK&>1@N@jzYf+d-5TnR2{|N*}t^`}KZ=I*en5_gY3xHURUQ zZ%I2$6C-R}Uz=`Lwf$jOW7DDk!6i^6AV7o(D8gH{{85Z$c&%wd{kf}5_g^lt$u4hT9&#y@j8p)pWTQ7=?VXQO=?6c4%}S z>cVe+QdKXl>a=O)MIRdCWY7Mv?xgbjV^*<)lQ8fpPx+u#s`bb4Q+c=mlH+P_xL(g2 z4M@MWd{H6gFOEuQPm{GGH)V=|%R`Kl}dTu%@PN^;XQUFS)X#M-zG>rCT>b8;AA8pfGvBvj~K({R3 zAz?oe%GLVo@P%F|zdEVN+Eyx;{yh#7CjynB^_4ggs8r_x{{2a%rG;^@_xKO$Mw-0n zvFwx>q)WAatyOD-%RhTSo(58-GfQ|Ei4=?3vad~pJQZXuldWA!X&%UkB)fA$$UT}= zQrrj%xq^c3nj2{vS0q{gfBlELpC5v2qi&<@%7^Bdjec6Ru2MfM(th60v*mG>~)bY9A;;#L9L z$ksTAEB@RRl;3W$m2%m%UW0MQr`T2R9fdMV)7g4LMSmO@b`X3ina)wO%D9r+QYqeq zyCVh7#UX0053E~7nbl$)Q7V?J;?qKMo(b~7LGcb`)R`v^b8-Q70`pMTD!t0D&x)qO z*3+wekR=KpK^weP=jU7W8<25O5~%!6C~bf$&^)7qReOdlCWa`DePF5?^2J7GI9Jw@ zOSD++Fm?16*Oc0Gwm}Cls>(IHp(UBXBFYwXF3Q-zH|2giX3-9^B+L1F?db|h9UpZf zFMZOpEPixG%mr#B4y6CL1DrhbyuVTk0{_30{~v8%0w>q7{Xa>F6N0f$@7(P zF_zGl$JhrEZHcrXM&!|!F!ttI2Eia0gtWbR9wQQ3Y%R92ycl_SWADV0As%CIOZb1! zsjgf1_S~CaM&{q2PtDvqb?Th&Id!UT)xCA^)pXq`Tlec!mAT#7I>dWx(U62PbQb$> z5X;k&zDt8Lu%tnlhR?`=)K8I0q9Q{<0!>6izuaA1SL}wK95-00foDQQp!i-jSiKCZCwy@enLDM76I^34hR)(${mE(7`EZwBBdoY+*9r}UYMR z-_|fCbt5XsuFmkWGiu&)_(_FK35yzoBXVI|pD9>ub4qU1lUKtzNrqa%4Yne^hu4gm-OK~eK+vz^C+YmaC?eOgvXq%*pU9olt8<&lz!LmPY$ z-e0=A4DKZ(32b!=hZ)h| z^Uf;l7SU@4w2|s2f&s_9sN}z)cVqD+@zm%2>=fMsXO00_4!%g-$($f=1 z1aJkbhgoB53_^8hW(F9u3vA&)mVO9LI7VlilXmb~BS-W}M^G6JwlPF8W3-;o3Lyh* zb}Kz9g4rnD&X0kwG{iVyOWd$KM&`@HtS9853lgqESSQCpDN?q6u^w!4ns>OU#HO)F zYJ6a`g`QCeI5izzJ$0!_DybQIJ=a&GrgAj*T4_jabZy$9!RjOWga>#y;X~WdKa1tE zlq1#9HZ)#|V&i5A(tZ{&qLiaY9Qka!i!3e)&*PR|!)h%K4GG2J_c)te3OHPP%tp4n zHCHBFM>;UbkhB|lFaUt>kxb9RlFJwhAU*>Ihf|rZT313@O(EAWxN`w8oH-{`Uh3v8 zC60TPc0+9EW>hp0p#okw%-LIq&zMV@+1~u6__4$deW}_*oN{~*s|L4$-)dzU3m7E8 zvj>!IA9uNEwTic#opdR7cKo5waxl37FST|_BmCG6z8;LKxpZIK^6nNpPdR4ke^%I+ zBy%&*V9`E%B(jw#*?PFcz@7rN|D#{o%-|Mecj^I8L=F9=!+~uVZb{=$W@e>03trRa zV6^7Gnj1V3b%|ah*1jqYu%fS~JL4|KGD4ZSrQ8N9H2@D4204!)P&V}YMu#Ljauko) zrp6Sjp}?};I{6;QHc2dFkdb1uJ{tNJd!`g=;!p!Ye8LzWZqZ7B-;!Sna^<)Y(>TJ# z5~BnjR#t>BN}`mcQG|vW&8}PlsO*y!ICrm7qw94KY#hXum1woI4x)=LP;`w29hGZZkHjow*u0FMxAS|VMr=B*~B)zDe$ zuy^yCteZ=MYsd|3GHbKMs8cHHj5*V)qg5c}qzM6O7V0VFGNhEykNhJ6G8`lFR6EpM zkMOSEu^q2nIkfHH+ogxe5= zUoP0nNtOm4u6OvRE%&0IQ(=$JxauMfK{NB&QSxoMAgwH;*s!!J`}*U($;9B z6InP!?1~me=zmy^EW#YB)ua$w8WNxh9C7%zbv4N2H)sqb9jcD;9#hO5_LdB`D#a`I z9l(#G@YUo2{J2T!U|>h-fLcojYbHwvgR4siYj>9p*6l1Etd}VrY|vOb*r=v-fIT-# zg|ARL2xLnKp;YN0Qdc^N$<=M(*`%vP8QNAl*tDs1uz9?6umzP4w$yk=C!<> zed%CyW$9oWjc07WMA^2vbg*4R>0k$6>0q43vr~JCvP)~}V7FxH;BVEXgFUs1`pyz% z?@Z}n-^S9x{xzk8)w@dv2WmM7YdPa}(S%%yC!ysWuH_u5MP9h|1|Oi!06U&MLW8`|sNMe^_8 zHh_1$Am#a>Lml9~zl2wQfM=J=(!rVaysr+F^K!fa0|yr*_@x&(NEb^77p3@qDJU1U z@WBSZE}4$d?MEBGl!rF%uk!0xajM$1L&4W`h6q}$qJn}8@mKx&VQUI+C8FRPX$P%^ zX&nUzt&wSqk`7v&Y5&PPXg;RB9kbJZ>t@|(J>mGdU1E*fu>DYr-@4^@BN#iY(<#l;aWjT$v z8}^{V&~nrCpvgv?GAvcR-=+u6*OSJZfXexJ%Mb-`f`#hG zamqV~D0l<@s-MuBm^L%+pfxb76NLsA3SJd= z&>ER`Wx+uM2L-RFx6x$#9|bQ+J7`Jp1(xUSv=GZHi>p7t(Sz3NLQD0a$@^2w`$91b zzTkV{R=@rjV~c5~y$`8|#=DLwD3|+%$b3I_Gwma?^YKEJ_#f=g@cv|@s3U5ySJI4Jl<#zBL03V!L3_j7@1veFh-wvBg4 zQ}BNdc|W%>?Q4fTz9dS)Z=CYtO#8M{gy9d%;|<{y{I1?XYh&8?_^W=*$9vW(_@gFC z-5+91la1p-XFlHcPQjluno(#SOe=OfXj!Joo@i4y&9vVfdU+#01()lptXDSfQ}7R; zCbEtno0;#=8V4;2TByPyk9W#bs9%?Zuaar9El$WRkN4M8Xf0;+sx~ zg#J`@Sv`%RYAvl_#bC8DjK+>k8X{;6W$frC2d$oIPCnl7Ok;8#4!(R(KHhUnW97oX zu=4Q2n~}O;SXFY?^mX=c4G*ZF(At?M4`vIIX}ooj zg4?&)`S>9N3dwd>A@@hN3UkJO3Kw>VPx)@i3n*F*x;ve42CD7X6nHLg7kLY-4m|I3 z(9%qMvB6H`E#3GQEV$K=U3V+HIPh}LLF-`JE0u~? zIRdC}Z$b6i_Z)C|dpOm~22zpA-r+sqRQrk6A}6EU>zVdklP0ov#=cRbRr7N`>tE1@ zQn(`1L&;tS<6Z_eCfrs=Bw8 zLLGU{*^k>r;6x@j8)6AglW1ENs*?QG-3>+M1&izs~>WC6um3RS)Id)r1aniezg-i54x= zQe#^du$o~fw_0OR8UjyK&8f4~_<0YC9Mxf`iR#EN;8s6Y&2OXE!{6g=Hxx>>LFDQMtNNMs$9IiB6Q%1?Rj#W?b$%^CdG)ccx9jS7Ny}#)=kSPBNmcXH z&UU~lRJFrJS);uaO4|-gYZ@EG-yA9#gpUku_!VCIf@`%@^;B~YMB)#dK~jCX74Y~j z(FPM1-+}7uQ`Iw-uGO_>{?F9|cz&Ry9q%+a_4Tv)lHUeYmCri^83PCJ3@=-c%9AeT zT~#Ip&bhigOhch)jaJW5z)#?m&EMr|9SXe?*L>CqJM^j*K|;%*ZfJU^;e)6xTC^$t zrKuN=y>22(H>9c;lTK4`Hc+OV7T47o&Q*Da18P*A)5P1mS?6v%8v4vFFL3m2L{;tGPKcJb9ancs5S>?4JiT3Z|KXMNS&P9Cy7);f%;0$?c0Hr zp}_uV1q$rfjg+Ur0aA8A5=Y=Xu!+kKY)5LPz`+I1jR$=^{vT4uxkH+f5)_!w!np|r zq&5m9xZMH?&=Wv*c#3m}=aE_{aHL?F2>Ovl3LI6#Wk;ov8YnQSnRAmmk+Kvx8Ybf} z=tsvWa7-iTj>#cG=W!jJn*#cA-4r;!nsdiDA=Oi$G0nNg4x|hPPAGD2D(F*v6quIe z+_W~NGzCs-=iJGlpVUQxRE%?}6jGc5r-<#RwBx9i0;hI!*=eAkR*48F&P|8D>5zM7 z3+K)(AVF?Z7w68ZLm~>C9p~KHEl5cUoRj0+xuBnenP#DqbLVF$@P0D|ZtmpVE!8+G z;(r_GZiSRv!F|5SoRy`(Ea<#l>fP2wf!lJ(N!e_0&Iacl4P5UI$h-q~+$H+%2K}y1 z3fv?0?n&aPh649CGv~da-wV0-6*!j#J&XSj)N}5ER-{G>JSbTH1B4s^tK`e9u?akZNX8J0`s!WIS=%C?G$*tf^&~IAjL36ZsJ@H z^c-|P(ZRX-pg++~fv4&?hmkz+6m&k5;oLKzKa;1xvqjG3>ydougelHF2l{i+xuBhM z&x5|8ivlkcIQJs-y%@vvyODD*=a3+`J&l^klHA)q>Xcxbx1_P_1F`^^?f+%qTt#|&TW8t8^kHNVS#hFbrjqPn7U(}+qfAi zLBT549`w~C`Kan`(csTh(BDGAphyX};V4akZx(-nvtM=lN!!#T0nx9%^Ntkc?Ky3O-0Ua;iF)6 z7X`OWaBj;iQWNU>IEO8w!Qs$SEuPpaNx`jZP)=MnGLO_k!BG{Q8`Xdmqu^#8oEr@( zqakICNEy?JqdE$1EoHcU6&#Ct+tx7WcF?{p>W=8<-1eYvpQPZ9B6CO3cZ^Xm(8gus zAafjK?#%5T+_@DAa@UhwyqkjYJOy_ZzwFw9qYMRWrQYt<6x^*y!M`tkG2pF)bGTu|@TMZvwmy^r{1pDd1=AXkv>2kw2LW&b$W+rI@ViMmpD z0O}opdIyS>0~>KvN5O+c%0ZBF5TqO|$T0o~aknXW2(c85|G`75DL5g?xe0AZX$l_N z$+-mRhZZS#SPkb61O2cD3Lf6fxx+h=Aoqv@=Wu^5cqIN$tmE9oW+ccxO7u+vI{xj6uhQ|Ia`pf>A?SP z&Rv^Cs==jak#b!DM{N|mzJtqV#*r#1ctZ{6Zpa{|C@9xIaG4uN9k|>rQd*M~Y^|Z- z%_8OIJdRo@cuPCiyA>F3>7t-qya>*MgjsP4-qyrrx3wd+Qt)=sH#>%-ZVG1Vxhw;E zrjdeoWH@&R=y&8Pc&FHY7i_-^a_?^7vb!@#kb6&-bN3XHAot-K&OMw)YQXItk&OMezYNFudt(?mdjymzb$hjvP zk?L@BE5W(>?MST@d@{$mr>b#O#0|1K&OMz)YNFsXt(<$7aMX$aMb6=z6T~?u_?%eu zTn0z5Xn|O?01_6oQ}BftbG`uj3vmj**u=RPL4UE8f-i{&Uyk7jHnvxDS$h)_LvRw9`JdK(MxgEs0w_`Nw@iYbBZ06iMX&UuJE6!umD*r9esB7X> z^{m+NZZ(a%u>mzi%6lnX@Qw<)? zI^0BPLi#dX11?50uMG~=>*jLUva(x@TrxS%dFe`}*rI6GB+EV<>7ITEe1M5O%T zqtPb-^&e99XALf-qyF+vNWtZEq%?3cCoY^L<$%7Ga|2=&>fepq2L;ZpmO!e8UbYXH z$&r9;nbaGIdIM4Kcj7Way*0X#S~xcd^#)Z_Xie50S~HJ?x`V4ZH@FF@9_4METZbsL zb|;0_^>J?9Mx;7OYv){L9tri<&Twx17=_k@2Fh}7gEUeDu!@F_K-sVZcA}a7w*EnnHmFpeQnD2wb5gg(6~mv<3@mP-6{T7Rw-|D6~l@ z=Z3(xO^Os6DxScmn9$HPg*GKF+cbfM^37T}w^;!R<<<3^t8PVtjavw^En_(9rqJ+a zE*sv7lm$hkYz5A(z`3PJ8Cj&z$aV^a)67}Zg_Og(S*%5LgtkdgX!mw5`$M}mH2LVfO&LYN7JFcSzJRl%G` zA$JsVlf-9}3OH(`P_m25js~iui9(Z;oSO{#z?l-x6gX3H3dx!>bV@sp(2Ey$GUsV^GWqS2#JPwq5@W^~{vL!qmL^J;Kj1?|@e=QT+j z)ljHKw6_3t3$$FDXPMVk;;2BO>qYzZpkI%8SuEOTBC>`TDRg6uId4oM#VK@CJ?Cy} zMQWr_Yld^J-AH)~-QwfiEui00r#?%Hzb!~f3eBqFvRTkR3tDay?YBewZ3U7qpi*cy z>dYpjB6DWaNDUOaqnUGebRuObbZ3Ecchw-_|J{Q6ZpgbkL7{tExa^(+QX7TtBhK9i z`hC?T-z&x64y26wlq!WDK>7WkJRmmw6Egn^%7Zbk_h1Ssu0F?#zd0mmc__hUm=lB^ zYNOD@U7TyHLm~=266f3_El5cU&1vP_oGv8Poh$7y7xcN%GOv-#=7ByBG9T;U+~c4> z&i`|q%O#OOd7^@IPeA4q=&GsiGx4EgrUe22bRg4pB7y>SKoflq>V7q!0EgQ z!%Lhg7tYmo%Z?p}2}%o3R5a%&T`rsh{4?i{$HXSi6C8`v*lsN9|5U?-k1!$1>fH#8 zb4iDb%zkqV!?wpns-7oQT4n)oaW$0vX=GMhKK_fM!$^L?KSXTJyA zrX7t10wP51&1BB^+$^dXRX6bpEG+VRXD4&YpgMX)HHBtcF)Ks)=+Q9>UD>2j%4uPA z4QQ8G$QL)GYmBbz5pTqqn>AEVN)My3@i8OwH^m|A6&JP@%q(f9MdXiVL5!}TbsqN*<3 z1L46+{rd4ee02+B4;hY_%pz}The+HxP;4bynrTV})0t1M2;iQA=405m!T`Rr;GnT7 zxW8a%VEoeBQ-B>8k4*dL{wVc2!mYX;l;CCbams!bICzVGeox@eTy^hip+Pb4UYOAChk3DwLFQ%A3AIhi@zTo zL}`Soe(3gqcw3jQZXnLK)EF=F1w{2TUNq(zFWzmLXS{e%Qr8uTKegB(&S+b*I!dEd z^;4S%#Ctn+bptV5DAU+Hs>SrK6Vl|-9(yZoDM?ffu#ykUYUQx?4UVOa4&=8Bi+GBBC=dK5!bQ6%h zVlmgQs~d>(V-8xHAwJb?rzwcWJOlBWZp~*P=Iad&5P#3f%;$?ZzljrM-^WHD_TM znLUhyWhlza{AFSIw~uA;&tO=d7ea}4M;q%i+ouc$HThs(!7xD00L%O^V(<442gfkH zxxLQA4-;*qZe+I)!`k^#g zGP=Yr(LoD~2Vn{`nhJ)R1p8 zFAQ5||2l>dx~dwht2^EN(7FCLcY|*f`KpT^e%LCh1sOj$&lj@e-TAnlI(G+0=5<~1 z!|Mzwli*v^Wp-uq$u76*ngt{CPm3j6}LvG|aS7ls{Ip)JNa z+hW^0GeYkqboMx~^c@x#)&rWW}XCK5R$6 zxX%MaeM-yeJ%+uybX~!)t1E`TH(%uk+xFz!%?ramR$TQS!+siq8YlnO>E?&U^Z7<> z#SZwOQqjW?`?qL8y~l8X(+~AIHw^z8IeZtW*pYnoogNqtZ0w0)aneBpO4l`xZB8z2 zu}`ZThA}UUJR0K0k#C=z2Zn=O+G1rfm^ry%*uTjQL%*hksb8^9OdYv1FeQPH09A+PUrZVAyVS4eeV=!}a!EmO}4Z|NhrhkBn zeerS3Iu8tIHvDxAW=<{`&MLZLxcKZp=Rw7O3_kU^tft5c&1q4`xm-7%pjb!*K1Lm%Rx22a@lSoCk*Ut4k1UWA)084`xm- z7@C_j27Ecwx_59#|H1D<#X;n2ZgpbN51g0XwZFR^b7<$QU`qEi+;F*F!)~_b0)p#G zt9|Ua2ETgqMBqA@d{>sWkA>?%AW=VVpH;_oMZK0MxUN?FY;d2$j%(bf555Mr@#MR@ z!^2&k)y*R@%$X0g=a_3!g6m1w_&VwXIsF|&z9+rnYj&(}{bjCG z39e^c4Ecu@Cimyy--{LaYt_0WfF}L_Sr{#o;q4qfPJsZwca5*_CXe|LYX45Y_r2oFY{Kpv zf0^}_;QGilzNXGP>q+1`iF_Y<#h2MI-Z!|+`bu!&Nff>3(stcs&9ATFz56GVZ?RW= zrTTV0VcVT9xIQH}T-VKQd>Ob>M;0N1JH`_e1E&MbgIe!aovy`R>suLRfs>fG8f z6#tU1=bT2q|0O)y(Yg0tt<&x)mY~|M7cNdZXf1pX{A>JGKekEs8sohfnkKlqUC-NF zExc(F*iI*3x5s%KZ-&xxjK5X|S6jE1C%C?M9aqO6`3TSNr<3n{uW{A+Ai%2oYfhsB z*H3Y`cD$kU<{!a!2KjzUdbHyMF7wq@@zrJY@C;2(I&Jy}uUG7w>?kXC%EtqU2Uh}8toci`_@j~3v5@Af3!z@1@1{|Ieml6 ztgi&uSl9U4{5|YpuBf<@{9`@hD_|aO?i*ZYeI>Z+T;prVor5m{t{LR7^N26o)60E> z%dD>i*AA}nHE-tlCxGiJ^6%gkU*<{czQJYISAuJ&3b(lbJ@QZ%xUMGuPBD+Tf4pz! ztG36w1=lXF@#VjG`~|>u4f%KRim!Qnd)^M1^_Ae--8H^`Z@94&xLU}+yH|Ym@%+p7 zjJe?2(>1=*^~+BLu4~D^r&oNLXVCj5zRdbcaP93HUo|J)_!V$nNB+IN;_H=4FvzcO zaGCX$;M%un#l7vi+=%f{+& zM<@DyIru4Pn@Rp;#t8>k693tRbueC5X@~Ow!0{_99W+cB`Nfr*CTb>=emMiwY_ajc zk5GC8`6rh}$qLo1W1XqEg&q(!>oz*n9Fw-x9Glql)Ss83^hWX@Q)Z3+AciY)qehS) zX9c?X@Y3?}K6s$)1tB+egJyfMolUr@o%zfOm}%Uv`Q^RZ zETOf4h8KKln&4{e(g9_|mArJpF%4jACI1QJY{CC;xYmz3a7}aZ*VOE5lNbF8wwuX6 ztvCJ}nb)$7zxK@7Y06(_v!(IZ25HSF{yMq3r@#K*{_ocBaYm}Rh5RSi_rhPRf{Qog zsh{9F)%q|JzC;wcu6rEHZYBSzjZQeaXV{*%WmBaC+U~6iO?t-0$&wbeZa6J(^^DW% z{#@|ZW+1){*F1$kDPE%1i zLX%|Zme+^dY!Y1Ow7TJHNL~;{-Pz?J zIvxO9hWr<%+;O>%dM^H2X#8Ow@hb^0)LNzRJc+>5ur7h}Oqg z6)q=!)sDvhg6sN5H-BYYw>}Eu?j=9o+*`g~*>e`+7WZXX6|OR@;xFTW!F8i+d^H@q z^%1~zANg*!sYaX!d2F0f~zd%1eZBC2`=ouEL|ouv$oSR{l_Qkf$M(q&+0{dg|=$7`$3KO zBa3#Lv?E@D?w|>-ZJISraLsm&uXP8;mV)g8^3U!?dz}Ui_5BY=tPQq@ z$p24|_$rHC)gQ-YwQP6{EvIYS9y$gqbe2@4liyIa9&bU$jDvNQ!wP$4ss%_n2`mNx4Hf385?z#WpN211D@;_VFe0tSc z_Htm)Rj2JK5mA#b*wnnS{x^I!nMeNT&~5*1YiLW&0ZBV@rRG5RU;Wtgvg))w^dV{% znD5`7RyS)#^i1$SM*an5oy1aec)lc29Hi8gsYclI7o0SosCmA_W=(Y0t#?G}}6jFmO!kqlAuqWy}%4m)kq3N<hsVDHP;%V}~?$tJCv!zi}rdrh8oq-_viJFDh z=XT+=XWH+bf}&^0zcAqu0_L8aQRBRPsRG*UNf9+~*xTly1z)D2=2`N;;ngHd{bb zV&^AO_B{FD?(hf!b9>5IQ>I$fnC%&&=D+r~S^D~aPlTEm$p2rjwt1?#1kyGNl&Kaq zFUK^WsOhw~&DM8bd>Be!B!8z@+swDB8*9o`i<Vb<9;*4>PQ;|?_}GBiG|X(IBYE=%Om ziPZVK`BBx;uG!p8N0}<@-8%-SbOlX zHDz_>OAq+6mR;VA4)BGJw4#*Xr+tO!ebq?=3jXqzt}CW2t+7m5n)-4^D{rNHjr^b2 zJ5AA_2FItmbanR5s+%&YV3+qYF+^jYK>UJi5Vsq1^G~SpI{CZGylp`|y3Q_AAmY1W z4w{#@OP?xXUN%p8`&fWdKc*>&2DU)_GG~L>f7s8&U^9zOsQ&ujz!r#u z?5Bb~*ExQ7)Oec$6kA1zxMf!QSzZh^J4OQq@d_6&8rTAHP5Y_f?~{M!cMZHlfk9rU zf-8GAbm^m9j7Z=}Lv!@0pMiL_1CD}tP14S%yl7wx#KDbLw_2LIdCG?c)c7w2*77

    ^iF{Z}ZmRyO=cDA~%(oRzluXlJ`K{T)h;yOMX#Bon;v=CD8b*!~(+#9+q z8F*FPq>lH0;f7ZHek8`G?^gRkx_QI4h zIK3NZXE_2#nR0ujfvD%R=6fc_6thZ}R@oqHnX)wXOY<<^Q}I3p*3Uaz#TsYLj-eID zw%PGyb-yx`Rp4aO8aDH(z%k|t#ElX*h#Mt;`xk0_K!FWY?hpgULIcrx2|~rTxlL<9 z3~d>+!%-0L=(N)mL<3tOR@ukd&>4q3gBl-FVB?qvMCamOx?kDnloUjBhuc6jcO{vo zAl_Be6QY4F5Ph9CFE-5l<44r^hyqm}F%pC{Q5S-~rM3M4W=?yrQ5WMjZ{PRt08TkMZJtiJlM*Y=Ic5wjh4i`q-51w?vJ_ z6bM&3A+B(o?d$ohfo;awY=<_*3{DSdl3a=i#Ozb^cW=LE7Zfj{06tdkxM;s3Q_2P% z@pd^a)$;_c0^*;JR#D^ZgWy&_%ap+HNe3;%XUTtAW3;r&CLLC*EKU7h;H6r{ClrXa zJ5901*^RVBv*Im>-O6grPDv}a%lMQj4;8dP=2Nk4%oB)1(>93DKeOA{sPQQUhP1jv z3>=WOi&U|FV7r4R5chG!tcq=OtIfoATb;eGf@ok1#7*s2Umn?g)F!C$83l&bdq8yF zN>LD$y6k+)iw3qptZuPET({!f15jfr1vbxmKy=>pP!OlJ+0`hB zd*mH7bQB7iy#xm0+@zgPK{T)#;yUj(SP(yJO`biwfEryC*s^S#T~W_3n*<8PvaTUs zEaQ`gF5^=@e_l?*wt7Ck{q3M-*yLQ&&@frt%8J>*R;dq1?vqF97ZfOecukv9whKVK z9opCuDe>6~HD$MT#gsDG&toRbpCH$8xbE{Yrp@oxG-HZcVw&-IP{Qy*<<{2O52gh7 ze&-34eo29mF=yadrqnoMQJJ!jCDNEu)+IS`%0?Gu%99psV~R1)m|~Wq#*_<_4pT)b=(1MCmdL)Oeg)YRY<=Hg;1MO_?zVlE0$BsDekUIJ=~3m9o)AOeyQ)Vv2LLQl>nU>1m2F&zNGCw#F3h zS?VXIj49e$<zoG1Z6xhbgl)w3Ob<-+)*AXHqRP}dE6>xi!JXFYyr5{ z&-9h&yEV<2Vs2U(Q_TGrF=hK!n<;1d3Vi#fn*!UVJxp=l?3KP!zP=PwoQpCsCFERR zssMY@r(qjYjCsZsb92L(V(!z3DLdLt*>wGe93+2BfgO?_rj#w-@@RoT**a8AaW3AJ zDb97MGUX*JaEvL&JY$Nv31Un!_jAOQotkW|a>3Vv6$)vzm}N z7kSDQ=XzC{^0MPR^?Zzj)0k&WIi(%I6T4l;BaeG~5iZRcaa%O|(Gp3mPLt@IV-P#oYXRXH-_Tig! zKTu$o-rP<2ps3YYrj(6LVoKTQ=Q#%pl(hibjY6;GwGLy->sE`hDYgBQ6|3XE_-ic` z`gc?5U|~ib_zr3>9b6T|0p6w$_OoBT`!q=XkwP7L8apA2<8}%!tAnt}5ebTHoulyA z=l~R%*oag|k^NgZcT@*bh9ct&oSWQ?l%Q}|jC03yBju^8P|3Mt(-e3g<&)x^n^J>> z|J!mGjNrpKk>iu7+sU~T8jw0E+%LnqsgQDFGlh2-&S^!8OoNmYnz<|$N2>{g|`zaO-&SOB8r?N_MHPMc#!HZUxw{q_GF52b}EQa3_`yR>A*pWamC(UJZ613G0*yuMP%ei?-Pghd- zgd*o2&mlEaB-h5dCn{;1&nqbW_Xf^A*+r50G4c-*4Nu1@@_8dg-e}>nHwv`PE3h^t zINz+N$eTWjEUM?SMOnxzQ24YA=iWm4PY3=NIQMoOb=xR>Mvimuv?4*~f15b>-%iwp zug?+>zS}^NcViTJuZGLsYe8M0K36>PeiudF2l5Zvx$MJg)Xh@(yg27RN+Y4}$71`( z1=LMaevaPti5oIJZ^}ZSg=2g>eTSxxr0Hkh^w{b8EMtyn_70S~$0EilQ|cimoU6)~}}M zI!NnxbJ+%Q(2EpajV+392z?tu(ney@MtPK1Qnad(%c`0wx^aS{zBK229mqk7znyad zA1E1$25UGMOd~arf1_5;g==Wc&kYogBsdpCigr*q=HuKZjYxIi7A!-G6dlq|;UP_2 zHVpcPKwnJiZI-0yX0Uc>oXa-rqUh!r`Dz8rW`rn4-7Rulwgqh8B1z%Rq-?m4qFaJ{ zM3&32CXbHjq;Pd5=di4eZq-fEtt&XUbs7n%gUy_)>7X$S(Eql`aBeJc;w2{0x(3eG zL1tYWg@=o^b-=k@Cq=i={ zPm#;^tw-`vbiX>z?T51cAZ1%AI{=jZJ1Baf*xt~NqiTvCBo;L!aMVEI9eiBxVCXtH zP0>TdXNNT6sE)!rX1Qzv>P>*YM3Qrf91_kCJ0&=GSP=>3M>KQphyoIPwsRNfCc^fK z_&-TxPHM&xknPgMWywyYEJY_*b8d1P30RaTjsfChG88?oo6DxuBl#%2M?L3`hxX&4 z{XntdL`a!hN#Xh|mrZM;=-=@n_ya`y30)Z3+Q`4YwC%}FwD~8HG%d!Qr{L%mA4N|W z?WZ^6C_&LP1m_toI6`DiDKO`m-AH+gHc9TRI7QE@r0ChrTy}N=sSVts@0=V(=OUe# z;L@ygDEx`kdlX!c z0@=gTDswC0DIjR;;(Cuk!%Yp~7VVGcD0(h9AC-DfpzKW_Mdvp#Cu5x7O#XOQa!HJ` zT@=j;=R#;`tER{XaV~oU^f$o$gtYXVkn)(1BHIY+Mc`c2NRjO`%=w>Aq%1`{M9SOM z6nzWU@B#$i9{;6M9%#Zj-giZHKdO44P_pig*~?$2+Na|XU$0onw=CaFe;_^gHic51fSXY1N!>x>+=6=Z@dkqS{;yH@D_ozsp5Cy*l`{CaQfr z!2zW?pR9J_Tx0aPKO8`{kEIcIInDVr_T*ws;`IE$$CCHoM78tKT<2JvZ@Fn-{jK8r zr&I0R4h%4rTIM}&GFSU`|HD6_+DD7rc{S&H>VYw*_5sVM+^_~XV-&rUH0Skh5z_ze z8OPL9?VNfZ#x&<`X%~z7EnY2pDAhia;?ATwFLkr1VvVQHe28k>TG8d&HRqm|KmB_Y zbbPLH|B&kQsWy!^3iveV&dpl8jdS2h9gE(e+6$oF*P%IgX>{RSeY4afbE)?HHlFTi z&M^%xoU2v6^jnZ>&+EoyDX%$KbCWsX*hN=0f)hBo)5@CPSMA2x|IQJ2-%Yh=cVco@ zUE=ib8d62TmVP^|Z_(9WFR4QlTfmrP>qFnrm5YbXT?J^d*`te&F>&0{a5+9T?C*-+y2VZosz*~nbIU-zW{QtjawhTapLkm)$p4N3`u4^;jIobzNC7Z%d%fW0G9)k_Gm#L$VZkBvYcP z#X{{Lz#OhA(bTfMb^z+$uJx*mE43fS_yUXKgJZ7j61U>gj=!yI0Qqn0B>#2AlQ!<^ z50;-O5J?lR^DsOA`c>e~HuAV%nK zD`L}7(gW9Vom!6AEdDy7!A?`SraG{)zi=6=Xy;S@O2sveart(P^~ANP?#!$I_z-Nr zP#{q7z@_>P%QCo5mYC5rg-i8BO;fl|OL3lmrXBIBq|#4tO{nRC%eQ;Sf`v;T0N1Y+ z*a)k6*Z4Z4pye1`O-**1!gY=Vt9N`|P^s$*uBmA^T=N$WodCAqsH!{ffh(QXa{30> zg;v`NE^P4AZ_?2H5&l}II>xwur@*L`2d;lu{iknmU82pD{YF0A-*Lf}c&E}2zU34c z+u(ugQfG|hIG$If9WS%mTm1EOrYElbQt1(2>K#+CbwkXFpT%<;1Gu z-WhYMKVBKv@&wn5)je@Nl3DlE>4U-cCsqCI)gPT0)VO-3Ps?Vk3Rg>wou+VI=d=l) z$3&B!OWc+ngr=7;Q>_6u7?vJ-xSlM5E6}z-I zsA_qB@2^ii18^`OSeACeSxt$=={~Miv6|V9Y^pldFLQ((JFFV!6@rMh(1cB(cbt5}Wu4@ULLOHSSgss~VD$8HbR&OzAIYFE`} zuol&=){as*eEgDl6slLFK)lUEwOV;;YrIvf`HSXL4p;L%ritoD?GCTLalx-py*dSU z>hMtgq}AnD*w&?~lT-B@1n4)^u*RmVQ~6RHPNV0$lzt5rEy_fmaF8;6ve z)oSLfRR^}U_H9A+4WHh2C1kEaRlj6Btmdhn`t@G5n%;A5wz}%4xXtQqu3P(5sK!pD z@4QsM(^}H}7pzum5Utw(ddjAHR^v}cL-io?cXWDKjoodfU+=9}3nfeS+exh&5&mQ7 z&~2f5P4ag(c&L7V6~gSpY7JY$?1fIP8g1>*4fq>WuZ34?Bt2Arl-AXIZ}rCoU6)n! z?WEF>f-h#DIpfr8pn5RKHBQx-$E$P3;(A@3Ro~st(YzRc)z1sgY#v-o>lfx^KGoL? z-KDA$dVB}Vz}euapPvNp+PJY**8Ub8Gp+3#IA2)tB;LU-G!182-4U;1;a|~j9o$(< zdw9p3)q4X+jR|UX=k(5(R?iYR%dCeZe9P*ly>!+ufU_=c=2d&Z`KnSow{PHlmC^D9 z4sIJ7@625C_+x-mNujUGMn|i$%v`K*;4I5I;CyYJ9pRm?PCDgaz*!HsGh02pW2UTq z1LvE(15S6$^3LVChT0-RhboIW0gPvUa37nq_ z7Mx{upO0D2Q=W|}^fLzRj=biSt1GIp{%{$U|8MW8#!^?BSg7&NpBb%0;1sRNA9~j0 zkpC6%R^bMG)*TM+(Cg~G@s1}P+~e2s1P*TQ>&9AEx7M^jE(IJP?)f)(z!_kT6MX|` zHOt!q2fGUloXRaLE(aVxg?=l#!@&+EZB5_68IaWS1kUn|1?TeIAx~|w1aJZrTAp`@ zgN+cndT-#UamOWgu$4l~V>rBPqU0S+s|GCm_uhaL1i8iuN3YaM7tdJ)!}09YrHiJT zPdYXBW;j&$vpfOSvretr3Nl03{Z-}(OSQVfuSNDsH8ztuRAUF0vHHc;isPUdURMNF0t0CPwvkzmIwysv{I$y=?5TRBsU1$b0Yb4V`U`J!wYuskI9i zLv<8e)yf8SOSQV8^Vh647mCDcf-1G=5N-X%MMvF>d<;A2Vjf|p?mGQ7)#lonsKyRH zqdGojyZKPP2{!h%d8k&m#{QaWb2(8|uNAYYo?ndp2dal)FJjz7wYq=z*HoWT;ClQM z)q^{1sy}+`(5X;86dMY=JyZwNQWt+#9A@gK1oJYV^lR)-)OAHQHaHoFZ@K0k%fLGf z`<}{9M^>1rdoEg}cfWQ~jcru=C#tcV%BT+hUb!<=Z;DM;bsko$TR?wJ^(KuD)!3|M zRPX-j`2ncjjKZ6AdZ->!)YW_KaBKRzhl zT<>AGSyw#}KgK6bbgCX1 zbEw8XJfnK{y%m>1^>A#@%X_HaI<2d(P<831Df1eu$2RJ^Vl}q;8PzAgbL_vsI|94^ z8a!0jSx#G_YPZXq(Yj`b>XG)&Rea$dTutk@6*d>PdZ^wZuB-Q6^^Q%tu2_vtipJ_2 zo2LE-)g!TYv20Oqjb`IkvR}J}+0Is+h-&PCG^$UZd%^Eey*0K*<~*#9|DT=9JIr>i zc36!qmPYj}nYmv;HTI-!Q}3aAH>d<#^M!p2Uofpkx+ zdhb>5VZj!MW81t@{q|F>GoX4jcGEX|SiNt(M&4`H*qpEHit25PHq{@j_UFq`y$yx2 z#n!Q;w8CsZ3wf_qM-R}N)l^|SYx#(|*~e#a{Pr7zXC%DN*A4Buey>&A?iGsFJNRr? zR}LI@Bvg;ZhTA$1s~Zx3SvB_W>bjyD8+T1xpAp!8U8t_be%^Ku)rU0d>bZLwXr$wPG_r>pl~^x;Y?uA^|AJX9Z1DAoQy zriE^!*+l1Pwo8*u^@|&K9tzdlVY73qhw4eI5aG#A4O^_nrfFk!VDz!iLiP68OI_`u zdU9G<@4ds1>CkmWHJ)BFsyjcrbP!bUfQOoL9;&C*>*~E$ZQEEPs<9p1sD5SIn|DL? zj@TvM=&ss!Z@Jg1vFTjH7S-5oZd4EdVA5w$Jr0}Dy~6B7tG!mJ+I6Zht;wN!@3>9% zj<;v{QsGV%-pgxRXsWMJb!n#=t71MiEmS+wm?l>5V-K^BmkitmygO5PACEA@6Ioo9 zf4x?XC%vR1{)p=R)P6eq2CML1=|j%G`DO@@Q+VG_XQS(lUwHOI%V7+%LBTfpVw!AF zh?-fEnBRhHM|e8JQ8&f3Q>^$ETnD;r7|Q0ZcyD+eaP30jhO#lw!e!>32A5g(Xk1!9 z|JS(6X|kasY9dT<9jtaL+WqCr=0*>j@-YPMO5uacMkNcESqWIUY&#HokIT%@1=j>u zTwDIJ-fh6O8-?+ZiDN!s;WAUlzQJWCbb{+JS6oMZw8KE)+MU9OdEqiMtiHizrd)z+ zV!Fo$m~ca4Z1JsMf$MJ+J~Hd!FPC=2lSn#tdf$$xH|x5BYf`%#uIU>-fcI$i+k?WB zx;${X`O8cddyUJsVN-A&)7Ar*uMm5A?iYME-jl+Ui|)AaRIRqpw4-zXO0PByMbE$p zqJDyFN}&fXv}3Af245boX2Xv73lG)0;QIE8Tdo4Gy(v7+t3R6Y z+2Hy`Ly$34#`}o5)6RU}xSs6Nl?4|b;dQ}PIc@&Wz_kyBPwwc2zy8c<*~VYymivlv zz3Ds;otAOKHLYgHy?|?93ZLrLA6@)qyWeGSedWOF?Ju(rNc@FImtFi7_#pcxaP5aj zn=4k{UwEFjr@zci_!axhY!VV&rKcF|=SRf-2k-rg7e4meACFc0dVy;|vL~)@@^+fH zzus-oe1hxTE;oNYy#DA3z;yr~=`OnjXN?nX?PzX=nRfhEt6TAWBJ#d7?$3+6;hH&N zyZ-@K1BEYW?1jGuImQIlAHR!hU@LCNkJ6e?{PmBzp17tLCSLv0dBAlbg)d5b;4({A z)~Du$W-V#_b)`@1TOqFKS#ixLxGr@$Z#NY)uQy)}TnAD3l6H4oc-MoLW8o@0Hz|KP zH^Os#>BmpFzSK=I?K*1?F1RkIp8jgib_V|ZCn_CG;mgP!mu-n}aJAIfu_|0E>o2qB z7hE%3&O;Z}KR4qVqa^~7~aHaCCP;ZQh%!q??Ja9!YN zGZpu%f-7yE^Tl5`W_#kAUKmnQ%{R#orSJ{i9=OakJIi0Ti)l<#?PwO_D{jY&w7b;$ z@#c=6xMoyrvDqgN0~a3hz1eHLH&@jxTxESh;c|{0(jW1Jy9Ob3xj#lPZqPLG*KO53 zaZN8gx_{si;5v-Lv&wEhSmV7j##K9-3(c0lY?onI?5|4-4qUTc=3lca&foF*`M`BJ zg=eQc+VL_gPL02uK2-j4`o=r%&1FgP*IkW0{dGgf+u1Kq0x5i8DFMeBw_Knn)cD$lp(*zeD!S6B8!PWKt-4_Gbk$6PkW1bT+`v?p!bA#XD zGI!oBTzK1$#$a&GNNbwl!pi`9;F?~zey0yU0U;nCf!?kSJT@OU1qbU4fod+(r^R~GV%lcG&IoC+u@pX*_SNzo$>xt{mmUYKm za0_rvqVU6w9=KfkW7)Y}aFrhX)V^5(u7U<8xE@XP#C1>M+?}Sq09;85&&hb;a_#_7 z?da^I%3n?&s`1O|Lv@{LrgQvy%w@d4pZ3@|ye4oRP2qW7lm^7w?_cOu@rvBV~SNSTbjxl?ka?wZjunf3(zzMgUf8s5L^pfLVI4v zw=KA)UeWJ33P0x++U8U$vIUnjjJ<{e*Jo7m(h`kTaJ}d<#d@mxs<|6n3tUqu{6gN@ zX4a|MTq?70mHAK&1?Cbr^QkW9^r7lRw%cmQGOXVIdJrS7`iZ~ZcbQ@>Y(Dy(i++RfzvE3q zt9Gg(+ja)V>W%APSqH9eb;G9I^j~bnBvQ9OoI;&Bq8e=NcJWn+d^LT`~ zq~O|A{cn5(V|2fhDg1HKiNP8=ABt%cSf3iA+7fn}3L$6r@^;A_=aBx1OH;kq_2I&L z-s+XY%blv-ajoR6VC9?Y(N=Af_^T`C7TOCJ{AUPookHQIUPGsP84$}d{!%Yo(zIUr z3vV`c;KFNCdkpCp)KB?nSrZhVO5rclz3`WFco1B8$DP*4_&wXv_WBO-*Vn0@xbCMJ zbp0^kI*r2r%emt!y^u-!M#a|?R(EC$z4MoOg^1w#)@91@a^ZtT=kZp;c6PFZpTWVZXhF?t?f@#esxbRBY z9^+SY_Ld z8FyT6?N~O3s`1M?UH2X*_AEI3H7MhTtKrv22Lso+6dB~kj|F>Q8lP;^0 zDYcz5+s>R>sp(=&5hKaUZS<0rFs|>sN>*+wx1ne$8AUcqgVIQ4LW~L%@5{Pnkc@~S zGNrOEWu)}~KF`_boHM)U^l!GE&*!QAJ(u72`};lDb9)}%I zH04zk>1BKMS^(aO4TG)53A1*uUmj?@8eKMWUX7N6YP&DUw zKk83JbYA;ekA{y9c|CSbHQ`m#wfb|q8gCA?x|>S6TC7(aJ)ux}<&FuK<5y4p&Lg*} zirw1LKcwKidK5I})jjfC@Uo8Jbq|&FkSzRlk7y2tc5iZP#PCKX0>i+TZ;5CU#B>(>NYShNn@oSvc|8-van=3l6<9)(V&a1R(`zk3d_-640 z_NL-wDk%+F@G=?i4X=DMJjToT6TBM7sqNmE+wL7r*Q+HCY0z8Otpl%nsl*Ys;AOV{ z%3Wiq?Mt7J1uwR%u=wfz@>hyD?k|@~yLVM*{TDgF>pm)RS+x6xtp%Abt~<`!?t$>S zD4oL#TlhB~?|ba5&iYPbcj2c{$uSn=s_8tWuL&5}yz0@gZxi>IyS@ppk}fr8ciyRh zR}Gc8y%zPTKP}SzH7z7;7QEO#>Bcy^)(wON^Z+-Ujt0q*MQ=~QW-CJ-H(le z^JrftY}_V3etlXi%5r}lSKGv2SV#XWdvSa4dVoqiX>)%W?9=?! zXspez9`)PMoY&xp8Lw`g=l=m-Q>kQ-#dU`nuLF7;@3T~nzlOw{@G5cJio300PtT`O z$&dnbe_U*W z1D_uacr2gVzVyDQ@#^`xlEZ6cv?(u7Vw~rv`@w4lm7H5|!K=|51B{nJH^Z~!W%kGn z=ceTF!T~K!+Sj1E-n~bB4_-5IfQ!}qnClyLz1p@~=+<~O;;N1l`WUMDt3=<9i`V0Y z6-{}ap1JV-tLnk)5h|&)nul`N%$%3Wcu$5$bc};_`}(d<*u;2w3Y3D@>d{a=H?gCk zaC}tHA8XY=ddv^1f0Pt994OVzWkU>J4fPawSHwql2lq#jKcgNWRX79RV27Z!tTIAn z<=E}}ZyS@YuA{PXc$3H#VbZmg2>4K(ALUV2g_!GbfBCp9OS>(IfUQaJH72Ax5(wb4 zr2${q|>Em%KR*Ko*4+3XCJ&5l#q zJdPew@K=_~p5idtj+c44}w+F9f?UBpl<`xzpY}@H+A?cLehUj zO!^K8-`S{aBj@sc0DpN&dW-A)5$Qi9scch%<=li^n_%r~ACoe*2*BG?$)wFd*iu8% zn-L~$1^QO}zrC1A+mLI!kEGYrO!_rMWxvF!?02r^H)#32iljvumbQba?2id4WimK=N+amQiE)iy!W+zOVnJ@nx)B1f^rqz={i%TMy@HB34@jSwS8r+OxJf`-l# z$xlX^bVLZjPtvRela36Mqf4CR`#8^@K5`rdo$WX?B})#ag5=qpnFHvq2=)Ba#>(~f zk?ZFg{Lk_Fqg;P@a1!S-pbiq+%fl&_^H`uCixzTLkV!+r0C$Bp&O^0cs*2EL3P(O(R)oHK|YH>Ms% z=9pQ`k0Nu-53{sq+~jzI$gzMkn-89k$EjzQr!A}`$J;gJc)pJ1TrA`MEaRS7md0N(a=cj2(q2OROEz-6T*;)D5&v?C9Lp0- zdIj;zGvs)+f=RDN5UR)#=V`CG$?+N{I3L%!0%? zNuSk`oSmR&>LlGsW<|9_^q7hdLX2{&|AmSzRDuhku)*M zqzx62s>!jIBYbNk$2S?0Zm(f!=^&(9a(tmM>HA6qX!^XKNx#R)@g3UdU1=um@F5hF z<4ZS_Fb+6&CP}(G#H1{=?~IV+Yd@2ALCY>^d4+TNJ4ueevLsDTu(Ul$+k>=plu3JS zUlJHJ8q|QD_L6T;2E?sQoJR*Z*?P^$BmwM`pHrn&g2$O6+Qhp+G9>vp+O5-nJ zcCTk?C6IcctP*CD0z4&7(rlhq9wuiwdVg&tOFKG_P(wWya_JbNeq$Aqp5QwBRFbm~ zr1wHBXWuMB9Z4TZOzP)DC`Q{&GpT=woaex2e5Q1IfqYzsq%~aUpc--xswC-|ILkR0 z90!L;`Z&v^6TApS(r11q4S|*+=m9B?a3WZr2-aU!vou_bIej*gzKJpEUp_}C^;*tNy6nZ(r}gFJUvCy zjtG;^2qJ*pX<;UvnWkf~#elP-o=Io>5EG-Ge-V?;ftGvy$em=;`3lmD$$1v%GOCK4 z=VeLyglo9~9=rfr&W^F17gmsS6xzhvIwp;VUq-_(>jF#~gK$xjoRvN%UF=70u>O*J z@RAfcF9GIg?!f@?E|y68nlrmBOwP*!h)J_@m#4{jDbUlL%ay>p5?Xd~E?0reRdvXn zVmbdUAvYLY;b&4XM9!=0N!pZP(tk1tags9COd1QHj3tz)VbZuLa-+t6<`#`FCg-(j za$e(RY1ajiUQN>W43nyWRaJ|08k=T8j`QX>W*2K62tH zGUtOl=kx$Mr(^xu%FoiK6FDDBlQSG=(!&)9Hj;}9m=uP6Gos|2$+bKJ8)l|SJ}Ac0 zX2!|+XcakUaT{hq`>Z;WTL)O$tOz-=l6B5@Gii1LAxttAb16v9CnSU{ljhVQRFZsX znoDkSK1m2%!W-_+c|MX43$wI&HgZOi$!7W6GTK z>q%~3&vIhcc0L;-r#fmZ%-}DqUy36vZDE+4&sC6fk;J4$F@zAw9jmwm{)^q@T*Cdi z1lpGbN$$*ZV*Tt~nkDB8NtQDfKtRsLyw%0Pe;GV+B=^gUadN&CL{1;exm+UW%V5@3 zVbUuohxuLZUdhvvgvh)UNy-MZu|Sl`97X)@8CK=EGA_nj%V%2bAIIINBWhV#4TC_E+3>x?#;P;TuIK4 z6_U#nOlJ~WlGWtI2H%iAwUKj|AFM-6+E`7>ArX@MaJ)>IlveOy-#AO#Tu07NG9>p4 zGU;c8On~G8UM6h?!sc3%2WFVGElkcWNs>LaOxlieTY>JaU{XCxN4Y^+CjII~I?5ei z$E4p-?iZ9B!Y%qei*zFSq)L{C+1~jZ%AH)yq@6Y7{2k1O@^XJBkzP#lFmA(N(76-! zH=LK-6(Z-Ku;>hlmHRu55TkDGIl}G?^>+dN%oI!er2Q=g95$R^z@$zJDIK#UUoSDKa~z?D zp_=5;1x)IWa8#1yTWXoq zBa9Fr`JxDuN-_v>l5b`HRHRyjAjuc|m?YODBuJjfb(V%mDfN?lDc9L6MM|$I$+vTz zjvy%xFUbL})0rm486){lFVljfOBI)!LM+XVa&DBH#C2j-tn^2@e{-D!P;LOqP3Ag}Mecz~l7n2QCrpY5np#De z7Oz6i-SFu^V$z^$8u(KMR!<6(2B%56q=J+_T=E4-IW7y7VwQGt9daY>xFnNKag*Xh z7?fesF!=0b1RqZu&e9Qva-OHbFT)T{;pi3hq@0>W;OHYNNjc3+%J3?t<%|R=6$qzg znRJ#y$_Rwh157$QjC6z%bxiWxNI5f$;AYafA*2UTqLxV`Go+k@R#0PO(s?LzUI6x0 zGwJ*|R)|=i?czBrVf%Y^RGO}5X`>M?1hY}R+(jY8)RH{4f~AeAKw5Pw-cQQ4H6%Y=$8wIZBL(XQ`(lMj*9Q^M&SrAIOdwLK($HJO(ryfs zazh=-k7Sv26TEa2?7Pgzq+3z$R+O6+X3|8I!z!WlN-o`AMapeal4~ni+8s!{BSOjq zuH`QLb!Uo7|D9oJp?ZV_$xm>L?grjHJ}Mn+V`-Bs5NssREoRar-K7W^^`=?`***_EW!qUS`b zS=wwjDUUdWP^9 z>UL?0N%Mn{Qlu=1GigBFpYXbi)zy%72mbeNYIg-GxIZXwAeOerj}RmIFW!3gdP&(!B!9!~a}{_IYDwM|V^X0+u2#TH zGmBhU1-ObLB<~I|>0pIi2W3hAj-k6+Luw7Ye~Otz#pF69P4dPXCLIdt&?=JmrkQk@ zja+RqB>yNesV$_o)nsoKW>R~EcCcX+v)0vt1&n+}J|-1s5aJ|fs+iP~5Q1bsh@*F^ zCs!woOIw(IuFjB-z{t=#!lW)Kgeb{BbLmJ(HZR$UYw4OMS66sqo0sM62I(jt+1qet z-RsEJ9iG_E5qdx>QOJH+lI83fLkN*v&+U_v=|z5L{|!xO)8EoG3(Vq|Y$ z!P1;w1S0#zoTmeL3T*Gdtv#liT*qK8&e~Ycz6c|-WIvoE3;_CoTC#WIX~#m#vCzUE zJ(0^3MSzwr+y*bwyh!UBU}=MphB@ATR56o|w~=dbhV0!VOgfJUPHVmm}(xm|eH`z}LF)2`oP)l~cW_MlgCfDT!WFMMfX;;)D z1j#eidPz%n`26lItGWaB7;RjRoFV;GI^*q;W_aS4Z~K3z#$>TE;`mh!~Tq zprwk)ex{E}*CXfk$axmmc>{9ZfSl(9SlUgzQ;ay3f0kVL!*5f$G!?c_mB=+M#d1D~au4GF>73d08vIpB zu7|jmhfoglzw2Qx&9LFG47p~8Sh<-|a?ODBC^6|#lzAjhuE)3yk0tR}gzPiYENylL z0$Ru{iAyN+c$n<76(&9ICl_XW`y7rwx0+mYVLQH#N7_7zTu;^`PnJoM2x4l%nrp!w z0#^j-a}zA>nG^!}%nLGU0dg$}lIy8rCM`tHg+#8WqfCkdJsPKy!Wt$$7o!0)(I0ks zne=R$dXBFk7r)EzT7oi*q4&WUOIsR72vBK9ZqW;Fa>WX$voJ57l@8?SZ~DmfW-*l>SIN>6NrVWM4h}QvQ-xfgc&T(ql1ZPz zFP{M2$F;1@l4~vI{$ZTix=M1bQ>gT`5X<=mZ1@5;jHqGKmo{>xGE{mN=d!+*To12*=x8tsXCb3$e6q zsLiEy4F})5eo@qe@56qUR$oOupGq|xFYo#le?1zbo;P#9V7Bl1a=hVqdDkC7^?3RD zAy#e&a=nWFwy?UU$D;pqopnT8i^(^hLB+f=h*%_SY-_ZF?1=2afZlFKr zZ#c5vwI{)ktat6Uv2uIi>whv-UchW9F9;%dsk~K?Nv-M-YN>QdEt9YkD91{m^d&B} zPEdL4FqOWNVrf)`fY!5up_d;ThlKijy_iXD>Jd{#rSJ2!wqYu78=%sUxYXW8gz**CWY5nU!=JaTy-q1 ze+7aKQie%bU6c=~g{FEY4GdEGu?T%QGf$GrJrPJ%EY0gi!2kU?-k>m*4+=n2ilq&% zhlKQjUM~5m`~-x)F(wUx_94)DoR3K-rVygg6k(DNxqK4JOH4XBh7f|pa}KSi@}UW6 z;;e^3!!R$(63cliG@M!uNnz6P3_={5(oCudAwcg?t`lpGa;!DVhjN`~AbmsqO;sBMOR?VbKfpsZS`6&S=1%MT(Kv_4FE(6wOHB^2E_sbP-D!&4K z=G!z&yRr(whqN%0u1X?Apef3ve?!B+ZP1iqQV<$~mC!^?`cEA~Ei^@#gf&6=*kY6| zVA8k<0`y)bG3nYgLJXSXOu9~@^6~Z1lx0#?0KrY=*LayU0cqDG?P?#BuwE#?0eIII zGwH?*LL6oNOuD%W!3PF5Cf$-nV7Ze_x;2F0r}CRBnRJ^%8>O~1nC^%ZeZPw+?@6OXoaLMxKyXueh%=i^RDK_FUKe9&Q);OEULaf- zX43s$Dz8D>1TH<0K}-rZCRy6FIF(P0qC}QS(*p?5c|Z3x)(qv-5j(Y-r9E7W5Tx=4 z6(-H}A`sHKmPe5Dkvb|5a~mE-&RLNH{90ky>(Ntvb$We(x}6*sN5OYk-Q~qyMN4D=!fl^b9gm*2I3;`EEull{3C0kv(3}RZQ|q^fQ!R3 z5)C&YoYG={%%g$D3M{ z$6bvZfT#q{v!uWJvU9FQt+(}g;&Jly4dcck%gAi+c1YR;{oqjfdgSbb3+iFD4LN&6 z$t34N*$1`;$ir^Gp5hicAC8#hEPBh1VcXL?j$58}B4@&kXW?-}kJ?V2qm!ig0u4F4 zzGY^6s|TXL?j}!p1~*jERJlc6U#T`hFBsqEj5m-IZOJQYv+F66$l2owNo$|;ckW$H zo)J}e{1IY03vm{^U9;Vgv;F8TXWPhgdWf8Vc^h)}_)vZA5S};WY&X|G@*MJ1K(Z!?{3&*=ZyHu9VXojYrU&Zj~qJP*6#oo%O(XE>HmJA5MNjY*T7ZJvI1*wN%U zHG)SYS&?&m#3bjTD^`8?FnNYS=Wo1s!1j{!5+*rm(Wak2CeJB&-14ht`xeP0=OLqJ z)pjP&P@waM%>3Eo`#O`Ht*2bG4xT?5H=DQf7Q%9FGV{{G6PDh!gFL<@d!!^RT5jg0 zgWk3e{FILUE5;s0iJVI-OwfzwFWz+(c}}WjkFZ3}OSBQpP@9GRMBnqtb0TzZ)_86; z^JlBAfj2%N&k#K5%4j@8X%qB<+d4md0eMbHum^7q=p}uEB4f0nB;8#?f8qnCeLEj=FQx8)^2|0UU ziP|)0+u!S^9YLN&Y4+H?0lmlEtVzzpj@&fsI^-nw@LupdNVDC5-X`h$^cnIz=Vq?} z2%VP{nCLvTy5Kekd7_o_M&G-cJPVTK3@8mbOZ;Y@Klp#225%?N{49IjLgciW={#t~ifcm1 zDX~{LM9%hRo-evQeHe7&62v*Gsv&2OnP#3ZoW1s(q2zhGioHN0a^e!WsqL-aAKn=j zJ%u)Zwol}ouk|=X9TlW&Yd#}S1h$``AbkZ2bH= zD$or%+yAh%)3M}P6(qd$CUPFBp&N3x+p;KCO`eswsNBtMht94YYD{#toj0N|Or90E zQ2kpHIyY+mH0V5ReCE0b$n#p7UFeCNUz_P{^ZCF{@X~8UxIh#+KQXiD&@Hi<3&|75 zLTY%vldc#)5Ol_k>^ERP;N_$oO44aI$Omb8P$nA%c^k0pjza-&&;BNxsGS< zAWy88-B4)A*%fPohBn{z=!j^at-5r(dmVY^)v*^#MNTDZlC$8I7Yp7Y&yy)~_rbpv1GyjmIVdk&i#_@~k5~>M9m-fBKoe`XJ!}tBB)|Z9VPN zq*QAB_=9WDuNCa!waCX`M)3TGvWI{@=c2yY;5iv=^{U>rv%TOjzUFHU&8 zm=|_uG<_k)<#)_f8wIZV8j9x(A34{6DIXow7gapCP2*&b!Z@z_DvM_@#+wg|8{*X0 zVmwPx_8lf;LP$r1K8#M$`g6P_ZxfI3X)Y-6}d8{q|TmXGO6LkoE}NL02Wtd>RN{aZVx zsq2-Mqt8Bn5BSVNG;Wan$UUm&ETki!uSRiv`N1OC4^?vHqAC`5b)6c+V4xCwSpVGY zqpq<`5p|u5n|MEmi$=YNCl9S2qn^9dxw^#`NceI@=;6BKOg8`;ek|@qj>q2KQ-3V( zNf?9gND{_4l~*V#;utTfAk~!D*5d!wq#gjTTBJ)ByzWj4Jvy(+X=9wqYf8u%r}AoK z6X$=wB=T`y2T@aAE0eL3*dXwlO;QnVNE+)x^Vd|(KAqQ$n9$AQR9=q+jBzTjSzx06 zcv;S?R`WmS)jHdh*Jj^1_f=1U*W)C$_F3?noypP7>oKAj<5XT61>Tmd{T0cIvYb~N zr75r7iKV?xT@GGPkaQ?+;+pzvp(OO^{(3GaPUW?z+L%w}wU~@?YWrFm6mgtayFe3O zP@cHG-!AZ)LsHwQ1+Q30=+SxQwsC8JElcE-<@NYdTEuZ)#ong8irhc8owOFb=91JQ zWWlRZpW^kHTW2b-+%bXq%lOmV*YXMx&v|w7H{sQzCR+8t_V2;#Ns>C&TJXxPpG61E zE2Y&p=YwM7^XlHTKf+&Yww}=oyq+TID69VXoz@;&hS&Fj99})uRjP3w z0lu<{t8q1h2B`j8 z#$TJYcENe|N}IK>ZJ7nlo8|JbZj&J$Nl7=@_ee zWQ$ex*E03^S4!yPyxjF>{tAv+JsrHFB)Pp7{@UHb@!b=*eZ0~=>H1JwV(ohS3nO&#hOJ<>) zam{O8i0__7Su87XCUSB=l(h!gtfgIL@o#l9qU~z$yo3jV&bm@ z;pNlX0OQ3zRBxr;pRnB@_guaJ-fZ;}N&m7np`$hpy?HX1%!ku(=P)fyWpVuFwuZYe zES|@~8R9ODhO{V|=+$QS?F z1e{k$x*%*phgFaIYZ*G~4Qi&5)44_4SsZPrd+U`QK<8DGF0^VpizSszOL<4Vv#!y3 z(nu$9=j*^11IoX9YF*_pHUU@x-jbZouuy%u!d zB_4p zddUF&aq^~l$omdSRUr%LwW_js&^Kx;IzSi3-&qCdI+AXPSy=tCB8uk^ovaaMxz#so%OybHl6m1UK)*-QO^xOl z&FW8c76kcO{aIZO^equXT~|GMnitUTV`HTP3#&h`6~*(ndR<18{Gr!tmBpbaCJoT{v>y8@pg+X6P>n`H4f?BW^Px9Xh_W2|c4NO@ z*8kJX0R0h3x7ArV{9BtSp1;-UpeW0s@01KyFTCcxNKxqQlIKqpBGSvmYqfy@WU{5n^* zS`_BclOzN5xQS={4(Lxvy2q+t?>Yd7>o-j}^yGvAdVBDkt$_X%n~jl$!~aeS=K0t4 z9*s7KzAt2e9&yQ$?*RHUlJ2!~_+DGHp|LfZD9fR1Bm=ax?iti&tFgJDS~}FhI{-S04rR=h%tO!r{(?kwN|C4}FLv%5tlx1`N<$XT84z(CbKgAZlLM z*a=P)&mX!?ZVP`9Q0fX7GgoM9cR%DWNSan*0o~TyeCT#DQI=ahJz;=;IF?-p=oGf8 zvvPQc1E}lbOb&E7V1WK$bm2LG{*t7JtQ_94P884I;hlY=EVugMlmXh;{+6Esy&hX- zdMzB@W&b)?!>eHoicwUTh5Efs4n5PjKLm;c1c{&zM7FA6vnE-&UK{ zwX=^_mP602FhGY3E}sSH??{>xHiyQxlKThUKV;0Ob}pSZhn`0U=$qE9zZB5llk}vO z!~6M+DyQ#Iz$&OtSz_`d7f%xe89FNc1{c%?aI)MIRc^dolqw7SyNi|-rS%<920L7PJ_ zs5V&rrGr?%-bB*;goV{7ct!DjLz`KxKXd2M3%v&DmruAR1?Znhde-6+0Na{28yXv0 zi?SR#nleDQ>ULKxpfe;ztp?H)_irF=cuAT;G4H5jxc+7ahsKL}`jB$1axxpkHvBq{p`YL3rWuhEb98?s3@L4^bQhbIrQsk19Z`eU!4r- zpGkUMv4B2BE1o~J{z?;veluc#9##9;%YfcW(i;|IIQG32%=3rV-}2(nt9=IOtFPI{ zI@dOm5>`XXshQ?OXV8Y#ABTP`ZGfJX?fEsJw_}TXD~F#}A&Td3wf-(3hyHKK0Nrn7 z)&b~WNP4@@qOL2V&4<=skL1wrNCxOr-&xJpX7wcfFK7Whf|?JlzcI?8-%T5!N3UA> zB%puAIRjP>KO@+D=yf4cmP5Z6GC)5O``iZT-$<&na`>5PQGDNZt$qf=^0It+_Z7 zTdmLa9Qxy|0eaaVtF8z14(!G4vw&8=T5O)x`h?4&KM5P4zuR=R8_+vRO4gf0H+s*_ z+TmtPg$uI6V;uT3zX94gVk073{YlcN7WYUSzUpkA)%sk|q1VGywbdE)+y|+!XE4iZ*k#+qgMp;eM6gB zeOXwP<pF}dQ-w+ z^`U>9eG#CGa6*A(4vj;J7%cnk+iJ5G{-2CmlGQ0HHDm18kHca zp~rf2ptpDpR=4@^?2dpwn54}ibLfV>82*2&&FWfT!*i>DHuh_~t^bjLZjFN;ip`+oN+=0=f-J zzeX&q)~_J)xB7-ij@5slgKEz{Djzxie}F!Wq~9$Z-muq6^Q<00InX;I2Iy5Ut~eUd zZE+Y(#@y_$>)hmP2Qg2I#Xo zujm5k_9SJk`n5j$=c%mQZbR_AYItw~e zYen&vp)=Jd^f5Z@2%Uy80p2-u;+q{nrxVEqje3XXo#_Elyk+Q2C!vqiDMCeRFCbpf zturdLurtYpjfNr(8uXev4PIro!e$W=SY$dskERoJ0Xg< z44v6Qp^wu!G;N?W^Tw-(f{qObGm!qSzm^ww2c51Yw@F#h znO7x>w+x+mIpYpHXG-r`MY~Ub6Lh+f+_uJo&ePtOrSnu;=;PjLUvHpuMmiA#ouhE# zmDhsK0!b8a8Sk)ZM*VR*#SsIYqAl;URatkEJ7g^AEJRyZe=S32VOZ$nbUIcU=&bVk z_kvCjk`J%7ptA_>Ye_nbDuq5yr?X_BGx^gKa0{xigyc>^3pz_`Me&yL&Jv%{$LSoA zG|>6&?6vHgr6*1Ywpq}L1w`={p@Rd6g+5LPFG1+b>fP~4(?CZexl3Ix9qp}$m{y$8 zv0mGlT`s>E&w=i$7@)%i=iqrlp-i%^$^v@1B#P$`{YpTTM>IrBE$&%Hrk=0eAc>d6Dr9@c{ZBH4jZq;_%Er537 zbihV^U9ch<5oK(2I%8=o_-^s%WpTo8W77PA)dkdEOhG3_62I_F1)^O}3V$v%@F! z@s2*!*mi1n4rept9pwWzG`1EP4#cxPvg(8uWv3mLobcOV=FwKc*GxwSD1#2JzS zdiAuo*;4Byl1GFrpw(TX8GPQ*IILUH=Fn%R4A9HAK7|Hc=)>XN7MD;4=KF>=yN>y% z*a*#b$JTE;W}>H`1?ZDWKFexk)i*%a>K_M+3zhq%)3Dbz%ggfd1!lvZ+$@fJ!f&jE zaGyz8#1AF;oS=Cn;DmBkl>PP%t!@V{@~O}VWq3jS!=cYj2v4BtO`q`i0>qz!6V1s2 zx^+kt&mX#-Ha~Ibe+3NC?MJ@53edwy9vQWOZeQ1Y=weBf<gKXk8@D9fP(Mu%4?dw&M#GfBSG%HfWnD4svGGcC$;=*x`` zpZ&wJ_-3K-ERrv?a=0rXisuhqo)l#{^c87CU8ldkXab!Qvp4aWE^LhbDb#GYYj)2F%|oE z_~5jFVfobgTA%AV^f<{-*UmLJTn*@dkvukN0gba%8h-ghw+@N29QxXX0lNQi$5ud} zNAk5~0qqNj;`u}Cb3KQ?&gk&l`wzSj(C3pp-pb)8*EJtnpX)jF^+t!^l0E-RK#wB1 z%F5yDae53sf2;MmorKV?_)*R?*^bLfdihqs^c;;n$bh~$Zlu1K{ZWkhB3q4l|*L*H(6 z_*K)R>`~Sjl5ewe_!)`jL+f)rhrZKmsOz8J7(Ncr7n5wYkxs*jo(w*JhwF1ahrTOi zfG*0U`vdwClJAl%>RLT^w0Y3_T+gBJHah%EPr(m>zLeyUmBanE<~v-U>pAo!qr+F9 zz5E&SXh0YHr?+VT0JgGv_P z)nntLEQfwrzwzD5w)L7GLje6Bk{?zqpvU_~@%*93*NL(mdS<|2b+*f{-GIJ^tp z4m~R@pwY~pneZxW;p0etwB7>x)&sD5Vy@M-TEB+X^NSab0ra&bKUQM_eS1~&t-d1{ zdbY7&Klbb$?D@)gl4o1>>$@WVAGGC=V%X20JNyZ)U&HFCuW|>VuOs-ui3op9*6#iFhO-G7$nY(Q6$JjbeEPp)V_^dyZohki0DpwZ0k8a48IKwnStlU7$B z`V?T*!mS;CL`cwP(9$Ze0eWkBS9bL=f#i7+i)L1n6vgv~R%)W6EVue8tzX0H`7`QR zUEe_RQ&#X4L(j?` zNTXW6MqPh5F?%GSZy|YM+yZ)b<^Kn5*}|3CZc&yye390#0X^c9kJu$ZHObFe_3JrW zE48xP8hTDB2l{zqzdqu;p=|oNmE`BG`gNpO6we=eUT$44@fqs6F8$+SfSyS5VvBxV zrk_`71Cd62sn?>epCM5^Z)jzHP?Y7+ zFGLK`b3(()0ew5kFC;9W7i2~8eL_1;o^zJzr+#wiWqt#6r`SLzpzk0V2Q!=Bs9adF zU(jZI?kVv)QI!pCra4TJ9C2nlF(t_QpS zfvPOLi{zJUEudGr1#>Hh^Uh`J@XClN%b^vmUt=Ks?Zmb>06IkSD+T7zWud4jZUxP) zHiK4Hg+*BoeY9Ix4d~$$zqtm`ca!{T&>UKMJtT_f4P6$~%5rFzv4xk-_?bP^yocnt z)y(y#Ry==b{k&Zc?IwfO3okiu37{vDyuxa}PNbS|^|FL0%c1*d(+3>hrQ845^f8&_ zl~(1#9(% zfp?9Q=IZ`GeGBMmB)?l_4y}B$e=Xc}()=_lu({Rm87IwctL|ZU6&@t{yy%tulCsBOgR+}u4l&@+Y=E9}=Id;M6ejtjqy_ZX z2~m9C&}I(*Mx)K4lg5Gc#_GjsKtD|K$2Atv-|k;CGhHgA1A;b({v=_rIy&&E6rg92 z{E1`%o%^n;bzT3c!7%Tr&1@s=Qhyx!vq}SWt7&hr2M{w!{xog@{bO7d->1VBGw995 zqAZ7ATW^3)*Z=AQ^dls%wHnQ~WJK}&p|_yzt3M9CE^2_zZ0*M`d>$qFbE`3Yd!;Cz zKlCqAQIty{Pm^e&Ayhu%O2 z==Zt=5`dmf^4CFghby})nh(9lFUoT0Z;buA?9RFDE$hcg{-(eJdaqX$-)CJbCRV!& zw6YvJZS2?GMr~RK=qE`2)}mj#3Z>>l7x_e44*i|6U*Fq{IstkP$yWQYxeiuD@%*iB zt(E1_8;z@!|BO=p0Q6jvzqjbuF6>Ov@XH_iP^~P7{!ubCvwOCtivay3$v;@ENL`27 znh)JpE6brb8T<8{g>41_dLGG}Z060(h55YMR(B9Z)wNm1*stf754a7`5t4th=+`d& zyovlB-jM`0w|a}QU%zTQ^%6ioMe=5ge(ma1FN)_6-B~Nkp?{7T>iV4X;tK)&G|4|( z^lMj_RP&*a)XH+`ZC(R((PH;7KtDtB)>@0Y?wW2sbT_Rmhu&`N*Uu%lJ`U*lByV?H zKzFZeK6DSQEQhW)_Up^e9*3@1xPateton7&So5K!q$tawe>3*$>S-Z{2~D@$KHa5}qU20GtOjDH9^ z&y)OD)`E^F+M<|y8{L~Zx)aE1auaY{CCuXj<;pKV_0KwI{5sk;YJF2)^~}M z_khk4lJ`_v&>7Ui-qF_`oX*~~flm3_$XlSZl;pi+LFaf|%T|`Y7GZSkt-=O6XL{ac zP5A|~7o;rcoKVxUboBKJr-S9CURi5TEW#jJ7$ZCG_vJh^(K`B&Y|GNo*DRdQLG=bY z?Z%YO0G(xIKgerA=cE?)j=qlJbXrFYbXM*>oZS=J*gN{#hSQ-c1D$`Z zyQ&U!ULyM;wH9=S23xkW^z{y>(?&AT+4J=BGSGRM?1u&|=$w*jSvvX}h|@VNX`u5- zY6rWOxt#2W*(~UsTG6s}^mP%Z(=KG7^WCm_y+G#`vbU|XpfkLMy`!&{IGy$tf({+1od&Eb-2@t0Koc)@z$H6r&fPL@6??l{j<<<0aIw_pKQZ=s4LsWOF^C zL7$#5s>}~sUl(!c!;Nd(7u)~m7(l;9_QRtV(C0*&53R3(ICLkQ!QuCgoB05sSCG9^ zqoGW*`rP8?L+k4u4&6CwfR?kv?f~>kvUhIO^fc&^)y;?2*ESrwi}4cbo6$wD0eThL zyHr{@{9ozjL+k4p4&60iu=>7e*i69U$b!NqlyjC^Kbw3ML@qn z_M@z>-bTfmZ?(QY;n3Z+DGL4ilit-U0R1M}yC*ChUg>Q11N59TAKnG%)nxCPwt&8fnh&k7F*vmBH$eX~quvhax5zG6 zSwN4eYCg2Sp5V}>1qSFp-`aL8px-8Ysbm3tan6*I-$1Ib9XNEaumO6(@b}pLiT{$l zSIh$X(m?aA*4GIf+94UBH+G&f6wv=8yTfMz9jI$Qw7w?b(9W0vI`~Fs_Bi?-vOAL& z(3iWL53SGt9NOhGK%ZFiB)b>&F4+55OHpvUDnGC!;Jxt>G!jToSp^uPR0Kz~5?z6lHH@u(5?x6j*PE;Fn3xt>G! za~q(K=`~;}pg$ygKfeWZ)dAGCKG$>T{%HgB*u|eb1?Z2+KA^w?`uYQKxIWi&=z&!R z=+=P~SifFF_JLsw=o=2e;rd+9p*;l#=nu6lied(K;Lu#4%g>;4t-qM0DaVz zo7kQ8B-xLPSwP>MYJM}*=Xwr3NHRc=AJgVfKz~B^#(SS>E7I!f=0odqJ%=8gG(fMb zyPCaU|0&rU?{lU>PdosJ>vKJaJ|SR$&i1~&7|@@Q{e+N(!*4qPhwF1ahaOUIfbJV- z$9NX5CHslR7SMMbfW!52YodLR;rHZJj5=TIb3KP1 z<~Kn1pKxLyK&Qw)tjYpf-V6J3+Q5L{~T^+wLaH# z=+mkU(EomX^ErTCPxjNo7SNrP=0odqJ%>KMzyRH~^CNEp`YW=ZE?Ge9TNCB)aDA@l z&?907=b3iB>RO07SIC@z-oQ2 z=g_0W2I#)me8!sDCbEx?SwQPs6XkEUKG$>Ti;115c;sdub&X|;sO#Jm+0xRTn=ab` z4nL87Or!ROCt%NGDkj$yx3SU}#aUcU$Qbuxm5|i`8P_MnP2(0J9~oXE;JgBXCcJv= ztUkPQB~lABWWTi0t!u%{uonZvOn5D}*(Ox~4qltdez^rN zB^?lYG+t%;2M77{nyPu1^SV0J)L)Bj^Zos%fY%nXUuD6otTNJsSEF4w^YT|&L|b2Q zUjKWK8yEFhrhoIJ`%5#KPo;VBay{r4c5+_hl1+H^SZsTx z;>M2PwUzASnm#V$?cS8vl#tM!e?3mG5oI~A@rfq9Y#Wpx7T@wCcx@y5b#8NiIrZI6 zHGdsQJu3PO_ng(GaK{%=zJw0Y|h_b59Rj9`}}6S z&fBz#J@)v8?Dtk%_{)r!exgnOyk^*hP26AiS2f{fADbOH?SyZ@tDfvNadTdVuQ|1P zG@QPYKd+h59A48BO?i!RmydS52VTFDeX13&M{??n*JIgKO?Uph9<9vb^-#JAFU&(d z3Oln)so%){kdlYL4x~RmmdxQbqbaW*{>t(2#>?=fVgB`~&taU`Y^4b=jQ5ka^kXZz9b~U< zw2~9!z48qS`!rro{WzHXc|GnI`ZzBfh}U?X1AjeUS;*cJ+e!8(EXE1Lz91SeMc=R^ ze_nH|b9l`&8Nd9MGsiv8o}K(P;{5qdOUj?e0harw=U^CVH0`|Igo6Mxws zRbKz}`ES81OZKN4txZKenzei763u4eFKV<-vtAcQB00PkWXyQ=diHYm*3DmJUr=n} zFO&YL=o>2K&r3g(ko)Vort4_<-tqednA8eQOzdKYk8_EuQBee(*w7I*FR)m-smz_ z^vAMg31J`Oz~^nlcejF<$ix0;an}9uIW!#g$9ct@^0GzaQ-UWQ1zvl}9+xcq)xJ{b z(RdxmdctsWGv~Fk={Nyib4M?GtDv9=@1L%8TkvX=Glm}UI>$LFDeUCD-pDqoNASAp zhZPrtS1Yo=;j`d%h)w8e8GlW!75X@@x0;S$;Pp;r_!;mjB>QTs@vEpt=xG^V(*r^u z=k-6EnZIVdQ-_ziii*ho-+;Nl%J!y&o|fVDaD~vvdDS%?zu>P6l3ma}iVhy$wBWVX-LkyqRSA8Z*B5b9Ue#UR0Ix&I{zZWWuZ%X{w2Z$Rt-sdSneqB# z{g`dw)rRcri!FHJzDmQdWq2)+gg)-C4Jk8Ti^e~J7mte$Bl`x)g4cK2c+)bx^i!fa zuXM(Y*H!IbDFUyyWKX*-cx}J{r~X=o*CI_H=e03w#_Q@k&z%ci?a02-XTfV-sAYLA z(b_BL^^;=8tIM6+@WEVBd$Mn;vf#C-x@CFA0zx0>wZ+?n7p}L%@t4+vR|m3h4w>^Z zyDxV@>#sX}IlS-O z=y0;^s_}9? zn-+DEH!s5;58PintDExL9O!fBw}*pQC$jHInDa913!(99^bCYwKbC3Ji+0^Xjh>6B z&xe+1>j2K{uWVCZTLVWfRvrMa&Sd|~XUn;wqj_yjOhuSQ7-4->BMUCo~ z_eVwFHj?ow>4D4rM$eI@BKMP9V)ueqH!5vw(I3t3Pc-tO+U|4tTl&ke#Ub}shq@-b zdfXFO{YDXn-=d?av_rAEznn+MoA}GM6y8vOn!g%7Tejx)bwZToygH_v@|sp~b&WCv zyt-3qM~mkQ&Z;`0hjHNb=)56fj8ohFEeT^BuSe&tIsHQ&S6^_8e4JMow;8YVXR)2R zi+WJ$5!Dv{>QgE7=)Al(W1PxsaLgE|^11+(q5gQ;Dl{n9vVe%=yt-DH@#@lR)7juv zLZ!B_1+URLc&fj~2-VtiWO81T5|NC9%ImVQF;4ZD{)~|G>K-uT<^F#8N8r_yN{@ovxyyv7$B<5XTRyG0!5#crcE>W@996@0yA9vkl^DlM@Z zS99;Bs^f&oeN4mV#+tvBc{%)5Udy#O&a0PcJs!2@O1$$@BvWZ=mASu^F-`qt_FSRS zJ$>#kWll)=MsHuQ`b8Y)<*YLESES1b*1qgi>WEwL%Dq>w`b$5ufZ_3aRC4c~tGx70 z{&imQbPlibS~Fg!obc*@!K;)?U1vYK&8P>6?`6yjE0+ zeB57n=gXvhO-OaF2CrUJdJLKKa;#T`9-Y^oN@JYb?%TzTacaBQzmnH^t&&7O&dZ%K zg+SdsqOxCjX&o#&~#j# z6#n&Q@N!V;fJ$>-j&(U4c>8i}s4(JjUXFCo7{_@zhUAt-4U+3kjVtGMT+?+S#tGZN z<@iLn$VsIhi*=!6ho(pKmm{0w8mXEZTje=dfz~GV@pN^JZ&*t<4I) zoY%0X^H8ZLwC=oPE5Yk%Dm|s*0R8n@)ArS9O{TW5bpTX*4S(y}+w4mHNF0=&#&y z&e~rav=M~+>paPf*F9sFTn1ilD*adR0D0w(wbs18sn7A(1yxOXogVww+4dX2s~?q) ziXRxSMq|5myH8i-@EV;m;MdoW}=4`tlKCSH$YZB6TORPDyMGM&KdI4Zp+kVie{uKDw; z$IZzcUgP~uc?E*+eg7t!VUd?gudOxb)#%<0Ur#i;pUZhQ`tXmpFIS^`vsLVx<(XW6 zU2if!27)Wb*W!J-qCr$zWidbQH?MYDKVxl9<+Zt5_(mHi9Bi*a^~dY+#)z4}#=IY9 z^Y&mWy&-de{wkIPp3ZAq+8D>zIgZ6zKF;eFlW{c=T+_xr7QBw9(pxOX)&2HY?)QYM zzkX4g@>)_O;yAB~Ci8Y6xN2#L@j8J@CtA$g`^_u&V?&i!JzA9d)9Z0*y@=zy?j*B% z{HM>F&EPeJO7HL=U_Iu3iKz1WH6=Lcykc6LMyIBr2U0IzWHre#5Bx>yMm1s}!vGMa31{T9BxyvB!pM zkBS%zxO!0|wjh?hs2CJwEmvb-u|-8)d-Ps4R@Q?4-*0B;%sIQ~@XLbF|2)ru%$%8d z-+AYodgjbV$aA?vKh$Tv#u|3R+DKl%q!b6O*CU3X(CaGO_KVJ+_y&0GNS-U#w*9hx z{U~|;nk(kD*rogguWM3v<#=z;r;mWwPUM-DTg!5+$|^jqS1xY$ljZnWyYdsf+A?;$ zZl5}t_jT+{o;KH7^0Iz6DfRj-qd4etToP7(g4YeU?bqEO)jbJbyO8IGwQauwX@#ft z`onGZlX^YguKWbAo5FT_U3Br(3&Cqw^2}{nOTEGtZKPg*HY*NVuP4&VPw=`WYRBuN z1E=i{Ub~U!=Hy!PvVIdOd95-yXkJhDT6o>sT*M3St#-P;V-k4nPM&$4_Po5^Mt>&K z?!;KdtAE*r{p2{OvrFNzAM-L_2Cph_kMb9KwHNd9+~BHwa21~RZzRv{4!o-McY&Ih zQDmZR7rboVKa%Meoef^qe_Pv$J5xn^ReT+fd~?xx;I#*N=I8A7s=mn}Vel&0BOrMd zzvrWZ{U5^aYs#7|dfiiA#LF|kXLQ;k6CS$&iTpOQ16ukB(&;1VbN7Ik#7`(i18@6lksz!y+U+gFJs#=mT`^j?b z*QNX8wSMvp{Px8{g7$JB) zT+9phRr}7nGr((K@+?Z*^QzY0`-rr;ov7CDQZz5?99-I$b^a@P4N5alz67tuHskyG z9q+kL{tdkLBhO-o@qM-a-beFV77+>KAA{HU;&pNw|Ef{W!J9Otlw+lwXC^FFVC{_=l0y0*D)uPXIY!Q zUZ(G@4ZUh~onk-9%i5+1z3g~-mnAH`p6M*+^-S!u_7keX>j3gR({0bIfP>U4)~?dl zyll#`;Jal}j$ZvEj-ni2u(7W>nKM6~<^it*$@9FEed+xUhF+$<1_rO{MTXt5pU|sX zzhf71+3v?(npJrcyk08i<(Zd!uH!%+PaH&^7oB)5b*pqVuP0MxKT(d=>5SQrd6_SR zSIuDKiQt9p2!-|0v#9;06V}}Zyrz)n6$f5k>n~W!axIvI2W-1t47_6GdDCe;p}$Wzcva6qBzdu)-D0y z`Nr$}gV!PCd8gIBK34zJyuLH?BzV2wQOxUk@7{ZF#^b`N*Y;NUu?IGK<@O=?1UE z$dhew&`a-I(R%4UBZhs|=<$o8SIwZb(niE><~hq$8c|PuWZD|jxQUAlq z^I626mtA{b&~`|>xAxJZ9BXtRZSblY0wLrj^!lo)nAdxmS9iJhZSXpRJYS~ld5wEG ztI`o^ck)<8w?XXZ$jfegUp2x=Pw@K2rhii5`B@G6+k zNnWp6_3Dim^Xe_zExiw~GaW^q-bCMdRnKl!dDgtHbesJoFBp3M;&77Ji!I7e==GD$ z`2K&H?V~mPzV>MH{M1^?JP$w($D3t5~m}njTy6NF8_`L!MuI`p&DM z%!J(+l$orLdTgro(mydQ^!mN5nAiU@*Is)5<=}NJd46~IomaKq+h4j~FQG=uOYmA{ zGrs>VLrsT#4_?#Avnt$oUVYWec70;QUNf&soBj8mzjK$Q2cVhje;ieowb=8rThFP{ zX&ZWZGYU@3-DElHHdL466Bhfb98f&(!1~u7bj4rbHJvK^JJ@}}J3Torw3`oIkXFQ) z1M@OpnwK7DayeE~N7+C*f2^cV{Bb>@Pjumr%d<3Wb}Rmv-9eS>#qdX46IBjw*eSf^ zHc-ajg9<1QreW7$5JlBvQVN=3uSv3BWz^!=$bRmO*>6?{`{|!e6LHh<8-GK&IovhP z@EiAdo5jyv>^Cb>9Cua@el;8Sn&ZyOu-~RYm)APrd{qzoZLYk~Wy7x>ex|MILcWd5 zo#m6NndO7BTa?Y73Hgqv%8kfsiH3aoM}f3_Lt(!15`K+LWix9wkO8V5W(}8Szv0<@ zRAI3~zUq-(7C$$K+rkoVR)YOTS;9&AhPIgFO8K;;T0WOcg)`)<8Q!e@V12Ic66Jf% z^(zl_PoT=783*~OTtR60HZZ7Y`PQ?9lh!xb8ZONeV1SXoL|kNm3V!50ngO%%z822QqpM&*@_Alg1u-v3Q*=z)AQsB(NkH=-(UVY`$B<-+!> z5q<^XgnWhJ(gnjL1 zD^VOyR^Ey(C4rDx$X8Xa{0#ZVEpS`>+L2yObxiv~zS>f|j_lIs&V+m?Q)PX@;7Z9? zbw^e~2+M%lRHZl22tOfT51zyvD!lq%R@{aq3EaB1|cV5`y*UWymyDWZgPVa|= z*>4tHG|qaygtWd;#1c-(rzO?$g|aG~mah)X4L=OS4pMy%s+q-whTEl9ktb1kJ1j%l9Xcnmu3M9*8;B_LCU z?U!TMQFU=tQ5MA^z(( z^wuKzjLK_t9Y*Dave~Xv9*2CVQROs;flKv;)~qFwjcR=evyg!0tKJp=%1c;A2m9$C zLlWWA@GHpf+Rr++?zP}%fKjt`RQYN7wgYo{8S zsbD=yRo?2B76mIL5b~YdVDS_3?a*rW6V_K9$(j8`*HL|5x5clSWxk-r;^$^R{lj0P zI1=o)vn8%<`?k0GN%?wJdRo4SRnm5rdB>Cv2kSd4SE79Xi#&b}}qfp);BX%qI@rH+uRTGok^AFr|sLm>JyPcd5P>oII5lj z;wHaF_S5Z+$Oec}^_C5maB22C87at1q$lKSwuW)Wj-pPZcB z3Hh|7TE0f4ATKT79%=0d>$|+T?OT1%_57mzAB5~ ztOUy!Xi?b}lIGx7(3Z-sLrbdV+e<~&D=syAN0g_qzS*m3`)s?8m4Ef)Zz9g7%2`fr zUthZp{qsNC`i>4OdcxAu#o1l^uH*1FGlrD!NJDxpU)+%1us+l82MGD*l-l;a^64f3 z@83d|H#)U_eeF69B}+C$5Jk)^}vw;>Xrkb5y6rPgGtlsg~~; zqbLpeYK}Gd3Hfd+&?(DwDY>)5Y7p9|T9 z3;FghH~UHX`r36&ZZXG|@*R-1_zC%r@3Qy_`Lv{3z7r!VoR)7!yY@rZ@j!9gxB9MQ zOvlf!L%#EALM(qtjPK*=erBub?61FM_VU&XFUP=&Zo+U9hM9V=n46%%6k;7Xw#5UDtMLb zIBBcC5}B5lh}(>~RhvaDer}ue66|MvPa+2{&2e*FDc@;GL0*P@RT}}xw7C%EZ=G>?}F~P&f4-D$d{nXs3mh{|^ zzA(K+adF7D?`%t3Dl4y+RLi$gLFie>_}>jP5Z1RMR-$}Eo_TZ!$afJ{zTez;`Nl_@ z6qkQQzUmLxLcVh#th}`KX-TzwpPHn~_q^kON~yR)zRz7H%6Io&>8~K)#Z>uexbN~+ zzh@ZzKO^7!NtF$ep1Tz5JI`y5E3HpUs^$A2r^4yV`>~M^A>V(yOOo$B8aL~@&mrF> zRQYvp3G(SPQvMP73eKP^t?iqMmRDZd`n054zPF7c((-k8s<=YFUrMdK=biEWi;(Y9 zs{En51o`xlJpYJ%)%qx%(yi~pjFLdhrzO?$y>3{kmT!5BiYw$>)lic4E$Hs|`PT14 zzRRfck5VeHJ^|{Vk?&2zGD?^4qL`9E%cmvP@;zgO)AGGSDlW@6Za}VBzTW2544eB8 z`Hd^@7Rg3inJ)oSlZE4Les!vf**-_k6Iu2aMr+ZX34Eg#xa4Fy?+deI+ zAz#fUGs{aqIW=T|V!;gn~7!ui#rZ$AL@1 zd5mJ*S2&S#v-H+8PG$kIa2zQIE|%LlJYa;^Ugzo%FB??+isE+@@-c9p4V71 zFqTX8oOix^gU?^N6!NvwxJ|P5@>O?OEdzE}XlY{BQD_AqTbNx(>nk|+Qg$7EmG6pH zC5x`ST2d|F+=vRN<-6Hbp^>eToh4b{;D!^v+bjpHKHfX3xk&l6q*}h#j0&gan-$l7us(lF zv3zQSnoZ>$+^}BoxBo%Dt7%+Kv%P%P`urgw)!J6x@!p)G{Lfh5tWI-!Qa&xImhaL= z6;8`{MMC>QzKN?@F13|!*yP99`exC%x(0js#@9s@#6Kcmbx+um9$R0bMY@aqW+j{| z@9elaJt?1-RLgf^y9%e}OY~|#(1^rKw7w0OH(dhxuAy<;$L!^+{@j50XXMkTkNq>& zcdf;mrF>daE#Em!TB`h<*Lyw+PhO(!YxI^R-+T1-T~}uz-)tJUo7+J?{o{WBh2nVCE;~(~@fWPIRkqy7HbJ)qbeF2X~ibeS;gG zeyJ4&-@lE<9h7mfzV>zn@z2ON-;!N1Y%a7&H!Q8d&$;cpF=yr{<JnlRIox)xQepdQC!)ahs}ps({pp& zK33iWeo{UysUcs@oTTEcxVYnaq@XY9`I?V|EE^+|02+Tb>lBESef9EE4y)b zpzTPq>$fi4N%H^UV%HzdxFh8MQ-u68i@(5URhFOq1^>Uw$=AP;U4J9a-}usE8_q*u zKm>O=4a*AGz$k6;K`R9YG0(st7X=3PP+;9SyVmW*jc4n5*|lB*H?-cMfn8Vx2&~^p zzV$lTwV|5=gL^5kk$ARI8~%!u`?ofJR-VJ%MHS0i*|lj3cY=J|McFkJ2t%PuZ!f!C zS=@Neuc#<6B8(faSPn_EYh(xR7V?jt6xh9s zU5!K&dr{i_fgT0+Xu^%7NFRx^YtJkN&g`YYJ}vCpCqomSbd!J2FuV3Er@+2=9u;Xu z8)?E*u&z<9{A_>dvVRK&CbzR|a+W4M(@4ID%h+{b9Cw%k2gTTRP?9D*3oCE(vTI5X zcNYZ??qydjOcS2Nvoi$xAz*w6;!f@0XH$DN8M)`%NQ9UfuV;R%}Xe2m5( z-^{Kfvba;2q6@sEqBLPf2aP>X@SNtQz_B?Rd$I^Q9iflQP|a;!9IvU1LieVq;?NYk zPK?o(eyBe~pwCF)uP6mhO7gRldT`^}$%6GM5el4wA7i^B%+H!p!#g@LOo_7VRD?RU z6))&S$kPz-v`!iu7R=7Tvol($BHqm*&vH{>wu{^|TiDf-!kwT|hc>h8+z9S+a$nxb zuJf93H_+Jeg4qQP6u5xM{eC$=n;FL)Cij-Yl_;mcg;{ccmgQ#`A>>6wqxNfH*Tvv+ zaVJ%L-o~y=!???6tVf_D zb>eO%&z4Q>x*rJlN2uaqk@pAP6j+ud&t&0Br6`a>oBUK6hkO{%7WGo)hvL~{AS?z# zQ2OQh6pup?@b3QXo9rN}>C@DUcQ+pUY8bVH&l-%W2|(pV0js6j+*J*9)-S2f#d? zVpmrWh3?6a@2WVvUTVNiRJD5>yIzf=-RdGwQ!~3>1H##zRMptat~aApwReiD_R6s9 ztvFTfTTWH`G_vdMW~w?c2cHzX-f5?*DG{oQMcDN&;vC|ls;N14b*HK7a5rv|qxUjY zb!3iwIFJ<2-p}Gj=%c#X^LeGt@b0nd6uvX;`YcXWr}p43XV>S=RCPw0s?HR7{~|$EXF>hXL^*ufLV+(Esb-aU z_EirBzUrjF*CO86P57&UM(-q^eS`GSepcKgxcm<(nHgCn5Dqa0`KQ${1u_VFU|bymkjQ93j8WG zTN$Rn$}+0Bp@pC2dMN10QDBvbww zxLYaMKg}-m+ClW%!GU3R4Q#_5r{JIjy9Q-&w^MLkP9;cQ{Dl%5&Up{6m&T3I8!*q{ z2H>(mC;3LW*tKB{H$o4|u&W#)hvX=@v2bk?rr;(RA&rjlGxXZQO%oK{tdm`vm*cN2 z`Ns6HYbgAOMkzR)6$}o~;zsB#df7Ds{v+HJ94XL8X7E=#o<;fD=rC>|jBjMu7{nQq zfZifxMKc8}P{Z%<;%Aj!3Z2kPzABNw@rXB`V~CJdP^b#MQ?)>^hQBvM!LeSBR};sL z&{ZP0zHSQoI)E^0Ncsf1rzk2lcQE^*K1DoPq~O z*>x~N9*mH&PIesv{}@V)H$zfzD)>)Llka5VIt;821M5>`{Os^f+^rNmqMcnw;yxmS z|8wk$H{oue;8AVtI;saZLLV)j9fMSkaZ~VEfj6xje*y2B77jT*jvIQmwX*AYF9n;R z%MIP^LT?{D(M!I$S$3V|qTmdqyMxHX$z2pYIZ3`-%lKI{kei8o?QwRUn!p_;-<=}O z(-87BguJJNpPhk_XAnXs*>xtKor!1Cmd+vn%1kUp*AO$jh#a61bx@=G<0xUE-$T z#lU;LgI$**^-G(`w>-nH%NuYbM{j4@bwvy}l;{@BTH7hu+DyI`4gBm%q<&>5`95*8 z>uP9yHAaW0i!^7YDLAW*s=RId3?rG~H3)rG6T7bM#@#{w^+hVzHB<09%nUY6@U!ca zxSPmdo@Un#S=^XEY?@=&9OU*!v_``k*)x&t$4O`mP6i-`?d`E`Evydw#RS-^A3S`M+g3DA%8r~ z&+df(d~i9YnO%3a<8CJZah>eC2k3VLeQt(b_a<;-?0rEwyB5T8hsi&umt6~iu#gd& z*mZv^?il%RE@Kx)5Wxo!iqDPQhDHbFSxxW9X>=X+qhTKqo^15nfzO>z^$(z%`69tV z*TJtwHptU}tRaV-vFMMjsQ&&o?#%KbhfkO1ELlTt`1jstKTY)u(TRN)&xaiKfIP{^ z8glS2qqljI>hH^P=cz*8niFT(SVL~G`=WmR5t6vm&4(O4AZrtHeTpo)ljN{fG$>&23e@~tOW(`T(Z9V!1sz*U!aG*ja?9yDf>&FAH zq56B!`MsCPhje`?PrtFIIq035cb=pAyE8mA$%h;rjoa`X_+QHsWxpO3(sNg%vd?v2?tSnR3O-cM z!$(dN3tyfeGBzOxC1$+5J=ODo{)J>dWaYpHn~(#?&p-2Os=qnH!&Q~$9Y$%I&<70q z{p2ZBpM*-!p#c%-6)O!rO(FZAHG8A&sQ#uX1)gnHAy10hps(Z3UHt>q&xO^=?I4_^ z$L(^|@1vcLfJ$@X6nF{^kIehXtWBC__g#ALM5@0r%!7Ira=1LB3RdSS*Lp5WCmy8w zYg2?tE{8;YAM=+{nx>G0F36p-oa$%y@>Dq=($g<&pzAaT`e$ZuLr9>W)Tvlxlbma=GZsw@?JL7-Qc16tH867@*#(BW#nkMuU*+^KX-cWY^uM# zi z{e!UB@4b0Ga@b%0V2+3W%1=xa>L1Eb;2RMaTFA-5q%Dw_|B1MaE2deKMk3s6tsIyA z#KdnBhOU8SU3ot_6`eGuoB|KJm7ka#Pjb648Bgc^F{uKa&vGk2 zv7}LdD=>HvBkPk`9;tuB%S$AAzZ$WCQa=yjniLngpft&YeC(Ochm(s__18stfr|Y& zzhXc%$ra@Rc0Qb3?yARf0hYY-;pB48r1e`UaFl3+pn+Umt30TK7ufP~E5!2Kq!I1B z1ef=d3v~7C#d(oV`EhSU^&h&i(5KRqi?sE(^733hzgV&N%gT47v%E?D2%${u_%*ZVqwmrqyuEox>z>zkL`+SqSFuZXDP zif{`v%1^vQD~En^iCy!$tL@RpFTNMNZlsExq7J;Qc#_uxK#&)6mAtGRB(GG5Ioy4M z*CTP|CwNUv7W2A2KKzzJE1i6%#=JiCQ*-!FXnl}4MUQfl9 zAM+YJT{Z~ja>U`|Ly{|3fY)5Ah&4O#T4v3&D95LJRoa>tFHy;h{UopF!)8CptIO~c zyu#(hdi|?&;+IQCf!9q`u{*xVv$Zd2qntkD$#Q(%NL%w--el$=dA(`jFL}LV7%}s5 z5AQ7IHLvmZ@~_ywl2oxz+<{ktjR?K$?8|D0l9$!yB(HaqioejyBRe&7IaYMHZ1vKp z^}*|As)#z($L^F$N9*;0@)8n8(`!#S7ZuWpr|;PtkmFLVHL^Gmd;Ne)NZU-%*8YS^m$Zfk@e-s-DMK(}N}(3ijS;X**) zO%>x(4$z~rDthVAx;GTihonu=<9>W%DWLD6ij7?k&~oy`@Fhc=6k}+9>8=Hz+x4FT zfWDV1wkT-#48i3LZ_S{!Vhmk@6~R2T>&nhMkImcw=nksbyvv$v4E?3~Z0|A)epeTl z>kbw(b1r{5y-~D9`RAuW>?i2_H)f*q>5$()1f2y`u~~xyogLF0l`k#?NoSX+^!Yyu zCO<1vaU~r&dt*PQGxk=qP1LXWm^<+MsKV82rDGJ#ZfTCn*XnITP8?M@2`wl1>?fdG zJCzcsgt^&cP=op}q>52#2k1Re?c`NDv|NSY*aG^dunGFp8B>1+^!-#ZGVB1oUwIyR z4RS4)N))u`qh=HI4nLl?5uhI+&$}HC(EE3+Ika5QF`!d96LfXk@=1Vxkj6gR>;QdW ze9fWdqLTrAe2)ow%v<680R0e+eLm{|J;l=gJ6AY6Gm|T03cBJxbFMGjHa;HE*!J)e zIY1u*JCs-HW+s>K6!f^mx5k{0}sedqrS=tpVnQ)Ld& zag5C9zCe4KtIAe`^G7TJRFkH=CiS=Qe)|(2vpB zv{UynBf+qIm7HtSJW)X3WG?IUeR~c9G&X2G>(qUm)FXk{06L&)GqmR>bI(;iZ)Gc> zm(bWJoVt%wB5MwZR-X0R1?PUCaxcrh$u5)^hQe;Y$`gplJ)iu@O$2 z*)Z2&FQA{Gu}hN<(5Los&~%pDtd1NioMsf3$n{Kfu8(yeyaAw>lIJ6r1N0ed0o{^P zbOiL}=CZ!H;hIH&ev&+YMI4~dji~6W7u+t_=QXLg0{Z=Oli<}m%^wWtr)ca$PG)vN zgNj}{^vt-5E1*BinxLO5dvGS8m(kc%)*;u4J`RxVa($6Oo1uAEqc*d3>T=D1PSd#B z9tY@)4O1yS*O!JZxyGhR4IQj_kXJ#TrmZrIl!< zL!TQ_aYe4jcbK40&%Dly%+FKB6sO8{eXojMI<#&R7@9X1>s-&9Kk+<3zd$wbI1P~I z#MT^Iw+TXU>|NH-!=n#u59ltcdDrV8_}tu@L+ds{2#&4M8rr|k&fJi`2x!3DcAD1J zr_wC^vaF&lpog2wdU4avBLMvp)pR#GKqr$bdg*1Y+XRN@&n0xO_nWxI)qsAPYThFU z=vx~428|_y{KXVyz1D4l$TjwqYv^0Xzi|?vUjcN71N6LdbCS-2+d=C#K|q(eP0$_N zK6^Z%U!|J&8y%qAo7Ws#w+TXU?2p&EKE36*9RU3rpnDvk=SS8YTDJ)T8k_Mo^r>H- zxe(B=Qw_e$vA6I$vuh5m+XMlPo&Os8hzHwwY?hhCboA zO%i~9lWIO92WVbBm)Gi>6uIw&L+X01+XMmqO{WQZdD|P00s1XKcQ`=b-^a>j2d&!# z0gX>XbgpkccDJJd{WjHn+~@$EO64>Ce@uMrpmm!dpy#Je(07#8^Gx#{K=(L6KkQy} z==l*9m!bKi7oF>KS3JHypx>pMY^wwG;yzlqU9NSTAaac_Y&7&|yWI0JpfM!;#Onb4 zSXMDF-OO~GAfQifH$ksD?B)jn{T`sZ9H5u9tvR%A69hEA9n!h}`uDxB2lV??^J$X< z^b?Uaht_R^fW9_vf_|jo(y@U4fNDM?2k0lgeS==sWez9%YuzR=G=CMPb3N*>!_Efu z3P5)_KtI*Tp@JQ>ZW9DFKDyG-yI*x(3!p!wn$H^@pyf_Z&e7`4%nn+&2@K6&cxmWo z7B4v!&>sQ1#{pVyH(fJm-6ja=56!t=w{q+>Kz~d%U$ii{h`?yecMZW9Fbp;;633nw3ZI-oxRbe9A43rU9MtMszgZGwP~n+L<^ z&ZvDG(4SJxS4|GkatrjDLF+bwq4~4Byx@2NdHj!i{{`sJsHTUk(8dc$z4pbqmT&xC z>SKj_tyRdCS4`IRSEI^L&}r;7(dj>{|G}X1Iq0Mv=;-yZe}>MRRyz39P^)u8{I1!c z^99v>-Qqw;uaW&Tbl!?v)WNron$A{-4cQiSzNDIO3fA0=!qV$z{|ueCn=N$qO_}H% z@zKcnpz{^z^f;)a*V6tOI`6bw=)@u>I**P#jMV{^|F%2O(d%pf3?2DV22&EIJk^-> zpk^(O-aZs`zNVV*${gtEHMf6;PIua(&f!M$209(Dop2TCd_y%jw!tz9Gi*n%!~HXK zxdR=$cIW-9${|y9o|xOUJ0JF{xT3J|jjyKjLfHvV zgUZCt=s_tPPzn5@vPy<9c1uC!cWdccAkVzPV4>t7F=W zt((CwF%6K{>f0UpoehWNaB{r!RZl*uFlGLpKTikSjCPvw#Y>>`Gu8avV5MWcG5xwp zMPEI%{6xhH{f!kG#|3EUz0W_7p?@J?SwWMhpmE%hx>gTum+SB1DlWGt{27ym{&~>C zLjnCO`S8__r7tp|tshD_H}rPU-+Rr_d}NS@PR>}sdp%d;B%vmIXdIcKqOU&JM@7xy zL|NltBIU=q_6;xw1Ssou=kEI?pmXFK=yHJmA*G_P9@-|?H~~t<70`o>{shpC4XNV* z{ToiF>TrPmsa!>0J+xh}m!?%*0gdypwBSn`Pvm**?>HvQ$-;kbR?$m`exgyu70~N- zn4r&|nBZ4gf8b1~f^JKh8IHM7(N_3^OqC!?QIUw zIP^@#70^RkOwhqE9~}kgzsNVlp-Bn+)vcnJ4y`}d5YRXABV|p@7CwDjIs(~c2A~I!&*gG}9+X*Q=)jI?6<0vxz#CoG zdtUtC*?=C1b8tEwpvma?O3pQo)v-X2aG9V_eC^X-Ko7z(I}Hxd8yGE8>ChX-EYKsn zOwc!`PDjr*U|pPL*y8|QZZIzy8b>2qphw3{(6#rk_y*88&SZ3p1N0_g6}@C=oIs@F zin1QlV}ka)^35-RUXOfka)92vTtzP(dT2t$70@^{Qkz-h)PKQq!20AHn{kFH zhW6_ZNCmWqOwcE8KbkFk1M+#i4$vc_YYwfyc@)rj=<8a1d3_ z0lK1DMPDtn-KQPF@dj-HUEO4YK48zug8;n|`KntTpsQN@1fBnepTjamF*XZUtEghm z#plCn3;!sx$*q7cC!f#d09_MT@k`D%PN7wCMXvoFCg{=SCtL&Qjd3b%mjkq~j{_u| zvNnC`FQ9`BCg{r8^<37Q;DE5019V``bB*)HEV;%(V_NX7b{mle^rkp}tj7U5ycW>4 zhGHVuwJ{U)e z%**sSso)if7x8j+bY61U)7*g!C*KYo|9^Pl>_3$!!E5J45ijV~oA_=Xcx^$xog8?X zzC|_k!a36_?UMBhZe!)OTWc||Xzb%3r~VCIBgnUF#$GSe>_hWvZ(nm>+r?B|q1PTZ zpGW`Na?Fa{SKu|0e2v`>yma59dA*oaX_v0o_GuMY@Y*|Rr`ONN&fW^VMv-r?tOKuS z6Dl3eOV3+N=M`yD=?Px@rR;cJ`Q7e#4KQFd`S#5@@Un6c?SyGkTRN{DJ1o2=XY6=o zBTXUj8biMQop|Y$46T<{!_wOO1C2T(^g5{cI1IG+Q}_N0&F=sljCqjTK`%WW(!BJD zy=1-o4>Vi!ie-!RLVLe_>CC&qYb^Ow`5e*K!7FhZmIi6Sxy>Rxbh1b!p zB3@|kuYKhXd}KJFl6*%+9C%r^k-XNX{W_%F!fTqlh!^bZ4)?EDfY&(k9ouBj3n%`n zbc}MudE{ollFAWh%B#4-zM6`UodB=xH(UNDc#S9D^yU(HS>Gj=#%oH>!t2C{onEuQ zdu%j#Rgv$6R(oDJ5nZLD_0rol*{>vCIKNk=C-geGm>1eF@8nH*9E}5IPjcclC#KTT zy!0OJ(s>;gRp|*{r^br(021ryY3hm{#c+yb9_9mm{CsZw_}`n{vtjMO+c?5aWr^>uj5T=*;Zt%a45) zynN)t(Z!axf5yDSt{>9NH%c%5tro?E{TzAW)Ms@GUgs9~L!-{j?tes6J$U)acdkP} zRB#lHoOkGVF$S-KF@`g*c$0XuQ~DKpC9Z4UIFsq2O8}4vKbeemOu<%HhL8v z87SwENA*~EVK+tLu{onIY<%eRH@5??Ao&srdtP>WnbtiGUIG1zeD&psJv;eJl;frG zVqRxvcRqjpTJQ>y?~)D&UUqh`*JBM{1$Du>9H*6Ac;Tl7iuC%m<&9ZGc^n-k-{qb5 zy!_85R65K-_K(&vY)S1Ze%(N&C-l0iST8IGJYVDy-mzL)8oQ!ZB7A+j%3HP*`s4<|Yi@D7igN5|>pu;=w#1S6PVH*n z`fdIN7ezwxQf~fV4e#upTgpeDfOZdD*qA1xKd|Uidu>g{OE?L0c=! zvAIEo6MD55w-cksyZ3l$0x#J&kneVfcEWaDt}U(7HuNf3tK<4uShkYasRTCy3)+f!;TXP$&RFpQcx^+zj&28D)-jFH3%~JZ*1^%f z3dR^xuQRQB-QQ)$>+KcuPXn)Q@xvD74!r*9_Uml7%9F4!{DekfyIS#mQ>XW`XTWPa z{KSS+J7G8e8k16K8+KoCWV3TQwj@+s!Ruk0cH-{LnGgPP4|r`)zC}*$gxxsDI@gu$ zSMfNSf8$GWFzg<`zoz^Iuf!{#m+fGa~ z`a**je&@u(Ye{kYF3s+wtFi3|>2tZ<&ML2e(hFbTqHpZnK|kC-mDv#mj!)ae+~`g4eU&V!a-1 z`?9hh&ue!k-!sh)dRaLL`!c&IFzy>_d4=}mT8uY$ERQH}|h(pvC(F;S!!>f?YFv#=q2z^>%$>T=M_ zhF8IuU+QI@gG;@vZHKgbeLkh&^-60ouQ{3LCoaRhe86txdpYC4>!O6ppVmvS`DwkZ z<21>uU~N|Db%|T0CwRTyVaMyFlQ;SsymlwwYrPJL9?H1zw~#+MmYxb zSGFRq;B{$I#TC4k+l*HqZTs=q={tj0BYtejp+5f8?H7K}$-?XHY_VRCW~Qbt_zb-E zz|TH;9rV)kc0;d%H4@oQSoxF0 z54>7lHskxkpI?x?TH7tW@KaZX;|bqunW<0R_X2qBMZOOl)=ls`Xeyo6^Rl*8QZMUz zy5x0bk4jJ2*C*~`UT@^?Pj2!RcvUqy@c>UIs8 zl|CQ5_9fq!NqhUUtB?3iXO*_r3;jm^QoQ)r;mm%b90U3@6v6A8_F`Ti#E-w+eG+)> zN4~Fn9C$r|T*^!2xs%5^);cQ7(K_ZAk|jIZqEJV{`k>mhjzlWo?!5@ zoj+RVijMYWIucy)`Z-)&jwtHZtsexh$@o$87W;Ax>T#UGD`*}2$ab}_@jDF1xUQ@_l=G1TNeLk9( zekW$|!f#iaHI%%pbwTpd9~lW=1ImkdVIA}KVPQ^`NrY2KmVe;K??dn(ya)<-?AVn4yFU`!_Ux;|;)Rh};5HF|LB(V_p|0K5*x z4~3G0eOcQCF@N-Tg;m;`mv!DGd0G2%$?Jx!iYxTmG*`sSKPa|j@E5m(*J1d{(uh4T z(|#I5FZ>d&O55P&Uzjob$#S%g(d8$lWt?+xNli2=WhivM;-J6TO#3>t(kNV8;sw zE$1(x*Qnxot$(AQo$LK+t<+M8()hK2Ct*Y?}^&$ zWqN-v@{Cd-)3;LWC)){|`D5U;9>qcHwOd;G30_sPB3|gX&)$CFzrpKh@{ez~=Vcnl zXk!P)!bq!J0 zN9&wYwi7p#MXx}rNH2^FUueE;0C*iset*thFaNtn`)ufiU)@$|8@vMRCCq-3*E=q= zpX4<%qx^(kVH>;mgfrXDpABBq$RBdxh2NM~>1bZoK0vl#Htj@EuhomVTpxq_yD-6P zVzJ$0UVA|0DZG#GIPy<$vU|Jn{TNH#lXkDyO_>AhWxg~o{eht1RbSi>ZPZoXT;AFW zUen26@6Zp~tz-KCiYQFRlf15un*BsM;@8W~e$wvs2g!oh*0$rX6WmX2$ zmvyWq`XST10nJPApHh0^SJB-?yzuMa%1`jxuA#{8{h{vb-#Pg@@H(FS+a~Po-n1`W zltm}oh;{5B^|G$}2)+DI#T5q;x0&P4!@u$pyduT@qkls9sCm183tlIXe+P&DF`$3u z%;04=Pc!{Yo1s_1F&VNx-fGor=WLN)SpOO`Zwp=rI1xXb?sd>h?}OF6tYaEkAFXT8 z(!TVVM(c%fm02(RM0?@7oPVoWVAhYl;57q3;U2c$QhB^wLW_A3B-*d$-x^ zRWRO@<3j7&pe#rI^OssLoAHRZ{;A{FPnZSxP4mT8N5s%da|G7 zwYjw%rxe>get!7%sWXRz*Qw;6;$Zhd{hmprE!r==rp$g)FFnuEymVV-@G>1rAoMz< zxF7QG&~ZcSPxph@Y2-h|sUNy1Vb($FWt~$>UV6T&dFi>L=Cv}c(i6N6FRqVRFMMk0 z)Zf7Cbn+kOP#^8ag|_{Wp5H583ZMTscm)G-*GiiWdd+!L*v!on94A@H)n(otRR->hhO)oO34mkM6Xuk9Om)fc~jVgO};s zT7#F}d-vd7?G|3gbr!V~7~lW(+DSKq*IDF0uFQd#?*B!eh286Sbq22j4Mjg>tJghb z;nmb##LGV|b>Lx5-+|ZJ;ElbM#3A!oHfL#k`JAzB}`(2f^zc@}J^h_x?xX zDt{tvF2@2}a%}HSwxoGsVJUwJUZ-~y@xppx$i0&Hb(~B7(|R5BYB1`L!7Hfi6#GeD zR-2RdHO(4V=yh+x!t2c9ehBt;_msm}uk*-%mXqD<`JU!w?F%I@J$~VEf|qT5)Mugy zz0OG&>E)l{{bukL{{pY`$$t(x=+#$Vdc3!KUi#D$!RvzZB3@|k!&8R83tktH|NNK( zFS~VLT^2?;+N}Gk^5Xx6)}kC2#Ff9`l_=)rKP|KW=a(D>UNgymp%br#F_n%;o9(`! zZ<6Jx+a*JOlH&Frc7JnaEDc^4lKHh0k@Vbcntr>g0Oy7ZPUe>v;>}j;dO0S5igYEAxqy{0bZAof3`!rYO9x3o6^d0blAe{`r>gk z_SII-I(QfGx|ICaJB*_X_6P~R3cjTiyaIP-6`r;)>s}(+Z{KgV`#HUKdbOuKhl1B- zy!v9J_u<<7r+CTxPD4mu`22ePNhYG@iIR{oIOQHUh89$)9u>PuRWhu6#bgO`Z*SyAJUb8c^8o%Z7*A?XdSDU?Fw&Mxw`lKjFzx5r6;1$#y zL|qo`>WHX?*X=g##KrLyJ00^Pc(s!MHive?_S^#Nz6i;yc>jdL=l?Y?J-=eTw)`t6 z^m@6CJewxv@0G)^W!?tU!0Sp1KG{ZFPU%1jlPTDZu7~`UF>>!8q2O~VxW>L7rqB+( z6lAH$Uz4IxBul|B8{qQ2+Cib6+9~*1H@oiZqR=iW3VxDg*SlpD+AWRey>R(`h_?sQ ze4~Y32j(cWXB!2-im~fNgxm-5-fa*e-4vP(%mYwO$Ui-UzwqoM7rXXqqR>H&6#Sr@ zT{o3e=-@I6zL$i{_hv7JVhIWz!q0pU$0#%v&)&*$$PM6sXd_h|$~p3H)<|3WJ1G?R zvg-(79SJ^1ML6F34fv~xMqMD#Zv?Z)kiXYODgzPnm}VOGk#N-!P5hyqJV!ThJn*l* zwU>gg^>CUE2zio=hP?$@$xpxwhLLyTkiWE1=oB|}XFUJ@S(-2vTn=uAt73YJLZ`M+ zu&0GX-q=f_)4D16W;Z|cdnt4}6t3YkJwY%&(?ucb;*dKwQ|PQXRXoJ#W0%LN_D3*3 z&Bf1JkV;E8Lbt=^-xErlgEXIW^Rv4;D6l6mXC^t`%US%@Nx}C!`PnW>3SEe}=X9{^ zOdwx`kQZmz^)$F#0(Dp9*!4pvg)VjDIp@LmNQ^?41O1XXyCx#e6;TR)9Anq^aSFAz zA#^#rrXcmJkV>`%F3$!;p{t`5I*(QIbh{`ttAj#Urs4A6(nz6eauobjFgqkip=%q! zC4y&TGhGyFYsPb-L^MsI>(Uhb!i8tP19~Wg@2W!AG_dPJ#JLeW0nX@V*LB?#x(mMv zxkU`FnpH#-W^~Z7EHm?0cF`96vsXWfH19}K=YLCCL4B1}^vUNagMn zxkb5Gyxj>`mfYKL-rWrm3f)sqV=rMm&oS(ZkbjpPT>jA+xSGlL1&8#H0Kz@(6j;h> z`hF~@&;uz7q*HK(?#<#E+K$_pOQ-`mx;I6kbsE^Upci+V0*kWjT1XW7cY*>-m}h7q zp551tRNC2fKX@)g$YZ_idLRp*4hjtjv+Kbw++Z*$&8~;=>>;3c61!5J6xcP1G&|Y# zZy={yDKu21xd^#k)JnlWgzI78J)EY{BZB9nZu|wG#pN7taTD$as<=YnJ(fW}5Vs-2 z&z3aec9r4kSGE~d_LJT8`*HHz)!2`QeE=F|>rVZA)K3(AsGQ}1n_D~24;j(0SwjwL z+GLj>sQwmw@bn{~Maas54K^VM-aR{cJk{SEVL9?4J$J}X&zk0dBf3_eLG|eHAY(pc z#Y#E+vWDzG;-!_}QvFR)mS2TDDQbhhPITfG1E_v(jEha7KW>+!e(@Pq8&dt8ILog> zj?CJmS$5g;OK+z78^c^|3SCHEe=CH3406kULKu1dhi*3Xyq`3$`gsV~(UbR+jl`tN z1UD3UKiR}g8qvHLo`K{t05 zyffU@2?+etuWTK4j8|n$d*+v5(dQ{Y?m~ml$AsGEBf^5|*6YsrB!slDrr>|tt!W#d z#McP=oR;XGQ7GJJs&2_5ih)Iu7AFcw@}Zb z;0tKX&3QI>9hg(;7`)I6tIOc!_qok}a)?%tC&6oaMuii+UUC)j8uN8zz*T?T1zy)s z@Wr?Tuf3X7I+~X(TK3nxZYnp2lX|_`YxWaEM~niLpWyYftTmQ$T-H@p--dpAz-$V> z>~-L^K|-aodR|strCwHD1uu*_RC>&d>p6(7Bd^ueyuqh$Kzs$#m|5 z@$kS!CCPrbLr7Iq*kAayaX49{l;3TQ98T6e_7gIpFVp7${ygvKAn3GVXoG>5*_zaO z-2Q<^Zc2x4Fyabm474=#kdOAe7|_>Y{1vl@#$bwB^Hn;urY)c`I@8dJinD$I^z{_X zG}%Mvo3%B9Hqn;QEhgw2&lr~i^bHsNP-#9?e!Du&UpKA<<*ErW0Jgc|@`Yp4W{kP^MG!p~n zQt)k;Jv2t!D*9@3o$vlQEQgboOSc^Y8q+A9>qXwZZUXd8m|Zp4Lz|lX)k5ccV=J_7 zss%LWR~q`pV<$n+0ZB}|V)oFORrD#>w$Qrg5YU)d=Am)UK85#R7tl9jzS-gc-SU5y z^&Kg0&E&Ymnrq#m3uw#^b*_hrK#t8RN}Ou$t1)t0p_^e#yiS3qNitf60irT!T}&%?wyXAh0}or+#EH0I$du7Jj* zP($yL{Ry4}Zl&OdE(hqRjk;MfG^U;wXsi-w=ojWrI1SLZVez2B0s0YCe0h}&jkO3B zSL7NKTn+u}`Aa7P`gY8FTO6P#!hY8f8q;VMS3qO_tfA+$51a~Uj7YOd2k0q=m6n`q z%+f8;SnAQx8!Xo z4$#+i_X*mzzt-b*0ga`&!ewwAANP`X>J)Ie7fW?XD+e{l%1@)22WMZrHn5pvDV{1E z5Ae;Gh}+CvogV%OUjJ<<;)P>{+rL~M1FsGWe&aC5G7W_^FFhz^Kc17CFZOfhbq7pP zUV_)RU7|xr+b>0o_&_g%QOiSynbye;#F~2_>!Kn=ynD?NWouH4!rbm)!=37;7jIZS_lxl za*-llI3^_N9)2ZwJw(Bktq#2OY)$jhgG|MXSN~P{u%BG>&~qLUm)kGTG1hX#qH$5X zI;(8_{5yHu2DJJuYR?PrCCqrDJ{EA`_KVm4&EW*Eg0(lf7Bf1d!U?@r6_+E9nGEec z|9kNIHwFK6D93`fO7ha3x7JH{ZAveN&;J{G;hli;7rg$C7U_lUgS)JALK?glQSh&V zzR+mDZ0rl~!&KS^FT9g8`^j>&)(@$do*yx*jxe#ovIO>-lo91F_KS+9q(%!x0- z3okee^$L|mKD+Jv9l+}`3a#5~-%gn7k5P^VeUs43W{q2-%YQ{&(Vpnl5W#ExY!NSP zbNTVy*?)o;UT&@Lb>P*M;K5 zE3bm_w&Z2=&dD@o7rgN5x3E5rT;6clTNlp;uP5?iGB z&kGG+w&MxC&LDV=D%LAh-aBt7{RUpkD1=|gv*lI5LA3V;ZLQ!{FjjQ5FYLBZc@n(b z#daUsG@X3q&FD!c%)<^uT!z1;-oey5mQmDGoUa$Oi04_^|m#I!Ey;NDN zaLmhmiMXtn=^csSwq)=MJ?d8B z1g}u8h!>9AyZE^wTS2e?P$(3!=Vh87i?q@DkST5UlkLP_O$yK8RWSCE;qD18@vkYs3^yRvXyqPUkM3b*gRBd_aR@;FGt+H33zp3bCJuw91F&# za-OCa)HN?_UnqDLuAQ;nWB-!Mli;;YM=`IE`@CI_`X0Pqq|nyA_Pp%+?SeU_urKV- zQh0`anK-bY)N5i&g=1b@e%eqr2)jRDZo^)$hWsCut@025kna2++r;G`zQ-ZHcNf);5zi{i;UA`v`*-lO zs!rUkH15|7y8N;sld;9%mOm_#g3ShDQ7$p4CRFw$_a_TliUB9R3L! zkwfOFb^_9z(2C~*VPY5j(=_7Oa(-4H!Cg+Z6NPJ16#i}+@pGD=HFV%^!Sf`$w(5j` zhC*M6klP^6)>&)>6d|`mD%+J)=(7Ze+&)EHybRVKW!SX?wtPmsh+oF89kaB>cX0}R z(#x)0BDfJR%gsdXu8p|y+H>y+yLLlPcWXjX2$dS$G{%e1vrZPSgQ7HXNi4r{wD#z@ z*f?5yjF;mb3xpM2R68xjE`0u0J1s-un+2EY%~U%*LZPqP_*qjLcN>Kh&FnfMj2mVl zwyoBl7!%u8eZvLbSxr<|;igbej6wfDA|HgeW>B*aF}@WujtK`YfR zh|!2Hk)!+4RC^yvY*WE=AuRHhRvPhAobm35y7zZccypoW1E?9V_R@%Dt^5o-B5NPa zQdn%rtbM45M!XJ7f3%CA{ksu2tj^WIu0^o^Oo~Q4=4IEzaok}F56`gckp>#EJWL~A z>tNTT(DKnn3Xf=F*WzXx@n#$161yHlNj{dK@F+LCI>GU+UK;U6E4!AUY?mY{JX+-M z@pc;VPL#rKk)x#%s$E)6;juj&^2tuztrYeo*tHCLE-Rz(IKeaBLAB`?3Xd1eo^ey{ z)4de-3NFtg-m{2@F%RPX2l4)cc>Wl>o^Qh)C*P9-;e{TWa77bBcJZ^9Be;PcBzC=$ z#N9--ueP)6)g10F@*mpBuGc$gi&bqD4kg+3MjAKLeN*7QnZRFB3fFr1*;_rh!RPH> zcD>Vx8(Pkf8(iZnk(n%g$8>$7g$9aQ^ymR(;&aF-*r;E7`{ zYrljN+x76Xo;dC>g?AOtzCp-u$|)Ra)RMs{Of_#&xIo*{_KAEAp|joLwuM zaYrb;pq*X04DNOc@0(`V?-AU{!yjRG{gI-&fxQ$yKs;OJrP@Dp6rSwnXIS^F{R`>- zE>ihBOWs%`g)dLySzW(I+%5_q*u<`NqPU^iB92$rzZG|k!UyHpHJ}}LGmZJZm0g3} zGyy37qeLp}mD2>&$ncfIg>{{}^?-f|=b>%`xYo~6)dR$?!7* zAsHHZ2-?W3NTnQH%H34Av5P})+(;u2LjK~Mzq(BjXA>~HN5tC{schOx;iIGcZ1XVg zG75iQ&aR=2xLp)JCd;m2aoi}e--OH6O?9pg3QrTMY=P&)GZg+-D1q(fbt6zl(}fZv z(^NOIjl!RZJd7@EhuG05L&`P_3s9xc}k95Rk+6k{p2{iybZXCwiwdRuIet_Nea)5va2S8yPbx8(!ef1 z(0xEZPcRFV(a0OS$k!lJ2{utJ_P2&lFXND5H`RrDsdmG(aAj%aWhn}uA+)Z;v)Wz? z-yoh%aMQ@EVIgM;yoqtDn;52WTPMfcGC?CxC!mWw)TgPgzKv?jQ~YdFl15Gkmvdt5 zYJj>JMaa(u>bB|@p9>88)Wy%X#wcNCGg512*EWcEFl^$}2)njL-nVN&ydLqanMNLf zpR_()#EW3O(A+|GywHe$QMP+DQQc1M?Aj?ub$cQ1E^&74(g~j~3O~`nuHAsOTZHO% zPqJ(G9^81ohe&geBu!j^RQ4+8XM5qV!x4J#4tDM1qPin73wtiiu6=XxN8G)-*cDCU zhJ`#OSWkw}{wTkv8~ND*h&LHM%};{ofsIsmpo_x)iSo09;_y$$n(hFV#)&WLFdX zr}vCP_GK< z8&4`^+438AxR2`JY~W0CNNjNTZ6p_8kf!g2q!IG1GamUb)ngMP8a$QeY`J`dkfEw} z6>{B)w>8hA`Vrl13i*)!7%6m9$U#qj{^|^>-vTo2<5D4KhHXL)+@|;VR}m6Y?37a> z&yCuI9B|*(r)@^{!y)LA4T|T{S(}jkciHoZ)2QCn!ltLv^u=vLu5)4=e#5PPSO*)v zN^>8(ko}tGe|Heo5A9^b$cG#^#?aH0_p(inyM86rZ;rh0k<5p5_`Kx6&W%12pO;{e z#v%D5gdgMt)B1tOpogB@bC~$N1cSSLNQci$9_jV1Cq6I1pirf0|9Q#%gQ!k?UV_17 zKBU9vCEK>m{!n~gf+492d6H2^rVnP;nd;i8QhZ*5p{zo;|Geb2%Y(DU=Oq{dtC04e zmpnJ5f0g*W1jFilNZEANuZUA!q&)8@8%6%S1PvqmVNNO=?MWM>@d-BN{bUDF-;m`_ zAnzx;kNOY7+=b-*WP?$^yn*Usz3hk5kzMnojSy}*@gh`vDTe;1h_xpdmeF=CJ#nyI!Bpg67ib%)+ z85YT)Kqj+BMIHCZW<A2~vGn0S=c8hP^Zg+pxc z2*Y{cr$b_L9#Hj_18t}q`uOlBqwG<0P;=t28$41OW#tq$oEF6mPT4>{u7x|*QqGM^ zpALz^L!F^dhuGlZ(a4jJmZACv$~iY*$%%*0P}>^H$#cuRB+CA{TwI#w_=x^@me0+& zZ3mwJm*Yvlme&ASoPVv7)E+aI0c4h3ZxU-NSPU@diM5NIK56DWv8IBB0dt;MyTI~* z$`flUD;iqx%6>nucE*<-!0ThmUg1rE*FacY{?KRSn%zG0!s4Ov6TDVc+wt07J%QK8 zKB4SYczS-vt&02)d*z6>Vd2Di`JxI$@LE%9$7@&*??K@8DP^y&OMsW((msi`V<2v8 z!K*H6$Los|s?glYD=2$yMFPA+5mo2J?G=vOTJZX^*p62q_oU6>g+9NoJON(075mTY zn7FM4uMHI~c;S@=&nBNf7ra(d_E(J#ypBsVbCB2L@iz840fv`9wxPTpPqgI8>yaM< zl|_DOY8R^ zS~rY<#?qv&^@56@*8zGBRxF#1dvWN?6tXmKAsbhY^L%3O2G@N@Kx0KwLw73wJ{QoR zQ})(oT`vxOd6B}_2A8)dE3~|gsXW=%h1II8fX1SvhK?<|dNH8aVyzOZYVWv}WUHh& z^c7y6sk+&|Lf;fuD4?qEFY#L6oUh6X=DZ8=I9@?0^ zDMKbUnrYe+y4D2!*aw$P1@u=~Id{6a?yqTSaJwEZ=bVb7Y->3;ace zRSoZ+1n7Fo-ig0=+=`@WNRg9#K9M-IrY)fVNH?{0UGjbJ0{UypZgLvU9x?IR+h``A zO%z4h){n+G%|8LXtI`C$WY54m0KJK_vA}9y>)BFG=Xh@REqPlzUDx_4FL7wO`Vxmuj+&r9c;Y-ZcmsLcR67`4KQJW@EtiNC zG;iSPZuXz{UAdcmN8XeI2k7TYxG4WLbe>yesJv3A$?&{tCC5FS_Xjofj9=zm0qAYy zO>J<1e!fZ-PaOJ%_`P00WBXA<4{H6~MS$K;UUI7Si?#a?y&z4M70}q-)X;0Ee1Usn z^7rIzSL0CY1r4fr;qSMXc;e8nRjRTA z8avAx`uoB;eE^NEoI{*yUG)zxuEpp`^2gA;O|PLJn(#c&Qhr8ux;NtIGxrZ#j|l?0 zulc(EqVTy#0lf!qO%B(!vFW;h(0WV|&~TR0ZGFwD@7DtQZ}Mh2T-V0V@cu#TF+o7X zGfP9CQJwO3Qc?=;rTrYPYh(L*|Dg4lAfana(Ekk`emS69!2_(pzOCUf#<2X;*R|b~ zrro;P@`xyie*`o<&~&XAJkk>@!zr!dnC8&U-~p?+(LfRu-5wVO3stJpiGk~%2kDr#_$O-UzJorz z8PG)DP`U&3`Z)8%YyDNd1v*@!pwYuOmhBz~=yvdmtZ;zd7%%PwEql1#b^Ud^1^SqD z6Lg!R+kXUfd$?!jIzVswp9Xh^*0hDe;pS-=9JPKSw~H6h9pL?0;{d(6PBBls)|$3} zhEJ)6_79x?DxeR7t7(A)^f!_Hht{+OG@Mj*H@kVsK@S1?VDg?o4$xc6{ulJzQXb8u zp9jmbb>wK)5LIObbi{md9h1MU4WK)c_e7^|wk@KHYlH9WGS2o2RaQWsRIh4{wqAAF zZHEH-5P0539BTbTR26rEmfcKxd$6po^^aC)`0VPo{%Pqcj{!OjuDnj&tnq)2W)j-Y z;J?NjOVk=J$hxg(7SA06=tIeSYN11|?b>=@4XztYLN}VA|J}Z_7|@52_w+Oe=-=Ee z4Q{<@%5G-2r>SWR=rdvp8g2dhh5=mbPVlQPcYxlxj|R7c){P~ghZLKjGoNU@8_6w zphvh>tk6C{KmsN%ZT`wE?0uF5hryGLs1GiRK50ie5)_dJJgW;jQ(3Jq=3 z%?!s%B`0p0h65(&iCQBFLPPf*csrKtQo18H!s#Kmy-hdU*IIXomt|;MBIdlgg*;2K(vi0m8#)LqQDsFVj46rJX_Y?6_wY5K<0kKg4(*R|n-w3{rHiN4bTGrZTZthF7UT{(KFmvYC>n{X! zFNDz4J3t?rw{Nw!8Q~C-qsj_{Uz~5M^{2D{gR?2U5usD$0Np8WG;Q#GZR^fn3-l%R zCg@AHY~o(uhrE|M+|3Xnq>3jF-6g8ZidrL(NVj#{4~EqN`bfkVl{(Zq9Rl)~ICO?8 zDuQP=)MSFYIeaXZ!DjFbynig-KrI~s5Qc%bgjqGm1%&^B5$F?Fyre1 z0r^WDI@6=d3TR+y=%3tIz6fX!d9QHlX6|}bTtnMjTy{57U!RyNE1<86KNeu-(q-Zr z?&19q1?F%MH+=P3MdHw!wt&7Ss%njK{m3a_rUUvY@?Kr;(9NsCsRAB*q zZTub%=%0FA+XK)?BZkf4!Pkgd*jufgp*3xW=6E;V)*07z9uDaKy{}_~FWH2w$ z1n_Q$W<51-FFi%m_R=oK3EK;=k5G0LyzXonD*<~QJ9*4p@CuUmj%o*c>1AEb%gQyO zb~LT&3tp4U?CkaVsb$l_D};#fW_>(vFFm=B^Flbds&m5jGCfoZUWgjE>0cktfB!P@ z3L~oAffvGv%^YOEw{lI$UOxToC3xM}vK?_fCJ*}hXzmQ<%+afziMOL3b_Fj)k2mLqe*fmlQ#yjz zv4}2jHaCj*uLI3X--!gTSu*t19J7b_4wr5Hd=YpZN8VX!_Vz+3ddvRx53WbN#6am2 zydJJ?VK490^0}j@djd)7EwSh2J1$;7-S72It?Kvt&P#983SLhZ+VT2*R2rH)(F`F9U?ehIuzB5y^5y}j@{DKnnvUpDt4evOG)&XE^hsG{TquNUfC@WMDTySzV~ zhEq-^?+b1RUb`YnPuyO3!IU{KvGG2VrpgLl3+h|&!uz&cM~~tA&?)3y;4rQ>^H7rZ zI=M;d*6k?Ykihwz=V&jyMnjbqyk2&<;MMDw*!a{z=)x(d;w>@}dwZEy=d``7Z7aqJ zygEkV?VXoiDHgn5wV6lX9)0MeVMD>|G`zdZvJvGHp{uHr9vAvmx3 z^@#T>t|=bNTMws`w<^zpm)-bf9cv}8wJpX~yhy27aS(Mv3-Sw4RG#34cce7u)uXTb zu$RAB2wrF49V!J5yyQD0SeLffkV2(9Zm(wEQ{2B)e1E*G;FVvd$_ie1vr2Pb-EWVc z{M3u=)q!`IEQ#9l!ppOio;WYOLd%>d?WH}lSkAfMk5EPBS{vT+(t_8_+BOsSd<$M@ z;vF!B4!pGgo93k*)8h8RYr7Pn;zc>7dFDJ3bBx!_s61gWykDj{FK?A6Jb(7Z;5C@M z@0Ho}@{P3WhV{ty-2~S60yx|2+^B_Djm`aWX6>3eYde6~5b`c_xIf}0gi4RLS14l6 zljFoF^eFk$_Oiz0OM9JHt>lEgmY24$SLXK8tig@=%wEb+@_tljZ!f$|OzF|QHszc1 zWdGV&Z_X3_9xo{~=gHV{y_YL^ebRD%@BOIc&cPM^!D|?KKXKxw1CY^-V51FRv>VHLvK{qeW4s-G zePWifMO>%f+$vA-TGO)MAN@m8)eSpt2d}fpyV|MW+s$+I;lg4k8*hWEweR=MoUP@2!fw2``Up#V4R2B$M4gzIFWR8;1g{M?{rq_?bs)#3(N7IUyf(all@+Mln7pU>s#}2 z72h!kbUTe*{LaB!;hg3ZdcLH2>3f{!bz!-ggS3~`hO&R@ofE-pOIizFy`QK!bK-Ko z4~@hd@VpN8()TmXOW#Z4ymDS|$t&m0h?%S8rMJ)oFSKfNdmS~mXhuzs-@xl!@_y?y zPF!qliz>d>ZQl8USE!jeNPFqAUDQeRuS??k1h4Ha=d0eYss}`$o&a8>$h*zyzJ0v4 z&dkfFul2aS@FKewymD-=N7K%>;Ppex`y;+v(=@Lr8NANJ8wpDs+R?6m>1#^!vd+__ zy@sWmxyp9bn}UMZ&&4g;5#M1sC*!Za;8j50#%c#%Rt|EUuyT;&y?l=u^I)!$m-YEX z^7?mtej<47C~Lv1_w2H3woUm6yv`@@uTJBH-8|YlKbE|7zfruDtrS#_osFL>>2 z$;-PludL+Md%)`g^6sp%w^z;q?q7HfvW3?l^)2j$=d`h_-~J4|{zcwhN%p+(LO`X5 z?I7FH+Ha)2_VxKu?{^D(?XGUY%iCBUn7`ExUZcson;dxAwWIafN8TT;Z7chiwQWT^ zn%-^2ymDF)I3B%ls2{660!NeC!asQd^D_J-q3q zA6It*uZt)r)rptZqwQsFTgP^6wuUI%aebBID|odlZPAW7sd-B$KH3VrqLkCl>AA!D zY%ThIGd#(wPnyD0?WofHf81UZQZ{tRAYDd(UD`~HO&2P-{s zd*OA(<~-(Q{_T~Q&s(o#1+TQ0^Fr`?cGge5!0TelIi$&fmvs+8+RM78pBOK_rz&`1 z`LOwX!n?Zo^Q(S79K0@}oK8;Tm-V?&^0Ky>Y{z|FkABK)u~(Ot^Fr@m4R6qYg5Y&2 z>>Y|P2`)8p@jTH%JEl3{!X~@l7ASq3?uTr5aHBtoEwgFrwE<->Eu5P zuWg-I%ID6G;V&O$1^S34@{gz?-$UrGD9r)$rkuu;kQy{JF`uu8C9kL24S>c4``@ zrlSti)5&+AuwW^4mKIX>XQB=>swk^}o$=~c{{z+Hz3aXWxm@l+@O%(`P`sPlKa0pe zvyS|;gv}l*Apb)i^34!-DXSuXSqb?cj&Zq%!R+B`@;y+;sYku|Q!ixoKbD48gKfqO zEpvhJMicd1mClmoG4d}fKx>NnJzhhB255Oi=zJDBpRK0eo$6WgIiQ#4lYd?kr{=-x zXEfpkBpyyZ-$4Gi!DYVCIlqvyK6R6SL4?mOD2Fssl@*+Ni6E6rzL$zP^>QKpa>@US zK!2qk(s)_!D{embs+;@^!C;Z7?V>Vhs3YIPT0Zw$6aH$*zgS2vE`o+i@+~UobFWw8 zFNQh_OT6iUhC&)}Mh%~P3tt*(tfB$KiaE8U7&&knZePZ!x2wp%5?{E;Cr&NJxg~it zV1&^5E_g0Q>f8c8_a0L3=F))k8aefT338CSK-BL8q~0%}0T)L2+%lv-C?MbBG)~nZ zRZ~FOUp8>+!*cS^MUR{&&V5vi+C<3zv0(ObK910{Uaw+FtPc7=sUZJ~d`_)M#~;ca zB6zO!l7DtR`QFUqbDx#ruaNw!YdN(hia)$8_!F5T@_$}V{#N8w`{xFf-4G?;Dxq^@9r-tc+1CR7YoxwLKU*DT zgs-7*Gg_Lb@#Oy|o%~xG$eS!uTdK+bQ8{^AmGHT5aqc+}N+fZrp#*;gl#^V?scl{g z9$jO+Ki$6_ZGiWu%a<+tzb_YWp!aX~u;foD_frA+8%2$NCLDp!uQ5LND<6T`E^%&0 zHTm&nV*k&@d~RnW{?O-l3%sT(@;5yg@KvEUX1zM%!r~xR99%x;KKa|C{ZINnIhrbF6B-d~X zF6;rk>Lt+H&8gIK`~jIKo<~vdt~KIj%kSn+%ZtAiJ-Ke#`4pOt>MVmX#T+$rkDT^d zB~!nD@UgKJnuh9rpd@>@^4jQ3>9A?|m5}su=Qecqeoa0SSal{}7>L|Yq5F#XqEM2- zbQ_&*0#n`(P-rT6zN;jA%__H%Y`uQ{tl<>87d)53n4(6#!%a4lt-h(a`Z-AE@uh4? z_WaDQ?n$FAt~ioHQ^4~rm|f`fme(tt-tGD=^EB_!%PDkr9r@q%uq57V?ZqsSr>m&D zNiy}ABPvg#P(B)Vv1lZg+!(KsNirpA${}|`5}jpHnbH}tlT3bmue;GMh{)_ z429B&{4uwZ6qg!*M*x?bktaWo!e0!)4WIMCQons2gMyM114yW|hX)ZuP7XMs8EHJ| z7;cA@GkZ`Yy2iTsb( z7;^ee@R(9?9`wlxN2mjaqZx{yezQD=Q=_bYvpl9hMxK6qJ*Hk0(G;f`x-ui*!nSAM#xr{HyV znjNp7I$k;kysjkgxg`#~&Wt4rFVukujy` z!0k)BF?Ac;M5}qdq_F5kOyqSD1LLmWV^2UnUD1Fog^wuVBvC&~ijjc@p~aD5v=+ zpz+M8p*vNaHx|&>;sp;*wZ1Y>7TzD|Yl~G`0gXpe4SjBpg?j*9MBd|S9BN%uqKb#cHtmXjwgo;dU!6mF697GdeD~l9-u7D8T_tg7O;#_bYy6r|7+-@MtA-S(38kFy~qJtJ`wC6w0y$gvZB^l zt<=!hZ@qOQpl`(@rqht}V0=W{d#&vZK8qNZe*zkdp&I(5b(7Zv8gug*g$}iTs6ZC} zUk0~>E~`>y1@r@TCg@=!_?yTnw_ypk$pQM||JlRk9L^5`NGp06J$^{CpJX+=1&cIVqrXC;7^nHB8((&srMhpVN`g^Km*@P1n{b z9Q@lUpmP@%*~=ZQBbNxc_YhEAR9dzy?-{VmSI(ix7z|fJ4i*Y(nG??g|*z3hVL1zm2 zo+Jl4FBfuA{v8-Pa#fV|iLU%qsfkX*w&YsSxtDxTRXWgl)y+lucVOtqJJ5N}GQCY~+_Af|78fxU{s}s`$?9>Z=g7BQpmQJjD%=iqUaype z50rJ}0(zXzJac0u?V33Vbf%H-xjF|ra;2V&C*D|cHCC0CUytdAuS<62M zo$2Iz9v8cLY8)STp(~DjT|^Sdfigc zfe(bX&hC!qZv~zE;Tqv|q03F314lnZE)g1f&;2(!x6II0%hh9Uftbm5cg@*Qzxb$^E zKMF^TS_kO5h$@~q^x6hhRzR7OE!9e&paWMN!xEs=P>>%3opN~S zG`rU0bmSg6t2i)pboB(CbzVgWL(fH94(EN5$I16asnt61?$}@%n4O0nyY&<40>D*~ z(9)m8yuFJTo6OCf_Zv7oLB20r-a4Ph#Q=|=Jl4TKHi>XR_Um;x&U-mN3DuH*o zUPVrv*Ux0JS3_P4d*OvX=RR>h%$o8H`Mzz|$K&m&Zx#oJ*RS!xOxSCCOM8J=ztCxI z!0TD^ZL4%>M}6zoyz~&CxV?5%TkQ2?Q44$FMIEd)Ih4}sSUyU;P?dU(G z5 zycQz7sL+8|S^T;dx`n;0W4j#hwWE&arRQ3jm)@lp_Uh8I9sTW!IuHJ|3A|n<{}E2@ zsOKe`mu?Hrlf3kJsd?$Xq}AL6k6P77_RdSs zX*4gr=PP(2JfQjb<=ffNY1c>RgV$^1@8&e0usFV`^q@aT8;ZK zY9l-Z*OvS-<*5~%R|sjH2WJoDS*v?r5$9Q_4fnY@&-%zQHP%w!R9rP2E+P?Rb4^9( z(OSmbo^qW3*D ztMef+-<#w=w%L4XujaG%3~4@VuX4V4t#b0>wa$GKGGDX7MP9txq;c~hwo92=oA2X% zotH$x9Zf2TInc%ft1ZX9^p~hS&_T?*N)9>oi(_H6w%InbBGlUIcN20qR; zh5QCSiBRB^G$Z6U@M#_eK20}5egi9F6j+gOgz^PyYba1#W`z6(RsnNmEoC-E82vM7 zSy(|?bLu&@x)FcXMgVYNO#=niR2c!lfwgW5ti}Bs-iMH^LyhXnjR4@l7xfhQ0xzfd zOw{Phm<#~^U8L3*Q&xJK5e^*qsset===~zxGO(eX0vm86D;4(KSVe)2uqnR91BCiY z{6TU?9;Y^?QQ+%(1Odl5wK;-6jNlK{acT?dz9roV9}j#34c`<{*GL7Q+geJQT~Uwr zNu2t&n1Y?^u~#P$8XC!WB;}SaARN}n2z#QC!t4b* z$VmN-y8m53nVq>u29r?tPO#D|ZcepA(0eQ3bt&Xj>vGCGqQD3^4kAP|*ru2=)7cWi zQdVAn?h0H-s zEO{_qK+v{|f*m8A>R5>~^%OjWts6|^^KSfKNp*)awS=X2_?YDmG}odm++X*lmT z!ia;NqZI56>tc@&l1CKbFM{AVZ=c<%DGW)ov2^0CKn16Q_zQr`E@6pKEd@j66u2sl z&*kRh5B6*nsbj$N81Ot;@I1~-!Q+xJH|9PVJPzdsVXPAYz`-yik1wRaon?IPglhbi z8sWgf2y#wj=^8$F66_MGGs1y`Bcc=>;Wfg6gXbW14p1UO%g9O!j*P(!n8s(3zo&e} zK~So1eUS>cZ2M#CE`-Ep7Y4;++Dp*}U-WtGl7a%tBp*=FLg%T`mUcO7?iC3%Hh zbh1jeE`9U2Qb@u~2P<^{;SDzEtzKXMOj`=|%BNsE0pAM4#V_eLl1cBCw4F+!o~V1< z1_M3)43CoRdU}1_o?A-l?x0W%jgVT;lDJ!^pIBlenYwc8o;4J@wTOoYC3#YzjbutR zdHXjMnuO+TU9Kbp`8JZtrA5;avVBV<4^>Js*-mGh*H6v-1Cr=Ed!kCxV<*|V>Vz@t zDKw#u0)Gj6qDEbZ*h#hu(lXS2LOKO@MU>87wKhDHa*ybpMxp<>c|bQLz4qb2OZyKT zCc=Snvt~)OkwZA}vD2u#2nWV3-;mT{zPP-NJUJAEI(aZKL^u!ik%L<3&nh0+3^_UI zhW)F(Xgj!a^S0w0^EN^5jh}bXzUo=s1sUCT?z_Jt)hIFhZZa ziH7=l_(p2v$=hrw*2uS7&f~J;78=@t0ph2qAt!ISp~Ld=298D}&j{)L99+Jt;5?Mg z6qAO~PiX1&3PXqa2EL4`vcIQecnQ^}69z_=C#E#vByjmGV&uu`Sh#f_Psxlt9ny=* zo{|$2!*Eg>PY#VdIdu%RLD^@UWFCx{WC^6J=K01gDZ8Tt2-kdyC4>MX$^N*i6_?O9xw}q}Kl!Xl# zq*P5ffA7$*iPmH}0gd^uhTc@VrX8Sh6MG8Rge~-9FBj#XfN_MDjiTgat>2Dvntu#! zjW4X}_1HCleusQd6kDOO<}B7-FfEsbCA9D|z~tPVH#Z?Vx+=mFNoKd6o71Mw1D&Ph zn^kS46L0_bMHgfE#4WKbPMe{v@r6(Ay69m*zl*R43}NO*h+Cqj%v|e#ZV6o#relpS z{P(~c>p|x|Oy+UDnCZkVAqP69l(;39$NQ6L1WSD3m}}nm1Nwc$oYgu&%h7oMpg)Ol zIsP%UHNNoT4}RPT=np7xc&-EVr+KpQ{?uA`Wl?K9FzSo&oCmvi0Q52nbZ&Mf#0|b8 zw*Sz&?+9p1d|}7B4xa(Kh5|=aIn=tgX5XOYK+Uq;C*<|7EheB(t}xa5=B=k}0`!Lz zNN?8bj$f)+7nw$OF)fmuLfwOhCKn}fdo9?+jspohcF z)tGiLeB#hw)GOKyZ4GVg5Sp_B&?_k5CWl(fSY4Vh1|A4{&42g_1ZOOK9VWr?zE)&X*L(X>_3T z_dghSY#Pg0;fd3+gflD_R zS8Ad&v+q4eg3d+?98={$N3J?@@r12otX`?Ia@^75n4t4Q#6+jn(3O{hPCW&VYj*dJ z_Z_)hs#GR)ldz?u$1y=?ewvBS8%K>j3v|Awz@Qoj>&SK914l=XV}j0tY7?E8XAfNt zI-4kPg42~H7pM;$9X*Z-I@p-fUAb?p{X)>$Oo0=d9IO+cs2!lbqsK8p2YX?f&Y-%= zZ$M`Y1x|`N(2-jL2h2LAaZJ!zSZkv5{tOr2(Z8X(>bS?Q=pZS24?75?#sKDQ7LGj?m6#xk{%6Bjl1>qJ5PBcLtOa_y!T^Rn8v z6ga)o0lJIj{*)NBtI7h6oj?6F@bl2)f`D$IKwi27boV?}Jn>q0YgA=Lt+BDFp@Sd) z;R5t`6gab4cZ?f6vse{R9NKNI^~(4titwb*YD>@@DcdM87&W(By$kk=?mu)dQe{Q0 zEzxqDLkDjM^mYmiZ8k*3YuzW_RT8iDkxdrp)lrkdi(gLRJL~rp7*^*{>#TTtB@Ufc zW`VZEgC(Clcr&1Xpuk!A4$w!{sp5NuHuhLpmgVHdbyP%^6$W3|B(}BSXV|r}p$&C? ztd0;5=5KiTN^tm*0{P9ZGTb^v98t4H4&na@XAh;D@!0>-{1Y5X%{h{n@cV@mi8>>A zZID}{W?qN~Ta68C@cM}Y=hRqj^MA%mFKY;1o4hUU^_Ay}PpA9AtC0eu>g{>KT}aiB z?I7)?w=)v97dG~lKEVt7`_27p5l1xZ&hFffKU3iR3I|?#5km9QOK*wu@)etT1uo2M z!3%L$U+#G;8N7a>!01wYUU0WidJYUP4Bf_$?G=d1ZD&jW$}jNrNM8$Hzf$0$G6!Dz z<`m}z7Z0U7aeIYoRaw!FKbN(z7uxaah96!6uN@S)xZIvsKrf-idBGJ+=}wpzoUBw? z!OK4GDlq4-W#IK21^(^Oj?Kmd+3&5_g7A}uBb>rxuDoAo{)svjal`3NQ^D)^>K69u zepki4{ZBX=ymnHc(4id%`_#)8+M6c}G`-@i=ti}Nz|5zZ65;2frYoF{qdHjDFuW15l^yt-DjXh-lG zv*eorAsX`j=h5 zZ`r>TKK~!*1qV5mFL=R+u6e&l{7KVC%ZGy39ty;&9C%sr#5mFH+LP_5@tA{X$7W-P z(eLB-XI|{T*PK^ieD$(*m#}BS-xRpRp&j8wtbXx!gwwG(PxkwoGIJjDGXJ!_PN-J- z!d^CUYJtfm7fc$1{*?;ecay!n;OeaOXkL0dne!wsy|K=DvfpbCab70B5y9)oMB{aC zOAbu}}~5wFv17!xl4@ai;IZE6L#pLAb}m#yYu#X2+#mw$M2 zo6Fwk=Cal);nY}5eIno_7*Rz9zp3az?A56<;j$&;b>Q=A$txFJ8g(9q{{iS#@T$ag zY+u5i5HaDp^tnDTUuz27A4|Y|)+;wL^GVM;rY)KSm15^!RSl8n=DcRj5kp?H=8)za z5jB^U=8LE-EPW{R=_h-US1xd)N>KE^K%((FXN|mP7|hp(0uQGpU_R?$_|MH}o#cz& zx6kG~CvE~Zy)>UTsWzWp4$|h+>ojb>0b8O;?PYjL`iL5N5Dz%X?!&=$2tjG~9X;gq zXk9E%W%T1u?2XT(;PtUK6z*F^**8}p2i-Y*X8x?TE;tRRCUb}ig>${=Kdp`66ZRnF z;FB)P^S~q2wuUl2#m0B)_=6#VpUcU2T_vAu-$dadQPYP__)BWtpDo~X2Q^X7l^z=S zR)kXr*W)t$xOKG-yWr4xSG$oqm=VEe2+zdg7ATk2Pm-bGzTci zkObj#9S=zmzS{AS1mWWy4@nTd;qj0J;Zq(DNf5s1hq{f>5caF(&=Bn@%i$)TR-*1l zrBT*jRpbd^G@;N@s2jd3?iuLe)X}x%fm6N5CoI?>Qpez2xR%cis3uRui<|~d4Xhx~ zNoB|p=dw%5b4n6dwxn?zZE5Ox2pPNcwNL=|=WyOC4JHIe_;M#}nFa2ZrhS-bM7=Rm>p_!`)&hI(dK zvE&Jrl(n*fdgc^z>cle2YKT%#e=btNKXC55GU^#<;B%2$%Gy>-Jwt-oN%#ig_a5q* zo5$x)E~l&?Q0|x}PMuOhSwEuOaW$MewUn}cLb>Bb9ZrMf&qO^>EZ}pePOcTyUs z&WKUguV8kvD3@16S-+)G&r?Nhv0$6Evw(V@F3JtYx!=pF$B7;;HzYz?%W<`0MVnJK z;>&{aTY~&CD*Y|N(695!_!r@7p$Grs{+ zl_b9jC_e7B2;UZ(CRmSv&czY(jc;Jdb4no9M5d2IeN=A#^wZp8>QPn6lB0mIHHmtx zDCN|7gwH}1QIAyu{k%Fz)l-kv^?a_N0#cRKV{I{~&WDCo_`_-^QWq3bk2Pu3V|@*$ z{*?akQrD17LFf7=N(b5NBGoMQid z4xEyqQtbE7p;9t9isJ=1I7)^?ahw5%L&*Rrj!)nKC>ip^aSa^uB!iqd9)g3Mv~N3y zkZCV@4h0LYiZHX=D=71R_5H=rlp=W0tM4z054Yj_iv#kBCHaGIOVk$^LsQXOOVt+_ z#RulzRbN~bAEtXxeQ_}~4dvcfUtAO)!utUIY*jkzhsk!;8G8#9*$7<3l%ir&00=9l1teyRzk88seud9DEpaOI%-Z0 zpPQXT+0Rx|ue-gRdJL(GD(ZfV;Q3esWxs~jE*JKkQ%C(jM4x#%#*%YuXuxr}Le41V zRCz58z@}b*2O@$B%f0i1(bDJBV}DKSU=~b ztipWCy28un<`HFGRZLk|r;AiQWnGK&*9vCOS5ek~8}OIL=UynKtQ)E+Yh095FBVeP zjUMWeEy~T0P}YQe>XA~)=jMaQd$7dGLUKVZWuY%+K9$7hD$6MA^(x9NFXGfo=(`nV zlsTR_^)jxL`8AX|N2FdsnOkvnl;-ofS8y#nUPqY=3OKc}mNI8nQs#{foO%^Kc_DO4 z%P)#i=EOqa#rWK71(f+(31!Y};#3u`j(Nzbs^`>VqRdJUWln1psd~!%6y;_Jp3D(# zky$Aa-YBI^^ruYO>)wRaqIAl9MQC{|LYXU(l2IK?aI_dRh5M>mCjxH!?JlL@mP$@l z=ThG{YmBha&^yJ{@2?02zmD>`rM1*=7ov$a3wyqcfVn@)F@}`zx%V+@Gv~Q#A$3+UQdOM#11TS$E9KO#D(d@g3F(L} z4nsA?YIVgNdYve@nIjQID-iu|EKX38}X*g8#*K z;m;xR7qLwrJ-n*I_&%@rgyigc;~T@`Ly;@7oZ8OAKQ8mZR{HJnPvo$Csu9w_Ei*C-9_-9){fDdAK`5e-1A^;*!t zDOWk={E|ey3yV0_t(LOKS5faPMcsSgx$)Bi>h+43&t<03fVa!2*K-w|a^v3qVk7nb zcRHtfdTGF8rPM20$EjWs8Za%LdN0i9RBzyoYs8a{n^S#aG+=OL5`L|c#*#xI;T^wB z?o2`4M)CM2MV$f(d$nHLgMygi;jzz5d_4vi7f6Z) zj{XH?Bbj>Kq-Wlv@OAb4h^8bb$vsi4&XmK`N)|xU3rWSZ{{*?~W|d4{S9H~S3ja68 zkA#Zn#q~DmZ8m>2c@>3=D)~`Tp&uQ!k!-#EkyDO>q?f3ZEC{fMli9J{Y;*!hYEl9tC^$u2Yis!N}36 zFFr@%bL%-E*^qPyMqY3#K0qHn*UJIPO6M=>%ATf>?WAiznD-F{>!7ozs(W{1Jsefd zIH^kY&qI11^!(`*o{8I?T+YUdPxp55zGRZ@c=ohl4+=jB^l+Mi-aR$mKTVPc`*-%o zCHDZn5FAo9>h_&m@ia*u^!TnW?@)L~Ifa65Lua?$@xEk|?C|oct7lR8{yKheR+4y| z39qDEYt;UNZQk!7iPrQhD|PRkWFy&bdEKmy6fX5p$QQR#--wMQO&I+1P6|&)yXQm= z^h|7Lw?uCnx~j(j3QsHJg#kmdhp)&+GWEtAM*U6U`)VnaU1~^Xw5_+1Olg{W#JP|p zUWhOxyH~`=5R;XX-HUpiLgA@yUcgY2_m|t~Y;)qBw?Xn=OdtAJDamR(o~>7W|6>h> zrsjqImcQYh$b(|!62up6Yvr@{!zMrG+x1jF4Kqhs*8ne-vJiqU+ z&r^6}880L$$@zIUl5Ni0FzGM~-(1NHP)c%4osDGcP1pVFWeQJd;DswCiB~Wg*QTk5 zw0i4YksjbVlMeGU-gt8x-jb$t3>1yOMk{ zSJlWQ*=G7*r({rgOg>?WOG%bQY$RKcn^;v$VJrq=X-rApYbV*N>g3s9P5E;batHe`7v z)>8NijI{sCH6+t-ildt(Q=Z&(*OL^+(gBvnl;q8YHt5NlCj7aS!k5Q*Nli&!8SnEZ zoo(7IeD5a;UslUYaY}NGozB+h-SE!MkaS}~uTDu~+H3Srlg?I=9d+oR|1RRCKPA~d z&qgxoieoFfQ~1(KUNTgYyUQ@q4L(vz*!ti++{xwUNBC;6Y+Ix9HZ<{s_+OA~7d7(a zMo6#{^=^-|qHOkO#jNiYv{{F0BTsIM1eewG#)y$8w?={==JWQ5kta7uf^VYE9aWxu zybYY1%a6D$hyE|OM}n&w2`{POJa9JN!*f44ck&o=a;qfxIm#X`ECV^YVG{hd26ILw zC$}-eH$-?V!_X%;Gs5GNDAXM_5*TtzBRsB>w>4Cr*w_f)7^P5Vu8}9VH^SpRyv3p9 z*cueR02m&{MQ%NWFQ}(bKfwk3FdjVv(o zvcGH)c_@3X;Eb|zSvY)U6Ry5GLoWR+A$JuxUsx{l&@FC&9pyG$@P@jVXXR|iHe3p_ z^LZ377S}BEa-HH=fxV$>6wnP<`;m+`gCH(;dZAk&PRJU2!af2!;4Z6dxZ| z=v^-@@D9BOD|D%CDR?86q0Gfw8y>Yrr)Cu}u4EM2tTalM#Wg0CANs1#gi4}dal}F8 z1Ek7pmG!Wc{0Wv5(o8B}T5`eysBA~Un@Sv1juE#nR-jcj#9@TWn+r@Ti>t3dW@>v1 zPN+>l<#%ZYNm=oU)h3l+mX!8{$_^Bqn45sgZB~_dYBf3sn&;I=j_^U{K@_|NYk0QJ zV^{I*R+YDwn^azS*?nE0@?Z+ynx25l@2x6tGdE94>sH+29Vr+~qqltU#N^mOHkftQUa)(tV{4Mm=Q+VuC7eVC_6r7p}OWpvM zKQU}fiGPC_|7tm%ITFRm6ukm9}Jc06rAo!K;`dM7M1tAO)87J zeRTy?cBNoxSpq6~Jy`xk#b=mVo<4L4-zYLDI3p33e^^yMXl8l!ls~z}T@-vE5th5G zDrc6ODn9n}kA8v5ZWNqJ2~_+~tICIxOe#zETvi8_-6=S$I02P^p^(XzWkn{HA0PYZ zVyMI-=tB(&sN8K;`G}e2@KGP00hO5)d^i!7d#oxSHM4x#v+G@`bYoha081?WTPi-g z-c<4KA57^Cl|3mqyI|idj{O6R$~pNal?{Cd4};2H6nv~E0hO)uEGp+#n^b;0=$2=o zvNr|i<|d%BjmM($aWl()S44(GWgiNbC&Dt>s`3dl%VVbA&llv86nr8PmMK=1c-q$E z<(3yNO^3?96nwHGfr_VERX$yAQu%J$nWLaGi-J$5C!n%zp2e2WrkPYmE@rn(>;?s& zDM>&jSyfh;S@x}-%=62B6s&M!d3%Lo6rW#WpGoD3@p7J-<)qpNhd|{~6nxH!rJc(5 z#TJ#%$4nK!eOCRmP3=QTN0+(spKyeukTXf&z3Xi$e)P}!e?FBI;(N^F~1RL+l@ zRGu;EXw)Hf00m#HOF(5uE6W9Dmd_5K`8iY$#P(7mED!NoSiWRtxns%sH$i1K1uGL_ znHIIEe7V+C@zS!xCPSr{f-mPKQ1L^HEGid9Oe!}|D}Ea)bFh+7m4M2_sx2yCtu(0| zy?Vh%Q0b%KtDXc@cB-|ge9g>q=cSWRfJ#3F7bU{-@Oq0%IC1Hbs4+d8@8baqRwcr+ zbE8G&>u!_EE}K?=0F^=PJeDO;aXc#-KXHw}QEF28VEc8yLS=}8Z%_g%)AKDV-%2v6 z?9pxYHBcF*;G4w>sO%cGs9a)Z+0lLKdZ^5$;F3gGW?1`WwVCC=x=sBVDvzPy+ljDr zm0MW8Q)H_67k$542$jcDu(~0Eig&a2%cb=ul~8!AtvU=2Ew?Lved%U%(S%H`&DqAPoS@;Fptjp)OQ z1XT96_DlFR8N&u%{WtRTWjmqrBno~~W>u*o^WjIO81a34ZXp)bj3r;r=REQ1Khp{q z=gq<7fxV|xS<#Ge#WJArK7w1W82kdDPlksURv63%ibGphY9w^Ks8T8DlroH7T+`6Y z%9NadUKKGx4-Z^@2cS=(;L36bXkA>uh+6L}v~E`cy&6`Mi*BiB`wIO4nW5ROS3{pf(SHN_ zbP9f6>HxhK6KVO=&~j&ibN60rZ85I3^$nAok2tFzpwFP-+C~THPvguJhyJKql9o%w z?9Qlb{dDAnAfVCCUo;!2;yrxHKdANF@e7k{&3=^{dVR(ublKE1DY&lMq1Nxa74yVv zt!WErxL;~$SHqbv19~t8;h|@LU3Z8ZEpcc~TeNj)l?i&$$0-3o524^!l@8D=RHbE? z64&*URtYY3urjr>RMla>aAY`dN>6)IrZ@BTva@AXiZx{!#h|*A9=!t%K?2B zoQ9olAMX_JKeVPTpuffSEywWq+g0%Pi($9lbQd_}Q*djuuCAiTL%QL(`Xaj5bXVlO zmx~lj`9J5)DQ%f2cD6!#m}FkQbbMZUU*x`1r-xs2d|M7{3X|cmmZTeFMUr+ydBrY zZ%E85_?z@_F!!&_?WMztALSwbT%1pL;AOq`WWU$fl;TApeTj1(_j~s7SGEy#D&jmn zcrvf>IQYBcdR$&g|0K{8)q;9yPdb-)3c+E+n`ZnBpG zhi=O7O!n2);hF5?>nVWS`K~f>XFmlFaR4h$Ef~F6MLHKuQaiTs{Tq7d$#JYG_gl) zFdh=g-U&J+lKm1mB(h7~^Miw5WoR7x(0T{PEB@ z_Bry$L*v+2Nr%R|3Kl(0abZ8v=KrU!`IcDf^^w?TnFj0 zcZ&|vWxp03q{|*HzTq__gLK)KMF;7!7YhgJYTptL2i0CB94;w?L)q_52Zyr1oDL3U zKRX>9%KmveIF$YRbZ{v91M1*V_9N86q3nOCgG1SGQ3r>zzhl-hNLqY}Mhz z>=EmUhYzzStqvb%4_qBS%$~bCe3(6cb@(uQ3hVG;_Au7r!|a)?!-v_US%(j^C$tV9 zW)Er|KFpriI((QtwsrV0dwP4$YB0XL7@k>Ap0o4i4bw3!V%z%ISQg>X2r23m7IDpc zA7Jrv!rA}wIS)?#y@@2A=ev{ah@r1ng|zh zlY4w}?FmP|Bqh&_DxLOj{O2Ea%AHbjRHc%%cjJG0#-#s9$#d%sNe4Inp4)ys+>rDd zk`CV#`~An7Gle8v`3*@2H`FCbZ)OTf47dD0oVmRAZm4gr-}zrD8I3B*jpfS8(B!n4 zvg^k#m`w9x|e*Cja-SJWTzCB>yMS?cGpc2@S=b5=)NBSCS;U) z$qUPsYi@zhU!V$ASBooRq3>MLw)emPcVV!x?fhSB<e>1ZQW3BZ9U15ytLAgbO?h=`{1~ZQs?!h{6FTA z4q;H^(mT8=C9kVjl5i+9++|InRVn9Oy7g2;(yJux!=OfXOT}t3*ZsdSL-Od0>uq$l z@lE^0xHgMKjhN@rQ5(tDPtE`PIH|M9t#l5vlWetcRXg}fF#5Hs?hav4A5~^y8;T{b z5$gj$cL^-k7?KWQ5t}yU ztdWv;2+IS#`{OZXC6mj2hfMd0hUIUM8alh%heb3@+qg{XyiHh%bzW0$qqE(Er(XVm zl#G=dIvv6y#$5AsdntKql_A-Eo7+Zb+b6I4tVBvqid$(@jg4e#<&vFi4M~sEX&)A` z_~YdDQu3Cll6=+9O3Ayg`+l^PoT$c-?)G63D;uBaB_(gJR66a$BDT+(yi`g~5Pga5 z`MsSzTRp#?-*3U~KEciZvt+E^rtV4ela4kdZxa8rWM(`l!xV^gNbBUa(^(gXmhu1S z$qr#<+3V&WBqbjdeTgOQ!^-+~J8X%Re4x{Tc2lKM>EQm~r z?uPf*DM|aVGEeH(IV{1UWrn0fSXs~H$>XGCsYglnjo6^my%q1>C?%&y4M~Tvvh)8M zBv3wx%5Z=K5GndLDK0-~fkih>#PJ}kdyw62h$cfMfnfI-zG33N|F=gH(rTjnS z#CJtS9v=8ro-hCs2vMjv^2CEbA9L7;ktae2WZu|%{+~H>=m7r+59a(o^W)F~{&DyK z|BpNoI$-408+jshK;~W9WaNp^0hxDIiIFEBp=I9H!Um{^2-}c(H$?bLDI}WnQt+hdl9!DDx%@ z&d?_w6lLDsdHg@}#N(pOD@l`i{4X%O?iQGceaJYYNMyC9jKL(1+EB(2$v2rYhL(%G z6v`M@Esjzt<1Bf$EoGctCi3u@I#L`YwWEx43&df2%8*YZNgXJoK%yN)85fj_vjm9VtW3vXc&>jEgG7*)+-+>lR0cQpP1E;^;8S_;;f?>O>ir=ZT}kDWkAl9CfCQ zE7HZ$5tMONOdNHg3^_wdN~esXh{)?o8UK}>GbrQwG?C|`jB!$5H_8}aDe}5g#!V!S zdQirMs5r``jGODkQBTTvShDX$8IMZ2-jp%BSe)%c8IM(oqa!I}t~}e9G9E7yd0CY4 zq}1Y}jHkUKuODSRQz4Fyq6~SEbTnnmD-?PCDdUA&aWsH3=6l4^K+0H9E{?J(qf&D5 zQpPJ$k(WamuhxhoA7#Ae7Ds-{s45dj0m@k1D2{@Z@n(TI3Q@+AYH<{%jOui8luH@! zl!~KcC}U}ZI69Ux-gk?m<0xZUi8vZW88!9d=y=NbNa{P0G7#3vzX)Z(cYuGVPzIji z_;)&G{N)u#dE{zeFOJS6*Fh0+G?-i+E5*?ea;1?t8cME1rM_Y0>LlfcldH2hnRFJp zj*z(dQN?+&Lvl7qc|ExuAb%M=sa@uY7$2U zmt_mdbz-5&`wzJy z)#B(1a-Cc*j;ZXwr&1tM<}xyDF+w~{OB5qU9kjg5(;+sJisojAH3Zv*v; zqdUkou0|Z)Nv`p3ada2CiY33v!77ilc|f^>C>;DkIk;4dUowa?Os2qesZ~SeZC_lw5Nf#nEhX zl^2Sm$H?_~wK$qXt|ukux#W7PNaU51>**SC^fV_j-Djf%ems{DRR9c zF`g#Z!X}aT47nB+i=$`B^;(@csvy_mTygXqxn3_5NAt+_Mw2*to?LGgi=!9FwWLlQ zy+|%&e3?(KcO&}UT<=SLFO%y7S<6?*Rg)*qE+p57<>Kg7axG66 zN7dw77ZFGAkn2lnjiuyTUoP_ACD&Jy!F%M|=oNYIldE3JeL$|SrQ9-dZIW^|vgew1>xUL0`IQo{l9b6}l8mQYLlHYgKEltY(zn1PiE{ggO1Nb6`k7Y$! zMl$Wtu{%f1EPK$8N^31M>@X}d?4(Q4tndsqbv2LmC^1t}GuO(*vo$Zg60;056|;lV zin5HXl(Ykn^f&W->aX|f`FyXz9A}o!{zMw9TWAK)JMn zItnGLiE4tAT1e?!L8U+`%%WOA>5`yQ zq1>TUX;AKLpwgjqjZ+y=ilS62DBX*w)=-K|sPmyb=)#k70hEV0Z%QTOi4ocrfDjQ0_D0MlM z|2~QFLXqp76cvhG=cHT#Wl)Umu7onUin*WewFH%A5kK1C+TX)QwPHlkskX zGOvMI6pCD%rF4XnC}MUqlm%7PEl}Qc;YsNP@_RwxVQ$U8$>q_cV(l&S<(2xV~{ z)dk8@7oL>cp)8A1cR*P#E4UNN3K``tC`qu|70SvI>TW3SR#Qb#R_9UOpsbO;_ds!; z*>V0$xfe>cRJ%i2U&8D@C>v_19#A%l?uW8Di&-(0_sXcAP`1=k4?x)(r5=Rxekt`3 zlx;QC!%#kGq#l8?JxVUnsF%le#O?Yze@YyeekSuYBicQZK{1E>2azyCH{~4)0zWWd^+a z>X^-f_lr_$HoRX+ySec0uVyw6Uinl%Wj?&$OWy>%KS+-S@cty(oACZ3ecyujuv8bq zEC2eXybbT~Qe6b^kz$Tq1@BQFX3AoCn`A9Z;5{a*UkdN>1luix*ZFMA`7dQTyz=GC zlojxv(3vISJuTIh@Sc&iybJHyGFDeX^;A=Y$p9)Ly8$_0*?OttM(8)PT(PIn;ca;|r(-NmjpvdY$xe_5i#gli62L z+ZR$_LzOLLQuaf=$&EZI2cSl)sc)cmY^J`2dP_0&9n?-Tva?%fVFk1Ap?0aHet>#s z7IhHnUDD%6s9o!r{RFj}P91`JPZ9Mq)O%x8Bh>o}s9&J=kns*fEsit$6>85~>Nltl z$_jpm`mh^$QjS1N7gk z47I0E?&O#j#bE_>Q8U#F>Ps=|9C#m)tTohEbC_KKb#^9|33W~x zbs^NbwbVsW=haYcpw7>uE_QZ-jZv36yR|k^S&nL`%b+fbQ3}*$S=8lFmzPsH&Tg-u zu5k8YEv5WWH^eCe>Yi%q8mOO2H5cl>DrOec&t&yBe5R}=0AIgiR`cMKKZO=S_@0yF z2*EepEqYpn;TuswMc|9cTJqr=Q^4$6_{Juw|G_t*h$?_@QYLjBe3PZe_3*tCV|D|4 zujWzh;hWJwb%1YHEp;P&v#Y6_;G5q}Md4dePj!UvjSA{!_^O(yTO8F;o#0y@rEZ1q z9hsvue90nax52kk`WC{sD#@%1d~33(JK)dJzg{Q^+@EwU##qb@irh3A6 zyo`DPzCUGE55o748+lqh1Yfg^@-TcS9cpU!J zVrEakpB|&0gg>K^dJ6tlnN%{xIn9;5QP~0Qf^LJS_$~s;36QpATv<{MVIGL*T!$jCvma zn-Wwx{2k-eNciPbzZRq5pCj{*hJR@jt7G6_UQE3R|B4!FEc{7X%Q*N~%5jW`e^nN% z6X0JRqvG(dX{08?zfM*#3I6qN&&LZzoVXd75<$C)C~A{iDtsTyO`N5`0GTK@P8_6o(=!rW>)9G|9L4j*HISr8vONf zYM!G4>UH?{*HZHxl~W1$zip%zII5)Hfd2=bdK3Qd>#4Wk|0|PP2>;)8)Z2~{)FSv# zN{=e|Pc$=I4FA89ErI`x%(2u_HLJ^@wTM#79m&Wmprw~Hd&f~Bm4t>QwbD_HdKX%2 zP^+MwE9+Yg?Sd$?HI8Jwwa_lAWVX&xDdjvcc8RQIBeZN8c@wnDvsm2>O|PcjgJzac zTcBMNr?x_~b?SX+fm&)Cw4luPA+-O=$lIY^SIp{1(5{bBwb0sw+5xRY5%n>&8)deg z(4w+}PoQ-yXLT2}o9n6F&^i@Rd!XG~P1QO3tY=YsojumesZXJGsi*ciJFOQ`UqQQH zR=VHWMLovs0JI0|sBfV?Qbjd5`>2;tKR|m@Mm`AbDd~F%TAylGe}?8fPvZR7;umKJ z^#@2kDtfo4T_s!s{Qd6MKtaYoY zEud8vQ>oBqbETC9b>!mpe?GV&WEIglpnz|W!hODI%^z#as-3tBu zN~$yT3!13gpkJ7v3ZY-rOm%^Nah$px`Xvq29ndc=qwa*B)kxh1yplGOdsjXcVEaMMgsJ)!63 zP!B-2DyRpc2c+FY(DM?^9(LXtlS4fMJuK}Wb>1;k$E*bUwI$R5=-owwq4$*P5an+?6Pf|>(;j`WxdeQq7I*Pzdn9`m5jm+I@#6P2vahyF$} zm2f0Sxd8e?S<4&H7s;``3B6i+EQG$%?chm$8~UaaY7zAJWR5E6TSSYY*Hp2(1o~DP zZz=R`4a}B7|1d@^hh7V61@s+-)H~2Wj#EkKpSbX(u7tizR{AdV-AQJvpzo=pRzu$_ zeb+$$w3gXg=%1BQ>!5#LKvhHkqLEq;ys0++6w((l6oKdPjTu4=#353htLmKQ`@2cRziIQ{fJK0LO)tg?STG= z^!*t6u_k6aq5m1Bc0oTW)!oqLS~+zO^nYdEI_PJ?c6(uXDydIl$W?RdJ{YM9W}m@G zYoOQoYP2s1*5gB?`s(6)iK)-Khnxg_8O$ zj5amQzJnoG(y7jyE812u`yNJC0rdln%VhNjVPr>{{Rl&;q<(_o)u}@;)EMfbPKlI$NC(OOoUVcc9moq%ym6?GEEty$D57@Z|M4MTog zkoqr-E)}evg>iS8t2F1`9YqaP3XFRSsTMHq5o0wSMlq-i7(Hc_ zmM|WuXXd;a<7*9u; zT?nIJEp-u$XQf>m7-iD#Vi^6UdI^kyQf&)kuv9OFF{Fxpop+Ly7gCqO7$((rFysuJ zmJMTsR23K_8`P`UPN61V`43JC5*{A)KxHEa^Xq48pg}Tln=&K zY3GMAO-9yWydu(Jyjsn628>w=%7igHi@FBJoC+!zhMZ&5EEw|&nb|O2Z=wP)=F87C z4@M$~SrEpXRa6MZ!cr;>V-ctbj4GM;e=wHSGb@0xqJ+8*M$&~R?Rpq1^QaqOyc?(5 z!&vRYlhy&o8X4tA80&JF-2|hWoztQ)Hbj|qgt1XpdNYj8F=n^G*pf+gf>D#8ZiTV8 zfa>f>M!pTkXSK`Ll-3deP+S2ZV@of#Wt}q(1sJmf& zFMW$($fpo#-C+DE?e2kbsD$nAg~5S6Y29J`l3?~E47o2$dkUsUR@w_@N+qkkVamBK ztrTWP1+zXd5vBS%l9fIUQ_gy6{b05(Vf7i9=jqh5j%2*&U}i>{mBGBQhUyQqO*u6H z=EZf?K$vX{sX;I=l{p5(ye!IW2+Vde-t#b(0%qkfFHcfKVXB~p!OW?lhQqv~nR)@H zT;ZjSfO&N_vym|UQEC)St%-`kG-UOoVVZGfV_@c%Q!m1_WVW#|1DVXm!OUx*#={I{ zQ4?Uw88a;oGryGCM3~nms7WvjTzJwZ!<5fA(xy1dWA+lv_C?goFgr-!sW5M>Vpah& znnO*4*)c}F0`uk?YC250TTFWu=B={k88ACnvpN%Ip^Q8Wrkp#|Dq-GU$LegDcV<#^ zU_M+z&4u|WsMlbY6jJkGJ{G55hxvpHPuhH#Pe!Q(%%>960+_w!r||~N(qd+B!t7H? zy#@1WnQbA=er3$whWSjAS_JdiCaMZ%Sst|*W`D_+z#J&!ErmI#n$=}6heWC6FrTlb zR=^xuM7;xZSTmJ``9h3Z33F6}dKaeqh9&1XR>2(8K&^&3R_0v;bG%g7!W<`~tb-Ys ztQzLTdiGckb8;260jAugrfqcOMxL}yFsGGLn_*4|^&ZSuYpE?TXC|l`TywmT+KSwT znbiBpU0g$LL+;W9^#O91N2w2yn=GfcBX_l|`6J}6sbf})-0B8u2XZ%NQ6D3BQw6mX zx$jAjPmsGsM%jhjtu?IfM((yEY7cU^yYQsdA(u<`q#_APS% zsiM9^?ukmO0lBB5)c43eouqz1?wL&LAac*j3Vwu@CfOla>5Z)Z46CKg;kq|cuR?iY<=fQd?i@E^TBV1qlh0gl{o0(k%t5+R$2`srsOm7S8nQCU2!g?-~ zx(rr-t~9+JtN~KZhBZjC%VCwr*v<=UnDkI#4KHBkyn|^3s4HNN%%iS^HL8KS3f5?; zUJYxEjO>Fo)-8I{{jkO*DGk>6dP;{Cmw63X6QydxnjB*_7gj|DWx;x-hO%MJ(5V2d znYEPjE~v^nh3F~87Uk_Mc zOS?y59V%qI5?DXWPwg>SzZ5X*1*=K=_J;LGj9DqHV+~XvSaN@q-WS$i31&~j`p1PQ z{TW#Q=26eWI#WeGhuj4+UK#8ZIkx_=cza+`V5hryP=Tj|4LU);d#1=wwis1dN`4k&#j?Ccz7qhKou zDhAu@!jnE4w%h@wkAZz;wYCLScj+y}5%%kG4uaP642-}iu5^TGY z)yc5)B%1;|DD7T`9Z9k}7523`R0Zt+$+1m?eVw#>1@;Z1>99NKZ1*bc8!M<8u%m_4 zOxPXEsadeQXHk`~dt_3xVc##+Ik1Zxn9YU#Kn?X8?1yrwd9WXjQ?J8*q>h>oyQF|h zz<#WnS^)cr9O@0&Pc~3*!tR|%y#>3pnOX?@X<75zu=_PKTLk;rN~#KW8K}ju`xjA5 zU=NV$QrLr}x(xPU$(F+&(!_QvV3$jecVG{dY7+MFOjcLIexaFq7xu^sY8C8JvVzsl zdlIGZ8rWl+SX~QyY$>%4_IR1M8ukR8*?QRVGHL_tiPh9b*m4Jyz6tgenPW5Tmt>Cj zU{9@LyDhM%MX4Ituar_-VNXv|@56poR=N%LOlkK4>{)SEKZIRbPi==iCq{h)`?VX1T(7A^C8i6iRYCi(E zS5OBKxJ%l7gTOs`%)UiH?#0u;L*TwbW(^43@4}P*Jp#os>IVcKaN$Wmh`@u=?k5Bu zmE%2xz+X$ZA$kATX+lI*Gt&Ikr;>yy!-r^wS88&7uB9V7v=Y`WXZ!6j5gp zh*!AEaJ~sM$%Q8)1%b(|X0$+HN)@wI1YT;U(h!(hK&2y4QATATFs+7aiNN$63JAPf zOtnJbts1H|0t;p2^Bl#Po$n|~UErvJa^4*Ib|!V9qbPNeBblv@qXe@{5m;P9DG02n zq%KF`9T_hN0lA-cHn4*^WUJHcbz?ZvrpHtY9ScRp=@NIictXs!_qeo+08Y~f(TxlNrjO8 zcMcUsu%MiZAp1`lFCW3{8<<^-Uy*>V}}4eVi?tf-{SlIp4IXZ>H`;aJI~GKZ38xN*_Y- zEw|{&cnrbC#nj^nE~%iLZ$W$#r=CP`nXJJ17Q`+Yr5A!L8d!C{1+hnFD@Aan{51L? zyDrIUUj$d>QO>s@J{9#ta7`hzXOO+Gf_fIgbur5M7Q|;wl=Ifn^>S>^w;;YKVm1K5 zO_|g{1UJk21|hh`jXW8H5v(bvh9J0AMtL5=ZPKnB!4IX~Pz1M^u-$M3cglD#Aoxis zvk?gHs-;FDxVM6eA-J!I8jav*)zlaSzmVg75kdJpCu1yvU*)hm4#BSrsqqLNkQGco z@S7yFID+4aCL-9-$ZQgVKjcu85jqs&6^Z>d%y_)nDCYy_JV)Eop)${epDc)FR{ zJOs}aQu7f?k-iCpTI4WWfKX~N^#(#|Wz<51T1nrx5jsb-2%*+Gt5pb{7pE3O=~+uH zK`1kaS_+u4MLYUP-_wL%KFwJl#^t(9-*s?sEr8uWt2?_>0tIALS};6g3vY6w+4#b z)S-ad1LfXK>NA8oN2$*dx~-b}8lj?6YCl5V>Zk(<-P1^YgOFTz zW_*k6<1uF6A=IOUYC!fsGVeiz9+V!35Gs+8e@5u>Lbhu}_OUGL7lfV?9Y&~^&g@r& zdQ0Em5b9IF?01CzJHH%3_?9@cqX^#`qnZ%DElK@>aF=H47{YhRT8<-p7nuEta97Fx zLilc(<8Oq!6|wpc!uQlt%?Njw>;%I1RWdt?aF2TG6vD+)J&kbBQf6lmmh0k{9)zFH zauQ+=5#A7^+9OA$(NS1L3B6R_{mnxb!VX z_^%|ho(TV4Lp^|SbDVk*;SH9b$sWQhC zh@>^K?~{mRlu=J1l2=IeLS&H(Ps`qjR25Kt5m{G4^+RN%toa#4w&XE;7LgiR!E=ag zmGSx`@?nD20f>Ag*+4{UOPLKuWTy*H%jXfP$W@-LS;RwLhAz-$fj)k115@^hr! zI^%o|ewmgYAo{9mtp8G_-VH0DWTxvz^GlNyhsG z`O$i2yO4iR9<>|!_lou)zkAHhkO%cyt_99-?3S>K5Y%(sqH~sndcICYpkCNaW?Fyh~C0M-<>Sc}8^-$%i4>v%aR?4hBB2Cp)2ZT50P&Xp{ULob2 zbKVy@=bUW?%$#%12cnx1{!r$1&OX~k&e`W9k#qJ*6tRbM_F1e`&e`WsBUK3N)=H`i z0?9aaI|3_X)Ex*csi*ElU}+6?7Xr(wsICYsPf~X~cUg5*5dw=O>xMv8HM4sVSeKyg zMedGLsynP3q$Pqmab(9-<&=2Z@dg>XdGm_M^P*+Re=b*kIBbPy4 z7iYCU)Fs8#0H{fw8VGf_v>OEV%|d2_q0W-^4S~8gi`nx~_lnA)%Ka*a!uYp>)nV{& zs-=d*I31;4fN`>k8Uf=(f*J{K;)Zp%DHo>Oi-^NJX*5p2v3)hXQ17FnRh1g?L4-dg~g`1NA&P^0n}u zl=0TVEBAD$hIg~{b)L2I)UwA0g!{?J8xel3f!QX6_qy<4Gs0Wq)O!dot){jhJV8dT zLGUBVwj%s|lvU?W`$9*{AMyz0^K9 zTlG?(!P%yl`rO^3m-@opo|pO(&eptCy}K^;~5_~ zHM-mCQoq32QkOdHZl_B*&r|Qtp?-6>(WQQOx6q}Wd!cvADCb@%Sx-6lLaUOLb1$^E zlydHc)<-GlUT9-8<=hK>oS>Y0q50*Mb1!trg$K^P&<+{d*}}HEf!PUnOI+%tyB#id z%H0Z=I_++QOa1F^flHlnx4)&%x?A76YURAsKxf}pDejiH%$z%=!!A6nQr)d?sWf++ zTPoe%;+D#Ax3{HQx?9^)aJRLkTDe==Qs=na*;41aTiH^r-EC~C^V}_LDd&!AR1@Vq zfxWYVa-P6GSwvmvZdpq?Phjtrk)0>78%vluPhkI2NjXnoAFiXEC$N9hDd!37-%BXx z3G5@%&Upg+sI+V6Zb!?i^DOo;X{Wf`&@#K+-GY{Kp3nZfm~x)a{wG1@xZBQBSHRhF zmbwzocC(c8r1oji)$TU4%zW+^vy|W6UY63_tz{|Q-By+|+%07()7?&%x(3cxvQ)0S ojVxus*+Q1G-R)zkfV*`pl?P|rSSsjl8B2xS?P94goULO258(kII{*Lx diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_pcs_eval.tar b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_pcs_eval.tar deleted file mode 100644 index afc70d609219cf7d51e134b4d87cbb1e2fd95e96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1116160 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ΠZv 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

    BuD-PPnocBpI$|+f( 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 IUuod~0z4IfD*ylh diff --git a/gbe_ecp2m/ipcores/statts_mem.lpc b/gbe_ecp2m/ipcores/statts_mem.lpc deleted file mode 100644 index c24e581..0000000 --- a/gbe_ecp2m/ipcores/statts_mem.lpc +++ /dev/null @@ -1,53 +0,0 @@ -[Device] -Family=latticeecp3 -PartType=LFE3-150EA -PartName=LFE3-150EA-8FN1156C -SpeedGrade=8 -Package=FPBGA1156 -OperatingCondition=COM -Status=P - -[IP] -VendorName=Lattice Semiconductor Corporation -CoreType=LPM -CoreStatus=Demo -CoreName=RAM_DP -CoreRevision=6.1 -ModuleName=statts_mem -SourceFormat=VHDL -ParameterFileVersion=1.0 -Date=12/05/2011 -Time=22:40:38 - -[Parameters] -Verilog=0 -VHDL=1 -EDIF=1 -Destination=Synplicity -Expression=BusA(0 to 7) -Order=Big Endian [MSB:LSB] -IO=0 -RAddress=1020 -RData=8 -WAddress=255 -WData=32 -enByte=0 -ByteSize=9 -adPipeline=0 -inPipeline=0 -outPipeline=0 -MOR=0 -InData=Registered -AdControl=Registered -MemFile= -MemFormat=bin -Reset=Sync -GSR=Enabled -Pad=0 -EnECC=0 -Optimization=Speed -EnSleep=ENABLED -Pipeline=0 - -[FilesGenerated] -=mem diff --git a/gbe_ecp2m/ipcores/statts_mem.vhd b/gbe_ecp2m/ipcores/statts_mem.vhd deleted file mode 100644 index 2a03d69..0000000 --- a/gbe_ecp2m/ipcores/statts_mem.vhd +++ /dev/null @@ -1,159 +0,0 @@ --- VHDL netlist generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 6.1 ---/opt/lattice/diamond/1.3/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5c00 -type bram -wp 10 -rp 0011 -rdata_width 8 -data_width 32 -num_rows 255 -cascade -1 -e - --- Mon Dec 5 22:40:38 2011 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp3; -use ecp3.components.all; --- synopsys translate_on - -entity statts_mem is - port ( - WrAddress: in std_logic_vector(7 downto 0); - RdAddress: in std_logic_vector(9 downto 0); - Data: in std_logic_vector(31 downto 0); - WE: in std_logic; - RdClock: in std_logic; - RdClockEn: in std_logic; - Reset: in std_logic; - WrClock: in std_logic; - WrClockEn: in std_logic; - Q: out std_logic_vector(7 downto 0)); -end statts_mem; - -architecture Structure of statts_mem is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component PDPW16KC - generic (GSR : in String; CSDECODE_R : in String; - CSDECODE_W : in String; REGMODE : in String; - DATA_WIDTH_R : in Integer; DATA_WIDTH_W : in Integer); - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute RESETMODE : string; - attribute MEM_LPC_FILE of statts_mem_0_0_0 : label is "statts_mem.lpc"; - attribute MEM_INIT_FILE of statts_mem_0_0_0 : label is ""; - attribute RESETMODE of statts_mem_0_0_0 : label is "SYNC"; - -begin - -- component instantiation statements - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - statts_mem_0_0_0: PDPW16KC - generic map (CSDECODE_R=> "0b000", CSDECODE_W=> "0b001", GSR=> "DISABLED", - REGMODE=> "NOREG", DATA_WIDTH_R=> 9, DATA_WIDTH_W=> 36) - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>scuba_vlo, DI9=>Data(8), DI10=>Data(9), DI11=>Data(10), - DI12=>Data(11), DI13=>Data(12), DI14=>Data(13), - DI15=>Data(14), DI16=>Data(15), DI17=>scuba_vlo, - DI18=>Data(16), DI19=>Data(17), DI20=>Data(18), - DI21=>Data(19), DI22=>Data(20), DI23=>Data(21), - DI24=>Data(22), DI25=>Data(23), DI26=>scuba_vlo, - DI27=>Data(24), DI28=>Data(25), DI29=>Data(26), - DI30=>Data(27), DI31=>Data(28), DI32=>Data(29), - DI33=>Data(30), DI34=>Data(31), DI35=>scuba_vlo, - ADW0=>WrAddress(0), ADW1=>WrAddress(1), ADW2=>WrAddress(2), - ADW3=>WrAddress(3), ADW4=>WrAddress(4), ADW5=>WrAddress(5), - ADW6=>WrAddress(6), ADW7=>WrAddress(7), ADW8=>scuba_vlo, - BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>WrClockEn, CLKW=>WrClock, CSW0=>WE, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>RdAddress(0), - ADR4=>RdAddress(1), ADR5=>RdAddress(2), ADR6=>RdAddress(3), - ADR7=>RdAddress(4), ADR8=>RdAddress(5), ADR9=>RdAddress(6), - ADR10=>RdAddress(7), ADR11=>RdAddress(8), - ADR12=>RdAddress(9), ADR13=>scuba_vlo, CER=>RdClockEn, - CLKR=>RdClock, CSR0=>scuba_vlo, CSR1=>scuba_vlo, - CSR2=>scuba_vlo, RST=>Reset, DO0=>Q(0), DO1=>Q(1), DO2=>Q(2), - DO3=>Q(3), DO4=>Q(4), DO5=>Q(5), DO6=>Q(6), DO7=>Q(7), - DO8=>open, DO9=>open, DO10=>open, DO11=>open, DO12=>open, - DO13=>open, DO14=>open, DO15=>open, DO16=>open, DO17=>open, - DO18=>open, DO19=>open, DO20=>open, DO21=>open, DO22=>open, - DO23=>open, DO24=>open, DO25=>open, DO26=>open, DO27=>open, - DO28=>open, DO29=>open, DO30=>open, DO31=>open, DO32=>open, - DO33=>open, DO34=>open, DO35=>open); - -end Structure; - --- synopsys translate_off -library ecp3; -configuration Structure_CON of statts_mem is - for Structure - for all:VHI use entity ecp3.VHI(V); end for; - for all:VLO use entity ecp3.VLO(V); end for; - for all:PDPW16KC use entity ecp3.PDPW16KC(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/gbe_ecp2m/ipcores/statts_mem_tmpl.vhd b/gbe_ecp2m/ipcores/statts_mem_tmpl.vhd deleted file mode 100644 index 9953b55..0000000 --- a/gbe_ecp2m/ipcores/statts_mem_tmpl.vhd +++ /dev/null @@ -1,19 +0,0 @@ --- VHDL module instantiation generated by SCUBA Diamond_1.3_Production (92) --- Module Version: 6.1 --- Mon Dec 5 22:40:38 2011 - --- parameterized module component declaration -component statts_mem - port (WrAddress: in std_logic_vector(7 downto 0); - RdAddress: in std_logic_vector(9 downto 0); - Data: in std_logic_vector(31 downto 0); WE: in std_logic; - RdClock: in std_logic; RdClockEn: in std_logic; - Reset: in std_logic; WrClock: in std_logic; - WrClockEn: in std_logic; Q: out std_logic_vector(7 downto 0)); -end component; - --- parameterized module component instance -__ : statts_mem - port map (WrAddress(7 downto 0)=>__, RdAddress(9 downto 0)=>__, Data(31 downto 0)=>__, - WE=>__, RdClock=>__, RdClockEn=>__, Reset=>__, WrClock=>__, - WrClockEn=>__, Q(7 downto 0)=>__); diff --git a/gbe_ecp2m/ipcores/tb_fifo_1024x16x8_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_1024x16x8_tmpl.vhd deleted file mode 100644 index 2d1eced..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_1024x16x8_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_1024x16x8 - port (Data : in std_logic_vector(17 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(17 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(8 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_1024x16x8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 1027 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 1027 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 1027 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_2048x8_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_2048x8_tmpl.vhd deleted file mode 100755 index 343af71..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_2048x8_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_2048x8 - port (Data : in std_logic_vector(7 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(7 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_2048x8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 2051 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_2048x8x16_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_2048x8x16_tmpl.vhd deleted file mode 100644 index ceb4df6..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_2048x8x16_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_2048x8x16 - port (Data : in std_logic_vector(8 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(17 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(8 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(17 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_2048x8x16 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 2051 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 2051 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb2_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb2_tmpl.vhd deleted file mode 100644 index 080aaa7..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb2_tmpl.vhd +++ /dev/null @@ -1,119 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond (64-bit) 3.9.1.119 -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -use IEEE.math_real.all; - -use IEEE.numeric_std.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_32kx16x8_mb2 - port (Data : in std_logic_vector(17 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(8 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic - ); - end component; - - signal Data : std_logic_vector(17 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal AmEmptyThresh : std_logic_vector(15 downto 0) := (others => '0'); - signal AmFullThresh : std_logic_vector(14 downto 0) := (others => '0'); - signal Q : std_logic_vector(8 downto 0); - signal WCNT : std_logic_vector(15 downto 0); - signal RCNT : std_logic_vector(16 downto 0); - signal Empty: std_logic; - signal Full: std_logic; - signal AlmostEmpty: std_logic; - signal AlmostFull: std_logic; -begin - u1 : fifo_32kx16x8_mb2 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - AmEmptyThresh => AmEmptyThresh, AmFullThresh => AmFullThresh, - Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full, - AlmostEmpty => AlmostEmpty, AlmostFull => AlmostFull - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 32771 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd deleted file mode 100755 index 1ad6e7d..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd +++ /dev/null @@ -1,115 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_32kx16x8_mb - port (Data : in std_logic_vector(15 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(7 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic; AlmostEmpty: out std_logic; - AlmostFull: out std_logic - ); - end component; - - signal Data : std_logic_vector(15 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal AmEmptyThresh : std_logic_vector(15 downto 0) := (others => '0'); - signal AmFullThresh : std_logic_vector(14 downto 0) := (others => '0'); - signal Q : std_logic_vector(7 downto 0); - signal WCNT : std_logic_vector(15 downto 0); - signal RCNT : std_logic_vector(16 downto 0); - signal Empty: std_logic; - signal Full: std_logic; - signal AlmostEmpty: std_logic; - signal AlmostFull: std_logic; -begin - u1 : fifo_32kx16x8_mb - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - AmEmptyThresh => AmEmptyThresh, AmFullThresh => AmFullThresh, - Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full, - AlmostEmpty => AlmostEmpty, AlmostFull => AlmostFull - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 32771 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_tmpl.vhd deleted file mode 100755 index 3bbafb6..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_tmpl.vhd +++ /dev/null @@ -1,106 +0,0 @@ --- VHDL testbench template generated by SCUBA ispLever_v8.0_PROD_Build (41) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_32kx16x8 - port (Data : in std_logic_vector(15 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(7 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(15 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); - signal WCNT : std_logic_vector(15 downto 0); - signal RCNT : std_logic_vector(16 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_32kx16x8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 32771 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 32771 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_4096x32_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_4096x32_tmpl.vhd deleted file mode 100755 index 0559dd7..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_4096x32_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_4096x32 - port (Data : in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(31 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(31 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(31 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_4096x32 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 4099 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_4096x9_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_4096x9_tmpl.vhd deleted file mode 100755 index 9352be8..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_4096x9_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_4096x9 - port (Data : in std_logic_vector(8 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(8 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(8 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_4096x9 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 4099 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 4099 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_512x32_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_512x32_tmpl.vhd deleted file mode 100644 index 7353ce2..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_512x32_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_512x32 - port (Data : in std_logic_vector(31 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(31 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(31 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(31 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_512x32 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 515 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_512x64_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_512x64_tmpl.vhd deleted file mode 100644 index dc94036..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_512x64_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_512x64 - port (Data : in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(71 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(71 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(71 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_512x64 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 515 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_512x72_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_512x72_tmpl.vhd deleted file mode 100644 index 7c36749..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_512x72_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_512x72 - port (Data : in std_logic_vector(71 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(71 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(71 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(71 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_512x72 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 515 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 515 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_64kx8_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_64kx8_tmpl.vhd deleted file mode 100755 index 2096041..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_64kx8_tmpl.vhd +++ /dev/null @@ -1,102 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_64kx8 - port (Data : in std_logic_vector(7 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(7 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(7 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_64kx8 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 65539 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_fifo_64kx9_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_64kx9_tmpl.vhd deleted file mode 100644 index d2a16b3..0000000 --- a/gbe_ecp2m/ipcores/tb_fifo_64kx9_tmpl.vhd +++ /dev/null @@ -1,106 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond (64-bit) 3.9.1.119 -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -use IEEE.math_real.all; - -use IEEE.numeric_std.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component fifo_64kx9 - port (Data : in std_logic_vector(8 downto 0); - WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; - RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; - Q : out std_logic_vector(8 downto 0); Empty: out std_logic; - Full: out std_logic - ); - end component; - - signal Data : std_logic_vector(8 downto 0) := (others => '0'); - signal WrClock: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal WrEn: std_logic := '0'; - signal RdEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal RPReset: std_logic := '0'; - signal Q : std_logic_vector(8 downto 0); - signal Empty: std_logic; - signal Full: std_logic; -begin - u1 : fifo_64kx9 - port map (Data => Data, WrClock => WrClock, RdClock => RdClock, - WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, - Q => Q, Empty => Empty, Full => Full - ); - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - RdClock <= not RdClock after 5.00 ns; - - process - - begin - WrEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 65539 loop - wait until WrClock'event and WrClock = '1'; - WrEn <= '1' after 1 ns; - end loop; - WrEn <= '0' ; - wait; - end process; - - process - - begin - RdEn <= '0' ; - wait until Reset = '0'; - wait until WrEn = '1'; - wait until WrEn = '0'; - for i in 0 to 65539 loop - wait until RdClock'event and RdClock = '1'; - RdEn <= '1' after 1 ns; - end loop; - RdEn <= '0' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - process - - begin - RPReset <= '1' ; - wait for 100 ns; - RPReset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_ip_mem_tmpl.vhd b/gbe_ecp2m/ipcores/tb_ip_mem_tmpl.vhd deleted file mode 100755 index 862c84d..0000000 --- a/gbe_ecp2m/ipcores/tb_ip_mem_tmpl.vhd +++ /dev/null @@ -1,174 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component ip_mem - port (DataInA : in std_logic_vector(31 downto 0); - DataInB : in std_logic_vector(31 downto 0); - AddressA : in std_logic_vector(7 downto 0); - AddressB : in std_logic_vector(7 downto 0); ClockA: in std_logic; - ClockB: in std_logic; ClockEnA: in std_logic; - ClockEnB: in std_logic; WrA: in std_logic; WrB: in std_logic; - ResetA: in std_logic; ResetB: in std_logic; - QA : out std_logic_vector(31 downto 0); - QB : out std_logic_vector(31 downto 0) - ); - end component; - - signal DataInA : std_logic_vector(31 downto 0) := (others => '0'); - signal DataInB : std_logic_vector(31 downto 0) := (others => '0'); - signal AddressA : std_logic_vector(7 downto 0) := (others => '0'); - signal AddressB : std_logic_vector(7 downto 0) := (others => '0'); - signal ClockA: std_logic := '0'; - signal ClockB: std_logic := '0'; - signal ClockEnA: std_logic := '0'; - signal ClockEnB: std_logic := '0'; - signal WrA: std_logic := '0'; - signal WrB: std_logic := '0'; - signal ResetA: std_logic := '0'; - signal ResetB: std_logic := '0'; - signal QA : std_logic_vector(31 downto 0); - signal QB : std_logic_vector(31 downto 0); -begin - u1 : ip_mem - port map (DataInA => DataInA, DataInB => DataInB, AddressA => AddressA, - AddressB => AddressB, ClockA => ClockA, ClockB => ClockB, - ClockEnA => ClockEnA, ClockEnB => ClockEnB, WrA => WrA, WrB => WrB, - ResetA => ResetA, ResetB => ResetB, QA => QA, QB => QB - ); - - process - - begin - DataInA <= (others => '0') ; - wait for 100 ns; - wait until ResetA = '0'; - for i in 0 to 259 loop - wait until ClockA'event and ClockA = '1'; - DataInA <= DataInA + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - DataInB <= (others => '0') ; - wait for 100 ns; - wait until ResetB = '0'; - wait until WrB = '1'; - for i in 0 to 259 loop - wait until ClockB'event and ClockB = '1'; - DataInB <= DataInB + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - AddressA <= (others => '0') ; - wait for 100 ns; - wait until ResetA = '0'; - for i in 0 to 518 loop - wait until ClockA'event and ClockA = '1'; - AddressA <= AddressA + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - AddressB <= (others => '0') ; - wait for 100 ns; - wait until ResetB = '0'; - wait until WrB = '1'; - for i in 0 to 518 loop - wait until ClockB'event and ClockB = '1'; - AddressB <= AddressB + '1' after 1 ns; - end loop; - wait; - end process; - - ClockA <= not ClockA after 5.00 ns; - - ClockB <= not ClockB after 5.00 ns; - - process - - begin - ClockEnA <= '0' ; - wait for 100 ns; - wait until ResetA = '0'; - ClockEnA <= '1' ; - wait; - end process; - - process - - begin - ClockEnB <= '0' ; - wait for 100 ns; - wait until ResetB = '0'; - ClockEnB <= '1' ; - wait; - end process; - - process - - begin - WrA <= '0' ; - wait until ResetA = '0'; - for i in 0 to 259 loop - wait until ClockA'event and ClockA = '1'; - WrA <= '1' after 1 ns; - end loop; - WrA <= '0' ; - wait; - end process; - - process - - begin - WrB <= '0' ; - wait until ResetB = '0'; - wait until WrA = '1'; - wait until WrA = '0'; - for i in 0 to 259 loop - wait until ClockA'event and ClockA = '1'; - end loop; - for i in 0 to 259 loop - wait until ClockB'event and ClockB = '1'; - WrB <= '1' after 1 ns; - end loop; - WrB <= '0' ; - wait; - end process; - - process - - begin - ResetA <= '1' ; - wait for 100 ns; - ResetA <= '0' ; - wait; - end process; - - process - - begin - ResetB <= '1' ; - wait for 100 ns; - ResetB <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_mac_init_mem_tmpl.vhd b/gbe_ecp2m/ipcores/tb_mac_init_mem_tmpl.vhd deleted file mode 100755 index 701eaf3..0000000 --- a/gbe_ecp2m/ipcores/tb_mac_init_mem_tmpl.vhd +++ /dev/null @@ -1,64 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component mac_init_mem - port (Address : in std_logic_vector(5 downto 0); - OutClock: in std_logic; OutClockEn: in std_logic; - Reset: in std_logic; Q : out std_logic_vector(7 downto 0) - ); - end component; - - signal Address : std_logic_vector(5 downto 0) := (others => '0'); - signal OutClock: std_logic := '0'; - signal OutClockEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); -begin - u1 : mac_init_mem - port map (Address => Address, OutClock => OutClock, OutClockEn => OutClockEn, - Reset => Reset, Q => Q - ); - - process - - begin - Address <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 57 loop - wait until OutClock'event and OutClock = '1'; - Address <= Address + '1' after 1 ns; - end loop; - wait; - end process; - - OutClock <= not OutClock after 5.00 ns; - - process - - begin - OutClockEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - OutClockEn <= '1' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tb_statts_mem_tmpl.vhd b/gbe_ecp2m/ipcores/tb_statts_mem_tmpl.vhd deleted file mode 100644 index 8428650..0000000 --- a/gbe_ecp2m/ipcores/tb_statts_mem_tmpl.vhd +++ /dev/null @@ -1,124 +0,0 @@ --- VHDL testbench template generated by SCUBA Diamond_1.3_Production (92) -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.std_logic_unsigned.all; - -entity tb is -end entity tb; - - -architecture test of tb is - - component statts_mem - port (WrAddress : in std_logic_vector(7 downto 0); - RdAddress : in std_logic_vector(9 downto 0); - Data : in std_logic_vector(31 downto 0); WE: in std_logic; - RdClock: in std_logic; RdClockEn: in std_logic; - Reset: in std_logic; WrClock: in std_logic; - WrClockEn: in std_logic; Q : out std_logic_vector(7 downto 0) - ); - end component; - - signal WrAddress : std_logic_vector(7 downto 0) := (others => '0'); - signal RdAddress : std_logic_vector(9 downto 0) := (others => '0'); - signal Data : std_logic_vector(31 downto 0) := (others => '0'); - signal WE: std_logic := '0'; - signal RdClock: std_logic := '0'; - signal RdClockEn: std_logic := '0'; - signal Reset: std_logic := '0'; - signal WrClock: std_logic := '0'; - signal WrClockEn: std_logic := '0'; - signal Q : std_logic_vector(7 downto 0); -begin - u1 : statts_mem - port map (WrAddress => WrAddress, RdAddress => RdAddress, Data => Data, - WE => WE, RdClock => RdClock, RdClockEn => RdClockEn, Reset => Reset, - WrClock => WrClock, WrClockEn => WrClockEn, Q => Q - ); - - process - - begin - WrAddress <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 516 loop - wait until WrClock'event and WrClock = '1'; - WrAddress <= WrAddress + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - RdAddress <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 516 loop - wait until RdClock'event and RdClock = '1'; - RdAddress <= RdAddress + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - Data <= (others => '0') ; - wait for 100 ns; - wait until Reset = '0'; - for i in 0 to 258 loop - wait until WrClock'event and WrClock = '1'; - Data <= Data + '1' after 1 ns; - end loop; - wait; - end process; - - process - - begin - WE <= '0' ; - wait until Reset = '0'; - for i in 0 to 258 loop - wait until WrClock'event and WrClock = '1'; - WE <= '1' after 1 ns; - end loop; - WE <= '0' ; - wait; - end process; - - RdClock <= not RdClock after 20.00 ns; - - process - - begin - RdClockEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - RdClockEn <= '1' ; - wait; - end process; - - process - - begin - Reset <= '1' ; - wait for 100 ns; - Reset <= '0' ; - wait; - end process; - - WrClock <= not WrClock after 5.00 ns; - - process - - begin - WrClockEn <= '0' ; - wait for 100 ns; - wait until Reset = '0'; - WrClockEn <= '1' ; - wait; - end process; - -end architecture test; diff --git a/gbe_ecp2m/ipcores/tsmac3/.cvsignore b/gbe_ecp2m/ipcores/tsmac3/.cvsignore deleted file mode 100644 index 1fb5c68..0000000 --- a/gbe_ecp2m/ipcores/tsmac3/.cvsignore +++ /dev/null @@ -1,9 +0,0 @@ -*.jhd -*.naf -*.srp -*.sym -*.log -*.tcl -*.v -*tmpl.vhd -ts_mac_eval diff --git a/gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo b/gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo deleted file mode 100755 index 47d679a603be8ceb0e8a2a16f117aed5249c7e32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11279 zcma)C4Rlr2m3~S1*$8U2r;3W z1+|m0v_seUlW9kd|EZ!xtZl49BZ5Xija4+Xj7G~$ku^H;2hBpuWR2r6``i26m;3H} zYdOy)?DL)P?6c24=iamT-3*N!9WVEl&Gq3ojjSzQ{C8ga`qos(s`aU+_TcKa4QSLvTV3da0QENE_@x8CpfQQLKWXx3gGEUzo~2Ypm>Z=(RAs%T}j!AEP4 zY(={|7!NH*_kmt+<}Ho}E3IJ43e^Q;R%Kn-Ck9Nv8e^ngSiTz0JHpmkh@n; ze2Mvz{N7I^hYkhQiaM;z~(#n>zO7S`3Km7Q= z%18EXGSk-%_NVwiUXdKp{I8?)f>yP_sHRmLS8e#=MqWef58ME+;<7}yi&4R*JlEv{ z7Vwa!F&6*_Hg9zS?BLecJ{Q1_Yh6+50{FDFwlul`_O#U>b^&EP#y;YABRr4&t710- z+fKMmDP!a8u0l5lyZuOy8{x_ASic+LMccbF^uV5NHEs@j%Kmu~VFxkcgBQ29{ z_DIPw*97b{Yt(HK9F%YkfPYFpagD&rt0yKkma$4}bl3&3(e`D1E&xNmTj2uWt9M3S z0G^W%(_6=mVZxt_T?7CJ+yEB-S$f-A+qgaZ{9Yb0#cBxii}Cx%WWq$p;&mI=@B>~l zHo=|w%Y76$h?(S^%i6-_3&O>`Q1>NIC%G<8-p)w zeN{O6;cRQesGC&=GwjQTGBDU-?>Xy>xsg)r0uP%_E!?gMhnA(P?AWr(I^Mb2GYVZ; zs5;5o_ltAG)!{_hRZIDbUHMcyrdw7Y4KCsC5Bkum3)ZD-!;4c_hiX|($>-wgC9xy{=u(-vA$`+9<&V|Y=<9QhF)*$Dge$0c)7IchyP&r1IcxMy$Zuib6 z2Q%uOtxU*wHhL7x0g69UBUDVCwbFnMV*@=HRF5~OV`R0r7l-;hbM;Ni8R6FMK z{gxg`hOcair4!&#?MP}}~d@Cl-GULm6#>6*9lvd96S~Wwafg9VZ(FQJjt2tnL zpzXY^rU3(fJ7^kgX5xHxS$#P#*zVvCKB@KPm~^HwryLjep+?igtfPf0mvKjYV#qYG zW~<0FU`@)*S;j_N@pjY0ezMOPFb$qFt|38ny~KX2M@$bJZ7mI(2DAR^C}Yc-f1=|< zvC692U^OfJ7t_m~)=eshu%1nZ$hO5lN{Y4+d{fn}GMkwwV3F4xf@@FfQW=|>H>@&F zLi|NT!p_D&GCl0e_zMmTj%{~XaLjW7GoF`XPa84~Sa^58Hp;Qc9gU`ellXeKX~3A% zogTJ0{`sis!TCE;Y#NxfeyeG~v}a)gF9y3Af6nwEM71=$uMWxCSnkkZP9k8&V4tt8 zFb&Agc%IW*KBOJ8o7RMBu+i3tQ6|S>yvOvw{aeOO19o25YZ~x}-%Nuk|1f4cV9d`< z2g~spEz(hGRi+Z5YO5v{WpK0VoCFgLj)@_vo6GhMUMq71oF~-H|~HxSQhuPPL%b}2Wke;PFnHqq{3nGFb{BQ&Hk z@L7$JE32b8f?YCwWp!dc_dt~|uPVs1&-S5XN>y$B;-$FQLd&k^0MA+{eyIw=t*gYo zsvxh=o>inH;mBJZm3(^aDUIl0{XD`-222BIL8D?}Xj#~{7J7qd`+jUzy4xEk z+WWCHdFB3v^|poa>F6Uqqn~^7=VCQJv6)Fahx?+r;=C{v_*eV!WhnkYqtjv!H_Ytg z7XL1O+vl6LMP=T476Q_c?<08yNQw~Q?|Aq4r%deT@FYArn6>-(8xc|?iagRN1No19 zZsI$NGrTh#I^)uA9{vxsqP-^f@P-Qp+{5uLVusGnK~w=kC4Agq;rgw_3oD@b_Aac6 zze9cQ$6L7o!88&O?xIpeS}e?H;s1F!Ke-S_tM5L>X52yz=d@&+(WXy7#Wt5ZX5{g1 z;#EP>AT~mNjLBPyqWQe$Neu6OidsW1Oy1NKO^muQxf3XQX?m%wPu}|!t>|*`MYjbE#M_~-G>YsUcVl=>QcPYH&RBUTQbUW|zBt~X)Nr3O z6#C>vN)6kJ9T4;4?M@9ZyD62^I!;|aRi}BLDw#c3B;Yl3e z!Q|HWVh9mDn7lSAc|m}?9HKg&%>vHx_hSE2!mz36w3#XUx`;S3%wL5khw(8Mpe3MqDznD0!sE8H{s)HxMO5H7-ozC(l@kkGvSdBo8K^QYdn`)TK}2aY{D#J6Jx?i)fyb z^@DCqvI+;_znQ1$Q6{FjR3@g$Sth2*SSF^4TPCInoClLE(1S_Vk%?*clk|=vJI7o+ z$r&kn*N_X71d$?(#@!gwNs4^rK(cShD(RZqVF%0WULhZWs3`w{FWj= z<`ben*oQQil7W6VhNPI1ck&5N^CX3)WGd;xB$KAt(ry2p1Xfd|eOSvJSQp1bJz7q| z$|-V?nY+f|uT+wvQ%AJ?0q;@df7-Rs0sm60rdW#{*a3>%)1{>!>=DIosL{$0c9Eio z#u4mCU692B{6jO3d&-aQn%IH}*P@wTJL-wkMO5brsP zeX~*Po48#lGSaQp5yUza`BRq`PY?}}{W0$y>L7@h$bNS~%Or@X$mX?6;Ri7n*#}6= zABf7xeww}e-3pAm&qwwH6Iwh$WXIXynASlM`;mP|p%y_99g=$ar1|Weyx|{ULotBlUgpt%|q7hBU(Sk-NdJRPz$8Ey~z5}FiG_k z_ZwNAHCi6U4ags!d$o3oJCdx{F0GZ~7A323L@UdPNjRb()Uq?87P3~>Xqg#t4M#YA zTCPUq!(Wnyw8)Iuh^+9KR-h3*kySUUC1%7|wBqa{tv@3IqZNO{&ov^ZMTF{3K0m3% znaRLNp80A#eNN%kYe8{>BwX-ZAd+XLc>y)V>7DA-RSPtgY19zQzQuFUK%=G5=(YyV7{8YDsIv6dXnDev!l`$1)Dhy|VNCvq?gu01m6kTNwu19Kvm z&it<~ntzEhHM|3p{grKJ-pkK)zA8);95NF{s%)n3n#L~jc3?>u3e1QAUBnxD-q9GY{- za%F0I$xNHe0olwmV~0=wM46hL!cHy)WHZnBboa@F%GA^rI=Ot2%{=|tUz{0GrY6Q< za={>*IqT$b*K}pJjN)%Fx#Ez`ocU7Mh%HQ$l*3N0D`YcIYrg%&_l0RvdS+T&zR70J zsH|QZ5vKVd0G(X^$!5~4@Aj1_Q$HubPA(s1GpBDVdHKJUsUIW2Y zpE6)47pk(EQy1>L^@|Vm)R~VkU_O@X zBsnWY6w9(f{sFVVciJ%+wk>gHBor z?AvlG7&9pluyzdOpOY#9lX5sPliDz*{~kdwOmp&A zaF>~=?Plvdv$yXZeS%D|3_H03p3OX?fB8G_i%t`2V|K0sXERU#+a&*^GyXY&I&^Y% zIGZ_Z6Fs;|nHuK9&R25HK6AmGNUbt8Nx!g;Cc5V@-NpGN&>-gEs>0j!tDGH z0kWA>3;Sl?EILhM1}6WDgly)Nm9^1sVVblK%#oHH%z{sj&3Qw0YEme64(4Fy*Ny+1 z-q$9jgwFlBX3zVtq8G0hohBg#^R~(N%;fp>{c_tKyVXujXZZs*|1Q28sgg*&NRvdm z2Pu+B_aZ$K={}@JBHfR)NTdgl5{dL6(jk!^LMkLuAJQO^euWfBq=%9Ii1Y|jACa~p z?Gfowq&y-$hIB`y?MQV*>PMO*(&I>RMB0J$Mx-Z@+KBXPq%|TviIhg9-yoe4>9fREBhphyVMO{J(if4QM(QHcGe}!R+KH4!q+Li?MEX5a6_Ey!rik<`QWTMPBRvu6 zIiw~c?Lk^1(q5z_B0Z0EM5Gsxiik9XG(@Bqk%EY{59x5jz&!(K7ZAV#i@<$98CIXQ(qwqhiHR;zu=pl2XRTR)=&t*31aDzu&p{EpP8; zTz%x6-#z!-bMJlco{u{=J~>_HlrDGpo2#~cG>N}~p&iM@aLVYjTYti*NHz`G*^YTfmb z8nA_@4ucKU#N1%3n`n(Ry7AUvW7Lts=LFc^P;qWfE){dETq>Z}Y~-oDrX+NoRfV5d zQ0Ly^zCqac4UQMs+tb@ST;{00!tpc<>pSPFG`rGKZNEC6W|upvuHsmlEp=3Kv(`&h zm}+s0wC>t+`{tg+p8jMaIk;;#;cj*^@b;YsUR+R+0Xu53d)kNeC$SixiN@jHE!zjM zQguaaALei{rtp9LX%?m?Z>>(Vm`LHJ=`;&d8!oh`Sy6F%;*BjXD`1~5 z5=xZtKSwRSM@;)d(L}T{5=|t^S0oav@qY+2=#*Z)J-d5$-o6`FCVQtiq5;Ysbz@t~ z2UI|!Z^Q?z0+1Z_0a%A*N0ATUI`wz^0IuWNF%L)%l0Q>_nWxHul*hv?%r4o}?*p*7 zg_n+bKynaP6~0n^na7ZYifvoj&&%!kbk+I26V|c zA}_`AuN`7r+i(zX1wO@&m1{~i6)nHXQQtWyZ)e+Z&GwyJ@cI-^%|J3|qob-{njmFb zTznK&Rim?LSqUwb_o-Q0R-mP7cuHFE(N@i;LfeQE2$hYaA*-c~Ehkg6w3MP{Xa~O19>xL+1vZ?q48{!+9Y8u3bc-q+vX1JyN6$Cjish`lG|HBijtag|^>{Z95>wRrA#-rT(-VhkP^W2o_g!8oX?E=H# z@a($#gkefySJ$xDR7!;hD!evytAA$H;~dp;#8X&`6FG8b%xi+mmK`aN!)e@->egHk zQ*HTZ#5AGhmQROF3uY3(|CnKDM{II|;b461V!dI|(o$D#7#P^{ENHwV%|X}~yJ)5# zv7bB!uxQBl~o#?9%erP8$w$>u5C{xz8JnC6N$TCw8>m zh{68SYHd{{1cNKLczs}R)p3u3xuI(hc>_Vt{rb4aVWi5CwigybVemI;`=BKF*|aAK zb3@++gC&L}bw;8dhl#rHjA$;%0UGlS1LH%Rj~fP?9=h2Z41MZ~i%biq<-SvG7}ylP ze#S5`DfGfI!@wf^?AIIGE?&Y0L|9TA^^d8z$n`6?olf?S4-` z_t}l6IcnK6;z@!zlkUbD2a8M-n8m%iSFkmhXp7Xg)+ca!_npk(So0Rc_wLBEv-=|Cq-;AhH$E65>QXbU~&>Ep-j{;6HJ1z|*}f7%Gb)=oqv`+d_BbxsMsFxFcI%XBW7EC$o*tJfryZZBz~T3;pF7U{l#uu*56>cDB&iGJGDu|5STnq39R&BQj{o{P!x{&f zDdTHZ^D&2)Uk+F%e_r=p(Y&&&#?bu$x~DFW?eG3=#f_7nbT2D#=IhbnGIJSeFuBU* zH>NO^T!k;o5b+5{DQJ2mUlRy6cvR;q1Z50ta~ZEObjf8IZ=J-p&iS>l z@J?7~O>kJB4J!I3_fdWU>?)5EBrwX4@x($BQ{cyVk|NdO_R0@^p*EKCA<3zK-q!X!SjFo}|EjPaL+Nu*_A5}8?;#Ai0fz|q3Q#n~7= zosH4!T9~+4HCQ_3+c$B@D!IY`Ziru2$*syKC!Sx`ty_2wkW?ZQ(-})9rt_doOeZ~=m`;&0F`X%8Vmd#~#B>^#iRq**6Vn+_ zCZ2avT1#fXyAj6V>%??wLw%?AEnx?kb)UT|ei(<2j_O)O<7WfRk?? z?~Y1t8rKD2dQwPE>T)uDC`Oo8Qp)5Pj!{nQQYOzCHBg_@_Ypi{)W9v(`dWp47SFUU zf;0L;`;0E4Gd@!te>|-V;Edpa9M|P>#&|%+bupY#AfA3*jAxvPC#nnKj3iazzb15< zoUtZC?J->xXEds=Tm_DoAv}jw+tG1-7s8WTxz`uzdlR1Js;+uQ--PhASIO2%*gMVD z-H@-6i3R#vgdRf;t{BmGL5y?MKux~BC}Jdpr(0hPF;-H`US6Q@lo(9`*{5%b7;oVz z(U(Mw$kdX%C-|ZToExOxo`bhX^|P`aFjdGo@jDJbK@l&w!U4|ud$wfWkB)_rh(OYW zW{~7fK(=J=&z}FBg6Y5xk}S$+OXj@sgXmE$sl!4_o=nXm8K~QM=R+cCf=Wp83Lsmj zGZLLyCXyy3g(NH9MiNEo^xS`YYu~3LX`Cr_qH3NknfK_mpFbj!#uZZ%74dAzT=(El zdqvVXa!9hOo-LX4lY@7CB9bNyfFx__*^+_98(SXGk~)ZhB<~5bC7toE9WRNb2|;Kl zD!E2-(Z{3S+|}bBysmYcZA>ltRrVj=HBt>Ki6wXo$^7FW$0|loTgV> z7HdhJFhY`L=xoWrnu`w=Ye}7MLXt)HY)R+L*wYOnX_8e)>f0)SUSdE@ZgB+DK@+hd zcEryMu83_)350_}Cjr3p?Hc7w@&QcWs|lu)6!yiXiLnqj59uAhzw^$e)akiPxFTMQ zWJ}JwDO4s7n(l!;AjzwlY{|L%UmSdy5}vE3&LgwwoO9~k`R!U#J9Lpd_w!vL$milDwwLmJB@j_*>>%(*X`8 zamAA@=`73Nb5QHl;St<8e%Jh&u2-lrx?Q23q{|iRDY{#so~El6>J;6qP|wiC3iTJd zSD~JzYZdA=-KtQ}(WMIYJl&~KFVK|=^&;J-J?)%(lrW&V$dp0y+xNO*xPi6LcK#*DAc=jgF?MW l7bw*GbbmsfrRx)Fl5S6^ztQChb&l>%sK3+I33Z-s?*F-6OnU$T diff --git a/gbe_ecp2m/ipcores/tsmac3/ts_mac_eval.tar b/gbe_ecp2m/ipcores/tsmac3/ts_mac_eval.tar deleted file mode 100644 index bd092f23d9a3a9ce48b375d3c0b1d20b4c9c9934..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368640 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%0AaR}YOKq%y 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�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 if ( (HCS_N = '0') and (HREAD_N = '0') ) then - HC_NEXT_STATE <= HC_READ; - elsif( (HCS_N = '0') and (HWRITE_N = '0') ) then - HC_NEXT_STATE <= HC_WRITE; - else - HC_NEXT_STATE <= HC_SLEEP; - end if; - when HC_READ => HC_NEXT_STATE <= HC_RACK; - hdataout_en_n_comb <= '0'; - hready_n_comb <= '0'; - when HC_RACK => HC_NEXT_STATE <= HC_SLEEP; - when HC_WRITE => HC_NEXT_STATE <= HC_WACK; - hready_n_comb <= '0'; - when HC_WACK => HC_NEXT_STATE <= HC_SLEEP; - when others => HC_NEXT_STATE <= HC_SLEEP; - end case; -end process HC_STATE_TRANSFORM; - -HREADY_N <= hready_n_buf; -HDATAOUT_EN_N <= hdataout_en_n_buf; - ------------------------------------------------------------------------------- --- state machine for "transmission" ------------------------------------------------------------------------------- - --- preread counter -THE_PREREAD_CTR: process( TX_MAC_CLK ) -begin - if ( RESET_N = '0' ) then - preread_ctr <= (others => '0'); - elsif( rising_edge(TX_MAC_CLK) ) then - if ( preread_rst_comb = '1' ) then - preread_ctr <= (others => '0'); - elsif( preread_ce_comb = '1' ) then - preread_ctr <= preread_ctr + 1; - end if; - end if; -end process THE_PREREAD_CTR; -preread_done_comb <= '1' when (preread_ctr = x"6") - else '0'; - --- state registers -TX_STATE_MEM: process( TX_MAC_CLK, RESET_N ) -begin - if ( RESET_N = '0' ) then - TX_CURRENT_STATE <= TX_SLEEP; - tx_done_buf <= '0'; - elsif( rising_edge(TX_MAC_CLK) ) then - TX_CURRENT_STATE <= TX_NEXT_STATE; - tx_done_buf <= tx_done_comb; - end if; -end process TX_STATE_MEM; - -tx_macread_comb <= preread_ce_comb or read_on_comb; - --- state transitions -TX_STATE_TRANSFORM: process( TX_CURRENT_STATE, TX_FIFOEMPTY, TX_FIFOAVAIL, TX_FIFOEOF, preread_done_comb ) -begin - TX_NEXT_STATE <= TX_SLEEP; -- avoid latches - preread_ce_comb <= '0'; - preread_rst_comb <= '0'; - read_on_comb <= '0'; - tx_done_comb <= '0'; - case TX_CURRENT_STATE is - when TX_SLEEP => tx_bsm <= x"0"; - if( TX_FIFOEMPTY = '0' ) then - TX_NEXT_STATE <= TX_READ; - preread_ce_comb <= '1'; - else - TX_NEXT_STATE <= TX_SLEEP; - end if; - when TX_READ => tx_bsm <= x"1"; - if ( TX_FIFOEMPTY = '1' ) then - TX_NEXT_STATE <= TX_DELAY; - preread_rst_comb <= '1'; - elsif( (preread_done_comb = '1') and (TX_FIFOAVAIL = '0') ) then - TX_NEXT_STATE <= TX_DELAY; - preread_rst_comb <= '1'; - elsif( (preread_done_comb = '1') and (TX_FIFOAVAIL = '1') ) then - TX_NEXT_STATE <= TX_TRANS; - preread_rst_comb <= '1'; - read_on_comb <= '1'; - else - TX_NEXT_STATE <= TX_READ; - preread_ce_comb <= '1'; - end if; - when TX_DELAY => tx_bsm <= x"2"; - if( TX_FIFOAVAIL = '1' ) then - TX_NEXT_STATE <= TX_TRANS; - read_on_comb <= '1'; - else - TX_NEXT_STATE <= TX_DELAY; - end if; - when TX_TRANS => tx_bsm <= x"3"; - if( TX_FIFOEOF = '1' ) then - TX_NEXT_STATE <= TX_CHECK; - tx_done_comb <= '1'; -- don't know if this is realistic - else - TX_NEXT_STATE <= TX_TRANS; - read_on_comb <= '1'; - end if; - when TX_CHECK => tx_bsm <= x"4"; - if( (TX_FIFOEMPTY = '0') and (TX_FIFOAVAIL = '1') ) then - TX_NEXT_STATE <= TX_READ; - preread_ce_comb <= '1'; - else - TX_NEXT_STATE <= TX_SLEEP; - end if; - when others => tx_bsm <= x"f"; - TX_NEXT_STATE <= TX_SLEEP; - end case; -end process TX_STATE_TRANSFORM; - - - - ------------------------------------------------------------------------------- --- Fake signals ------------------------------------------------------------------------------- -RX_DBOUT <= preread_ctr & tx_bsm; -- x"00"; -RX_FIFO_ERROR <= '0'; -RX_STAT_VECTOR <= x"0000_0000"; -RX_STAT_EN <= '0'; -RX_WRITE <= '0'; -RX_EOF <= '0'; -RX_ERROR <= '0'; - -TX_DISCFRM <= '0'; -TX_EN <= '0'; -TX_ER <= '0'; -TX_STATVEC <= (others => '0'); -TX_STATEN <= '0'; -TXD <= x"00"; - -CPU_IF_GBIT_EN <= '0'; - -TX_DONE <= tx_done_buf; -TX_MACREAD <= tx_macread_comb; - -HDATAOUT <= x"00"; - - -end mb_mac_sim; - - ---port map( --- -------------------------------------------------------------------------- --- --------------- clock, reset, clock enable ------------------------------- --- hclk => CLK, -- (in) host clock (100MHz) --- txmac_clk => TX_MAC_CLK, -- (in) GbE clock (125MHz) --- rxmac_clk => '0', -- (in) not used (no receiving on GbE) --- reset_n => GSR_N, -- (in) global set/reset --- txmac_clk_en => TSM_TX_CLK_EN_IN, -- (in) from SGMII core, '1' for 1GbE operation --- rxmac_clk_en => TSM_RX_CLK_EN_IN, -- (in) from SGMII core, '1' for 1GbE operation --- -------------------------------------------------------------------------- --- --------------- SGMII receive interface ---------------------------------- --- rxd => x"00", -- (in) receive data from SGMII core --- rx_dv => '0', -- (in) data valid from SGMII core --- rx_er => '0', -- (in) receive data error --- col => TSM_COL_IN, -- (in) collision from SGMII core --- crs => TSM_CRS_IN, -- (in) carrier sense from SGMII core --- -------------------------------------------------------------------------- --- --------------- SGMII transmit interface --------------------------------- --- txd => CH_TXD_OUT, -- (out) transmit data to SGMII core --- tx_en => CH_TX_EN_OUT, -- (out) transmit enable --- tx_er => CH_TX_ER_OUT, -- (out) transmit error --- -------------------------------------------------------------------------- --- --------------- CPU configuration interface ------------------------------ --- haddr => haddr, -- (in) host address bus for configuration --- hdatain => hdataout, -- (in) host data bus for write accesses --- hcs_n => hcs, -- (in) host chip select signal --- hwrite_n => hwrite, -- (in) host write strobe signal --- hread_n => hread, -- (in) host read strobe signal --- hdataout => hdatain, -- (out) host data bus for read accesses --- hdataout_en_n => hdataout_en, -- (out) read data valid signal --- hready_n => hready, -- (out) data acknowledge signal --- cpu_if_gbit_en => open, -- (out) status bit --- -------------------------------------------------------------------------- --- --------------- Transmit FIFO interface ---------------------------------- --- tx_fifodata => ft_data(7 downto 0), -- (in) transmit FIFO data bus --- tx_fifoavail => mac_fifoavail, -- (in) transmit FIFO data available --- tx_fifoeof => mac_fifoeof, -- (in) transmit FIFO end of frame --- tx_fifoempty => mac_fifoempty, -- (in) transmit FIFO empty --- tx_macread => mac_tx_rd_en, -- (out) transmit FIFO read --- tx_done => mac_tx_done, -- (out) transmit done (without errors) --- tx_sndpaustim => x"0000", -- (in) PAUSE frame timer --- tx_sndpausreq => '0', -- (in) PAUSE frame request --- tx_fifoctrl => '0', -- (in) FIFO control frame ('0' = data, '1' = control) --- tx_discfrm => open, -- (out) discard frame --- tx_staten => open, -- (out) transmit statistics vector enable --- tx_statvec => open, -- (out) transmit statistics vector --- -------------------------------------------------------------------------- --- --------------- Receive FIFO interface ----------------------------------- --- rx_dbout => open, -- (out) receive FIFO data output --- rx_fifo_full => '0', -- (in) receive FIFO full --- ignore_pkt => '0', -- (in) ignore next packet --- rx_fifo_error => open, -- (out) receive FIFO error --- rx_stat_vector => open, -- (out) receive statistics vector --- rx_stat_en => open, -- (out) receive statistics vector enable --- rx_write => open, -- (out) receive FIFO write --- rx_eof => open, -- (out) end of frame --- rx_error => open -- (out) receive packet error ---); diff --git a/gbe_ecp2m/slv_mac_memory.vhd b/gbe_ecp2m/slv_mac_memory.vhd deleted file mode 100644 index bd74e03..0000000 --- a/gbe_ecp2m/slv_mac_memory.vhd +++ /dev/null @@ -1,178 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - -library work; - -entity slv_mac_memory is -port( - CLK : in std_logic; - RESET : in std_logic; - BUSY_IN : in std_logic; - -- Slave bus - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - -- I/O to the backend - MEM_CLK_IN : in std_logic; - MEM_ADDR_IN : in std_logic_vector(7 downto 0); - MEM_DATA_OUT : out std_logic_vector(31 downto 0); - -- Status lines - STAT : out std_logic_vector(31 downto 0) -- DEBUG -); -end entity; - -architecture Behavioral of slv_mac_memory is - -component ip_mem is -port( - DataInA : in std_logic_vector(31 downto 0); - DataInB : in std_logic_vector(31 downto 0); - AddressA : in std_logic_vector(7 downto 0); - AddressB : in std_logic_vector(7 downto 0); - ClockA : in std_logic; - ClockB : in std_logic; - ClockEnA : in std_logic; - ClockEnB : in std_logic; - WrA : in std_logic; - WrB : in std_logic; - ResetA : in std_logic; - ResetB : in std_logic; - QA : out std_logic_vector(31 downto 0); - QB : out std_logic_vector(31 downto 0) -); -end component ip_mem; - --- Signals -type STATES is (SLEEP,RD_BSY,WR_BSY,RD_RDY,WR_RDY,RD_ACK,WR_ACK,DONE); -signal CURRENT_STATE, NEXT_STATE: STATES; - --- slave bus signals -signal slv_busy_x : std_logic; -signal slv_busy : std_logic; -signal slv_ack_x : std_logic; -signal slv_ack : std_logic; -signal store_wr_x : std_logic; -signal store_wr : std_logic; -signal store_rd_x : std_logic; -signal store_rd : std_logic; - -signal reg_busy : std_logic; - -begin - --- Fake -reg_busy <= busy_in; -stat <= (others => '0'); - ---------------------------------------------------------- --- Statemachine -- ---------------------------------------------------------- --- State memory process -STATE_MEM: process( clk ) -begin - if( rising_edge(clk) ) then - if( reset = '1' ) then - CURRENT_STATE <= SLEEP; - slv_busy <= '0'; - slv_ack <= '0'; - store_wr <= '0'; - store_rd <= '0'; - else - CURRENT_STATE <= NEXT_STATE; - slv_busy <= slv_busy_x; - slv_ack <= slv_ack_x; - store_wr <= store_wr_x; - store_rd <= store_rd_x; - end if; - end if; -end process STATE_MEM; - --- Transition matrix -TRANSFORM: process(CURRENT_STATE, slv_read_in, slv_write_in, reg_busy ) -begin - NEXT_STATE <= SLEEP; - slv_busy_x <= '0'; - slv_ack_x <= '0'; - store_wr_x <= '0'; - store_rd_x <= '0'; - case CURRENT_STATE is - when SLEEP => if ( (reg_busy = '0') and (slv_read_in = '1') ) then - NEXT_STATE <= RD_RDY; - store_rd_x <= '1'; - elsif( (reg_busy = '0') and (slv_write_in = '1') ) then - NEXT_STATE <= WR_RDY; - store_wr_x <= '1'; - elsif( (reg_busy = '1') and (slv_read_in = '1') ) then - NEXT_STATE <= RD_BSY; - elsif( (reg_busy = '1') and (slv_write_in = '1') ) then - NEXT_STATE <= WR_BSY; - else - NEXT_STATE <= SLEEP; - end if; - when RD_RDY => NEXT_STATE <= RD_ACK; - when WR_RDY => NEXT_STATE <= WR_ACK; - when RD_ACK => if( slv_read_in = '0' ) then - NEXT_STATE <= DONE; - slv_ack_x <= '1'; - else - NEXT_STATE <= RD_ACK; - slv_ack_x <= '1'; - end if; - when WR_ACK => if( slv_write_in = '0' ) then - NEXT_STATE <= DONE; - slv_ack_x <= '1'; - else - NEXT_STATE <= WR_ACK; - slv_ack_x <= '1'; - end if; - when RD_BSY => if( slv_read_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= RD_BSY; - slv_busy_x <= '1'; - end if; - when WR_BSY => if( slv_write_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= WR_BSY; - slv_busy_x <= '1'; - end if; - when DONE => NEXT_STATE <= SLEEP; - - when others => NEXT_STATE <= SLEEP; - end case; -end process TRANSFORM; - ---------------------------------------------------------- --- data handling -- ---------------------------------------------------------- - -THE_MAC_MEM: ip_mem -port map( - DataInA => slv_data_in, - AddressA => slv_addr_in, - ClockA => clk, - ClockEnA => '1', - QA => slv_data_out, - WrA => store_wr, - ResetA => reset, - DataInB => x"0000_0000", - AddressB => mem_addr_in, - ClockB => mem_clk_in, - ClockEnB => '1', - WrB => '0', -- never write - ResetB => reset, - QB => mem_data_out -); - --- output signals -slv_ack_out <= slv_ack; -slv_busy_out <= slv_busy; - -end Behavioral; diff --git a/gbe_ecp2m/slv_register.vhd b/gbe_ecp2m/slv_register.vhd deleted file mode 100755 index 763550b..0000000 --- a/gbe_ecp2m/slv_register.vhd +++ /dev/null @@ -1,177 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - -library work; ---use work.adcmv3_components.all; - - -entity slv_register is -generic( RESET_VALUE : std_logic_vector(31 downto 0) := x"0000_0000" ); -port( CLK_IN : in std_logic; - RESET_IN : in std_logic; - BUSY_IN : in std_logic; - -- Slave bus - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - -- I/O to the backend - REG_DATA_IN : in std_logic_vector(31 downto 0); - REG_DATA_OUT : out std_logic_vector(31 downto 0); - -- Status lines - STAT : out std_logic_vector(31 downto 0) -- DEBUG - ); -end entity; - -architecture Behavioral of slv_register is - --- Signals - - type STATES is (SLEEP,RD_BSY,WR_BSY,RD_RDY,WR_RDY,RD_ACK,WR_ACK,DONE); - signal CURRENT_STATE, NEXT_STATE: STATES; - - -- slave bus signals - signal slv_busy_x : std_logic; - signal slv_busy : std_logic; - signal slv_ack_x : std_logic; - signal slv_ack : std_logic; - signal store_wr_x : std_logic; - signal store_wr : std_logic; - signal store_rd_x : std_logic; - signal store_rd : std_logic; - - signal reg_slv_data_in : std_logic_vector(31 downto 0); -- registered data input - signal reg_slv_data_out : std_logic_vector(31 downto 0); -- read back data - signal reg_busy : std_logic; - -begin - --- Fake -reg_busy <= busy_in; -stat <= (others => '0'); - ---------------------------------------------------------- --- Statemachine -- ---------------------------------------------------------- --- State memory process -STATE_MEM: process( clk_in ) -begin - if( rising_edge(clk_in) ) then - if( reset_in = '1' ) then - CURRENT_STATE <= SLEEP; - slv_busy <= '0'; - slv_ack <= '0'; - store_wr <= '0'; - store_rd <= '0'; - else - CURRENT_STATE <= NEXT_STATE; - slv_busy <= slv_busy_x; - slv_ack <= slv_ack_x; - store_wr <= store_wr_x; - store_rd <= store_rd_x; - end if; - end if; -end process STATE_MEM; - --- Transition matrix -TRANSFORM: process(CURRENT_STATE, slv_read_in, slv_write_in, reg_busy ) -begin - NEXT_STATE <= SLEEP; - slv_busy_x <= '0'; - slv_ack_x <= '0'; - store_wr_x <= '0'; - store_rd_x <= '0'; - case CURRENT_STATE is - when SLEEP => if ( (reg_busy = '0') and (slv_read_in = '1') ) then - NEXT_STATE <= RD_RDY; - store_rd_x <= '1'; - elsif( (reg_busy = '0') and (slv_write_in = '1') ) then - NEXT_STATE <= WR_RDY; - store_wr_x <= '1'; - elsif( (reg_busy = '1') and (slv_read_in = '1') ) then - NEXT_STATE <= RD_BSY; - slv_busy_x <= '1'; -- added 23022009 - elsif( (reg_busy = '1') and (slv_write_in = '1') ) then - NEXT_STATE <= WR_BSY; - slv_busy_x <= '1'; -- added 23022009 - else - NEXT_STATE <= SLEEP; - end if; - when RD_RDY => NEXT_STATE <= RD_ACK; - slv_ack_x <= '1'; - when WR_RDY => NEXT_STATE <= WR_ACK; - slv_ack_x <= '1'; - when RD_ACK => if( slv_read_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= RD_ACK; - slv_ack_x <= '1'; - end if; - when WR_ACK => if( slv_write_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= WR_ACK; - slv_ack_x <= '1'; - end if; - when RD_BSY => if( slv_read_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= RD_BSY; - slv_busy_x <= '1'; - end if; - when WR_BSY => if( slv_write_in = '0' ) then - NEXT_STATE <= DONE; - else - NEXT_STATE <= WR_BSY; - slv_busy_x <= '1'; - end if; - when DONE => NEXT_STATE <= SLEEP; - - when others => NEXT_STATE <= SLEEP; - end case; -end process TRANSFORM; - ---------------------------------------------------------- --- data handling -- ---------------------------------------------------------- - --- register write -THE_WRITE_REG_PROC: process( clk_in ) -begin - if( rising_edge(clk_in) ) then - if ( reset_in = '1' ) then - reg_slv_data_in <= RESET_VALUE; - elsif( store_wr = '1' ) then - reg_slv_data_in <= slv_data_in; - end if; - end if; -end process THE_WRITE_REG_PROC; - --- register read -THE_READ_REG_PROC: process( clk_in ) -begin - if( rising_edge(clk_in) ) then - if ( reset_in = '1' ) then - reg_slv_data_out <= (others => '0'); - elsif( store_rd = '1' ) then - reg_slv_data_out <= reg_data_in; - end if; - end if; -end process THE_READ_REG_PROC; - --- output signals -slv_ack_out <= slv_ack; -slv_busy_out <= slv_busy; -slv_data_out <= reg_slv_data_out; - ---------------------------------------------------------- --- signals to backend -- ---------------------------------------------------------- - -reg_data_out <= reg_slv_data_in; - -end Behavioral; diff --git a/gbe_ecp2m/tb_feeder.vhd b/gbe_ecp2m/tb_feeder.vhd deleted file mode 100755 index d526404..0000000 --- a/gbe_ecp2m/tb_feeder.vhd +++ /dev/null @@ -1,300 +0,0 @@ - -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT feeder - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - CTS_NUMBER_IN : IN std_logic_vector(15 downto 0); - CTS_CODE_IN : IN std_logic_vector(7 downto 0); - CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0); - CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0); - CTS_START_READOUT_IN : IN std_logic; - CTS_READ_IN : IN std_logic; - FEE_DATA_IN : IN std_logic_vector(15 downto 0); - FEE_DATAREADY_IN : IN std_logic; - FEE_BUSY_IN : IN std_logic; - FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0); - PC_READY_IN : IN std_logic; - CTS_DATA_OUT : OUT std_logic_vector(31 downto 0); - CTS_DATAREADY_OUT : OUT std_logic; - CTS_READOUT_FINISHED_OUT : OUT std_logic; - CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0); - CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0); - FEE_READ_OUT : OUT std_logic; - PC_WR_EN_OUT : OUT std_logic; - PC_DATA_OUT : OUT std_logic_vector(7 downto 0); - PC_SOS_OUT : OUT std_logic; - PC_EOD_OUT : OUT std_logic; - PC_SUB_SIZE_OUT : OUT std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : OUT std_logic_vector(31 downto 0); - PC_PADDING_OUT : OUT std_logic; - BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0); - BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0); - DBG_REM_CTR_OUT : OUT std_logic_vector(3 downto 0); - DBG_CTS_CTR_OUT : OUT std_logic_vector(2 downto 0); - DBG_SF_WCNT_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RCNT_OUT : OUT std_logic_vector(16 downto 0); - DBG_SF_DATA_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RD_EN_OUT : OUT std_logic; - DBG_SF_WR_EN_OUT : OUT std_logic; - DBG_SF_EMPTY_OUT : OUT std_logic; - DBG_SF_FULL_OUT : OUT std_logic; - DBG_SF_AFULL_OUT : OUT std_logic; - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL CTS_NUMBER_IN : std_logic_vector(15 downto 0); - SIGNAL CTS_CODE_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_INFORMATION_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_READOUT_TYPE_IN : std_logic_vector(3 downto 0); - SIGNAL CTS_START_READOUT_IN : std_logic; - SIGNAL CTS_READ_IN : std_logic; - SIGNAL CTS_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL CTS_DATAREADY_OUT : std_logic; - SIGNAL CTS_READOUT_FINISHED_OUT : std_logic; - SIGNAL CTS_LENGTH_OUT : std_logic_vector(15 downto 0); - SIGNAL CTS_ERROR_PATTERN_OUT : std_logic_vector(31 downto 0); - SIGNAL FEE_DATA_IN : std_logic_vector(15 downto 0); - SIGNAL FEE_DATAREADY_IN : std_logic; - SIGNAL FEE_READ_OUT : std_logic; - SIGNAL FEE_BUSY_IN : std_logic; - SIGNAL FEE_STATUS_BITS_IN : std_logic_vector(31 downto 0); - SIGNAL PC_WR_EN_OUT : std_logic; - SIGNAL PC_DATA_OUT : std_logic_vector(7 downto 0); - SIGNAL PC_READY_IN : std_logic; - SIGNAL PC_SOS_OUT : std_logic; - SIGNAL PC_EOD_OUT : std_logic; - SIGNAL PC_SUB_SIZE_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_TRIG_NR_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_PADDING_OUT : std_logic; - SIGNAL BSM_SAVE_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_LOAD_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_REM_CTR_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_CTS_CTR_OUT : std_logic_vector(2 downto 0); - SIGNAL DBG_SF_WCNT_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RCNT_OUT : std_logic_vector(16 downto 0); - SIGNAL DBG_SF_DATA_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RD_EN_OUT : std_logic; - SIGNAL DBG_SF_WR_EN_OUT : std_logic; - SIGNAL DBG_SF_EMPTY_OUT : std_logic; - SIGNAL DBG_SF_FULL_OUT : std_logic; - SIGNAL DBG_SF_AFULL_OUT : std_logic; - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: feeder PORT MAP( - CLK => CLK, - RESET => RESET, - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_READ_IN => CTS_READ_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_BUSY_IN => FEE_BUSY_IN, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - PC_WR_EN_OUT => PC_WR_EN_OUT, - PC_DATA_OUT => PC_DATA_OUT, - PC_READY_IN => PC_READY_IN, - PC_SOS_OUT => PC_SOS_OUT, - PC_EOD_OUT => PC_EOD_OUT, - PC_SUB_SIZE_OUT => PC_SUB_SIZE_OUT, - PC_TRIG_NR_OUT => PC_TRIG_NR_OUT, - PC_PADDING_OUT => PC_PADDING_OUT, - BSM_SAVE_OUT => BSM_SAVE_OUT, - BSM_LOAD_OUT => BSM_LOAD_OUT, - DBG_REM_CTR_OUT => DBG_REM_CTR_OUT, - DBG_CTS_CTR_OUT => DBG_CTS_CTR_OUT, - DBG_SF_WCNT_OUT => DBG_SF_WCNT_OUT, - DBG_SF_RCNT_OUT => DBG_SF_RCNT_OUT, - DBG_SF_DATA_OUT => DBG_SF_DATA_OUT, - DBG_SF_RD_EN_OUT => DBG_SF_RD_EN_OUT, - DBG_SF_WR_EN_OUT => DBG_SF_WR_EN_OUT, - DBG_SF_EMPTY_OUT => DBG_SF_EMPTY_OUT, - DBG_SF_FULL_OUT => DBG_SF_FULL_OUT, - DBG_SF_AFULL_OUT => DBG_SF_AFULL_OUT, - DEBUG_OUT => DEBUG_OUT - ); - -CLOCK_GEN: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLOCK_GEN; - --- Testbench -TESTBENCH_PROC: process -variable test_data_len : integer range 0 to 65535 := 49; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_hdr_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_data : unsigned(15 downto 0) := x"ffff"; - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; -begin - -- Setup signals - reset <= '0'; - cts_number_in <= x"0000"; - cts_code_in <= x"00"; - cts_information_in <= x"00"; - cts_readout_type_in <= x"0"; - cts_start_readout_in <= '0'; - cts_read_in <= '0'; - fee_data_in <= x"0000"; - fee_dataready_in <= '0'; - fee_status_bits_in <= x"0000_0000"; - fee_busy_in <= '0'; - pc_ready_in <= '0'; - - wait for 22 ns; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - wait for 200 ns; - - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 9; - test_data_len := 14; - - MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop - -- IPU transmission starts - wait until rising_edge(clk); - cts_number_in <= std_logic_vector( trigger_counter ); - cts_code_in <= x"aa"; - cts_information_in <= x"de"; - cts_readout_type_in <= x"1"; - cts_start_readout_in <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - fee_busy_in <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - -- ONE DATA TRANSMISSION - -- calculate the needed variables --- test_data_len := 4096; - test_loop_len := 2*(test_data_len - 1) + 1; - test_hdr_len := to_unsigned( test_data_len + 1, 16 ); - test_evt_len := to_unsigned( test_data_len, 16 ); - - -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21) - fee_dataready_in <= '1'; - fee_data_in <= x"10aa"; - wait until rising_edge(clk); - fee_data_in <= std_logic_vector( trigger_counter ); - wait until rising_edge(clk); - fee_data_in <= std_logic_vector( test_hdr_len ); - wait until rising_edge(clk); - fee_data_in <= x"ff21"; - wait until rising_edge(clk); - fee_data_in <= std_logic_vector( test_evt_len ); - wait until rising_edge(clk); - fee_data_in <= x"ff22"; - - test_data := x"ffff"; - MY_DATA_LOOP: for J in 0 to test_loop_len loop - test_data := test_data + 1; - wait until rising_edge(clk); - fee_data_in <= std_logic_vector(test_data); - end loop MY_DATA_LOOP; - - fee_busy_in <= '0'; -- correct? - wait until rising_edge(clk); - fee_dataready_in <= '0'; - fee_data_in <= x"0000"; - - trigger_loop := trigger_loop + 1; - trigger_counter := trigger_counter + 1; - - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_read_in <= '1'; - wait until rising_edge(clk); - cts_read_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_start_readout_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - end loop MY_TRIGGER_LOOP; -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - wait for 300 ns; - - -- Start packet_constructor - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_ready_in <= '1'; - wait until rising_edge(clk); - - wait; - - wait until rising_edge(clk); - wait until pc_eod_out = '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_ready_in <= '0'; - - -- Stay a while... stay forever!!! - wait; - -end process TESTBENCH_PROC; - - -END; diff --git a/gbe_ecp2m/tb_gbe_buf.vhd b/gbe_ecp2m/tb_gbe_buf.vhd deleted file mode 100755 index 8347c02..0000000 --- a/gbe_ecp2m/tb_gbe_buf.vhd +++ /dev/null @@ -1,561 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.math_real.all; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - component trb_net16_gbe_buf is - generic( - DO_SIMULATION : integer range 0 to 1 := 1; - USE_125MHZ_EXTCLK : integer range 0 to 1 := 1 - ); - port( - CLK : in std_logic; - TEST_CLK : in std_logic; -- only for simulation! - CLK_125_IN : in std_logic; -- gk 28.04.01 used only in internal 125MHz clock mode -RESET : IN std_logic; - GSR_N : IN std_logic; - STAGE_CTRL_REGS_IN : IN std_logic_vector(31 downto 0); - ------------------------ - IP_CFG_START_IN : IN std_logic; - IP_CFG_BANK_SEL_IN : IN std_logic_vector(3 downto 0); - IP_CFG_MEM_DATA_IN : IN std_logic_vector(31 downto 0); - MR_RESET_IN : IN std_logic; - MR_MODE_IN : IN std_logic; - MR_RESTART_IN : IN std_logic; - IP_CFG_MEM_CLK_OUT : OUT std_logic; - IP_CFG_DONE_OUT : OUT std_logic; - IP_CFG_MEM_ADDR_OUT : OUT std_logic_vector(7 downto 0); - -- gk 29.03.10 - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - -- gk 26.04.10 - -- registers setup interface - BUS_ADDR_IN : in std_logic_vector(7 downto 0); - BUS_DATA_IN : in std_logic_vector(31 downto 0); - BUS_DATA_OUT : out std_logic_vector(31 downto 0); -- gk 26.04.10 - BUS_WRITE_EN_IN : in std_logic; -- gk 26.04.10 - BUS_READ_EN_IN : in std_logic; -- gk 26.04.10 - BUS_ACK_OUT : out std_logic; -- gk 26.04.10 - -- gk 23.04.10 - LED_PACKET_SENT_OUT : out std_logic; - LED_AN_DONE_N_OUT : out std_logic; - ------------------------ - CTS_NUMBER_IN : IN std_logic_vector(15 downto 0); - CTS_CODE_IN : IN std_logic_vector(7 downto 0); - CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0); - CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0); - CTS_START_READOUT_IN : IN std_logic; - CTS_READ_IN : IN std_logic; - FEE_DATA_IN : IN std_logic_vector(15 downto 0); - FEE_DATAREADY_IN : IN std_logic; - FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0); - FEE_BUSY_IN : IN std_logic; - SFP_RXD_P_IN : IN std_logic; - SFP_RXD_N_IN : IN std_logic; - SFP_REFCLK_P_IN : IN std_logic; - SFP_REFCLK_N_IN : IN std_logic; - SFP_PRSNT_N_IN : IN std_logic; - SFP_LOS_IN : IN std_logic; - STAGE_STAT_REGS_OUT : OUT std_logic_vector(31 downto 0); - CTS_DATA_OUT : OUT std_logic_vector(31 downto 0); - CTS_DATAREADY_OUT : OUT std_logic; - CTS_READOUT_FINISHED_OUT : OUT std_logic; - CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0); - CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0); - FEE_READ_OUT : OUT std_logic; - SFP_TXD_P_OUT : OUT std_logic; - SFP_TXD_N_OUT : OUT std_logic; - SFP_TXDIS_OUT : OUT std_logic; - - ANALYZER_DEBUG_OUT : OUT std_logic_vector(63 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL TEST_CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL GSR_N : std_logic; - SIGNAL STAGE_STAT_REGS_OUT : std_logic_vector(31 downto 0); - SIGNAL STAGE_CTRL_REGS_IN : std_logic_vector(31 downto 0); - SIGNAL IP_CFG_START_IN : std_logic; - SIGNAL IP_CFG_BANK_SEL_IN : std_logic_vector(3 downto 0); - SIGNAL IP_CFG_MEM_DATA_IN : std_logic_vector(31 downto 0); - SIGNAL MR_RESET_IN : std_logic; - SIGNAL MR_MODE_IN : std_logic; - SIGNAL MR_RESTART_IN : std_logic; - SIGNAL IP_CFG_MEM_CLK_OUT : std_logic; - SIGNAL IP_CFG_DONE_OUT : std_logic; - SIGNAL IP_CFG_MEM_ADDR_OUT : std_logic_vector(7 downto 0); - SIGNAL CTS_NUMBER_IN : std_logic_vector(15 downto 0); - SIGNAL CTS_CODE_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_INFORMATION_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_READOUT_TYPE_IN : std_logic_vector(3 downto 0); - SIGNAL CTS_START_READOUT_IN : std_logic; - SIGNAL CTS_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL CTS_DATAREADY_OUT : std_logic; - SIGNAL CTS_READOUT_FINISHED_OUT : std_logic; - SIGNAL CTS_READ_IN : std_logic; - SIGNAL CTS_LENGTH_OUT : std_logic_vector(15 downto 0); - SIGNAL CTS_ERROR_PATTERN_OUT : std_logic_vector(31 downto 0); - SIGNAL FEE_DATA_IN : std_logic_vector(15 downto 0); - SIGNAL FEE_DATAREADY_IN : std_logic; - SIGNAL FEE_READ_OUT : std_logic; - SIGNAL FEE_STATUS_BITS_IN : std_logic_vector(31 downto 0); - SIGNAL FEE_BUSY_IN : std_logic; - SIGNAL SFP_RXD_P_IN : std_logic; - SIGNAL SFP_RXD_N_IN : std_logic; - SIGNAL SFP_TXD_P_OUT : std_logic; - SIGNAL SFP_TXD_N_OUT : std_logic; - SIGNAL SFP_REFCLK_P_IN : std_logic; - SIGNAL SFP_REFCLK_N_IN : std_logic; - SIGNAL SFP_PRSNT_N_IN : std_logic; - SIGNAL SFP_LOS_IN : std_logic; - SIGNAL SFP_TXDIS_OUT : std_logic; - SIGNAL IG_CTS_CTR_TST : std_logic_vector(2 downto 0); - SIGNAL IG_REM_CTR_TST : std_logic_vector(3 downto 0); - SIGNAL IG_BSM_LOAD_TST : std_logic_vector(3 downto 0); - SIGNAL IG_BSM_SAVE_TST : std_logic_vector(3 downto 0); - SIGNAL IG_DATA_TST : std_logic_vector(15 downto 0); - SIGNAL IG_WCNT_TST : std_logic_vector(15 downto 0); - SIGNAL IG_RCNT_TST : std_logic_vector(16 downto 0); - SIGNAL IG_RD_EN_TST : std_logic; - SIGNAL IG_WR_EN_TST : std_logic; - SIGNAL IG_EMPTY_TST : std_logic; - SIGNAL IG_AEMPTY_TST : std_logic; - SIGNAL IG_FULL_TST : std_logic; - SIGNAL IG_AFULL_TST : std_logic; - SIGNAL PC_WR_EN_TST : std_logic; - SIGNAL PC_DATA_TST : std_logic_vector(7 downto 0); - SIGNAL PC_READY_TST : std_logic; - SIGNAL PC_START_OF_SUB_TST : std_logic; - SIGNAL PC_END_OF_DATA_TST : std_logic; - SIGNAL PC_SUB_SIZE_TST : std_logic_vector(31 downto 0); - SIGNAL PC_TRIG_NR_TST : std_logic_vector(31 downto 0); - SIGNAL PC_PADDING_TST : std_logic; - SIGNAL PC_DECODING_TST : std_logic_vector(31 downto 0); - SIGNAL PC_EVENT_ID_TST : std_logic_vector(31 downto 0); - SIGNAL PC_QUEUE_DEC_TST : std_logic_vector(31 downto 0); - SIGNAL PC_BSM_CONSTR_TST : std_logic_vector(3 downto 0); - SIGNAL PC_BSM_LOAD_TST : std_logic_vector(3 downto 0); - SIGNAL PC_BSM_SAVE_TST : std_logic_vector(3 downto 0); - SIGNAL PC_SHF_EMPTY_TST : std_logic; - SIGNAL PC_SHF_FULL_TST : std_logic; - SIGNAL PC_SHF_WR_EN_TST : std_logic; - SIGNAL PC_SHF_RD_EN_TST : std_logic; - SIGNAL PC_SHF_Q_TST : std_logic_vector(7 downto 0); - SIGNAL PC_DF_EMPTY_TST : std_logic; - SIGNAL PC_DF_FULL_TST : std_logic; - SIGNAL PC_DF_WR_EN_TST : std_logic; - SIGNAL PC_DF_RD_EN_TST : std_logic; - SIGNAL PC_DF_Q_TST : std_logic_vector(7 downto 0); - SIGNAL PC_ALL_CTR_TST : std_logic_vector(4 downto 0); - SIGNAL PC_SUB_CTR_TST : std_logic_vector(4 downto 0); - SIGNAL PC_BYTES_LOADED_TST : std_logic_vector(15 downto 0); - SIGNAL PC_SIZE_LEFT_TST : std_logic_vector(31 downto 0); - SIGNAL PC_SUB_SIZE_TO_SAVE_TST : std_logic_vector(31 downto 0); - SIGNAL PC_SUB_SIZE_LOADED_TST : std_logic_vector(31 downto 0); - SIGNAL PC_SUB_BYTES_LOADED_TST : std_logic_vector(31 downto 0); - SIGNAL PC_QUEUE_SIZE_TST : std_logic_vector(31 downto 0); - SIGNAL PC_ACT_QUEUE_SIZE_TST : std_logic_vector(31 downto 0); - SIGNAL FC_WR_EN_TST : std_logic; - SIGNAL FC_DATA_TST : std_logic_vector(7 downto 0); - SIGNAL FC_H_READY_TST : std_logic; - SIGNAL FC_READY_TST : std_logic; - SIGNAL FC_IP_SIZE_TST : std_logic_vector(15 downto 0); - SIGNAL FC_UDP_SIZE_TST : std_logic_vector(15 downto 0); - SIGNAL FC_IDENT_TST : std_logic_vector(15 downto 0); - SIGNAL FC_FLAGS_OFFSET_TST : std_logic_vector(15 downto 0); - SIGNAL FC_SOD_TST : std_logic; - SIGNAL FC_EOD_TST : std_logic; - SIGNAL FC_BSM_CONSTR_TST : std_logic_vector(7 downto 0); - SIGNAL FC_BSM_TRANS_TST : std_logic_vector(3 downto 0); - SIGNAL FT_DATA_TST : std_logic_vector(8 downto 0); - SIGNAL FT_TX_EMPTY_TST : std_logic; - SIGNAL FT_START_OF_PACKET_TST : std_logic; - SIGNAL FT_BSM_INIT_TST : std_logic_vector(3 downto 0); - SIGNAL FT_BSM_MAC_TST : std_logic_vector(3 downto 0); - SIGNAL FT_BSM_TRANS_TST : std_logic_vector(3 downto 0); - SIGNAL MAC_HADDR_TST : std_logic_vector(7 downto 0); - SIGNAL MAC_HDATA_TST : std_logic_vector(7 downto 0); - SIGNAL MAC_HCS_TST : std_logic; - SIGNAL MAC_HWRITE_TST : std_logic; - SIGNAL MAC_HREAD_TST : std_logic; - SIGNAL MAC_HREADY_TST : std_logic; - SIGNAL MAC_HDATA_EN_TST : std_logic; - SIGNAL MAC_FIFOAVAIL_TST : std_logic; - SIGNAL MAC_FIFOEOF_TST : std_logic; - SIGNAL MAC_FIFOEMPTY_TST : std_logic; - SIGNAL MAC_TX_READ_TST : std_logic; - SIGNAL MAC_TX_DONE_TST : std_logic; - SIGNAL PCS_AN_LP_ABILITY_TST : std_logic_vector(15 downto 0); - SIGNAL PCS_AN_COMPLETE_TST : std_logic; - SIGNAL PCS_AN_PAGE_RX_TST : std_logic; - SIGNAL ANALYZER_DEBUG_OUT : std_logic_vector(63 downto 0); - --gk 29.03.10 - signal SLV_ADDR_IN : std_logic_vector(7 downto 0); - signal SLV_READ_IN : std_logic; - signal SLV_WRITE_IN : std_logic; - signal SLV_BUSY_OUT : std_logic; - signal SLV_ACK_OUT : std_logic; - signal SLV_DATA_IN : std_logic_vector(31 downto 0); - signal SLV_DATA_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: trb_net16_gbe_buf - GENERIC MAP( DO_SIMULATION => 1, USE_125MHZ_EXTCLK => 1 ) - PORT MAP( - CLK => CLK, - CLK_125_IN => '0', - TEST_CLK => TEST_CLK, - RESET => RESET, - GSR_N => GSR_N, - STAGE_STAT_REGS_OUT => STAGE_STAT_REGS_OUT, - STAGE_CTRL_REGS_IN => STAGE_CTRL_REGS_IN, - IP_CFG_START_IN => IP_CFG_START_IN, - IP_CFG_BANK_SEL_IN => IP_CFG_BANK_SEL_IN, - IP_CFG_MEM_DATA_IN => IP_CFG_MEM_DATA_IN, - MR_RESET_IN => MR_RESET_IN, - MR_MODE_IN => MR_MODE_IN, - MR_RESTART_IN => MR_RESTART_IN, - IP_CFG_MEM_CLK_OUT => IP_CFG_MEM_CLK_OUT, - IP_CFG_DONE_OUT => IP_CFG_DONE_OUT, - IP_CFG_MEM_ADDR_OUT => IP_CFG_MEM_ADDR_OUT, - -- gk 29.03.10 - SLV_ADDR_IN => SLV_ADDR_IN, - SLV_READ_IN => SLV_READ_IN, - SLV_WRITE_IN => SLV_WRITE_IN, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, - SLV_DATA_IN => SLV_DATA_IN, - SLV_DATA_OUT => SLV_DATA_OUT, - -- gk 22.04.10 - -- registers setup interface - BUS_ADDR_IN => x"00", - BUS_DATA_IN => x"0000_0000", - BUS_DATA_OUT => open, - BUS_WRITE_EN_IN => '0', - BUS_READ_EN_IN => '0', - BUS_ACK_OUT => open, - -- gk 23.04.10 - LED_PACKET_SENT_OUT => open, - LED_AN_DONE_N_OUT => open, - -------------------------- - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_READ_IN => CTS_READ_IN, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - FEE_BUSY_IN => FEE_BUSY_IN, - SFP_RXD_P_IN => SFP_RXD_P_IN, - SFP_RXD_N_IN => SFP_RXD_N_IN, - SFP_TXD_P_OUT => SFP_TXD_P_OUT, - SFP_TXD_N_OUT => SFP_TXD_N_OUT, - SFP_REFCLK_P_IN => SFP_REFCLK_P_IN, - SFP_REFCLK_N_IN => SFP_REFCLK_N_IN, - SFP_PRSNT_N_IN => SFP_PRSNT_N_IN, - SFP_LOS_IN => SFP_LOS_IN, - SFP_TXDIS_OUT => SFP_TXDIS_OUT, - ANALYZER_DEBUG_OUT => ANALYZER_DEBUG_OUT - ); - - - --- 100 MHz system clock -CLOCK_GEN_PROC: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLOCK_GEN_PROC; - --- 125 MHz MAC clock -CLOCK2_GEN_PROC: process -begin - test_clk <= '1'; wait for 4.0 ns; - test_clk <= '0'; wait for 3.0 ns; -end process CLOCK2_GEN_PROC; - --- Testbench -TESTBENCH_PROC: process --- test data from TRBnet -variable test_data_len : integer range 0 to 65535 := 1; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_hdr_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_data : unsigned(15 downto 0) := x"ffff"; - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; - --- 1400 bytes MTU => 350 as limit for fragmentation -variable max_event_size : real := 512.0; - -variable seed1 : positive; -- seed for random generator -variable seed2 : positive; -- seed for random generator -variable rand : real; -- random value (0.0 ... 1.0) -variable int_rand : integer; -- random value, scaled to your needs -variable cts_random_number : std_logic_vector(7 downto 0); - -variable stim : std_logic_vector(15 downto 0); - - --- RND test ---UNIFORM(seed1, seed2, rand); ---int_rand := INTEGER(TRUNC(rand*65536.0)); ---stim := std_logic_vector(to_unsigned(int_rand, stim'LENGTH)); - -begin - -- Setup signals - reset <= '0'; - gsr_n <= '1'; - - stage_ctrl_regs_in <= x"0000_0000"; - - --ip_cfg_start_in <= '0'; - --ip_cfg_bank_sel_in <= x"0"; - --ip_cfg_mem_data_in <= x"0000_0000"; - mr_reset_in <= '0'; - mr_mode_in <= '0'; - mr_restart_in <= '0'; - SLV_ADDR_IN <= x"00"; - SLV_READ_IN <= '0'; - SLV_WRITE_IN <= '0'; - SLV_DATA_IN <= x"0000_0000"; - - sfp_los_in <= '0'; -- signal from SFP is present - sfp_prsnt_n_in <= '0'; -- SFP itself is present - sfp_refclk_n_in <= '0'; - sfp_refclk_p_in <= '1'; - - cts_number_in <= x"0000"; - cts_code_in <= x"00"; - cts_information_in <= x"00"; - cts_readout_type_in <= x"0"; - cts_start_readout_in <= '0'; - cts_read_in <= '0'; - - fee_data_in <= x"0000"; - fee_dataready_in <= '0'; - fee_status_bits_in <= x"1234_5678"; - fee_busy_in <= '0'; - - wait for 22 ns; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - gsr_n <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - gsr_n <= '1'; - wait until rising_edge(clk); - --wait for 100 ns; - - -- Tests may start here - wait until ft_bsm_init_tst = x"7"; - - --ip_cfg_start_in <= '1'; - - wait for 500 ns; - - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 10; - - MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop - -- generate a real random byte for CTS - UNIFORM(seed1, seed2, rand); - int_rand := INTEGER(TRUNC(rand*256.0)); - cts_random_number := std_logic_vector(to_unsigned(int_rand, cts_random_number'LENGTH)); - - -- IPU transmission starts - wait until rising_edge(clk); - cts_number_in <= std_logic_vector( trigger_counter ); - cts_code_in <= cts_random_number; - cts_information_in <= x"d2"; -- cts_information_in <= x"de"; -- gk 29.03.10 - cts_readout_type_in <= x"1"; - cts_start_readout_in <= '1'; - wait until rising_edge(clk); - wait for 400 ns; - - wait until rising_edge(clk); - fee_busy_in <= '1'; - wait for 300 ns; - wait until rising_edge(clk); - - -- ONE DATA TRANSMISSION - -- dice a length - UNIFORM(seed1, seed2, rand); - test_data_len := INTEGER(TRUNC(rand*max_event_size)) + 1; - - test_data_len := 9685; - --test_data_len := 400; - - -- calculate the needed variables - test_loop_len := 2*(test_data_len - 1) + 1; - test_hdr_len := to_unsigned( test_data_len + 1, 16 ); - test_evt_len := to_unsigned( test_data_len, 16 ); - - -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21) - fee_dataready_in <= '1'; - fee_data_in <= x"10" & cts_random_number; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of first data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( trigger_counter ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of second data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_hdr_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of third data word - fee_data_in <= x"ff21"; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of fourth data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_evt_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_data_in <= x"ff22"; - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - test_data := x"ffff"; - MY_DATA_LOOP: for J in 0 to test_loop_len loop - test_data := test_data + 1; - wait until rising_edge(clk); - fee_data_in <= std_logic_vector(test_data); - if( (test_data MOD 5) = 0 ) then - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - else - fee_dataready_in <= '1'; - end if; - --fee_dataready_in <= '1'; - end loop MY_DATA_LOOP; - -- there must be padding words to get multiple of four LWs - - wait until rising_edge(clk); - fee_dataready_in <= '0'; - fee_data_in <= x"0000"; - - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_busy_in <= '0'; - - - trigger_loop := trigger_loop + 1; - trigger_counter := trigger_counter + 1; - - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_read_in <= '1'; - wait until rising_edge(clk); - cts_read_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_start_readout_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - --wait for 8 us; - - end loop MY_TRIGGER_LOOP; - --- wait for 8 us; -------------------------------------------------------------------------------- --- end of loop -------------------------------------------------------------------------------- - -- Stay a while... stay forever!!! - wait; - -end process TESTBENCH_PROC; - -END; - diff --git a/gbe_ecp2m/tb_ip_configurator.vhd b/gbe_ecp2m/tb_ip_configurator.vhd deleted file mode 100755 index 6188d42..0000000 --- a/gbe_ecp2m/tb_ip_configurator.vhd +++ /dev/null @@ -1,145 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT ip_configurator - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - START_CONFIG_IN : IN std_logic; - BANK_SELECT_IN : IN std_logic_vector(3 downto 0); - MEM_DATA_IN : IN std_logic_vector(31 downto 0); - CONFIG_DONE_OUT : OUT std_logic; - MEM_ADDR_OUT : OUT std_logic_vector(7 downto 0); - MEM_CLK_OUT : OUT std_logic; - DEST_MAC_OUT : OUT std_logic_vector(47 downto 0); - DEST_IP_OUT : OUT std_logic_vector(31 downto 0); - DEST_UDP_OUT : OUT std_logic_vector(15 downto 0); - SRC_MAC_OUT : OUT std_logic_vector(47 downto 0); - SRC_IP_OUT : OUT std_logic_vector(31 downto 0); - SRC_UDP_OUT : OUT std_logic_vector(15 downto 0); - MTU_OUT : OUT std_logic_vector(15 downto 0); - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL START_CONFIG_IN : std_logic; - SIGNAL BANK_SELECT_IN : std_logic_vector(3 downto 0); - SIGNAL CONFIG_DONE_OUT : std_logic; - SIGNAL MEM_ADDR_OUT : std_logic_vector(7 downto 0); - SIGNAL MEM_DATA_IN : std_logic_vector(31 downto 0); - SIGNAL MEM_CLK_OUT : std_logic; - SIGNAL DEST_MAC_OUT : std_logic_vector(47 downto 0); - SIGNAL DEST_IP_OUT : std_logic_vector(31 downto 0); - SIGNAL DEST_UDP_OUT : std_logic_vector(15 downto 0); - SIGNAL SRC_MAC_OUT : std_logic_vector(47 downto 0); - SIGNAL SRC_IP_OUT : std_logic_vector(31 downto 0); - SIGNAL SRC_UDP_OUT : std_logic_vector(15 downto 0); - SIGNAL MTU_OUT : std_logic_vector(15 downto 0); - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: ip_configurator PORT MAP( - CLK => CLK, - RESET => RESET, - START_CONFIG_IN => START_CONFIG_IN, - BANK_SELECT_IN => BANK_SELECT_IN, - CONFIG_DONE_OUT => CONFIG_DONE_OUT, - MEM_ADDR_OUT => MEM_ADDR_OUT, - MEM_DATA_IN => MEM_DATA_IN, - MEM_CLK_OUT => MEM_CLK_OUT, - DEST_MAC_OUT => DEST_MAC_OUT, - DEST_IP_OUT => DEST_IP_OUT, - DEST_UDP_OUT => DEST_UDP_OUT, - SRC_MAC_OUT => SRC_MAC_OUT, - SRC_IP_OUT => SRC_IP_OUT, - SRC_UDP_OUT => SRC_UDP_OUT, - MTU_OUT => MTU_OUT, - DEBUG_OUT => DEBUG_OUT - ); - - -CLK_GEN_PROC: process -begin - clk <= '0'; wait for 5.0 ns; - clk <= '1'; wait for 5.0 ns; -end process CLK_GEN_PROC; - -THE_TESTBENCH: process -begin - -- Setup signals - reset <= '0'; - start_config_in <= '0'; - bank_select_in <= x"0"; - mem_data_in <= x"0000_0000"; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait for 100 ns; - wait until rising_edge(clk); - - -- Tests may start now - wait until rising_edge(clk); - start_config_in <= '1'; - wait until mem_addr_out(3 downto 0) = x"1"; - wait until rising_edge(clk); - mem_data_in <= x"4902d745"; -- dest MAC low - wait until rising_edge(clk); - mem_data_in <= x"00006cf0"; -- dest MAC high - wait until rising_edge(clk); - mem_data_in <= x"c0a80002"; -- dest IP - wait until rising_edge(clk); - mem_data_in <= x"0000c350"; -- dest port - wait until rising_edge(clk); - mem_data_in <= x"eeeeeeee"; -- src MAC low - wait until rising_edge(clk); - mem_data_in <= x"0000eeee"; -- src MAC high - wait until rising_edge(clk); - mem_data_in <= x"c0a80005"; -- src IP - wait until rising_edge(clk); - mem_data_in <= x"0000c350"; -- src port - wait until rising_edge(clk); - mem_data_in <= x"00000578"; -- MTU - wait until rising_edge(clk); - mem_data_in <= x"99999999"; - wait until rising_edge(clk); - mem_data_in <= x"aaaaaaaa"; - wait until rising_edge(clk); - mem_data_in <= x"bbbbbbbb"; - wait until rising_edge(clk); - mem_data_in <= x"cccccccc"; - wait until rising_edge(clk); - mem_data_in <= x"dddddddd"; - wait until rising_edge(clk); - mem_data_in <= x"eeeeeeee"; - wait until rising_edge(clk); - mem_data_in <= x"ffffffff"; - wait until rising_edge(clk); - mem_data_in <= x"00000000"; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - start_config_in <= '0'; - - -- Stay a while... stay forever!!! Muahahaha!!!!! - wait; -end process THE_TESTBENCH; - - -END; diff --git a/gbe_ecp2m/tb_ipu2gbe.vhd b/gbe_ecp2m/tb_ipu2gbe.vhd deleted file mode 100755 index 065e674..0000000 --- a/gbe_ecp2m/tb_ipu2gbe.vhd +++ /dev/null @@ -1,428 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.math_real.all; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT trb_net16_ipu2gbe - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - START_CONFIG_OUT : OUT std_logic; - BANK_SELECT_OUT : OUT std_logic_vector(3 downto 0); - CONFIG_DONE_IN : IN std_logic; - DATA_GBE_ENABLE_IN : IN std_logic; - DATA_IPU_ENABLE_IN : IN std_logic; - MULTI_EVT_ENABLE_IN : IN std_logic; - CTS_NUMBER_IN : IN std_logic_vector(15 downto 0); - CTS_CODE_IN : IN std_logic_vector(7 downto 0); - CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0); - CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0); - CTS_START_READOUT_IN : IN std_logic; - CTS_READ_IN : IN std_logic; - FEE_DATA_IN : IN std_logic_vector(15 downto 0); - FEE_DATAREADY_IN : IN std_logic; - FEE_BUSY_IN : IN std_logic; - FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0); - PC_READY_IN : IN std_logic; - CTS_DATA_OUT : OUT std_logic_vector(31 downto 0); - CTS_DATAREADY_OUT : OUT std_logic; - CTS_READOUT_FINISHED_OUT : OUT std_logic; - CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0); - CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0); - FEE_READ_OUT : OUT std_logic; - PC_WR_EN_OUT : OUT std_logic; - PC_DATA_OUT : OUT std_logic_vector(7 downto 0); - PC_SOS_OUT : OUT std_logic; - PC_EOD_OUT : OUT std_logic; - PC_SUB_SIZE_OUT : OUT std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : OUT std_logic_vector(31 downto 0); - PC_PADDING_OUT : OUT std_logic; - BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0); - BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0); - DBG_REM_CTR_OUT : OUT std_logic_vector(3 downto 0); - DBG_CTS_CTR_OUT : OUT std_logic_vector(2 downto 0); - DBG_SF_WCNT_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RCNT_OUT : OUT std_logic_vector(16 downto 0); - DBG_SF_DATA_OUT : OUT std_logic_vector(15 downto 0); - DBG_SF_RD_EN_OUT : OUT std_logic; - DBG_SF_WR_EN_OUT : OUT std_logic; - DBG_SF_EMPTY_OUT : OUT std_logic; - DBG_SF_AEMPTY_OUT : OUT std_logic; - DBG_SF_FULL_OUT : OUT std_logic; - DBG_SF_AFULL_OUT : OUT std_logic; - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL START_CONFIG_OUT : std_logic; - SIGNAL BANK_SELECT_OUT : std_logic_vector(3 downto 0); - SIGNAL CONFIG_DONE_IN : std_logic; - SIGNAL DATA_GBE_ENABLE_IN : std_logic; - SIGNAL DATA_IPU_ENABLE_IN : std_logic; - SIGNAL MULTI_EVT_ENABLE_IN : std_logic; - SIGNAL CTS_NUMBER_IN : std_logic_vector(15 downto 0); - SIGNAL CTS_CODE_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_INFORMATION_IN : std_logic_vector(7 downto 0); - SIGNAL CTS_READOUT_TYPE_IN : std_logic_vector(3 downto 0); - SIGNAL CTS_START_READOUT_IN : std_logic; - SIGNAL CTS_READ_IN : std_logic; - SIGNAL CTS_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL CTS_DATAREADY_OUT : std_logic; - SIGNAL CTS_READOUT_FINISHED_OUT : std_logic; - SIGNAL CTS_LENGTH_OUT : std_logic_vector(15 downto 0); - SIGNAL CTS_ERROR_PATTERN_OUT : std_logic_vector(31 downto 0); - SIGNAL FEE_DATA_IN : std_logic_vector(15 downto 0); - SIGNAL FEE_DATAREADY_IN : std_logic; - SIGNAL FEE_READ_OUT : std_logic; - SIGNAL FEE_BUSY_IN : std_logic; - SIGNAL FEE_STATUS_BITS_IN : std_logic_vector(31 downto 0); - SIGNAL PC_WR_EN_OUT : std_logic; - SIGNAL PC_DATA_OUT : std_logic_vector(7 downto 0); - SIGNAL PC_READY_IN : std_logic; - SIGNAL PC_SOS_OUT : std_logic; - SIGNAL PC_EOD_OUT : std_logic; - SIGNAL PC_SUB_SIZE_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_TRIG_NR_OUT : std_logic_vector(31 downto 0); - SIGNAL PC_PADDING_OUT : std_logic; - SIGNAL BSM_SAVE_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_LOAD_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_REM_CTR_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_CTS_CTR_OUT : std_logic_vector(2 downto 0); - SIGNAL DBG_SF_WCNT_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RCNT_OUT : std_logic_vector(16 downto 0); - SIGNAL DBG_SF_DATA_OUT : std_logic_vector(15 downto 0); - SIGNAL DBG_SF_RD_EN_OUT : std_logic; - SIGNAL DBG_SF_WR_EN_OUT : std_logic; - SIGNAL DBG_SF_EMPTY_OUT : std_logic; - SIGNAL DBG_SF_AEMPTY_OUT : std_logic; - SIGNAL DBG_SF_FULL_OUT : std_logic; - SIGNAL DBG_SF_AFULL_OUT : std_logic; - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: trb_net16_ipu2gbe PORT MAP( - CLK => CLK, - RESET => RESET, - START_CONFIG_OUT => START_CONFIG_OUT, - BANK_SELECT_OUT => BANK_SELECT_OUT, - CONFIG_DONE_IN => CONFIG_DONE_IN, - DATA_GBE_ENABLE_IN => DATA_GBE_ENABLE_IN, - DATA_IPU_ENABLE_IN => DATA_IPU_ENABLE_IN, - MULTI_EVT_ENABLE_IN => MULTI_EVT_ENABLE_IN, - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - CTS_READ_IN => CTS_READ_IN, - CTS_DATA_OUT => CTS_DATA_OUT, - CTS_DATAREADY_OUT => CTS_DATAREADY_OUT, - CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT, - CTS_LENGTH_OUT => CTS_LENGTH_OUT, - CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT, - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => FEE_READ_OUT, - FEE_BUSY_IN => FEE_BUSY_IN, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - PC_WR_EN_OUT => PC_WR_EN_OUT, - PC_DATA_OUT => PC_DATA_OUT, - PC_READY_IN => PC_READY_IN, - PC_SOS_OUT => PC_SOS_OUT, - PC_EOD_OUT => PC_EOD_OUT, - PC_SUB_SIZE_OUT => PC_SUB_SIZE_OUT, - PC_TRIG_NR_OUT => PC_TRIG_NR_OUT, - PC_PADDING_OUT => PC_PADDING_OUT, - BSM_SAVE_OUT => BSM_SAVE_OUT, - BSM_LOAD_OUT => BSM_LOAD_OUT, - DBG_REM_CTR_OUT => DBG_REM_CTR_OUT, - DBG_CTS_CTR_OUT => DBG_CTS_CTR_OUT, - DBG_SF_WCNT_OUT => DBG_SF_WCNT_OUT, - DBG_SF_RCNT_OUT => DBG_SF_RCNT_OUT, - DBG_SF_DATA_OUT => DBG_SF_DATA_OUT, - DBG_SF_RD_EN_OUT => DBG_SF_RD_EN_OUT, - DBG_SF_WR_EN_OUT => DBG_SF_WR_EN_OUT, - DBG_SF_EMPTY_OUT => DBG_SF_EMPTY_OUT, - DBG_SF_AEMPTY_OUT => DBG_SF_AEMPTY_OUT, - DBG_SF_FULL_OUT => DBG_SF_FULL_OUT, - DBG_SF_AFULL_OUT => DBG_SF_AFULL_OUT, - DEBUG_OUT => DEBUG_OUT - ); - -CLOCK_GEN: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLOCK_GEN; - -PC_READY_PROC: process -begin - pc_ready_in <= '0'; - wait for 500 ns; - pc_ready_in <= '1'; - wait for 500 ns; - pc_ready_in <= '0'; - wait for 99 us; -end process PC_READY_PROC; - --- Testbench -TESTBENCH_PROC: process --- test data from TRBnet -variable test_data_len : integer range 0 to 65535 := 1; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_hdr_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_data : unsigned(15 downto 0) := x"ffff"; - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; - --- 1400 bytes MTU => 350 as limit for fragmentation ---variable max_event_size : real := 512.0; -variable max_event_size : real := 17.0; - -variable seed1 : positive; -- seed for random generator -variable seed2 : positive; -- seed for random generator -variable rand : real; -- random value (0.0 ... 1.0) -variable int_rand : integer; -- random value, scaled to your needs -variable cts_random_number : std_logic_vector(7 downto 0); - -variable stim : std_logic_vector(15 downto 0); - -begin - -- Setup signals - reset <= '0'; - cts_number_in <= x"0000"; - cts_code_in <= x"00"; - cts_information_in <= x"00"; - cts_readout_type_in <= x"0"; - cts_start_readout_in <= '0'; - cts_read_in <= '0'; - fee_data_in <= x"0000"; - fee_dataready_in <= '0'; - fee_status_bits_in <= x"0000_0000"; - fee_busy_in <= '0'; --- pc_ready_in <= '0'; - - config_done_in <= '1'; - data_gbe_enable_in <= '1'; - data_ipu_enable_in <= '0'; - multi_evt_enable_in <= '0'; - - wait for 22 ns; - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - wait for 200 ns; - ---------------------------- - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 2; - - MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop - -- generate a real random byte for CTS - UNIFORM(seed1, seed2, rand); - int_rand := INTEGER(TRUNC(rand*256.0)); - cts_random_number := std_logic_vector(to_unsigned(int_rand, cts_random_number'LENGTH)); - - -- IPU transmission starts - wait until rising_edge(clk); - cts_number_in <= std_logic_vector( trigger_counter ); - cts_code_in <= cts_random_number; - cts_information_in <= x"de"; - cts_readout_type_in <= x"1"; - cts_start_readout_in <= '1'; - wait until rising_edge(clk); - wait for 400 ns; - - wait until rising_edge(clk); - fee_busy_in <= '1'; - wait for 300 ns; - wait until rising_edge(clk); - - -- ONE DATA TRANSMISSION - -- dice a length - UNIFORM(seed1, seed2, rand); - test_data_len := INTEGER(TRUNC(rand*max_event_size)) + 1; - --- test_data_len := 9685; - - -- calculate the needed variables - test_loop_len := 2*(test_data_len - 1) + 1; - test_hdr_len := to_unsigned( test_data_len + 1, 16 ); - test_evt_len := to_unsigned( test_data_len, 16 ); - - -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21) - fee_dataready_in <= '1'; - fee_data_in <= x"10" & cts_random_number; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of first data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( trigger_counter ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of second data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); -- BLA - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_hdr_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of third data word - fee_data_in <= x"ff21"; - wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of fourth data word - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - fee_data_in <= std_logic_vector( test_evt_len ); - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_data_in <= x"ff22"; - wait until rising_edge(clk) and (fee_read_out = '1'); - fee_dataready_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - test_data := x"ffff"; - MY_DATA_LOOP: for J in 0 to test_loop_len loop - test_data := test_data + 1; - wait until rising_edge(clk) and (fee_read_out = '1'); -- - fee_data_in <= std_logic_vector(test_data); - if( (test_data MOD 5) = 0 ) then - fee_dataready_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); --- wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_dataready_in <= '1'; - else - fee_dataready_in <= '1'; - end if; - end loop MY_DATA_LOOP; - -- there must be padding words to get multiple of four LWs - - wait until rising_edge(clk); - fee_dataready_in <= '0'; - fee_data_in <= x"0000"; - - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fee_busy_in <= '0'; - - - trigger_loop := trigger_loop + 1; - trigger_counter := trigger_counter + 1; - - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_read_in <= '1'; - wait until rising_edge(clk); - cts_read_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - cts_start_readout_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - --wait for 8 us; - - end loop MY_TRIGGER_LOOP; - - - ---------------------------- ---------------------------- - wait for 300 ns; - - wait; - - -- Start packet_constructor - wait until rising_edge(clk); - wait until rising_edge(clk); --- pc_ready_in <= '1'; - wait until rising_edge(clk); - - wait until rising_edge(clk); - wait until pc_eod_out = '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); --- pc_ready_in <= '0'; - - -- Stay a while... stay forever!!! - wait; - -end process TESTBENCH_PROC; - - -END; diff --git a/gbe_ecp2m/tb_lsm.vhd b/gbe_ecp2m/tb_lsm.vhd deleted file mode 100755 index 6e86029..0000000 --- a/gbe_ecp2m/tb_lsm.vhd +++ /dev/null @@ -1,113 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT trb_net16_lsm_sfp_gbe - PORT( - SYSCLK : IN std_logic; - RESET : IN std_logic; - CLEAR : IN std_logic; - SFP_MISSING_IN : IN std_logic; - SFP_LOS_IN : IN std_logic; - SD_LINK_OK_IN : IN std_logic; - SD_LOS_IN : IN std_logic; - SD_TXCLK_BAD_IN : IN std_logic; - SD_RXCLK_BAD_IN : IN std_logic; - FULL_RESET_OUT : OUT std_logic; - LANE_RESET_OUT : OUT std_logic; - USER_RESET_OUT : OUT std_logic; - TIMING_CTR_OUT : OUT std_logic_vector(18 downto 0); - BSM_OUT : OUT std_logic_vector(3 downto 0); - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL SYSCLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL CLEAR : std_logic; - SIGNAL SFP_MISSING_IN : std_logic; - SIGNAL SFP_LOS_IN : std_logic; - SIGNAL SD_LINK_OK_IN : std_logic; - SIGNAL SD_LOS_IN : std_logic; - SIGNAL SD_TXCLK_BAD_IN : std_logic; - SIGNAL SD_RXCLK_BAD_IN : std_logic; - SIGNAL FULL_RESET_OUT : std_logic; - SIGNAL LANE_RESET_OUT : std_logic; - SIGNAL USER_RESET_OUT : std_logic; - SIGNAL TIMING_CTR_OUT : std_logic_vector(18 downto 0); - SIGNAL BSM_OUT : std_logic_vector(3 downto 0); - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: trb_net16_lsm_sfp_gbe PORT MAP( - SYSCLK => SYSCLK, - RESET => RESET, - CLEAR => CLEAR, - SFP_MISSING_IN => SFP_MISSING_IN, - SFP_LOS_IN => SFP_LOS_IN, - SD_LINK_OK_IN => SD_LINK_OK_IN, - SD_LOS_IN => SD_LOS_IN, - SD_TXCLK_BAD_IN => SD_TXCLK_BAD_IN, - SD_RXCLK_BAD_IN => SD_RXCLK_BAD_IN, - FULL_RESET_OUT => FULL_RESET_OUT, - LANE_RESET_OUT => LANE_RESET_OUT, - USER_RESET_OUT => USER_RESET_OUT, - TIMING_CTR_OUT => TIMING_CTR_OUT, - BSM_OUT => BSM_OUT, - DEBUG_OUT => DEBUG_OUT - ); - - -CLOCK_GEN: process -begin - sysclk <= '1'; wait for 4.0 ns; - sysclk <= '0'; wait for 4.0 ns; -end process CLOCK_GEN; - -THE_TESTBENCH: process -begin - -- Setup signals - reset <= '0'; - clear <= '0'; - sfp_missing_in <= '0'; - sfp_los_in <= '0'; - sd_link_ok_in <= '0'; - sd_los_in <= '0'; - sd_txclk_bad_in <= '1'; - sd_rxclk_bad_in <= '1'; - wait for 100 ns; - - -- Reset - clear <= '1'; - wait for 100 ns; - clear <= '0'; - wait for 10 ns; - - -- Tests may start now - wait until falling_edge(full_reset_out); - wait for 123 ns; - sd_txclk_bad_in <= '0'; - wait for 433 ns; - sd_rxclk_bad_in <= '0'; - - wait for 1.1 us; - sd_rxclk_bad_in <= '1'; - wait for 33 ns; - sd_rxclk_bad_in <= '0'; - - - wait until rising_edge(sysclk); - - -- Stay a while.... stay forever!!! Muahahaha!!!! - wait; - -end process THE_TESTBENCH; - -END; \ No newline at end of file diff --git a/gbe_ecp2m/tb_pc.vhd b/gbe_ecp2m/tb_pc.vhd deleted file mode 100755 index ac85375..0000000 --- a/gbe_ecp2m/tb_pc.vhd +++ /dev/null @@ -1,310 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT trb_net16_gbe_packet_constr - PORT( - RESET : IN std_logic; - CLK : IN std_logic; - PC_WR_EN_IN : IN std_logic; - PC_DATA_IN : IN std_logic_vector(7 downto 0); - PC_START_OF_SUB_IN : IN std_logic; - PC_END_OF_DATA_IN : IN std_logic; - PC_SUB_SIZE_IN : IN std_logic_vector(31 downto 0); - PC_DECODING_IN : IN std_logic_vector(31 downto 0); - PC_EVENT_ID_IN : IN std_logic_vector(31 downto 0); - PC_TRIG_NR_IN : IN std_logic_vector(31 downto 0); - PC_QUEUE_DEC_IN : IN std_logic_vector(31 downto 0); - PC_MAX_FRAME_SIZE_IN : IN std_logic_vector(15 downto 0); - FC_H_READY_IN : IN std_logic; - FC_READY_IN : IN std_logic; - PC_READY_OUT : OUT std_logic; - FC_WR_EN_OUT : OUT std_logic; - FC_DATA_OUT : OUT std_logic_vector(7 downto 0); - FC_IP_SIZE_OUT : OUT std_logic_vector(15 downto 0); - FC_UDP_SIZE_OUT : OUT std_logic_vector(15 downto 0); - FC_IDENT_OUT : OUT std_logic_vector(15 downto 0); - FC_FLAGS_OFFSET_OUT : OUT std_logic_vector(15 downto 0); - FC_SOD_OUT : OUT std_logic; - FC_EOD_OUT : OUT std_logic; - BSM_CONSTR_OUT : OUT std_logic_vector(3 downto 0); - BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0); - BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0); - DBG_SHF_EMPTY : OUT std_logic; - DBG_SHF_FULL : OUT std_logic; - DBG_SHF_WR_EN : OUT std_logic; - DBG_SHF_RD_EN : OUT std_logic; - DBG_DF_EMPTY : OUT std_logic; - DBG_DF_FULL : OUT std_logic; - DBG_DF_WR_EN : OUT std_logic; - DBG_DF_RD_EN : OUT std_logic; - DBG_ALL_CTR : OUT std_logic_vector(4 downto 0); - DBG_SUB_CTR : OUT std_logic_vector(4 downto 0); - DBG_MY_CTR : OUT std_logic_vector(1 downto 0); - DBG_BYTES_LOADED : OUT std_logic_vector(15 downto 0); - DBG_SIZE_LEFT : OUT std_logic_vector(31 downto 0); - DBG_SUB_SIZE_TO_SAVE : OUT std_logic_vector(31 downto 0); - DBG_SUB_SIZE_LOADED : OUT std_logic_vector(31 downto 0); - DBG_SUB_BYTES_LOADED : OUT std_logic_vector(31 downto 0); - DBG_QUEUE_SIZE : OUT std_logic_vector(31 downto 0); - DBG_ACT_QUEUE_SIZE : OUT std_logic_vector(31 downto 0); - DEBUG_OUT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL RESET : std_logic; - SIGNAL CLK : std_logic; - SIGNAL PC_WR_EN_IN : std_logic; - SIGNAL PC_DATA_IN : std_logic_vector(7 downto 0); - SIGNAL PC_READY_OUT : std_logic; - SIGNAL PC_START_OF_SUB_IN : std_logic; - SIGNAL PC_END_OF_DATA_IN : std_logic; - SIGNAL PC_SUB_SIZE_IN : std_logic_vector(31 downto 0); - SIGNAL PC_DECODING_IN : std_logic_vector(31 downto 0); - SIGNAL PC_EVENT_ID_IN : std_logic_vector(31 downto 0); - SIGNAL PC_TRIG_NR_IN : std_logic_vector(31 downto 0); - SIGNAL PC_QUEUE_DEC_IN : std_logic_vector(31 downto 0); - SIGNAL PC_MAX_FRAME_SIZE_IN : std_logic_vector(15 downto 0); - SIGNAL FC_WR_EN_OUT : std_logic; - SIGNAL FC_DATA_OUT : std_logic_vector(7 downto 0); - SIGNAL FC_H_READY_IN : std_logic; - SIGNAL FC_READY_IN : std_logic; - SIGNAL FC_IP_SIZE_OUT : std_logic_vector(15 downto 0); - SIGNAL FC_UDP_SIZE_OUT : std_logic_vector(15 downto 0); - SIGNAL FC_IDENT_OUT : std_logic_vector(15 downto 0); - SIGNAL FC_FLAGS_OFFSET_OUT : std_logic_vector(15 downto 0); - SIGNAL FC_SOD_OUT : std_logic; - SIGNAL FC_EOD_OUT : std_logic; - SIGNAL BSM_CONSTR_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_LOAD_OUT : std_logic_vector(3 downto 0); - SIGNAL BSM_SAVE_OUT : std_logic_vector(3 downto 0); - SIGNAL DBG_SHF_EMPTY : std_logic; - SIGNAL DBG_SHF_FULL : std_logic; - SIGNAL DBG_SHF_WR_EN : std_logic; - SIGNAL DBG_SHF_RD_EN : std_logic; - SIGNAL DBG_DF_EMPTY : std_logic; - SIGNAL DBG_DF_FULL : std_logic; - SIGNAL DBG_DF_WR_EN : std_logic; - SIGNAL DBG_DF_RD_EN : std_logic; - SIGNAL DBG_ALL_CTR : std_logic_vector(4 downto 0); - SIGNAL DBG_SUB_CTR : std_logic_vector(4 downto 0); - SIGNAL DBG_MY_CTR : std_logic_vector(1 downto 0); - SIGNAL DBG_BYTES_LOADED : std_logic_vector(15 downto 0); - SIGNAL DBG_SIZE_LEFT : std_logic_vector(31 downto 0); - SIGNAL DBG_SUB_SIZE_TO_SAVE : std_logic_vector(31 downto 0); - SIGNAL DBG_SUB_SIZE_LOADED : std_logic_vector(31 downto 0); - SIGNAL DBG_SUB_BYTES_LOADED : std_logic_vector(31 downto 0); - SIGNAL DBG_QUEUE_SIZE : std_logic_vector(31 downto 0); - SIGNAL DBG_ACT_QUEUE_SIZE : std_logic_vector(31 downto 0); - SIGNAL DEBUG_OUT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: trb_net16_gbe_packet_constr PORT MAP( - RESET => RESET, - CLK => CLK, - PC_WR_EN_IN => PC_WR_EN_IN, - PC_DATA_IN => PC_DATA_IN, - PC_READY_OUT => PC_READY_OUT, - PC_START_OF_SUB_IN => PC_START_OF_SUB_IN, - PC_END_OF_DATA_IN => PC_END_OF_DATA_IN, - PC_SUB_SIZE_IN => PC_SUB_SIZE_IN, - PC_DECODING_IN => PC_DECODING_IN, - PC_EVENT_ID_IN => PC_EVENT_ID_IN, - PC_TRIG_NR_IN => PC_TRIG_NR_IN, - PC_QUEUE_DEC_IN => PC_QUEUE_DEC_IN, - PC_MAX_FRAME_SIZE_IN => PC_MAX_FRAME_SIZE_IN, - FC_WR_EN_OUT => FC_WR_EN_OUT, - FC_DATA_OUT => FC_DATA_OUT, - FC_H_READY_IN => FC_H_READY_IN, - FC_READY_IN => FC_READY_IN, - FC_IP_SIZE_OUT => FC_IP_SIZE_OUT, - FC_UDP_SIZE_OUT => FC_UDP_SIZE_OUT, - FC_IDENT_OUT => FC_IDENT_OUT, - FC_FLAGS_OFFSET_OUT => FC_FLAGS_OFFSET_OUT, - FC_SOD_OUT => FC_SOD_OUT, - FC_EOD_OUT => FC_EOD_OUT, - BSM_CONSTR_OUT => BSM_CONSTR_OUT, - BSM_LOAD_OUT => BSM_LOAD_OUT, - BSM_SAVE_OUT => BSM_SAVE_OUT, - DBG_SHF_EMPTY => DBG_SHF_EMPTY, - DBG_SHF_FULL => DBG_SHF_FULL, - DBG_SHF_WR_EN => DBG_SHF_WR_EN, - DBG_SHF_RD_EN => DBG_SHF_RD_EN, - DBG_DF_EMPTY => DBG_DF_EMPTY, - DBG_DF_FULL => DBG_DF_FULL, - DBG_DF_WR_EN => DBG_DF_WR_EN, - DBG_DF_RD_EN => DBG_DF_RD_EN, - DBG_ALL_CTR => DBG_ALL_CTR, - DBG_SUB_CTR => DBG_SUB_CTR, - DBG_MY_CTR => DBG_MY_CTR, - DBG_BYTES_LOADED => DBG_BYTES_LOADED, - DBG_SIZE_LEFT => DBG_SIZE_LEFT, - DBG_SUB_SIZE_TO_SAVE => DBG_SUB_SIZE_TO_SAVE, - DBG_SUB_SIZE_LOADED => DBG_SUB_SIZE_LOADED, - DBG_SUB_BYTES_LOADED => DBG_SUB_BYTES_LOADED, - DBG_QUEUE_SIZE => DBG_QUEUE_SIZE, - DBG_ACT_QUEUE_SIZE => DBG_ACT_QUEUE_SIZE, - DEBUG_OUT => DEBUG_OUT - ); - -CLK_GEN: process -begin - clk <= '1'; wait for 5.0 ns; - clk <= '0'; wait for 5.0 ns; -end process CLK_GEN; - -THE_TESTBENCH: process -variable test_data_len : integer range 0 to 65535 := 1; -variable test_loop_len : integer range 0 to 65535 := 0; -variable test_evt_len : unsigned(15 downto 0) := x"0000"; -variable test_evt_len_vec : std_logic_vector(15 downto 0); -variable test_sub_len : unsigned(15 downto 0) := x"0000"; -variable test_sub_len_vec : std_logic_vector(15 downto 0); -variable test_data : unsigned(15 downto 0) := x"ffff"; -variable test_data_vec : std_logic_vector(15 downto 0); - -variable trigger_counter : unsigned(15 downto 0) := x"4710"; -variable trigger_loop : integer range 0 to 65535 := 15; -begin - -- Set up signals - reset <= '0'; - pc_wr_en_in <= '0'; - pc_data_in <= x"00"; - pc_start_of_sub_in <= '0'; - pc_end_of_data_in <= '0'; - pc_sub_size_in <= x"0000_0000"; - pc_trig_nr_in <= x"0000_0000"; - pc_decoding_in <= x"0002_0001"; -- static - pc_event_id_in <= x"0000_00ca"; -- static - pc_queue_dec_in <= x"0003_0062"; -- static - pc_max_frame_size_in <= x"0578"; -- static - fc_h_ready_in <= '0'; - fc_ready_in <= '0'; - wait until rising_edge(clk); - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - wait for 200 ns; - wait until rising_edge(clk); - - -- Tests may start now - -------------------------------------------------------------------------------- --- Loop the transmissions -------------------------------------------------------------------------------- - trigger_counter := x"4710"; - trigger_loop := 0; - - test_data_len := 14; - - MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop - - -- calculate the needed variables - test_loop_len := 2*(test_data_len - 1) + 1; - test_evt_len := to_unsigned( test_data_len, 16 ); - test_evt_len_vec := std_logic_vector(test_evt_len); - test_sub_len := test_evt_len + 1; - test_sub_len_vec := std_logic_vector(test_sub_len); - - -- start of subevent marker - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_trig_nr_in <= x"0000" & std_logic_vector(trigger_counter); - pc_sub_size_in <= b"0000_0000_0000_00" & test_sub_len_vec & b"00"; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_start_of_sub_in <= '1'; - wait until rising_edge(clk); - pc_start_of_sub_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_data_in <= test_evt_len_vec(15 downto 8); - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_data_in <= test_evt_len_vec(7 downto 0); - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_wr_en_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - pc_data_in <= x"ff"; -- source address high byte - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_data_in <= x"22"; -- source address low byte - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_wr_en_in <= '0'; - wait until rising_edge(clk); - wait until rising_edge(clk); - - test_data := x"ffff"; - MY_DATA_LOOP: for J in 0 to test_loop_len loop - test_data := test_data + 1; - test_data_vec := std_logic_vector(test_data); - wait until rising_edge(clk); - pc_data_in <= test_data_vec(15 downto 8); - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_data_in <= test_data_vec(7 downto 0); - pc_wr_en_in <= '1'; - wait until rising_edge(clk); - pc_wr_en_in <= '0'; --- wait until rising_edge(clk); --- wait until rising_edge(clk); - end loop MY_DATA_LOOP; - - -- end of subevent marker --- wait until rising_edge(clk); - pc_end_of_data_in <= '1'; - wait until rising_edge(clk); - pc_end_of_data_in <= '0'; - pc_sub_size_in <= x"0000_0000"; - pc_trig_nr_in <= x"0000_0000"; - wait until rising_edge(clk); - wait until rising_edge(clk); - - trigger_loop := trigger_loop + 1; - trigger_counter := trigger_counter + 1; - - wait for 500 ns; - wait until rising_edge(clk); - end loop MY_TRIGGER_LOOP; - --- wait for 8 us; -------------------------------------------------------------------------------- --- end of loop -------------------------------------------------------------------------------- - - wait until rising_edge(clk); - fc_ready_in <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - fc_h_ready_in <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - wait until rising_edge(clk); - - -- Stay a while... stay forever!!!Muahahah!!! - wait; - -end process THE_TESTBENCH; - -END; \ No newline at end of file diff --git a/gbe_ecp2m/tb_slv_mac_memory.vhd b/gbe_ecp2m/tb_slv_mac_memory.vhd deleted file mode 100755 index 00293c3..0000000 --- a/gbe_ecp2m/tb_slv_mac_memory.vhd +++ /dev/null @@ -1,114 +0,0 @@ -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -ENTITY testbench IS -END testbench; - -ARCHITECTURE behavior OF testbench IS - - COMPONENT slv_mac_memory - PORT( - CLK : IN std_logic; - RESET : IN std_logic; - BUSY_IN : IN std_logic; - SLV_ADDR_IN : IN std_logic_vector(7 downto 0); - SLV_READ_IN : IN std_logic; - SLV_WRITE_IN : IN std_logic; - SLV_DATA_IN : IN std_logic_vector(31 downto 0); - MEM_CLK_IN : IN std_logic; - MEM_ADDR_IN : IN std_logic_vector(7 downto 0); - SLV_BUSY_OUT : OUT std_logic; - SLV_ACK_OUT : OUT std_logic; - SLV_DATA_OUT : OUT std_logic_vector(31 downto 0); - MEM_DATA_OUT : OUT std_logic_vector(31 downto 0); - STAT : OUT std_logic_vector(31 downto 0) - ); - END COMPONENT; - - SIGNAL CLK : std_logic; - SIGNAL RESET : std_logic; - SIGNAL BUSY_IN : std_logic; - SIGNAL SLV_ADDR_IN : std_logic_vector(7 downto 0); - SIGNAL SLV_READ_IN : std_logic; - SIGNAL SLV_WRITE_IN : std_logic; - SIGNAL SLV_BUSY_OUT : std_logic; - SIGNAL SLV_ACK_OUT : std_logic; - SIGNAL SLV_DATA_IN : std_logic_vector(31 downto 0); - SIGNAL SLV_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL MEM_CLK_IN : std_logic; - SIGNAL MEM_ADDR_IN : std_logic_vector(7 downto 0); - SIGNAL MEM_DATA_OUT : std_logic_vector(31 downto 0); - SIGNAL STAT : std_logic_vector(31 downto 0); - -BEGIN - --- Please check and add your generic clause manually - uut: slv_mac_memory PORT MAP( - CLK => CLK, - RESET => RESET, - BUSY_IN => BUSY_IN, - SLV_ADDR_IN => SLV_ADDR_IN, - SLV_READ_IN => SLV_READ_IN, - SLV_WRITE_IN => SLV_WRITE_IN, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, - SLV_DATA_IN => SLV_DATA_IN, - SLV_DATA_OUT => SLV_DATA_OUT, - MEM_CLK_IN => MEM_CLK_IN, - MEM_ADDR_IN => MEM_ADDR_IN, - MEM_DATA_OUT => MEM_DATA_OUT, - STAT => STAT - ); - -CLK_GEN_PROC: process -begin - clk <= '0'; mem_clk_in <= '0'; wait for 5.0 ns; - clk <= '1'; mem_clk_in <= '1'; wait for 5.0 ns; -end process CLK_GEN_PROC; - -THE_TESTBENCH: process -begin - -- Setup signals - reset <= '0'; - busy_in <= '0'; - slv_addr_in <= x"00"; - slv_read_in <= '0'; - slv_write_in <= '0'; - slv_data_in <= x"dead_beef"; - mem_addr_in <= x"f0"; - wait until rising_edge(clk); - - -- Reset the whole stuff - wait until rising_edge(clk); - reset <= '1'; - wait until rising_edge(clk); - wait until rising_edge(clk); - reset <= '0'; - wait until rising_edge(clk); - - -- Tests may start now - wait until rising_edge(clk); - mem_addr_in <= x"00"; - wait until rising_edge(clk); - mem_addr_in <= x"01"; - wait until rising_edge(clk); - mem_addr_in <= x"02"; - wait until rising_edge(clk); - mem_addr_in <= x"03"; - wait until rising_edge(clk); - mem_addr_in <= x"04"; - wait until rising_edge(clk); - mem_addr_in <= x"05"; - wait until rising_edge(clk); - mem_addr_in <= x"06"; - wait until rising_edge(clk); - mem_addr_in <= x"07"; - wait until rising_edge(clk); - mem_addr_in <= x"08"; - - -- Stay a while... stay forever!!! Muahahaha!!!!! - wait; -end process THE_TESTBENCH; - -END; diff --git a/gbe_ecp2m/trb_net16_gbe_buf.vhd b/gbe_ecp2m/trb_net16_gbe_buf.vhd deleted file mode 100755 index a8f68b8..0000000 --- a/gbe_ecp2m/trb_net16_gbe_buf.vhd +++ /dev/null @@ -1,1281 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; -use work.trb_net_gbe_components.all; ---use work.version.all; - -entity trb_net16_gbe_buf is -generic( - DO_SIMULATION : integer range 0 to 1 := 1; - USE_125MHZ_EXTCLK : integer range 0 to 1 := 1 -); -port( - CLK : in std_logic; - TEST_CLK : in std_logic; -- only for simulation! - CLK_125_IN : in std_logic; -- gk 28.04.01 used only in internal 125MHz clock mode - RESET : in std_logic; - GSR_N : in std_logic; - -- Debug - STAGE_STAT_REGS_OUT : out std_logic_vector(31 downto 0); - STAGE_CTRL_REGS_IN : in std_logic_vector(31 downto 0); - -- configuration interface - IP_CFG_START_IN : in std_logic; - IP_CFG_BANK_SEL_IN : in std_logic_vector(3 downto 0); - IP_CFG_DONE_OUT : out std_logic; - IP_CFG_MEM_ADDR_OUT : out std_logic_vector(7 downto 0); - IP_CFG_MEM_DATA_IN : in std_logic_vector(31 downto 0); - IP_CFG_MEM_CLK_OUT : out std_logic; - MR_RESET_IN : in std_logic; - MR_MODE_IN : in std_logic; - MR_RESTART_IN : in std_logic; - -- gk 29.03.10 - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - -- gk 22.04.10 - -- registers setup interface - BUS_ADDR_IN : in std_logic_vector(7 downto 0); - BUS_DATA_IN : in std_logic_vector(31 downto 0); - BUS_DATA_OUT : out std_logic_vector(31 downto 0); -- gk 26.04.10 - BUS_WRITE_EN_IN : in std_logic; -- gk 26.04.10 - BUS_READ_EN_IN : in std_logic; -- gk 26.04.10 - BUS_ACK_OUT : out std_logic; -- gk 26.04.10 - -- gk 23.04.10 - LED_PACKET_SENT_OUT : out std_logic; - LED_AN_DONE_N_OUT : out std_logic; - -- CTS interface - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; - CTS_READ_IN : in std_logic; - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data payload interface - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - FEE_BUSY_IN : in std_logic; - --SFP Connection - SFP_RXD_P_IN : in std_logic; - SFP_RXD_N_IN : in std_logic; - SFP_TXD_P_OUT : out std_logic; - SFP_TXD_N_OUT : out std_logic; - SFP_REFCLK_P_IN : in std_logic; - SFP_REFCLK_N_IN : in std_logic; - SFP_PRSNT_N_IN : in std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted) - SFP_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SFP_TXDIS_OUT : out std_logic; -- SFP disable - -- debug ports - ANALYZER_DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end entity trb_net16_gbe_buf; - -architecture trb_net16_gbe_buf of trb_net16_gbe_buf is - --- Placer Directives -attribute HGROUP : string; --- for whole architecture -attribute HGROUP of trb_net16_gbe_buf : architecture is "GBE_BUF_group"; - - -component tsmac3 -port( - --------------- clock and reset port declarations ------------------ - hclk : in std_logic; - txmac_clk : in std_logic; - rxmac_clk : in std_logic; - reset_n : in std_logic; - txmac_clk_en : in std_logic; - rxmac_clk_en : in std_logic; - ------------------- Input signals to the GMII ---------------- - rxd : in std_logic_vector(7 downto 0); - rx_dv : in std_logic; - rx_er : in std_logic; - col : in std_logic; - crs : in std_logic; - -------------------- Input signals to the CPU I/F ------------------- - haddr : in std_logic_vector(7 downto 0); - hdatain : in std_logic_vector(7 downto 0); - hcs_n : in std_logic; - hwrite_n : in std_logic; - hread_n : in std_logic; - ---------------- Input signals to the Tx MAC FIFO I/F --------------- - tx_fifodata : in std_logic_vector(7 downto 0); - tx_fifoavail : in std_logic; - tx_fifoeof : in std_logic; - tx_fifoempty : in std_logic; - tx_sndpaustim : in std_logic_vector(15 downto 0); - tx_sndpausreq : in std_logic; - tx_fifoctrl : in std_logic; - ---------------- Input signals to the Rx MAC FIFO I/F --------------- - rx_fifo_full : in std_logic; - ignore_pkt : in std_logic; - -------------------- Output signals from the GMII ----------------------- - txd : out std_logic_vector(7 downto 0); - tx_en : out std_logic; - tx_er : out std_logic; - -------------------- Output signals from the CPU I/F ------------------- - hdataout : out std_logic_vector(7 downto 0); - hdataout_en_n : out std_logic; - hready_n : out std_logic; - cpu_if_gbit_en : out std_logic; - ---------------- Output signals from the Tx MAC FIFO I/F --------------- - tx_macread : out std_logic; - tx_discfrm : out std_logic; - tx_staten : out std_logic; - tx_done : out std_logic; - tx_statvec : out std_logic_vector(30 downto 0); - ---------------- Output signals from the Rx MAC FIFO I/F --------------- - rx_fifo_error : out std_logic; - rx_stat_vector : out std_logic_vector(31 downto 0); - rx_dbout : out std_logic_vector(7 downto 0); - rx_write : out std_logic; - rx_stat_en : out std_logic; - rx_eof : out std_logic; - rx_error : out std_logic -); -end component; - -component mb_mac_sim is -port ( - -------------------------------------------------------------------------- - --------------- clock, reset, clock enable ------------------------------- - HCLK : in std_logic; - TX_MAC_CLK : in std_logic; - RX_MAC_CLK : in std_logic; - RESET_N : in std_logic; - TXMAC_CLK_EN : in std_logic; - RXMAC_CLK_EN : in std_logic; - -------------------------------------------------------------------------- - --------------- SGMII receive interface ---------------------------------- - RXD : in std_logic_vector(7 downto 0); - RX_DV : in std_logic; - RX_ER : in std_logic; - COL : in std_logic; - CRS : in std_logic; - -------------------------------------------------------------------------- - --------------- SGMII transmit interface --------------------------------- - TXD : out std_logic_vector(7 downto 0); - TX_EN : out std_logic; - TX_ER : out std_logic; - -------------------------------------------------------------------------- - --------------- CPU configuration interface ------------------------------ - HADDR : in std_logic_vector(7 downto 0); - HDATAIN : in std_logic_vector(7 downto 0); - HCS_N : in std_logic; - HWRITE_N : in std_logic; - HREAD_N : in std_logic; - HDATAOUT : out std_logic_vector(7 downto 0); - HDATAOUT_EN_N : out std_logic; - HREADY_N : out std_logic; - CPU_IF_GBIT_EN : out std_logic; - -------------------------------------------------------------------------- - --------------- Transmit FIFO interface ---------------------------------- - TX_FIFODATA : in std_logic_vector(7 downto 0); - TX_FIFOAVAIL : in std_logic; - TX_FIFOEOF : in std_logic; - TX_FIFOEMPTY : in std_logic; - TX_MACREAD : out std_logic; - TX_DONE : out std_logic; - TX_SNDPAUSTIM : in std_logic_vector(15 downto 0); - TX_SNDPAUSREQ : in std_logic; - TX_FIFOCTRL : in std_logic; - TX_DISCFRM : out std_logic; - TX_STATEN : out std_logic; - TX_STATVEC : out std_logic_vector(30 downto 0); - -------------------------------------------------------------------------- - --------------- Receive FIFO interface ----------------------------------- - RX_DBOUT : out std_logic_vector(7 downto 0); - RX_FIFO_FULL : in std_logic; - IGNORE_PKT : in std_logic; - RX_FIFO_ERROR : out std_logic; - RX_STAT_VECTOR : out std_logic_vector(31 downto 0); - RX_STAT_EN : out std_logic; - RX_WRITE : out std_logic; - RX_EOF : out std_logic; - RX_ERROR : out std_logic -); -end component; - -component slv_mac_memory is -port( - CLK : in std_logic; - RESET : in std_logic; - BUSY_IN : in std_logic; - -- Slave bus - SLV_ADDR_IN : in std_logic_vector(7 downto 0); - SLV_READ_IN : in std_logic; - SLV_WRITE_IN : in std_logic; - SLV_BUSY_OUT : out std_logic; - SLV_ACK_OUT : out std_logic; - SLV_DATA_IN : in std_logic_vector(31 downto 0); - SLV_DATA_OUT : out std_logic_vector(31 downto 0); - -- I/O to the backend - MEM_CLK_IN : in std_logic; - MEM_ADDR_IN : in std_logic_vector(7 downto 0); - MEM_DATA_OUT : out std_logic_vector(31 downto 0); - -- Status lines - STAT : out std_logic_vector(31 downto 0) -- DEBUG -); -end component; - -component fifo_4096x9 is -port( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -signal ig_bsm_save : std_logic_vector(3 downto 0); -signal ig_bsm_load : std_logic_vector(3 downto 0); -signal ig_cts_ctr : std_logic_vector(2 downto 0); -signal ig_rem_ctr : std_logic_vector(3 downto 0); -signal ig_debug : std_logic_vector(31 downto 0); -signal ig_data : std_logic_vector(15 downto 0); -signal ig_wcnt : std_logic_vector(15 downto 0); -signal ig_rcnt : std_logic_vector(16 downto 0); -signal ig_rd_en : std_logic; -signal ig_wr_en : std_logic; -signal ig_empty : std_logic; -signal ig_aempty : std_logic; -signal ig_full : std_logic; -signal ig_afull : std_logic; - -signal pc_wr_en : std_logic; -signal pc_data : std_logic_vector(7 downto 0); -signal pc_eod : std_logic; -signal pc_sos : std_logic; -signal pc_ready : std_logic; -signal pc_padding : std_logic; -signal pc_decoding : std_logic_vector(31 downto 0); -signal pc_event_id : std_logic_vector(31 downto 0); -signal pc_queue_dec : std_logic_vector(31 downto 0); -signal pc_max_frame_size : std_logic_vector(15 downto 0); -signal pc_bsm_constr : std_logic_vector(3 downto 0); -signal pc_bsm_load : std_logic_vector(3 downto 0); -signal pc_bsm_save : std_logic_vector(3 downto 0); -signal pc_shf_empty : std_logic; -signal pc_shf_full : std_logic; -signal pc_shf_wr_en : std_logic; -signal pc_shf_rd_en : std_logic; -signal pc_shf_q : std_logic_vector(7 downto 0); -signal pc_df_empty : std_logic; -signal pc_df_full : std_logic; -signal pc_df_wr_en : std_logic; -signal pc_df_rd_en : std_logic; -signal pc_df_q : std_logic_vector(7 downto 0); -signal pc_all_ctr : std_logic_vector(4 downto 0); -signal pc_sub_ctr : std_logic_vector(4 downto 0); -signal pc_bytes_loaded : std_logic_vector(15 downto 0); -signal pc_size_left : std_logic_vector(31 downto 0); -signal pc_sub_size_to_save : std_logic_vector(31 downto 0); -signal pc_sub_size_loaded : std_logic_vector(31 downto 0); -signal pc_sub_bytes_loaded : std_logic_vector(31 downto 0); -signal pc_queue_size : std_logic_vector(31 downto 0); -signal pc_act_queue_size : std_logic_vector(31 downto 0); - -signal fee_read : std_logic; -signal cts_readout_finished : std_logic; -signal cts_dataready : std_logic; -signal cts_length : std_logic_vector(15 downto 0); -signal cts_data : std_logic_vector(31 downto 0); -- DHDR of rest packet -signal cts_error_pattern : std_logic_vector(31 downto 0); - -signal pc_sub_size : std_logic_vector(31 downto 0); -signal pc_trig_nr : std_logic_vector(31 downto 0); - -signal fc_wr_en : std_logic; -signal fc_data : std_logic_vector(7 downto 0); -signal fc_ip_size : std_logic_vector(15 downto 0); -signal fc_udp_size : std_logic_vector(15 downto 0); -signal fc_ident : std_logic_vector(15 downto 0); -signal fc_flags_offset : std_logic_vector(15 downto 0); -signal fc_sod : std_logic; -signal fc_eod : std_logic; -signal fc_h_ready : std_logic; -signal fc_ready : std_logic; -signal fc_dest_mac : std_logic_vector(47 downto 0); -signal fc_dest_ip : std_logic_vector(31 downto 0); -signal fc_dest_udp : std_logic_vector(15 downto 0); -signal fc_src_mac : std_logic_vector(47 downto 0); -signal fc_src_ip : std_logic_vector(31 downto 0); -signal fc_src_udp : std_logic_vector(15 downto 0); -signal fc_type : std_logic_vector(15 downto 0); -signal fc_ihl_version : std_logic_vector(7 downto 0); -signal fc_tos : std_logic_vector(7 downto 0); -signal fc_ttl : std_logic_vector(7 downto 0); -signal fc_protocol : std_logic_vector(7 downto 0); -signal fc_bsm_constr : std_logic_vector(7 downto 0); -signal fc_bsm_trans : std_logic_vector(3 downto 0); - -signal ft_data : std_logic_vector(8 downto 0);-- gk 04.05.10 -signal ft_tx_empty : std_logic; -signal ft_start_of_packet : std_logic; -signal ft_bsm_init : std_logic_vector(3 downto 0); -signal ft_bsm_mac : std_logic_vector(3 downto 0); -signal ft_bsm_trans : std_logic_vector(3 downto 0); - -signal mac_haddr : std_logic_vector(7 downto 0); -signal mac_hdataout : std_logic_vector(7 downto 0); -signal mac_hcs : std_logic; -signal mac_hwrite : std_logic; -signal mac_hread : std_logic; -signal mac_fifoavail : std_logic; -signal mac_fifoempty : std_logic; -signal mac_fifoeof : std_logic; -signal mac_hready : std_logic; -signal mac_hdata_en : std_logic; -signal mac_tx_done : std_logic; -signal mac_tx_read : std_logic; - -signal serdes_clk_125 : std_logic; -signal mac_tx_clk_en : std_logic; -signal mac_rx_clk_en : std_logic; -signal mac_col : std_logic; -signal mac_crs : std_logic; -signal pcs_txd : std_logic_vector(7 downto 0); -signal pcs_tx_en : std_logic; -signal pcs_tx_er : std_logic; -signal pcs_an_lp_ability : std_logic_vector(15 downto 0); -signal pcs_an_complete : std_logic; -signal pcs_an_page_rx : std_logic; - -signal pcs_stat_debug : std_logic_vector(63 downto 0); - -signal stage_stat_regs : std_logic_vector(31 downto 0); -signal stage_ctrl_regs : std_logic_vector(31 downto 0); - -signal analyzer_debug : std_logic_vector(63 downto 0); - -signal ip_cfg_start : std_logic; -signal ip_cfg_bank : std_logic_vector(3 downto 0); -signal ip_cfg_done : std_logic; - -signal ip_cfg_mem_addr : std_logic_vector(7 downto 0); -signal ip_cfg_mem_data : std_logic_vector(31 downto 0); -signal ip_cfg_mem_clk : std_logic; - --- gk 22.04.10 -signal max_packet : std_logic_vector(31 downto 0); -signal min_packet : std_logic_vector(31 downto 0); -signal use_gbe : std_logic; -signal use_trbnet : std_logic; -signal use_multievents : std_logic; --- gk 26.04.10 -signal readout_ctr : std_logic_vector(23 downto 0); -signal readout_ctr_valid : std_logic; -signal gbe_trig_nr : std_logic_vector(31 downto 0); --- gk 28.04.10 -signal pc_delay : std_logic_vector(31 downto 0); --- gk 04.05.10 -signal ft_eod : std_logic; --- gk 01.06.10 -signal dbg_ipu2gbe1 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe2 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe3 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe4 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe5 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe6 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe7 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe8 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe9 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe10 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe11 : std_logic_vector(31 downto 0); -signal dbg_ipu2gbe12 : std_logic_vector(31 downto 0); -signal dbg_pc1 : std_logic_vector(31 downto 0); -signal dbg_pc2 : std_logic_vector(31 downto 0); -signal dbg_fc1 : std_logic_vector(31 downto 0); -signal dbg_fc2 : std_logic_vector(31 downto 0); -signal dbg_ft1 : std_logic_vector(31 downto 0); -signal dbg_ft2 : std_logic_vector(31 downto 0); --- gk 08.06.10 -signal mac_tx_staten : std_logic; -signal mac_tx_statevec : std_logic_vector(30 downto 0); -signal mac_tx_discfrm : std_logic; - -signal dbg_rd_en : std_logic; -signal dbg_q : std_logic_vector(15 downto 0); - --- gk 21.07.10 -signal allow_large : std_logic; - --- gk 28.07.10 -signal bytes_sent_ctr : std_logic_vector(31 downto 0); -signal monitor_sent : std_logic_vector(31 downto 0); -signal monitor_dropped : std_logic_vector(31 downto 0); -signal monitor_sm : std_logic_vector(31 downto 0); -signal monitor_lr : std_logic_vector(31 downto 0); -signal monitor_hr : std_logic_vector(31 downto 0); -signal monitor_fifos : std_logic_vector(31 downto 0); -signal monitor_fifos_q : std_logic_vector(31 downto 0); -signal monitor_discfrm : std_logic_vector(31 downto 0); - --- gk 02.08.10 -signal discfrm_ctr : std_logic_vector(31 downto 0); - --- gk 28.09.10 -signal dbg_reset_fifo : std_logic; -signal db_fifo_rst : std_logic; - --- gk 30.09.10 -signal fc_rd_en : std_logic; -signal link_ok : std_logic; -signal link_ok_timeout_ctr : std_logic_vector(15 downto 0); - -type linkStates is (ACTIVE, INACTIVE, TIMEOUT, FINALIZE); -signal link_current_state, link_next_state : linkStates; - -signal link_down_ctr : std_logic_vector(15 downto 0); -signal link_down_ctr_lock : std_logic; - -signal link_state : std_logic_vector(3 downto 0); - -signal monitor_empty : std_logic_vector(31 downto 0); - --- gk 07.10.10 -signal pc_eos : std_logic; - --- gk 09.12.10 -signal frame_delay : std_logic_vector(31 downto 0); - -begin - -stage_ctrl_regs <= STAGE_CTRL_REGS_IN; - --- gk 23.04.10 -LED_PACKET_SENT_OUT <= pc_ready; -LED_AN_DONE_N_OUT <= not link_ok; --not pcs_an_complete; - --- gk 22.04.10 moved to gbe_setup entity --- PacketConstructor fixed magic values ---pc_decoding <= x"00020001"; -- !!!! swap it!!!! -- gk 22.04.10 ---pc_event_id <= x"000000ca"; -- !!!! swap it!!!! -- gk 22.04.10 ---pc_queue_dec <= x"00030062"; -- !!!! swap it!!!! -- gk 22.04.10 - --- FrameConstructor fixed magic values -fc_type <= x"0008"; -fc_ihl_version <= x"45"; -fc_tos <= x"10"; -fc_ttl <= x"ff"; -fc_protocol <= x"11"; - --- gk 22.04.10 new entity to set values via slow control -SETUP : gbe_setup -port map( - CLK => CLK, - RESET => RESET, - - -- gk 26.04.10 - -- interface to regio bus - BUS_ADDR_IN => BUS_ADDR_IN, - BUS_DATA_IN => BUS_DATA_IN, - BUS_DATA_OUT => BUS_DATA_OUT, - BUS_WRITE_EN_IN => BUS_WRITE_EN_IN, - BUS_READ_EN_IN => BUS_READ_EN_IN, - BUS_ACK_OUT => BUS_ACK_OUT, - - GBE_TRIG_NR_IN => pc_trig_nr, -- gk 26.04.10 - - -- output to gbe_buf - GBE_SUBEVENT_ID_OUT => pc_event_id, - GBE_SUBEVENT_DEC_OUT => pc_decoding, - GBE_QUEUE_DEC_OUT => pc_queue_dec, - GBE_MAX_PACKET_OUT => max_packet, - GBE_MIN_PACKET_OUT => min_packet, -- gk 20.07.10 - GBE_MAX_FRAME_OUT => pc_max_frame_size, - GBE_USE_GBE_OUT => use_gbe, - GBE_USE_TRBNET_OUT => use_trbnet, - GBE_USE_MULTIEVENTS_OUT => use_multievents, - GBE_READOUT_CTR_OUT => readout_ctr, -- gk 26.04.10 - GBE_READOUT_CTR_VALID_OUT => readout_ctr_valid, -- gk 26.04.10 - GBE_DELAY_OUT => pc_delay, - GBE_ALLOW_LARGE_OUT => allow_large, -- gk 21.07.10 - GBE_FRAME_DELAY_OUT => frame_delay, -- gk 09.12.10 - -- gk 28.07.10 - MONITOR_BYTES_IN => bytes_sent_ctr, - MONITOR_SENT_IN => monitor_sent, - MONITOR_DROPPED_IN => monitor_dropped, - MONITOR_SM_IN => monitor_sm, - MONITOR_LR_IN => monitor_lr, - MONITOR_HDR_IN => monitor_hr, - MONITOR_FIFOS_IN => monitor_fifos_q, - MONITOR_DISCFRM_IN => monitor_discfrm, - MONITOR_EMPTY_IN => monitor_empty, - MONITOR_LINK_DWN_IN(15 downto 0) => link_down_ctr, -- gk 30.09.10 - MONITOR_LINK_DWN_IN(19 downto 16) => link_state, - MONITOR_LINK_DWN_IN(23 downto 20) => ft_bsm_trans, - MONITOR_LINK_DWN_IN(27 downto 24) => fc_bsm_trans, - MONITOR_LINK_DWN_IN(31 downto 28) => (others => '0'), - -- gk 01.06.10 - DBG_IPU2GBE1_IN => dbg_ipu2gbe1, - DBG_IPU2GBE2_IN => dbg_ipu2gbe2, - DBG_IPU2GBE3_IN => dbg_ipu2gbe3, - DBG_IPU2GBE4_IN => dbg_ipu2gbe4, - DBG_IPU2GBE5_IN => dbg_ipu2gbe5, - DBG_IPU2GBE6_IN => dbg_ipu2gbe6, - DBG_IPU2GBE7_IN => dbg_ipu2gbe7, - DBG_IPU2GBE8_IN => dbg_ipu2gbe8, - DBG_IPU2GBE9_IN => dbg_ipu2gbe9, - DBG_IPU2GBE10_IN => dbg_ipu2gbe10, - DBG_IPU2GBE11_IN => dbg_ipu2gbe11, - DBG_IPU2GBE12_IN => dbg_ipu2gbe12, - DBG_PC1_IN => dbg_pc1, - DBG_PC2_IN => dbg_pc2, - DBG_FC1_IN => dbg_fc1, - DBG_FC2_IN => dbg_fc2, - DBG_FT1_IN => dbg_ft1, - DBG_FT2_IN => dbg_ft2, - DBG_FIFO_RD_EN_OUT => dbg_rd_en, - DBG_FIFO_Q_IN => dbg_q - --DBG_FIFO_RESET_OUT => dbg_reset_fifo -- gk 28.09.10 -); - --- IP configurator: allows IP config to change for each event builder -THE_IP_CONFIGURATOR: ip_configurator -port map( - CLK => CLK, - RESET => RESET, - -- configuration interface - START_CONFIG_IN => ip_cfg_start, --IP_CFG_START_IN, -- new -- gk 7.03.10 - BANK_SELECT_IN => ip_cfg_bank, --IP_CFG_BANK_SEL_IN, -- new -- gk 27.03.10 - CONFIG_DONE_OUT => ip_cfg_done, --IP_CFG_DONE_OUT, -- new -- gk 27.03.10 - MEM_ADDR_OUT => ip_cfg_mem_addr, --IP_CFG_MEM_ADDR_OUT, -- new -- gk 27.03.10 - MEM_DATA_IN => ip_cfg_mem_data, --IP_CFG_MEM_DATA_IN, -- new -- gk 27.03.10 - MEM_CLK_OUT => ip_cfg_mem_clk, --IP_CFG_MEM_CLK_OUT, -- new -- gk 27.03.10 - -- information for IP cores - DEST_MAC_OUT => fc_dest_mac, - DEST_IP_OUT => fc_dest_ip, - DEST_UDP_OUT => fc_dest_udp, - SRC_MAC_OUT => fc_src_mac, - SRC_IP_OUT => fc_src_ip, - SRC_UDP_OUT => fc_src_udp, - MTU_OUT => open, --pc_max_frame_size, -- gk 22.04.10 - -- Debug - DEBUG_OUT => open -); - --- gk 27.03.01 -MB_IP_CONFIG: slv_mac_memory -port map( - CLK => CLK, -- clk_100, - RESET => RESET, --reset_i, - BUSY_IN => '0', - -- Slave bus - SLV_ADDR_IN => SLV_ADDR_IN, --x"00", --mb_ip_mem_addr(7 downto 0), - SLV_READ_IN => SLV_READ_IN, --'0', --mb_ip_mem_read, - SLV_WRITE_IN => SLV_WRITE_IN, --mb_ip_mem_write, - SLV_BUSY_OUT => SLV_BUSY_OUT, - SLV_ACK_OUT => SLV_ACK_OUT, --mb_ip_mem_ack, - SLV_DATA_IN => SLV_DATA_IN, --mb_ip_mem_data_wr, - SLV_DATA_OUT => SLV_DATA_OUT, --mb_ip_mem_data_rd, - -- I/O to the backend - MEM_CLK_IN => ip_cfg_mem_clk, - MEM_ADDR_IN => ip_cfg_mem_addr, - MEM_DATA_OUT => ip_cfg_mem_data, - -- Status lines - STAT => open -); - --- First stage: get data from IPU channel, buffer it and terminate the IPU transmission to CTS -THE_IPU_INTERFACE: trb_net16_ipu2gbe -port map( - CLK => CLK, - RESET => RESET, - --Event information coming from CTS - CTS_NUMBER_IN => CTS_NUMBER_IN, - CTS_CODE_IN => CTS_CODE_IN, - CTS_INFORMATION_IN => CTS_INFORMATION_IN, - CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN, - CTS_START_READOUT_IN => CTS_START_READOUT_IN, - --Information sent to CTS - --status data, equipped with DHDR - CTS_DATA_OUT => cts_data, - CTS_DATAREADY_OUT => cts_dataready, - CTS_READOUT_FINISHED_OUT => cts_readout_finished, - CTS_READ_IN => CTS_READ_IN, - CTS_LENGTH_OUT => cts_length, - CTS_ERROR_PATTERN_OUT => cts_error_pattern, - -- Data from Frontends - FEE_DATA_IN => FEE_DATA_IN, - FEE_DATAREADY_IN => FEE_DATAREADY_IN, - FEE_READ_OUT => fee_read, - FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN, - FEE_BUSY_IN => FEE_BUSY_IN, - -- slow control interface - START_CONFIG_OUT => ip_cfg_start, --open, --: out std_logic; -- reconfigure MACs/IPs/ports/packet size -- gk 27.03.10 - BANK_SELECT_OUT => ip_cfg_bank, --open, --: out std_logic_vector(3 downto 0); -- configuration page address -- gk 27.03.10 - CONFIG_DONE_IN => ip_cfg_done, --'1', --: in std_logic; -- configuration finished -- gk 27.03.10 - DATA_GBE_ENABLE_IN => use_gbe, --'1', --: in std_logic; -- IPU data is forwarded to GbE -- gk 22.04.10 - DATA_IPU_ENABLE_IN => use_trbnet, --'0', --: in std_logic; -- IPU data is forwarded to CTS / TRBnet -- gk 22.04.10 - MULT_EVT_ENABLE_IN => use_multievents, - MAX_MESSAGE_SIZE_IN => max_packet, --x"0000_FDE8", -- gk 08.04.10 -- temporarily fixed here, to be set by slow ctrl -- gk 22.04.10 - MIN_MESSAGE_SIZE_IN => min_packet, -- gk 20.07.10 - READOUT_CTR_IN => readout_ctr, -- gk 26.04.10 - READOUT_CTR_VALID_IN => readout_ctr_valid, -- gk 26.04.10 - ALLOW_LARGE_IN => allow_large, -- gk 21.07.10 - -- PacketConstructor interface - PC_WR_EN_OUT => pc_wr_en, - PC_DATA_OUT => pc_data, - PC_READY_IN => pc_ready, - PC_SOS_OUT => pc_sos, - PC_EOS_OUT => pc_eos, -- gk 07.10.10 - PC_EOD_OUT => pc_eod, - PC_SUB_SIZE_OUT => pc_sub_size, - PC_TRIG_NR_OUT => pc_trig_nr, - PC_PADDING_OUT => pc_padding, - MONITOR_OUT(31 downto 0) => monitor_sent, - MONITOR_OUT(63 downto 32) => monitor_dropped, - MONITOR_OUT(95 downto 64) => monitor_hr, - MONITOR_OUT(127 downto 96) => monitor_sm, - MONITOR_OUT(159 downto 128) => monitor_lr, - MONITOR_OUT(191 downto 160) => monitor_fifos, - MONITOR_OUT(223 downto 192) => monitor_empty, - DEBUG_OUT(31 downto 0) => dbg_ipu2gbe1, - DEBUG_OUT(63 downto 32) => dbg_ipu2gbe2, - DEBUG_OUT(95 downto 64) => dbg_ipu2gbe3, - DEBUG_OUT(127 downto 96) => dbg_ipu2gbe4, - DEBUG_OUT(159 downto 128) => dbg_ipu2gbe5, - DEBUG_OUT(191 downto 160) => dbg_ipu2gbe6, - DEBUG_OUT(223 downto 192) => dbg_ipu2gbe7, - DEBUG_OUT(255 downto 224) => dbg_ipu2gbe8, - DEBUG_OUT(287 downto 256) => dbg_ipu2gbe9, - DEBUG_OUT(319 downto 288) => dbg_ipu2gbe10, - DEBUG_OUT(351 downto 320) => dbg_ipu2gbe11, - DEBUG_OUT(383 downto 352) => dbg_ipu2gbe12 -); - --- Second stage: Packet constructor -PACKET_CONSTRUCTOR : trb_net16_gbe_packet_constr -port map( - -- ports for user logic - RESET => RESET, - CLK => CLK, - PC_WR_EN_IN => pc_wr_en, - PC_DATA_IN => pc_data, - PC_READY_OUT => pc_ready, - PC_START_OF_SUB_IN => pc_sos, - PC_END_OF_SUB_IN => pc_eos, -- gk 07.10.10 - PC_END_OF_DATA_IN => pc_eod, - -- queue and subevent layer headers - PC_SUB_SIZE_IN => pc_sub_size, - PC_PADDING_IN => pc_padding, -- gk 29.03.10 - PC_DECODING_IN => pc_decoding, - PC_EVENT_ID_IN => pc_event_id, - PC_TRIG_NR_IN => pc_trig_nr, - PC_QUEUE_DEC_IN => pc_queue_dec, - PC_MAX_FRAME_SIZE_IN => pc_max_frame_size, - PC_DELAY_IN => pc_delay, -- gk 28.04.10 - MULT_EVT_ENABLE_IN => use_multievents, -- gk 06.10.10 - -- NEW PORTS - FC_WR_EN_OUT => fc_wr_en, - FC_DATA_OUT => fc_data, - FC_H_READY_IN => fc_h_ready, - FC_READY_IN => fc_ready, - FC_IP_SIZE_OUT => fc_ip_size, - FC_UDP_SIZE_OUT => fc_udp_size, - FC_IDENT_OUT => fc_ident, - FC_FLAGS_OFFSET_OUT => fc_flags_offset, - FC_SOD_OUT => fc_sod, - FC_EOD_OUT => fc_eod, - DEBUG_OUT(31 downto 0) => dbg_pc1, - DEBUG_OUT(63 downto 32) => dbg_pc2 -); - --- gk 04.08.10 -MON_PROC : process(CLK) -begin - if rising_edge(CLK) then - monitor_fifos_q(3 downto 0) <= monitor_fifos(3 downto 0); - if (dbg_pc1(28) = '1') then - monitor_fifos_q(5 downto 4) <= b"11"; - else - monitor_fifos_q(5 downto 4) <= b"00"; - end if; - if (dbg_pc1(30) = '1') then - monitor_fifos_q(7 downto 6) <= b"11"; - else - monitor_fifos_q(7 downto 6) <= b"00"; - end if; - if (dbg_fc1(28) = '1') then - monitor_fifos_q(11 downto 8) <= b"1111"; - else - monitor_fifos_q(11 downto 8) <= b"0000"; - end if; - if (pcs_an_complete = '0') then - monitor_fifos_q(15 downto 12) <= b"1111"; - else - monitor_fifos_q(15 downto 12) <= b"0000"; - end if; - end if; -end process MON_PROC; - --- Third stage: Frame Constructor -FRAME_CONSTRUCTOR: trb_net16_gbe_frame_constr -port map( - -- ports for user logic - RESET => RESET, - CLK => CLK, - LINK_OK_IN => link_ok, --pcs_an_complete, -- gk 03.08.10 -- gk 30.09.10 - -- - WR_EN_IN => fc_wr_en, - DATA_IN => fc_data, - START_OF_DATA_IN => fc_sod, - END_OF_DATA_IN => fc_eod, - IP_F_SIZE_IN => fc_ip_size, - UDP_P_SIZE_IN => fc_udp_size, - HEADERS_READY_OUT => fc_h_ready, - READY_OUT => fc_ready, - DEST_MAC_ADDRESS_IN => fc_dest_mac, - DEST_IP_ADDRESS_IN => fc_dest_ip, - DEST_UDP_PORT_IN => fc_dest_udp, - SRC_MAC_ADDRESS_IN => fc_src_mac, - SRC_IP_ADDRESS_IN => fc_src_ip, - SRC_UDP_PORT_IN => fc_src_udp, - FRAME_TYPE_IN => fc_type, - IHL_VERSION_IN => fc_ihl_version, - TOS_IN => fc_tos, - IDENTIFICATION_IN => fc_ident, - FLAGS_OFFSET_IN => fc_flags_offset, - TTL_IN => fc_ttl, - PROTOCOL_IN => fc_protocol, - FRAME_DELAY_IN => frame_delay, -- gk 09.12.10 - -- ports for packetTransmitter - RD_CLK => serdes_clk_125, - FT_DATA_OUT => ft_data, - --FT_EOD_OUT => ft_eod, -- gk 04.05.10 - FT_TX_EMPTY_OUT => ft_tx_empty, - FT_TX_RD_EN_IN => fc_rd_en, --mac_tx_read, -- gk 30.09.10 - FT_START_OF_PACKET_OUT => ft_start_of_packet, - FT_TX_DONE_IN => mac_tx_done, - FT_TX_DISCFRM_IN => mac_tx_discfrm, - -- debug ports - BSM_CONSTR_OUT => fc_bsm_constr, - BSM_TRANS_OUT => fc_bsm_trans, - DEBUG_OUT(31 downto 0) => dbg_fc1, - DEBUG_OUT(63 downto 32) => dbg_fc2 -); - ---*********************** --- LINK STATE CONTROL ---*********************** - --- gk 30.09.10 -fc_rd_en <= '1' when ((link_ok = '1') and (mac_tx_read = '1')) - or (link_ok = '0') - else '0'; - --- gk 30.09.10 -LINK_STATE_MACHINE_PROC : process(serdes_clk_125) -begin - if rising_edge(serdes_clk_125) then - if (RESET = '1') or (dbg_reset_fifo = '1') then - link_current_state <= INACTIVE; - else - link_current_state <= link_next_state; - end if; - end if; -end process; - --- gk 30.09.10 -LINK_STATE_MACHINE : process(serdes_clk_125) -begin - case link_current_state is - - when ACTIVE => - link_state <= x"1"; - if (pcs_an_complete = '0') then - link_next_state <= INACTIVE; - else - link_next_state <= link_current_state; - end if; - - when INACTIVE => - link_state <= x"2"; - if (pcs_an_complete = '1') then - link_next_state <= TIMEOUT; - else - link_next_state <= link_current_state; - end if; - - when TIMEOUT => - link_state <= x"3"; - if (pcs_an_complete = '0') then - link_next_state <= INACTIVE; - else - if (link_ok_timeout_ctr = x"ffff") then - link_next_state <= FINALIZE; - else - link_next_state <= link_current_state; - end if; - end if; - - when FINALIZE => - link_state <= x"4"; - if (pcs_an_complete = '0') then - link_next_state <= INACTIVE; - else - if (pc_ready = '1') then - link_next_state <= ACTIVE; - else - link_next_state <= link_current_state; - end if; - end if; - - end case; -end process LINK_STATE_MACHINE; - --- gk 30.09.10 -LINK_OK_CTR_PROC : process(serdes_clk_125) -begin - if rising_edge(serdes_clk_125) then - if (RESET = '1') or (link_current_state /= TIMEOUT) then - link_ok_timeout_ctr <= (others => '0'); - elsif (link_current_state = TIMEOUT) then - link_ok_timeout_ctr <= link_ok_timeout_ctr + x"1"; - end if; - end if; -end process LINK_OK_CTR_PROC; - --- gk 30.09.10 -LINK_OK_PROC : process(serdes_clk_125) -begin - if rising_edge(serdes_clk_125) then - if (RESET = '1') then - link_ok <= '0'; - elsif (link_current_state = ACTIVE) then - link_ok <= '1'; - else - link_ok <= '0'; - end if; - end if; -end process LINK_OK_PROC; - --- gk 30.09.10 -LINK_DOWN_CTR_PROC : process(serdes_clk_125) -begin - if rising_edge(serdes_clk_125) then - if (RESET = '1') then - link_down_ctr <= (others => '0'); - link_down_ctr_lock <= '0'; - elsif (pcs_an_complete = '1') then - link_down_ctr_lock <= '0'; - elsif ((pcs_an_complete = '0') and (link_down_ctr_lock = '0')) then - link_down_ctr <= link_down_ctr + x"1"; - link_down_ctr_lock <= '1'; - end if; - end if; -end process LINK_DOWN_CTR_PROC; - - - - -FRAME_TRANSMITTER: trb_net16_gbe_frame_trans -port map( - CLK => CLK, - RESET => RESET, - LINK_OK_IN => link_ok, --pcs_an_complete, -- gk 03.08.10 -- gk 30.09.10 - TX_MAC_CLK => serdes_clk_125, - TX_EMPTY_IN => ft_tx_empty, - START_OF_PACKET_IN => ft_start_of_packet, - DATA_ENDFLAG_IN => ft_data(8), -- ft_eod -- gk 04.05.10 - -- MAC interface - HADDR_OUT => mac_haddr, - HDATA_OUT => mac_hdataout, - HCS_OUT => mac_hcs, - HWRITE_OUT => mac_hwrite, - HREAD_OUT => mac_hread, - HREADY_IN => mac_hready, - HDATA_EN_IN => mac_hdata_en, - TX_FIFOAVAIL_OUT => mac_fifoavail, - TX_FIFOEOF_OUT => mac_fifoeof, - TX_FIFOEMPTY_OUT => mac_fifoempty, - TX_DONE_IN => mac_tx_done, - TX_DISCFRM_IN => mac_tx_discfrm, - -- Debug - BSM_INIT_OUT => ft_bsm_init, - BSM_MAC_OUT => ft_bsm_mac, - BSM_TRANS_OUT => ft_bsm_trans, - DBG_RD_DONE_OUT => open, - DBG_INIT_DONE_OUT => open, - DBG_ENABLED_OUT => open, - DEBUG_OUT => open - --DEBUG_OUT(31 downto 0) => open, - --DEBUG_OUT(63 downto 32) => open -); - --- in case of real hardware, we use the IP cores for MAC and PHY, and also put a SerDes in -imp_gen: if (DO_SIMULATION = 0) generate - -------------------------------------------------------------------------------------------- - -------------------------------------------------------------------------------------------- - -- Implementation - -------------------------------------------------------------------------------------------- - -------------------------------------------------------------------------------------------- - - -- MAC part - MAC: tsmac3 - port map( - ----------------- clock and reset port declarations ------------------ - hclk => CLK, - txmac_clk => serdes_clk_125, - rxmac_clk => serdes_clk_125, - reset_n => GSR_N, - txmac_clk_en => mac_tx_clk_en, - rxmac_clk_en => mac_rx_clk_en, - ------------------- Input signals to the GMII ---------------- NOT USED - rxd => x"00", - rx_dv => '0', - rx_er => '0', - col => mac_col, - crs => mac_crs, - -------------------- Input signals to the CPU I/F ------------------- - haddr => mac_haddr, - hdatain => mac_hdataout, - hcs_n => mac_hcs, - hwrite_n => mac_hwrite, - hread_n => mac_hread, - ---------------- Input signals to the Tx MAC FIFO I/F --------------- - tx_fifodata => ft_data(7 downto 0), - tx_fifoavail => mac_fifoavail, - tx_fifoeof => mac_fifoeof, - tx_fifoempty => mac_fifoempty, - tx_sndpaustim => x"0000", - tx_sndpausreq => '0', - tx_fifoctrl => '0', -- always data frame - ---------------- Input signals to the Rx MAC FIFO I/F --------------- - rx_fifo_full => '0', - ignore_pkt => '0', - ---------------- Output signals from the GMII ----------------------- - txd => pcs_txd, - tx_en => pcs_tx_en, - tx_er => pcs_tx_er, - ----------------- Output signals from the CPU I/F ------------------- - hdataout => open, - hdataout_en_n => mac_hdata_en, - hready_n => mac_hready, - cpu_if_gbit_en => open, - ------------- Output signals from the Tx MAC FIFO I/F --------------- - tx_macread => mac_tx_read, - tx_discfrm => mac_tx_discfrm, - tx_staten => mac_tx_staten, -- gk 08.06.10 - tx_statvec => mac_tx_statevec, -- gk 08.06.10 - tx_done => mac_tx_done, - ------------- Output signals from the Rx MAC FIFO I/F --------------- - rx_fifo_error => open, - rx_stat_vector => open, - rx_dbout => open, - rx_write => open, - rx_stat_en => open, - rx_eof => open, - rx_error => open - ); - - -- gk 08.06.10 - dbg_statevec_proc : process(serdes_clk_125) - begin - if rising_edge(serdes_clk_125) then - if (RESET = '1') then - dbg_ft1 <= (others => '0'); - elsif (mac_tx_staten = '1') then - dbg_ft1(30 downto 0) <= mac_tx_statevec; - dbg_ft1(31) <= mac_tx_discfrm; - end if; - end if; - end process dbg_statevec_proc; - - dbg_ft2 <= stage_stat_regs; - - serdes_intclk_gen: if (USE_125MHZ_EXTCLK = 0) generate - -- PHY part - PCS_SERDES : trb_net16_med_ecp_sfp_gbe_8b - generic map( - USE_125MHZ_EXTCLK => 0 - ) - port map( - RESET => RESET, - GSR_N => GSR_N, - CLK_125_OUT => serdes_clk_125, - CLK_125_IN => CLK_125_IN, - FT_TX_CLK_EN_OUT => mac_tx_clk_en, - FT_RX_CLK_EN_OUT => mac_rx_clk_en, - --connection to frame transmitter (tsmac) - FT_COL_OUT => mac_col, - FT_CRS_OUT => mac_crs, - FT_TXD_IN => pcs_txd, - FT_TX_EN_IN => pcs_tx_en, - FT_TX_ER_IN => pcs_tx_er, - --SFP Connection - SD_RXD_P_IN => SFP_RXD_P_IN, - SD_RXD_N_IN => SFP_RXD_N_IN, - SD_TXD_P_OUT => SFP_TXD_P_OUT, - SD_TXD_N_OUT => SFP_TXD_N_OUT, - SD_REFCLK_P_IN => SFP_REFCLK_P_IN, - SD_REFCLK_N_IN => SFP_REFCLK_N_IN, - SD_PRSNT_N_IN => SFP_PRSNT_N_IN, - SD_LOS_IN => SFP_LOS_IN, - SD_TXDIS_OUT => SFP_TXDIS_OUT, - -- Autonegotiation stuff - MR_ADV_ABILITY_IN => x"0020", -- full duplex only - MR_AN_LP_ABILITY_OUT => pcs_an_lp_ability, - MR_AN_PAGE_RX_OUT => pcs_an_page_rx, - MR_AN_COMPLETE_OUT => pcs_an_complete, - MR_RESET_IN => MR_RESET_IN, - MR_MODE_IN => MR_MODE_IN, - MR_AN_ENABLE_IN => '1', -- do autonegotiation - MR_RESTART_AN_IN => MR_RESTART_IN, - -- Status and control port - STAT_OP => open, - CTRL_OP => x"0000", - STAT_DEBUG => pcs_stat_debug, --open, - CTRL_DEBUG => x"0000_0000_0000_0000" - ); - end generate serdes_intclk_gen; - - serdes_extclk_gen: if (USE_125MHZ_EXTCLK = 1) generate - -- PHY part - PCS_SERDES : trb_net16_med_ecp_sfp_gbe_8b - generic map( - USE_125MHZ_EXTCLK => 1 - ) - port map( - RESET => RESET, - GSR_N => GSR_N, - CLK_125_OUT => serdes_clk_125, - CLK_125_IN => '0', -- not used - FT_TX_CLK_EN_OUT => mac_tx_clk_en, - FT_RX_CLK_EN_OUT => mac_rx_clk_en, - --connection to frame transmitter (tsmac) - FT_COL_OUT => mac_col, - FT_CRS_OUT => mac_crs, - FT_TXD_IN => pcs_txd, - FT_TX_EN_IN => pcs_tx_en, - FT_TX_ER_IN => pcs_tx_er, - --SFP Connection - SD_RXD_P_IN => SFP_RXD_P_IN, - SD_RXD_N_IN => SFP_RXD_N_IN, - SD_TXD_P_OUT => SFP_TXD_P_OUT, - SD_TXD_N_OUT => SFP_TXD_N_OUT, - SD_REFCLK_P_IN => SFP_REFCLK_P_IN, - SD_REFCLK_N_IN => SFP_REFCLK_N_IN, - SD_PRSNT_N_IN => SFP_PRSNT_N_IN, - SD_LOS_IN => SFP_LOS_IN, - SD_TXDIS_OUT => SFP_TXDIS_OUT, - -- Autonegotiation stuff - MR_ADV_ABILITY_IN => x"0020", -- full duplex only - MR_AN_LP_ABILITY_OUT => pcs_an_lp_ability, - MR_AN_PAGE_RX_OUT => pcs_an_page_rx, - MR_AN_COMPLETE_OUT => pcs_an_complete, - MR_RESET_IN => MR_RESET_IN, - MR_MODE_IN => MR_MODE_IN, - MR_AN_ENABLE_IN => '1', -- do autonegotiation - MR_RESTART_AN_IN => MR_RESTART_IN, - -- Status and control port - STAT_OP => open, - CTRL_OP => x"0000", - STAT_DEBUG => pcs_stat_debug, --open, - CTRL_DEBUG => x"0000_0000_0000_0000" - ); - end generate serdes_extclk_gen; - - stage_stat_regs(31 downto 28) <= x"e"; - stage_stat_regs(27 downto 24) <= pcs_stat_debug(25 downto 22); -- link s-tatus - stage_stat_regs(23 downto 20) <= pcs_stat_debug(35 downto 32); -- reset bsm - stage_stat_regs(19) <= '0'; - stage_stat_regs(18) <= link_ok; -- gk 30.09.10 - stage_stat_regs(17) <= pcs_an_complete; - stage_stat_regs(16) <= pcs_an_page_rx; - stage_stat_regs(15 downto 0) <= pcs_an_lp_ability; - -end generate imp_gen; - --- in case of simulation we include a fake MAC and no PHY/SerDes. -sim_gen: if (DO_SIMULATION = 1) generate - -------------------------------------------------------------------------------------------- - -------------------------------------------------------------------------------------------- - -- Simulation - -------------------------------------------------------------------------------------------- - -------------------------------------------------------------------------------------------- - MAC: mb_mac_sim - port map( -------------------------------------------------------------------------- - --------------- clock, reset, clock enable ------------------------------- - HCLK => CLK, - TX_MAC_CLK => serdes_clk_125, - RX_MAC_CLK => serdes_clk_125, - RESET_N => GSR_N, - TXMAC_CLK_EN => mac_tx_clk_en, - RXMAC_CLK_EN => mac_rx_clk_en, - -------------------------------------------------------------------------- - --------------- SGMII receive interface ---------------------------------- - RXD => x"00", - RX_DV => '0', - RX_ER => '0', - COL => mac_col, - CRS => mac_crs, - -------------------------------------------------------------------------- - --------------- SGMII transmit interface --------------------------------- - TXD => pcs_txd, - TX_EN => pcs_tx_en, - TX_ER => pcs_tx_er, - -------------------------------------------------------------------------- - --------------- CPU configuration interface ------------------------------ - HADDR => mac_haddr, - HDATAIN => mac_hdataout, - HCS_N => mac_hcs, - HWRITE_N => mac_hwrite, - HREAD_N => mac_hread, - HDATAOUT => open, - HDATAOUT_EN_N => mac_hdata_en, - HREADY_N => mac_hready, - CPU_IF_GBIT_EN => open, - -------------------------------------------------------------------------- - --------------- Transmit FIFO interface ---------------------------------- - TX_FIFODATA => ft_data(7 downto 0), - TX_FIFOAVAIL => mac_fifoavail, - TX_FIFOEOF => mac_fifoeof, - TX_FIFOEMPTY => mac_fifoempty, - TX_MACREAD => mac_tx_read, - TX_DONE => mac_tx_done, - TX_SNDPAUSTIM => x"0000", - TX_SNDPAUSREQ => '0', - TX_FIFOCTRL => '0', - TX_DISCFRM => open, - TX_STATEN => open, - TX_STATVEC => open, - -------------------------------------------------------------------------- - --------------- Receive FIFO interface ----------------------------------- - RX_DBOUT => open, - RX_FIFO_FULL => '0', - IGNORE_PKT => '0', - RX_FIFO_ERROR => open, - RX_STAT_VECTOR => open, - RX_STAT_EN => open, - RX_WRITE => open, - RX_EOF => open, - RX_ERROR => open - ); - - -- add external test clock for the MAC part - serdes_clk_125 <= TEST_CLK; - - -- fake signals - pcs_an_lp_ability <= x"4060"; - pcs_an_page_rx <= '0'; - pcs_an_complete <= '1'; - mac_tx_clk_en <= '1'; - mac_rx_clk_en <= '1'; - - stage_stat_regs(31 downto 0) <= (others => '0'); - - pcs_stat_debug(63 downto 0) <= (others => '0'); - - SFP_TXD_P_OUT <= '1'; - SFP_TXD_N_OUT <= '0'; - SFP_TXDIS_OUT <= '0'; - -end generate sim_gen; - --- gk 28.07.10 -BYTES_SENT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - bytes_sent_ctr <= (others => '0'); - elsif (fc_wr_en = '1') then - bytes_sent_ctr <= bytes_sent_ctr + x"1"; - end if; - end if; -end process BYTES_SENT_CTR_PROC; - --- gk 02.08.10 -DISCFRM_PROC : process(serdes_clk_125) -begin - if rising_edge(serdes_clk_125) then - if (RESET = '1') then - discfrm_ctr <= (others => '0'); - elsif (mac_tx_discfrm = '1') then - discfrm_ctr <= discfrm_ctr + x"1"; - end if; - end if; -end process DISCFRM_PROC; - -discfrm_sync : signal_sync - generic map( - DEPTH => 2, - WIDTH => 32 - ) - port map( - RESET => RESET, - D_IN => discfrm_ctr, - CLK0 => serdes_clk_125, - CLK1 => CLK, - D_OUT => monitor_discfrm - ); - --- gk 29.09.10 --- debug fifo saves each sent frame, but drops it after receiving information that everything went fine --- otherwise, the frame will be kept to readout via slow control -db_fifo_rst <= '1' when ((RESET = '1') or ((mac_tx_done = '1') and (discfrm_ctr = x"00000000"))) else '0'; - --- debug_fifo : fifo_4096x9 --- port map( --- Data(7 downto 0) => pcs_txd, --- Data(8) => '0', --- WrClock => serdes_clk_125, --- RdClock => CLK, --- WrEn => pcs_tx_en, --- RdEn => dbg_rd_en, --- Reset => db_fifo_rst, --- RPReset => db_fifo_rst, --- Q => dbg_q(8 downto 0), --- Empty => open, --- Full => open --- ); - ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- - ---*************** --- LOGIC ANALYZER SIGNALS ---*************** -analyzer_debug <= pcs_stat_debug; - --- Outputs -FEE_READ_OUT <= fee_read; - -CTS_READOUT_FINISHED_OUT <= cts_readout_finished; -CTS_DATAREADY_OUT <= cts_dataready; -CTS_DATA_OUT <= cts_data; -CTS_LENGTH_OUT <= cts_length; -CTS_ERROR_PATTERN_OUT <= cts_error_pattern; - -STAGE_STAT_REGS_OUT <= stage_stat_regs; - -ANALYZER_DEBUG_OUT <= analyzer_debug; - -end architecture; diff --git a/gbe_ecp2m/trb_net16_gbe_frame_constr.vhd b/gbe_ecp2m/trb_net16_gbe_frame_constr.vhd deleted file mode 100755 index 4a7a56f..0000000 --- a/gbe_ecp2m/trb_net16_gbe_frame_constr.vhd +++ /dev/null @@ -1,562 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -entity trb_net16_gbe_frame_constr is -port( - -- ports for user logic - RESET : in std_logic; - CLK : in std_logic; - LINK_OK_IN : in std_logic; -- gk 03.08.10 - -- - WR_EN_IN : in std_logic; - DATA_IN : in std_logic_vector(7 downto 0); - START_OF_DATA_IN : in std_logic; - END_OF_DATA_IN : in std_logic; - IP_F_SIZE_IN : in std_logic_vector(15 downto 0); - UDP_P_SIZE_IN : in std_logic_vector(15 downto 0); -- needed for fragmentation - HEADERS_READY_OUT : out std_logic; - READY_OUT : out std_logic; - DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - FRAME_TYPE_IN : in std_logic_vector(15 downto 0); - IHL_VERSION_IN : in std_logic_vector(7 downto 0); - TOS_IN : in std_logic_vector(7 downto 0); - IDENTIFICATION_IN : in std_logic_vector(15 downto 0); - FLAGS_OFFSET_IN : in std_logic_vector(15 downto 0); - TTL_IN : in std_logic_vector(7 downto 0); - PROTOCOL_IN : in std_logic_vector(7 downto 0); - FRAME_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 09.12.10 - -- ports for packetTransmitter - RD_CLK : in std_logic; -- 125MHz clock!!! - FT_DATA_OUT : out std_logic_vector(8 downto 0); - FT_TX_EMPTY_OUT : out std_logic; - FT_TX_RD_EN_IN : in std_logic; - FT_START_OF_PACKET_OUT : out std_logic; - FT_TX_DONE_IN : in std_logic; - FT_TX_DISCFRM_IN : in std_logic; - -- debug ports - BSM_CONSTR_OUT : out std_logic_vector(7 downto 0); - BSM_TRANS_OUT : out std_logic_vector(3 downto 0); - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_frame_constr; - -architecture trb_net16_gbe_frame_constr of trb_net16_gbe_frame_constr is - --- -- Placer Directives --- attribute HGROUP : string; --- -- for whole architecture --- attribute HGROUP of trb_net16_gbe_frame_constr : architecture is "GBE_frame_group"; - -component fifo_4096x9 is -port( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -attribute sys_encoding : string; - -type constructStates is (IDLE, DEST_MAC_ADDR, SRC_MAC_ADDR, FRAME_TYPE_S, VERSION, - TOS_S, IP_LENGTH, IDENT, FLAGS, TTL_S, PROTO, HEADER_CS, - SRC_IP_ADDR, DEST_IP_ADDR, SRC_PORT, DEST_PORT, UDP_LENGTH, - UDP_CS, SAVE_DATA, CLEANUP, DELAY); -signal constructCurrentState, constructNextState : constructStates; -signal bsm_constr : std_logic_vector(7 downto 0); -attribute sys_encoding of constructCurrentState: signal is "safe,gray"; - -type transmitStates is (T_IDLE, T_LOAD, T_TRANSMIT, T_PAUSE, T_CLEANUP); -signal transmitCurrentState, transmitNextState : transmitStates; -signal bsm_trans : std_logic_vector(3 downto 0); - -signal headers_int_counter : integer range 0 to 6; -signal fpf_data : std_logic_vector(7 downto 0); -signal fpf_empty : std_logic; -signal fpf_full : std_logic; -signal fpf_wr_en : std_logic; -signal fpf_rd_en : std_logic; -signal fpf_q : std_logic_vector(8 downto 0); -signal ip_size : std_logic_vector(15 downto 0); -signal ip_checksum : std_logic_vector(31 downto 0); -signal udp_size : std_logic_vector(15 downto 0); -signal udp_checksum : std_logic_vector(15 downto 0); -signal ft_sop : std_logic; -signal put_udp_headers : std_logic; -signal ready_frames_ctr : std_logic_vector(15 downto 0); -signal sent_frames_ctr : std_logic_vector(15 downto 0); -signal debug : std_logic_vector(63 downto 0); -signal ready : std_logic; -signal headers_ready : std_logic; - -signal cur_max : integer range 0 to 10; - -signal ready_frames_ctr_q : std_logic_vector(15 downto 0); -signal ip_cs_temp_right : std_logic_vector(15 downto 0); -- gk 29.03.10 - -signal fpf_reset : std_logic; -- gk 01.01.01 - --- gk 09.12.10 -signal delay_ctr : std_logic_vector(31 downto 0); -signal frame_delay_reg : std_logic_vector(31 downto 0); - -begin - --- Fakes -udp_checksum <= x"0000"; -- no checksum test needed ---debug <= (others => '0'); - -ready <= '1' when (constructCurrentState = IDLE) - else '0'; -headers_ready <= '1' when (constructCurrentState = SAVE_DATA) - else '0'; - -sizeProc: process( put_udp_headers, IP_F_SIZE_IN, UDP_P_SIZE_IN ) -begin - if( put_udp_headers = '1' ) then - ip_size <= IP_F_SIZE_IN + x"14" + x"8"; - udp_size <= UDP_P_SIZE_IN + x"8"; - else - ip_size <= IP_F_SIZE_IN + x"14"; - udp_size <= UDP_P_SIZE_IN; - end if; -end process sizeProc; - -ipCsProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (constructCurrentState = IDLE) then - ip_checksum <= x"00000000"; - else - case constructCurrentState is - when DEST_MAC_ADDR => - case headers_int_counter is - when 0 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + SRC_IP_ADDRESS_IN(7 downto 0); - when 1 => - ip_checksum <= ip_checksum + SRC_IP_ADDRESS_IN(15 downto 8); - when 2 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + SRC_IP_ADDRESS_IN(23 downto 16); - when 3 => - ip_checksum <= ip_checksum + SRC_IP_ADDRESS_IN(31 downto 24); - when 4 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + DEST_IP_ADDRESS_IN(7 downto 0); - when 5 => - ip_checksum <= ip_checksum + DEST_IP_ADDRESS_IN(15 downto 8); - when others => null; - end case; - when SRC_MAC_ADDR => - case headers_int_counter is - when 0 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + DEST_IP_ADDRESS_IN(23 downto 16); - when 1 => - ip_checksum <= ip_checksum + DEST_IP_ADDRESS_IN(31 downto 24); - when 2 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + IHL_VERSION_IN; - when 3 => - ip_checksum <= ip_checksum + TOS_IN; - when 4 => - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + ip_size(15 downto 8); - when 5 => - ip_checksum <= ip_checksum + ip_size(7 downto 0); - when others => null; - end case; - when VERSION => - if headers_int_counter = 0 then - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + IDENTIFICATION_IN(7 downto 0); - end if; - when TOS_S => - if headers_int_counter = 0 then - ip_checksum <= ip_checksum + IDENTIFICATION_IN(15 downto 8); - end if; - when IP_LENGTH => - if headers_int_counter = 0 then - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + FLAGS_OFFSET_IN(15 downto 8); - elsif headers_int_counter = 1 then - ip_checksum <= ip_checksum + FLAGS_OFFSET_IN(7 downto 0); - end if; - when IDENT => - if headers_int_counter = 0 then - ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + TTL_IN; - elsif headers_int_counter = 1 then - ip_checksum <= ip_checksum + PROTOCOL_IN; - end if; - -- gk 29.03.10 corrected the bug with bad checksums when sum larger than 16b - when FLAGS => - if headers_int_counter = 0 then - ip_cs_temp_right <= ip_checksum(31 downto 16); - elsif headers_int_counter = 1 then - ip_checksum(31 downto 16) <= (others => '0'); - end if; - when TTL_S => - if headers_int_counter = 0 then - ip_checksum <= ip_checksum + ip_cs_temp_right; - end if; - when PROTO => - if headers_int_counter = 0 then - ip_checksum(15 downto 0) <= ip_checksum(15 downto 0) + ip_checksum(31 downto 16); - end if; - when others => null; - end case; - end if; - end if; -end process ipCsProc; - - -constructMachineProc: process( CLK ) -begin - if( rising_edge(CLK) ) then - if( RESET = '1' ) then - constructCurrentState <= IDLE; - else - constructCurrentState <= constructNextState; - end if; - end if; -end process constructMachineProc; - ---find next state of construct machine -constructMachine: process( constructCurrentState, START_OF_DATA_IN, END_OF_DATA_IN, headers_int_counter, put_udp_headers, CUR_MAX, delay_ctr, FRAME_DELAY_IN ) -begin - constructNextState <= constructCurrentState; - if( headers_int_counter = cur_max ) then --can be checked everytime - if not in use, counter and cur_max are 0 - case constructCurrentState is - when IDLE => - if( START_OF_DATA_IN = '1' ) then - constructNextState <= DEST_MAC_ADDR; - end if; - when DEST_MAC_ADDR => - constructNextState <= SRC_MAC_ADDR; - when SRC_MAC_ADDR => - constructNextState <= FRAME_TYPE_S; - when FRAME_TYPE_S => - constructNextState <= VERSION; - when VERSION => - constructNextState <= TOS_S; - when TOS_S => - constructNextState <= IP_LENGTH; - when IP_LENGTH => - constructNextState <= IDENT; - when IDENT => - constructNextState <= FLAGS; - when FLAGS => - constructNextState <= TTL_S; - when TTL_S => - constructNextState <= PROTO; - when PROTO => - constructNextState <= HEADER_CS; - when HEADER_CS => - constructNextState <= SRC_IP_ADDR; - when SRC_IP_ADDR => - constructNextState <= DEST_IP_ADDR; - when DEST_IP_ADDR => - if (put_udp_headers = '1') then - constructNextState <= SRC_PORT; - else - constructNextState <= SAVE_DATA; - end if; - when SRC_PORT => - constructNextState <= DEST_PORT; - when DEST_PORT => - constructNextState <= UDP_LENGTH; - when UDP_LENGTH => - constructNextState <= UDP_CS; - when UDP_CS => - constructNextState <= SAVE_DATA; - when SAVE_DATA => - if (END_OF_DATA_IN = '1') then - constructNextState <= CLEANUP; - end if; - when CLEANUP => - constructNextState <= DELAY; -- gk 10.12.10 IDLE; - - -- gk 09.12.10 - when DELAY => - if (delay_ctr = FRAME_DELAY_IN) then - constructNextState <= IDLE; - else - constructNextState <= DELAY; - end if; - - when others => - constructNextState <= IDLE; - end case; - end if; -end process constructMachine; - --- gk 09.12.10 -delayCtrProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (constructCurrentState = IDLE) or (constructCurrentState = CLEANUP) then - delay_ctr <= (others => '0'); - elsif (constructCurrentState = DELAY) then - delay_ctr <= delay_ctr + x"1"; - end if; - - frame_delay_reg <= FRAME_DELAY_IN; - end if; -end process delayCtrProc; - - -bsmConstrProc : process(constructCurrentState) -begin ---find maximum time in each state & set state bits - case constructCurrentState is - when IDLE => cur_max <= 0; bsm_constr <= x"01"; - when DEST_MAC_ADDR => cur_max <= 5; bsm_constr <= x"02"; - when SRC_MAC_ADDR => cur_max <= 5; bsm_constr <= x"03"; - when FRAME_TYPE_S => cur_max <= 1; bsm_constr <= x"04"; - when VERSION => cur_max <= 0; bsm_constr <= x"05"; - when TOS_S => cur_max <= 0; bsm_constr <= x"06"; - when IP_LENGTH => cur_max <= 1; bsm_constr <= x"07"; - when IDENT => cur_max <= 1; bsm_constr <= x"08"; - when FLAGS => cur_max <= 1; bsm_constr <= x"09"; - when TTL_S => cur_max <= 0; bsm_constr <= x"0a"; - when PROTO => cur_max <= 0; bsm_constr <= x"0b"; - when HEADER_CS => cur_max <= 1; bsm_constr <= x"0c"; - when SRC_IP_ADDR => cur_max <= 3; bsm_constr <= x"0d"; - when DEST_IP_ADDR => cur_max <= 3; bsm_constr <= x"0e"; - when SRC_PORT => cur_max <= 1; bsm_constr <= x"0f"; - when DEST_PORT => cur_max <= 1; bsm_constr <= x"10"; - when UDP_LENGTH => cur_max <= 1; bsm_constr <= x"11"; - when UDP_CS => cur_max <= 1; bsm_constr <= x"12"; - when SAVE_DATA => cur_max <= 0; bsm_constr <= x"13"; - when CLEANUP => cur_max <= 0; bsm_constr <= x"14"; - when DELAY => cur_max <= 0; bsm_constr <= x"15"; - when others => cur_max <= 0; bsm_constr <= x"1f"; - end case; -end process; - - -headersIntProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (constructCurrentState = IDLE) then - headers_int_counter <= 0; - else - if (headers_int_counter = cur_max) then - headers_int_counter <= 0; - else - headers_int_counter <= headers_int_counter + 1; - end if; - end if; - end if; -end process headersIntProc; - - - -putUdpHeadersProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (FLAGS_OFFSET_IN(12 downto 0) = "0000000000000") then - put_udp_headers <= '1'; - else - put_udp_headers <= '0'; - end if; - end if; -end process putUdpHeadersProc; - - -fpfWrEnProc : process(constructCurrentState, WR_EN_IN, RESET, LINK_OK_IN) -begin - if (RESET = '1') or (LINK_OK_IN = '0') then -- gk 01.10.10 - fpf_wr_en <= '0'; - elsif (constructCurrentState /= IDLE) and (constructCurrentState /= CLEANUP) and (constructCurrentState /= SAVE_DATA) and (constructCurrentState /= DELAY) then - fpf_wr_en <= '1'; - elsif (constructCurrentState = SAVE_DATA) and (WR_EN_IN = '1') then - fpf_wr_en <= '1'; - else - fpf_wr_en <= '0'; - end if; -end process fpfWrEnProc; - -fpfDataProc : process(constructCurrentState, DEST_MAC_ADDRESS_IN, SRC_MAC_ADDRESS_IN, FRAME_TYPE_IN, IHL_VERSION_IN, - TOS_IN, ip_size, IDENTIFICATION_IN, FLAGS_OFFSET_IN, TTL_IN, PROTOCOL_IN, - ip_checksum, SRC_IP_ADDRESS_IN, DEST_IP_ADDRESS_IN, - SRC_UDP_PORT_IN, DEST_UDP_PORT_IN, udp_size, udp_checksum, headers_int_counter, DATA_IN) -begin - case constructCurrentState is - when IDLE => fpf_data <= DEST_MAC_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when DEST_MAC_ADDR => fpf_data <= DEST_MAC_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when SRC_MAC_ADDR => fpf_data <= SRC_MAC_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when FRAME_TYPE_S => fpf_data <= FRAME_TYPE_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when VERSION => fpf_data <= IHL_VERSION_IN; - when TOS_S => fpf_data <= TOS_IN; - when IP_LENGTH => fpf_data <= ip_size(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when IDENT => fpf_data <= IDENTIFICATION_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when FLAGS => fpf_data <= FLAGS_OFFSET_IN(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when TTL_S => fpf_data <= TTL_IN; - when PROTO => fpf_data <= PROTOCOL_IN; - when HEADER_CS => fpf_data <= x"ff" - ip_checksum(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when SRC_IP_ADDR => fpf_data <= SRC_IP_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when DEST_IP_ADDR => fpf_data <= DEST_IP_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when SRC_PORT => fpf_data <= SRC_UDP_PORT_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when DEST_PORT => fpf_data <= DEST_UDP_PORT_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8); - when UDP_LENGTH => fpf_data <= udp_size(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when UDP_CS => fpf_data <= udp_checksum(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8); - when SAVE_DATA => fpf_data <= DATA_IN; - when CLEANUP => fpf_data <= x"ab"; - when DELAY => fpf_data <= x"ac"; - when others => fpf_data <= x"00"; - end case; -end process fpfDataProc; - - -readyFramesCtrProc: process( CLK ) -begin - if rising_edge(CLK) then - if (RESET = '1') or (LINK_OK_IN = '0') then -- gk 01.10.10 - ready_frames_ctr <= (others => '0'); - elsif (constructCurrentState = CLEANUP) then - ready_frames_ctr <= ready_frames_ctr + 1; - end if; - end if; -end process readyFramesCtrProc; - -fpf_reset <= '1' when (RESET = '1') or (LINK_OK_IN = '0') else '0'; -- gk 01.10.10 - -FINAL_PACKET_FIFO: fifo_4096x9 -port map( - Data(7 downto 0) => fpf_data, - Data(8) => END_OF_DATA_IN, - WrClock => CLK, - RdClock => RD_CLK, - WrEn => fpf_wr_en, - RdEn => FT_TX_RD_EN_IN, - Reset => fpf_reset, - RPReset => fpf_reset, - Q => fpf_q, - Empty => fpf_empty, - Full => fpf_full -); - -transferToRdClock : signal_sync - generic map( - DEPTH => 2, - WIDTH => 16 - ) - port map( - RESET => RESET, - D_IN => ready_frames_ctr, - CLK0 => RD_CLK, --CLK, - CLK1 => RD_CLK, - D_OUT => ready_frames_ctr_q - ); - -transmitMachineProc: process( RD_CLK ) -begin - if( rising_edge(RD_CLK) ) then - if( RESET = '1' ) or (LINK_OK_IN = '0') then -- gk 01.10.10 - transmitCurrentState <= T_IDLE; - else - transmitCurrentState <= transmitNextState; - end if; - end if; -end process transmitMachineProc; - -transmitMachine: process( transmitCurrentState, fpf_q, FT_TX_DONE_IN, sent_frames_ctr, ready_frames_ctr_q, FT_TX_DISCFRM_IN ) -begin - case transmitCurrentState is - when T_IDLE => - bsm_trans <= x"0"; - if( (sent_frames_ctr /= ready_frames_ctr_q) ) then - transmitNextState <= T_LOAD; - else - transmitNextState <= T_IDLE; - end if; - when T_LOAD => - bsm_trans <= x"1"; - if( fpf_q(8) = '1' ) then - transmitNextState <= T_TRANSMIT; - else - transmitNextState <= T_LOAD; - end if; - when T_TRANSMIT => - bsm_trans <= x"2"; - -- gk 03.08.10 - if ((LINK_OK_IN = '1') and ((FT_TX_DONE_IN = '1') or (FT_TX_DISCFRM_IN = '1')))then - transmitNextState <= T_CLEANUP; - elsif (LINK_OK_IN = '0') then - transmitNextState <= T_PAUSE; - else - transmitNextState <= T_TRANSMIT; - end if; - when T_PAUSE => - transmitNextState <= T_CLEANUP; - when T_CLEANUP => - bsm_trans <= x"3"; - transmitNextState <= T_IDLE; - when others => - bsm_trans <= x"f"; - transmitNextState <= T_IDLE; - end case; -end process transmitMachine; - - - -sopProc: process( RD_CLK ) -begin - if rising_edge(RD_CLK) then - if ( RESET = '1' ) or (LINK_OK_IN = '0') then -- gk 01.10.10 - ft_sop <= '0'; - elsif ((transmitCurrentState = T_IDLE) and (sent_frames_ctr /= ready_frames_ctr_q)) then - ft_sop <= '1'; - else - ft_sop <= '0'; - end if; - end if; -end process sopProc; - -sentFramesCtrProc: process( RD_CLK ) -begin - if rising_edge(RD_CLK) then - if ( RESET = '1' ) or (LINK_OK_IN = '0') then -- gk 01.10.10 - sent_frames_ctr <= (others => '0'); - -- gk 03.08.10 - elsif( FT_TX_DONE_IN = '1' ) or (FT_TX_DISCFRM_IN = '1') then - sent_frames_ctr <= sent_frames_ctr + 1; - end if; - end if; -end process sentFramesCtrProc; - -debug(7 downto 0) <= bsm_constr; -debug(11 downto 8) <= bsm_trans; -debug(27 downto 12) <= sent_frames_ctr; -debug(28) <= fpf_full; -debug(29) <= fpf_empty; -debug(30) <= ready; -debug(31) <= headers_ready; -debug(47 downto 32) <= ready_frames_ctr_q; -debug(48) <= '0'; - - --- Output -FT_DATA_OUT <= fpf_q; -FT_TX_EMPTY_OUT <= fpf_empty; -FT_START_OF_PACKET_OUT <= ft_sop; -READY_OUT <= ready; -HEADERS_READY_OUT <= headers_ready; - -BSM_CONSTR_OUT <= bsm_constr; -BSM_TRANS_OUT <= bsm_trans; -DEBUG_OUT <= debug; - -end trb_net16_gbe_frame_constr; \ No newline at end of file diff --git a/gbe_ecp2m/trb_net16_gbe_frame_trans.vhd b/gbe_ecp2m/trb_net16_gbe_frame_trans.vhd deleted file mode 100755 index ca58728..0000000 --- a/gbe_ecp2m/trb_net16_gbe_frame_trans.vhd +++ /dev/null @@ -1,588 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -entity trb_net16_gbe_frame_trans is -port ( - CLK : in std_logic; - RESET : in std_logic; - LINK_OK_IN : in std_logic; -- gk 03.08.10 - TX_MAC_CLK : in std_logic; - TX_EMPTY_IN : in std_logic; - START_OF_PACKET_IN : in std_logic; - DATA_ENDFLAG_IN : in std_logic; -- (8) is end flag, rest is only for TSMAC - -- NEW PORTS - HADDR_OUT : out std_logic_vector(7 downto 0); - HDATA_OUT : out std_logic_vector(7 downto 0); - HCS_OUT : out std_logic; - HWRITE_OUT : out std_logic; - HREAD_OUT : out std_logic; - HREADY_IN : in std_logic; - HDATA_EN_IN : in std_logic; - TX_FIFOAVAIL_OUT : out std_logic; - TX_FIFOEOF_OUT : out std_logic; - TX_FIFOEMPTY_OUT : out std_logic; - TX_DONE_IN : in std_logic; - TX_DISCFRM_IN : in std_logic; - -- Debug - BSM_INIT_OUT : out std_logic_vector(3 downto 0); - BSM_MAC_OUT : out std_logic_vector(3 downto 0); - BSM_TRANS_OUT : out std_logic_vector(3 downto 0); - DBG_RD_DONE_OUT : out std_logic; - DBG_INIT_DONE_OUT : out std_logic; - DBG_ENABLED_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_frame_trans; - --- FifoRd ?!? - -architecture trb_net16_gbe_frame_trans of trb_net16_gbe_frame_trans is - --- -- Placer Directives --- attribute HGROUP : string; --- -- for whole architecture --- attribute HGROUP of trb_net16_gbe_frame_trans : architecture is "GBE_frame_group"; - -component mac_init_mem is -port ( - Address : in std_logic_vector(5 downto 0); - OutClock : in std_logic; - OutClockEn : in std_logic; - Reset : in std_logic; - Q : out std_logic_vector(7 downto 0) -); -end component; - -attribute syn_encoding : string; - -type macInitStates is (I_IDLE, I_INCRADDRESS, I_PAUSE, I_WRITE, I_PAUSE2, I_READ, I_PAUSE3, I_ENDED); -signal macInitState, macInitNextState : macInitStates; -attribute syn_encoding of macInitState: signal is "safe,gray"; -signal bsm_init : std_logic_vector(3 downto 0); - -type macStates is (M_RESETING, M_IDLE, M_INIT); -signal macCurrentState, macNextState : macStates; -signal bsm_mac : std_logic_vector(3 downto 0); - -type transmitStates is (T_IDLE, T_TRANSMIT, T_WAITFORFIFO); -signal transmitCurrentState, transmitNextState : transmitStates; -attribute syn_encoding of transmitCurrentState: signal is "safe,gray"; -signal bsm_trans : std_logic_vector(3 downto 0); - -signal tx_fifoavail_i : std_logic; -signal tx_fifoeof_i : std_logic; - --- host interface signals -signal hcs_n_i : std_logic; -signal hwrite_n_i : std_logic; -signal hread_n_i : std_logic; - --- MAC INITIALIZATION signals -signal macInitMemAddr : std_logic_vector(5 downto 0); -signal macInitMemQ : std_logic_vector(7 downto 0); -signal macInitMemEn : std_logic; -signal reading_done : std_logic; -signal init_done : std_logic; -signal enabled : std_logic; -signal addrSig : std_logic_vector(5 downto 0); -signal addr2 : std_logic_vector(5 downto 0); -signal resetAddr : std_logic; - -signal FifoEmpty : std_logic; -signal debug : std_logic_vector(63 downto 0); - -begin - --- Fakes -debug <= (others => '0'); - - -TransmitStateMachineProc : process (TX_MAC_CLK) -begin - if rising_edge(TX_MAC_CLK) then - if (RESET = '1') or (LINK_OK_IN = '0') then -- gk 01.10.10 - transmitCurrentState <= T_IDLE; - else - transmitCurrentState <= transmitNextState; - end if; - end if; -end process TransmitStatemachineProc; - -TransmitStateMachine : process (transmitCurrentState, macCurrentState, START_OF_PACKET_IN, DATA_ENDFLAG_IN, TX_DONE_IN) -begin - case transmitCurrentState is - when T_IDLE => - bsm_trans <= x"0"; - if ((START_OF_PACKET_IN = '1') and (macCurrentState = M_IDLE)) then - transmitNextState <= T_TRANSMIT; - else - transmitNextState <= T_IDLE; - end if; - when T_TRANSMIT => - bsm_trans <= x"1"; - if (DATA_ENDFLAG_IN = '1') then - transmitNextState <= T_WAITFORFIFO; - else - transmitNextState <= T_TRANSMIT; - end if; - when T_WAITFORFIFO => - bsm_trans <= x"2"; - if (TX_DONE_IN = '1') then --or (TX_DISCFRM_IN = '1') then - transmitNextState <= T_IDLE; - else - transmitNextState <= T_WAITFORFIFO; - end if; - when others => - bsm_trans <= x"f"; - transmitNextState <= T_IDLE; - end case; -end process TransmitStateMachine; - -FifoAvailProc : process (TX_MAC_CLK) -begin - if rising_edge(TX_MAC_CLK) then - if (RESET = '1') or (LINK_OK_IN = '0') then -- gk 01.10.10 - tx_fifoavail_i <= '0'; - elsif (transmitCurrentState = T_TRANSMIT) then - tx_fifoavail_i <= '1'; - else - tx_fifoavail_i <= '0'; - end if; - end if; -end process FifoAvailProc; - -FifoEmptyProc : process(transmitCurrentState, START_OF_PACKET_IN, TX_EMPTY_IN, RESET) -begin - if (RESET = '1') or (LINK_OK_IN = '0') then -- gk 01.10.10 - FifoEmpty <= '1'; - elsif (transmitCurrentState = T_WAITFORFIFO) then - FifoEmpty <= '1'; - elsif (transmitCurrentState = T_TRANSMIT) then - FifoEmpty <= TX_EMPTY_IN; - elsif (((transmitCurrentState = T_IDLE) or (transmitCurrentState = T_WAITFORFIFO)) and (START_OF_PACKET_IN = '1')) then - FifoEmpty <= '0'; - else - FifoEmpty <= '1'; - end if; -end process FifoEmptyProc; - -tx_fifoeof_i <= '1' when ((DATA_ENDFLAG_IN = '1') and (transmitCurrentState = T_TRANSMIT)) - else '0'; - --- main MAC state machine -MacStateMachineProc : process (CLK) -begin - if rising_edge(CLK) then - if RESET = '1' then - macCurrentState <= M_RESETING; - else - macCurrentState <= macNextState; - end if; - end if; -end process MacStateMachineProc; - -MacStatesMachine: process(macCurrentState, reading_done) -begin - case macCurrentState is - when M_RESETING => - bsm_mac <= x"0"; - macNextState <= M_INIT; - when M_IDLE => - bsm_mac <= x"1"; - macNextState <= M_IDLE; - when M_INIT => - bsm_mac <= x"2"; - if (reading_done = '1') then - macNextState <= M_IDLE; - else - macNextState <= M_INIT; - end if; - when others => - bsm_mac <= x"f"; - macNextState <= M_RESETING; - end case; -end process MacStatesMachine; - - ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- --- MAC initialization statemachine, memory and address counters ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- - --- state machine used to initialize MAC registers with data saved in macInitDataInv2.mem via macInitMem -MacInitStateMachineProc : process (CLK) -begin - if rising_edge(CLK) then - if RESET = '1' then - macInitState <= I_IDLE; - else - macInitState <= macInitNextState; - end if; - end if; -end process MacInitStateMachineProc; - -MacInitStateMachine : process (macInitState, macCurrentState, init_done, HREADY_IN, reading_done, HDATA_EN_IN, enabled) -begin - case macInitState is - when I_IDLE => - bsm_init <= x"0"; - if (macCurrentState = M_INIT) then - macInitNextState <= I_WRITE; - else - macInitNextState <= I_IDLE; - end if; - when I_INCRADDRESS => - bsm_init <= x"1"; - if ((init_done = '0') and (enabled = '0') and (reading_done = '0')) then -- write to regs 2 and up - macInitNextState <= I_PAUSE; - elsif ((init_done = '1') and (enabled = '0') and (reading_done = '0')) then -- write to regs 0 and 1 - macInitNextState <= I_PAUSE3; - elsif ((init_done = '1') and (enabled = '1') and (reading_done = '0')) then -- read all regs to fifo - macInitNextState <= I_PAUSE2; - else - macInitNextState <= I_ENDED; - end if; - when I_PAUSE => - bsm_init <= x"2"; - if (HREADY_IN = '1') then - macInitNextState <= I_WRITE; - else - macInitNextState <= I_PAUSE; - end if; - when I_WRITE => - bsm_init <= x"3"; - if (HREADY_IN = '0') then - macInitNextState <= I_INCRADDRESS; - else - macInitNextState <= I_WRITE; - end if; - when I_PAUSE2 => - bsm_init <= x"4"; - if (HREADY_IN = '1') then - macInitNextState <= I_READ; - else - macInitNextState <= I_PAUSE2; - end if; - when I_READ => - bsm_init <= x"5"; - if (HDATA_EN_IN = '0') then - macInitNextState <= I_INCRADDRESS; - else - macInitNextState <= I_READ; - end if; - when I_PAUSE3 => - bsm_init <= x"6"; - if (HREADY_IN = '1') then - macInitNextState <= I_WRITE; - else - macInitNextState <= I_PAUSE3; - end if; - when I_ENDED => - bsm_init <= x"7"; - macInitNextState <= I_ENDED; - when others => - bsm_init <= x"f"; - macInitNextState <= I_IDLE; - end case; -end process MacInitStateMachine; - -addrSig <= addr2 when ((reading_done = '0') and (init_done = '1') and (enabled = '1')) - else macInitMemAddr; - --- initialization ROM -MacInitMemory : mac_init_mem -port map ( - Address => macInitMemAddr, - OutClock => CLK, - OutClockEn => macInitMemEn, - Reset => RESET, - Q => macInitMemQ -); - --- MAC ready signal (?) -enabledProc : process (CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - enabled <= '0'; - elsif ((reading_done = '0') and (init_done = '1') and (macInitMemAddr = "000010")) then -- write only to the first register (mode) - enabled <= '1'; - elsif (macInitState = I_IDLE) then - enabled <= '0'; - end if; - end if; -end process enabledProc; - -add2 : process (CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - addr2 <= "111111"; - elsif ((macInitState = I_INCRADDRESS) and (init_done = '1') and (enabled = '1')) then - addr2 <= addr2 + "1"; - elsif (macInitState = I_IDLE) then - addr2 <= "111111"; - end if; - end if; -end process add2; - -readingDoneProc : process (CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - reading_done <= '0'; - elsif (macInitState = I_IDLE) then - reading_done <= '0'; - elsif (addr2 = "110101") then -- read all registers - reading_done <= '1'; - end if; - end if; -end process readingDoneProc; - -initDoneProc : process (CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - init_done <= '0'; - elsif (macInitState = I_IDLE) then - init_done <= '0'; - elsif (macInitMemAddr = "110101") then -- write to all registers - init_done <= '1'; - end if; - end if; -end process initDoneProc; - --- HWRITE signal (registered) -hwriteProc : process (CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - hwrite_n_i <= '1'; - elsif ((macInitState = I_WRITE) and (HREADY_IN = '1')) then - hwrite_n_i <= '0'; - else - hwrite_n_i <= '1'; - end if; - end if; -end process hwriteProc; - --- HREAD signal (registered) -hreadProc : process (CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - hread_n_i <= '1'; - elsif ((macInitState = I_READ) and (HREADY_IN = '1')) then - hread_n_i <= '0'; - else - hread_n_i <= '1'; - end if; - end if; -end process hreadProc; - --- HCS signal (registered) -hcsProc : process (CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - hcs_n_i <= '1'; - elsif ((macInitState = I_WRITE) and (HREADY_IN = '1')) then - hcs_n_i <= '0'; - elsif ((macInitState = I_READ) and (HREADY_IN = '1')) then - hcs_n_i <= '0'; - else - hcs_n_i <= '1'; - end if; - end if; -end process hcsProc; - --- address lines for the initialization memory -macInitMemAddrProc : process (CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - macInitMemAddr <= "000010"; - elsif (resetAddr = '1') then - macInitMemAddr <= "000000"; - else - if (macInitState = I_INCRADDRESS) then - macInitMemAddr <= macInitMemAddr + "1"; - elsif (macInitState = I_IDLE) then - macInitMemAddr <= "000010"; - end if; - end if; - end if; -end process macInitMemAddrProc; - --- address counter reset signal (registered) -resetAddrProc : process (CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - resetAddr <= '0'; - elsif (macInitState = I_IDLE) then - resetAddr <= '0'; - elsif (macInitMemAddr = "110101") then - resetAddr <= '1'; - elsif (macInitState = I_PAUSE3) then - resetAddr <= '0'; - end if; - end if; -end process resetAddrProc; - -macInitMemEn <= '1' when (macCurrentState = M_INIT) - else '0'; - - - --- Outputs -HADDR_OUT <= b"00" & addrSig; -HDATA_OUT <= macInitMemQ; -HCS_OUT <= hcs_n_i; -HWRITE_OUT <= hwrite_n_i; -HREAD_OUT <= hread_n_i; -TX_FIFOAVAIL_OUT <= tx_fifoavail_i; -TX_FIFOEOF_OUT <= tx_fifoeof_i; -TX_FIFOEMPTY_OUT <= FifoEmpty; - -BSM_INIT_OUT <= bsm_init; -BSM_MAC_OUT <= bsm_mac; -BSM_TRANS_OUT <= bsm_trans; -DBG_RD_DONE_OUT <= reading_done; -DBG_INIT_DONE_OUT <= init_done; -DBG_ENABLED_OUT <= enabled; -DEBUG_OUT <= debug; - -end trb_net16_gbe_frame_trans; - - ---MAC : tsmac3 ---port map( --- -------------------------------------------------------------------------- --- --------------- clock, reset, clock enable ------------------------------- --- hclk => CLK, -- (in) host clock (100MHz) --- txmac_clk => TX_MAC_CLK, -- (in) GbE clock (125MHz) --- rxmac_clk => '0', -- (in) not used (no receiving on GbE) --- reset_n => GSR_N, -- (in) global set/reset --- txmac_clk_en => TSM_TX_CLK_EN_IN, -- (in) from SGMII core, '1' for 1GbE operation --- rxmac_clk_en => TSM_RX_CLK_EN_IN, -- (in) from SGMII core, '1' for 1GbE operation --- -------------------------------------------------------------------------- --- --------------- SGMII receive interface ---------------------------------- --- rxd => x"00", -- (in) receive data from SGMII core --- rx_dv => '0', -- (in) data valid from SGMII core --- rx_er => '0', -- (in) receive data error --- col => TSM_COL_IN, -- (in) collision from SGMII core --- crs => TSM_CRS_IN, -- (in) carrier sense from SGMII core --- -------------------------------------------------------------------------- --- --------------- SGMII transmit interface --------------------------------- --- txd => CH_TXD_OUT, -- (out) transmit data to SGMII core --- tx_en => CH_TX_EN_OUT, -- (out) transmit enable --- tx_er => CH_TX_ER_OUT, -- (out) transmit error --- -------------------------------------------------------------------------- --- --------------- CPU configuration interface ------------------------------ --- haddr => haddr, -- (in) host address bus for configuration --- hdatain => hdataout, -- (in) host data bus for write accesses --- hcs_n => hcs, -- (in) host chip select signal --- hwrite_n => hwrite, -- (in) host write strobe signal --- hread_n => hread, -- (in) host read strobe signal --- hdataout => hdatain, -- (out) host data bus for read accesses --- hdataout_en_n => hdataout_en, -- (out) read data valid signal --- hready_n => hready, -- (out) data acknowledge signal --- cpu_if_gbit_en => open, -- (out) status bit --- -------------------------------------------------------------------------- --- --------------- Transmit FIFO interface ---------------------------------- --- tx_fifodata => ft_data(7 downto 0), -- (in) transmit FIFO data bus --- tx_fifoavail => mac_fifoavail, -- (in) transmit FIFO data available --- tx_fifoeof => mac_fifoeof, -- (in) transmit FIFO end of frame --- tx_fifoempty => mac_fifoempty, -- (in) transmit FIFO empty --- tx_macread => mac_tx_rd_en, -- (out) transmit FIFO read --- tx_done => mac_tx_done, -- (out) transmit done (without errors) --- tx_sndpaustim => x"0000", -- (in) PAUSE frame timer --- tx_sndpausreq => '0', -- (in) PAUSE frame request --- tx_fifoctrl => '0', -- (in) FIFO control frame ('0' = data, '1' = control) --- tx_discfrm => open, -- (out) discard frame --- tx_staten => open, -- (out) transmit statistics vector enable --- tx_statvec => open, -- (out) transmit statistics vector --- -------------------------------------------------------------------------- --- --------------- Receive FIFO interface ----------------------------------- --- rx_dbout => open, -- (out) receive FIFO data output --- rx_fifo_full => '0', -- (in) receive FIFO full --- ignore_pkt => '0', -- (in) ignore next packet --- rx_fifo_error => open, -- (out) receive FIFO error --- rx_stat_vector => open, -- (out) receive statistics vector --- rx_stat_en => open, -- (out) receive statistics vector enable --- rx_write => open, -- (out) receive FIFO write --- rx_eof => open, -- (out) end of frame --- rx_error => open -- (out) receive packet error ---); - - - - - - ---MAC : tsmac3 ---port map( ------------------ clock and reset port declarations ------------------ --- hclk => LVDS_CLK_200P, --- txmac_clk => TX_MAC_CLK, --- rxmac_clk => '0', --- reset_n => GSR_N, -- done --- txmac_clk_en => TSM_TX_CLK_EN_IN, -- done --- rxmac_clk_en => TSM_RX_CLK_EN_IN, -- done ---------------------- Input signals to the GMII ---------------- NOT USED --- rxd => x"00", --- rx_dv => '0', --- rx_er => '0', --- col => TSM_COL_IN, -- done --- crs => TSM_CRS_IN, -- done --- -------------------- Input signals to the CPU I/F ------------------- --- haddr(5 downto 0) => addrSig, -- done --- haddr(7 downto 6) => "00", --- hdatain => macInitMemQ, -- done --- hcs_n => hcs_n_i, -- done --- hwrite_n => hwrite_n_i, -- done --- hread_n => hread_n_i, -- done ------------------- Input signals to the Tx MAC FIFO I/F --------------- --- tx_fifodata => DATA_IN(7 downto 0), -- done --- tx_fifoavail => tx_fifoavail_i, -- done --- tx_fifoeof => tx_fifoeof_i, -- done --- tx_fifoempty => FifoEmpty, -- done --- tx_sndpaustim => x"0000", --- tx_sndpausreq => '0', --- tx_fifoctrl => '0', -- always data frame ------------------- Input signals to the Rx MAC FIFO I/F --------------- --- rx_fifo_full => '0', --- ignore_pkt => '0', ----------------------- Output signals from the GMII ----------------------- --- txd => CH_TXD_OUT, -- done --- tx_en => CH_TX_EN_OUT, -- done --- tx_er => CH_TX_ER_OUT, -- done ----------------------- Output signals from the CPU I/F ------------------- --- hdataout => hdataout_i, -- done --- hdataout_en_n => hdataout_en_n_i, -- done --- hready_n => hready_n_i, -- done --- cpu_if_gbit_en => gbe_enabled, -- done ------------------- Output signals from the Tx MAC FIFO I/F --------------- --- tx_macread => FifoRd, -- done --- tx_discfrm => tx_discfrm_i, -- not used --- tx_staten => tx_staten_i, -- done --- tx_statvec => tx_statvec_i, -- done --- tx_done => tx_done_i, -- done ------------------- Output signals from the Rx MAC FIFO I/F --------------- --- rx_fifo_error => open, --- rx_stat_vector => open, --- rx_dbout => open, --- rx_write => open, --- rx_stat_en => open, --- rx_eof => rx_eof_i, -- done --- rx_error => rx_error_i -- done ---); diff --git a/gbe_ecp2m/trb_net16_gbe_packet_constr.vhd b/gbe_ecp2m/trb_net16_gbe_packet_constr.vhd deleted file mode 100755 index c37ad00..0000000 --- a/gbe_ecp2m/trb_net16_gbe_packet_constr.vhd +++ /dev/null @@ -1,1045 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - -entity trb_net16_gbe_packet_constr is -port( - RESET : in std_logic; - CLK : in std_logic; - -- ports for user logic - PC_WR_EN_IN : in std_logic; -- write into queueConstr from userLogic - PC_DATA_IN : in std_logic_vector(7 downto 0); - PC_READY_OUT : out std_logic; - PC_START_OF_SUB_IN : in std_logic; - PC_END_OF_DATA_IN : in std_logic; - -- queue and subevent layer headers - PC_SUB_SIZE_IN : in std_logic_vector(31 downto 0); -- store and swap - PC_PADDING_IN : in std_logic; -- gk 29.03.10 - PC_DECODING_IN : in std_logic_vector(31 downto 0); -- swap - PC_EVENT_ID_IN : in std_logic_vector(31 downto 0); -- swap - PC_TRIG_NR_IN : in std_logic_vector(31 downto 0); -- store and swap! - PC_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); -- swap - PC_MAX_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); -- DO NOT SWAP - PC_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 28.04.10 - MULT_EVT_ENABLE_IN : in std_logic; -- gk 08.11.10 - PC_END_OF_SUB_IN : in std_logic; -- gk 08.10.11 - -- FrameConstructor ports - FC_WR_EN_OUT : out std_logic; - FC_DATA_OUT : out std_logic_vector(7 downto 0); - FC_H_READY_IN : in std_logic; - FC_READY_IN : in std_logic; - FC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_IDENT_OUT : out std_logic_vector(15 downto 0); - FC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - FC_SOD_OUT : out std_logic; - FC_EOD_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end trb_net16_gbe_packet_constr; - -architecture trb_net16_gbe_packet_constr of trb_net16_gbe_packet_constr is - --- -- Placer Directives --- attribute HGROUP : string; --- -- for whole architecture --- attribute HGROUP of trb_net16_gbe_packet_constr : architecture is "GBE_packet_constr_group"; - -component fifo_64kx9 -port ( - Data : in std_logic_vector(8 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(8 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - --- FIFO for SubEventHeader information --- gk 06.12.10 component fifo_2048x8 is ---component fifo_16kx8 is -component fifo_2048x8 is -port ( - Data : in std_logic_vector(7 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(7 downto 0); - Empty : out std_logic; - Full : out std_logic -); -end component; - -signal df_wr_en : std_logic; -signal df_rd_en : std_logic; -signal df_q : std_logic_vector(7 downto 0); -signal df_q_reg : std_logic_vector(7 downto 0); -signal df_empty : std_logic; -signal df_full : std_logic; - -signal fc_data : std_logic_vector(7 downto 0); -signal fc_wr_en : std_logic; -signal fc_sod : std_logic; -signal fc_eod : std_logic; -signal fc_ident : std_logic_vector(15 downto 0); -- change this to own counter! -signal fc_flags_offset : std_logic_vector(15 downto 0); - -signal shf_data : std_logic_vector(7 downto 0); -signal shf_wr_en : std_logic; -signal shf_rd_en : std_logic; -signal shf_q : std_logic_vector(7 downto 0); -signal shf_empty : std_logic; -signal shf_full : std_logic; - -type constructStates is (CIDLE, SAVE_DATA, WAIT_FOR_LOAD); -signal constructCurrentState, constructNextState : constructStates; -signal constr_state : std_logic_vector(3 downto 0); -signal all_int_ctr : integer range 0 to 31; -signal all_ctr : std_logic_vector(4 downto 0); - -type saveSubStates is (SIDLE, SAVE_SIZE, SAVE_DECODING, SAVE_ID, SAVE_TRIG_NR, SAVE_TERM); -signal saveSubCurrentState, saveSubNextState : saveSubStates; -signal save_state : std_logic_vector(3 downto 0); -signal sub_int_ctr : integer range 0 to 31; -signal sub_ctr : std_logic_vector(4 downto 0); -signal my_int_ctr : integer range 0 to 3; -signal my_ctr : std_logic_vector(1 downto 0); - -type loadStates is (LIDLE, WAIT_FOR_FC, PUT_Q_LEN, PUT_Q_DEC, LOAD_SUB, PREP_DATA, LOAD_DATA, DIVIDE, LOAD_TERM, CLEANUP, DELAY); -signal loadCurrentState, loadNextState: loadStates; -signal load_state : std_logic_vector(3 downto 0); - -signal queue_size : std_logic_vector(31 downto 0); -- sum of all subevents sizes plus their headers and queue headers and termination -signal queue_size_temp : std_logic_vector(31 downto 0); -signal actual_queue_size : std_logic_vector(31 downto 0); -- queue size used during loading process when queue_size is no more valid -signal bytes_loaded : std_logic_vector(15 downto 0); -- size of actual constructing frame -signal sub_size_to_save : std_logic_vector(31 downto 0); -- size of subevent to save to shf -signal sub_size_loaded : std_logic_vector(31 downto 0); -- size of subevent actually being transmitted -signal sub_bytes_loaded : std_logic_vector(31 downto 0); -- amount of bytes of actual subevent sent -signal actual_packet_size : std_logic_vector(15 downto 0); -- actual size of whole udp packet -signal size_left : std_logic_vector(31 downto 0); -signal fc_ip_size : std_logic_vector(15 downto 0); -signal fc_udp_size : std_logic_vector(15 downto 0); -signal max_frame_size : std_logic_vector(15 downto 0); -signal divide_position : std_logic_vector(1 downto 0); -- 00->data, 01->sub, 11->term -signal debug : std_logic_vector(63 downto 0); -signal pc_ready : std_logic; - -signal pc_sub_size : std_logic_vector(31 downto 0); -signal pc_trig_nr : std_logic_vector(31 downto 0); -signal rst_after_sub_comb : std_logic; -- gk 08.04.10 -signal rst_after_sub : std_logic; -- gk 08.04.10 -signal load_int_ctr : integer range 0 to 3; -- gk 08.04.10 -signal delay_ctr : std_logic_vector(31 downto 0); -- gk 28.04.10 -signal ticks_ctr : std_logic_vector(7 downto 0); -- gk 28.04.10 - --- gk 26.07.10 -signal load_eod : std_logic; -signal load_eod_q : std_logic; - --- gk 08.11.11 -signal df_eod : std_logic; - --- gk 04.12.10 -signal first_sub_in_multi : std_logic; -signal from_divide_state : std_logic; -signal disable_prep : std_logic; - -begin - --- Fakes ---debug <= (others => '0'); - -my_int_ctr <= (3 - to_integer(to_unsigned(sub_int_ctr, 2))); -- reverse byte order -load_int_ctr <= (3 - to_integer(to_unsigned(all_int_ctr, 2))); -- gk 08.04.10 - -all_ctr <= std_logic_vector(to_unsigned(all_int_ctr, all_ctr'length)); -- for debugging -sub_ctr <= std_logic_vector(to_unsigned(sub_int_ctr, sub_ctr'length)); -- for debugging -my_ctr <= std_logic_vector(to_unsigned(my_int_ctr, my_ctr'length)); -- for debugging - -max_frame_size <= PC_MAX_FRAME_SIZE_IN; - --- Ready signal for PacketConstructor -pc_ready <= '1' when (constructCurrentState = CIDLE) and (df_empty = '1') else '0'; - --- store event information on Start_of_Subevent -THE_EVT_INFO_STORE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if (RESET = '1') then -- gk 31.05.10 - pc_sub_size <= (others => '0'); - pc_trig_nr <= (others => '0'); - elsif( PC_START_OF_SUB_IN = '1' ) then - pc_sub_size <= PC_SUB_SIZE_IN; - pc_trig_nr <= PC_TRIG_NR_IN; - end if; - end if; -end process; - --- Data FIFO for incoming packet data from IPU buffer --- gk 26.07.10 -DATA_FIFO : fifo_64kx9 -port map( - Data(7 downto 0) => PC_DATA_IN, - Data(8) => df_eod, --PC_END_OF_DATA_IN, -- gk 08.11.10 - WrClock => CLK, - RdClock => CLK, - WrEn => df_wr_en, - RdEn => df_rd_en, - Reset => RESET, - RPReset => RESET, - Q(7 downto 0) => df_q, - Q(8) => load_eod, - Empty => df_empty, - Full => df_full -); - --- gk 08.11.10 -df_eod <= '1' when ((MULT_EVT_ENABLE_IN = '0') and (PC_END_OF_DATA_IN = '1')) - or ((MULT_EVT_ENABLE_IN = '1') and (PC_END_OF_SUB_IN = '1')) - else '0'; - -LOAD_EOD_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - load_eod_q <= '0'; - else - load_eod_q <= load_eod; - end if; - end if; -end process LOAD_EOD_PROC; - --- Write enable for the data FIFO --- !!!combinatorial signal!!! --- could be avoided as IPU2GBE does only send data in case of PC_READY. -df_wr_en <= '1' when ((PC_WR_EN_IN = '1') and (constructCurrentState /= WAIT_FOR_LOAD)) - else '0'; - --- Output register for data FIFO -dfQProc : process(CLK) -begin - if rising_edge(CLK) then - df_q_reg <= df_q; - end if; -end process dfQProc; - --- Construction state machine -constructMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - constructCurrentState <= CIDLE; - else - constructCurrentState <= constructNextState; - end if; - end if; -end process constructMachineProc; - -constructMachine : process(constructCurrentState, PC_WR_EN_IN, PC_END_OF_DATA_IN, loadCurrentState, saveSubCurrentState, sub_int_ctr) -begin - case constructCurrentState is - when CIDLE => - constr_state <= x"0"; - --if( PC_WR_EN_IN = '1' ) then - -- gk 04.12.10 - if (PC_START_OF_SUB_IN = '1') then - constructNextState <= SAVE_DATA; - else - constructNextState <= CIDLE; - end if; - when SAVE_DATA => - constr_state <= x"1"; - if( PC_END_OF_DATA_IN = '1' ) then - constructNextState <= WAIT_FOR_LOAD; - else - constructNextState <= SAVE_DATA; - end if; - when WAIT_FOR_LOAD => - constr_state <= x"2"; - if( (df_empty = '1') and (loadCurrentState = LIDLE) ) then -- waits until the whole packet is transmitted - constructNextState <= CIDLE; - else - constructNextState <= WAIT_FOR_LOAD; - end if; - when others => - constr_state <= x"f"; - constructNextState <= CIDLE; - end case; -end process constructMachine; - ---*********************** --- SIZE COUNTERS FOR SAVING SIDE ---*********************** - --- gk 29.03.10 the subevent size saved to its headers cannot contain padding bytes but they are included in pc_sub_size --- that's why they are removed if pc_padding flag is asserted -sub_size_to_save <= (x"10" + pc_sub_size) when (PC_PADDING_IN = '0') - else (x"c" + pc_sub_size); -- subevent headers + data - --- BUG HERE BUG HERE BUG HERE BUG HERE --- gk 29.03.10 no changes here because the queue size should contain the padding bytes of subevents -queueSizeProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = CLEANUP) then - queue_size <= x"00000028"; -- + 8B for queue headers and 32B for termination - elsif (saveSubCurrentState = SAVE_SIZE) and (sub_int_ctr = 3) then - queue_size <= queue_size + pc_sub_size + x"10"; -- + 16B for each subevent headers - end if; - end if; -end process queueSizeProc; - ---*********************** --- LOAD DATA COMBINED WITH HEADERS INTO FC, QUEUE TRANSMISSION ---*********************** - -loadMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loadCurrentState <= LIDLE; - else - loadCurrentState <= loadNextState; - end if; - end if; -end process loadMachineProc; - -loadMachine : process(loadCurrentState, constructCurrentState, all_int_ctr, df_empty, - sub_bytes_loaded, sub_size_loaded, size_left, FC_H_READY_IN, max_frame_size, - bytes_loaded, divide_position, PC_DELAY_IN, delay_ctr, load_eod_q) -begin - case loadCurrentState is - when LIDLE => - load_state <= x"0"; - if ((constructCurrentState = WAIT_FOR_LOAD) and (df_empty = '0')) then - loadNextState <= WAIT_FOR_FC; - else - loadNextState <= LIDLE; - end if; - when WAIT_FOR_FC => - load_state <= x"1"; - if (FC_H_READY_IN = '1') then - loadNextState <= PUT_Q_LEN; - else - loadNextState <= WAIT_FOR_FC; - end if; - when PUT_Q_LEN => - load_state <= x"2"; - if (all_int_ctr = 3) then - loadNextState <= PUT_Q_DEC; - else - loadNextState <= PUT_Q_LEN; - end if; - when PUT_Q_DEC => - load_state <= x"3"; - if (all_int_ctr = 3) then - loadNextState <= LOAD_SUB; - else - loadNextState <= PUT_Q_DEC; - end if; - when LOAD_SUB => - load_state <= x"4"; - if (bytes_loaded = max_frame_size - 1) then - loadNextState <= DIVIDE; - elsif (all_int_ctr = 15) then - loadNextState <= PREP_DATA; - else - loadNextState <= LOAD_SUB; - end if; - when PREP_DATA => - load_state <= x"5"; - loadNextState <= LOAD_DATA; --- when LOAD_DATA => --- load_state <= x"6"; --- if (bytes_loaded = max_frame_size - 1) then --- loadNextState <= DIVIDE; --- -- gk 26.07.10 --- -- close packet after one event loaded --- elsif (load_eod_q = '1') then --- loadNextState <= LOAD_TERM; --- -- elsif (sub_bytes_loaded = sub_size_loaded) then -- if all subevent bytes are loaded --- -- if (size_left = x"00000021") then -- and there is no more data, only termination left --- -- -- gk 21.07.10 --- -- if (PC_SKIP_TERM_IN = '0') then --- -- loadNextState <= LOAD_TERM; -- add termination and close packet --- -- else --- -- loadNextState <= CLEANUP; --- -- end if; --- -- else -- there is more data in fifo --- -- loadNextState <= LOAD_SUB; -- add another subevent --- -- end if; --- else --- loadNextState <= LOAD_DATA; --- end if; - -- gk 04.12.10 - when LOAD_DATA => - load_state <= x"6"; - if (bytes_loaded = max_frame_size - 1) then - loadNextState <= DIVIDE; - -- gk 07.10.10 - elsif (load_eod_q = '1') then - if (MULT_EVT_ENABLE_IN = '1') then - if (size_left < x"0000_0030") then - loadNextState <= LOAD_TERM; - else - loadNextState <= LOAD_SUB; - end if; - else - loadNextState <= LOAD_TERM; - end if; - else - loadNextState <= LOAD_DATA; - end if; - when DIVIDE => - load_state <= x"7"; - if (FC_H_READY_IN = '1') then - if (divide_position = "00") then - loadNextState <= PREP_DATA; - elsif (divide_position = "01") then - loadNextState <= LOAD_SUB; - else - loadNextState <= LOAD_TERM; - end if; - else - loadNextState <= DIVIDE; - end if; - when LOAD_TERM => - load_state <= x"8"; - if (bytes_loaded = max_frame_size - 1) and (all_int_ctr /= 31) then - loadNextState <= DIVIDE; - elsif (all_int_ctr = 31) then - loadNextState <= CLEANUP; - else - loadNextState <= LOAD_TERM; - end if; - -- gk 28.04.10 - when CLEANUP => - load_state <= x"9"; - if (PC_DELAY_IN = x"0000_0000") then - loadNextState <= LIDLE; - else - loadNextState <= DELAY; - end if; - -- gk 28.04.10 - when DELAY => - load_state <= x"a"; - if (delay_ctr = x"0000_0000") then - loadNextState <= LIDLE; - else - loadNextState <= DELAY; - end if; - when others => - load_state <= x"f"; - loadNextState <= LIDLE; - end case; -end process loadMachine; - --- gk 04.12.10 -firstSubInMultiProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LOAD_TERM) then - first_sub_in_multi <= '1'; - elsif (loadCurrentState = LOAD_DATA) then - first_sub_in_multi <= '0'; - end if; - end if; -end process; - --- gk 04.12.10 -fromDivideStateProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - from_divide_state <= '0'; - elsif (loadCurrentState = DIVIDE) then - from_divide_state <= '1'; - elsif (loadCurrentState = PREP_DATA) then - from_divide_state <= '0'; - end if; - end if; -end process fromDivideStateProc; - -dividePositionProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - divide_position <= "00"; - elsif (bytes_loaded = max_frame_size - 1) then - if (loadCurrentState = LIDLE) then - divide_position <= "00"; - disable_prep <= '0'; -- gk 05.12.10 - elsif (loadCurrentState = LOAD_DATA) then - -- gk 05.12.10 - -- gk 26.07.10 - if (MULT_EVT_ENABLE_IN = '0') and (load_eod_q = '1') then -- if termination is about to be loaded divide on term - divide_position <= "11"; - disable_prep <= '0'; -- gk 05.12.10 - elsif (MULT_EVT_ENABLE_IN = '1') and (load_eod_q = '1') then - if (size_left > x"0000_0028") then - divide_position <= "01"; - disable_prep <= '0'; -- gk 05.12.10 - else - divide_position <= "11"; - disable_prep <= '0'; -- gk 05.12.10 - end if; - else - divide_position <= "00"; -- still data loaded divide on data - disable_prep <= '1'; -- gk 05.12.10 - end if; - elsif (loadCurrentState = LOAD_SUB) then - if (all_int_ctr = 15) then - divide_position <= "00"; - disable_prep <= '1'; -- gk 05.12.10 - else - divide_position <= "01"; - disable_prep <= '0'; -- gk 05.12.10 - end if; - elsif (loadCurrentState = LOAD_TERM) then - divide_position <= "11"; - disable_prep <= '0'; -- gk 05.12.10 - end if; - elsif (loadCurrentState = PREP_DATA) then -- gk 06.12.10 reset disable_prep - disable_prep <= '0'; - end if; - end if; -end process dividePositionProc; - -allIntCtrProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then -- gk 31.05.10 - all_int_ctr <= 0; - else - case loadCurrentState is - - when LIDLE => all_int_ctr <= 0; - - when WAIT_FOR_FC => all_int_ctr <= 0; - - when PUT_Q_LEN => - if (all_int_ctr = 3) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when PUT_Q_DEC => - if (all_int_ctr = 3) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when LOAD_SUB => - if (all_int_ctr = 15) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when LOAD_DATA => all_int_ctr <= 0; - - when LOAD_TERM => - if (all_int_ctr = 31) then - all_int_ctr <= 0; - else - all_int_ctr <= all_int_ctr + 1; - end if; - - when DIVIDE => null; --all_int_ctr <= all_int_ctr; - - when CLEANUP => all_int_ctr <= 0; - - when PREP_DATA => all_int_ctr <= 0; - - when DELAY => all_int_ctr <= 0; - end case; - end if; - end if; -end process allIntCtrProc; - -dfRdEnProc : process(loadCurrentState, bytes_loaded, max_frame_size, sub_bytes_loaded, - sub_size_loaded, all_int_ctr, RESET, load_eod, load_eod_q) -begin - if (RESET = '1') then -- gk 31.05.10 - df_rd_en <= '0'; - elsif (loadCurrentState = LOAD_DATA) then --- if (bytes_loaded >= max_frame_size - x"1") then --- df_rd_en <= '0'; --- elsif (sub_bytes_loaded >= sub_size_loaded) then --- df_rd_en <= '0'; - if (bytes_loaded = max_frame_size - x"1") then - df_rd_en <= '0'; - -- gk 26.07.10 - --elsif (load_eod = '1') or (load_eod_q = '1') then - elsif (load_eod_q = '1') then - df_rd_en <= '0'; --- elsif (sub_bytes_loaded = sub_size_loaded) then --- df_rd_en <= '0'; - else - df_rd_en <= '1'; - end if; - elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 15) and (bytes_loaded /= max_frame_size - x"1") then - df_rd_en <= '1'; - elsif (loadCurrentState = PREP_DATA) then - df_rd_en <= '1'; - else - df_rd_en <= '0'; - end if; -end process dfRdEnProc; - -shfRdEnProc : process(loadCurrentState, all_int_ctr, RESET) -begin - if (RESET = '1') then -- gk 31.05.10 - shf_rd_en <= '0'; - elsif (loadCurrentState = LOAD_SUB) then - shf_rd_en <= '1'; - elsif (loadCurrentState = LOAD_TERM) and (all_int_ctr < 31) then - shf_rd_en <= '1'; - elsif (loadCurrentState = PUT_Q_DEC) and (all_int_ctr = 3) then - shf_rd_en <= '1'; - else - shf_rd_en <= '0'; - end if; -end process shfRdEnProc; - - -fcWrEnProc : process(loadCurrentState, RESET, first_sub_in_multi, from_divide_state, MULT_EVT_ENABLE_IN, divide_position, disable_prep) -begin - if (RESET = '1') then -- gk 31.05.10 - fc_wr_en <= '0'; - elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) then - fc_wr_en <= '1'; - elsif (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_TERM) then - fc_wr_en <= '1'; - -- gk 04.12.10 - elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') and (disable_prep = '0') then - fc_wr_en <= '1'; - elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (from_divide_state = '1') and ((divide_position = "00") or (divide_position = "01")) and (disable_prep = '0') then - fc_wr_en <= '1'; - else - fc_wr_en <= '0'; - end if; -end process fcWrEnProc; - --- was all_int_ctr -fcDataProc : process(loadCurrentState, queue_size_temp, PC_QUEUE_DEC_IN, shf_q, df_q_reg, load_int_ctr) -begin - case loadCurrentState is - when LIDLE => fc_data <= x"af"; - when WAIT_FOR_FC => fc_data <= x"bf"; - -- gk 08.04.10 my_int_ctr changed to load_int_ctr - when PUT_Q_LEN => fc_data <= queue_size_temp(load_int_ctr * 8 + 7 downto load_int_ctr * 8); - when PUT_Q_DEC => fc_data <= PC_QUEUE_DEC_IN(load_int_ctr * 8 + 7 downto load_int_ctr * 8); - when LOAD_SUB => fc_data <= shf_q; - when PREP_DATA => fc_data <= df_q_reg; - when LOAD_DATA => fc_data <= df_q_reg; - when LOAD_TERM => fc_data <= shf_q; - when DIVIDE => fc_data <= x"cf"; - when CLEANUP => fc_data <= x"df"; - when others => fc_data <= x"00"; - end case; -end process fcDataProc; - --- delay counters --- gk 28.04.10 -DELAY_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (loadCurrentState = LIDLE)) then - delay_ctr <= PC_DELAY_IN; - elsif ((loadCurrentState = DELAY) and (ticks_ctr(7) = '1')) then - delay_ctr <= delay_ctr - x"1"; - end if; - end if; -end process DELAY_CTR_PROC; - --- gk 28.04.10 -TICKS_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (loadCurrentState = LIDLE) or (ticks_ctr(7) = '1')) then - ticks_ctr <= x"00"; - elsif (loadCurrentState = DELAY) then - ticks_ctr <= ticks_ctr + x"1"; - end if; - end if; -end process TICKS_CTR_PROC; - - ---*********************** --- SIZE COUNTERS FOR LOADING SIDE ---*********************** - -queue_size_temp <= queue_size - x"20"; -- size of data without termination - --- gk 08.04.10 -rst_after_sub_comb <= '1' when (loadCurrentState = LIDLE) or - ((loadCurrentState = LOAD_DATA) and (size_left /= x"00000021")) -- gk 26.07.10 -- and (sub_bytes_loaded = sub_size_loaded) - else '0'; - --- gk 08.04.10 -RST_AFTER_SUB_PROC : process(CLK) -begin - if(rising_edge(CLK)) then - if(RESET = '1') then - rst_after_sub <= '0'; - else - rst_after_sub <= rst_after_sub_comb; - end if; - end if; -end process RST_AFTER_SUB_PROC; - --- counts all bytes loaded to divide data into frames -bytesLoadedProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = DIVIDE) or (loadCurrentState = CLEANUP) then - bytes_loaded <= x"0000"; - elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_TERM) then - bytes_loaded <= bytes_loaded + x"1"; - -- gk 05.12.10 --- elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') then --- bytes_loaded <= bytes_loaded + x"1"; - elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (first_sub_in_multi = '0') and (from_divide_state = '0') and (disable_prep = '0') then - bytes_loaded <= bytes_loaded + x"1"; - elsif (MULT_EVT_ENABLE_IN = '1') and (loadCurrentState = PREP_DATA) and (from_divide_state = '1') and ((divide_position = "00") or (divide_position = "01")) and (disable_prep = '0') then - bytes_loaded <= bytes_loaded + x"1"; - end if; - end if; -end process bytesLoadedProc; - --- size of subevent loaded from memory -subSizeLoadedProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 08.04.10 - sub_size_loaded <= x"00000000"; - elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr < 4) then - -- was all_int_ctr - -- gk 08.04.10 my_int_ctr changed to load_int_ctr - sub_size_loaded(7 + load_int_ctr * 8 downto load_int_ctr * 8) <= shf_q; - -- gk 29.03.10 here the padding bytes have to be added to the loadedSize in order to load the correct amount of bytes from fifo - elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 5) and (sub_size_loaded(2) = '1') then - sub_size_loaded <= sub_size_loaded + x"4"; - end if; - end if; -end process subSizeLoadedProc; - --- counts only raw data bytes being loaded -subBytesLoadedProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then -- gk 26.07.10 --or (sub_bytes_loaded = sub_size_loaded) -- gk 08.04.10 - sub_bytes_loaded <= x"00000011"; -- subevent headers doesnt count - elsif (loadCurrentState = LOAD_DATA) then - sub_bytes_loaded <= sub_bytes_loaded + x"1"; - end if; - end if; -end process subBytesLoadedProc; - --- counts the size of the large udp packet -actualPacketProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then - actual_packet_size <= x"0008"; - elsif (fc_wr_en = '1') then - actual_packet_size <= actual_packet_size + x"1"; - end if; - end if; -end process actualPacketProc; - -actualQueueSizeProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = CLEANUP) then - actual_queue_size <= (others => '0'); - elsif (loadCurrentState = LIDLE) then - actual_queue_size <= queue_size; - end if; - end if; -end process actualQueueSizeProc; - --- amount of bytes left to send in current packet -sizeLeftProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = CLEANUP) then - size_left <= (others => '0'); - elsif (loadCurrentState = LIDLE) then - size_left <= queue_size; - elsif (fc_wr_en = '1') then - size_left <= size_left - 1; - end if; - end if; -end process sizeLeftProc; - --- HOT FIX: don't rely on CTS information, count the packets on your own. --- In this case, we increment the fragmented packet ID with EOD from ipu2gbe. -THE_FC_IDENT_COUNTER_PROC: process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - fc_ident <= (others => '0'); - elsif (PC_END_OF_DATA_IN = '1') then - fc_ident <= fc_ident + 1; - end if; - end if; -end process THE_FC_IDENT_COUNTER_PROC; - -fc_flags_offset(15 downto 14) <= "00"; - -moreFragmentsProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then - fc_flags_offset(13) <= '0'; - elsif ((loadCurrentState = DIVIDE) and (FC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1')) then - if ((actual_queue_size - actual_packet_size) < max_frame_size) then - fc_flags_offset(13) <= '0'; -- no more fragments - else - fc_flags_offset(13) <= '1'; -- more fragments - end if; - end if; - end if; -end process moreFragmentsProc; - -eodProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - fc_eod <= '0'; - elsif (loadCurrentState = LOAD_DATA) and (bytes_loaded = max_frame_size - 2) then - fc_eod <= '1'; - elsif (loadCurrentState = LOAD_SUB) and (bytes_loaded = max_frame_size - 2) then - fc_eod <= '1'; - elsif (loadCurrentState = LOAD_TERM) and ((bytes_loaded = max_frame_size - 2) or (all_int_ctr = 30)) then - fc_eod <= '1'; - else - fc_eod <= '0'; - end if; - end if; -end process eodProc; - -sodProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - fc_sod <= '0'; - elsif (loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1') then - fc_sod <= '1'; - elsif (loadCurrentState = DIVIDE) and (FC_READY_IN = '1') then - fc_sod <= '1'; - else - fc_sod <= '0'; - end if; - end if; -end process sodProc; - -offsetProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then - fc_flags_offset(12 downto 0) <= (others => '0'); - elsif ((loadCurrentState = DIVIDE) and (FC_READY_IN = '1')) then - fc_flags_offset(12 downto 0) <= actual_packet_size(15 downto 3); - end if; - end if; -end process offsetProc; - -fcIPSizeProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET= '1') then - fc_ip_size <= (others => '0'); - elsif ((loadCurrentState = DIVIDE) and (FC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1')) then - if (size_left >= max_frame_size) then - fc_ip_size <= max_frame_size; - else - fc_ip_size <= size_left(15 downto 0); - end if; - end if; - end if; -end process fcIPSizeProc; - -fcUDPSizeProc : process(CLK) - begin - if rising_edge(CLK) then - if (RESET = '1') then - fc_udp_size <= (others => '0'); - elsif (loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1') then - fc_udp_size <= queue_size(15 downto 0); - end if; - end if; -end process fcUDPSizeProc; - - ---*********************** --- SUBEVENT HEADERS WRITE AND READ ---*********************** - ---SUBEVENT_HEADERS_FIFO : fifo_16kx8 -- gk 06.12.10 fifo_2048x8 -SUBEVENT_HEADERS_FIFO : fifo_2048x8 -port map( - Data => shf_data, - WrClock => CLK, - RdClock => CLK, - WrEn => shf_wr_en, - RdEn => shf_rd_en, - Reset => RESET, - RPReset => RESET, - Q => shf_q, - Empty => shf_empty, - Full => shf_full -); - --- write enable for SHF -shf_wr_en <= '1' when ((saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA)) - else '0'; - --- data multiplexing for SHF (convert 32bit LWs to 8bit) --- CHANGED. --- The SubEventHeader (4x 32bit is stored in [MSB:LSB] now, same byte order as data from PC. -shfDataProc : process(saveSubCurrentState, sub_size_to_save, PC_DECODING_IN, PC_EVENT_ID_IN, - pc_trig_nr, my_int_ctr, fc_data) -begin - case saveSubCurrentState is - when SIDLE => shf_data <= x"ac"; - when SAVE_SIZE => shf_data <= sub_size_to_save(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_DECODING => shf_data <= PC_DECODING_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_ID => shf_data <= PC_EVENT_ID_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_TRIG_NR => shf_data <= pc_trig_nr(my_int_ctr * 8 + 7 downto my_int_ctr * 8); - when SAVE_TERM => shf_data <= fc_data; - when others => shf_data <= x"00"; - end case; -end process shfDataProc; - -saveSubMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saveSubCurrentState <= SIDLE; - else - saveSubCurrentState <= saveSubNextState; - end if; - end if; -end process saveSubMachineProc; - -saveSubMachine : process(saveSubCurrentState, PC_START_OF_SUB_IN, sub_int_ctr, loadCurrentState, FC_H_READY_IN) -begin - case saveSubCurrentState is - when SIDLE => - save_state <= x"0"; - if (PC_START_OF_SUB_IN = '1') then - saveSubNextState <= SAVE_SIZE; - -- this branch is dangerous! - elsif (loadCurrentState = WAIT_FOR_FC) and (FC_H_READY_IN = '1') then -- means that loadCurrentState is put_q_len - saveSubNextState <= SAVE_TERM; - else - saveSubNextState <= SIDLE; - end if; - when SAVE_SIZE => - save_state <= x"1"; - if (sub_int_ctr = 3) then - saveSubNextState <= SAVE_DECODING; - else - saveSubNextState <= SAVE_SIZE; - end if; - when SAVE_DECODING => - save_state <= x"2"; - if (sub_int_ctr = 3) then - saveSubNextState <= SAVE_ID; - else - saveSubNextState <= SAVE_DECODING; - end if; - when SAVE_ID => - save_state <= x"3"; - if (sub_int_ctr = 3) then - saveSubNextState <= SAVE_TRIG_NR; - else - saveSubNextState <= SAVE_ID; - end if; - when SAVE_TRIG_NR => - save_state <= x"4"; - if (sub_int_ctr = 3) then - saveSubNextState <= SIDLE; - else - saveSubNextState <= SAVE_TRIG_NR; - end if; - when SAVE_TERM => - save_state <= x"5"; - if (sub_int_ctr = 31) then - saveSubNextState <= SIDLE; - else - saveSubNextState <= SAVE_TERM; - end if; - when others => - save_state <= x"f"; - saveSubNextState <= SIDLE; - end case; -end process; - --- This counter is used for breaking down 32bit information words into 8bit bytes for --- storing them in the SHF. --- It is also used for the termination 32byte sequence. -subIntProc: process( CLK ) -begin - if rising_edge(CLK) then - if (RESET = '1') or (saveSubCurrentState = SIDLE) then - sub_int_ctr <= 0; - elsif (sub_int_ctr = 3) and (saveSubCurrentState /= SAVE_TERM) then - sub_int_ctr <= 0; - elsif (sub_int_ctr = 31) and (saveSubCurrentState = SAVE_TERM) then - sub_int_ctr <= 0; - elsif (saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA) then - sub_int_ctr <= sub_int_ctr + 1; - end if; - end if; -end process subIntProc; - -debug(3 downto 0) <= constr_state; -debug(7 downto 4) <= save_state; -debug(11 downto 8) <= load_state; -debug(27 downto 12) <= queue_size(15 downto 0); -debug(28) <= df_full; -debug(29) <= df_empty; -debug(30) <= shf_full; -debug(31) <= shf_empty; - -debug(47 downto 32) <= size_left(15 downto 0); -debug(52 downto 48) <= all_ctr; -debug(53) <= pc_ready; - --- outputs -PC_READY_OUT <= pc_ready; -FC_WR_EN_OUT <= fc_wr_en; -FC_DATA_OUT <= fc_data; -FC_IP_SIZE_OUT <= fc_ip_size; -FC_UDP_SIZE_OUT <= fc_udp_size; -FC_IDENT_OUT(15 downto 8) <= fc_ident(7 downto 0); -FC_IDENT_OUT(7 downto 0) <= fc_ident(15 downto 8); -FC_FLAGS_OFFSET_OUT <= fc_flags_offset; -FC_SOD_OUT <= fc_sod; -FC_EOD_OUT <= fc_eod; - -DEBUG_OUT <= debug; - -end trb_net16_gbe_packet_constr; \ No newline at end of file diff --git a/gbe_ecp2m/trb_net16_gbe_setup.vhd b/gbe_ecp2m/trb_net16_gbe_setup.vhd deleted file mode 100644 index 42d5d73..0000000 --- a/gbe_ecp2m/trb_net16_gbe_setup.vhd +++ /dev/null @@ -1,445 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; ---use work.version.all; - - -entity gbe_setup is -port( - CLK : in std_logic; - RESET : in std_logic; - - -- interface to regio bus - BUS_ADDR_IN : in std_logic_vector(7 downto 0); - BUS_DATA_IN : in std_logic_vector(31 downto 0); - BUS_DATA_OUT : out std_logic_vector(31 downto 0); -- gk 26.04.10 - BUS_WRITE_EN_IN : in std_logic; -- gk 26.04.10 - BUS_READ_EN_IN : in std_logic; -- gk 26.04.10 - BUS_ACK_OUT : out std_logic; -- gk 26.04.10 - - -- gk 26.04.10 - -- input from gbe_buf (only to return the whole trigger number via regio) - GBE_TRIG_NR_IN : in std_logic_vector(31 downto 0); - - -- output to gbe_buf - GBE_SUBEVENT_ID_OUT : out std_logic_vector(31 downto 0); - GBE_SUBEVENT_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_QUEUE_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_MAX_PACKET_OUT : out std_logic_vector(31 downto 0); - GBE_MIN_PACKET_OUT : out std_logic_vector(31 downto 0); - GBE_MAX_FRAME_OUT : out std_logic_vector(15 downto 0); - GBE_USE_GBE_OUT : out std_logic; - GBE_USE_TRBNET_OUT : out std_logic; - GBE_USE_MULTIEVENTS_OUT : out std_logic; - GBE_READOUT_CTR_OUT : out std_logic_vector(23 downto 0); -- gk 26.04.10 - GBE_READOUT_CTR_VALID_OUT : out std_logic; -- gk 26.04.10 - GBE_DELAY_OUT : out std_logic_vector(31 downto 0); - GBE_ALLOW_LARGE_OUT : out std_logic; - GBE_FRAME_DELAY_OUT : out std_logic_vector(31 downto 0); -- gk 09.12.10 - -- gk 28.07.10 - MONITOR_BYTES_IN : in std_logic_vector(31 downto 0); - MONITOR_SENT_IN : in std_logic_vector(31 downto 0); - MONITOR_DROPPED_IN : in std_logic_vector(31 downto 0); - MONITOR_SM_IN : in std_logic_vector(31 downto 0); - MONITOR_LR_IN : in std_logic_vector(31 downto 0); - MONITOR_HDR_IN : in std_logic_vector(31 downto 0); - MONITOR_FIFOS_IN : in std_logic_vector(31 downto 0); - MONITOR_DISCFRM_IN : in std_logic_vector(31 downto 0); - MONITOR_LINK_DWN_IN : in std_logic_vector(31 downto 0); -- gk 30.09.10 - MONITOR_EMPTY_IN : in std_logic_vector(31 downto 0); -- gk 01.10.10 - -- gk 01.06.10 - DBG_IPU2GBE1_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE2_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE3_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE4_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE5_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE6_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE7_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE8_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE9_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE10_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE11_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE12_IN : in std_logic_vector(31 downto 0); - DBG_PC1_IN : in std_logic_vector(31 downto 0); - DBG_PC2_IN : in std_logic_vector(31 downto 0); - DBG_FC1_IN : in std_logic_vector(31 downto 0); - DBG_FC2_IN : in std_logic_vector(31 downto 0); - DBG_FT1_IN : in std_logic_vector(31 downto 0); - DBG_FT2_IN : in std_logic_vector(31 downto 0); - DBG_FIFO_RD_EN_OUT : out std_logic; - DBG_FIFO_Q_IN : in std_logic_vector(15 downto 0) - --DBG_RESET_FIFO_OUT : out std_logic -- gk 28.09.10 -); -end entity; - -architecture gbe_setup of gbe_setup is - --- -- Placer Directives --- attribute HGROUP : string; --- -- for whole architecture --- attribute HGROUP of gbe_setup : architecture is "GBE_conf_group"; - -signal reset_values : std_logic; - -signal subevent_id : std_logic_vector(31 downto 0); -signal subevent_dec : std_logic_vector(31 downto 0); -signal queue_dec : std_logic_vector(31 downto 0); -signal max_packet : std_logic_vector(31 downto 0); -signal min_packet : std_logic_vector(31 downto 0); -- gk 07.20.10 -signal max_frame : std_logic_vector(15 downto 0); -signal use_gbe : std_logic; -signal use_trbnet : std_logic; -signal use_multievents : std_logic; -signal readout_ctr : std_logic_vector(23 downto 0); -- gk 26.04.10 -signal readout_ctr_valid : std_logic; -- gk 26.04.10 -signal ack : std_logic; -- gk 26.04.10 -signal ack_q : std_logic; -- gk 26.04.10 -signal data_out : std_logic_vector(31 downto 0); -- gk 26.04.10 -signal delay : std_logic_vector(31 downto 0); -- gk 28.04.10 -signal allow_large : std_logic; -- gk 21.07.10 -signal reset_fifo : std_logic; -- gk 28.09.10 -signal frame_delay : std_logic_vector(31 downto 0); -- gk 09.12.10 - -begin - -OUT_PROC : process(CLK) -begin - if rising_edge(CLK) then - GBE_SUBEVENT_ID_OUT <= subevent_id; - GBE_SUBEVENT_DEC_OUT <= subevent_dec; - GBE_QUEUE_DEC_OUT <= queue_dec; - GBE_MAX_PACKET_OUT <= max_packet; - GBE_MIN_PACKET_OUT <= min_packet; - GBE_MAX_FRAME_OUT <= max_frame; - GBE_USE_GBE_OUT <= use_gbe; - GBE_USE_TRBNET_OUT <= use_trbnet; - GBE_USE_MULTIEVENTS_OUT <= use_multievents; - GBE_READOUT_CTR_OUT <= readout_ctr; -- gk 26.04.10 - GBE_READOUT_CTR_VALID_OUT <= readout_ctr_valid; -- gk 26.04.10 - BUS_ACK_OUT <= ack_q; -- gk 26.04.10 - ack_q <= ack; -- gk 26.04.10 - BUS_DATA_OUT <= data_out; -- gk 26.04.10 - GBE_DELAY_OUT <= delay; -- gk 28.04.10 - GBE_ALLOW_LARGE_OUT <= allow_large; -- gk 21.07.10 - --DBG_RESET_FIFO_OUT <= reset_fifo; -- gk 28.09.10 - GBE_FRAME_DELAY_OUT <= frame_delay; -- gk 09.12.10 - end if; -end process OUT_PROC; - --- gk 26.04.10 -ACK_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - ack <= '0'; - elsif ((BUS_WRITE_EN_IN = '1') or (BUS_READ_EN_IN = '1')) then - ack <= '1'; - else - ack <= '0'; - end if; - end if; -end process ACK_PROC; - -WRITE_PROC : process(CLK) -begin - DBG_FIFO_RD_EN_OUT <= '0'; - - if rising_edge(CLK) then - if ( (RESET = '1') or (reset_values = '1') ) then - subevent_id <= x"0000_00cf"; - subevent_dec <= x"0002_0001"; - queue_dec <= x"0003_0062"; - max_packet <= x"0000_ea60"; --x"0000_fde8"; --x"0000_fde8"; -- 65k --x"0000_fde8"; -- tester - min_packet <= x"0000_0007"; -- gk 20.07.10 - max_frame <= x"0578"; - use_gbe <= '0'; --'1'; -- gk 27.08.10 -- blocks the transmission until gbe gets configured - use_trbnet <= '0'; - use_multievents <= '0'; - reset_values <= '0'; - readout_ctr <= x"00_0000"; -- gk 26.04.10 -- gk 07.06.10 corrected bug found by Sergey - readout_ctr_valid <= '0'; -- gk 26.04.10 - delay <= x"0000_0000"; -- gk 28.04.10 - DBG_FIFO_RD_EN_OUT <= '0'; - allow_large <= '0'; -- gk 21.07.10 - reset_fifo <= '0'; -- gk 28.09.10 - frame_delay <= x"0000_0000"; -- gk 09.12.10 - - elsif (BUS_WRITE_EN_IN = '1') then - case BUS_ADDR_IN is - - when x"00" => - subevent_id <= BUS_DATA_IN; - - when x"01" => - subevent_dec <= BUS_DATA_IN; - - when x"02" => - queue_dec <= BUS_DATA_IN; - - when x"03" => - max_packet <= BUS_DATA_IN; - - when x"04" => - max_frame <= BUS_DATA_IN(15 downto 0); - - when x"05" => - if (BUS_DATA_IN = x"0000_0000") then - use_gbe <= '0'; - else - use_gbe <= '1'; - end if; - - when x"06" => - if (BUS_DATA_IN = x"0000_0000") then - use_trbnet <= '0'; - else - use_trbnet <= '1'; - end if; - - when x"07" => - if (BUS_DATA_IN = x"0000_0000") then - use_multievents <= '0'; - else - use_multievents <= '1'; - end if; - - -- gk 26.04.10 - when x"08" => - readout_ctr <= BUS_DATA_IN(23 downto 0); - readout_ctr_valid <= '1'; - - -- gk 28.04.10 - when x"09" => - delay <= BUS_DATA_IN; - - when x"0a" => - DBG_FIFO_RD_EN_OUT <= '1'; - - -- gk 20.07.10 - when x"0b" => - min_packet <= BUS_DATA_IN; - - -- gk 21.07.10 - when x"0c" => - if (BUS_DATA_IN = x"0000_0000") then - allow_large <= '0'; - else - allow_large <= '1'; - end if; - - -- gk 09.12.10 - when x"0d" => - frame_delay <= BUS_DATA_IN; - - -- gk 28.09.10 - when x"fe" => - if (BUS_DATA_IN = x"ffff_ffff") then - reset_fifo <= '1'; - else - reset_fifo <= '0'; - end if; - - when x"ff" => - if (BUS_DATA_IN = x"ffff_ffff") then - reset_values <= '1'; - else - reset_values <= '0'; - end if; - - when others => - subevent_id <= subevent_id; - subevent_dec <= subevent_dec; - queue_dec <= queue_dec; - max_packet <= max_packet; - min_packet <= min_packet; - max_frame <= max_frame; - use_gbe <= use_gbe; - use_trbnet <= use_trbnet; - use_multievents <= use_multievents; - reset_values <= reset_values; - readout_ctr <= readout_ctr; -- gk 26.04.10 - readout_ctr_valid <= readout_ctr_valid; -- gk 26.04.10 - delay <= delay; -- gk 28.04.10 - DBG_FIFO_RD_EN_OUT <= '0'; - allow_large <= allow_large; - reset_fifo <= reset_fifo; -- gk 28.09.10 - frame_delay <= frame_delay; - end case; - else - reset_values <= '0'; - readout_ctr_valid <= '0'; -- gk 26.04.10 - --reset_fifo <= '0'; -- gk 28.09.10 - end if; - end if; -end process WRITE_PROC; - --- gk 26.04.10 -READ_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - data_out <= (others => '0'); - elsif (BUS_READ_EN_IN = '1') then - case BUS_ADDR_IN is - - when x"00" => - data_out <= subevent_id; - - when x"01" => - data_out <= subevent_dec; - - when x"02" => - data_out <= queue_dec; - - when x"03" => - data_out <= max_packet; - - when x"04" => - data_out(15 downto 0) <= max_frame; - data_out(31 downto 16) <= (others => '0'); - - when x"05" => - if (use_gbe = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - when x"06" => - if (use_trbnet = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - when x"07" => - if (use_multievents = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - when x"08" => - data_out <= GBE_TRIG_NR_IN; - - when x"09" => - data_out <= delay; - - when x"0b" => - data_out <= min_packet; - - -- gk 21.07.10 - when x"0c" => - if (allow_large = '0') then - data_out <= x"0000_0000"; - else - data_out <= x"0000_0001"; - end if; - - -- gk 09.12.10 - when x"0d" => - data_out <= frame_delay; - - -- gk 01.06.10 - when x"e0" => - data_out <= DBG_IPU2GBE1_IN; - - when x"e1" => - data_out <= DBG_IPU2GBE2_IN; - - when x"e2" => - data_out <= DBG_PC1_IN; - - when x"e3" => - data_out <= DBG_PC2_IN; - - when x"e4" => - data_out <= DBG_FC1_IN; - - when x"e5" => - data_out <= DBG_FC2_IN; - - when x"e6" => - data_out <= DBG_FT1_IN; - - when x"e7" => - data_out <= DBG_FT2_IN; - - when x"e8" => - data_out(15 downto 0) <= DBG_FIFO_Q_IN; - data_out(31 downto 16) <= (others => '0'); - - when x"e9" => - data_out <= DBG_IPU2GBE3_IN; - - when x"ea" => - data_out <= DBG_IPU2GBE4_IN; - - when x"eb" => - data_out <= DBG_IPU2GBE5_IN; - - when x"ec" => - data_out <= DBG_IPU2GBE6_IN; - - when x"ed" => - data_out <= DBG_IPU2GBE7_IN; - - when x"ee" => - data_out <= DBG_IPU2GBE8_IN; - - when x"ef" => - data_out <= DBG_IPU2GBE9_IN; - - when x"f0" => - data_out <= DBG_IPU2GBE10_IN; - - when x"f1" => - data_out <= DBG_IPU2GBE11_IN; - - when x"f2" => - data_out <= DBG_IPU2GBE12_IN; - - when x"f3" => - data_out <= MONITOR_BYTES_IN; - - when x"f4" => - data_out <= MONITOR_SENT_IN; - - when x"f5" => - data_out <= MONITOR_DROPPED_IN; - - when x"f6" => - data_out <= MONITOR_SM_IN; - - when x"f7" => - data_out <= MONITOR_LR_IN; - - when x"f8" => - data_out <= MONITOR_HDR_IN; - - when x"f9" => - data_out <= MONITOR_FIFOS_IN; - - when x"fa" => - data_out <= MONITOR_DISCFRM_IN; - - when x"fb" => - data_out <= MONITOR_LINK_DWN_IN; - - when x"fc" => - data_out <= MONITOR_EMPTY_IN; - - when others => - data_out <= (others => '0'); - end case; - end if; - end if; -end process READ_PROC; - -end architecture; \ No newline at end of file diff --git a/gbe_ecp2m/trb_net16_ipu2gbe.vhd b/gbe_ecp2m/trb_net16_ipu2gbe.vhd deleted file mode 100755 index 4a1506f..0000000 --- a/gbe_ecp2m/trb_net16_ipu2gbe.vhd +++ /dev/null @@ -1,1435 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -use IEEE.std_logic_arith.all; - -library work; - -entity trb_net16_ipu2gbe is -port( - CLK : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- slow control interface - START_CONFIG_OUT : out std_logic; -- reconfigure MACs/IPs/ports/packet size - BANK_SELECT_OUT : out std_logic_vector(3 downto 0); -- configuration page address - CONFIG_DONE_IN : in std_logic; -- configuration finished - DATA_GBE_ENABLE_IN : in std_logic; -- IPU data is forwarded to GbE - DATA_IPU_ENABLE_IN : in std_logic; -- IPU data is forwarded to CTS / TRBnet - MULT_EVT_ENABLE_IN : in std_logic; - MAX_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- the maximum size of one HadesQueue -- gk 08.04.10 - MIN_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- gk 20.07.10 - READOUT_CTR_IN : in std_logic_vector(23 downto 0); -- gk 26.04.10 - READOUT_CTR_VALID_IN : in std_logic; -- gk 26.04.10 - -- PacketConstructor interface - ALLOW_LARGE_IN : in std_logic; -- gk 21.07.10 - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOS_OUT : out std_logic; -- gk 08.11.10 - PC_EOD_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_PADDING_OUT : out std_logic; - MONITOR_OUT : out std_logic_vector(223 downto 0); - DEBUG_OUT : out std_logic_vector(383 downto 0) -); -end entity; - -architecture trb_net16_ipu2gbe of trb_net16_ipu2gbe is - --- -- Placer Directives --- attribute HGROUP : string; --- -- for whole architecture --- attribute HGROUP of trb_net16_ipu2gbe : architecture is "GBE_ipu2gbe_group"; - -component fifo_32kx16x8_mb2 -port( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - AmEmptyThresh : in std_logic_vector(15 downto 0); - AmFullThresh : in std_logic_vector(14 downto 0); - Q : out std_logic_vector(8 downto 0); - WCNT : out std_logic_vector(15 downto 0); - RCNT : out std_logic_vector(16 downto 0); - Empty : out std_logic; - AlmostEmpty : out std_logic; - Full : out std_logic; - AlmostFull : out std_logic -); -end component; - -type saveStates is (SIDLE, SAVE_EVT_ADDR, WAIT_FOR_DATA, SAVE_DATA, ADD_SUBSUB1, ADD_SUBSUB2, ADD_SUBSUB3, ADD_SUBSUB4, TERMINATE, SCLOSE); -signal saveCurrentState, saveNextState : saveStates; -signal state : std_logic_vector(3 downto 0); -signal data_req_comb : std_logic; -signal data_req : std_logic; -- request data signal, will be used for fee_read generation -signal rst_saved_ctr_comb : std_logic; -signal rst_saved_ctr : std_logic; - -signal fee_read_comb : std_logic; -signal fee_read : std_logic; -- fee_read signal -signal saved_ctr : std_logic_vector(16 downto 0); -signal ce_saved_ctr : std_logic; - --- header data -signal cts_rnd : std_logic_vector(15 downto 0); -signal cts_rnd_saved : std_logic; -signal cts_trg : std_logic_vector(15 downto 0); -signal cts_trg_saved : std_logic; -signal cts_len : std_logic_vector(16 downto 0); -signal cts_len_saved : std_logic; - --- CTS interface -signal cts_error_pattern : std_logic_vector(31 downto 0); -signal cts_length : std_logic_vector(15 downto 0); -signal cts_readout_finished : std_logic; -signal cts_dataready : std_logic; -signal cts_data : std_logic_vector(31 downto 0); - --- Split FIFO signals -signal sf_data : std_logic_vector(15 downto 0); -signal sf_wr_en_comb : std_logic; -signal sf_wr_en : std_logic; -- write signal for FIFO -signal sf_rd_en_comb : std_logic; -signal sf_rd_en : std_logic; -- read signal for FIFO -signal sf_wcnt : std_logic_vector(15 downto 0); -signal sf_rcnt : std_logic_vector(16 downto 0); -signal sf_empty : std_logic; -signal sf_aempty : std_logic; -signal sf_full : std_logic; -signal sf_afull : std_logic; - -------------------------------------------------------------------- -type loadStates is (LIDLE, INIT, REMOVE, DECIDE, CALCA, CALCB, LOAD, PAD0, PAD1, PAD2, PAD3, LOAD_SUBSUB, CALCC, CLOSE, WAIT_PC, DROP, WAIT_TO_REMOVE, DROP_SUBSUB, PAUSE_BEFORE_DROP1, PAUSE_BEFORE_DROP2); -signal loadCurrentState, loadNextState : loadStates; -signal state2 : std_logic_vector(3 downto 0); - -signal rem_ctr : std_logic_vector(3 downto 0); -- counter for stripping / storing header data -signal rst_rem_ctr_comb : std_logic; -signal rst_rem_ctr : std_logic; -- reset the remove counter -signal rst_regs_comb : std_logic; -signal rst_regs : std_logic; -- reset storage registers -signal rem_phase_comb : std_logic; -signal rem_phase : std_logic; -- header remove phase -signal data_phase_comb : std_logic; -signal data_phase : std_logic; -- data transport phase from split fifo to PC -signal pad_phase_comb : std_logic; -signal pad_phase : std_logic; -- padding phase -signal calc_pad_comb : std_logic; -signal calc_pad : std_logic; -- check if padding bytes need to be added to PC_SUB_SIZE -signal pad_data_comb : std_logic; -signal pad_data : std_logic; -- reset PC_DATA register to known padding byte value - -signal pc_sos_comb : std_logic; -signal pc_sos : std_logic; -- start of data signal -signal pc_eod_comb : std_logic; -signal pc_eod : std_logic; -- end of data signal - -signal ce_rem_ctr_comb : std_logic; -signal ce_rem_ctr : std_logic; -- count enable for remove counter -signal remove_done_comb : std_logic; -signal remove_done : std_logic; -- end of header stripping process -signal read_done_comb : std_logic; -signal read_done : std_logic; -- end of data phase (read phase from SF) - -signal pc_data : std_logic_vector(7 downto 0); -signal pc_data_q : std_logic_vector(7 downto 0); -signal pc_trig_nr : std_logic_vector(15 downto 0); -signal pc_sub_size : std_logic_vector(17 downto 0); -signal read_size : std_logic_vector(17 downto 0); -- number of byte to be read from split fifo -signal padding_needed : std_logic; -signal pc_wr_en_comb : std_logic; -signal pc_wr_en_q : std_logic; -signal pc_wr_en_qq : std_logic; -signal pc_wr_en_qqq : std_logic; -signal pc_eod_q : std_logic; - -signal debug : std_logic_vector(383 downto 0); - --- gk -signal bank_select : std_logic_vector(3 downto 0); -signal save_addr_comb : std_logic; -signal save_addr : std_logic; -signal addr_saved_comb : std_logic; -signal addr_saved : std_logic; -signal start_config : std_logic; -signal config_done : std_logic; -signal add_sub_state : std_logic; -signal add_sub_state_comb : std_logic; -signal add_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub : std_logic; -signal load_sub_comb : std_logic; -signal load_sub_done : std_logic; -signal load_sub_done_comb : std_logic; -signal load_sub_ctr : std_logic_vector(3 downto 0); -signal load_sub_ctr_comb : std_logic; -signal actual_message_size : std_logic_vector(31 downto 0); -signal more_subevents : std_logic; -signal trig_random : std_logic_vector(7 downto 0); -signal readout_ctr : std_logic_vector(23 downto 0); -signal readout_ctr_lock : std_logic; -signal pc_trig_nr_q : std_logic_vector(31 downto 0); - --- gk 20.07.10 -signal inc_data_ctr : std_logic_vector(31 downto 0); -signal dropped_sm_events_ctr : std_logic_vector(31 downto 0); -signal dropped_lr_events_ctr : std_logic_vector(31 downto 0); -signal dropped_ctr : std_logic_vector(31 downto 0); --- gk 22.07.10 -signal headers_invalid : std_logic; -signal headers_invalid_ctr : std_logic_vector(31 downto 0); -signal cts_len_q : std_logic_vector(15 downto 0); -signal cts_trg_q : std_logic_vector(15 downto 0); -signal cts_rnd_q : std_logic_vector(15 downto 0); -signal first_run_trg : std_logic_vector(15 downto 0); -signal first_run_addr : std_logic_vector(15 downto 0); -signal first_run_lock : std_logic; -signal cts_addr : std_logic_vector(15 downto 0); -signal cts_addr_q : std_logic_vector(15 downto 0); -signal cts_addr_saved : std_logic; - --- gk 24.07.10 -signal save_eod : std_logic; -signal save_eod_comb : std_logic; - -signal load_eod : std_logic; -signal endpoint_addr : std_logic_vector(15 downto 0); -signal endp_addr_lock : std_logic; - -signal saved_events_ctr : std_logic_vector(15 downto 0); -signal loaded_events_ctr : std_logic_vector(15 downto 0); -signal constr_events_ctr : std_logic_vector(31 downto 0); -signal event_waiting : std_logic; - -signal drop_sub : std_logic; -signal drop_sub_comb : std_logic; -signal drop_event : std_logic; -signal drop_event_comb : std_logic; -signal drop_small : std_logic; -signal drop_large : std_logic; -signal drop_headers : std_logic; -signal drop_small_comb : std_logic; -signal drop_large_comb : std_logic; -signal drop_headers_comb : std_logic; -signal inc_trg_ctr : std_logic; -signal inc_trg_ctr_comb : std_logic; - -signal invalid_hsize_ctr : std_logic_vector(15 downto 0); -signal invalid_hsize_lock : std_logic; - -signal load_eod_q : std_logic; -signal read_size_q : std_logic_vector(17 downto 0); - --- gk 06.08.10 write to fifo only if gbe is enabled but keep the saving logic unblocked -signal sf_real_wr_en : std_logic; - --- gk 01.10.10 -signal found_empty_evt : std_logic; -signal found_empty_evt_comb : std_logic; -signal found_empty_evt_ctr : std_logic_vector(31 downto 0); - --- gk 06.10.10 -signal message_size : std_logic_vector(31 downto 0); - --- gk 07.12.10 -signal prev_bank_select : std_logic_vector(3 downto 0); -signal first_event : std_logic; - --- gk 29.07.11 -signal trg_type : std_logic_vector(3 downto 0); -signal prev_trg_type : std_logic_vector(3 downto 0); - -begin - -BANK_SELECT_OUT <= bank_select; -- gk 27.03.10 -START_CONFIG_OUT <= start_config; -- gk 27.03.10 -config_done <= CONFIG_DONE_IN; -- gk 29.03.10 - --- CTS interface signals -cts_error_pattern <= (others => '0'); -- FAKE - -cts_length <= x"0000"; -- length of data payload is always 0 -cts_data <= b"0001" & cts_rnd(11 downto 0) & cts_trg; -- reserved bits = '0', pack bit = '1' - -cts_readout_finished <= '1' when (saveCurrentState = SCLOSE) else '0'; - -cts_dataready <= '1' when ((saveCurrentState = SAVE_DATA) and (FEE_BUSY_IN = '0')) or (saveCurrentState = TERMINATE) - else '0'; - --- Byte swapping... done here. TAKE CARE! --- The split FIFO is in natural bus order (i.e. Motorola style, [15:0]). This means that the two bytes --- on the write side need to be swapped to appear in GbE style (i.e. Intel style) on the 8bit port. --- Please mind that PC_SUB_SIZE and PC_TRIG_NR stay in a human readable format, and need to be byteswapped --- for GbE inside the packet constructor. --- --- Long live the Endianess! - --- Sync all critical pathes -THE_SYNC_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - --sf_data <= FEE_DATA_IN; -- gk 27.03.10 moved out to the process below - sf_wr_en <= sf_wr_en_comb; - ce_rem_ctr <= ce_rem_ctr_comb; - sf_rd_en <= sf_rd_en_comb; - fee_read <= fee_read_comb; - read_done <= read_done_comb; - pc_eod_q <= pc_eod; - pc_wr_en_qqq <= pc_wr_en_qq; - pc_wr_en_qq <= pc_wr_en_q; - pc_wr_en_q <= pc_wr_en_comb; - end if; -end process THE_SYNC_PROC; - --- gk 27.03.10 data selector for sf to write the evt builder address on top of data -SF_DATA_PROC : process( CLK ) -begin - if( rising_edge(CLK) ) then - if (RESET = '1') then -- gk 31.05.10 - sf_data <= (others => '0'); - elsif( save_addr = '1' ) then - -- gk 29.07.11 added to this data word the trigger type in order to close multi events - sf_data(3 downto 0) <= CTS_INFORMATION_IN(3 downto 0); -- only last 4 bits are the evt builder address - sf_data(11 downto 4) <= x"bc"; - sf_data(15 downto 12) <= CTS_READOUT_TYPE_IN; - -- gk 29.03.10 four entries to save the fee_status into sf for the subsubevent - elsif( (add_sub_state = '1') and (add_sub_ctr = x"0") ) then - sf_data <= x"0001"; -- gk 11.06.10 - elsif( (add_sub_state = '1') and (add_sub_ctr = x"1") ) then - sf_data <= x"5555"; -- gk 11.06.10 - elsif( (add_sub_state = '1') and (add_sub_ctr = x"2") ) then - sf_data <= FEE_STATUS_BITS_IN(31 downto 16); - elsif( (add_sub_state = '1') and (add_sub_ctr = x"3") ) then - sf_data <= FEE_STATUS_BITS_IN(15 downto 0); - else - sf_data <= FEE_DATA_IN; - end if; - end if; -end process SF_DATA_PROC; - --- combinatorial read signal for the FEE data interface, DO NOT USE DIRECTLY -fee_read_comb <= '1' when ( (sf_afull = '0') and (data_req = '1') ) --and (DATA_GBE_ENABLE_IN = '1') ) -- GbE enabled - else '0'; - --- combinatorial write signal for the split FIFO, DO NOT USE DIRECTLY -sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') ) or -- and (DATA_GBE_ENABLE_IN = '1') ) or -- GbE enabled - (save_addr = '1') or - (add_sub_state = '1') -- gk 29.03.10 save the subsubevent - else '0'; - --- gk 06.08.10 -sf_real_wr_en <= '1' when ((sf_wr_en = '1') and (DATA_GBE_ENABLE_IN = '1')) else '0'; - --- gk 27.03.10 do not count evt builder address as saved ipu bytes ---ce_saved_ctr <= sf_wr_en; -ce_saved_ctr <= '0' when addr_saved = '1' else sf_wr_en; - --- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO -saveMachineProc: process( CLK ) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saveCurrentState <= SIDLE; - data_req <= '0'; - rst_saved_ctr <= '0'; - save_addr <= '0'; -- gk 27.03.10 - addr_saved <= '0'; -- gk 27.03.10 - add_sub_state <= '0'; -- gk 29.03.10 - save_eod <= '0'; -- gk 25.07.10 - else - saveCurrentState <= saveNextState; - data_req <= data_req_comb; - rst_saved_ctr <= rst_saved_ctr_comb; - save_addr <= save_addr_comb; -- gk 27.03.10 - addr_saved <= addr_saved_comb; -- gk 27.03.10 - add_sub_state <= add_sub_state_comb; -- gk 29.03.10 - save_eod <= save_eod_comb; -- gk 25.07.10 - end if; - end if; -end process saveMachineProc; - -saveMachine: process( saveCurrentState, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN) -begin - saveNextState <= SIDLE; - data_req_comb <= '0'; - rst_saved_ctr_comb <= '0'; - save_addr_comb <= '0'; -- gk 27.03.10 - addr_saved_comb <= '0'; -- gk 27.03.10 - add_sub_state_comb <= '0'; -- gk 29.03.10 - save_eod_comb <= '0'; -- gk 25.07.10 - case saveCurrentState is - when SIDLE => - state <= x"0"; - if (CTS_START_READOUT_IN = '1') then - saveNextState <= SAVE_EVT_ADDR; --WAIT_FOR_DATA; -- gk 27.03.10 - data_req_comb <= '1'; - rst_saved_ctr_comb <= '1'; - else - saveNextState <= SIDLE; - end if; - -- gk 27.03.10 - when SAVE_EVT_ADDR => - state <= x"5"; - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - save_addr_comb <= '1'; - when WAIT_FOR_DATA => - state <= x"1"; - if (FEE_BUSY_IN = '1') then - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - else - saveNextState <= WAIT_FOR_DATA; - data_req_comb <= '1'; - end if; - addr_saved_comb <= '1'; -- gk 27.03.10 - when SAVE_DATA => - state <= x"2"; - if (FEE_BUSY_IN = '0') then - saveNextState <= TERMINATE; - else - saveNextState <= SAVE_DATA; - data_req_comb <= '1'; - end if; - when TERMINATE => - state <= x"3"; - if (CTS_READ_IN = '1') then - saveNextState <= SCLOSE; - else - saveNextState <= TERMINATE; - end if; - when SCLOSE => - state <= x"4"; - if (CTS_START_READOUT_IN = '0') then - saveNextState <= ADD_SUBSUB1; --SIDLE; -- gk 29.03.10 - else - saveNextState <= SCLOSE; - end if; - -- gk 29.03.10 new states during which the subsub bytes are saved - when ADD_SUBSUB1 => - state <= x"6"; - saveNextState <= ADD_SUBSUB2; - add_sub_state_comb <= '1'; - when ADD_SUBSUB2 => - state<= x"7"; - saveNextState <= ADD_SUBSUB3; - add_sub_state_comb <= '1'; - save_eod_comb <= '1'; - when ADD_SUBSUB3 => - state<= x"8"; - saveNextState <= ADD_SUBSUB4; - add_sub_state_comb <= '1'; - when ADD_SUBSUB4 => - state<= x"9"; - saveNextState <= SIDLE; - add_sub_state_comb <= '1'; - when others => - state <= x"f"; - saveNextState <= SIDLE; - end case; -end process saveMachine; - --- gk 29.03.10 -ADD_SUB_CTR_PROC : process( CLK ) -begin - if( rising_edge( CLK ) ) then - if( (RESET = '1') or (rst_saved_ctr = '1') ) then - add_sub_ctr <= (others => '0'); - elsif( add_sub_state = '1' ) then - add_sub_ctr <= add_sub_ctr + 1; - end if; - end if; -end process ADD_SUB_CTR_PROC; - ---******** --- SAVE INCOMING EVENT HEADERS ---******** - --- Counter for header word storage -THE_CTS_SAVED_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - saved_ctr <= (others => '0'); - elsif( ce_saved_ctr = '1' ) then - saved_ctr <= saved_ctr + 1; - end if; - end if; -end process THE_CTS_SAVED_CTR; - --- save triggerRnd from incoming data for cts response -CTS_RND_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_rnd <= (others => '0'); - cts_rnd_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"000") and (sf_wr_en = '1') and (cts_rnd_saved = '0') ) then - cts_rnd <= sf_data; - cts_rnd_saved <= '1'; - end if; - end if; -end process CTS_RND_PROC; - --- save triggerNr from incoming data for cts response -CTS_TRG_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_trg <= (others => '0'); - cts_trg_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"001") and (sf_wr_en = '1') and (cts_trg_saved = '0') ) then - cts_trg <= sf_data; - cts_trg_saved <= '1'; - end if; - end if; -end process CTS_TRG_PROC; - --- save size from incoming data for cts response (future) and to get rid of padding -CTS_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_len <= (others => '0'); - cts_len_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"010") and (sf_wr_en = '1') and (cts_len_saved = '0') ) then - cts_len(16 downto 1) <= sf_data; -- change from 32b words to 16b words - cts_len(0) <= '0'; - elsif( (saved_ctr(2 downto 0) = b"011") and (cts_len_saved = '0') ) then - cts_len <= cts_len + x"4"; - cts_len_saved <= '1'; - end if; - end if; -end process CTS_SIZE_PROC; - --- gk 22.07.10 -CTS_ADDR_PROC : process(CLK) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_saved_ctr = '1') ) then - cts_addr <= (others => '0'); - cts_addr_saved <= '0'; - elsif( (saved_ctr(2 downto 0) = b"011") and (sf_wr_en = '1') and (cts_addr_saved = '0') ) then - cts_addr <= sf_data; - cts_addr_saved <= '1'; - end if; - end if; -end process CTS_ADDR_PROC; - ---****** --- SAVE FIRST EVENT HEADER VALUES ---****** - --- gk 22.07.10 -FIRST_RUN_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - first_run_trg <= (others => '0'); - first_run_addr <= (others => '0'); - first_run_lock <= '0'; - elsif (first_run_lock = '0') and (cts_addr_saved = '1') then - first_run_trg <= cts_trg; - first_run_addr <= cts_addr; - first_run_lock <= '1'; - -- important: value saved by saveMachine but incremented by loadMachine - elsif (first_run_lock = '1') and (inc_trg_ctr = '1') then - first_run_trg <= first_run_trg + x"1"; - end if; - end if; -end process FIRST_RUN_PROC; - --- gk 25.07.10 -SAVED_EVT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - saved_events_ctr <= (others => '0'); - elsif (save_eod = '1') then - saved_events_ctr <= saved_events_ctr + x"1"; - end if; - end if; -end process SAVED_EVT_CTR_PROC; - - --- gk 20.07.10 -INC_DATA_CTR_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (rst_saved_ctr = '1') then - inc_data_ctr <= (others => '0'); - elsif (sf_wr_en = '1') and (data_req = '1') then - inc_data_ctr(31 downto 1) <= inc_data_ctr(31 downto 1) + x"1"; - end if; - end if; -end process INC_DATA_CTR_proc; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Split FIFO -THE_SPLIT_FIFO: fifo_32kx16x8_mb2 -port map( - -- Byte swapping for correct byte order on readout side of FIFO - Data(7 downto 0) => sf_data(15 downto 8), - Data(8) => '0', - Data(16 downto 9) => sf_data(7 downto 0), - Data(17) => save_eod, - WrClock => CLK, - RdClock => CLK, - WrEn => sf_real_wr_en, -- gk 06.08.10 --sf_wr_en, - RdEn => sf_rd_en, - Reset => RESET, - RPReset => RESET, - AmEmptyThresh => b"0000_0000_0000_0010", -- one byte ahead - AmFullThresh => b"111_1111_1110_1111", -- 0x7fef = 32751 - Q(7 downto 0) => pc_data, - Q(8) => load_eod, - WCNT => sf_wcnt, - RCNT => sf_rcnt, - Empty => sf_empty, - AlmostEmpty => sf_aempty, - Full => sf_full, - AlmostFull => sf_afull -); - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- gk 25.07.10 -EVENT_WAITING_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - event_waiting <= '0'; - elsif (loaded_events_ctr /= saved_events_ctr) then - event_waiting <= '1'; - else - event_waiting <= '0'; - end if; - end if; -end process EVENT_WAITING_PROC; - --- write signal for PC data -pc_wr_en_comb <= '1' when ((data_phase = '1') and (sf_rd_en = '1')) or - (pad_phase = '1') or - ((load_sub = '1') and (sf_rd_en = '1')) or - ((drop_sub = '1') and (sf_rd_en = '1')) or - ((drop_event = '1') and (sf_rd_en = '1')) - else '0'; - -sf_rd_en_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and (remove_done = '0') ) or - --( (sf_aempty = '0') and (data_phase = '1') and (read_done = '0') ) or - ( (sf_aempty = '0') and (data_phase = '1') and (load_eod = '0') ) or -- gk 26.07.10 - ( (sf_aempty = '0') and (load_sub = '1') and (load_sub_done = '0') ) or -- gk 30.03.10 - ( (sf_aempty = '0') and (drop_event = '1') and (load_eod = '0') ) or - ( (sf_aempty = '0') and (drop_sub = '1') and (load_sub_done = '0') ) - else '0'; - -ce_rem_ctr_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and ( remove_done = '0') ) - else '0'; - --- FIFO data delay process (also forces padding bytes to known value) -THE_DATA_DELAY_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if( pad_data = '1' ) then - pc_data_q <= x"aa"; -- padding for 64bit - -- gk 21.07.10 - -- set the error flag if a broken packet is sent - elsif (drop_sub = '1') and (load_sub_ctr = x"3") then - pc_data_q <= pc_data(7 downto 3) & '1' & pc_data(1 downto 0); - else - pc_data_q <= pc_data; - end if; - end if; -end process THE_DATA_DELAY_PROC; - --- Statemachine for reading the data payload from the SPLIT_FIFO and feeding --- it into the packet constructor -loadMachineProc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loadCurrentState <= LIDLE; - rst_rem_ctr <= '0'; - rem_phase <= '0'; - calc_pad <= '0'; - data_phase <= '0'; - pad_phase <= '0'; - pc_sos <= '0'; - pc_eod <= '0'; - rst_regs <= '0'; - pad_data <= '0'; - load_sub <= '0'; -- gk 30.03.10 - drop_sub <= '0'; -- gk 25.07.10 - drop_event <= '0'; -- gk 25.07.10 - drop_small <= '0'; -- gk 25.07.10 - drop_large <= '0'; -- gk 25.07.10 - drop_headers <= '0'; -- gk 25.07.10 - inc_trg_ctr <= '0'; -- gk 26.07.10 - found_empty_evt <= '0'; -- gk 01.10.10 - else - loadCurrentState <= loadNextState; - rst_rem_ctr <= rst_rem_ctr_comb; - rem_phase <= rem_phase_comb; - calc_pad <= calc_pad_comb; - data_phase <= data_phase_comb; - pad_phase <= pad_phase_comb; - pc_sos <= pc_sos_comb; - pc_eod <= pc_eod_comb; - rst_regs <= rst_regs_comb; - pad_data <= pad_data_comb; - load_sub <= load_sub_comb; -- gk 30.03.1 - drop_sub <= drop_sub_comb; -- gk 25.07.10 - drop_event <= drop_event_comb; -- gk 25.07.10 - drop_small <= drop_small_comb; -- gk 25.07.10 - drop_large <= drop_large_comb; -- gk 25.07.10 - drop_headers <= drop_headers_comb; -- gk 25.07.10 - inc_trg_ctr <= inc_trg_ctr_comb; -- gk 26.07.10 - found_empty_evt <= found_empty_evt_comb; -- gk 01.10.10 - end if; - end if; -end process loadMachineProc; - -loadMachine : process( loadCurrentState, sf_aempty, remove_done, read_done, padding_needed, PC_READY_IN, load_sub_done, pc_sub_size, MIN_MESSAGE_SIZE_IN, MAX_MESSAGE_SIZE_IN, pc_trig_nr, first_run_trg, endpoint_addr, first_run_addr, load_eod, event_waiting, bank_select, prev_bank_select) -begin - loadNextState <= LIDLE; - rst_rem_ctr_comb <= '0'; - rem_phase_comb <= '0'; - calc_pad_comb <= '0'; - data_phase_comb <= '0'; - pad_phase_comb <= '0'; - pc_sos_comb <= '0'; - pc_eod_comb <= '0'; - rst_regs_comb <= '0'; - pad_data_comb <= '0'; - load_sub_comb <= '0'; -- gk 30.03.10 - drop_sub_comb <= '0'; -- gk 25.07.10 - drop_event_comb <= '0'; -- gk 25.07.10 - drop_small_comb <= '0'; -- gk 25.07.10 - drop_large_comb <= '0'; -- gk 25.07.10 - drop_headers_comb <= '0'; -- gk 25.07.10 - inc_trg_ctr_comb <= '0'; -- gk 26.07.10 - found_empty_evt_comb <= '0'; -- gk 01.10.10 - case loadCurrentState is - when LIDLE => - state2 <= x"0"; - -- gk 23.07.10 - --if( (sf_aempty = '0') and (PC_READY_IN = '1') and (event_waiting = '1') and (DATA_GBE_ENABLE_IN = '1') ) then -- gk 06.08.10 - -- gk 04.12.10 - if( (sf_aempty = '0') and (event_waiting = '1') and (DATA_GBE_ENABLE_IN = '1') ) then - loadNextState <= INIT; - rst_rem_ctr_comb <= '1'; - rst_regs_comb <= '1'; - else - loadNextState <= LIDLE; - end if; - when INIT => - state2 <= x"1"; - loadNextState <= REMOVE; - rem_phase_comb <= '1'; --- when REMOVE => --- state2 <= x"2"; --- if( remove_done = '1' ) then --- loadNextState <= WAIT_TO_REMOVE; --- inc_trg_ctr_comb <= '1'; --- else --- loadNextState <= REMOVE; --- rem_phase_comb <= '1'; --- end if; - -- gk 03.12.10 - when REMOVE => - state2 <= x"2"; - if( remove_done = '1' ) then - -- gk 06.10.10 - if (MULT_EVT_ENABLE_IN = '1') then - if (message_size + pc_sub_size < MAX_MESSAGE_SIZE_IN) then - -- gk 07.12.10 - if (first_event = '0') and (prev_bank_select /= bank_select) then -- check if event builder address changed, if so close the current packet - loadNextState <= WAIT_PC; - -- gk 29.07.11 - elsif (first_event = '0') and (prev_trg_type /= trg_type) then -- check if the trigger type has changed, if so close the current packet - loadNextState <= WAIT_PC; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - else - loadNextState <= WAIT_PC; - end if; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - inc_trg_ctr_comb <= '1'; - else - loadNextState <= REMOVE; - rem_phase_comb <= '1'; - end if; - - when WAIT_TO_REMOVE => - if (rem_ctr = x"a") then - loadNextState <= DECIDE; - else - loadNextState <= WAIT_TO_REMOVE; - end if; - when DECIDE => - if (pc_sub_size >= MAX_MESSAGE_SIZE_IN) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_large_comb <= '1'; - elsif (pc_sub_size = b"0000_0000_0000_00") then -- gk 01.10.10 - loadNextState <= CALCA; - found_empty_evt_comb <= '1'; - elsif (pc_sub_size < MIN_MESSAGE_SIZE_IN) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_small_comb <= '1'; - elsif (pc_trig_nr + x"1" /= first_run_trg) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_headers_comb <= '1'; - elsif (endpoint_addr /= first_run_addr) then - loadNextState <= PAUSE_BEFORE_DROP1; - drop_headers_comb <= '1'; - else - loadNextState <= CALCA; - end if; - calc_pad_comb <= '1'; - when CALCA => - state2 <= x"3"; - loadNextState <= CALCB; - pc_sos_comb <= '1'; - when CALCB => - -- we need a branch in case of length "0"!!!! - state2 <= x"4"; - loadNextState <= LOAD; - data_phase_comb <= '1'; - when LOAD => - state2 <= x"5"; - -- gk 31.03.10 after loading subevent data read the subsubevent from sf - if (load_eod = '1') then - loadNextState <= LOAD_SUBSUB; - else - loadNextState <= LOAD; - data_phase_comb <= '1'; - end if; - -- gk 31.03.10 - when LOAD_SUBSUB => - state2 <= x"d"; - if( load_sub_done = '1' ) then - if( padding_needed = '0' ) then - loadNextState <= CALCC; - else - loadNextState <= PAD0; - pad_phase_comb <= '1'; - end if; - else - loadNextState <= LOAD_SUBSUB; - load_sub_comb <= '1'; - end if; - when PAD0 => - state2 <= x"6"; - loadNextState <= PAD1; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD1 => - state2 <= x"7"; - loadNextState <= PAD2; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD2 => - state2 <= x"8"; - loadNextState <= PAD3; - pad_phase_comb <= '1'; - pad_data_comb <= '1'; - when PAD3 => - state2 <= x"9"; - loadNextState <= CALCC; - pad_data_comb <= '1'; --- when CALCC => --- state2 <= x"a"; --- loadNextState <= CLOSE; --- pc_eod_comb <= '1'; - -- gk 04.12.10 - when CALCC => - state2 <= x"a"; - if (MULT_EVT_ENABLE_IN = '1') then - loadNextState <= LIDLE; - else - loadNextState <= CLOSE; - end if; - pc_eod_comb <= '1'; - when CLOSE => - state2 <= x"b"; - loadNextState <= WAIT_PC; - rst_regs_comb <= '1'; --- when WAIT_PC => --- state2 <= x"c"; --- if( PC_READY_IN = '1' ) then --- loadNextState <= LIDLE; --- else --- loadNextState <= WAIT_PC; --- end if; - -- gk 03.12.10 - when WAIT_PC => - state2 <= x"c"; - if( PC_READY_IN = '1' ) then - -- gk 06.10.10 - if (MULT_EVT_ENABLE_IN = '1') then - loadNextState <= WAIT_TO_REMOVE; - else - loadNextState <= LIDLE; - end if; - else - loadNextState <= WAIT_PC; - end if; - when PAUSE_BEFORE_DROP1 => - loadNextState <= PAUSE_BEFORE_DROP2; - pc_sos_comb <= '1'; - when PAUSE_BEFORE_DROP2 => - loadNextState <= DROP; - drop_event_comb <= '1'; - -- gk 23.07.10 - when DROP => - state2 <= x"e"; - -- when data is dropped the eod marker stands as its end - if (load_eod = '1') then - loadNextState <= DROP_SUBSUB; - else - loadNextState <= DROP; - drop_event_comb <= '1'; - end if; - -- gk 25.07.10 - when DROP_SUBSUB => - if (load_sub_done = '1') then - if( padding_needed = '0' ) then - loadNextState <= CALCC; - else - loadNextState <= PAD0; - pad_phase_comb <= '1'; - end if; - else - loadNextState <= DROP_SUBSUB; - drop_sub_comb <= '1'; - end if; - when others => - state2 <= x"f"; - loadNextState <= LIDLE; - end case; -end process loadMachine; - --- gk 07.10.10 -PC_EOS_OUT <= '1' when (MULT_EVT_ENABLE_IN = '1') and (pc_eod = '1') else '0'; - --- gk 25.07.10 -INVALID_STATS_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - dropped_lr_events_ctr <= (others => '0'); - dropped_sm_events_ctr <= (others => '0'); - headers_invalid_ctr <= (others => '0'); - dropped_ctr <= (others => '0'); - invalid_hsize_ctr <= (others => '0'); - found_empty_evt_ctr <= (others => '0'); -- gk 01.10.10 - elsif (rst_regs = '1') then - invalid_hsize_lock <= '0'; - elsif (drop_small = '1') then - dropped_sm_events_ctr <= dropped_sm_events_ctr + x"1"; - dropped_ctr <= dropped_ctr + x"1"; - elsif (drop_large = '1') then - dropped_lr_events_ctr <= dropped_lr_events_ctr + x"1"; - dropped_ctr <= dropped_ctr + x"1"; - elsif (drop_headers = '1') then - headers_invalid_ctr <= headers_invalid_ctr + x"1"; - dropped_ctr <= dropped_ctr + x"1"; - elsif (load_eod_q = '1') and (read_size_q /= x"3fffe") and (invalid_hsize_lock = '0') then -- ?? - invalid_hsize_ctr <= invalid_hsize_ctr + x"1"; - invalid_hsize_lock <= '1'; - -- gk 01.10.10 - elsif (found_empty_evt = '1') then - found_empty_evt_ctr <= found_empty_evt_ctr + x"1"; - end if; - end if; -end process INVALID_STATS_PROC; - --- gk 05.08.10 -INVALID_H_PROC : process(CLK) -begin - if rising_edge(CLK) then - load_eod_q <= load_eod; - read_size_q <= read_size; - end if; -end process INVALID_H_PROC; - --- gk 26.04.10 -READOUT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (READOUT_CTR_VALID_IN = '1')) then - readout_ctr <= READOUT_CTR_IN; - readout_ctr_lock <= '0'; - elsif (pc_sos = '1') then - readout_ctr <= readout_ctr + x"1"; - end if; - end if; -end process READOUT_CTR_PROC; - ---****** --- SELECTION OF EVENT BUILDER ---****** - --- gk 29.07.11 added trigger type --- gk 27.03.10 -bank_select_proc : process( CLK ) -begin - if rising_edge( CLK ) then - -- gk 29.03.10 - if ((RESET = '1') or (rst_regs = '1')) then - bank_select <= "0000"; - trg_type <= "0000"; - -- gk 01.06.10 THERE WAS A BUG, IT SHOUDL BE TAKEN FROM SF_Q - elsif ((sf_rd_en = '1') and (rem_ctr = x"2")) then - bank_select <= pc_data(3 downto 0); --CTS_INFORMATION_IN(3 downto 0); - elsif ((sf_rd_en = '1') and (rem_ctr = x"1")) then - trg_type <= pc_data(7 downto 4); - end if; - end if; -end process bank_select_proc; - --- gk 07.12.10 -first_event_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (loadCurrentState = WAIT_PC) then - first_event <= '1'; - elsif (remove_done = '1') then - first_event <= '0'; - end if; - end if; -end process first_event_proc; - --- gk 29.07.11 added trigger type --- gk 07.12.10 -prev_bank_proc : process(CLK) -begin - if (RESET = '1') or (loadCurrentState = WAIT_PC) then - prev_bank_select <= "0000"; - prev_trg_type <= "0000"; - elsif ((sf_rd_en = '1') and (rem_ctr = x"3") and (first_event = '1')) then - prev_bank_select <= bank_select; - prev_trg_type <= trg_type; - end if; -end process prev_bank_proc; - --- gk 29.03.10 -start_config_proc : process( CLK ) -begin - if rising_edge( CLK ) then - if ((RESET = '1') or (config_done = '1') or (rst_regs = '1')) then - start_config <= '0'; - elsif ((sf_rd_en = '1') and (rem_ctr = x"2") and (first_event = '1')) then -- gk 01.06.10 - start_config <= '1'; - end if; - end if; -end process start_config_proc; - - ---****** --- LOAD SUBSUBEVENT ---****** - --- gk 30.03.10 -load_sub_ctr_comb <= '1' when ( ((load_sub = '1') or (drop_sub = '1')) and (load_sub_done = '0') and (sf_aempty = '0') ) - else '0'; - --- gk 30.03.10 -LOAD_SUB_CTR_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 - load_sub_ctr <= (others => '0'); - elsif( (load_sub_ctr_comb = '1') ) then - load_sub_ctr <= load_sub_ctr + 1; - end if; - end if; -end process LOAD_SUB_CTR_PROC; - --- gk 30.03.10 --- load_sub_done_comb <= '1' when ((load_sub_ctr = x"7") and (drop_sub = '0')) or --- ((load_sub_ctr = x"4") and (drop_sub = '1')) --- else '0'; -load_sub_done_comb <= '1' when (load_sub_ctr = x"4") else '0'; - --- gk 30.03.10 -LOAD_SUB_DONE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then -- gk 08.04.10 - load_sub_done <= '0'; - else - load_sub_done <= load_sub_done_comb; - end if; - end if; -end process LOAD_SUB_DONE_PROC; - ---****** --- EXTRACT EVENT HEADERS FROM SPLITFIFO ---****** - --- Counter for stripping the unneeded parts of the data stream, and saving the important parts -THE_REMOVE_CTR: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - rem_ctr <= (others => '0'); - elsif( (ce_rem_ctr = '1') ) then - rem_ctr <= rem_ctr + 1; - end if; - end if; -end process THE_REMOVE_CTR; - -remove_done_comb <= '1' when ( rem_ctr = x"8" ) else '0'; --( rem_ctr = x"6" ) else '0'; -- gk 29.03.10 two more for evt builder address - -THE_REM_DONE_SYNC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_rem_ctr = '1') ) then - remove_done <= '0'; - else - remove_done <= remove_done_comb; - end if; - end if; -end process THE_REM_DONE_SYNC; - --- gk 26.04.10 -TRIG_RANDOM_PROC : process(CLK) -begin - if rising_edge(CLK) then - if ((RESET = '1') or (rst_regs = '1')) then - trig_random <= (others => '0'); - elsif ((sf_rd_en = '1') and (rem_ctr = x"4")) then - trig_random <= pc_data; - end if; - end if; -end process TRIG_RANDOM_PROC; - --- extract the trigger number from splitfifo data -THE_TRG_NR_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_trig_nr <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"6") ) then -- x"4" gk 29.03.10 - pc_trig_nr(7 downto 0) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"5") ) then -- x"3" gk 29.03.10 - pc_trig_nr(15 downto 8) <= pc_data; - end if; - end if; -end process THE_TRG_NR_PROC; - --- extract the subevent size from the splitfifo data, convert it from 32b to 8b units, --- and in case of padding needed increase it accordingly -THE_SUB_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then - pc_sub_size <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 - pc_sub_size(9 downto 2) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 - pc_sub_size(17 downto 10) <= pc_data; - -- gk 20.07.10 - -- gk 30.03.10 bug fixed in the way that is written below - -- gk 27.03.10 should be corrected by sending padding_needed signal to pc and take care of it when setting sub_size_to_save - elsif( (calc_pad = '1') and (padding_needed = '1') ) then - pc_sub_size <= pc_sub_size + x"4" + x"8"; -- BUG: SubEvtSize does NOT include 64bit padding!!! - elsif( (calc_pad = '1') and (padding_needed = '0') ) then - pc_sub_size <= pc_sub_size + x"8"; - end if; - end if; -end process THE_SUB_SIZE_PROC; - --- gk 06.10.10 -MESSAGE_SIZE_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - message_size <= x"0000_0028"; - elsif ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) then - message_size <= x"0000_0028"; - elsif ((MULT_EVT_ENABLE_IN = '1') and (prev_bank_select /= bank_select) and (remove_done = '1')) then - message_size <= x"0000_0028"; - elsif (pc_sos = '1') then - message_size <= message_size + pc_sub_size + x"10"; -- gk 06.12.10 add 16B for subevent headers - end if; - end if; -end process MESSAGE_SIZE_PROC; - --- gk 25.07.10 -ENDP_ADDRESS_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (rst_regs = '1') then - endpoint_addr <= (others => '0'); - endp_addr_lock <= '0'; - elsif( (rem_ctr = x"a") and (endp_addr_lock = '0') ) then - endpoint_addr(7 downto 0) <= pc_data; - endp_addr_lock <= '1'; - elsif( (sf_rd_en = '1') and (rem_ctr = x"9") ) then - endpoint_addr(15 downto 8) <= pc_data; - endp_addr_lock <= '0'; - end if; - end if; -end process ENDP_ADDRESS_PROC; - - - --- check for padding -THE_PADDING_NEEDED_PROC: process( CLK ) -begin - if rising_edge(CLK) then - if ( (RESET = '1') or (rst_regs = '1') ) then - padding_needed <= '0'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '1') ) then - padding_needed <= '1'; - elsif( (remove_done = '1') and (pc_sub_size(2) = '0') ) then - padding_needed <= '0'; - end if; - end if; -end process THE_PADDING_NEEDED_PROC; - --- number of bytes to read from split fifo -THE_READ_SIZE_PROC: process( CLK ) -begin - if( rising_edge(CLK) ) then - if ( (RESET = '1') or (rst_regs = '1') ) then --(rst_rem_ctr = '1') ) then - read_size <= (others => '0'); - elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then -- x"6" gk 29.03.10 - read_size(9 downto 2) <= pc_data; - elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then -- x"5" gk 29.03.10 - read_size(17 downto 10) <= pc_data; - elsif( ((sf_rd_en = '1') and (data_phase = '1')) ) then - read_size <= read_size - 1; - -- gk 25.07.10 - elsif( ((sf_rd_en = '1') and (drop_event = '1')) ) then - read_size <= read_size - 1; - end if; - end if; -end process THE_READ_SIZE_PROC; - -read_done_comb <= '1' when (read_size < 3 ) else '0'; -- "2" - ---****** --- EVENTS COUNTERS ---****** - --- gk 25.07.10 -LOADED_EVT_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - loaded_events_ctr <= (others => '0'); - elsif (remove_done = '1') then - loaded_events_ctr <= loaded_events_ctr + x"1"; - end if; - end if; -end process LOADED_EVT_CTR_PROC; - --- gk 25.07.10 -CONSTR_EVENTS_CTR_PROC : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - constr_events_ctr <= (others => '0'); - elsif (pc_eod = '1') then - constr_events_ctr <= constr_events_ctr + x"1"; - end if; - end if; -end process CONSTR_EVENTS_CTR_PROC; - ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- - --- Debug signals -debug(0) <= sf_full; -debug(1) <= sf_empty; -debug(2) <= sf_afull; -debug(3) <= sf_aempty; - -debug(7 downto 4) <= state2; - -debug(11 downto 8) <= state; - -dbg_bs_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - debug(15 downto 12) <= (others => '0'); - elsif ((sf_rd_en = '1') and (rem_ctr = x"3")) then - debug(15 downto 12) <= bank_select; - end if; - end if; -end process dbg_bs_proc; - -debug(16) <= config_done; -debug(17) <= '0'; --remove_done; -debug(18) <= read_done; -debug(19) <= padding_needed; - -debug(20) <= load_sub_done; - -dbg_cts_inf_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - debug(39 downto 32) <= (others => '0'); - elsif ( save_addr = '1' ) then - debug(39 downto 32) <= CTS_INFORMATION_IN; - end if; - end if; -end process dbg_cts_inf_proc; - -debug(47 downto 40) <= (others => '0'); - - -debug(63 downto 48) <= actual_message_size(15 downto 0); - -dbg_pc_sub_size_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - debug(81 downto 64) <= (others => '0'); - elsif (loadCurrentState = DECIDE) then - debug(81 downto 64) <= pc_sub_size; - end if; - end if; -end process dbg_pc_sub_size_proc; - -dbg_empty_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') or (rst_regs = '1') then - debug(84 downto 82) <= (others => '0'); - elsif (read_size = 2) then - debug(82) <= sf_empty; - elsif (read_size = 1) then - debug(83) <= sf_empty; - elsif (read_size = 0) then - debug(84) <= sf_empty; - end if; - end if; -end process dbg_empty_proc; - -debug(95 downto 85) <= (others => '0'); - -dbg_inc_ctr_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - debug(127 downto 96) <= (others => '1'); - elsif (saveCurrentState = SCLOSE) then - debug(127 downto 96) <= inc_data_ctr; - end if; - end if; -end process dbg_inc_ctr_proc; - -debug(143 downto 128) <= dropped_sm_events_ctr(15 downto 0); -debug(159 downto 144) <= dropped_lr_events_ctr(15 downto 0); - -debug(175 downto 160) <= headers_invalid_ctr(15 downto 0); -debug(191 downto 176) <= (others => '0'); - -dbg_cts_q_proc : process(CLK) -begin - if rising_edge(CLK) then - if (RESET = '1') then - cts_len_q <= (others => '0'); - cts_rnd_q <= (others => '0'); - cts_trg_q <= (others => '0'); - cts_addr_q <= (others => '0'); - elsif (cts_len_saved = '1') then - cts_len_q <= cts_len(16 downto 1); - cts_addr_q <= cts_addr; - cts_rnd_q <= cts_rnd; - cts_trg_q <= cts_trg; - end if; - end if; -end process dbg_cts_q_proc; - -debug(207 downto 192) <= cts_trg_q; -debug(223 downto 208) <= cts_rnd_q; -debug(239 downto 224) <= cts_addr_q; -debug(255 downto 240) <= cts_len_q; -debug(271 downto 256) <= first_run_trg; -debug(287 downto 272) <= first_run_addr; - -debug(303 downto 288) <= saved_events_ctr; -debug(319 downto 304) <= loaded_events_ctr; - -debug(335 downto 320) <= constr_events_ctr(15 downto 0); -debug(351 downto 336) <= dropped_ctr(15 downto 0); - -debug(367 downto 352) <= invalid_hsize_ctr; -debug(383 downto 368) <= (others => '0'); - -MONITOR_OUT(31 downto 0) <= constr_events_ctr; -MONITOR_OUT(63 downto 32) <= dropped_ctr; -MONITOR_OUT(95 downto 64) <= headers_invalid_ctr; -MONITOR_OUT(127 downto 96) <= dropped_sm_events_ctr; -MONITOR_OUT(159 downto 128) <= dropped_lr_events_ctr; -MONITOR_OUT(163 downto 160) <= b"1111" when (sf_afull = '1') else b"0000"; -MONITOR_OUT(191 downto 164) <= (others => '0'); -MONITOR_OUT(223 downto 192) <= found_empty_evt_ctr; -- gk 01.10.10 - --- Outputs -FEE_READ_OUT <= fee_read; -CTS_ERROR_PATTERN_OUT <= cts_error_pattern; -CTS_DATA_OUT <= cts_data; -CTS_DATAREADY_OUT <= cts_dataready; -CTS_READOUT_FINISHED_OUT <= cts_readout_finished; -CTS_LENGTH_OUT <= cts_length; - -PC_SOS_OUT <= pc_sos; ---PC_EOD_OUT <= pc_eod; -- gk 26.07.10 --pc_eod_q; -PC_EOD_OUT <= '1' when ((MULT_EVT_ENABLE_IN = '0') and (pc_eod = '1')) - or ((MULT_EVT_ENABLE_IN = '1') and (message_size + pc_sub_size >= MAX_MESSAGE_SIZE_IN) and (remove_done = '1')) - -- gk 07.12.10 - or ((MULT_EVT_ENABLE_IN = '1') and (prev_bank_select /= bank_select) and (remove_done = '1')) - else '0'; -- gk 07.10.10 -PC_DATA_OUT <= pc_data_q; -PC_WR_EN_OUT <= pc_wr_en_qq; - -PC_TRIG_NR_OUT <= readout_ctr(23 downto 16) & pc_trig_nr & trig_random; - -PC_SUB_SIZE_OUT <= b"0000_0000_0000_00" & pc_sub_size; -PC_PADDING_OUT <= padding_needed; - -DEBUG_OUT <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe_ecp2m/trb_net16_lsm_sfp_gbe.vhd b/gbe_ecp2m/trb_net16_lsm_sfp_gbe.vhd deleted file mode 100755 index 7624a16..0000000 --- a/gbe_ecp2m/trb_net16_lsm_sfp_gbe.vhd +++ /dev/null @@ -1,236 +0,0 @@ --- LinkStateMachine for SFPs (GigE) - --- Still missing: link reset features, fifo full error handling, signals on stat_op --- Take care: all input signals must be synchronous to SYSCLK, --- all output signals are synchronous to SYSCLK. --- Clock Domain Crossing is in your responsibility! - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; ---use work.trb_net_std.all; - -entity trb_net16_lsm_sfp_gbe is -port( SYSCLK : in std_logic; -- fabric clock (100MHz) - RESET : in std_logic; -- synchronous reset - CLEAR : in std_logic; -- asynchronous reset, connect to '0' if not needed / available - -- status signals - SFP_MISSING_IN : in std_logic; -- SFP Missing ('1' = no SFP mounted, '0' = SFP in place) - SFP_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SD_LINK_OK_IN : in std_logic; -- SerDes Link OK ('0' = not linked, '1' link established) - SD_LOS_IN : in std_logic; -- SerDes Loss Of Signal ('0' = OK, '1' = signal lost) - SD_TXCLK_BAD_IN : in std_logic; -- SerDes Tx Clock locked ('0' = locked, '1' = not locked) - SD_RXCLK_BAD_IN : in std_logic; -- SerDes Rx Clock locked ('0' = locked, '1' = not locked) - -- control signals - FULL_RESET_OUT : out std_logic; -- full reset AKA quad_reset - LANE_RESET_OUT : out std_logic; -- partial reset AKA lane_reset - USER_RESET_OUT : out std_logic; -- FPGA reset for user logic - -- debug signals - TIMING_CTR_OUT : out std_logic_vector(18 downto 0); - BSM_OUT : out std_logic_vector(3 downto 0); - DEBUG_OUT : out std_logic_vector(31 downto 0) - ); -end entity; - -architecture lsm_sfp_gbe of trb_net16_lsm_sfp_gbe is - --- state machine signals -type STATES is ( QRST, SLEEP, DELAY, USERRST, LINK ); -signal CURRENT_STATE, NEXT_STATE: STATES; - -signal state_bits : std_logic_vector(3 downto 0); -signal next_ce_tctr : std_logic; -signal ce_tctr : std_logic; -signal next_rst_tctr : std_logic; -signal rst_tctr : std_logic; -signal next_quad_rst : std_logic; -signal quad_rst : std_logic; -signal next_lane_rst : std_logic; -signal lane_rst : std_logic; -signal next_user_rst : std_logic; -signal user_rst : std_logic; -signal sfp_missing_q : std_logic; -signal sfp_missing_qq : std_logic; -signal sfp_los_q : std_logic; -signal sfp_los_qq : std_logic; -signal sd_rxclk_bad_q : std_logic; -signal sd_rxclk_bad_qq : std_logic; -signal sd_rxclk_bad_qqq : std_logic; -signal sd_txclk_bad_q : std_logic; -signal sd_txclk_bad_qq : std_logic; -signal sd_txclk_bad_qqq : std_logic; -signal sd_rxclk_warn_comb : std_logic; -signal sd_rxclk_warn : std_logic; -- rising edge on rlol detected -signal sd_txclk_warn_comb : std_logic; -signal sd_txclk_warn : std_logic; -- rising edge on plol detected -signal timing_ctr : std_logic_vector(18 downto 0); -signal debug : std_logic_vector(31 downto 0); - -begin - --- Debug signals -debug(31 downto 4) <= (others => '0'); -debug(3) <= sd_txclk_warn; -debug(2) <= sd_rxclk_warn; -debug(1) <= rst_tctr; -debug(0) <= ce_tctr; - --- synchronize external signals from SFP -THE_SYNC_PROC: process( sysclk ) -begin - if( rising_edge(sysclk) ) then - -- SFP input signals - sfp_missing_qq <= sfp_missing_q; - sfp_missing_q <= sfp_missing_in; - sfp_los_qq <= sfp_los_q; - sfp_los_q <= sfp_los_in; - -- SerDes input signals - sd_rxclk_bad_qqq <= sd_rxclk_bad_qq; - sd_rxclk_bad_qq <= sd_rxclk_bad_q; - sd_rxclk_bad_q <= sd_rxclk_bad_in; - sd_txclk_bad_qqq <= sd_txclk_bad_q; - sd_txclk_bad_qq <= sd_txclk_bad_q; - sd_txclk_bad_q <= sd_txclk_bad_in; - -- edge detectors - sd_rxclk_warn <= sd_rxclk_warn_comb; - sd_txclk_warn <= sd_txclk_warn_comb; - end if; -end process THE_SYNC_PROC; - --- combinatorial part of edge detectors (rlol, see remark on page 8-63 in HB1003.pdf) -sd_rxclk_warn_comb <= '1' when ( (sd_rxclk_bad_qqq = '0') and (sd_rxclk_bad_qq = '1') ) else '0'; -sd_txclk_warn_comb <= '1' when ( (sd_txclk_bad_qqq = '0') and (sd_txclk_bad_qq = '1') ) else '0'; - --------------------------------------------------------------------------- --- Main control state machine, startup control for SFP --------------------------------------------------------------------------- - --- Timing counter for reset sequencing -THE_TIMING_COUNTER_PROC: process( sysclk, clear ) -begin - if( clear = '1' ) then - timing_ctr <= (others => '0'); - elsif( rising_edge(sysclk) ) then - if ( (rst_tctr = '1') or (sd_rxclk_warn = '1') or (sd_txclk_warn = '1') ) then - timing_ctr <= (others => '0'); - elsif( ce_tctr = '1' ) then - timing_ctr <= timing_ctr + 1; - end if; - end if; -end process THE_TIMING_COUNTER_PROC; - --- State machine --- state registers -STATE_MEM: process( sysclk, clear ) -begin - if( clear = '1' ) then - CURRENT_STATE <= QRST; - ce_tctr <= '0'; - rst_tctr <= '0'; - quad_rst <= '1'; - lane_rst <= '1'; - user_rst <= '1'; - elsif( rising_edge(sysclk) ) then - CURRENT_STATE <= NEXT_STATE; - ce_tctr <= next_ce_tctr; - rst_tctr <= next_rst_tctr; - quad_rst <= next_quad_rst; - lane_rst <= next_lane_rst; - user_rst <= next_user_rst; - end if; -end process STATE_MEM; - --- state transitions -PROC_STATE_TRANSFORM: process( CURRENT_STATE, sfp_missing_qq, sfp_los_qq, sd_txclk_bad_qqq, sd_rxclk_bad_qqq, - timing_ctr(8), timing_ctr(18), timing_ctr(17), - reset ) -begin - NEXT_STATE <= QRST; -- avoid latches - next_ce_tctr <= '0'; - next_rst_tctr <= '0'; - next_quad_rst <= '0'; - next_lane_rst <= '0'; - next_user_rst <= '0'; - case CURRENT_STATE is - when QRST => -- initial state, we stay there unless CLEAR is deasserted. - state_bits <= x"0"; - if( (timing_ctr(8) = '1') ) then - NEXT_STATE <= SLEEP; -- release QUAD_RST, wait for lock of RxClock and TxClock - next_lane_rst <= '1'; - next_user_rst <= '1'; - next_rst_tctr <= '1'; - else - NEXT_STATE <= QRST; -- count delay - next_ce_tctr <= '1'; - next_quad_rst <= '1'; - next_lane_rst <= '1'; - next_user_rst <= '1'; - end if; - when SLEEP => -- we check for SFP presence and signal - state_bits <= x"1"; - if( (sfp_missing_qq = '0') and (sfp_los_qq = '0') ) then - NEXT_STATE <= DELAY; -- do a correctly timed QUAD reset (about 150ns) - next_ce_tctr <= '1'; - next_lane_rst <= '1'; - next_user_rst <= '1'; - else - NEXT_STATE <= SLEEP; -- wait for SFP present signal - next_lane_rst <= '1'; - next_user_rst <= '1'; - end if; - when DELAY => -- we wait approx. 4ms and check for PLL lock in the SerDes - state_bits <= x"2"; - if( (timing_ctr(18) = '1') and (timing_ctr(17) = '1') and (sd_rxclk_bad_qqq = '0') and (sd_txclk_bad_qqq = '0') ) then - NEXT_STATE <= USERRST; -- we release lane reset - next_ce_tctr <= '1'; - next_user_rst <= '1'; - else - NEXT_STATE <= DELAY; - next_ce_tctr <= '1'; - next_lane_rst <= '1'; - next_user_rst <= '1'; - end if; - when USERRST => -- short delay for user reset - state_bits <= x"3"; - if( (timing_ctr(18) = '0') and (timing_ctr(17) = '0') ) then - NEXT_STATE <= LINK; - next_rst_tctr <= '1'; - else - NEXT_STATE <= USERRST; - next_ce_tctr <= '1'; - next_user_rst <= '1'; - end if; - when LINK => -- operational - state_bits <= x"4"; - NEXT_STATE <= LINK; - when others => - NEXT_STATE <= QRST; - end case; - - -- emergency jumps in case of SFP problems - if( ((sfp_missing_qq = '1') or (sfp_los_qq = '1') or (RESET = '1')) and CURRENT_STATE /= QRST ) then - NEXT_STATE <= SLEEP; -- wait for SFP present signal - next_rst_tctr <= '1'; - next_lane_rst <= '1'; - next_user_rst <= '1'; - end if; -end process; - --------------------------------------------------------------------------- --- Output signals --------------------------------------------------------------------------- -full_reset_out <= quad_rst; -lane_reset_out <= lane_rst; -user_reset_out <= user_rst; - --------------------------------------------------------------------------- --- Debug output --------------------------------------------------------------------------- -timing_ctr_out <= timing_ctr; -bsm_out <= state_bits; -debug_out <= debug; - -end architecture; \ No newline at end of file diff --git a/gbe_ecp2m/trb_net16_med_ecp_sfp_gbe_8b.vhd b/gbe_ecp2m/trb_net16_med_ecp_sfp_gbe_8b.vhd deleted file mode 100755 index f7b381a..0000000 --- a/gbe_ecp2m/trb_net16_med_ecp_sfp_gbe_8b.vhd +++ /dev/null @@ -1,457 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; - -entity trb_net16_med_ecp_sfp_gbe_8b is --- gk 28.04.10 -generic ( - USE_125MHZ_EXTCLK : integer range 0 to 1 := 1 -); -port( - RESET : in std_logic; - GSR_N : in std_logic; - CLK_125_OUT : out std_logic; - CLK_125_IN : in std_logic; -- gk 28.04.10 used when intclk - --SGMII connection to frame transmitter (tsmac) - FT_TX_CLK_EN_OUT : out std_logic; - FT_RX_CLK_EN_OUT : out std_logic; - FT_COL_OUT : out std_logic; - FT_CRS_OUT : out std_logic; - FT_TXD_IN : in std_logic_vector(7 downto 0); - FT_TX_EN_IN : in std_logic; - FT_TX_ER_IN : in std_logic; - --SFP Connection - SD_RXD_P_IN : in std_logic; - SD_RXD_N_IN : in std_logic; - SD_TXD_P_OUT : out std_logic; - SD_TXD_N_OUT : out std_logic; - SD_REFCLK_P_IN : in std_logic; - SD_REFCLK_N_IN : in std_logic; - SD_PRSNT_N_IN : in std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted) - SD_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SD_TXDIS_OUT : out std_logic; -- SFP disable - -- Autonegotiation stuff - MR_RESET_IN : in std_logic; - MR_MODE_IN : in std_logic; - MR_ADV_ABILITY_IN : in std_logic_vector(15 downto 0); -- should be x"0020 - MR_AN_LP_ABILITY_OUT : out std_logic_vector(15 downto 0); -- advert page from link partner - MR_AN_PAGE_RX_OUT : out std_logic; - MR_AN_COMPLETE_OUT : out std_logic; - MR_AN_ENABLE_IN : in std_logic; - MR_RESTART_AN_IN : in std_logic; - -- Status and control port - STAT_OP : out std_logic_vector (15 downto 0); - CTRL_OP : in std_logic_vector (15 downto 0); - STAT_DEBUG : out std_logic_vector (63 downto 0); - CTRL_DEBUG : in std_logic_vector (63 downto 0) -); -end entity; - -architecture trb_net16_med_ecp_sfp_gbe_8b of trb_net16_med_ecp_sfp_gbe_8b is - --- Placer Directives -attribute HGROUP : string; --- for whole architecture -attribute HGROUP of trb_net16_med_ecp_sfp_gbe_8b : architecture is "media_interface_group"; -attribute syn_sharing : string; -attribute syn_sharing of trb_net16_med_ecp_sfp_gbe_8b : architecture is "off"; - -component serdes_gbe_0_extclock_8b is -GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_extclock_8b.txt"); -port( refclkp : in std_logic; - refclkn : in std_logic; - hdinp0 : in std_logic; - hdinn0 : in std_logic; - hdoutp0 : out std_logic; - hdoutn0 : out std_logic; - ff_rxiclk_ch0 : in std_logic; - ff_txiclk_ch0 : in std_logic; - ff_ebrd_clk_0 : in std_logic; - ff_txdata_ch0 : in std_logic_vector (7 downto 0); - ff_rxdata_ch0 : out std_logic_vector (7 downto 0); - ff_tx_k_cntrl_ch0 : in std_logic; - ff_rx_k_cntrl_ch0 : out std_logic; - ff_rxfullclk_ch0 : out std_logic; - ff_xmit_ch0 : in std_logic; - ff_correct_disp_ch0 : in std_logic; - ff_disp_err_ch0 : out std_logic; - ff_cv_ch0 : out std_logic; - ff_rx_even_ch0 : out std_logic; - ffc_rrst_ch0 : in std_logic; - ffc_lane_tx_rst_ch0 : in std_logic; - ffc_lane_rx_rst_ch0 : in std_logic; - ffc_txpwdnb_ch0 : in std_logic; - ffc_rxpwdnb_ch0 : in std_logic; - ffs_rlos_lo_ch0 : out std_logic; - ffs_ls_sync_status_ch0 : out std_logic; - ffs_rlol_ch0 : out std_logic; - oob_out_ch0 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - refck2core : out std_logic; - ffs_plol : out std_logic - ); -end component; - -component serdes_gbe_0_intclock_8b is - GENERIC (USER_CONFIG_FILE : String := "serdes_gbe_0_intclock_8b.txt"); - port ( - core_txrefclk : in std_logic; - core_rxrefclk : in std_logic; - hdinp0, hdinn0 : in std_logic; - hdoutp0, hdoutn0 : out std_logic; - ff_rxiclk_ch0, ff_txiclk_ch0, ff_ebrd_clk_0 : in std_logic; - ff_txdata_ch0 : in std_logic_vector (7 downto 0); - ff_rxdata_ch0 : out std_logic_vector (7 downto 0); - ff_tx_k_cntrl_ch0 : in std_logic; - ff_rx_k_cntrl_ch0 : out std_logic; - ff_rxfullclk_ch0 : out std_logic; - ff_xmit_ch0 : in std_logic; - ff_correct_disp_ch0 : in std_logic; - ff_disp_err_ch0, ff_cv_ch0 : out std_logic; - ff_rx_even_ch0 : out std_logic; - ffc_rrst_ch0 : in std_logic; - ffc_lane_tx_rst_ch0 : in std_logic; - ffc_lane_rx_rst_ch0 : in std_logic; - ffc_txpwdnb_ch0 : in std_logic; - ffc_rxpwdnb_ch0 : in std_logic; - ffs_rlos_lo_ch0 : out std_logic; - ffs_ls_sync_status_ch0 : out std_logic; - ffs_rlol_ch0 : out std_logic; - oob_out_ch0 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - ffs_plol : out std_logic); - -end component; - -component sgmii_gbe_pcs32 -port( rst_n : in std_logic; - signal_detect : in std_logic; - gbe_mode : in std_logic; - sgmii_mode : in std_logic; - operational_rate : in std_logic_vector(1 downto 0); - debug_link_timer_short : in std_logic; - rx_compensation_err : out std_logic; - tx_clk_125 : in std_logic; - tx_clock_enable_source : out std_logic; - tx_clock_enable_sink : in std_logic; - tx_d : in std_logic_vector(7 downto 0); - tx_en : in std_logic; - tx_er : in std_logic; - rx_clk_125 : in std_logic; - rx_clock_enable_source : out std_logic; - rx_clock_enable_sink : in std_logic; - rx_d : out std_logic_vector(7 downto 0); - rx_dv : out std_logic; - rx_er : out std_logic; - col : out std_logic; - crs : out std_logic; - tx_data : out std_logic_vector(7 downto 0); - tx_kcntl : out std_logic; - tx_disparity_cntl : out std_logic; - serdes_recovered_clk : in std_logic; - rx_data : in std_logic_vector(7 downto 0); - rx_even : in std_logic; - rx_kcntl : in std_logic; - rx_disp_err : in std_logic; - rx_cv_err : in std_logic; - rx_err_decode_mode : in std_logic; - mr_an_complete : out std_logic; - mr_page_rx : out std_logic; - mr_lp_adv_ability : out std_logic_vector(15 downto 0); - mr_main_reset : in std_logic; - mr_an_enable : in std_logic; - mr_restart_an : in std_logic; - mr_adv_ability : in std_logic_vector(15 downto 0) - ); -end component; - -component trb_net16_lsm_sfp_gbe is -port( SYSCLK : in std_logic; -- fabric clock (100MHz) - RESET : in std_logic; -- synchronous reset - CLEAR : in std_logic; -- asynchronous reset, connect to '0' if not needed / available - -- status signals - SFP_MISSING_IN : in std_logic; -- SFP Missing ('1' = no SFP mounted, '0' = SFP in place) - SFP_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SD_LINK_OK_IN : in std_logic; -- SerDes Link OK ('0' = not linked, '1' link established) - SD_LOS_IN : in std_logic; -- SerDes Loss Of Signal ('0' = OK, '1' = signal lost) - SD_TXCLK_BAD_IN : in std_logic; -- SerDes Tx Clock locked ('0' = locked, '1' = not locked) - SD_RXCLK_BAD_IN : in std_logic; -- SerDes Rx Clock locked ('0' = locked, '1' = not locked) - -- control signals - FULL_RESET_OUT : out std_logic; -- full reset AKA quad_reset - LANE_RESET_OUT : out std_logic; -- partial reset AKA lane_reset - USER_RESET_OUT : out std_logic; -- FPGA reset for user logic - -- debug signals - TIMING_CTR_OUT : out std_logic_vector(18 downto 0); - BSM_OUT : out std_logic_vector(3 downto 0); - DEBUG_OUT : out std_logic_vector(31 downto 0) - ); -end component; - -signal refclkcore : std_logic; - -signal sd_link_ok : std_logic; -signal sd_link_error : std_logic_vector(2 downto 0); - -signal sd_tx_data : std_logic_vector(7 downto 0); -signal sd_tx_kcntl : std_logic; -signal sd_tx_correct_disp : std_logic; -signal sd_tx_clk : std_logic; - -signal sd_rx_data : std_logic_vector(7 downto 0); -signal sd_rx_even : std_logic; -signal sd_rx_kcntl : std_logic; -signal sd_rx_disp_error : std_logic; -signal sd_rx_cv_error : std_logic; -signal sd_rx_clk : std_logic; - -signal pcs_mr_an_complete : std_logic; -signal pcs_mr_ability : std_logic_vector(15 downto 0); -signal pcs_mr_page_rx : std_logic; -signal pcs_mr_reset : std_logic; - -signal pcs_tx_clk_en : std_logic; -signal pcs_rx_clk_en : std_logic; -signal pcs_rx_comp_err : std_logic; - -signal pcs_rx_d : std_logic_vector(7 downto 0); -signal pcs_rx_dv : std_logic; -signal pcs_rx_er : std_logic; - -signal sd_rx_debug : std_logic_vector(15 downto 0); -signal sd_tx_debug : std_logic_vector(15 downto 0); - -signal buf_stat_debug : std_logic_vector(63 downto 0); - -signal quad_rst : std_logic; -signal lane_rst : std_logic; -signal user_rst : std_logic; - -signal reset_bsm : std_logic_vector(3 downto 0); -signal reset_debug : std_logic_vector(31 downto 0); - -begin - --- Reset state machine for SerDes -THE_RESET_STATEMACHINE: trb_net16_lsm_sfp_gbe -port map( - SYSCLK => refclkcore, - RESET => '0', -- really? - CLEAR => RESET, -- from 100MHz PLL, includes async part - -- status signals - SFP_MISSING_IN => SD_PRSNT_N_IN, - SFP_LOS_IN => SD_LOS_IN, - SD_LINK_OK_IN => '1', -- not used - SD_LOS_IN => '0', -- not used - SD_TXCLK_BAD_IN => sd_link_error(2), -- plol - SD_RXCLK_BAD_IN => sd_link_error(1), -- rlol - -- control signals - FULL_RESET_OUT => quad_rst, - LANE_RESET_OUT => lane_rst, - USER_RESET_OUT => user_rst, - -- debug signals - TIMING_CTR_OUT => open, - BSM_OUT => reset_bsm, - DEBUG_OUT => reset_debug -); - --- gk 28.04.10 --- SerDes for GbE -clk_int : if (USE_125MHZ_EXTCLK = 0) generate - - refclkcore <= CLK_125_IN; - - SERDES_GBE : serdes_gbe_0_intclock_8b - port map( - core_txrefclk => CLK_125_IN, - core_rxrefclk => CLK_125_IN, - hdinp0 => SD_RXD_P_IN, - hdinn0 => SD_RXD_N_IN, - hdoutp0 => SD_TXD_P_OUT, - hdoutn0 => SD_TXD_N_OUT, - ff_rxiclk_ch0 => sd_rx_clk, - ff_txiclk_ch0 => sd_tx_clk, - ff_ebrd_clk_0 => sd_rx_clk, - ff_txdata_ch0 => sd_tx_data, - ff_rxdata_ch0 => sd_rx_data, - ff_tx_k_cntrl_ch0 => sd_tx_kcntl, - ff_rx_k_cntrl_ch0 => sd_rx_kcntl, - ff_rxfullclk_ch0 => sd_rx_clk, - ff_xmit_ch0 => '0', - ff_correct_disp_ch0 => sd_tx_correct_disp, - ff_disp_err_ch0 => sd_rx_disp_error, - ff_cv_ch0 => sd_rx_cv_error, - ff_rx_even_ch0 => sd_rx_even, - ffc_rrst_ch0 => '0', - ffc_lane_tx_rst_ch0 => lane_rst, - ffc_lane_rx_rst_ch0 => lane_rst, - ffc_txpwdnb_ch0 => '1', - ffc_rxpwdnb_ch0 => '1', - ffs_rlos_lo_ch0 => sd_link_error(0), - ffs_ls_sync_status_ch0 => sd_link_ok, - ffs_rlol_ch0 => sd_link_error(1), - oob_out_ch0 => open, - ffc_macro_rst => '0', - ffc_quad_rst => quad_rst, - ffc_trst => '0', - ff_txfullclk => sd_tx_clk, - ff_txhalfclk => open, - ffs_plol => sd_link_error(2) - ); -end generate clk_int; - -clk_ext : if (USE_125MHZ_EXTCLK = 1) generate - SERDES_GBE : serdes_gbe_0_extclock_8b - port map( -- SerDes connection to outside world - refclkp => SD_REFCLK_P_IN, -- SerDes REFCLK diff. input - refclkn => SD_REFCLK_N_IN, - hdinp0 => SD_RXD_P_IN, -- SerDes RX diff. input - hdinn0 => SD_RXD_N_IN, - hdoutp0 => SD_TXD_P_OUT, -- SerDes TX diff. output - hdoutn0 => SD_TXD_N_OUT, - refck2core => refclkcore, -- reference clock from input - -- RX part - ff_rxfullclk_ch0 => sd_rx_clk, -- RX full clock output - ff_rxiclk_ch0 => sd_rx_clk, - ff_ebrd_clk_0 => sd_rx_clk, -- EB ist not used as recommended by Lattice - ff_rxdata_ch0 => sd_rx_data, -- RX data output - ff_rx_k_cntrl_ch0 => sd_rx_kcntl, -- RX komma output - ff_rx_even_ch0 => sd_rx_even, -- for autonegotiation (output) - ff_disp_err_ch0 => sd_rx_disp_error, -- RX disparity error - ff_cv_ch0 => sd_rx_cv_error, -- RX code violation error - -- TX part - ff_txfullclk => sd_tx_clk, -- TX full clock output - ff_txiclk_ch0 => sd_tx_clk, - ff_txhalfclk => open, - ff_txdata_ch0 => sd_tx_data, -- TX data input - ff_tx_k_cntrl_ch0 => sd_tx_kcntl, -- TX komma input - ff_xmit_ch0 => '0', -- for autonegotiation (input) - ff_correct_disp_ch0 => sd_tx_correct_disp, -- controls disparity at IPG start (input) - -- Resets and power down - ffc_quad_rst => quad_rst, -- async reset for whole QUAD (active high) - ffc_lane_tx_rst_ch0 => lane_rst, -- async reset for TX channel - ffc_lane_rx_rst_ch0 => lane_rst, -- async reset for RX channel - ffc_rrst_ch0 => '0', -- '0' for normal operation - ffc_macro_rst => '0', -- '0' for normal operation - ffc_trst => '0', -- '0' for normal operation - ffc_txpwdnb_ch0 => '1', -- must be '1' - ffc_rxpwdnb_ch0 => '1', -- must be '1' - -- Status outputs - ffs_ls_sync_status_ch0 => sd_link_ok, -- synced to kommas? - ffs_rlos_lo_ch0 => sd_link_error(0), -- loss of signal in RX channel - ffs_rlol_ch0 => sd_link_error(1), -- loss of lock in RX PLL - ffs_plol => sd_link_error(2), -- loss of lock in TX PLL - oob_out_ch0 => open -- not needed - ); -end generate clk_ext; - -SD_RX_DATA_PROC: process( sd_rx_clk ) -begin - if( rising_edge(sd_rx_clk) ) then - sd_rx_debug(15 downto 12) <= (others => '0'); - sd_rx_debug(11) <= sd_rx_disp_error; - sd_rx_debug(10) <= sd_rx_even; - sd_rx_debug(9) <= sd_rx_cv_error; - sd_rx_debug(8) <= sd_rx_kcntl; - sd_rx_debug(7 downto 0) <= sd_rx_data; - end if; -end process SD_RX_DATA_PROC; - -SD_TX_DATA_PROC: process( sd_tx_clk ) -begin - if( rising_edge(sd_tx_clk) ) then - sd_tx_debug(15 downto 10) <= (others => '0'); - sd_tx_debug(9) <= sd_tx_correct_disp; - sd_tx_debug(8) <= sd_tx_kcntl; - sd_tx_debug(7 downto 0) <= sd_tx_data; - end if; -end process SD_TX_DATA_PROC; - -buf_stat_debug(63 downto 40) <= (others => '0'); -buf_stat_debug(39 downto 36) <= reset_debug(3 downto 0); -buf_stat_debug(35 downto 32) <= reset_bsm; --- logic analyzer signals -buf_stat_debug(31) <= pcs_mr_page_rx; -buf_stat_debug(30) <= pcs_mr_reset; --pcs_mr_an_complete; -buf_stat_debug(28 downto 26) <= reset_bsm(2 downto 0); -buf_stat_debug(25 downto 23) <= sd_link_error(2 downto 0); -buf_stat_debug(22) <= sd_link_ok; -buf_stat_debug(21 downto 12) <= sd_tx_debug(9 downto 0); -buf_stat_debug(11 downto 0) <= sd_rx_debug(11 downto 0); - - -SGMII_GBE_PCS : sgmii_gbe_pcs32 -port map( - rst_n => GSR_N, - signal_detect => sd_link_ok, - gbe_mode => '1', - sgmii_mode => MR_MODE_IN, - operational_rate => "10", - debug_link_timer_short => '0', - rx_compensation_err => pcs_rx_comp_err, - -- MAC interface - tx_clk_125 => refclkcore, -- original clock from SerDes - tx_clock_enable_source => pcs_tx_clk_en, - tx_clock_enable_sink => pcs_tx_clk_en, - tx_d => FT_TXD_IN, -- TX data from MAC - tx_en => FT_TX_EN_IN, -- TX data enable from MAC - tx_er => FT_TX_ER_IN, -- TX error from MAC - rx_clk_125 => refclkcore, -- original clock from SerDes - rx_clock_enable_source => pcs_rx_clk_en, - rx_clock_enable_sink => pcs_rx_clk_en, - rx_d => pcs_rx_d, -- RX data to MAC - rx_dv => pcs_rx_dv, -- RX data enable to MAC - rx_er => pcs_rx_er, -- RX error to MAC - col => FT_COL_OUT, - crs => FT_CRS_OUT, - -- SerDes interface - tx_data => sd_tx_data, -- TX data to SerDes - tx_kcntl => sd_tx_kcntl, -- TX komma control to SerDes - tx_disparity_cntl => sd_tx_correct_disp, -- idle parity state control in IPG (to SerDes) - serdes_recovered_clk => sd_rx_clk, -- 125MHz recovered from receive bit stream - rx_data => sd_rx_data, -- RX data from SerDes - rx_kcntl => sd_rx_kcntl, -- RX komma control from SerDes - rx_err_decode_mode => '0', -- receive error control mode fixed to normal - rx_even => '0', -- unused (receive error control mode = normal, tie to GND) - rx_disp_err => sd_rx_disp_error, -- RX disparity error from SerDes - rx_cv_err => sd_rx_cv_error, -- RX code violation error from SerDes - -- Autonegotiation stuff - mr_an_complete => pcs_mr_an_complete, - mr_page_rx => pcs_mr_page_rx, - mr_lp_adv_ability => pcs_mr_ability, - mr_main_reset => pcs_mr_reset, - mr_an_enable => MR_AN_ENABLE_IN, - mr_restart_an => MR_RESTART_AN_IN, - mr_adv_ability => MR_ADV_ABILITY_IN -); - -pcs_mr_reset <= MR_RESET_IN or RESET or user_rst; - -FT_TX_CLK_EN_OUT <= pcs_tx_clk_en; -- to MAC -FT_RX_CLK_EN_OUT <= pcs_rx_clk_en; -- to MAC - -MR_AN_LP_ABILITY_OUT <= pcs_mr_ability; -MR_AN_COMPLETE_OUT <= pcs_mr_an_complete; -MR_AN_PAGE_RX_OUT <= pcs_mr_page_rx; - --- Clock games -CLK_125_OUT <= refclkcore; - --- Fakes -STAT_OP <= (others => '0'); -SD_TXDIS_OUT <= '0'; -- enable -STAT_DEBUG <= buf_stat_debug; - -end architecture; \ No newline at end of file diff --git a/gbe_ecp2m/trb_net_gbe_components.vhd b/gbe_ecp2m/trb_net_gbe_components.vhd deleted file mode 100644 index 2091080..0000000 --- a/gbe_ecp2m/trb_net_gbe_components.vhd +++ /dev/null @@ -1,309 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -library work; -use work.trb_net_std.all; - -package trb_net_gbe_components is - --- gk 01.07.10 -component trb_net16_ipu2gbe is -port( - CLK : in std_logic; - RESET : in std_logic; - -- IPU interface directed toward the CTS - CTS_NUMBER_IN : in std_logic_vector (15 downto 0); - CTS_CODE_IN : in std_logic_vector (7 downto 0); - CTS_INFORMATION_IN : in std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_IN : in std_logic_vector (3 downto 0); - CTS_START_READOUT_IN : in std_logic; - CTS_READ_IN : in std_logic; - CTS_DATA_OUT : out std_logic_vector (31 downto 0); - CTS_DATAREADY_OUT : out std_logic; - CTS_READOUT_FINISHED_OUT : out std_logic; --no more data, end transfer, send TRM - CTS_LENGTH_OUT : out std_logic_vector (15 downto 0); - CTS_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - -- Data from Frontends - FEE_DATA_IN : in std_logic_vector (15 downto 0); - FEE_DATAREADY_IN : in std_logic; - FEE_READ_OUT : out std_logic; - FEE_BUSY_IN : in std_logic; - FEE_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - -- slow control interface - START_CONFIG_OUT : out std_logic; -- reconfigure MACs/IPs/ports/packet size - BANK_SELECT_OUT : out std_logic_vector(3 downto 0); -- configuration page address - CONFIG_DONE_IN : in std_logic; -- configuration finished - DATA_GBE_ENABLE_IN : in std_logic; -- IPU data is forwarded to GbE - DATA_IPU_ENABLE_IN : in std_logic; -- IPU data is forwarded to CTS / TRBnet - MULT_EVT_ENABLE_IN : in std_logic; - MAX_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- the maximum size of one HadesQueue -- gk 08.04.10 - MIN_MESSAGE_SIZE_IN : in std_logic_vector(31 downto 0); -- gk 20.07.10 - READOUT_CTR_IN : in std_logic_vector(23 downto 0); -- gk 26.04.10 - READOUT_CTR_VALID_IN : in std_logic; -- gk 26.04.10 - -- PacketConstructor interface - ALLOW_LARGE_IN : in std_logic; -- gk 21.07.10 - PC_WR_EN_OUT : out std_logic; - PC_DATA_OUT : out std_logic_vector (7 downto 0); - PC_READY_IN : in std_logic; - PC_SOS_OUT : out std_logic; - PC_EOS_OUT : out std_logic; -- gk 07.10.10 - PC_EOD_OUT : out std_logic; - PC_SUB_SIZE_OUT : out std_logic_vector(31 downto 0); - PC_TRIG_NR_OUT : out std_logic_vector(31 downto 0); - PC_PADDING_OUT : out std_logic; - MONITOR_OUT : out std_logic_vector(223 downto 0); - DEBUG_OUT : out std_logic_vector(383 downto 0) -); -end component; - -component trb_net16_gbe_packet_constr is -port( - RESET : in std_logic; - CLK : in std_logic; - MULT_EVT_ENABLE_IN : in std_logic; -- gk 06.10.10 - -- ports for user logic - PC_WR_EN_IN : in std_logic; -- write into queueConstr from userLogic - PC_DATA_IN : in std_logic_vector(7 downto 0); - PC_READY_OUT : out std_logic; - PC_START_OF_SUB_IN : in std_logic; - PC_END_OF_SUB_IN : in std_logic; -- gk 07.10.10 - PC_END_OF_DATA_IN : in std_logic; - -- queue and subevent layer headers - PC_SUB_SIZE_IN : in std_logic_vector(31 downto 0); -- store and swap - PC_PADDING_IN : in std_logic; -- gk 29.03.10 - PC_DECODING_IN : in std_logic_vector(31 downto 0); -- swap - PC_EVENT_ID_IN : in std_logic_vector(31 downto 0); -- swap - PC_TRIG_NR_IN : in std_logic_vector(31 downto 0); -- store and swap! - PC_QUEUE_DEC_IN : in std_logic_vector(31 downto 0); -- swap - PC_MAX_FRAME_SIZE_IN : in std_logic_vector(15 downto 0); -- DO NOT SWAP - PC_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 28.04.10 - -- FrameConstructor ports - FC_WR_EN_OUT : out std_logic; - FC_DATA_OUT : out std_logic_vector(7 downto 0); - FC_H_READY_IN : in std_logic; - FC_READY_IN : in std_logic; - FC_IP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_UDP_SIZE_OUT : out std_logic_vector(15 downto 0); - FC_IDENT_OUT : out std_logic_vector(15 downto 0); - FC_FLAGS_OFFSET_OUT : out std_logic_vector(15 downto 0); - FC_SOD_OUT : out std_logic; - FC_EOD_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_frame_constr is -port( - -- ports for user logic - RESET : in std_logic; - CLK : in std_logic; - LINK_OK_IN : in std_logic; -- gk 03.08.10 - -- - WR_EN_IN : in std_logic; - DATA_IN : in std_logic_vector(7 downto 0); - START_OF_DATA_IN : in std_logic; - END_OF_DATA_IN : in std_logic; - IP_F_SIZE_IN : in std_logic_vector(15 downto 0); - UDP_P_SIZE_IN : in std_logic_vector(15 downto 0); -- needed for fragmentation - HEADERS_READY_OUT : out std_logic; - READY_OUT : out std_logic; - DEST_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - DEST_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - DEST_UDP_PORT_IN : in std_logic_vector(15 downto 0); - SRC_MAC_ADDRESS_IN : in std_logic_vector(47 downto 0); - SRC_IP_ADDRESS_IN : in std_logic_vector(31 downto 0); - SRC_UDP_PORT_IN : in std_logic_vector(15 downto 0); - FRAME_TYPE_IN : in std_logic_vector(15 downto 0); - IHL_VERSION_IN : in std_logic_vector(7 downto 0); - TOS_IN : in std_logic_vector(7 downto 0); - IDENTIFICATION_IN : in std_logic_vector(15 downto 0); - FLAGS_OFFSET_IN : in std_logic_vector(15 downto 0); - TTL_IN : in std_logic_vector(7 downto 0); - PROTOCOL_IN : in std_logic_vector(7 downto 0); - FRAME_DELAY_IN : in std_logic_vector(31 downto 0); -- gk 09.12.10 - -- ports for packetTransmitter - RD_CLK : in std_logic; -- 125MHz clock!!! - FT_DATA_OUT : out std_logic_vector(8 downto 0); - FT_TX_EMPTY_OUT : out std_logic; - FT_TX_RD_EN_IN : in std_logic; - FT_START_OF_PACKET_OUT : out std_logic; - FT_TX_DONE_IN : in std_logic; - FT_TX_DISCFRM_IN : in std_logic; - -- debug ports - BSM_CONSTR_OUT : out std_logic_vector(7 downto 0); - BSM_TRANS_OUT : out std_logic_vector(3 downto 0); - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_gbe_frame_trans is -port ( - CLK : in std_logic; - RESET : in std_logic; - LINK_OK_IN : in std_logic; -- gk 03.08.10 - TX_MAC_CLK : in std_logic; - TX_EMPTY_IN : in std_logic; - START_OF_PACKET_IN : in std_logic; - DATA_ENDFLAG_IN : in std_logic; -- (8) is end flag, rest is only for TSMAC - -- NEW PORTS - HADDR_OUT : out std_logic_vector(7 downto 0); - HDATA_OUT : out std_logic_vector(7 downto 0); - HCS_OUT : out std_logic; - HWRITE_OUT : out std_logic; - HREAD_OUT : out std_logic; - HREADY_IN : in std_logic; - HDATA_EN_IN : in std_logic; - TX_FIFOAVAIL_OUT : out std_logic; - TX_FIFOEOF_OUT : out std_logic; - TX_FIFOEMPTY_OUT : out std_logic; - TX_DONE_IN : in std_logic; - TX_DISCFRM_IN : in std_logic; - -- Debug - BSM_INIT_OUT : out std_logic_vector(3 downto 0); - BSM_MAC_OUT : out std_logic_vector(3 downto 0); - BSM_TRANS_OUT : out std_logic_vector(3 downto 0); - DBG_RD_DONE_OUT : out std_logic; - DBG_INIT_DONE_OUT : out std_logic; - DBG_ENABLED_OUT : out std_logic; - DEBUG_OUT : out std_logic_vector(63 downto 0) -); -end component; - -component trb_net16_med_ecp_sfp_gbe_8b is --- gk 28.04.10 -generic ( - USE_125MHZ_EXTCLK : integer range 0 to 1 := 1 -); -port( - RESET : in std_logic; - GSR_N : in std_logic; - CLK_125_OUT : out std_logic; - CLK_125_IN : in std_logic; -- gk 28.04.10 used when intclk - --SGMII connection to frame transmitter (tsmac) - FT_TX_CLK_EN_OUT : out std_logic; - FT_RX_CLK_EN_OUT : out std_logic; - FT_COL_OUT : out std_logic; - FT_CRS_OUT : out std_logic; - FT_TXD_IN : in std_logic_vector(7 downto 0); - FT_TX_EN_IN : in std_logic; - FT_TX_ER_IN : in std_logic; - --SFP Connection - SD_RXD_P_IN : in std_logic; - SD_RXD_N_IN : in std_logic; - SD_TXD_P_OUT : out std_logic; - SD_TXD_N_OUT : out std_logic; - SD_REFCLK_P_IN : in std_logic; - SD_REFCLK_N_IN : in std_logic; - SD_PRSNT_N_IN : in std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted) - SD_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal) - SD_TXDIS_OUT : out std_logic; -- SFP disable - -- Autonegotiation stuff - MR_RESET_IN : in std_logic; - MR_MODE_IN : in std_logic; - MR_ADV_ABILITY_IN : in std_logic_vector(15 downto 0); - MR_AN_LP_ABILITY_OUT : out std_logic_vector(15 downto 0); - MR_AN_PAGE_RX_OUT : out std_logic; - MR_AN_COMPLETE_OUT : out std_logic; - MR_AN_ENABLE_IN : in std_logic; - MR_RESTART_AN_IN : in std_logic; - -- Status and control port - STAT_OP : out std_logic_vector (15 downto 0); - CTRL_OP : in std_logic_vector (15 downto 0); - STAT_DEBUG : out std_logic_vector (63 downto 0); - CTRL_DEBUG : in std_logic_vector (63 downto 0) -); -end component; - -component gbe_setup is -port( - CLK : in std_logic; - RESET : in std_logic; - - -- interface to regio bus - BUS_ADDR_IN : in std_logic_vector(7 downto 0); - BUS_DATA_IN : in std_logic_vector(31 downto 0); - BUS_DATA_OUT : out std_logic_vector(31 downto 0); -- gk 26.04.10 - BUS_WRITE_EN_IN : in std_logic; -- gk 26.04.10 - BUS_READ_EN_IN : in std_logic; -- gk 26.04.10 - BUS_ACK_OUT : out std_logic; -- gk 26.04.10 - - GBE_TRIG_NR_IN : in std_logic_vector(31 downto 0); - - -- output to gbe_buf - GBE_SUBEVENT_ID_OUT : out std_logic_vector(31 downto 0); - GBE_SUBEVENT_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_QUEUE_DEC_OUT : out std_logic_vector(31 downto 0); - GBE_MAX_PACKET_OUT : out std_logic_vector(31 downto 0); - GBE_MIN_PACKET_OUT : out std_logic_vector(31 downto 0); - GBE_MAX_FRAME_OUT : out std_logic_vector(15 downto 0); - GBE_USE_GBE_OUT : out std_logic; - GBE_USE_TRBNET_OUT : out std_logic; - GBE_USE_MULTIEVENTS_OUT : out std_logic; - GBE_READOUT_CTR_OUT : out std_logic_vector(23 downto 0); -- gk 26.04.10 - GBE_READOUT_CTR_VALID_OUT : out std_logic; -- gk 26.04.10 - GBE_DELAY_OUT : out std_logic_vector(31 downto 0); - GBE_ALLOW_LARGE_OUT : out std_logic; - GBE_FRAME_DELAY_OUT : out std_logic_vector(31 downto 0); -- gk 09.12.10 - -- gk 28.07.10 - MONITOR_BYTES_IN : in std_logic_vector(31 downto 0); - MONITOR_SENT_IN : in std_logic_vector(31 downto 0); - MONITOR_DROPPED_IN : in std_logic_vector(31 downto 0); - MONITOR_SM_IN : in std_logic_vector(31 downto 0); - MONITOR_LR_IN : in std_logic_vector(31 downto 0); - MONITOR_HDR_IN : in std_logic_vector(31 downto 0); - MONITOR_FIFOS_IN : in std_logic_vector(31 downto 0); - MONITOR_DISCFRM_IN : in std_logic_vector(31 downto 0); - MONITOR_LINK_DWN_IN : in std_logic_vector(31 downto 0); -- gk 30.09.10 - MONITOR_EMPTY_IN : in std_logic_vector(31 downto 0); -- gk 01.10.10 - -- gk 01.06.10 - DBG_IPU2GBE1_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE2_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE3_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE4_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE5_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE6_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE7_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE8_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE9_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE10_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE11_IN : in std_logic_vector(31 downto 0); - DBG_IPU2GBE12_IN : in std_logic_vector(31 downto 0); - DBG_PC1_IN : in std_logic_vector(31 downto 0); - DBG_PC2_IN : in std_logic_vector(31 downto 0); - DBG_FC1_IN : in std_logic_vector(31 downto 0); - DBG_FC2_IN : in std_logic_vector(31 downto 0); - DBG_FT1_IN : in std_logic_vector(31 downto 0); - DBG_FT2_IN : in std_logic_vector(31 downto 0); - DBG_FIFO_RD_EN_OUT : out std_logic; - DBG_FIFO_Q_IN : in std_logic_vector(15 downto 0) - --DBG_FIFO_RESET_OUT : out std_logic -); -end component; - - -component ip_configurator is -port( - CLK : in std_logic; - RESET : in std_logic; - -- configuration interface - START_CONFIG_IN : in std_logic; -- start configuration run - BANK_SELECT_IN : in std_logic_vector(3 downto 0); -- selects config bank - CONFIG_DONE_OUT : out std_logic; -- configuration run ended, new values can be used - MEM_ADDR_OUT : out std_logic_vector(7 downto 0); -- address for - MEM_DATA_IN : in std_logic_vector(31 downto 0); -- data from IP memory - MEM_CLK_OUT : out std_logic; -- clock for BlockRAM - -- information for IP cores - DEST_MAC_OUT : out std_logic_vector(47 downto 0); -- destination MAC address - DEST_IP_OUT : out std_logic_vector(31 downto 0); -- destination IP address - DEST_UDP_OUT : out std_logic_vector(15 downto 0); -- destination port - SRC_MAC_OUT : out std_logic_vector(47 downto 0); -- source MAC address - SRC_IP_OUT : out std_logic_vector(31 downto 0); -- source IP address - SRC_UDP_OUT : out std_logic_vector(15 downto 0); -- source port - MTU_OUT : out std_logic_vector(15 downto 0); -- MTU size (max frame size) - -- Debug - DEBUG_OUT : out std_logic_vector(31 downto 0) -); -end component; - -end package; \ No newline at end of file diff --git a/gbe_trb/base/trb_net16_gbe_mac_control.vhd b/gbe_trb/base/trb_net16_gbe_mac_control.vhd index 4c29bd5..130c151 100644 --- a/gbe_trb/base/trb_net16_gbe_mac_control.vhd +++ b/gbe_trb/base/trb_net16_gbe_mac_control.vhd @@ -84,10 +84,12 @@ reg_tx_rx_ctrl1(0) <= MC_PROMISC_IN; -- promiscuous mode MAC_CONF_MACHINE_PROC : process(CLK) begin - if RESET = '1' then - mac_conf_current_state <= IDLE; - elsif rising_edge(CLK) then - mac_conf_current_state <= mac_conf_next_state; + if( rising_edge(CLK) ) then + if( RESET = '1' ) then + mac_conf_current_state <= IDLE; + else + mac_conf_current_state <= mac_conf_next_state; + end if; end if; end process MAC_CONF_MACHINE_PROC; diff --git a/gbe_trb_ecp3/base/forwarder.vhd b/gbe_trb_ecp3/base/forwarder.vhd deleted file mode 100644 index e9cda4c..0000000 --- a/gbe_trb_ecp3/base/forwarder.vhd +++ /dev/null @@ -1,82 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library work; - -entity forwarder is - port( - CLK : in std_logic; - CLEAR : in std_logic; - RESET : in std_logic; - -- - FRAME_AVAIL_IN : in std_logic; - FIFO_FULL_IN : in std_logic; - FRAME_REQ_OUT : out std_logic; - FRAME_ACK_IN : in std_logic; - -- - DEBUG : out std_logic_vector(15 downto 0) - ); -end entity forwarder; - -architecture forwarder_arch of forwarder is - --- Components - --- state machine signals - type state_t is (IDLE,REQ,ACK); - signal STATE, NEXT_STATE : state_t; - --- Signals - signal rb_full : std_logic; - signal req_x : std_logic; - signal req_q : std_logic; - -begin - - ----------------------------------------------------------- - -- statemachine: clocked process - ----------------------------------------------------------- - THE_FSM: process( CLK, CLEAR ) - begin - if ( CLEAR = '1' ) then - STATE <= IDLE; - req_q <= '0'; - elsif( rising_edge(CLK) ) then - STATE <= NEXT_STATE; - req_q <= req_x; - end if; - end process THE_FSM; - - THE_STATE_TRANSITIONS: process( STATE, FIFO_FULL_IN, FRAME_AVAIL_IN, FRAME_ACK_IN ) - begin - req_x <= '0'; - - case STATE is - - when IDLE => - if( (FIFO_FULL_IN = '0') and (FRAME_AVAIL_IN = '1') ) then - NEXT_STATE <= REQ; - req_x <= '1'; - else - NEXT_STATE <= IDLE; - end if; - - when REQ => - if( FRAME_ACK_IN = '1' ) then - NEXT_STATE <= ACK; - else - NEXT_STATE <= REQ; - end if; - - when ACK => - NEXT_STATE <= IDLE; - - when others => - NEXT_STATE <= IDLE; - end case; - end process THE_STATE_TRANSITIONS; - - FRAME_REQ_OUT <= req_q; - -end architecture; diff --git a/gbe_trb_ecp3/base/gather_ports.vhd b/gbe_trb_ecp3/base/gather_ports.vhd deleted file mode 100644 index 18eedb6..0000000 --- a/gbe_trb_ecp3/base/gather_ports.vhd +++ /dev/null @@ -1,176 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library work; - -entity gather_ports is - port( - CLK : in std_logic; - CLEAR : in std_logic; - RESET : in std_logic; - -- - FRAME_AVAIL_IN : in std_logic_vector(15 downto 0) := (others => '0'); - FRAME_REQ_OUT : out std_logic_vector(15 downto 0); - FRAME_ACK_IN : in std_logic_vector(15 downto 0) := (others => '0'); - PORT_SELECT_OUT : out std_logic_vector(15 downto 0); - CYCLE_DONE_OUT : out std_logic; - -- - DEBUG : out std_logic_vector(15 downto 0) - ); -end entity gather_ports; - -architecture gather_ports_arch of gather_ports is - --- Components - --- state machine signals - type state_t is (IDLE, STORE, DO_PORTS, DELAY, CLEANUP); - signal STATE, NEXT_STATE : state_t; - --- Signals - signal gather_needed_x : std_logic; - signal store_ports_x : std_logic; - signal all_ports_done_x : std_logic; - signal stored_ports : std_logic_vector(15 downto 0); - signal next_port_x : std_logic_vector(15 downto 0); - signal select_ports : std_logic_vector(15 downto 0); - signal req_ports : std_logic_vector(15 downto 0); - -begin - - -- we need to start a gather cycle if any src port has frames available - gather_needed_x <= '1' when FRAME_AVAIL_IN /= x"0000" else '0'; - - -- store the src port status - GEN_REGS: for I in 0 to 15 generate - THE_SRC_STORE_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - stored_ports(I) <= '0'; - elsif( rising_edge(CLK) ) then - if( store_ports_x = '1' ) then - stored_ports(I) <= FRAME_AVAIL_IN(I); - elsif( FRAME_ACK_IN(I) = '1' ) then - stored_ports(I) <= '0'; - end if; - end if; - end process THE_SRC_STORE_PROC; - end generate; - - all_ports_done_x <= '1' when stored_ports = x"0000" else '0'; - - -- select the port data - THE_SELECT_PORT_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - select_ports <= (others => '0'); - elsif( rising_edge(CLK) ) then - select_ports <= next_port_x; - end if; - end process THE_SELECT_PORT_PROC; - - PORT_SELECT_OUT <= select_ports; - - -- port frame request, one clock cycle pulse - req_ports <= not select_ports and next_port_x when rising_edge(CLK); - - FRAME_REQ_OUT <= req_ports; - - CYCLE_DONE_OUT <= '1' when STATE = CLEANUP else '0'; - - -- priority decoced "next port to serve" signals - THE_NEXT_PORT_PROC: process( stored_ports ) - begin - if ( stored_ports(0) = '1' ) then - next_port_x <= x"0001"; - elsif( stored_ports(1) = '1' ) then - next_port_x <= x"0002"; - elsif( stored_ports(2) = '1' ) then - next_port_x <= x"0004"; - elsif( stored_ports(3) = '1' ) then - next_port_x <= x"0008"; - elsif( stored_ports(4) = '1' ) then - next_port_x <= x"0010"; - elsif( stored_ports(5) = '1' ) then - next_port_x <= x"0020"; - elsif( stored_ports(6) = '1' ) then - next_port_x <= x"0040"; - elsif( stored_ports(7) = '1' ) then - next_port_x <= x"0080"; - elsif( stored_ports(8) = '1' ) then - next_port_x <= x"0100"; - elsif( stored_ports(9) = '1' ) then - next_port_x <= x"0200"; - elsif( stored_ports(10) = '1' ) then - next_port_x <= x"0400"; - elsif( stored_ports(11) = '1' ) then - next_port_x <= x"0800"; - elsif( stored_ports(12) = '1' ) then - next_port_x <= x"1000"; - elsif( stored_ports(13) = '1' ) then - next_port_x <= x"2000"; - elsif( stored_ports(14) = '1' ) then - next_port_x <= x"4000"; - elsif( stored_ports(15) = '1' ) then - next_port_x <= x"8000"; - else - next_port_x <= x"0000"; - end if; - end process THE_NEXT_PORT_PROC; - - ----------------------------------------------------------- - -- statemachine: clocked process - ----------------------------------------------------------- - THE_FSM: process( CLK, CLEAR ) - begin - if ( CLEAR = '1' ) then - STATE <= IDLE; - elsif( rising_edge(CLK) ) then - STATE <= NEXT_STATE; - end if; - end process THE_FSM; - - THE_STATE_TRANSITIONS: process( STATE, gather_needed_x, all_ports_done_x ) - begin - store_ports_x <= '0'; - - case STATE is - - when IDLE => - if( gather_needed_x = '1' ) then - NEXT_STATE <= STORE; - store_ports_x <= '1'; - else - NEXT_STATE <= IDLE; - end if; - - when STORE => - NEXT_STATE <= DO_PORTS; - - when DO_PORTS => - if( all_ports_done_x = '1' ) then - NEXT_STATE <= DELAY; - else - NEXT_STATE <= DO_PORTS; - end if; - - when DELAY => - NEXT_STATE <= CLEANUP; - - when CLEANUP => - if( gather_needed_x = '1' ) then - NEXT_STATE <= STORE; - store_ports_x <= '1'; - else - NEXT_STATE <= IDLE; - end if; - - when others => - NEXT_STATE <= IDLE; - end case; - end process THE_STATE_TRANSITIONS; - - - -end architecture; diff --git a/gbe_trb_ecp3/base/gbe_lsm.vhd b/gbe_trb_ecp3/base/gbe_lsm.vhd deleted file mode 100644 index 4f284ae..0000000 --- a/gbe_trb_ecp3/base/gbe_lsm.vhd +++ /dev/null @@ -1,137 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library work; - -entity gbe_lsm is - port( - CLK : in std_logic; - CLEAR : in std_logic; - RESET : in std_logic; - -- - MAC_AN_COMPLETE_IN : in std_logic; -- PCS Autonegotiation completed - MAC_READY_CONF_IN : in std_logic; -- MAC configuration completed - MAC_RECONF_OUT : out std_logic; -- start MAC configuration - -- - LINK_ACTIVE_OUT : out std_logic; - -- - DEBUG : out std_logic_vector(15 downto 0) - ); -end entity gbe_lsm; - -architecture gbe_lsm_arch of gbe_lsm is - --- Components - --- state machine signals - type state_t is (INACTIVE,WAIT_PCS,ENABLE_MAC,DELAY,ACTIVATED); - signal STATE, NEXT_STATE : state_t; - --- Signals - signal dly_ctr : unsigned(15 downto 0); - signal ce_dly_ctr : std_logic; - signal rst_dly_ctr : std_logic; - signal dly_ctr_done : std_logic; - signal reconf_mac : std_logic; - -begin - - MAC_RECONF_OUT <= reconf_mac; - - LINK_ACTIVE_OUT <= '1' when (STATE = ACTIVATED) else '0'; - - THE_DLY_CTR: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - dly_ctr <= (others => '0'); - elsif( rising_edge(CLK) ) then - if ( rst_dly_ctr = '1' ) then - dly_ctr <= (others => '0'); - elsif( ce_dly_ctr = '1' ) then - dly_ctr <= dly_ctr + 1; - end if; - end if; - end process THE_DLY_CTR; - - dly_ctr_done <= '1' when dly_ctr = x"ffff" else '0'; - - ----------------------------------------------------------- - -- statemachine: clocked process - ----------------------------------------------------------- - THE_FSM: process( CLK, CLEAR ) - begin - if ( CLEAR = '1' ) then - STATE <= INACTIVE; - elsif( rising_edge(CLK) ) then - STATE <= NEXT_STATE; - end if; - end process THE_FSM; - - THE_STATE_TRANSITIONS: process( STATE, MAC_AN_COMPLETE_IN, MAC_READY_CONF_IN, dly_ctr_done ) - begin - reconf_mac <= '0'; - ce_dly_ctr <= '0'; - rst_dly_ctr <= '0'; - - case STATE is - - when INACTIVE => - rst_dly_ctr <= '1'; - if( MAC_AN_COMPLETE_IN = '1' ) then - NEXT_STATE <= WAIT_PCS; - else - NEXT_STATE <= INACTIVE; - end if; - - when WAIT_PCS => - ce_dly_ctr <= '1'; - if( MAC_AN_COMPLETE_IN = '0' ) then - NEXT_STATE <= INACTIVE; - else - if( dly_ctr_done = '1' ) then - NEXT_STATE <= ENABLE_MAC; - reconf_mac <= '1'; - else - NEXT_STATE <= WAIT_PCS; - end if; - end if; - - when ENABLE_MAC => - rst_dly_ctr <= '1'; - if( MAC_AN_COMPLETE_IN = '0' ) then - NEXT_STATE <= INACTIVE; - else - if( MAC_READY_CONF_IN = '1' ) then - NEXT_STATE <= DELAY; - else - NEXT_STATE <= ENABLE_MAC; - end if; - end if; - - when DELAY => - ce_dly_ctr <= '1'; - if( MAC_AN_COMPLETE_IN = '0' ) then - NEXT_STATE <= INACTIVE; - else - if( dly_ctr_done = '1' ) then - NEXT_STATE <= ACTIVATED; - else - NEXT_STATE <= DELAY; - end if; - end if; - - when ACTIVATED => - rst_dly_ctr <= '1'; - if( MAC_AN_COMPLETE_IN = '0' ) then - NEXT_STATE <= INACTIVE; - else - NEXT_STATE <= ACTIVATED; - end if; - - when others => - NEXT_STATE <= INACTIVE; - end case; - end process THE_STATE_TRANSITIONS; - -end architecture; diff --git a/gbe_trb_ecp3/base/gbe_med_fifo.vhd b/gbe_trb_ecp3/base/gbe_med_fifo.vhd index 8ed6b65..ef120d7 100644 --- a/gbe_trb_ecp3/base/gbe_med_fifo.vhd +++ b/gbe_trb_ecp3/base/gbe_med_fifo.vhd @@ -15,10 +15,10 @@ entity gbe_med_fifo is ); port( RESET : in std_logic; - GSR_N : in std_logic; - CLK_SYS : in std_logic; + RESET_N : in std_logic; + CLEAR : in std_logic; + CLEAR_N : in std_logic; CLK_125 : in std_logic; - CLK_125_RX : out std_logic_vector(3 downto 0); -- FIFO interface RX FIFO_DATA_OUT : out std_logic_vector(4 * 9 - 1 downto 0); FIFO_FULL_IN : in std_logic_vector(3 downto 0); @@ -47,7 +47,7 @@ entity gbe_med_fifo is ); end entity gbe_med_fifo; -architecture RTL of gbe_med_fifo is +architecture gbe_med_fifo_arch of gbe_med_fifo is component sgmii_gbe_pcs42 port( @@ -204,7 +204,6 @@ architecture RTL of gbe_med_fifo is signal rx_pcs_rst_q : std_logic_vector(3 downto 0); signal rx_serdes_rst : std_logic_vector(3 downto 0); signal rx_serdes_rst_q : std_logic_vector(3 downto 0); - signal init_quad : std_logic; signal tx_plol_lol : std_logic; signal debug : std_logic_vector(63 downto 0); @@ -236,10 +235,13 @@ architecture RTL of gbe_med_fifo is signal led_timer_done : std_logic; signal led_activity_x : std_logic_vector(3 downto 0); signal led_activity : std_logic_vector(4 * 2 - 1 downto 0); - -begin - init_quad <= not GSR_N; + attribute HGROUP : string; +-- attribute BBOX : string; + attribute HGROUP of gbe_med_fifo_arch : architecture is "gbe_med_fifo_group"; +-- attribute BBOX of ddmtd_arch : architecture is "2,2"; + +begin gbe_serdes: entity serdes_gbe_4ch_ds port map( @@ -367,7 +369,7 @@ begin fpga_txrefclk => CLK_125, tx_serdes_rst_c => '0', tx_pll_lol_qd_s => tx_plol_lol, - rst_qd_c => init_quad, + rst_qd_c => CLEAR, -- ONLY ONCE serdes_rst_qd_c => '0', tx_sync_qd_c => '0' ); @@ -385,7 +387,7 @@ begin -- CAVEAT: reset signals MUST BE sync'ed to recovered RX clock! THE_MAIN_RX_RST: main_rx_reset_RS port map( - CLEAR => init_quad, + CLEAR => CLEAR, CLK_REF => CLK_125, CDR_LOL_IN => rx_cdr_lol(i), CV_IN => sd_rx_cv_error(i), @@ -412,13 +414,11 @@ begin D_OUT(0) => rx_pcs_rst_q(i), D_OUT(1) => rx_serdes_rst_q(i) ); - - CLK_125_RX(i) <= sd_rx_clk(i); -- SGMII core SGMII_GBE_PCS : sgmii_gbe_pcs42 port map( - rst_n => GSR_N, + rst_n => RESET_N, signal_detect => link_rx_ready(i), gbe_mode => '1', sgmii_mode => '0', @@ -470,7 +470,7 @@ begin operational_rate((i + 1) * 2 - 1 downto i * 2) <= b"10"; - mr_main_reset(i) <= init_quad; + mr_main_reset(i) <= RESET; mr_restart_an(i) <= pulse(i); mr_an_enable(i) <= link_rx_ready(i); mr_adv_ability((i + 1) * 16 - 1 downto i * 16) <= x"0020"; @@ -491,7 +491,7 @@ begin hclk => CLK_125, -- BUG: can be CLK_125 txmac_clk => CLK_125, rxmac_clk => CLK_125, - reset_n => GSR_N, + reset_n => RESET_N, ------------------- Input signals to the GMII ---------------- rxd => pcs_rxd((i + 1) * 8 - 1 downto i * 8), rx_dv => pcs_rx_en(i), @@ -542,7 +542,7 @@ begin -- CAN BE OPTIMIZED TSMAC_CONTROLLER : trb_net16_gbe_mac_control port map( - CLK => CLK_125, -- BUG: can be CLK_125 + CLK => CLK_125, RESET => RESET, -- signals to/from main controller MC_TSMAC_READY_OUT => mac_ready_conf(i), @@ -566,8 +566,7 @@ begin -- initializes MAC after AN is complete THE_FW_GBE_LSM: entity gbe_lsm port map( - CLK => CLK_125, -- BUG: can be CLK_125 - CLEAR => init_quad, + CLK => CLK_125, RESET => RESET, -- MAC_AN_COMPLETE_IN => an_complete(i), @@ -583,7 +582,6 @@ begin THE_FW_RB: entity rx_rb port map( CLK => CLK_125, - CLEAR => init_quad, RESET => RESET, -- MAC interface (RX) MAC_RX_DATA_IN => mac_rx_data((i + 1) * 8 - 1 downto i * 8), @@ -607,7 +605,6 @@ begin THE_FW_FIFO: entity tx_fifo port map( CLK => CLK_125, - CLEAR => init_quad, RESET => RESET, -- MAC interface MAC_TX_DATA_OUT => mac_tx_data((i + 1) * 8 - 1 downto i * 8), @@ -685,4 +682,4 @@ begin led_timer_done_x <= '1' when (std_logic_vector(led_timer) = x"fffff") else '0'; -end architecture RTL; +end architecture gbe_med_fifo_arch; diff --git a/gbe_trb_ecp3/base/gbe_med_raw.vhd b/gbe_trb_ecp3/base/gbe_med_raw.vhd index 42bee4c..b1db479 100644 --- a/gbe_trb_ecp3/base/gbe_med_raw.vhd +++ b/gbe_trb_ecp3/base/gbe_med_raw.vhd @@ -16,9 +16,7 @@ entity gbe_med_raw is port( RESET : in std_logic; GSR_N : in std_logic; - CLK_SYS : in std_logic; CLK_125 : in std_logic; - CLK_125_RX : out std_logic_vector(3 downto 0); -- MAC status and config MAC_READY_CONF_OUT : out std_logic_vector(3 downto 0); MAC_RECONF_IN : in std_logic_vector(3 downto 0) := (others => '0'); @@ -407,8 +405,6 @@ begin D_OUT(0) => rx_pcs_rst_q(i), D_OUT(1) => rx_serdes_rst_q(i) ); - - CLK_125_RX(i) <= sd_rx_clk(i); -- SGMII core SGMII_GBE_PCS : sgmii_gbe_pcs42 @@ -484,7 +480,7 @@ begin MAC: tsmac41 port map( ----------------- clock and reset port declarations ------------------ - hclk => CLK_SYS, + hclk => CLK_125, txmac_clk => CLK_125, rxmac_clk => CLK_125, reset_n => GSR_N, @@ -536,7 +532,7 @@ begin TSMAC_CONTROLLER : trb_net16_gbe_mac_control port map( - CLK => CLK_SYS, + CLK => CLK_125, RESET => RESET, -- signals to/from main controller MC_TSMAC_READY_OUT => MAC_READY_CONF_OUT(i), diff --git a/gbe_trb_ecp3/base/rx_rb.vhd b/gbe_trb_ecp3/base/rx_rb.vhd deleted file mode 100644 index dd0a413..0000000 --- a/gbe_trb_ecp3/base/rx_rb.vhd +++ /dev/null @@ -1,289 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library work; - -entity rx_rb is - port( - CLK : in std_logic; - CLEAR : in std_logic; - RESET : in std_logic; - -- MAC interface (RX) - MAC_RX_DATA_IN : in std_logic_vector(7 downto 0); -- RX data from TSMAC - MAC_RX_WR_IN : in std_logic; -- RX data write from TSMAC - MAC_RX_EOF_IN : in std_logic; -- RX EndOfFrame from TSMAC - MAC_RX_ERROR_IN : in std_logic; -- RX Error from TSMAC - MAC_RX_FIFOFULL_OUT : out std_logic; - -- FIFO interface (TX) - FIFO_FULL_IN : in std_logic; -- TX fifo full, delay read from ring buffer - FIFO_WR_OUT : out std_logic; -- TX fifo write - FIFO_Q_OUT : out std_logic_vector(8 downto 0); -- TX data - FRAME_REQ_IN : in std_logic; -- one pulse starts readout of frame stored in ring buffer - FRAME_ACK_OUT : out std_logic; -- one pulse for "end of frame" - FRAME_AVAIL_OUT : out std_logic; -- number of frames stored in ring buffer - FRAME_START_OUT : out std_logic; -- StartOfFrame signal - -- - DEBUG : out std_logic_vector(15 downto 0) - ); -end entity rx_rb; - -architecture rx_rb_arch of rx_rb is - --- Components - component rb_4k_9 - port( - WRADDRESS : in std_logic_vector(11 downto 0); - RDADDRESS : in std_logic_vector(11 downto 0); - DATA : in std_logic_vector(8 downto 0); - WE : in std_logic; - RDCLOCK : in std_logic; - RDCLOCKEN : in std_logic; - RESET : in std_logic; - WRCLOCK : in std_logic; - WRCLOCKEN : in std_logic; - Q : out std_logic_vector(8 downto 0) - ); - end component rb_4k_9; - --- state machine signals - type state_t is (RX_DENY,RX_READY,RX_FRAME,FRAME_OK,FRAME_BAD,FORWARD,SKIP); - signal STATE, NEXT_STATE : state_t; - --- Signals - signal rd_ptr : unsigned(11 downto 0); - signal wr_ptr : unsigned(11 downto 0); - signal last_wr_ptr : std_logic_vector(11 downto 0); - signal rb_used : unsigned(11 downto 0); - signal rb_full : std_logic; - signal rb_empty : std_logic; - signal ce_wr_ptr : std_logic; - signal ld_wr_ptr : std_logic; - signal ce_rd_ptr : std_logic; - signal wr_ram : std_logic; - signal rd_ram : std_logic; - signal ram_q : std_logic_vector(8 downto 0); - signal frame_active : std_logic; - signal frame_requested : std_logic; - signal fifo_wr_int : std_logic; - signal empty_read_ack : std_logic; - signal normal_read_ack : std_logic; - signal sof_int : std_logic; - signal frames_avail : unsigned(7 downto 0); - - -begin - - -- FrameActive: we must not change to "receive" in the middle of a frame - -- when "buffer full" condition is deasserted - THE_FRAME_ACTIVE_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - frame_active <= '0'; - elsif( rising_edge(CLK) ) then - if( (MAC_RX_WR_IN = '1') and (frame_active = '0') ) then - frame_active <= '1'; - elsif( (MAC_RX_EOF_IN = '1') and (frame_active = '1') ) then - frame_active <= '0'; - end if; - end if; - end process THE_FRAME_ACTIVE_PROC; - - -- Write pointer for ring buffer - THE_WR_PTR_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - wr_ptr <= (others => '0'); - elsif( rising_edge(CLK) ) then - if ( ld_wr_ptr = '1' ) then - wr_ptr <= unsigned(last_wr_ptr); - elsif( ce_wr_ptr = '1' ) then - wr_ptr <= wr_ptr + 1; - end if; - end if; - end process THE_WR_PTR_PROC; - - -- Read pointer for ring buffer - THE_RD_PTR_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - rd_ptr <= (others => '0'); - elsif( rising_edge(CLK) ) then - if( ce_rd_ptr = '1' ) then - rd_ptr <= rd_ptr + 1; - end if; - end if; - end process THE_RD_PTR_PROC; - - -- ring buffer fill level - rb_used <= wr_ptr - rd_ptr; - - -- ring buffer full - -- TAKE CARE: the last byte of a frame is taken into account - -- by "one less" for the full condition - rb_full <= '1' when (rb_used(11 downto 1) = b"1111_1111_111") else '0'; - - rb_empty <= '1' when (rb_used(11 downto 0) = b"0000_0000_0000") else '0'; - - MAC_RX_FIFOFULL_OUT <= rb_full; - - -- last write pointer: used to drop a broken frame, in case - THE_LAST_WR_PTR_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - last_wr_ptr <= (others => '0'); - elsif( rising_edge(CLK) ) then - if( (STATE = RX_READY) and (MAC_RX_WR_IN = '1') ) then - last_wr_ptr <= std_logic_vector(wr_ptr); - end if; - end if; - end process THE_LAST_WR_PTR_PROC; - - -- DPRAM as ring buffer - THE_DP_RAM: rb_4k_9 - port map( - WRADDRESS => std_logic_vector(wr_ptr), - RDADDRESS => std_logic_vector(rd_ptr), - DATA(8) => MAC_RX_EOF_IN, - DATA(7 downto 0) => MAC_RX_DATA_IN, - WE => wr_ram, - RDCLOCK => CLK, - RDCLOCKEN => '1', - RESET => CLEAR, - WRCLOCK => CLK, - WRCLOCKEN => '1', - Q => ram_q - ); - - -- write signal - wr_ram <= '1' when ((STATE = RX_READY) and (MAC_RX_WR_IN = '1') and (rb_full = '0')) or - ((STATE = RX_FRAME) and (MAC_RX_WR_IN = '1') and (rb_full = '0')) - else '0'; - ce_wr_ptr <= '1' when ((STATE = RX_READY) and (MAC_RX_WR_IN = '1') and (rb_full = '0')) or - ((STATE = RX_FRAME) and (MAC_RX_WR_IN = '1') and (rb_full = '0')) - else '0'; - - -- FrameReq signal, one pulse only - THE_FRAME_REQ_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - frame_requested <= '0'; - elsif( rising_edge(CLK) ) then - if( (FRAME_REQ_IN = '1') and (frame_requested = '0') ) then - frame_requested <= '1'; - elsif( ((ram_q(8) = '1') and (frame_requested = '1')) or (empty_read_ack = '1') ) then - frame_requested <= '0'; - end if; - end if; - end process THE_FRAME_REQ_PROC; - - -- EmptyReadAck signal, used to handle a request to RX_RB with no frame to send - empty_read_ack <= FRAME_REQ_IN and rb_empty when rising_edge(CLK); - - -- NormalReadAck signal - normal_read_ack <= ram_q(8) and fifo_wr_int; - - -- read signal - rd_ram <= '1' when ((frame_requested = '1') and (ram_q(8) = '0') and (FIFO_FULL_IN = '0') and (rb_empty = '0')) else '0'; - ce_rd_ptr <= '1' when ((frame_requested = '1') and (ram_q(8) = '0') and (FIFO_FULL_IN = '0') and (rb_empty = '0')) else '0'; - - sof_int <= FRAME_REQ_IN and not frame_requested when rising_edge(CLK); - - FRAME_ACK_OUT <= normal_read_ack or empty_read_ack; - - FRAME_START_OUT <= sof_int; - - FIFO_Q_OUT <= ram_q; - - fifo_wr_int <= rd_ram when rising_edge(CLK); - - FIFO_WR_OUT <= fifo_wr_int; - - -- FramesAvailable counter - THE_FRAMES_AVAIL_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - frames_avail <= (others => '0'); - elsif( rising_edge(CLK) ) then - if ( (STATE = FRAME_OK) and (normal_read_ack = '0') ) then - -- one frame written successfully - frames_avail <= frames_avail + 1; - elsif( (STATE /= FRAME_OK) and (normal_read_ack = '1') ) then - -- one frame read successfully - frames_avail <= frames_avail - 1; - end if; - end if; - end process THE_FRAMES_AVAIL_PROC; - - FRAME_AVAIL_OUT <= '1' when (frames_avail /= x"00") else '0'; - - ----------------------------------------------------------- - -- statemachine: clocked process - ----------------------------------------------------------- - THE_FSM: process( CLK, CLEAR ) - begin - if ( CLEAR = '1' ) then - STATE <= RX_DENY; - elsif( rising_edge(CLK) ) then - STATE <= NEXT_STATE; - end if; - end process THE_FSM; - - THE_STATE_TRANSITIONS: process( STATE, MAC_RX_WR_IN, MAC_RX_EOF_IN, MAC_RX_ERROR_IN, frame_active, rb_full ) - begin - ld_wr_ptr <= '0'; - - case STATE is - - when RX_DENY => - if( (frame_active = '0') and (rb_full = '0') ) then - NEXT_STATE <= RX_READY; - else - NEXT_STATE <= RX_DENY; - end if; - - when RX_READY => - if( MAC_RX_WR_IN = '1' ) then - NEXT_STATE <= RX_FRAME; - else - NEXT_STATE <= RX_READY; - end if; - - when RX_FRAME => - if ( (MAC_RX_EOF_IN = '1') and (MAC_RX_ERROR_IN = '0') and (rb_full = '0') ) then - NEXT_STATE <= FRAME_OK; - elsif( (MAC_RX_EOF_IN = '1') and ((MAC_RX_ERROR_IN = '1') or (rb_full = '1')) ) then - NEXT_STATE <= FRAME_BAD; - ld_wr_ptr <= '1'; - else - NEXT_STATE <= RX_FRAME; - end if; - - when FRAME_OK => - NEXT_STATE <= FORWARD; - - when FORWARD => - if( rb_full = '0' ) then - NEXT_STATE <= RX_READY; - else - NEXT_STATE <= RX_DENY; - end if; - - when FRAME_BAD => - NEXT_STATE <= SKIP; - - when SKIP => - if( rb_full = '0' ) then - NEXT_STATE <= RX_READY; - else - NEXT_STATE <= RX_DENY; - end if; - - when others => - NEXT_STATE <= RX_DENY; - end case; - end process THE_STATE_TRANSITIONS; - - - -end architecture; diff --git a/gbe_trb_ecp3/base/scatter_ports.vhd b/gbe_trb_ecp3/base/scatter_ports.vhd deleted file mode 100644 index ba1c083..0000000 --- a/gbe_trb_ecp3/base/scatter_ports.vhd +++ /dev/null @@ -1,97 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library work; - -entity scatter_ports is - port( - CLK : in std_logic; - CLEAR : in std_logic; - RESET : in std_logic; - -- - FIFO_FULL_IN : in std_logic_vector(15 downto 0) := (others => '0'); - FIFO_FULL_OUT : out std_logic; - FRAME_AVAIL_IN : in std_logic := '0'; - FRAME_REQ_OUT : out std_logic; - FRAME_ACK_IN : in std_logic := '0'; - CYCLE_DONE_OUT : out std_logic; - -- - DEBUG : out std_logic_vector(15 downto 0) - ); -end entity scatter_ports; - -architecture scatter_ports_arch of scatter_ports is - --- Components - --- state machine signals - type state_t is (IDLE, DO_PORT, DELAY, CLEANUP); - signal STATE, NEXT_STATE : state_t; - --- Signals - signal req_int : std_logic; - signal req_x : std_logic; - -begin - - CYCLE_DONE_OUT <= '1' when STATE = CLEANUP else '0'; - - FRAME_REQ_OUT <= req_int; - - FIFO_FULL_OUT <= '0' when FIFO_FULL_IN = x"0000" else '1'; - - ----------------------------------------------------------- - -- statemachine: clocked process - ----------------------------------------------------------- - THE_FSM: process( CLK, CLEAR ) - begin - if ( CLEAR = '1' ) then - STATE <= IDLE; - req_int <= '0'; - elsif( rising_edge(CLK) ) then - STATE <= NEXT_STATE; - req_int <= req_x; - end if; - end process THE_FSM; - - THE_STATE_TRANSITIONS: process( STATE, FRAME_AVAIL_IN, FRAME_ACK_IN ) - begin - req_x <= '0'; - - case STATE is - - when IDLE => - if( FRAME_AVAIL_IN = '1' ) then - NEXT_STATE <= DO_PORT; - req_x <= '1'; - else - NEXT_STATE <= IDLE; - end if; - - when DO_PORT => - if( FRAME_ACK_IN = '1' ) then - NEXT_STATE <= DELAY; - else - NEXT_STATE <= DO_PORT; - end if; - - when DELAY => - NEXT_STATE <= CLEANUP; - - when CLEANUP => - if( FRAME_AVAIL_IN = '1' ) then - NEXT_STATE <= DO_PORT; - req_x <= '1'; - else - NEXT_STATE <= IDLE; - end if; - - when others => - NEXT_STATE <= IDLE; - end case; - end process THE_STATE_TRANSITIONS; - - - -end architecture; diff --git a/gbe_trb_ecp3/base/tx_fifo.vhd b/gbe_trb_ecp3/base/tx_fifo.vhd deleted file mode 100644 index e406353..0000000 --- a/gbe_trb_ecp3/base/tx_fifo.vhd +++ /dev/null @@ -1,155 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library work; - -entity tx_fifo is - port( - CLK : in std_logic; - CLEAR : in std_logic; - RESET : in std_logic; - -- MAC interface - MAC_TX_DATA_OUT : out std_logic_vector(7 downto 0); - MAC_TX_READ_IN : in std_logic; - MAC_FIFOEOF_OUT : out std_logic; -- end of frame marker - MAC_FIFOEMPTY_OUT : out std_logic; -- must never happen during TX - MAC_FIFOAVAIL_OUT : out std_logic; -- starts TX process in MAC - MAC_TX_DONE_IN : in std_logic; -- frame sent - -- FIFO interface - FIFO_FULL_OUT : out std_logic; - FIFO_WR_IN : in std_logic; - FIFO_D_IN : in std_logic_vector(8 downto 0); - -- Link stuff - FRAME_START_IN : in std_logic; - LINK_ACTIVE_IN : in std_logic; - -- - DEBUG : out std_logic_vector(15 downto 0) - ); -end entity tx_fifo; - -architecture tx_fifo_arch of tx_fifo is - --- Components - component fifo_4k_9 - port( - DATA : in std_logic_vector(8 downto 0); - CLOCK : in std_logic; - WREN : in std_logic; - RDEN : in std_logic; - RESET : in std_logic; - Q : out std_logic_vector(8 downto 0); - EMPTY : out std_logic; - FULL : out std_logic; - ALMOSTFULL : out std_logic - ); - end component fifo_4k_9; - --- component fifo_4k_9 --- port( --- DATA : in std_logic_vector(8 downto 0); --- WRCLOCK : in std_logic; --- RDCLOCK : in std_logic; --- WREN : in std_logic; --- RDEN : in std_logic; --- RESET : in std_logic; --- RPRESET : in std_logic; --- Q : out std_logic_vector(8 downto 0); --- EMPTY : out std_logic; --- FULL : out std_logic; --- ALMOSTEMPTY : out std_logic; --- ALMOSTFULL : out std_logic --- ); --- end component fifo_4k_9; - --- state machine signals - --- Signals - signal frames_avail : unsigned(7 downto 0); - signal frame_written : std_logic; - signal frame_read : std_logic; - signal mac_fifoeof : std_logic; - signal mac_tx_read : std_logic; - signal frame_active : std_logic; - signal fifo_wr : std_logic; - -begin - - -- FrameActice signal - used to inhibt acceptance of runt frames - THE_FRAME_ACTIVE_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - frame_active <= '0'; - elsif( rising_edge(CLK) ) then - if ( FRAME_START_IN = '1' ) then - frame_active <= LINK_ACTIVE_IN; - elsif( frame_written = '1' ) then - frame_active <= '0'; - end if; - end if; - end process THE_FRAME_ACTIVE_PROC; - - fifo_wr <= FIFO_WR_IN and frame_active; - - -- TX FIFO storing full outgoing frames - THE_TX_FIFO: fifo_4k_9 - port map( - DATA => FIFO_D_IN, - CLOCK => CLK, - WREN => fifo_wr, --FIFO_WR_IN, - RDEN => MAC_TX_READ_IN, - RESET => CLEAR, - Q(8) => mac_fifoeof, - Q(7 downto 0) => MAC_TX_DATA_OUT, - EMPTY => MAC_FIFOEMPTY_OUT, - FULL => open, - ALMOSTFULL => FIFO_FULL_OUT - ); - --- -- TX FIFO storing full outgoing frames --- THE_TX_FIFO: fifo_4k_9 --- port map( --- DATA => FIFO_D_IN, --- WRCLOCK => CLK, --- RDCLOCK => CLK, --- WREN => fifo_wr, --FIFO_WR_IN, --- RDEN => MAC_TX_READ_IN, --- RESET => CLEAR, --- RPRESET => CLEAR, --- Q(8) => mac_fifoeof, --- Q(7 downto 0) => MAC_TX_DATA_OUT, --- EMPTY => MAC_FIFOEMPTY_OUT, --- FULL => open, --- ALMOSTEMPTY => open, --- ALMOSTFULL => FIFO_FULL_OUT --- ); - - MAC_FIFOEOF_OUT <= mac_fifoeof; - - mac_tx_read <= MAC_TX_READ_IN when rising_edge(CLK); - - -- one frame written to FIFO - frame_written <= '1' when (FIFO_D_IN(8) = '1') and (FIFO_WR_IN = '1') and (frame_active = '1') else '0'; - - -- one frame read from FIFO - frame_read <= '1' when (mac_fifoeof = '1') and (mac_tx_read = '1') else '0'; - - -- FramesAvailable counter - THE_FRAMES_AVAIL_PROC: process( CLK, CLEAR ) - begin - if( CLEAR = '1' ) then - frames_avail <= (others => '0'); - elsif( rising_edge(CLK) ) then - if ( (frame_written = '1') and (frame_read = '0') ) then - -- one frame written successfully - frames_avail <= frames_avail + 1; - elsif( (frame_written = '0') and (frame_read = '1') ) then - -- one frame read successfully - frames_avail <= frames_avail - 1; - end if; - end if; - end process THE_FRAMES_AVAIL_PROC; - - MAC_FIFOAVAIL_OUT <= '1' when (frames_avail /= x"00") else '0'; - -end architecture; diff --git a/oldfiles/L12TrigBusInterface.vhd b/oldfiles/L12TrigBusInterface.vhd deleted file mode 100644 index 1b7a989..0000000 --- a/oldfiles/L12TrigBusInterface.vhd +++ /dev/null @@ -1,213 +0,0 @@ -------------------------------------------------------------------------------- --- Title : Detector Trigger Unit --- Project : HADES Second Level Trigger -------------------------------------------------------------------------------- --- File : L12TrugBusInterface.vhd --- Author : Markus Petri, Daniel Schaefer --- Created : 2002/03/27 --- Last modified : 2007/01/12 T. Perez -------------------------------------------------------------------------------- --- Description : Generic Interace for the Trigger Bus --- -------------------------------------------------------------------------------- --- Modification history : --- 2002/03/27 : created --- 2002/05/31 : corrected TrigBus sequence, implemented BSY; --- 2007/01/12 : change in libraries to adapt to trbnet: numeric -> arith --- CLK_10 removed. Now DTU code is much faster than TRIGGERBUS. --- 2007/02/23 : DVAL is not being produced. ??? -------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; - -entity L12TrigBusInterface is - port ( --- from Trigger bus - TSTR : in std_logic; -- trigger strobe - DSTR : in std_logic; -- data strobe - DIN : in std_logic_vector(3 downto 0); --- to Trigger bus - BSY : out std_logic; - ERR : out std_logic; --- general - RES : in std_logic; - CLK : in std_logic; -- should be 40 MHz!! --- CLK_10 : in std_logic; -- should be 10 MHz --- to state engine (and others) - DVAL : out std_logic; -- high for 2 clk cycles when TRIGTAG - -- and TRIGCODE have been received - TRIGTAG : out std_logic_vector(7 downto 0); - TRIGCODE : out std_logic_vector(3 downto 0); --- from state engine - TRIGTAG_MISMATCH : in std_logic; -- this is high whenever the received - -- TRIGTAG is not equal to the DTU's - -- internal counter and is not starting - -- with a 0 at begin - BUSY : in std_logic -- this should be controlled by the - -- state engine and is passed directly - -- to the trigger bus (where it is wired- - -- or with all the other busy's from - -- the DTU's, CTU) - ); -end L12TrigBusInterface; - -architecture ARCH_L12TrigInterface of L12TrigBusInterface is -------------------------------------------------------------------------------- - type ShiftReg is array (0 to 2) of - std_logic_vector(3 downto 0); -------------------------------------------------------------------------------- - signal NIBCNT : integer range 0 to 3; -- # of current nibble - signal TRIGBUFF : ShiftReg; - signal TSTR_REG, TSTR_REG_REG : std_logic; - signal DSTR_REG, DSTR_REG_REG : std_logic; --- signal DVAL_REG, DVAL_REG_LONG, DVAL_sync : std_logic; - signal DVAL_REG, DVAL_REG_REG : std_logic; - signal DIN_REG : std_logic_vector(3 downto 0); --- signal counter_for_DVAL : integer range 0 to 3; - - signal TRIGCODE_i : std_logic_vector(3 downto 0); - signal BUSY_FAST, BUSY_i : std_logic; -------------------------------------------------------------------------------- - -begin - - -- first we register all our inputs - - reg_DIN : process (CLK, RES) - begin -- process reg_DIN - if RES = '1' then -- asynchronous reset (active high) - DIN_REG <= (others => '0'); - elsif CLK'event and CLK = '1' then -- rising clock edge - DIN_REG <= (DIN); - end if; - end process reg_DIN; - - reg_TSTR : process (CLK, RES) - begin -- process reg_NEW_TAG - if RES = '1' then -- asynchronous reset (active high) - TSTR_REG <= '0'; - elsif CLK'event and CLK = '1' then -- rising clock edge - TSTR_REG <= TSTR; - end if; - end process reg_TSTR; - - reg_reg_TSTR : process (CLK, RES) - begin -- process reg_NEW_TAG - if RES = '1' then -- asynchronous reset (active high) - TSTR_REG_REG <= '0'; - elsif CLK'event and CLK = '1' then -- rising clock edge - TSTR_REG_REG <= TSTR_REG; - end if; - end process reg_reg_TSTR; - - reg_DSTR : process (CLK, RES) - begin -- process reg_NEW_TAG - if RES = '1' then -- asynchronous reset (active high) - DSTR_REG <= '0'; - elsif CLK'event and CLK = '1' then -- rising clock edge - DSTR_REG <= DSTR; - end if; - end process reg_DSTR; - - reg_reg_DSTR : process (CLK, RES) - begin -- process reg_NEW_TAG - if RES = '1' then -- asynchronous reset (active high) - DSTR_REG_REG <= '0'; - elsif CLK'event and CLK = '1' then -- rising clock edge - DSTR_REG_REG <= DSTR_REG; - end if; - end process reg_reg_DSTR; - - CodeBuffering : process (CLK, RES) - begin -- process CodeBuffering - if RES = '1' then - TRIGCODE_i <= (others => '0'); - elsif (CLK'event and CLK = '1') then - if (TSTR_REG = '0') and (TSTR_REG_REG = '1') then - -- falling edge of TSTR - TRIGCODE_i <= DIN_REG; - -- den registerten Wert - end if; - end if; - end process CodeBuffering; - - TagBuffering : process (CLK, RES) - begin -- process TagBuffering - if RES = '1' then -- asynchronous reset (active high) - NIBCNT <= 0; - DVAL_REG <= '0'; - elsif CLK'event and CLK = '1' then -- rising clock edge - DVAL_REG <= '0'; - if NIBCNT >= 3 then - NIBCNT <= 0; - DVAL_REG <= '1'; - elsif (DSTR_REG = '0') and (DSTR_REG_REG = '1') then - NIBCNT <= NIBCNT + 1; - end if; - end if; - end process TagBuffering; - - Shift_Reg : process (CLK, RES) - begin -- process TagBuffering - if RES = '1' then -- asynchronous reset (active high) - TRIGBUFF(0) <= (others => '0'); - TRIGBUFF(1) <= (others => '0'); - TRIGBUFF(2) <= (others => '0'); - elsif CLK'event and CLK = '1' then -- rising clock edge - if (DSTR_REG = '0') and (DSTR_REG_REG = '1') then -- falling edge of DSTR - TRIGBUFF(2) <= TRIGBUFF(1); - TRIGBUFF(1) <= TRIGBUFF(0); - TRIGBUFF(0) <= DIN_REG; -- shift register - end if; - end if; - end process Shift_Reg; - - -- purpose: register DVAL - -- type : sequential - -- inputs : CLK, RES, DVAL - -- outputs: DVAL_sync - DVAL_OUT : process (CLK, RES, DVAL_REG) - begin -- process DVAL_reg - if RES = '1' then -- asynchronous reset (active low) - DVAL_REG_REG <= '0'; - DVAL <= '0'; - elsif CLK'event and CLK = '1' then -- rising clock edge - DVAL_REG_REG <= DVAL_REG; - DVAL <= DVAL_REG or DVAL_REG_REG; - end if; - end process DVAL_OUT; - - - SynchBSY : process(RES, CLK) - begin - if (RES = '1') then - BSY <= '0'; - elsif (CLK'event and CLK = '1') then - BSY <= BUSY_i; - end if; - end process SynchBSY; -------------------------------------------------------------------------------- --- Combinatorial Signals -------------------------------------------------------------------------------- - TRIGTAG <= TRIGBUFF(1) & TRIGBUFF(2); - TRIGCODE <= TRIGCODE_i; - ERR <= TRIGTAG_MISMATCH; --- DSTR_INV <= NOT(DSTR); - -- purpose: Set a fast busy on TSTR - -- type : sequential - -- inputs : CLK, RES, BUSY - -- outputs: BUSY_FASt - FastBusy : process (CLK, RES, BUSY) - begin -- process FastBusy - if RES = '1' or BUSY = '1'then -- asynchronous reset (active high) - BUSY_FAST <= '0'; - elsif CLK'event and CLK = '1' then -- rising clock edge - if TSTR_REG = '1' then - BUSY_FAST <= '1'; - end if; - end if; - end process FastBusy; - BUSY_i <= BUSY or BUSY_FAST; -end ARCH_L12TrigInterface; diff --git a/oldfiles/bus_handler.vhd b/oldfiles/bus_handler.vhd deleted file mode 100644 index c38450e..0000000 --- a/oldfiles/bus_handler.vhd +++ /dev/null @@ -1,293 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - -entity bus_handler is -port( CLK_IN : in std_logic; - CLEAR_IN : in std_logic; - RESET_IN : in std_logic; - DAT_ADDR_IN : in std_logic_vector(15 downto 0); -- address bus - DAT_DATA_IN : in std_logic_vector(31 downto 0); -- data from TRB endpoint - DAT_DATA_OUT : out std_logic_vector(31 downto 0); -- data to TRB endpoint - DAT_READ_ENABLE_IN : in std_logic; -- read pulse - DAT_WRITE_ENABLE_IN : in std_logic; -- write pulse - DAT_TIMEOUT_IN : in std_logic; -- access timed out - DAT_DATAREADY_OUT : out std_logic; -- your data, master, as requested - DAT_WRITE_ACK_OUT : out std_logic; -- data accepted - DAT_NO_MORE_DATA_OUT : out std_logic; -- don't disturb me now - DAT_UNKNOWN_ADDR_OUT : out std_logic; -- noone here to answer your request - SLV_SELECT_OUT : out std_logic_vector(47 downto 0); -- select signal for slave entities - SLV_READ_OUT : out std_logic; -- read signal for slave entities - SLV_WRITE_OUT : out std_logic; -- write signal for slave entities - SLV_BUSY_IN : in std_logic; -- wired OR busy from slave entities - SLV_ACK_IN : in std_logic; -- slave has accepted access - SLV_DATA_IN : in std_logic_vector(31 downto 0); -- read data from slaves - SLV_DATA_OUT : out std_logic_vector(31 downto 0); -- write data to slaves - STAT : out std_logic_vector(31 downto 0) - ); -end entity; - -architecture Behavioral of bus_handler is - --- Signals - type STATES is (SLEEP,RACC,WACC,RFAIL,WFAIL,ROK,WOK,STATW,STATS,STATD,NOONE,DONE); - signal CURRENT_STATE, NEXT_STATE: STATES; - - signal bsm : std_logic_vector(3 downto 0); - - signal rst_strb_x : std_logic; - signal rst_strb : std_logic; - signal buf_dat_write_ack_x : std_logic; - signal buf_dat_write_ack : std_logic; - signal buf_dat_dataready_x : std_logic; - signal buf_dat_dataready : std_logic; - signal buf_dat_no_more_data_x : std_logic; - signal buf_dat_no_more_data : std_logic; - signal buf_dat_unknown_addr_x : std_logic; - signal buf_dat_unknown_addr : std_logic; - - signal buf_slv_select_x : std_logic_vector(47 downto 0); - signal buf_slv_select : std_logic_vector(47 downto 0); - signal buf_slv_read : std_logic; - signal buf_slv_write : std_logic; - signal no_slave_reg_x : std_logic; - signal no_slave_mem_x : std_logic; - signal no_slave : std_logic; - signal slave_busy : std_logic; - signal slave_ack : std_logic; - -begin - --- Memory map: --- 80xx => single registers --- axxx => pedestal memory APV[15:0] --- bxxx => threshold memory APV[15:0] - ------------------------------------------------------------------------------- --- This part is crucial, as ACK and BSY are tristate signals! ------------------------------------------------------------------------------- --- Slave address decoder - registers (single address decoding) -THE_ADDRESS_DEC_REG_PROC: process( dat_addr_in ) -begin - case dat_addr_in is - when x"8083" => buf_slv_select_x(15 downto 0) <= x"8000"; no_slave_reg_x <= '0'; -- trigger 3 - when x"8082" => buf_slv_select_x(15 downto 0) <= x"4000"; no_slave_reg_x <= '0'; -- trigger 2 - when x"8081" => buf_slv_select_x(15 downto 0) <= x"2000"; no_slave_reg_x <= '0'; -- trigger 1 - when x"8080" => buf_slv_select_x(15 downto 0) <= x"1000"; no_slave_reg_x <= '0'; -- trigger 0 - when x"8040" => buf_slv_select_x(15 downto 0) <= x"0800"; no_slave_reg_x <= '0'; -- I2C master - when x"8021" => buf_slv_select_x(15 downto 0) <= x"0400"; no_slave_reg_x <= '0'; -- EDS_DONE - when x"8020" => buf_slv_select_x(15 downto 0) <= x"0200"; no_slave_reg_x <= '0'; -- BUF_DONE - when x"8001" => buf_slv_select_x(15 downto 0) <= x"0100"; no_slave_reg_x <= '0'; -- test register bad - when x"8000" => buf_slv_select_x(15 downto 0) <= x"0080"; no_slave_reg_x <= '0'; -- test register good - when x"8002" => buf_slv_select_x(15 downto 0) <= x"0040"; no_slave_reg_x <= '0'; -- real test register - when others => buf_slv_select_x(15 downto 0) <= x"0000"; no_slave_reg_x <= '1'; - end case; -end process THE_ADDRESS_DEC_REG_PROC; - --- Slave address decoder - memory (256 longwords decoding) -THE_ADDRESS_DEC_MEM_PROC: process( dat_addr_in(15 downto 8) ) -begin - case dat_addr_in(15 downto 8) is - when x"a0" => buf_slv_select_x(47 downto 16) <= x"8000_0000"; no_slave_mem_x <= '0'; -- pedestal 0 - when x"a1" => buf_slv_select_x(47 downto 16) <= x"4000_0000"; no_slave_mem_x <= '0'; -- pedestal 1 - when x"a2" => buf_slv_select_x(47 downto 16) <= x"2000_0000"; no_slave_mem_x <= '0'; -- pedestal 2 - when x"a3" => buf_slv_select_x(47 downto 16) <= x"1000_0000"; no_slave_mem_x <= '0'; -- pedestal 3 - when x"a4" => buf_slv_select_x(47 downto 16) <= x"0800_0000"; no_slave_mem_x <= '0'; -- pedestal 4 - when x"a5" => buf_slv_select_x(47 downto 16) <= x"0400_0000"; no_slave_mem_x <= '0'; -- pedestal 5 - when x"a6" => buf_slv_select_x(47 downto 16) <= x"0200_0000"; no_slave_mem_x <= '0'; -- pedestal 6 - when x"a7" => buf_slv_select_x(47 downto 16) <= x"0100_0000"; no_slave_mem_x <= '0'; -- pedestal 7 - when x"a8" => buf_slv_select_x(47 downto 16) <= x"0080_0000"; no_slave_mem_x <= '0'; -- pedestal 8 - when x"a9" => buf_slv_select_x(47 downto 16) <= x"0040_0000"; no_slave_mem_x <= '0'; -- pedestal 9 - when x"aa" => buf_slv_select_x(47 downto 16) <= x"0020_0000"; no_slave_mem_x <= '0'; -- pedestal 10 - when x"ab" => buf_slv_select_x(47 downto 16) <= x"0010_0000"; no_slave_mem_x <= '0'; -- pedestal 11 - when x"ac" => buf_slv_select_x(47 downto 16) <= x"0008_0000"; no_slave_mem_x <= '0'; -- pedestal 12 - when x"ad" => buf_slv_select_x(47 downto 16) <= x"0004_0000"; no_slave_mem_x <= '0'; -- pedestal 13 - when x"ae" => buf_slv_select_x(47 downto 16) <= x"0002_0000"; no_slave_mem_x <= '0'; -- pedestal 14 - when x"af" => buf_slv_select_x(47 downto 16) <= x"0001_0000"; no_slave_mem_x <= '0'; -- pedestal 15 - when x"b0" => buf_slv_select_x(47 downto 16) <= x"0000_8000"; no_slave_mem_x <= '0'; -- threshold 0 - when x"b1" => buf_slv_select_x(47 downto 16) <= x"0000_4000"; no_slave_mem_x <= '0'; -- threshold 1 - when x"b2" => buf_slv_select_x(47 downto 16) <= x"0000_2000"; no_slave_mem_x <= '0'; -- threshold 2 - when x"b3" => buf_slv_select_x(47 downto 16) <= x"0000_1000"; no_slave_mem_x <= '0'; -- threshold 3 - when x"b4" => buf_slv_select_x(47 downto 16) <= x"0000_0800"; no_slave_mem_x <= '0'; -- threshold 4 - when x"b5" => buf_slv_select_x(47 downto 16) <= x"0000_0400"; no_slave_mem_x <= '0'; -- threshold 5 - when x"b6" => buf_slv_select_x(47 downto 16) <= x"0000_0200"; no_slave_mem_x <= '0'; -- threshold 6 - when x"b7" => buf_slv_select_x(47 downto 16) <= x"0000_0100"; no_slave_mem_x <= '0'; -- threshold 7 - when x"b8" => buf_slv_select_x(47 downto 16) <= x"0000_0080"; no_slave_mem_x <= '0'; -- threshold 8 - when x"b9" => buf_slv_select_x(47 downto 16) <= x"0000_0040"; no_slave_mem_x <= '0'; -- threshold 9 - when x"ba" => buf_slv_select_x(47 downto 16) <= x"0000_0020"; no_slave_mem_x <= '0'; -- threshold 10 - when x"bb" => buf_slv_select_x(47 downto 16) <= x"0000_0010"; no_slave_mem_x <= '0'; -- threshold 11 - when x"bc" => buf_slv_select_x(47 downto 16) <= x"0000_0008"; no_slave_mem_x <= '0'; -- threshold 12 - when x"bd" => buf_slv_select_x(47 downto 16) <= x"0000_0004"; no_slave_mem_x <= '0'; -- threshold 13 - when x"be" => buf_slv_select_x(47 downto 16) <= x"0000_0002"; no_slave_mem_x <= '0'; -- threshold 14 - when x"bf" => buf_slv_select_x(47 downto 16) <= x"0000_0001"; no_slave_mem_x <= '0'; -- threshold 15 - when others => buf_slv_select_x(47 downto 16) <= x"0000_0000"; no_slave_mem_x <= '1'; - end case; -end process THE_ADDRESS_DEC_MEM_PROC; - - --- synchronize signals -THE_SYNC_PROC: process( clk_in ) -begin - if( rising_edge(clk_in) ) then - buf_slv_select <= buf_slv_select_x; - no_slave <= no_slave_reg_x and no_slave_mem_x; - end if; -end process THE_SYNC_PROC; - - --- Slave response lines -slave_ack <= slv_ack_in when ( no_slave = '0' ) else '0'; -slave_busy <= slv_busy_in when ( no_slave = '0' ) else '0'; -dat_data_out <= slv_data_in when ( no_slave = '0' ) else (others => '0'); - --- Data tunneling to slave entities -slv_data_out <= dat_data_in; - --- Read / write strobe -THE_READ_WRITE_STROBE_PROC: process( clk_in, clear_in ) -begin - if( clear_in = '1' ) then - buf_slv_read <= '0'; - buf_slv_write <= '0'; - elsif( rising_edge(clk_in) ) then - if( reset_in = '1' ) then - buf_slv_read <= '0'; - buf_slv_write <= '0'; - elsif( (dat_read_enable_in = '1') and (dat_write_enable_in = '0') ) then - buf_slv_read <= '1'; - buf_slv_write <= '0'; - elsif( (dat_read_enable_in = '0') and (dat_write_enable_in = '1') ) then - buf_slv_read <= '0'; - buf_slv_write <= '1'; - elsif( rst_strb = '1' ) then - buf_slv_read <= '0'; - buf_slv_write <= '0'; - end if; - end if; -end process THE_READ_WRITE_STROBE_PROC; - - - --- The main state machine --- State memory process -STATE_MEM: process( clk_in, clear_in ) -begin - if( clear_in = '1' ) then - CURRENT_STATE <= SLEEP; - rst_strb <= '0'; - buf_dat_dataready <= '0'; - buf_dat_no_more_data <= '0'; - buf_dat_write_ack <= '0'; - buf_dat_unknown_addr <= '0'; - elsif( rising_edge(clk_in) ) then - if( reset_in = '1' ) then - CURRENT_STATE <= SLEEP; - rst_strb <= '0'; - buf_dat_dataready <= '0'; - buf_dat_no_more_data <= '0'; - buf_dat_write_ack <= '0'; - buf_dat_unknown_addr <= '0'; - else - CURRENT_STATE <= NEXT_STATE; - rst_strb <= rst_strb_x; - buf_dat_dataready <= buf_dat_dataready_x; - buf_dat_no_more_data <= buf_dat_no_more_data_x; - buf_dat_write_ack <= buf_dat_write_ack_x; - buf_dat_unknown_addr <= buf_dat_unknown_addr_x; - end if; - end if; -end process STATE_MEM; - --- Transition matrix -TRANSFORM: process(CURRENT_STATE, no_slave, buf_slv_read, buf_slv_write, slave_ack, slave_busy, dat_timeout_in ) -begin - NEXT_STATE <= SLEEP; - rst_strb_x <= '0'; - buf_dat_dataready_x <= '0'; - buf_dat_no_more_data_x <= '0'; - buf_dat_write_ack_x <= '0'; - buf_dat_unknown_addr_x <= '0'; - case CURRENT_STATE is - when SLEEP => if ( (no_slave = '1') and ((buf_slv_read = '1') or (buf_slv_write = '1')) ) then - NEXT_STATE <= NOONE; - buf_dat_unknown_addr_x <= '1'; - elsif( (buf_slv_read = '1') and (buf_slv_write = '0') ) then - NEXT_STATE <= RACC; - elsif( (buf_slv_read = '0') and (buf_slv_write = '1') ) then - NEXT_STATE <= WACC; - else - NEXT_STATE <= SLEEP; - end if; - when RACC => if ( dat_timeout_in = '1' ) then - NEXT_STATE <= DONE; - rst_strb_x <= '1'; - elsif( slave_busy = '1' ) then - NEXT_STATE <= RFAIL; - buf_dat_no_more_data_x <= '1'; - elsif( slave_ack = '1' ) then - NEXT_STATE <= ROK; - buf_dat_dataready_x <= '1'; - else - NEXT_STATE <= RACC; - end if; - when RFAIL => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when ROK => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when WACC => if ( dat_timeout_in = '1' ) then - NEXT_STATE <= DONE; - rst_strb_x <= '1'; - elsif( slave_busy = '1' ) then - NEXT_STATE <= WFAIL; - buf_dat_no_more_data_x <= '1'; - elsif( slave_ack = '1' ) then - NEXT_STATE <= WOK; - buf_dat_write_ack_x <= '1'; - else - NEXT_STATE <= WACC; - end if; - when WFAIL => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when WOK => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when NOONE => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when DONE => NEXT_STATE <= SLEEP; -- ????? - -- Just in case... - when others => NEXT_STATE <= SLEEP; - end case; -end process TRANSFORM; - --- Output decoding -DECODE: process(CURRENT_STATE) -begin - case CURRENT_STATE is - when SLEEP => bsm <= x"0"; - when RACC => bsm <= x"1"; - when ROK => bsm <= x"2"; - when RFAIL => bsm <= x"3"; - when WACC => bsm <= x"4"; - when WOK => bsm <= x"5"; - when NOONE => bsm <= x"6"; - when DONE => bsm <= x"7"; - when others => bsm <= x"f"; - end case; -end process DECODE; - --- Outputs -dat_dataready_out <= buf_dat_dataready; -dat_no_more_data_out <= buf_dat_no_more_data; -dat_unknown_addr_out <= buf_dat_unknown_addr; -dat_write_ack_out <= buf_dat_write_ack; - -slv_select_out <= buf_slv_select; -slv_read_out <= buf_slv_read; -slv_write_out <= buf_slv_write; - -stat(31 downto 9) <= (others => '0'); -stat(8) <= rst_strb; -stat(7 downto 4) <= (others => '0'); -stat(3 downto 0) <= bsm; - -end Behavioral; diff --git a/oldfiles/bus_handler_oepb.vhd b/oldfiles/bus_handler_oepb.vhd deleted file mode 100644 index 9b959e7..0000000 --- a/oldfiles/bus_handler_oepb.vhd +++ /dev/null @@ -1,264 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - -entity bus_handler_oepb is - generic( - AMOUNT_OF_SLAVES : integer := 17 - ); - port( - CLK_IN : in std_logic; - CLEAR_IN : in std_logic; - RESET_IN : in std_logic; - DAT_ADDR_IN : in std_logic_vector(15 downto 0); -- address bus - DAT_DATA_IN : in std_logic_vector(31 downto 0); -- data from TRB endpoint - DAT_DATA_OUT : out std_logic_vector(31 downto 0); -- data to TRB endpoint - DAT_READ_ENABLE_IN : in std_logic; -- read pulse - DAT_WRITE_ENABLE_IN : in std_logic; -- write pulse - DAT_TIMEOUT_IN : in std_logic; -- access timed out - DAT_DATAREADY_OUT : out std_logic; -- your data, master, as requested - DAT_WRITE_ACK_OUT : out std_logic; -- data accepted - DAT_NO_MORE_DATA_OUT : out std_logic; -- don't disturb me now - DAT_UNKNOWN_ADDR_OUT : out std_logic; -- noone here to answer your request - SLV_SELECT_OUT : out std_logic_vector(AMOUNT_OF_SLAVES-1 downto 0); -- select signal for slave entities - SLV_READ_OUT : out std_logic; -- read signal for slave entities - SLV_WRITE_OUT : out std_logic; -- write signal for slave entities - SLV_BUSY_IN : in std_logic; -- wired OR busy from slave entities - SLV_ACK_IN : in std_logic; -- slave has accepted access - SLV_DATA_IN : in std_logic_vector(31 downto 0); -- read data from slaves - SLV_DATA_OUT : out std_logic_vector(31 downto 0); -- write data to slaves - STAT : out std_logic_vector(31 downto 0) - ); -end entity; - -architecture Behavioral of bus_handler_oepb is - --- Signals - type STATES is (SLEEP,RACC,WACC,RFAIL,WFAIL,ROK,WOK,STATW,STATS,STATD,NOONE,DONE); - signal CURRENT_STATE, NEXT_STATE: STATES; - - signal bsm : std_logic_vector(3 downto 0); - - signal rst_strb_x : std_logic; - signal rst_strb : std_logic; - signal buf_dat_write_ack_x : std_logic; - signal buf_dat_write_ack : std_logic; - signal buf_dat_dataready_x : std_logic; - signal buf_dat_dataready : std_logic; - signal buf_dat_no_more_data_x : std_logic; - signal buf_dat_no_more_data : std_logic; - signal buf_dat_unknown_addr_x : std_logic; - signal buf_dat_unknown_addr : std_logic; - - signal buf_slv_select_x : std_logic_vector(AMOUNT_OF_SLAVES-1 downto 0); - signal buf_slv_select : std_logic_vector(AMOUNT_OF_SLAVES-1 downto 0); - signal buf_slv_read : std_logic; - signal buf_slv_write : std_logic; - signal no_slave_reg_x : std_logic; - signal no_slave_mem_x : std_logic; - signal no_slave : std_logic; - signal slave_busy : std_logic; - signal slave_ack : std_logic; - -begin - --- Memory map: --- full range: 8000 - FFFF --- 8000 - 80FF ADC (17) --- 9000 - 9FFF SPI --- A000 - A7FF Threshold Bytes (16) --- F000 - F00F Test readout addresses (15-0) - - --- 80xx => single registers --- axxx => pedestal memory APV[15:0] --- bxxx => threshold memory APV[15:0] - ------------------------------------------------------------------------------- --- This part is crucial, as ACK and BSY are tristate signals! ------------------------------------------------------------------------------- - -THE_ADDRESS_DEC_REG_PROC: process( dat_addr_in ) - begin - buf_slv_select_x <= (others => '0'); - no_slave_reg_x <= '0'; - if dat_addr_in(15 downto 4) = x"F00" then - buf_slv_select_x(to_integer(unsigned(dat_addr_in(3 downto 0)))) <= '1'; - elsif dat_addr_in(15 downto 11) = x"A" & '0' then - buf_slv_select_x(16) <= '1'; - elsif dat_addr_in(15 downto 8) = x"80" then - buf_slv_select_x(17) <= '1'; - else - no_slave_reg_x <= '1'; - end if; - end process; - - - - --- synchronize signals -THE_SYNC_PROC: process( clk_in ) -begin - if( rising_edge(clk_in) ) then - buf_slv_select <= buf_slv_select_x; - no_slave <= no_slave_reg_x and no_slave_mem_x; - end if; -end process THE_SYNC_PROC; - - --- Slave response lines -slave_ack <= slv_ack_in when ( no_slave = '0' ) else '0'; -slave_busy <= slv_busy_in when ( no_slave = '0' ) else '0'; -dat_data_out <= slv_data_in when ( no_slave = '0' ) else (others => '0'); - --- Data tunneling to slave entities -slv_data_out <= dat_data_in; - --- Read / write strobe -THE_READ_WRITE_STROBE_PROC: process( clk_in, clear_in ) -begin - if( clear_in = '1' ) then - buf_slv_read <= '0'; - buf_slv_write <= '0'; - elsif( rising_edge(clk_in) ) then - if( reset_in = '1' ) then - buf_slv_read <= '0'; - buf_slv_write <= '0'; - elsif( (dat_read_enable_in = '1') and (dat_write_enable_in = '0') ) then - buf_slv_read <= '1'; - buf_slv_write <= '0'; - elsif( (dat_read_enable_in = '0') and (dat_write_enable_in = '1') ) then - buf_slv_read <= '0'; - buf_slv_write <= '1'; - elsif( rst_strb = '1' ) then - buf_slv_read <= '0'; - buf_slv_write <= '0'; - end if; - end if; -end process THE_READ_WRITE_STROBE_PROC; - - - --- The main state machine --- State memory process -STATE_MEM: process( clk_in, clear_in ) -begin - if( clear_in = '1' ) then - CURRENT_STATE <= SLEEP; - rst_strb <= '0'; - buf_dat_dataready <= '0'; - buf_dat_no_more_data <= '0'; - buf_dat_write_ack <= '0'; - buf_dat_unknown_addr <= '0'; - elsif( rising_edge(clk_in) ) then - if( reset_in = '1' ) then - CURRENT_STATE <= SLEEP; - rst_strb <= '0'; - buf_dat_dataready <= '0'; - buf_dat_no_more_data <= '0'; - buf_dat_write_ack <= '0'; - buf_dat_unknown_addr <= '0'; - else - CURRENT_STATE <= NEXT_STATE; - rst_strb <= rst_strb_x; - buf_dat_dataready <= buf_dat_dataready_x; - buf_dat_no_more_data <= buf_dat_no_more_data_x; - buf_dat_write_ack <= buf_dat_write_ack_x; - buf_dat_unknown_addr <= buf_dat_unknown_addr_x; - end if; - end if; -end process STATE_MEM; - --- Transition matrix -TRANSFORM: process(CURRENT_STATE, no_slave, buf_slv_read, buf_slv_write, slave_ack, slave_busy, dat_timeout_in ) -begin - NEXT_STATE <= SLEEP; - rst_strb_x <= '0'; - buf_dat_dataready_x <= '0'; - buf_dat_no_more_data_x <= '0'; - buf_dat_write_ack_x <= '0'; - buf_dat_unknown_addr_x <= '0'; - case CURRENT_STATE is - when SLEEP => if ( (no_slave = '1') and ((buf_slv_read = '1') or (buf_slv_write = '1')) ) then - NEXT_STATE <= NOONE; - buf_dat_unknown_addr_x <= '1'; - elsif( (buf_slv_read = '1') and (buf_slv_write = '0') ) then - NEXT_STATE <= RACC; - elsif( (buf_slv_read = '0') and (buf_slv_write = '1') ) then - NEXT_STATE <= WACC; - else - NEXT_STATE <= SLEEP; - end if; - when RACC => if ( dat_timeout_in = '1' ) then - NEXT_STATE <= DONE; - rst_strb_x <= '1'; - elsif( slave_busy = '1' ) then - NEXT_STATE <= RFAIL; - buf_dat_no_more_data_x <= '1'; - elsif( slave_ack = '1' ) then - NEXT_STATE <= ROK; - buf_dat_dataready_x <= '1'; - else - NEXT_STATE <= RACC; - end if; - when RFAIL => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when ROK => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when WACC => if ( dat_timeout_in = '1' ) then - NEXT_STATE <= DONE; - rst_strb_x <= '1'; - elsif( slave_busy = '1' ) then - NEXT_STATE <= WFAIL; - buf_dat_no_more_data_x <= '1'; - elsif( slave_ack = '1' ) then - NEXT_STATE <= WOK; - buf_dat_write_ack_x <= '1'; - else - NEXT_STATE <= WACC; - end if; - when WFAIL => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when WOK => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when NOONE => NEXT_STATE <= DONE; - rst_strb_x <= '1'; - when DONE => NEXT_STATE <= SLEEP; -- ????? - -- Just in case... - when others => NEXT_STATE <= SLEEP; - end case; -end process TRANSFORM; - --- Output decoding -DECODE: process(CURRENT_STATE) -begin - case CURRENT_STATE is - when SLEEP => bsm <= x"0"; - when RACC => bsm <= x"1"; - when ROK => bsm <= x"2"; - when RFAIL => bsm <= x"3"; - when WACC => bsm <= x"4"; - when WOK => bsm <= x"5"; - when NOONE => bsm <= x"6"; - when DONE => bsm <= x"7"; - when others => bsm <= x"f"; - end case; -end process DECODE; - --- Outputs -dat_dataready_out <= buf_dat_dataready; -dat_no_more_data_out <= buf_dat_no_more_data; -dat_unknown_addr_out <= buf_dat_unknown_addr; -dat_write_ack_out <= buf_dat_write_ack; - -slv_select_out <= buf_slv_select; -slv_read_out <= buf_slv_read; -slv_write_out <= buf_slv_write; - -stat(31 downto 9) <= (others => '0'); -stat(8) <= rst_strb; -stat(7 downto 4) <= (others => '0'); -stat(3 downto 0) <= bsm; - -end Behavioral; diff --git a/oldfiles/etrax_interface.vhd b/oldfiles/etrax_interface.vhd deleted file mode 100644 index 3137620..0000000 --- a/oldfiles/etrax_interface.vhd +++ /dev/null @@ -1,274 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -use IEEE.NUMERIC_STD.all; - - -entity etrax_interface is - generic( - STATUS_REGISTERS : integer := 4; - CONTROL_REGISTERS : integer := 4 - ); - port ( - CLK : in std_logic; - RESET : in std_logic; - --Connection to Etrax - ETRAX_DATA_BUS_B : out std_logic_vector(17 downto 0); - ETRAX_DATA_BUS_C : in std_logic_vector(17 downto 0); - ETRAX_BUS_BUSY : out std_logic; - --Connection to internal FPGA logic (all addresses above 0x100) - INTERNAL_DATA_OUT : out std_logic_vector(31 downto 0); - INTERNAL_DATA_IN : in std_logic_vector(31 downto 0); - INTERNAL_READ_OUT : out std_logic; - INTERNAL_WRITE_OUT : out std_logic; - INTERNAL_DATAREADY_IN : in std_logic; - INTERNAL_ADDRESS_OUT : out std_logic_vector(15 downto 0); - --Easy-to-use status and control registers (Addresses 0-15 (stat) and 16-31 (ctrl) - FPGA_REGISTER_IN : in std_logic_vector(STATUS_REGISTERS*32-1 downto 0); - FPGA_REGISTER_OUT : out std_logic_vector(CONTROL_REGISTERS*32-1 downto 0); - --Reset FPGA via Etrax - EXTERNAL_RESET : out std_logic; - STAT : out std_logic_vector(15 downto 0) - ); -end etrax_interface; -architecture etrax_interface of etrax_interface is - - component signal_sync is - generic( - WIDTH : integer := 2; - DEPTH : integer := 1 - ); - port( - RESET : in std_logic; - CLK0 : in std_logic; - CLK1 : in std_logic; - D_IN : in std_logic_vector(WIDTH-1 downto 0); - D_OUT : out std_logic_vector(WIDTH-1 downto 0) - ); - end component; - - type ETRAX_RW_STATE_MACHINE is (IDLE, SAVE_DATA_1 ,SAVE_DATA_2 , SEND_DATA_1, SEND_DATA_2, WAIT_FOR_DATA, SEND_EXTERNAL_TRIGGER ); --SEND_VALID - signal ETRAX_RW_STATE_currentstate,ETRAX_RW_STATE_nextstate : ETRAX_RW_STATE_MACHINE; - - signal etrax_trigger_pulse : std_logic; - signal saved_address : std_logic_vector (15 downto 0); - signal saved_data : std_logic_vector(31 downto 0); - signal saved_data_fpga : std_logic_vector(31 downto 0); - - signal read_cycle : std_logic; - signal write_cycle : std_logic; - - signal etrax_is_ready_to_read_i : std_logic; - signal internal_reset_i : std_logic; - signal communication_state : std_logic_vector(3 downto 0); - signal buf_FPGA_REGISTER_OUT : std_logic_vector(CONTROL_REGISTERS*32-1 downto 0); - signal last_BUSC : std_logic_vector(17 downto 16); - signal reg_BUSC : std_logic_vector(17 downto 0); - - signal delayed_internal_reset_i : std_logic; - -begin - - STAT(3 downto 0) <= communication_state; - STAT(4) <= read_cycle; - STAT(5) <= write_cycle; - STAT(6) <= reg_BUSC(16); - STAT(7) <= etrax_trigger_pulse; - STAT(8) <= reg_BUSC(17); - - MAKE_RESET: process (CLK) - begin - if rising_edge(CLK) then - if (ETRAX_DATA_BUS_C(16)='1' and ETRAX_DATA_BUS_C(17)='1') or RESET = '1' then - internal_reset_i <= '1'; - else - internal_reset_i <= '0'; - end if; - end if; - end process MAKE_RESET; - - BUSC_SYNC : signal_sync - generic map( - WIDTH => 18, - DEPTH => 1 - ) - port map( - RESET => RESET, - CLK0 => CLK, - CLK1 => CLK, - D_IN => ETRAX_DATA_BUS_C, - D_OUT => reg_BUSC - ); - - THE_RESET_DELAY : signal_sync - generic map( - WIDTH => 1, - DEPTH => 4 - ) - port map( - RESET => '0', - CLK0 => CLK, - CLK1 => CLK, - D_IN(0) => internal_reset_i, - D_OUT(0) => delayed_internal_reset_i - ); - - process(CLK) - begin - if rising_edge(CLK) then - last_BUSC <= reg_BUSC(17 downto 16); - end if; - end process; - - etrax_trigger_pulse <= (last_BUSC(16) xor reg_BUSC(16)) and not delayed_internal_reset_i; - - EXTERNAL_RESET <= internal_reset_i or delayed_internal_reset_i; - ETRAX_BUS_BUSY <= '0' when ETRAX_RW_STATE_currentstate = IDLE else '1'; - - read_cycle <= saved_address(15); - write_cycle <= not saved_address(15); - - ETRAX_FPGA_COMUNICATION_CLOCK : process (CLK) - begin - if rising_edge(CLK) then - if delayed_internal_reset_i = '1' then - ETRAX_RW_STATE_currentstate <= IDLE; - else - ETRAX_RW_STATE_currentstate <= ETRAX_RW_STATE_nextstate; - end if; - end if; - end process; - - ETRAX_FPGA_COMUNICATION: process (ETRAX_RW_STATE_currentstate,etrax_trigger_pulse, --saved_rw_mode(15) - read_cycle, write_cycle, INTERNAL_DATAREADY_IN, saved_address) - begin - communication_state <= x"1"; - ETRAX_RW_STATE_nextstate <= ETRAX_RW_STATE_currentstate; - case ETRAX_RW_STATE_currentstate is - when IDLE => - communication_state <= x"1"; - if etrax_trigger_pulse = '1' then - ETRAX_RW_STATE_nextstate <= SAVE_DATA_1; - end if; - - when SAVE_DATA_1 => - communication_state <= x"2"; - if read_cycle = '1' then - ETRAX_RW_STATE_nextstate <= SEND_EXTERNAL_TRIGGER; - elsif etrax_trigger_pulse = '1' then - ETRAX_RW_STATE_nextstate <= SAVE_DATA_2; - end if; - - when SAVE_DATA_2 => - communication_state <= x"3"; - if etrax_trigger_pulse = '1' then - ETRAX_RW_STATE_nextstate <= SEND_EXTERNAL_TRIGGER; - end if; - - when SEND_EXTERNAL_TRIGGER => - communication_state <= x"4"; - if read_cycle = '1' and (INTERNAL_DATAREADY_IN = '1' or saved_address(14 downto 5) = 0) then - ETRAX_RW_STATE_nextstate <= SEND_DATA_1; - elsif write_cycle = '1' then - ETRAX_RW_STATE_nextstate <= IDLE; - else - ETRAX_RW_STATE_nextstate <= WAIT_FOR_DATA; - end if; - - when WAIT_FOR_DATA => - communication_state <= x"5"; - if INTERNAL_DATAREADY_IN = '1' then - ETRAX_RW_STATE_nextstate <= SEND_DATA_1; - end if; - - when SEND_DATA_1 => - communication_state <= x"6"; - if etrax_trigger_pulse = '1' then - ETRAX_RW_STATE_nextstate <= SEND_DATA_2; - end if; - - when SEND_DATA_2 => - communication_state <= x"7"; - if etrax_trigger_pulse = '1' then - ETRAX_RW_STATE_nextstate <= IDLE; - end if; - end case; - end process ETRAX_FPGA_COMUNICATION; - - REGISTER_ETRAX_BUS: process (CLK) - begin - if rising_edge(CLK) then - if delayed_internal_reset_i = '1' then - saved_address <= (others => '0'); - saved_data <= (others => '0'); - elsif ETRAX_RW_STATE_currentstate = IDLE and etrax_trigger_pulse = '1' then - saved_address(15 downto 0) <= reg_BUSC(15 downto 0); - elsif ETRAX_RW_STATE_currentstate = SAVE_DATA_1 and etrax_trigger_pulse = '1' then - saved_data(31 downto 16) <= reg_BUSC(15 downto 0); - elsif ETRAX_RW_STATE_currentstate = SAVE_DATA_2 and etrax_trigger_pulse = '1' then - saved_data(15 downto 0) <= reg_BUSC(15 downto 0); - end if; - end if; - end process REGISTER_ETRAX_BUS; - - - INTERNAL_ADDRESS_OUT <= '0' & saved_address(14 downto 0); - INTERNAL_DATA_OUT <= saved_data; - - INTERNAL_WRITE_OUT <= '1' when write_cycle = '1' and saved_address(14 downto 5) /= 0 - and ETRAX_RW_STATE_currentstate = SEND_EXTERNAL_TRIGGER - else '0'; - INTERNAL_READ_OUT <= '1' when read_cycle = '1' and saved_address(14 downto 5) /= 0 - and ETRAX_RW_STATE_currentstate = SAVE_DATA_1 - else '0'; - - FPGA_REGISTER_OUT <= buf_FPGA_REGISTER_OUT; - - ETRAX_DATA_BUS_CHOOSE : process (CLK) - begin - if rising_edge(CLK) then - if delayed_internal_reset_i = '1' then - ETRAX_DATA_BUS_B(16 downto 0) <= "0"& x"0000"; - elsif ETRAX_RW_STATE_currentstate = SEND_DATA_1 then - ETRAX_DATA_BUS_B(15 downto 0) <= saved_data_fpga(31 downto 16); - ETRAX_DATA_BUS_B(16) <= '1'; - elsif ETRAX_RW_STATE_currentstate = SEND_DATA_2 then - ETRAX_DATA_BUS_B(15 downto 0) <= saved_data_fpga(15 downto 0); - ETRAX_DATA_BUS_B(16) <= '1'; - else - ETRAX_DATA_BUS_B(16 downto 0) <= "0"& x"0000"; - end if; - end if; - end process ETRAX_DATA_BUS_CHOOSE; - - ETRAX_DATA_BUS_B(17) <= '1'; - - DATA_SOURCE_SELECT : process (CLK) - variable stat_num : integer range 0 to STATUS_REGISTERS-1; - variable ctrl_num : integer range 0 to CONTROL_REGISTERS-1; - begin - if rising_edge(CLK) then - stat_num := conv_integer(saved_address(3 downto 0)); - ctrl_num := conv_integer(saved_address(3 downto 0)); - if read_cycle = '1' then - if saved_address(14 downto 5) = 0 then - if saved_address(4) = '0' then --status regs - saved_data_fpga <= FPGA_REGISTER_IN((stat_num)*32+31 downto stat_num*32); - elsif saved_address(4) = '1' then - saved_data_fpga <= buf_FPGA_REGISTER_OUT((ctrl_num)*32+31 downto (ctrl_num)*32); - else - saved_data_fpga <= (others => '0'); - end if; - elsif INTERNAL_DATAREADY_IN = '1' then - saved_data_fpga <= INTERNAL_DATA_IN; - end if; - elsif write_cycle = '1' and ETRAX_RW_STATE_currentstate = SEND_EXTERNAL_TRIGGER then - if saved_address(4) = '1' and saved_address(14 downto 5) = 0 then - buf_FPGA_REGISTER_OUT((ctrl_num+1)*32-1 downto (ctrl_num)*32) <= saved_data; - end if; - end if; - - end if; - end process DATA_SOURCE_SELECT; -end architecture; diff --git a/oldfiles/rom_16x8.vhd b/oldfiles/rom_16x8.vhd deleted file mode 100644 index f664fe8..0000000 --- a/oldfiles/rom_16x8.vhd +++ /dev/null @@ -1,47 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - -entity rom_16x8 is - generic( - INIT0 : std_logic_vector(15 downto 0) := x"12A0"; - INIT1 : std_logic_vector(15 downto 0) := x"23b1"; - INIT2 : std_logic_vector(15 downto 0) := x"34c2"; - INIT3 : std_logic_vector(15 downto 0) := x"49d3"; - INIT4 : std_logic_vector(15 downto 0) := x"56e5"; - INIT5 : std_logic_vector(15 downto 0) := x"67d5"; - INIT6 : std_logic_vector(15 downto 0) := x"7818"; - INIT7 : std_logic_vector(15 downto 0) := x"8927" - ); - port( - CLK : in std_logic; - a : in std_logic_vector(2 downto 0); - dout : out std_logic_vector(15 downto 0) - ); -end entity; - -architecture rom_16x8_arch of rom_16x8 is - type ram_t is array(0 to 7) of std_logic_vector(15 downto 0); - SIGNAL rom : ram_t := (INIT0, INIT1, INIT2, INIT3, INIT4, INIT5, INIT6, INIT7); -begin - rom(0) <= INIT0; - rom(1) <= INIT1; - rom(2) <= INIT2; - rom(3) <= INIT3; - rom(4) <= INIT4; - rom(5) <= INIT5; - rom(6) <= INIT6; - rom(7) <= INIT7; - - process(CLK) - begin - if rising_edge(CLK) then - dout <= rom(conv_integer(a)); - end if; - end process; - -end architecture; \ No newline at end of file diff --git a/oldfiles/serdes_sync_0/serdes_sync_0.vhd b/oldfiles/serdes_sync_0/serdes_sync_0.vhd deleted file mode 100644 index e16adaf..0000000 --- a/oldfiles/serdes_sync_0/serdes_sync_0.vhd +++ /dev/null @@ -1,435 +0,0 @@ - --- --- Verific VHDL Description of module DCUA --- - --- DCUA is a black-box. Cannot print a valid VHDL entity description for it - --- --- Verific VHDL Description of module serdes_sync_0rsl_core --- - --- serdes_sync_0rsl_core is a black-box. Cannot print a valid VHDL entity description for it - --- --- Verific VHDL Description of module serdes_sync_0sll_core --- - --- serdes_sync_0sll_core is a black-box. Cannot print a valid VHDL entity description for it - --- --- Verific VHDL Description of module serdes_sync_0 --- - -library ieee ; -use ieee.std_logic_1164.all ; - -library ecp5um ; -use ecp5um.components.all ; - -entity serdes_sync_0 is - port (hdoutp: out std_logic; - hdoutn: out std_logic; - hdinp: in std_logic; - hdinn: in std_logic; - rxrefclk: in std_logic; - rx_pclk: out std_logic; - tx_pclk: out std_logic; - txdata: in std_logic_vector(7 downto 0); - tx_k: in std_logic_vector(0 downto 0); - tx_force_disp: in std_logic_vector(0 downto 0); - tx_disp_sel: in std_logic_vector(0 downto 0); - rxdata: out std_logic_vector(7 downto 0); - rx_k: out std_logic_vector(0 downto 0); - rx_disp_err: out std_logic_vector(0 downto 0); - rx_cv_err: out std_logic_vector(0 downto 0); - tx_idle_c: in std_logic; - signal_detect_c: in std_logic; - rx_los_low_s: out std_logic; - lsm_status_s: out std_logic; - rx_cdr_lol_s: out std_logic; - sli_rst: in std_logic; - tx_pwrup_c: in std_logic; - rx_pwrup_c: in std_logic; - sci_wrdata: in std_logic_vector(7 downto 0); - sci_addr: in std_logic_vector(5 downto 0); - sci_rddata: out std_logic_vector(7 downto 0); - sci_en_dual: in std_logic; - sci_sel_dual: in std_logic; - sci_en: in std_logic; - sci_sel: in std_logic; - sci_rd: in std_logic; - sci_wrn: in std_logic; - sci_int: out std_logic; - cyawstn: in std_logic; - serdes_pdb: in std_logic; - pll_refclki: in std_logic; - rsl_disable: in std_logic; - rsl_rst: in std_logic; - serdes_rst_dual_c: in std_logic; - rst_dual_c: in std_logic; - tx_serdes_rst_c: in std_logic; - tx_pcs_rst_c: in std_logic; - pll_lol: out std_logic; - rsl_tx_rdy: out std_logic; - rx_serdes_rst_c: in std_logic; - rx_pcs_rst_c: in std_logic; - rsl_rx_rdy: out std_logic - ); - -end entity serdes_sync_0; - -architecture v1 of serdes_sync_0 is - component serdes_sync_0rsl_core is - generic (pnum_channels: integer := 1; - pprotocol: string := "G8B10B"; - pserdes_mode: string := "RX AND TX"; - pport_tx_rdy: string := "ENABLED"; - pwait_tx_rdy: integer := 3000; - pport_rx_rdy: string := "ENABLED"; - pwait_rx_rdy: integer := 3000); - port (rui_rst: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(132) - rui_serdes_rst_dual_c: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(133) - rui_rst_dual_c: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(134) - rui_rsl_disable: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(135) - rui_tx_ref_clk: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(137) - rui_tx_serdes_rst_c: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(138) - rui_tx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(139) - rdi_pll_lol: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(140) - rui_rx_ref_clk: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(142) - rui_rx_serdes_rst_c: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(143) - rui_rx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(144) - rdi_rx_los_low_s: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(145) - rdi_rx_cdr_lol_s: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(146) - rdo_serdes_rst_dual_c: out std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(149) - rdo_rst_dual_c: out std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(150) - ruo_tx_rdy: out std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(152) - rdo_tx_serdes_rst_c: out std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(153) - rdo_tx_pcs_rst_c: out std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(154) - ruo_rx_rdy: out std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(156) - rdo_rx_serdes_rst_c: out std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(157) - rdo_rx_pcs_rst_c: out std_logic_vector(3 downto 0) -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(158) - ); - - end component serdes_sync_0rsl_core; -- syn_black_box=1 -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/rsl_core_syn.v(88) - component serdes_sync_0sll_core is - generic (PPROTOCOL: string := "G8B10B"; - PLOL_SETTING: integer := 1; - PDYN_RATE_CTRL: string := "DISABLED"; - PPCIE_MAX_RATE: string := "2.5"; - PDIFF_VAL_LOCK: integer := 19; - PDIFF_VAL_UNLOCK: integer := 131; - PPCLK_TC: integer := 65536; - PDIFF_DIV11_VAL_LOCK: integer := 0; - PDIFF_DIV11_VAL_UNLOCK: integer := 0; - PPCLK_DIV11_TC: integer := 0); - port (sli_rst: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(125) - sli_refclk: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(126) - sli_pclk: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(127) - sli_div2_rate: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(128) - sli_div11_rate: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(129) - sli_gear_mode: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(130) - sli_cpri_mode: in std_logic_vector(2 downto 0); -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(131) - sli_pcie_mode: in std_logic; -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(132) - slo_plol: out std_logic -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(135) - ); - - end component serdes_sync_0sll_core; -- syn_black_box=1 -- /d/jspc29/lattice/diamond/3.10_x64/ispfpga/sa5p00/data/sll_core_template.v(107) - signal n48,n47,n1,n2,n3,n4,rx_pclk_c,tx_pclk_c,n5,n6,n7,n8,n9, - n10,n11,n12,rx_los_low_s_c,n13,n14,n15,n16,rx_cdr_lol_s_c,n17, - n18,rsl_tx_pcs_rst_c,rsl_rx_pcs_rst_c,rsl_rx_serdes_rst_c,rsl_rst_dual_c, - rsl_serdes_rst_dual_c,rsl_tx_serdes_rst_c,n19,n20,n21,n22,n23, - n24,n25,n26,n27,n28,n29,n30,n31,n32,n33,n34,n35,n36,n37, - n38,n39,n40,n41,n42,n43,n44,n45,n46,n49,n106,n105,n50,n51, - n52,n53,n54,n55,n56,n57,n58,n59,n60,n61,n62,n63,n64,n65, - n66,n67,n68,n69,n70,n71,n72,n73,n74,n75,n76,n77,n78,n79, - n80,n81,n82,n83,n84,n85,n86,n87,n88,n89,n90,n91,n92,n93, - n94,n95,n96,n97,n98,n99,n100,n101,n102,n103,n104,n115,n114, - n113,pll_lol_c,n125,n124,n116,n117,n118,n119,n120,n121,n122, - n123,\_Z\,n127,n126,gnd,pwr : std_logic; - attribute LOC : string; - attribute LOC of DCU0_inst : label is "DCU0"; - attribute CHAN : string; - attribute CHAN of DCU0_inst : label is "CH0"; -begin - rx_pclk <= rx_pclk_c; - tx_pclk <= tx_pclk_c; - rx_los_low_s <= rx_los_low_s_c; - rx_cdr_lol_s <= rx_cdr_lol_s_c; - pll_lol <= pll_lol_c; - DCU0_inst: component DCUA generic map (D_MACROPDB=>"0b1",D_IB_PWDNB=>"0b1", - D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", - D_CDR_LOL_SET=>"0b11",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", - D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", - D_SYNC_ND_EN=>"0b0",CH0_UC_MODE=>"0b1",CH0_PCIE_MODE=>"0b0",CH0_RIO_MODE=>"0b0", - CH0_WA_MODE=>"0b0",CH0_INVERT_RX=>"0b0",CH0_INVERT_TX=>"0b0",CH0_PRBS_SELECTION=>"0b0", - CH0_GE_AN_ENABLE=>"0b0",CH0_PRBS_LOCK=>"0b0",CH0_PRBS_ENABLE=>"0b0", - CH0_ENABLE_CG_ALIGN=>"0b1",CH0_TX_GEAR_MODE=>"0b0",CH0_RX_GEAR_MODE=>"0b0", - CH0_PCS_DET_TIME_SEL=>"0b00",CH0_PCIE_EI_EN=>"0b0",CH0_TX_GEAR_BYPASS=>"0b0", - CH0_ENC_BYPASS=>"0b0",CH0_SB_BYPASS=>"0b0",CH0_RX_SB_BYPASS=>"0b0", - CH0_WA_BYPASS=>"0b0",CH0_DEC_BYPASS=>"0b0",CH0_CTC_BYPASS=>"0b1", - CH0_RX_GEAR_BYPASS=>"0b0",CH0_LSM_DISABLE=>"0b0",CH0_MATCH_2_ENABLE=>"0b0", - CH0_MATCH_4_ENABLE=>"0b1",CH0_MIN_IPG_CNT=>"0b11",CH0_CC_MATCH_1=>"0x1BC", - CH0_CC_MATCH_2=>"0x11C",CH0_CC_MATCH_3=>"0x11C",CH0_CC_MATCH_4=>"0x11C", - CH0_UDF_COMMA_MASK=>"0x0ff",CH0_UDF_COMMA_A=>"0x083",CH0_UDF_COMMA_B=>"0x07C", - CH0_RX_DCO_CK_DIV=>"0b000",CH0_RCV_DCC_EN=>"0b0",CH0_TPWDNB=>"0b1", - CH0_RATE_MODE_TX=>"0b0",CH0_RTERM_TX=>"0d19",CH0_TX_CM_SEL=>"0b00", - CH0_TDRV_PRE_EN=>"0b0",CH0_TDRV_SLICE0_SEL=>"0b00",CH0_TDRV_SLICE1_SEL=>"0b00", - CH0_TDRV_SLICE2_SEL=>"0b01",CH0_TDRV_SLICE3_SEL=>"0b01",CH0_TDRV_SLICE4_SEL=>"0b01", - CH0_TDRV_SLICE5_SEL=>"0b00",CH0_TDRV_SLICE0_CUR=>"0b000",CH0_TDRV_SLICE1_CUR=>"0b000", - CH0_TDRV_SLICE2_CUR=>"0b11",CH0_TDRV_SLICE3_CUR=>"0b11",CH0_TDRV_SLICE4_CUR=>"0b01", - CH0_TDRV_SLICE5_CUR=>"0b00",CH0_TDRV_DAT_SEL=>"0b00",CH0_TX_DIV11_SEL=>"0b0", - CH0_RPWDNB=>"0b1",CH0_RATE_MODE_RX=>"0b0",CH0_RX_DIV11_SEL=>"0b0", - CH0_SEL_SD_RX_CLK=>"0b1",CH0_FF_RX_H_CLK_EN=>"0b0",CH0_FF_RX_F_CLK_DIS=>"0b0", - CH0_FF_TX_H_CLK_EN=>"0b0",CH0_FF_TX_F_CLK_DIS=>"0b0",CH0_TDRV_POST_EN=>"0b0", - CH0_TX_POST_SIGN=>"0b0",CH0_TX_PRE_SIGN=>"0b0",CH0_REQ_LVL_SET=>"0b00", - CH0_REQ_EN=>"0b1",CH0_RTERM_RX=>"0d22",CH0_RXTERM_CM=>"0b11",CH0_PDEN_SEL=>"0b1", - CH0_RXIN_CM=>"0b11",CH0_LEQ_OFFSET_SEL=>"0b0",CH0_LEQ_OFFSET_TRIM=>"0b000", - CH0_RLOS_SEL=>"0b1",CH0_RX_LOS_LVL=>"0b100",CH0_RX_LOS_CEQ=>"0b11", - CH0_RX_LOS_HYST_EN=>"0b0",CH0_RX_LOS_EN=>"0b1",CH0_LDR_RX2CORE_SEL=>"0b0", - CH0_LDR_CORE2TX_SEL=>"0b0",D_TX_MAX_RATE=>"2",CH0_CDR_MAX_RATE=>"2", - CH0_TXAMPLITUDE=>"0d800",CH0_TXDEPRE=>"DISABLED",CH0_TXDEPOST=>"DISABLED", - CH0_PROTOCOL=>"G8B10B",D_ISETLOS=>"0d0",D_SETIRPOLY_AUX=>"0b10",D_SETICONST_AUX=>"0b01", - D_SETIRPOLY_CH=>"0b10",D_SETICONST_CH=>"0b10",D_REQ_ISET=>"0b001", - D_PD_ISET=>"0b00",D_DCO_CALIB_TIME_SEL=>"0b00",CH0_CDR_CNT4SEL=>"0b00", - CH0_CDR_CNT8SEL=>"0b00",CH0_DCOATDCFG=>"0b00",CH0_DCOATDDLY=>"0b00", - CH0_DCOBYPSATD=>"0b1",CH0_DCOCALDIV=>"0b000",CH0_DCOCTLGI=>"0b011", - CH0_DCODISBDAVOID=>"0b0",CH0_DCOFLTDAC=>"0b00",CH0_DCOFTNRG=>"0b001", - CH0_DCOIOSTUNE=>"0b010",CH0_DCOITUNE=>"0b00",CH0_DCOITUNE4LSB=>"0b010", - CH0_DCOIUPDNX2=>"0b1",CH0_DCONUOFLSB=>"0b100",CH0_DCOSCALEI=>"0b01", - CH0_DCOSTARTVAL=>"0b010",CH0_DCOSTEP=>"0b11",CH0_BAND_THRESHOLD=>"0d0", - CH0_AUTO_FACQ_EN=>"0b1",CH0_AUTO_CALIB_EN=>"0b1",CH0_CALIB_CK_MODE=>"0b0", - CH0_REG_BAND_OFFSET=>"0d0",CH0_REG_BAND_SEL=>"0d0",CH0_REG_IDAC_SEL=>"0d0", - CH0_REG_IDAC_EN=>"0b0",D_CMUSETISCL4VCO=>"0b000",D_CMUSETI4VCO=>"0b00", - D_CMUSETINITVCT=>"0b00",D_CMUSETZGM=>"0b000",D_CMUSETP2AGM=>"0b000", - D_CMUSETP1GM=>"0b000",D_CMUSETI4CPZ=>"0d3",D_CMUSETI4CPP=>"0d3",D_CMUSETICP4Z=>"0b101", - D_CMUSETICP4P=>"0b01",D_CMUSETBIASI=>"0b00",D_SETPLLRC=>"0d1",CH0_RX_RATE_SEL=>"0d10", - D_REFCK_MODE=>"0b001",D_TX_VCO_CK_DIV=>"0b000",D_PLL_LOL_SET=>"0b01", - D_RG_EN=>"0b0",D_RG_SET=>"0b00") - port map (CH0_HDINP=>hdinp,CH1_HDINP=>n106,CH0_HDINN=>hdinn,CH1_HDINN=>n106, - D_TXBIT_CLKP_FROM_ND=>n47,D_TXBIT_CLKN_FROM_ND=>n47,D_SYNC_ND=>n47,D_TXPLL_LOL_FROM_ND=>n47, - CH0_RX_REFCLK=>rxrefclk,CH1_RX_REFCLK=>n106,CH0_FF_RXI_CLK=>rx_pclk_c, - CH1_FF_RXI_CLK=>n105,CH0_FF_TXI_CLK=>tx_pclk_c,CH1_FF_TXI_CLK=>n105,CH0_FF_EBRD_CLK=>n48, - CH1_FF_EBRD_CLK=>n105,CH0_FF_TX_D_0=>txdata(0),CH1_FF_TX_D_0=>n106,CH0_FF_TX_D_1=>txdata(1), - CH1_FF_TX_D_1=>n106,CH0_FF_TX_D_2=>txdata(2),CH1_FF_TX_D_2=>n106,CH0_FF_TX_D_3=>txdata(3), - CH1_FF_TX_D_3=>n106,CH0_FF_TX_D_4=>txdata(4),CH1_FF_TX_D_4=>n106,CH0_FF_TX_D_5=>txdata(5), - CH1_FF_TX_D_5=>n106,CH0_FF_TX_D_6=>txdata(6),CH1_FF_TX_D_6=>n106,CH0_FF_TX_D_7=>txdata(7), - CH1_FF_TX_D_7=>n106,CH0_FF_TX_D_8=>tx_k(0),CH1_FF_TX_D_8=>n106,CH0_FF_TX_D_9=>tx_force_disp(0), - CH1_FF_TX_D_9=>n106,CH0_FF_TX_D_10=>tx_disp_sel(0),CH1_FF_TX_D_10=>n106, - CH0_FF_TX_D_11=>n47,CH1_FF_TX_D_11=>n106,CH0_FF_TX_D_12=>n106,CH1_FF_TX_D_12=>n106, - CH0_FF_TX_D_13=>n106,CH1_FF_TX_D_13=>n106,CH0_FF_TX_D_14=>n106,CH1_FF_TX_D_14=>n106, - CH0_FF_TX_D_15=>n106,CH1_FF_TX_D_15=>n106,CH0_FF_TX_D_16=>n106,CH1_FF_TX_D_16=>n106, - CH0_FF_TX_D_17=>n106,CH1_FF_TX_D_17=>n106,CH0_FF_TX_D_18=>n106,CH1_FF_TX_D_18=>n106, - CH0_FF_TX_D_19=>n106,CH1_FF_TX_D_19=>n106,CH0_FF_TX_D_20=>n106,CH1_FF_TX_D_20=>n106, - CH0_FF_TX_D_21=>n106,CH1_FF_TX_D_21=>n106,CH0_FF_TX_D_22=>n106,CH1_FF_TX_D_22=>n106, - CH0_FF_TX_D_23=>n47,CH1_FF_TX_D_23=>n106,CH0_FFC_EI_EN=>tx_idle_c,CH1_FFC_EI_EN=>n106, - CH0_FFC_PCIE_DET_EN=>n47,CH1_FFC_PCIE_DET_EN=>n106,CH0_FFC_PCIE_CT=>n47, - CH1_FFC_PCIE_CT=>n106,CH0_FFC_SB_INV_RX=>n106,CH1_FFC_SB_INV_RX=>n106, - CH0_FFC_ENABLE_CGALIGN=>n106,CH1_FFC_ENABLE_CGALIGN=>n106,CH0_FFC_SIGNAL_DETECT=>signal_detect_c, - CH1_FFC_SIGNAL_DETECT=>n106,CH0_FFC_FB_LOOPBACK=>n47,CH1_FFC_FB_LOOPBACK=>n106, - CH0_FFC_SB_PFIFO_LP=>n47,CH1_FFC_SB_PFIFO_LP=>n106,CH0_FFC_PFIFO_CLR=>n47, - CH1_FFC_PFIFO_CLR=>n106,CH0_FFC_RATE_MODE_RX=>n106,CH1_FFC_RATE_MODE_RX=>n106, - CH0_FFC_RATE_MODE_TX=>n106,CH1_FFC_RATE_MODE_TX=>n106,CH0_FFC_DIV11_MODE_RX=>n47, - CH1_FFC_DIV11_MODE_RX=>n106,CH0_FFC_DIV11_MODE_TX=>n47,CH1_FFC_DIV11_MODE_TX=>n106, - CH0_FFC_RX_GEAR_MODE=>n47,CH1_FFC_RX_GEAR_MODE=>n106,CH0_FFC_TX_GEAR_MODE=>n47, - CH1_FFC_TX_GEAR_MODE=>n106,CH0_FFC_LDR_CORE2TX_EN=>n106,CH1_FFC_LDR_CORE2TX_EN=>n106, - CH0_FFC_LANE_TX_RST=>rsl_tx_pcs_rst_c,CH1_FFC_LANE_TX_RST=>n106,CH0_FFC_LANE_RX_RST=>rsl_rx_pcs_rst_c, - CH1_FFC_LANE_RX_RST=>n106,CH0_FFC_RRST=>rsl_rx_serdes_rst_c,CH1_FFC_RRST=>n106, - CH0_FFC_TXPWDNB=>tx_pwrup_c,CH1_FFC_TXPWDNB=>n106,CH0_FFC_RXPWDNB=>rx_pwrup_c, - CH1_FFC_RXPWDNB=>n106,CH0_LDR_CORE2TX=>n106,CH1_LDR_CORE2TX=>n106,D_SCIWDATA0=>sci_wrdata(0), - D_SCIWDATA1=>sci_wrdata(1),D_SCIWDATA2=>sci_wrdata(2),D_SCIWDATA3=>sci_wrdata(3), - D_SCIWDATA4=>sci_wrdata(4),D_SCIWDATA5=>sci_wrdata(5),D_SCIWDATA6=>sci_wrdata(6), - D_SCIWDATA7=>sci_wrdata(7),D_SCIADDR0=>sci_addr(0),D_SCIADDR1=>sci_addr(1), - D_SCIADDR2=>sci_addr(2),D_SCIADDR3=>sci_addr(3),D_SCIADDR4=>sci_addr(4), - D_SCIADDR5=>sci_addr(5),D_SCIENAUX=>sci_en_dual,D_SCISELAUX=>sci_sel_dual, - CH0_SCIEN=>sci_en,CH1_SCIEN=>n106,CH0_SCISEL=>sci_sel,CH1_SCISEL=>n106, - D_SCIRD=>sci_rd,D_SCIWSTN=>sci_wrn,D_CYAWSTN=>cyawstn,D_FFC_SYNC_TOGGLE=>n106, - D_FFC_DUAL_RST=>rsl_rst_dual_c,D_FFC_MACRO_RST=>rsl_serdes_rst_dual_c, - D_FFC_MACROPDB=>serdes_pdb,D_FFC_TRST=>rsl_tx_serdes_rst_c,CH0_FFC_CDR_EN_BITSLIP=>n47, - CH1_FFC_CDR_EN_BITSLIP=>n106,D_SCAN_ENABLE=>n47,D_SCAN_IN_0=>n47,D_SCAN_IN_1=>n47, - D_SCAN_IN_2=>n47,D_SCAN_IN_3=>n47,D_SCAN_IN_4=>n47,D_SCAN_IN_5=>n47, - D_SCAN_IN_6=>n47,D_SCAN_IN_7=>n47,D_SCAN_MODE=>n47,D_SCAN_RESET=>n47, - D_CIN0=>n47,D_CIN1=>n47,D_CIN2=>n47,D_CIN3=>n47,D_CIN4=>n47,D_CIN5=>n47, - D_CIN6=>n47,D_CIN7=>n47,D_CIN8=>n47,D_CIN9=>n47,D_CIN10=>n47,D_CIN11=>n47, - CH0_HDOUTP=>hdoutp,CH1_HDOUTP=>n50,CH0_HDOUTN=>hdoutn,CH1_HDOUTN=>n51, - D_TXBIT_CLKP_TO_ND=>n1,D_TXBIT_CLKN_TO_ND=>n2,D_SYNC_PULSE2ND=>n3,D_TXPLL_LOL_TO_ND=>n4, - CH0_FF_RX_F_CLK=>n5,CH1_FF_RX_F_CLK=>n52,CH0_FF_RX_H_CLK=>n6,CH1_FF_RX_H_CLK=>n53, - CH0_FF_TX_F_CLK=>n7,CH1_FF_TX_F_CLK=>n54,CH0_FF_TX_H_CLK=>n8,CH1_FF_TX_H_CLK=>n55, - CH0_FF_RX_PCLK=>rx_pclk_c,CH1_FF_RX_PCLK=>n56,CH0_FF_TX_PCLK=>tx_pclk_c, - CH1_FF_TX_PCLK=>n57,CH0_FF_RX_D_0=>rxdata(0),CH1_FF_RX_D_0=>n58,CH0_FF_RX_D_1=>rxdata(1), - CH1_FF_RX_D_1=>n59,CH0_FF_RX_D_2=>rxdata(2),CH1_FF_RX_D_2=>n60,CH0_FF_RX_D_3=>rxdata(3), - CH1_FF_RX_D_3=>n61,CH0_FF_RX_D_4=>rxdata(4),CH1_FF_RX_D_4=>n62,CH0_FF_RX_D_5=>rxdata(5), - CH1_FF_RX_D_5=>n63,CH0_FF_RX_D_6=>rxdata(6),CH1_FF_RX_D_6=>n64,CH0_FF_RX_D_7=>rxdata(7), - CH1_FF_RX_D_7=>n65,CH0_FF_RX_D_8=>rx_k(0),CH1_FF_RX_D_8=>n66,CH0_FF_RX_D_9=>rx_disp_err(0), - CH1_FF_RX_D_9=>n67,CH0_FF_RX_D_10=>rx_cv_err(0),CH1_FF_RX_D_10=>n68,CH0_FF_RX_D_11=>n9, - CH1_FF_RX_D_11=>n69,CH0_FF_RX_D_12=>n70,CH1_FF_RX_D_12=>n71,CH0_FF_RX_D_13=>n72, - CH1_FF_RX_D_13=>n73,CH0_FF_RX_D_14=>n74,CH1_FF_RX_D_14=>n75,CH0_FF_RX_D_15=>n76, - CH1_FF_RX_D_15=>n77,CH0_FF_RX_D_16=>n78,CH1_FF_RX_D_16=>n79,CH0_FF_RX_D_17=>n80, - CH1_FF_RX_D_17=>n81,CH0_FF_RX_D_18=>n82,CH1_FF_RX_D_18=>n83,CH0_FF_RX_D_19=>n84, - CH1_FF_RX_D_19=>n85,CH0_FF_RX_D_20=>n86,CH1_FF_RX_D_20=>n87,CH0_FF_RX_D_21=>n88, - CH1_FF_RX_D_21=>n89,CH0_FF_RX_D_22=>n90,CH1_FF_RX_D_22=>n91,CH0_FF_RX_D_23=>n10, - CH1_FF_RX_D_23=>n92,CH0_FFS_PCIE_DONE=>n11,CH1_FFS_PCIE_DONE=>n93,CH0_FFS_PCIE_CON=>n12, - CH1_FFS_PCIE_CON=>n94,CH0_FFS_RLOS=>rx_los_low_s_c,CH1_FFS_RLOS=>n95, - CH0_FFS_LS_SYNC_STATUS=>lsm_status_s,CH1_FFS_LS_SYNC_STATUS=>n96,CH0_FFS_CC_UNDERRUN=>n13, - CH1_FFS_CC_UNDERRUN=>n97,CH0_FFS_CC_OVERRUN=>n14,CH1_FFS_CC_OVERRUN=>n98, - CH0_FFS_RXFBFIFO_ERROR=>n15,CH1_FFS_RXFBFIFO_ERROR=>n99,CH0_FFS_TXFBFIFO_ERROR=>n16, - CH1_FFS_TXFBFIFO_ERROR=>n100,CH0_FFS_RLOL=>rx_cdr_lol_s_c,CH1_FFS_RLOL=>n101, - CH0_FFS_SKP_ADDED=>n17,CH1_FFS_SKP_ADDED=>n102,CH0_FFS_SKP_DELETED=>n18, - CH1_FFS_SKP_DELETED=>n103,CH0_LDR_RX2CORE=>n104,CH1_LDR_RX2CORE=>n115, - D_SCIRDATA0=>sci_rddata(0),D_SCIRDATA1=>sci_rddata(1),D_SCIRDATA2=>sci_rddata(2), - D_SCIRDATA3=>sci_rddata(3),D_SCIRDATA4=>sci_rddata(4),D_SCIRDATA5=>sci_rddata(5), - D_SCIRDATA6=>sci_rddata(6),D_SCIRDATA7=>sci_rddata(7),D_SCIINT=>sci_int, - D_SCAN_OUT_0=>n19,D_SCAN_OUT_1=>n20,D_SCAN_OUT_2=>n21,D_SCAN_OUT_3=>n22, - D_SCAN_OUT_4=>n23,D_SCAN_OUT_5=>n24,D_SCAN_OUT_6=>n25,D_SCAN_OUT_7=>n26, - D_COUT0=>n27,D_COUT1=>n28,D_COUT2=>n29,D_COUT3=>n30,D_COUT4=>n31,D_COUT5=>n32, - D_COUT6=>n33,D_COUT7=>n34,D_COUT8=>n35,D_COUT9=>n36,D_COUT10=>n37,D_COUT11=>n38, - D_COUT12=>n39,D_COUT13=>n40,D_COUT14=>n41,D_COUT15=>n42,D_COUT16=>n43, - D_COUT17=>n44,D_COUT18=>n45,D_COUT19=>n46,D_REFCLKI=>pll_refclki,D_FFS_PLOL=>n49); - n48 <= '1' ; - n47 <= '0' ; - n1 <= 'Z' ; - n2 <= 'Z' ; - n3 <= 'Z' ; - n4 <= 'Z' ; - n5 <= 'Z' ; - n6 <= 'Z' ; - n7 <= 'Z' ; - n8 <= 'Z' ; - n9 <= 'Z' ; - n10 <= 'Z' ; - n11 <= 'Z' ; - n12 <= 'Z' ; - n13 <= 'Z' ; - n14 <= 'Z' ; - n15 <= 'Z' ; - n16 <= 'Z' ; - n17 <= 'Z' ; - n18 <= 'Z' ; - n19 <= 'Z' ; - n20 <= 'Z' ; - n21 <= 'Z' ; - n22 <= 'Z' ; - n23 <= 'Z' ; - n24 <= 'Z' ; - n25 <= 'Z' ; - n26 <= 'Z' ; - n27 <= 'Z' ; - n28 <= 'Z' ; - n29 <= 'Z' ; - n30 <= 'Z' ; - n31 <= 'Z' ; - n32 <= 'Z' ; - n33 <= 'Z' ; - n34 <= 'Z' ; - n35 <= 'Z' ; - n36 <= 'Z' ; - n37 <= 'Z' ; - n38 <= 'Z' ; - n39 <= 'Z' ; - n40 <= 'Z' ; - n41 <= 'Z' ; - n42 <= 'Z' ; - n43 <= 'Z' ; - n44 <= 'Z' ; - n45 <= 'Z' ; - n46 <= 'Z' ; - n49 <= 'Z' ; - n106 <= '0' ; - n105 <= '1' ; - n50 <= 'Z' ; - n51 <= 'Z' ; - n52 <= 'Z' ; - n53 <= 'Z' ; - n54 <= 'Z' ; - n55 <= 'Z' ; - n56 <= 'Z' ; - n57 <= 'Z' ; - n58 <= 'Z' ; - n59 <= 'Z' ; - n60 <= 'Z' ; - n61 <= 'Z' ; - n62 <= 'Z' ; - n63 <= 'Z' ; - n64 <= 'Z' ; - n65 <= 'Z' ; - n66 <= 'Z' ; - n67 <= 'Z' ; - n68 <= 'Z' ; - n69 <= 'Z' ; - n70 <= 'Z' ; - n71 <= 'Z' ; - n72 <= 'Z' ; - n73 <= 'Z' ; - n74 <= 'Z' ; - n75 <= 'Z' ; - n76 <= 'Z' ; - n77 <= 'Z' ; - n78 <= 'Z' ; - n79 <= 'Z' ; - n80 <= 'Z' ; - n81 <= 'Z' ; - n82 <= 'Z' ; - n83 <= 'Z' ; - n84 <= 'Z' ; - n85 <= 'Z' ; - n86 <= 'Z' ; - n87 <= 'Z' ; - n88 <= 'Z' ; - n89 <= 'Z' ; - n90 <= 'Z' ; - n91 <= 'Z' ; - n92 <= 'Z' ; - n93 <= 'Z' ; - n94 <= 'Z' ; - n95 <= 'Z' ; - n96 <= 'Z' ; - n97 <= 'Z' ; - n98 <= 'Z' ; - n99 <= 'Z' ; - n100 <= 'Z' ; - n101 <= 'Z' ; - n102 <= 'Z' ; - n103 <= 'Z' ; - n104 <= 'Z' ; - n115 <= 'Z' ; - rsl_inst: component serdes_sync_0rsl_core port map (rui_rst=>rsl_rst,rui_serdes_rst_dual_c=>serdes_rst_dual_c, - rui_rst_dual_c=>rst_dual_c,rui_rsl_disable=>rsl_disable,rui_tx_ref_clk=>pll_refclki, - rui_tx_serdes_rst_c=>tx_serdes_rst_c,rui_tx_pcs_rst_c(3)=>n125, - rui_tx_pcs_rst_c(2)=>n125,rui_tx_pcs_rst_c(1)=>n125,rui_tx_pcs_rst_c(0)=>tx_pcs_rst_c, - rdi_pll_lol=>pll_lol_c,rui_rx_ref_clk=>rxrefclk,rui_rx_serdes_rst_c(3)=>n125, - rui_rx_serdes_rst_c(2)=>n125,rui_rx_serdes_rst_c(1)=>n125,rui_rx_serdes_rst_c(0)=>rx_serdes_rst_c, - rui_rx_pcs_rst_c(3)=>n125,rui_rx_pcs_rst_c(2)=>n125,rui_rx_pcs_rst_c(1)=>n125, - rui_rx_pcs_rst_c(0)=>rx_pcs_rst_c,rdi_rx_los_low_s(3)=>n125,rdi_rx_los_low_s(2)=>n125, - rdi_rx_los_low_s(1)=>n125,rdi_rx_los_low_s(0)=>rx_los_low_s_c, - rdi_rx_cdr_lol_s(3)=>n125,rdi_rx_cdr_lol_s(2)=>n125,rdi_rx_cdr_lol_s(1)=>n125, - rdi_rx_cdr_lol_s(0)=>rx_cdr_lol_s_c,rdo_serdes_rst_dual_c=>rsl_serdes_rst_dual_c, - rdo_rst_dual_c=>rsl_rst_dual_c,ruo_tx_rdy=>rsl_tx_rdy,rdo_tx_serdes_rst_c=>rsl_tx_serdes_rst_c, - rdo_tx_pcs_rst_c(3)=>n116,rdo_tx_pcs_rst_c(2)=>n117,rdo_tx_pcs_rst_c(1)=>n118, - rdo_tx_pcs_rst_c(0)=>rsl_tx_pcs_rst_c,ruo_rx_rdy=>rsl_rx_rdy,rdo_rx_serdes_rst_c(3)=>n119, - rdo_rx_serdes_rst_c(2)=>n120,rdo_rx_serdes_rst_c(1)=>n121,rdo_rx_serdes_rst_c(0)=>rsl_rx_serdes_rst_c, - rdo_rx_pcs_rst_c(3)=>n122,rdo_rx_pcs_rst_c(2)=>n123,rdo_rx_pcs_rst_c(1)=>\_Z\, - rdo_rx_pcs_rst_c(0)=>rsl_rx_pcs_rst_c); - n114 <= '1' ; - n113 <= '0' ; - n125 <= '0' ; - n124 <= '1' ; - n116 <= 'Z' ; - n117 <= 'Z' ; - n118 <= 'Z' ; - n119 <= 'Z' ; - n120 <= 'Z' ; - n121 <= 'Z' ; - n122 <= 'Z' ; - n123 <= 'Z' ; - \_Z\ <= 'Z' ; - sll_inst: component serdes_sync_0sll_core port map (sli_rst=>sli_rst,sli_refclk=>pll_refclki, - sli_pclk=>tx_pclk_c,sli_div2_rate=>gnd,sli_div11_rate=>gnd,sli_gear_mode=>gnd, - sli_cpri_mode(2)=>gnd,sli_cpri_mode(1)=>gnd,sli_cpri_mode(0)=>gnd, - sli_pcie_mode=>gnd,slo_plol=>pll_lol_c); - n127 <= '1' ; - n126 <= '0' ; - gnd <= '0' ; - pwr <= '1' ; - -end architecture v1; - diff --git a/oldfiles/serdes_sync_0/serdes_sync_0_softlogic.v b/oldfiles/serdes_sync_0/serdes_sync_0_softlogic.v deleted file mode 100644 index 186f088..0000000 --- a/oldfiles/serdes_sync_0/serdes_sync_0_softlogic.v +++ /dev/null @@ -1,2003 +0,0 @@ - - -// =========================================================================== -// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -// --------------------------------------------------------------------------- -// Copyright (c) 2016 by Lattice Semiconductor Corporation -// ALL RIGHTS RESERVED -// ------------------------------------------------------------------ -// -// Permission: -// -// Lattice SG Pte. Ltd. grants permission to use this code -// pursuant to the terms of the Lattice Reference Design License Agreement. -// -// -// Disclaimer: -// -// This VHDL or Verilog source code is intended as a design reference -// which illustrates how these types of functions can be implemented. -// It is the user's responsibility to verify their design for -// consistency and functionality through the use of formal -// verification methods. Lattice provides no warranty -// regarding the use or functionality of this code. -// -// --------------------------------------------------------------------------- -// -// Lattice SG Pte. Ltd. -// 101 Thomson Road, United Square #07-02 -// Singapore 307591 -// -// -// TEL: 1-800-Lattice (USA and Canada) -// +65-6631-2000 (Singapore) -// +1-503-268-8001 (other locations) -// -// web: http://www.latticesemi.com/ -// email: techsupport@latticesemi.com -// -// --------------------------------------------------------------------------- -// -// ============================================================================= -// FILE DETAILS -// Project : RSL- Reset Sequence Logic -// File : rsl_core.v -// Title : Top-level file for RSL -// Dependencies : 1. -// : 2. -// Description : -// ============================================================================= -// REVISION HISTORY -// Version : 1.0 -// Author(s) : BM -// Mod. Date : October 28, 2013 -// Changes Made : Initial Creation -// ----------------------------------------------------------------------------- -// Version : 1.1 -// Author(s) : BM -// Mod. Date : November 06, 2013 -// Changes Made : Tx/Rx separation, ready port code exclusion -// ----------------------------------------------------------------------------- -// Version : 1.2 -// Author(s) : BM -// Mod. Date : June 13, 2014 -// Changes Made : Updated Rx PCS reset method -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// Version : 1.3 -// Author(s) : UA -// Mod. Date : Dec 19, 2014 -// Changes Made : Added new parameter fro PCIE -// ----------------------------------------------------------------------------- -// Version : 1.31 -// Author(s) : BM/UM -// Mod. Date : Feb 23, 2016 -// Changes Made : Behavior of rx_rdy output modified. The output rx_rdy -// and the rx_rdy wait counter are reset to zero on -// LOL or LOS. Reverted back the counter value change for PCIE. -// ----------------------------------------------------------------------------- -// Version : 1.4 -// Author(s) : EB -// Mod. Date: : March 21, 2017 -// Changes Made : -// ----------------------------------------------------------------------------- -// Version : 1.5 -// Author(s) : ES -// Mod. Date: : May 8, 2017 -// Changes Made : Implemented common RSL behaviour as proposed by BM. -// ============================================================================= - -`timescale 1ns/10ps - -module serdes_sync_0rsl_core ( - // ------------ Inputs - // Common - rui_rst, // Active high reset for the RSL module - rui_serdes_rst_dual_c, // SERDES macro reset user command - rui_rst_dual_c, // PCS dual reset user command - rui_rsl_disable, // Active high signal that disables all reset outputs of RSL - // Tx - rui_tx_ref_clk, // Tx reference clock - rui_tx_serdes_rst_c, // Tx SERDES reset user command - rui_tx_pcs_rst_c, // Tx lane reset user command - rdi_pll_lol, // Tx PLL Loss of Lock status input from the SERDES - // Rx - rui_rx_ref_clk, // Rx reference clock - rui_rx_serdes_rst_c, // SERDES Receive channel reset user command - rui_rx_pcs_rst_c, // Rx lane reset user command - rdi_rx_los_low_s, // Receive loss of signal status input from SERDES - rdi_rx_cdr_lol_s, // Receive CDR loss of lock status input from SERDES - - // ------------ Outputs - // Common - rdo_serdes_rst_dual_c, // SERDES macro reset command output - rdo_rst_dual_c, // PCS dual reset command output - // Tx - ruo_tx_rdy, // Tx lane ready status output - rdo_tx_serdes_rst_c, // SERDES Tx reset command output - rdo_tx_pcs_rst_c, // PCS Tx lane reset command output - // Rx - ruo_rx_rdy, // Rx lane ready status output - rdo_rx_serdes_rst_c, // SERDES Rx channel reset command output - rdo_rx_pcs_rst_c // PCS Rx lane reset command output - ); - -// ------------ Module parameters -`ifdef NUM_CHANNELS - parameter pnum_channels = `NUM_CHANNELS; // 1,2,4 -`else - parameter pnum_channels = 1; -`endif - -`ifdef PCIE - parameter pprotocol = "PCIE"; -`else - parameter pprotocol = ""; -`endif - -`ifdef RX_ONLY - parameter pserdes_mode = "RX ONLY"; -`else - `ifdef TX_ONLY - parameter pserdes_mode = "TX ONLY"; - `else - parameter pserdes_mode = "RX AND TX"; - `endif -`endif - -`ifdef PORT_TX_RDY - parameter pport_tx_rdy = "ENABLED"; -`else - parameter pport_tx_rdy = "DISABLED"; -`endif - -`ifdef WAIT_TX_RDY - parameter pwait_tx_rdy = `WAIT_TX_RDY; -`else - parameter pwait_tx_rdy = 3000; -`endif - -`ifdef PORT_RX_RDY - parameter pport_rx_rdy = "ENABLED"; -`else - parameter pport_rx_rdy = "DISABLED"; -`endif - -`ifdef WAIT_RX_RDY - parameter pwait_rx_rdy = `WAIT_RX_RDY; -`else - parameter pwait_rx_rdy = 3000; -`endif - -// ------------ Local parameters - localparam wa_num_cycles = 1024; - localparam dac_num_cycles = 3; - localparam lreset_pwidth = 3; // reset pulse width-1, default=4-1=3 - localparam lwait_b4_trst = 781250; // 5ms wait with worst-case Fmax=156 MHz - localparam lwait_b4_trst_s = 781; // for simulation - localparam lplol_cnt_width = 20; // width for lwait_b4_trst - localparam lwait_after_plol0 = 4; - localparam lwait_b4_rrst = 180224; // total calibration time - localparam lrrst_wait_width = 20; - localparam lwait_after_rrst = 800000; // For CPRI- unused - localparam lwait_b4_rrst_s = 460; // wait cycles provided by design team - localparam lrlol_cnt_width = 19; // width for lwait_b4_rrst - localparam lwait_after_lols = (16384 * dac_num_cycles) + wa_num_cycles; // 16384 cycles * dac_num_cycles + 1024 cycles - localparam lwait_after_lols_s = 150; // wait cycles provided by design team - localparam llols_cnt_width = 18; // lols count width - localparam lrdb_max = 15; // maximum debounce count - localparam ltxr_wait_width = 12; // width of tx ready wait counter - localparam lrxr_wait_width = 12; // width of tx ready wait counter - -// ------------ input ports - input rui_rst; - input rui_serdes_rst_dual_c; - input rui_rst_dual_c; - input rui_rsl_disable; - - input rui_tx_ref_clk; - input rui_tx_serdes_rst_c; - input [3:0] rui_tx_pcs_rst_c; - input rdi_pll_lol; - - input rui_rx_ref_clk; - input [3:0] rui_rx_serdes_rst_c; - input [3:0] rui_rx_pcs_rst_c; - input [3:0] rdi_rx_los_low_s; - input [3:0] rdi_rx_cdr_lol_s; - -// ------------ output ports - output rdo_serdes_rst_dual_c; - output rdo_rst_dual_c; - - output ruo_tx_rdy; - output rdo_tx_serdes_rst_c; - output [3:0] rdo_tx_pcs_rst_c; - - output ruo_rx_rdy; - output [3:0] rdo_rx_serdes_rst_c; - output [3:0] rdo_rx_pcs_rst_c; - -// ------------ Internal registers and wires - // inputs - wire rui_rst; - wire rui_serdes_rst_dual_c; - wire rui_rst_dual_c; - wire rui_rsl_disable; - wire rui_tx_ref_clk; - wire rui_tx_serdes_rst_c; - wire [3:0] rui_tx_pcs_rst_c; - wire rdi_pll_lol; - wire rui_rx_ref_clk; - wire [3:0] rui_rx_serdes_rst_c; - wire [3:0] rui_rx_pcs_rst_c; - wire [3:0] rdi_rx_los_low_s; - wire [3:0] rdi_rx_cdr_lol_s; - - // outputs - wire rdo_serdes_rst_dual_c; - wire rdo_rst_dual_c; - wire ruo_tx_rdy; - wire rdo_tx_serdes_rst_c; - wire [3:0] rdo_tx_pcs_rst_c; - wire ruo_rx_rdy; - wire [3:0] rdo_rx_serdes_rst_c; - wire [3:0] rdo_rx_pcs_rst_c; - - // internal signals - // common - wire rsl_enable; - wire [lplol_cnt_width-1:0] wait_b4_trst; - wire [lrlol_cnt_width-1:0] wait_b4_rrst; - wire [llols_cnt_width-1:0] wait_after_lols; - reg pll_lol_p1; - reg pll_lol_p2; - reg pll_lol_p3; - // ------------ Tx - // rdo_tx_serdes_rst_c - reg [lplol_cnt_width-1:0] plol_cnt; - wire plol_cnt_tc; - - reg [2:0] txs_cnt; - reg txs_rst; - wire txs_cnt_tc; - // rdo_tx_pcs_rst_c - wire plol_fedge; - wire plol_redge; - reg waita_plol0; - reg [2:0] plol0_cnt; - wire plol0_cnt_tc; - reg [2:0] txp_cnt; - reg txp_rst; - wire txp_cnt_tc; - // ruo_tx_rdy - wire dual_or_serd_rst; - wire tx_any_pcs_rst; - wire tx_any_rst; - reg txsr_appd /* synthesis syn_keep=1 */; - reg txdpr_appd; - reg [pnum_channels-1:0] txpr_appd; - reg txr_wt_en; - reg [ltxr_wait_width-1:0] txr_wt_cnt; - wire txr_wt_tc; - reg ruo_tx_rdyr; - - // ------------ Rx - wire comb_rlos; - wire comb_rlol; - //wire rlols; - wire rx_all_well; - - //reg rlols_p1; - //reg rlols_p2; - //reg rlols_p3; - - reg rlol_p1; - reg rlol_p2; - reg rlol_p3; - reg rlos_p1; - reg rlos_p2; - reg rlos_p3; - - //reg [3:0] rdb_cnt; - //wire rdb_cnt_max; - //wire rdb_cnt_zero; - //reg rlols_db; - //reg rlols_db_p1; - - reg [3:0] rlol_db_cnt; - wire rlol_db_cnt_max; - wire rlol_db_cnt_zero; - reg rlol_db; - reg rlol_db_p1; - - reg [3:0] rlos_db_cnt; - wire rlos_db_cnt_max; - wire rlos_db_cnt_zero; - reg rlos_db; - reg rlos_db_p1; - - // rdo_rx_serdes_rst_c - reg [lrlol_cnt_width-1:0] rlol1_cnt; - wire rlol1_cnt_tc; - reg [2:0] rxs_cnt; - reg rxs_rst; - wire rxs_cnt_tc; - reg [lrrst_wait_width-1:0] rrst_cnt; - wire rrst_cnt_tc; - reg rrst_wait; - // rdo_rx_pcs_rst_c - //wire rlols_fedge; - //wire rlols_redge; - wire rlol_fedge; - wire rlol_redge; - wire rlos_fedge; - wire rlos_redge; - - reg wait_calib; - reg waita_rlols0; - reg [llols_cnt_width-1:0] rlols0_cnt; - wire rlols0_cnt_tc; - reg [2:0] rxp_cnt; - reg rxp_rst; - wire rxp_cnt_tc; - - wire rx_any_serd_rst; - reg [llols_cnt_width-1:0] rlolsz_cnt; - wire rlolsz_cnt_tc; - reg [2:0] rxp_cnt2; - reg rxp_rst2; - wire rxp_cnt2_tc; - reg [15:0] data_loop_b_cnt; - reg data_loop_b; - wire data_loop_b_tc; - - // ruo_rx_rdy - reg [pnum_channels-1:0] rxsr_appd; - reg [pnum_channels-1:0] rxpr_appd; - reg rxsdr_appd /* synthesis syn_keep=1 */; - reg rxdpr_appd; - wire rxsdr_or_sr_appd; - wire dual_or_rserd_rst; - wire rx_any_pcs_rst; - wire rx_any_rst; - reg rxr_wt_en; - reg [lrxr_wait_width-1:0] rxr_wt_cnt; - wire rxr_wt_tc; - reg ruo_rx_rdyr; - -// ================================================================== -// Start of code -// ================================================================== - assign rsl_enable = ~rui_rsl_disable; - -// ------------ rdo_serdes_rst_dual_c - assign rdo_serdes_rst_dual_c = (rui_rst&rsl_enable) | rui_serdes_rst_dual_c; - -// ------------ rdo_rst_dual_c - assign rdo_rst_dual_c = rui_rst_dual_c; - -// ------------ Setting counter values for RSL_SIM_MODE - `ifdef RSL_SIM_MODE - assign wait_b4_trst = lwait_b4_trst_s; - assign wait_b4_rrst = lwait_b4_rrst_s; - assign wait_after_lols = lwait_after_lols_s; - `else - assign wait_b4_trst = lwait_b4_trst; - assign wait_b4_rrst = lwait_b4_rrst; - assign wait_after_lols = lwait_after_lols; - `endif - -// ================================================================== -// Tx -// ================================================================== - generate - if((pserdes_mode=="RX AND TX")||(pserdes_mode=="TX ONLY")) begin - -// ------------ Synchronizing pll_lol to the tx clock - always @(posedge rui_tx_ref_clk or posedge rui_rst) begin - if(rui_rst==1'b1) begin - pll_lol_p1 <= 1'd0; - pll_lol_p2 <= 1'd0; - pll_lol_p3 <= 1'd0; - end - else begin - pll_lol_p1 <= rdi_pll_lol; - pll_lol_p2 <= pll_lol_p1; - pll_lol_p3 <= pll_lol_p2; - end - end - -// ------------ rdo_tx_serdes_rst_c - always @(posedge rui_tx_ref_clk or posedge rui_rst) begin - if(rui_rst==1'b1) - plol_cnt <= 'd0; - else if((pll_lol_p2==0)||(plol_cnt_tc==1)||(rdo_tx_serdes_rst_c==1)) - plol_cnt <= 'd0; - else - plol_cnt <= plol_cnt+1; - end - assign plol_cnt_tc = (plol_cnt==wait_b4_trst)?1'b1:1'b0; - - always @(posedge rui_tx_ref_clk or posedge rui_rst) begin - if(rui_rst==1'b1) begin - txs_cnt <= 'd0; // tx serdes reset pulse count - txs_rst <= 1'b0; // tx serdes reset - end - else if(plol_cnt_tc==1) - txs_rst <= 1'b1; - else if(txs_cnt_tc==1) begin - txs_cnt <= 'd0; - txs_rst <= 1'b0; - end - else if(txs_rst==1) - txs_cnt <= txs_cnt+1; - end - assign txs_cnt_tc = (txs_cnt==lreset_pwidth)?1'b1:1'b0; - - assign rdo_tx_serdes_rst_c = (rsl_enable&txs_rst)| rui_tx_serdes_rst_c; - -// ------------ rdo_tx_pcs_rst_c - assign plol_fedge = ~pll_lol_p2 & pll_lol_p3; - assign plol_redge = pll_lol_p2 & ~pll_lol_p3; - always @(posedge rui_tx_ref_clk or posedge rui_rst) begin - if(rui_rst==1'b1) - waita_plol0 <= 1'd0; - else if(plol_fedge==1'b1) - waita_plol0 <= 1'b1; - else if((plol0_cnt_tc==1)||(plol_redge==1)) - waita_plol0 <= 1'd0; - end - always @(posedge rui_tx_ref_clk or posedge rui_rst) begin - if(rui_rst==1'b1) - plol0_cnt <= 'd0; - else if((pll_lol_p2==1)||(plol0_cnt_tc==1)) - plol0_cnt <= 'd0; - else if(waita_plol0==1'b1) - plol0_cnt <= plol0_cnt+1; - end - assign plol0_cnt_tc = (plol0_cnt==lwait_after_plol0)?1'b1:1'b0; - - always @(posedge rui_tx_ref_clk or posedge rui_rst) begin - if(rui_rst==1'b1) begin - txp_cnt <= 'd0; // tx serdes reset pulse count - txp_rst <= 1'b0; // tx serdes reset - end - else if(plol0_cnt_tc==1) - txp_rst <= 1'b1; - else if(txp_cnt_tc==1) begin - txp_cnt <= 'd0; - txp_rst <= 1'b0; - end - else if(txp_rst==1) - txp_cnt <= txp_cnt+1; - end - assign txp_cnt_tc = (txp_cnt==lreset_pwidth)?1'b1:1'b0; - - genvar i; - for(i=0;i>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -// --------------------------------------------------------------------------- -// Copyright (c) 2015 by Lattice Semiconductor Corporation -// ALL RIGHTS RESERVED -// ------------------------------------------------------------------ -// -// Permission: -// -// Lattice SG Pte. Ltd. grants permission to use this code -// pursuant to the terms of the Lattice Reference Design License Agreement. -// -// -// Disclaimer: -// -// This VHDL or Verilog source code is intended as a design reference -// which illustrates how these types of functions can be implemented. -// It is the user's responsibility to verify their design for -// consistency and functionality through the use of formal -// verification methods. Lattice provides no warranty -// regarding the use or functionality of this code. -// -// --------------------------------------------------------------------------- -// -// Lattice SG Pte. Ltd. -// 101 Thomson Road, United Square #07-02 -// Singapore 307591 -// -// -// TEL: 1-800-Lattice (USA and Canada) -// +65-6631-2000 (Singapore) -// +1-503-268-8001 (other locations) -// -// web: http://www.latticesemi.com/ -// email: techsupport@latticesemi.com -// -// --------------------------------------------------------------------------- -// -// ============================================================================= -// FILE DETAILS -// Project : SLL - Soft Loss Of Lock(LOL) Logic -// File : sll_core.v -// Title : Top-level file for SLL -// Dependencies : 1. -// : 2. -// Description : -// ============================================================================= -// REVISION HISTORY -// Version : 1.0 -// Author(s) : AV -// Mod. Date : March 2, 2015 -// Changes Made : Initial Creation -// ============================================================================= -// REVISION HISTORY -// Version : 1.1 -// Author(s) : AV -// Mod. Date : June 8, 2015 -// Changes Made : Following updates were made -// : 1. Changed all the PLOL status logic and FSM to run -// : on sli_refclk. -// : 2. Added the HB logic for presence of tx_pclk -// : 3. Changed the lparam assignment scheme for -// : simulation purposes. -// ============================================================================= -// REVISION HISTORY -// Version : 1.2 -// Author(s) : AV -// Mod. Date : June 24, 2015 -// Changes Made : Updated the gearing logic for SDI dynamic rate change -// ============================================================================= -// REVISION HISTORY -// Version : 1.3 -// Author(s) : AV -// Mod. Date : July 14, 2015 -// Changes Made : Added the logic for dynamic rate change in CPRI -// ============================================================================= -// REVISION HISTORY -// Version : 1.4 -// Author(s) : AV -// Mod. Date : August 21, 2015 -// Changes Made : Added the logic for dynamic rate change of 5G CPRI & -// PCIe. -// ============================================================================= -// REVISION HISTORY -// Version : 1.5 -// Author(s) : ES/EB -// Mod. Date : March 21, 2017 -// Changes Made : 1. Added pdiff_sync signal to syncrhonize pcount_diff -// : to sli_refclk. -// : 2. Updated terminal count logic for PCIe 5G -// : 3. Modified checking of pcount_diff in SLL state -// : machine to cover actual count -// : (from 16-bits to 22-bits) -// ============================================================================= -// REVISION HISTORY -// Version : 1.6 -// Author(s) : ES -// Mod. Date : April 19, 2017 -// Changes Made : 1. Added registered lock and unlock signal from -// pdiff_sync to totally decouple pcount_diff from -// SLL state machine. -// : 2. Modified LPCLK_TC_4 to 1:1 clock ratio when CPRI -// is operating @ 4.9125Gbps data rate. -// ============================================================================= -`timescale 1ns/10ps - -module serdes_sync_0sll_core ( - //Reset and Clock inputs - sli_rst, //Active high asynchronous reset input - sli_refclk, //Refclk input to the Tx PLL - sli_pclk, //Tx pclk output from the PCS - - //Control inputs - sli_div2_rate, //Divide by 2 control; 0 - Full rate; 1 - Half rate - sli_div11_rate, //Divide by 11 control; 0 - Full rate; 1 - Div by 11 - sli_gear_mode, //Gear mode control for PCS; 0 - 8/10; 1- 16/20 - sli_cpri_mode, //Mode of operation specific to CPRI protocol - sli_pcie_mode, //Mode of operation specific to PCIe mode (2.5G or 5G) - - //LOL Output - slo_plol //Tx PLL Loss of Lock output to the user logic - ); - -// Inputs -input sli_rst; -input sli_refclk; -input sli_pclk; -input sli_div2_rate; -input sli_div11_rate; -input sli_gear_mode; -input [2:0] sli_cpri_mode; -input sli_pcie_mode; - -// Outputs -output slo_plol; - - -// Parameters -parameter PPROTOCOL = "PCIE"; //Protocol selected by the User -parameter PLOL_SETTING = 0; //PLL LOL setting. Possible values are 0,1,2,3 -parameter PDYN_RATE_CTRL = "DISABLED"; //PCS Dynamic Rate control -parameter PPCIE_MAX_RATE = "2.5"; //PCIe max data rate -parameter PDIFF_VAL_LOCK = 20; //Differential count value for Lock -parameter PDIFF_VAL_UNLOCK = 39; //Differential count value for Unlock -parameter PPCLK_TC = 65535; //Terminal count value for counter running on sli_pclk -parameter PDIFF_DIV11_VAL_LOCK = 3; //Differential count value for Lock for SDI Div11 -parameter PDIFF_DIV11_VAL_UNLOCK = 3; //Differential count value for Unlock for SDI Div11 -parameter PPCLK_DIV11_TC = 2383; //Terminal count value (SDI Div11) for counter running on sli_pclk - - -// Local Parameters -localparam [1:0] LPLL_LOSS_ST = 2'b00; //PLL Loss state -localparam [1:0] LPLL_PRELOSS_ST = 2'b01; //PLL Pre-Loss state -localparam [1:0] LPLL_PRELOCK_ST = 2'b10; //PLL Pre-Lock state -localparam [1:0] LPLL_LOCK_ST = 2'b11; //PLL Lock state -`ifdef RSL_SIM_MODE -localparam [15:0] LRCLK_TC = 16'd63; //Terminal count value for counter running on sli_refclk -`else -localparam [15:0] LRCLK_TC = 16'd65535; //Terminal count value for counter running on sli_refclk -`endif -localparam [15:0] LRCLK_TC_PUL_WIDTH = 16'd50; //Pulse width for the Refclk terminal count pulse -localparam [7:0] LHB_WAIT_CNT = 8'd255; //Wait count for the Heartbeat signal - -// Local Parameters related to the CPRI dynamic modes -// Terminal count values for the four CPRI modes -localparam LPCLK_TC_0 = 32768; -localparam LPCLK_TC_1 = 65536; -localparam LPCLK_TC_2 = 131072; -localparam LPCLK_TC_3 = 163840; -localparam LPCLK_TC_4 = 65536; - -// Lock values count values for the four CPRI modes and four PLOL settings (4x5) -// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 -localparam LPDIFF_LOCK_00 = 9; localparam LPDIFF_LOCK_10 = 19; localparam LPDIFF_LOCK_20 = 39; localparam LPDIFF_LOCK_30 = 49; localparam LPDIFF_LOCK_40 = 19; -localparam LPDIFF_LOCK_01 = 9; localparam LPDIFF_LOCK_11 = 19; localparam LPDIFF_LOCK_21 = 39; localparam LPDIFF_LOCK_31 = 49; localparam LPDIFF_LOCK_41 = 19; -localparam LPDIFF_LOCK_02 = 49; localparam LPDIFF_LOCK_12 = 98; localparam LPDIFF_LOCK_22 = 196; localparam LPDIFF_LOCK_32 = 245; localparam LPDIFF_LOCK_42 = 98; -localparam LPDIFF_LOCK_03 = 131; localparam LPDIFF_LOCK_13 = 262; localparam LPDIFF_LOCK_23 = 524; localparam LPDIFF_LOCK_33 = 655; localparam LPDIFF_LOCK_43 = 262; - -// Unlock values count values for the four CPRI modes and four PLOL settings (4x5) -// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 -localparam LPDIFF_UNLOCK_00 = 19; localparam LPDIFF_UNLOCK_10 = 39; localparam LPDIFF_UNLOCK_20 = 78; localparam LPDIFF_UNLOCK_30 = 98; localparam LPDIFF_UNLOCK_40 = 39; -localparam LPDIFF_UNLOCK_01 = 65; localparam LPDIFF_UNLOCK_11 = 131; localparam LPDIFF_UNLOCK_21 = 262; localparam LPDIFF_UNLOCK_31 = 327; localparam LPDIFF_UNLOCK_41 = 131; -localparam LPDIFF_UNLOCK_02 = 72; localparam LPDIFF_UNLOCK_12 = 144; localparam LPDIFF_UNLOCK_22 = 288; localparam LPDIFF_UNLOCK_32 = 360; localparam LPDIFF_UNLOCK_42 = 144; -localparam LPDIFF_UNLOCK_03 = 196; localparam LPDIFF_UNLOCK_13 = 393; localparam LPDIFF_UNLOCK_23 = 786; localparam LPDIFF_UNLOCK_33 = 983; localparam LPDIFF_UNLOCK_43 = 393; - -// Input and Output reg and wire declarations -wire sli_rst; -wire sli_refclk; -wire sli_pclk; -wire sli_div2_rate; -wire sli_div11_rate; -wire sli_gear_mode; -wire [2:0] sli_cpri_mode; -wire sli_pcie_mode; -wire slo_plol; - -//-------------- Internal signals reg and wire declarations -------------------- - -//Signals running on sli_refclk -reg [15:0] rcount; //16-bit Counter -reg rtc_pul; //Terminal count pulse -reg rtc_pul_p1; //Terminal count pulse pipeline -reg rtc_ctrl; //Terminal count pulse control - -reg [7:0] rhb_wait_cnt; //Heartbeat wait counter - -//Heatbeat synchronization and pipeline registers -wire rhb_sync; -reg rhb_sync_p2; -reg rhb_sync_p1; - -//Pipeling registers for dynamic control mode -wire rgear; -wire rdiv2; -wire rdiv11; -reg rgear_p1; -reg rdiv2_p1; -reg rdiv11_p1; - -reg rstat_pclk; //Pclk presence/absence status - -reg [21:0] rcount_tc; //Tx_pclk terminal count register -reg [15:0] rdiff_comp_lock; //Differential comparison value for Lock -reg [15:0] rdiff_comp_unlock; //Differential compariosn value for Unlock - -wire rpcie_mode; //PCIe mode signal synchronized to refclk -reg rpcie_mode_p1; //PCIe mode pipeline register - -wire rcpri_mod_ch_sync; //CPRI mode change synchronized to refclk -reg rcpri_mod_ch_p1; //CPRI mode change pipeline register -reg rcpri_mod_ch_p2; //CPRI mode change pipeline register -reg rcpri_mod_ch_st; //CPRI mode change status - -reg [1:0] sll_state; //Current-state register for LOL FSM - -reg pll_lock; //PLL Lock signal - -//Signals running on sli_pclk -//Synchronization and pipeline registers -wire ppul_sync; -reg ppul_sync_p1; -reg ppul_sync_p2; -reg ppul_sync_p3; - -wire pdiff_sync; -reg pdiff_sync_p1; - -reg [21:0] pcount; //22-bit counter -reg [21:0] pcount_diff; //Differential value between Tx_pclk counter and theoritical value - -//Heartbeat counter and heartbeat signal running on pclk -reg [2:0] phb_cnt; -reg phb; - -//CPRI dynamic mode releated signals -reg [2:0] pcpri_mode; -reg pcpri_mod_ch; - -//Assignment scheme changed mainly for simulation purpose -wire [15:0] LRCLK_TC_w; -assign LRCLK_TC_w = LRCLK_TC; - -reg unlock; -reg lock; - -//Heartbeat synchronization -sync # (.PDATA_RST_VAL(0)) phb_sync_inst ( - .clk (sli_refclk), - .rst (sli_rst), - .data_in (phb), - .data_out(rhb_sync) - ); - - -//Terminal count pulse synchronization -sync # (.PDATA_RST_VAL(0)) rtc_sync_inst ( - .clk (sli_pclk), - .rst (sli_rst), - .data_in (rtc_pul), - .data_out(ppul_sync) - ); - -//Differential value logic update synchronization -sync # (.PDATA_RST_VAL(0)) pdiff_sync_inst ( - .clk (sli_refclk), - .rst (sli_rst), - .data_in (ppul_sync), - .data_out(pdiff_sync) - ); - -//Gear mode synchronization -sync # (.PDATA_RST_VAL(0)) gear_sync_inst ( - .clk (sli_refclk), - .rst (sli_rst), - .data_in (sli_gear_mode), - .data_out(rgear) - ); - -//Div2 synchronization -sync # (.PDATA_RST_VAL(0)) div2_sync_inst ( - .clk (sli_refclk), - .rst (sli_rst), - .data_in (sli_div2_rate), - .data_out(rdiv2) - ); - -//Div11 synchronization -sync # (.PDATA_RST_VAL(0)) div11_sync_inst ( - .clk (sli_refclk), - .rst (sli_rst), - .data_in (sli_div11_rate), - .data_out(rdiv11) - ); - -//CPRI mode change synchronization -sync # (.PDATA_RST_VAL(0)) cpri_mod_sync_inst ( - .clk (sli_refclk), - .rst (sli_rst), - .data_in (pcpri_mod_ch), - .data_out(rcpri_mod_ch_sync) - ); - -//PCIe mode change synchronization -sync # (.PDATA_RST_VAL(0)) pcie_mod_sync_inst ( - .clk (sli_refclk), - .rst (sli_rst), - .data_in (sli_pcie_mode), - .data_out(rpcie_mode) - ); - -// ============================================================================= -// Synchronized Lock/Unlock signals -// ============================================================================= -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - unlock <= 1'b0; - lock <= 1'b0; - pdiff_sync_p1 <= 1'b0; - end - else begin - pdiff_sync_p1 <= pdiff_sync; - if (unlock) begin - unlock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : unlock; - end - else begin - unlock <= pdiff_sync ? (pcount_diff[21:0] > {6'd0, rdiff_comp_unlock}) : 1'b0; - end - if (lock) begin - lock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : lock; - end - else begin - lock <= pdiff_sync ? (pcount_diff[21:0] <= {6'd0, rdiff_comp_lock}) : 1'b0; - end - end -end - -// ============================================================================= -// Refclk Counter, pulse generation logic and Heartbeat monitor logic -// ============================================================================= -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - rcount <= 16'd0; - rtc_pul <= 1'b0; - rtc_ctrl <= 1'b0; - rtc_pul_p1 <= 1'b0; - end - else begin - //Counter logic - if ((rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin - if (rtc_ctrl == 1'b1) begin - rcount <= LRCLK_TC_PUL_WIDTH; - end - end - else begin - if (rcount != LRCLK_TC_w) begin - rcount <= rcount + 1; - end - else begin - rcount <= 16'd0; - end - end - - //Pulse control logic - if (rcount == LRCLK_TC_w - 1) begin - rtc_ctrl <= 1'b1; - end - - //Pulse Generation logic - if (rtc_ctrl == 1'b1) begin - if ((rcount == LRCLK_TC_w) || (rcount < LRCLK_TC_PUL_WIDTH)) begin - rtc_pul <= 1'b1; - end - else begin - rtc_pul <= 1'b0; - end - end - - rtc_pul_p1 <= rtc_pul; - end -end - - -// ============================================================================= -// Heartbeat synchronization & monitor logic and Dynamic mode pipeline logic -// ============================================================================= -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - rhb_sync_p1 <= 1'b0; - rhb_sync_p2 <= 1'b0; - rhb_wait_cnt <= 8'd0; - rstat_pclk <= 1'b0; - rgear_p1 <= 1'b0; - rdiv2_p1 <= 1'b0; - rdiv11_p1 <= 1'b0; - rcpri_mod_ch_p1 <= 1'b0; - rcpri_mod_ch_p2 <= 1'b0; - rcpri_mod_ch_st <= 1'b0; - rpcie_mode_p1 <= 1'b0; - - end - else begin - //Pipeline stages for the Heartbeat - rhb_sync_p1 <= rhb_sync; - rhb_sync_p2 <= rhb_sync_p1; - - //Pipeline stages of the Dynamic rate control signals - rgear_p1 <= rgear; - rdiv2_p1 <= rdiv2; - rdiv11_p1 <= rdiv11; - - //Pipeline stage for PCIe mode - rpcie_mode_p1 <= rpcie_mode; - - //Pipeline stage for CPRI mode change - rcpri_mod_ch_p1 <= rcpri_mod_ch_sync; - rcpri_mod_ch_p2 <= rcpri_mod_ch_p1; - - //CPRI mode change status logic - if (rcpri_mod_ch_p1^rcpri_mod_ch_sync == 1'b1) begin - rcpri_mod_ch_st <= 1'b1; - end - - //Heartbeat wait counter and monitor logic - if (rtc_ctrl == 1'b1) begin - if (rhb_sync_p1 == 1'b1 && rhb_sync_p2 == 1'b0) begin - rhb_wait_cnt <= 8'd0; - rstat_pclk <= 1'b1; - end - else if (rhb_wait_cnt == LHB_WAIT_CNT) begin - rhb_wait_cnt <= 8'd0; - rstat_pclk <= 1'b0; - end - else begin - rhb_wait_cnt <= rhb_wait_cnt + 1; - end - end - end -end - - -// ============================================================================= -// Pipleline registers for the TC pulse and CPRI mode change logic -// ============================================================================= -always @(posedge sli_pclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - ppul_sync_p1 <= 1'b0; - ppul_sync_p2 <= 1'b0; - ppul_sync_p3 <= 1'b0; - pcpri_mode <= 3'b0; - pcpri_mod_ch <= 1'b0; - end - else begin - ppul_sync_p1 <= ppul_sync; - ppul_sync_p2 <= ppul_sync_p1; - ppul_sync_p3 <= ppul_sync_p2; - - //CPRI mode change logic - pcpri_mode <= sli_cpri_mode; - - if (pcpri_mode != sli_cpri_mode) begin - pcpri_mod_ch <= ~pcpri_mod_ch; - end - end -end - - -// ============================================================================= -// Terminal count logic -// ============================================================================= - -//For SDI protocol with Dynamic rate control enabled -generate -if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "SDI")) begin -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - rcount_tc <= 22'd0; - rdiff_comp_lock <= 16'd0; - rdiff_comp_unlock <= 16'd0; - end - else begin - //Terminal count logic - //Div by 11 is enabled - if (rdiv11 == 1'b1) begin - //Gear mode is 16/20 - if (rgear == 1'b1) begin - rcount_tc <= PPCLK_DIV11_TC; - rdiff_comp_lock <= PDIFF_DIV11_VAL_LOCK; - rdiff_comp_unlock <= PDIFF_DIV11_VAL_UNLOCK; - end - else begin - rcount_tc <= {PPCLK_DIV11_TC[20:0], 1'b0}; - rdiff_comp_lock <= {PDIFF_DIV11_VAL_LOCK[14:0], 1'b0}; - rdiff_comp_unlock <= {PDIFF_DIV11_VAL_UNLOCK[14:0], 1'b0}; - end - end - //Div by 2 is enabled - else if (rdiv2 == 1'b1) begin - //Gear mode is 16/20 - if (rgear == 1'b1) begin - rcount_tc <= {1'b0,PPCLK_TC[21:1]}; - rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; - rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; - end - else begin - rcount_tc <= PPCLK_TC; - rdiff_comp_lock <= PDIFF_VAL_LOCK; - rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; - end - end - //Both div by 11 and div by 2 are disabled - else begin - //Gear mode is 16/20 - if (rgear == 1'b1) begin - rcount_tc <= PPCLK_TC; - rdiff_comp_lock <= PDIFF_VAL_LOCK; - rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; - end - else begin - rcount_tc <= {PPCLK_TC[20:0],1'b0}; - rdiff_comp_lock <= {PDIFF_VAL_LOCK[14:0],1'b0}; - rdiff_comp_unlock <= {PDIFF_VAL_UNLOCK[14:0],1'b0}; - end - end - end -end -end -endgenerate - -//For G8B10B protocol with Dynamic rate control enabled -generate -if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "G8B10B")) begin -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - rcount_tc <= 22'd0; - rdiff_comp_lock <= 16'd0; - rdiff_comp_unlock <= 16'd0; - end - else begin - //Terminal count logic - //Div by 2 is enabled - if (rdiv2 == 1'b1) begin - rcount_tc <= {1'b0,PPCLK_TC[21:1]}; - rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; - rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; - end - else begin - rcount_tc <= PPCLK_TC; - rdiff_comp_lock <= PDIFF_VAL_LOCK; - rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; - end - end -end -end -endgenerate - - -//For CPRI protocol with Dynamic rate control is disabled -generate -if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "CPRI")) begin -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - rcount_tc <= 22'd0; - rdiff_comp_lock <= 16'd0; - rdiff_comp_unlock <= 16'd0; - end - else begin - //Terminal count logic for CPRI protocol - //Only if there is a change in the rate mode from the default - if (rcpri_mod_ch_st == 1'b1) begin - if (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) begin - case(sli_cpri_mode) - 3'd0 : begin //For 0.6Gbps - rcount_tc <= LPCLK_TC_0; - case(PLOL_SETTING) - 'd0 : begin - rdiff_comp_lock <= LPDIFF_LOCK_00; - rdiff_comp_unlock <= LPDIFF_UNLOCK_00; - end - - 'd1 : begin - rdiff_comp_lock <= LPDIFF_LOCK_01; - rdiff_comp_unlock <= LPDIFF_UNLOCK_01; - end - - 'd2 : begin - rdiff_comp_lock <= LPDIFF_LOCK_02; - rdiff_comp_unlock <= LPDIFF_UNLOCK_02; - end - - 'd3 : begin - rdiff_comp_lock <= LPDIFF_LOCK_03; - rdiff_comp_unlock <= LPDIFF_UNLOCK_03; - end - - default : begin - rdiff_comp_lock <= LPDIFF_LOCK_00; - rdiff_comp_unlock <= LPDIFF_UNLOCK_00; - end - endcase - end - - 3'd1 : begin //For 1.2Gbps - rcount_tc <= LPCLK_TC_1; - case(PLOL_SETTING) - 'd0 : begin - rdiff_comp_lock <= LPDIFF_LOCK_10; - rdiff_comp_unlock <= LPDIFF_UNLOCK_10; - end - - 'd1 : begin - rdiff_comp_lock <= LPDIFF_LOCK_11; - rdiff_comp_unlock <= LPDIFF_UNLOCK_11; - end - - 'd2 : begin - rdiff_comp_lock <= LPDIFF_LOCK_12; - rdiff_comp_unlock <= LPDIFF_UNLOCK_12; - end - - 'd3 : begin - rdiff_comp_lock <= LPDIFF_LOCK_13; - rdiff_comp_unlock <= LPDIFF_UNLOCK_13; - end - - default : begin - rdiff_comp_lock <= LPDIFF_LOCK_10; - rdiff_comp_unlock <= LPDIFF_UNLOCK_10; - end - endcase - end - - 3'd2 : begin //For 2.4Gbps - rcount_tc <= LPCLK_TC_2; - case(PLOL_SETTING) - 'd0 : begin - rdiff_comp_lock <= LPDIFF_LOCK_20; - rdiff_comp_unlock <= LPDIFF_UNLOCK_20; - end - - 'd1 : begin - rdiff_comp_lock <= LPDIFF_LOCK_21; - rdiff_comp_unlock <= LPDIFF_UNLOCK_21; - end - - 'd2 : begin - rdiff_comp_lock <= LPDIFF_LOCK_22; - rdiff_comp_unlock <= LPDIFF_UNLOCK_22; - end - - 'd3 : begin - rdiff_comp_lock <= LPDIFF_LOCK_23; - rdiff_comp_unlock <= LPDIFF_UNLOCK_23; - end - - default : begin - rdiff_comp_lock <= LPDIFF_LOCK_20; - rdiff_comp_unlock <= LPDIFF_UNLOCK_20; - end - endcase - end - - 3'd3 : begin //For 3.07Gbps - rcount_tc <= LPCLK_TC_3; - case(PLOL_SETTING) - 'd0 : begin - rdiff_comp_lock <= LPDIFF_LOCK_30; - rdiff_comp_unlock <= LPDIFF_UNLOCK_30; - end - - 'd1 : begin - rdiff_comp_lock <= LPDIFF_LOCK_31; - rdiff_comp_unlock <= LPDIFF_UNLOCK_31; - end - - 'd2 : begin - rdiff_comp_lock <= LPDIFF_LOCK_32; - rdiff_comp_unlock <= LPDIFF_UNLOCK_32; - end - - 'd3 : begin - rdiff_comp_lock <= LPDIFF_LOCK_33; - rdiff_comp_unlock <= LPDIFF_UNLOCK_33; - end - endcase - end - - 3'd4 : begin //For 4.9125bps - rcount_tc <= LPCLK_TC_4; - case(PLOL_SETTING) - 'd0 : begin - rdiff_comp_lock <= LPDIFF_LOCK_40; - rdiff_comp_unlock <= LPDIFF_UNLOCK_40; - end - - 'd1 : begin - rdiff_comp_lock <= LPDIFF_LOCK_41; - rdiff_comp_unlock <= LPDIFF_UNLOCK_41; - end - - 'd2 : begin - rdiff_comp_lock <= LPDIFF_LOCK_42; - rdiff_comp_unlock <= LPDIFF_UNLOCK_42; - end - - 'd3 : begin - rdiff_comp_lock <= LPDIFF_LOCK_43; - rdiff_comp_unlock <= LPDIFF_UNLOCK_43; - end - - default : begin - rdiff_comp_lock <= LPDIFF_LOCK_40; - rdiff_comp_unlock <= LPDIFF_UNLOCK_40; - end - endcase - end - - default : begin - rcount_tc <= LPCLK_TC_0; - rdiff_comp_lock <= LPDIFF_LOCK_00; - rdiff_comp_unlock <= LPDIFF_UNLOCK_00; - end - endcase - end - end - else begin - //If there is no change in the CPRI rate mode from default - rcount_tc <= PPCLK_TC; - rdiff_comp_lock <= PDIFF_VAL_LOCK; - rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; - end - end -end -end -endgenerate - -//For PCIe protocol with Dynamic rate control disabled -generate -if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "PCIE")) begin -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - rcount_tc <= 22'd0; - rdiff_comp_lock <= 16'd0; - rdiff_comp_unlock <= 16'd0; - end - else begin - //Terminal count logic - if (PPCIE_MAX_RATE == "2.5") begin - //2.5G mode is enabled - rcount_tc <= PPCLK_TC; - rdiff_comp_lock <= PDIFF_VAL_LOCK; - rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; - end - else begin - //5G mode is enabled - if (rpcie_mode == 1'b1) begin - rcount_tc <= PPCLK_TC; - rdiff_comp_lock <= PDIFF_VAL_LOCK; - rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; - end - else begin - //2.5G mode is enabled - rcount_tc <= {1'b0,PPCLK_TC[21:1]}; - rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; - rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; - end - end - end -end -end -endgenerate - -//For all protocols other than CPRI & PCIe -generate -if ((PDYN_RATE_CTRL == "DISABLED") && ((PPROTOCOL != "CPRI") && (PPROTOCOL != "PCIE"))) begin -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - rcount_tc <= 22'd0; - rdiff_comp_lock <= 16'd0; - rdiff_comp_unlock <= 16'd0; - end - else begin - //Terminal count logic for all protocols other than CPRI & PCIe - rcount_tc <= PPCLK_TC; - rdiff_comp_lock <= PDIFF_VAL_LOCK; - rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; - end -end -end -endgenerate - - -// ============================================================================= -// Tx_pclk counter, Heartbeat and Differential value logic -// ============================================================================= -always @(posedge sli_pclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - pcount <= 22'd0; - pcount_diff <= 22'd65535; - phb_cnt <= 3'd0; - phb <= 1'b0; - end - else begin - //Counter logic - if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin - pcount <= 22'd0; - end - else begin - pcount <= pcount + 1; - end - - //Heartbeat logic - phb_cnt <= phb_cnt + 1; - - if ((phb_cnt < 3'd4) && (phb_cnt >= 3'd0)) begin - phb <= 1'b1; - end - else begin - phb <= 1'b0; - end - - //Differential value logic - if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin - pcount_diff <= rcount_tc + ~(pcount) + 1; - end - else if (ppul_sync_p2 == 1'b1 && ppul_sync_p3 == 1'b0) begin - if (pcount_diff[21] == 1'b1) begin - pcount_diff <= ~(pcount_diff) + 1; - end - end - end -end - - -// ============================================================================= -// State transition logic for SLL FSM -// ============================================================================= -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - sll_state <= LPLL_LOSS_ST; - end - else begin - //Reasons to declare an immediate loss - Absence of Tx_pclk, Dynamic rate change for SDI or CPRI - if ((rstat_pclk == 1'b0) || (rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || - (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin - sll_state <= LPLL_LOSS_ST; - end - else begin - case(sll_state) - LPLL_LOSS_ST : begin - if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin - if (unlock) begin - sll_state <= LPLL_LOSS_ST; - end - else if (lock) begin - if (PLOL_SETTING == 2'd0) begin - sll_state <= LPLL_PRELOCK_ST; - end - else begin - sll_state <= LPLL_LOCK_ST; - end - end - end - end - - LPLL_LOCK_ST : begin - if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin - if (lock) begin - sll_state <= LPLL_LOCK_ST; - end - else begin - if (PLOL_SETTING == 2'd0) begin - sll_state <= LPLL_LOSS_ST; - end - else begin - sll_state <= LPLL_PRELOSS_ST; - end - end - end - end - - LPLL_PRELOCK_ST : begin - if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin - if (lock) begin - sll_state <= LPLL_LOCK_ST; - end - else begin - sll_state <= LPLL_PRELOSS_ST; - end - end - end - - LPLL_PRELOSS_ST : begin - if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin - if (unlock) begin - sll_state <= LPLL_PRELOSS_ST; - end - else if (lock) begin - sll_state <= LPLL_LOCK_ST; - end - end - end - - default: begin - sll_state <= LPLL_LOSS_ST; - end - endcase - end - end -end - - -// ============================================================================= -// Logic for Tx PLL Lock -// ============================================================================= -always @(posedge sli_refclk or posedge sli_rst) begin - if (sli_rst == 1'b1) begin - pll_lock <= 1'b0; - end - else begin - case(sll_state) - LPLL_LOSS_ST : begin - pll_lock <= 1'b0; - end - - LPLL_LOCK_ST : begin - pll_lock <= 1'b1; - end - - LPLL_PRELOSS_ST : begin - pll_lock <= 1'b0; - end - - default: begin - pll_lock <= 1'b0; - end - endcase - end -end - -assign slo_plol = ~(pll_lock); - -endmodule - - -// =========================================================================== -// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -// --------------------------------------------------------------------------- -// Copyright (c) 2015 by Lattice Semiconductor Corporation -// ALL RIGHTS RESERVED -// ------------------------------------------------------------------ -// -// Permission: -// -// Lattice SG Pte. Ltd. grants permission to use this code -// pursuant to the terms of the Lattice Reference Design License Agreement. -// -// -// Disclaimer: -// -// This VHDL or Verilog source code is intended as a design reference -// which illustrates how these types of functions can be implemented. -// It is the user's responsibility to verify their design for -// consistency and functionality through the use of formal -// verification methods. Lattice provides no warranty -// regarding the use or functionality of this code. -// -// --------------------------------------------------------------------------- -// -// Lattice SG Pte. Ltd. -// 101 Thomson Road, United Square #07-02 -// Singapore 307591 -// -// -// TEL: 1-800-Lattice (USA and Canada) -// +65-6631-2000 (Singapore) -// +1-503-268-8001 (other locations) -// -// web: http://www.latticesemi.com/ -// email: techsupport@latticesemi.com -// -// --------------------------------------------------------------------------- -// -// ============================================================================= -// FILE DETAILS -// Project : Synchronizer Logic -// File : sync.v -// Title : Synchronizer module -// Description : -// ============================================================================= -// REVISION HISTORY -// Version : 1.0 -// Author(s) : AV -// Mod. Date : July 7, 2015 -// Changes Made : Initial Creation -// ----------------------------------------------------------------------------- -// Version : 1.1 -// Author(s) : EB -// Mod. Date : March 21, 2017 -// Changes Made : -// ============================================================================= - -`ifndef PCS_SYNC_MODULE -`define PCS_SYNC_MODULE -module sync ( - clk, - rst, - data_in, - data_out - ); - -input clk; //Clock in which the async data needs to be synchronized to -input rst; //Active high reset -input data_in; //Asynchronous data -output data_out; //Synchronized data - -parameter PDATA_RST_VAL = 0; //Reset value for the registers - -reg data_p1; -reg data_p2; - -// ============================================================================= -// Synchronization logic -// ============================================================================= -always @(posedge clk or posedge rst) begin - if (rst == 1'b1) begin - data_p1 <= PDATA_RST_VAL; - data_p2 <= PDATA_RST_VAL; - end - else begin - data_p1 <= data_in; - data_p2 <= data_p1; - end -end - -assign data_out = data_p2; - -endmodule -`endif - diff --git a/oldfiles/serdes_test/ecp2m_link_fifo.vhd b/oldfiles/serdes_test/ecp2m_link_fifo.vhd deleted file mode 100644 index 2e1120a..0000000 --- a/oldfiles/serdes_test/ecp2m_link_fifo.vhd +++ /dev/null @@ -1,1992 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v71_PROD_Build (58) --- Module Version: 4.4 ---/opt/lattice/isplever7.1/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 512 -width 18 -depth 512 -no_enable -pe 10 -pf 508 -e - --- Thu Mar 19 16:21:17 2009 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library ecp2m; -use ecp2m.components.all; --- synopsys translate_on - -entity ecp2m_link_fifo is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(17 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end ecp2m_link_fifo; - -architecture Structure of ecp2m_link_fifo is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_g2b_xor_cluster_1: std_logic; - signal r_g2b_xor_cluster_1: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal w_gdata_3: std_logic; - signal w_gdata_4: std_logic; - signal w_gdata_5: std_logic; - signal w_gdata_6: std_logic; - signal w_gdata_7: std_logic; - signal w_gdata_8: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal wptr_3: std_logic; - signal wptr_4: std_logic; - signal wptr_5: std_logic; - signal wptr_6: std_logic; - signal wptr_7: std_logic; - signal wptr_8: std_logic; - signal wptr_9: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal r_gdata_3: std_logic; - signal r_gdata_4: std_logic; - signal r_gdata_5: std_logic; - signal r_gdata_6: std_logic; - signal r_gdata_7: std_logic; - signal r_gdata_8: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal rptr_3: std_logic; - signal rptr_4: std_logic; - signal rptr_5: std_logic; - signal rptr_6: std_logic; - signal rptr_7: std_logic; - signal rptr_8: std_logic; - signal rptr_9: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal w_gcount_4: std_logic; - signal w_gcount_5: std_logic; - signal w_gcount_6: std_logic; - signal w_gcount_7: std_logic; - signal w_gcount_8: std_logic; - signal w_gcount_9: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal r_gcount_4: std_logic; - signal r_gcount_5: std_logic; - signal r_gcount_6: std_logic; - signal r_gcount_7: std_logic; - signal r_gcount_8: std_logic; - signal r_gcount_9: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal w_gcount_r24: std_logic; - signal w_gcount_r4: std_logic; - signal w_gcount_r25: std_logic; - signal w_gcount_r5: std_logic; - signal w_gcount_r26: std_logic; - signal w_gcount_r6: std_logic; - signal w_gcount_r27: std_logic; - signal w_gcount_r7: std_logic; - signal w_gcount_r28: std_logic; - signal w_gcount_r8: std_logic; - signal w_gcount_r29: std_logic; - signal w_gcount_r9: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal r_gcount_w24: std_logic; - signal r_gcount_w4: std_logic; - signal r_gcount_w25: std_logic; - signal r_gcount_w5: std_logic; - signal r_gcount_w26: std_logic; - signal r_gcount_w6: std_logic; - signal r_gcount_w27: std_logic; - signal r_gcount_w7: std_logic; - signal r_gcount_w28: std_logic; - signal r_gcount_w8: std_logic; - signal r_gcount_w29: std_logic; - signal r_gcount_w9: std_logic; - signal empty_i: std_logic; - signal full_i: std_logic; - signal rRst: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal w_gctr_ci: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co0: std_logic; - signal iwcount_4: std_logic; - signal iwcount_5: std_logic; - signal co1: std_logic; - signal iwcount_6: std_logic; - signal iwcount_7: std_logic; - signal co2: std_logic; - signal iwcount_8: std_logic; - signal iwcount_9: std_logic; - signal co4: std_logic; - signal wcount_9: std_logic; - signal co3: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal r_gctr_ci: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co0_1: std_logic; - signal ircount_4: std_logic; - signal ircount_5: std_logic; - signal co1_1: std_logic; - signal ircount_6: std_logic; - signal ircount_7: std_logic; - signal co2_1: std_logic; - signal ircount_8: std_logic; - signal ircount_9: std_logic; - signal co4_1: std_logic; - signal rcount_9: std_logic; - signal co3_1: std_logic; - signal cmp_ci: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal rcount_2: std_logic; - signal rcount_3: std_logic; - signal co1_2: std_logic; - signal rcount_4: std_logic; - signal rcount_5: std_logic; - signal co2_2: std_logic; - signal rcount_6: std_logic; - signal rcount_7: std_logic; - signal co3_2: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_8: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal cmp_ci_1: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal wcount_2: std_logic; - signal wcount_3: std_logic; - signal co1_3: std_logic; - signal wcount_4: std_logic; - signal wcount_5: std_logic; - signal co2_3: std_logic; - signal wcount_6: std_logic; - signal wcount_7: std_logic; - signal co3_3: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_8: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal iae_setcount_0: std_logic; - signal iae_setcount_1: std_logic; - signal ae_set_ctr_ci: std_logic; - signal iae_setcount_2: std_logic; - signal iae_setcount_3: std_logic; - signal co0_4: std_logic; - signal iae_setcount_4: std_logic; - signal iae_setcount_5: std_logic; - signal co1_4: std_logic; - signal iae_setcount_6: std_logic; - signal iae_setcount_7: std_logic; - signal co2_4: std_logic; - signal iae_setcount_8: std_logic; - signal iae_setcount_9: std_logic; - signal co4_2: std_logic; - signal ae_setcount_9: std_logic; - signal co3_4: std_logic; - signal rden_i: std_logic; - signal cmp_ci_2: std_logic; - signal wcount_r0: std_logic; - signal wcount_r1: std_logic; - signal ae_setcount_0: std_logic; - signal ae_setcount_1: std_logic; - signal co0_5: std_logic; - signal wcount_r2: std_logic; - signal wcount_r3: std_logic; - signal ae_setcount_2: std_logic; - signal ae_setcount_3: std_logic; - signal co1_5: std_logic; - signal wcount_r4: std_logic; - signal wcount_r5: std_logic; - signal ae_setcount_4: std_logic; - signal ae_setcount_5: std_logic; - signal co2_5: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r7: std_logic; - signal ae_setcount_6: std_logic; - signal ae_setcount_7: std_logic; - signal co3_5: std_logic; - signal wcount_r8: std_logic; - signal ae_set_cmp_clr: std_logic; - signal ae_setcount_8: std_logic; - signal ae_set_cmp_set: std_logic; - signal ae_set_d: std_logic; - signal ae_set_d_c: std_logic; - signal scuba_vhi: std_logic; - signal iaf_setcount_0: std_logic; - signal iaf_setcount_1: std_logic; - signal af_set_ctr_ci: std_logic; - signal iaf_setcount_2: std_logic; - signal iaf_setcount_3: std_logic; - signal co0_6: std_logic; - signal iaf_setcount_4: std_logic; - signal iaf_setcount_5: std_logic; - signal co1_6: std_logic; - signal iaf_setcount_6: std_logic; - signal iaf_setcount_7: std_logic; - signal co2_6: std_logic; - signal iaf_setcount_8: std_logic; - signal iaf_setcount_9: std_logic; - signal co4_3: std_logic; - signal af_setcount_9: std_logic; - signal co3_6: std_logic; - signal wren_i: std_logic; - signal cmp_ci_3: std_logic; - signal rcount_w0: std_logic; - signal rcount_w1: std_logic; - signal af_setcount_0: std_logic; - signal af_setcount_1: std_logic; - signal co0_7: std_logic; - signal rcount_w2: std_logic; - signal rcount_w3: std_logic; - signal af_setcount_2: std_logic; - signal af_setcount_3: std_logic; - signal co1_7: std_logic; - signal rcount_w4: std_logic; - signal rcount_w5: std_logic; - signal af_setcount_4: std_logic; - signal af_setcount_5: std_logic; - signal co2_7: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w7: std_logic; - signal af_setcount_6: std_logic; - signal af_setcount_7: std_logic; - signal co3_7: std_logic; - signal rcount_w8: std_logic; - signal af_set_cmp_clr: std_logic; - signal af_setcount_8: std_logic; - signal af_set_cmp_set: std_logic; - signal af_set: std_logic; - signal af_set_c: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component AGEB2 - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC0: in std_logic; PC1: in std_logic; - CO: out std_logic; NC0: out std_logic; NC1: out std_logic); - end component; - component FADD2B - port (A0: in std_logic; A1: in std_logic; B0: in std_logic; - B1: in std_logic; CI: in std_logic; COUT: out std_logic; - S0: out std_logic; S1: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component PDPW16KB - -- synopsys translate_off - generic (CSDECODE_R : in std_logic_vector(2 downto 0); - CSDECODE_W : in std_logic_vector(2 downto 0); - GSR : in String; RESETMODE : in String; - REGMODE : in String; DATA_WIDTH_R : in Integer; - DATA_WIDTH_W : in Integer); - -- synopsys translate_on - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - ADW0: in std_logic; ADW1: in std_logic; - ADW2: in std_logic; ADW3: in std_logic; - ADW4: in std_logic; ADW5: in std_logic; - ADW6: in std_logic; ADW7: in std_logic; - ADW8: in std_logic; BE0: in std_logic; BE1: in std_logic; - BE2: in std_logic; BE3: in std_logic; CEW: in std_logic; - CLKW: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; CSW2: in std_logic; - ADR0: in std_logic; ADR1: in std_logic; - ADR2: in std_logic; ADR3: in std_logic; - ADR4: in std_logic; ADR5: in std_logic; - ADR6: in std_logic; ADR7: in std_logic; - ADR8: in std_logic; ADR9: in std_logic; - ADR10: in std_logic; ADR11: in std_logic; - ADR12: in std_logic; ADR13: in std_logic; - CER: in std_logic; CLKR: in std_logic; CSR0: in std_logic; - CSR1: in std_logic; CSR2: in std_logic; RST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic); - end component; - attribute initval : string; - attribute MEM_LPC_FILE : string; - attribute MEM_INIT_FILE : string; - attribute CSDECODE_R : string; - attribute CSDECODE_W : string; - attribute RESETMODE : string; - attribute REGMODE : string; - attribute DATA_WIDTH_R : string; - attribute DATA_WIDTH_W : string; - attribute GSR : string; - attribute initval of LUT4_27 : label is "0x6996"; - attribute initval of LUT4_26 : label is "0x6996"; - attribute initval of LUT4_25 : label is "0x6996"; - attribute initval of LUT4_24 : label is "0x6996"; - attribute initval of LUT4_23 : label is "0x6996"; - attribute initval of LUT4_22 : label is "0x6996"; - attribute initval of LUT4_21 : label is "0x6996"; - attribute initval of LUT4_20 : label is "0x6996"; - attribute initval of LUT4_19 : label is "0x6996"; - attribute initval of LUT4_18 : label is "0x6996"; - attribute initval of LUT4_17 : label is "0x6996"; - attribute initval of LUT4_16 : label is "0x6996"; - attribute initval of LUT4_15 : label is "0x6996"; - attribute initval of LUT4_14 : label is "0x6996"; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x0410"; - attribute initval of LUT4_6 : label is "0x1004"; - attribute initval of LUT4_5 : label is "0x0140"; - attribute initval of LUT4_4 : label is "0x4001"; - attribute initval of LUT4_3 : label is "0x13c8"; - attribute initval of LUT4_2 : label is "0x2004"; - attribute initval of LUT4_1 : label is "0x4c32"; - attribute initval of LUT4_0 : label is "0x8001"; - attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "ecp2m_link_fifo.lpc"; - attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is ""; - attribute CSDECODE_R of pdp_ram_0_0_0 : label is "0b000"; - attribute CSDECODE_W of pdp_ram_0_0_0 : label is "0b001"; - attribute GSR of pdp_ram_0_0_0 : label is "ENABLED"; - attribute RESETMODE of pdp_ram_0_0_0 : label is "ASYNC"; - attribute REGMODE of pdp_ram_0_0_0 : label is "NOREG"; - attribute DATA_WIDTH_R of pdp_ram_0_0_0 : label is "36"; - attribute DATA_WIDTH_W of pdp_ram_0_0_0 : label is "36"; - attribute GSR of FF_123 : label is "ENABLED"; - attribute GSR of FF_122 : label is "ENABLED"; - attribute GSR of FF_121 : label is "ENABLED"; - attribute GSR of FF_120 : label is "ENABLED"; - attribute GSR of FF_119 : label is "ENABLED"; - attribute GSR of FF_118 : label is "ENABLED"; - attribute GSR of FF_117 : label is "ENABLED"; - attribute GSR of FF_116 : label is "ENABLED"; - attribute GSR of FF_115 : label is "ENABLED"; - attribute GSR of FF_114 : label is "ENABLED"; - attribute GSR of FF_113 : label is "ENABLED"; - attribute GSR of FF_112 : label is "ENABLED"; - attribute GSR of FF_111 : label is "ENABLED"; - attribute GSR of FF_110 : label is "ENABLED"; - attribute GSR of FF_109 : label is "ENABLED"; - attribute GSR of FF_108 : label is "ENABLED"; - attribute GSR of FF_107 : label is "ENABLED"; - attribute GSR of FF_106 : label is "ENABLED"; - attribute GSR of FF_105 : label is "ENABLED"; - attribute GSR of FF_104 : label is "ENABLED"; - attribute GSR of FF_103 : label is "ENABLED"; - attribute GSR of FF_102 : label is "ENABLED"; - attribute GSR of FF_101 : label is "ENABLED"; - attribute GSR of FF_100 : label is "ENABLED"; - attribute GSR of FF_99 : label is "ENABLED"; - attribute GSR of FF_98 : label is "ENABLED"; - attribute GSR of FF_97 : label is "ENABLED"; - attribute GSR of FF_96 : label is "ENABLED"; - attribute GSR of FF_95 : label is "ENABLED"; - attribute GSR of FF_94 : label is "ENABLED"; - attribute GSR of FF_93 : label is "ENABLED"; - attribute GSR of FF_92 : label is "ENABLED"; - attribute GSR of FF_91 : label is "ENABLED"; - attribute GSR of FF_90 : label is "ENABLED"; - attribute GSR of FF_89 : label is "ENABLED"; - attribute GSR of FF_88 : label is "ENABLED"; - attribute GSR of FF_87 : label is "ENABLED"; - attribute GSR of FF_86 : label is "ENABLED"; - attribute GSR of FF_85 : label is "ENABLED"; - attribute GSR of FF_84 : label is "ENABLED"; - attribute GSR of FF_83 : label is "ENABLED"; - attribute GSR of FF_82 : label is "ENABLED"; - attribute GSR of FF_81 : label is "ENABLED"; - attribute GSR of FF_80 : label is "ENABLED"; - attribute GSR of FF_79 : label is "ENABLED"; - attribute GSR of FF_78 : label is "ENABLED"; - attribute GSR of FF_77 : label is "ENABLED"; - attribute GSR of FF_76 : label is "ENABLED"; - attribute GSR of FF_75 : label is "ENABLED"; - attribute GSR of FF_74 : label is "ENABLED"; - attribute GSR of FF_73 : label is "ENABLED"; - attribute GSR of FF_72 : label is "ENABLED"; - attribute GSR of FF_71 : label is "ENABLED"; - attribute GSR of FF_70 : label is "ENABLED"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t20: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t19: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t18: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t17: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t16: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t15: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t14: XOR2 - port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3); - - XOR2_t13: XOR2 - port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4); - - XOR2_t12: XOR2 - port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5); - - XOR2_t11: XOR2 - port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6); - - XOR2_t10: XOR2 - port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7); - - XOR2_t9: XOR2 - port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8); - - XOR2_t8: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t7: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t6: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - XOR2_t5: XOR2 - port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3); - - XOR2_t4: XOR2 - port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4); - - XOR2_t3: XOR2 - port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5); - - XOR2_t2: XOR2 - port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6); - - XOR2_t1: XOR2 - port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7); - - XOR2_t0: XOR2 - port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8); - - LUT4_27: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, - AD1=>w_gcount_r28, AD0=>w_gcount_r29, - DO0=>w_g2b_xor_cluster_0); - - LUT4_26: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, - AD1=>w_gcount_r24, AD0=>w_gcount_r25, - DO0=>w_g2b_xor_cluster_1); - - LUT4_25: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r8); - - LUT4_24: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, - AD1=>w_gcount_r29, AD0=>scuba_vlo, DO0=>wcount_r7); - - LUT4_23: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, - AD1=>w_gcount_r27, AD0=>wcount_r8, DO0=>wcount_r5); - - LUT4_22: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, - AD1=>w_gcount_r26, AD0=>wcount_r7, DO0=>wcount_r4); - - LUT4_21: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, - AD1=>w_gcount_r25, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r3); - - LUT4_20: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_19: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r21, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_18: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, - AD1=>w_gcount_r20, AD0=>w_gcount_r21, DO0=>wcount_r0); - - LUT4_17: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, - AD1=>r_gcount_w28, AD0=>r_gcount_w29, - DO0=>r_g2b_xor_cluster_0); - - LUT4_16: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, - AD1=>r_gcount_w24, AD0=>r_gcount_w25, - DO0=>r_g2b_xor_cluster_1); - - LUT4_15: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w8); - - LUT4_14: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, - AD1=>r_gcount_w29, AD0=>scuba_vlo, DO0=>rcount_w7); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, - AD1=>r_gcount_w27, AD0=>rcount_w8, DO0=>rcount_w5); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, - AD1=>r_gcount_w26, AD0=>rcount_w7, DO0=>rcount_w4); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, - AD1=>r_gcount_w25, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w3); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w21, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, - AD1=>r_gcount_w20, AD0=>r_gcount_w21, DO0=>rcount_w0); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x13c8") - -- synopsys translate_on - port map (AD3=>ae_setcount_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>rptr_9, DO0=>ae_set_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x2004") - -- synopsys translate_on - port map (AD3=>ae_setcount_9, AD2=>rcount_9, AD1=>w_gcount_r29, - AD0=>rptr_9, DO0=>ae_set_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4c32") - -- synopsys translate_on - port map (AD3=>af_setcount_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>wptr_9, DO0=>af_set_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8001") - -- synopsys translate_on - port map (AD3=>af_setcount_9, AD2=>wcount_9, AD1=>r_gcount_w29, - AD0=>wptr_9, DO0=>af_set_cmp_clr); - - pdp_ram_0_0_0: PDPW16KB - -- synopsys translate_off - generic map (CSDECODE_R=> "000", CSDECODE_W=> "001", GSR=> "ENABLED", - RESETMODE=> "ASYNC", REGMODE=> "NOREG", DATA_WIDTH_R=> 36, - DATA_WIDTH_W=> 36) - -- synopsys translate_on - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>scuba_vlo, DI19=>scuba_vlo, DI20=>scuba_vlo, - DI21=>scuba_vlo, DI22=>scuba_vlo, DI23=>scuba_vlo, - DI24=>scuba_vlo, DI25=>scuba_vlo, DI26=>scuba_vlo, - DI27=>scuba_vlo, DI28=>scuba_vlo, DI29=>scuba_vlo, - DI30=>scuba_vlo, DI31=>scuba_vlo, DI32=>scuba_vlo, - DI33=>scuba_vlo, DI34=>scuba_vlo, DI35=>scuba_vlo, - ADW0=>wptr_0, ADW1=>wptr_1, ADW2=>wptr_2, ADW3=>wptr_3, - ADW4=>wptr_4, ADW5=>wptr_5, ADW6=>wptr_6, ADW7=>wptr_7, - ADW8=>wptr_8, BE0=>scuba_vhi, BE1=>scuba_vhi, BE2=>scuba_vhi, - BE3=>scuba_vhi, CEW=>wren_i, CLKW=>WrClock, CSW0=>scuba_vhi, - CSW1=>scuba_vlo, CSW2=>scuba_vlo, ADR0=>scuba_vlo, - ADR1=>scuba_vlo, ADR2=>scuba_vlo, ADR3=>scuba_vlo, - ADR4=>scuba_vlo, ADR5=>rptr_0, ADR6=>rptr_1, ADR7=>rptr_2, - ADR8=>rptr_3, ADR9=>rptr_4, ADR10=>rptr_5, ADR11=>rptr_6, - ADR12=>rptr_7, ADR13=>rptr_8, CER=>rden_i, CLKR=>RdClock, - CSR0=>scuba_vlo, CSR1=>scuba_vlo, CSR2=>scuba_vlo, - RST=>Reset, DO0=>open, DO1=>open, DO2=>open, DO3=>open, - DO4=>open, DO5=>open, DO6=>open, DO7=>open, DO8=>open, - DO9=>open, DO10=>open, DO11=>open, DO12=>open, DO13=>open, - DO14=>open, DO15=>open, DO16=>open, DO17=>open, DO18=>Q(0), - DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), DO22=>Q(4), DO23=>Q(5), - DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), DO27=>Q(9), DO28=>Q(10), - DO29=>Q(11), DO30=>Q(12), DO31=>Q(13), DO32=>Q(14), - DO33=>Q(15), DO34=>Q(16), DO35=>Q(17)); - - FF_123: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_122: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_121: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_120: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_119: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_4); - - FF_118: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_5); - - FF_117: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_6); - - FF_116: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_7); - - FF_115: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_8); - - FF_114: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_9); - - FF_113: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_112: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_111: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_110: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_109: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_4); - - FF_108: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_5); - - FF_107: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_6); - - FF_106: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_7); - - FF_105: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_8); - - FF_104: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_9); - - FF_103: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_102: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_101: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_100: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_99: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_4); - - FF_98: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_5); - - FF_97: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_6); - - FF_96: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_7); - - FF_95: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_8); - - FF_94: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_9); - - FF_93: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_92: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_91: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_90: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_89: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_4); - - FF_88: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_5); - - FF_87: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_6); - - FF_86: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_7); - - FF_85: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_8); - - FF_84: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_9); - - FF_83: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_82: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_81: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_80: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_79: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_4); - - FF_78: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_5); - - FF_77: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_6); - - FF_76: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_7); - - FF_75: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_8); - - FF_74: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_9); - - FF_73: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_72: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_71: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_70: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_69: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_4); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_5); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_6); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_7); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_8); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_9); - - FF_63: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_62: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_61: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_60: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_59: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4); - - FF_58: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5); - - FF_57: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6); - - FF_56: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7); - - FF_55: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8); - - FF_54: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9); - - FF_53: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_52: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_51: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_50: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_49: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4); - - FF_48: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5); - - FF_47: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6); - - FF_46: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7); - - FF_45: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8); - - FF_44: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9); - - FF_43: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_42: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_41: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_40: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_39: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r24); - - FF_38: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r25); - - FF_37: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r26); - - FF_36: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r27); - - FF_35: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r28); - - FF_34: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r29); - - FF_33: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_32: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_31: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_30: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_29: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24); - - FF_28: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29); - - FF_23: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - FF_21: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>ae_setcount_0); - - FF_20: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_1, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>ae_setcount_1); - - FF_19: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_2); - - FF_18: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_3, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>ae_setcount_3); - - FF_17: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_4); - - FF_16: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_5); - - FF_15: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_6); - - FF_14: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_7); - - FF_13: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_8); - - FF_12: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_9); - - FF_11: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ae_set_d, CK=>RdClock, PD=>rRst, Q=>AlmostEmpty); - - FF_10: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_0); - - FF_9: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_1); - - FF_8: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_2, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_2); - - FF_7: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_3); - - FF_6: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_4); - - FF_5: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_5); - - FF_4: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_6); - - FF_3: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_7); - - FF_2: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_8); - - FF_1: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_9); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>af_set, CK=>WrClock, CD=>Reset, Q=>AlmostFull); - - w_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, - S1=>open); - - w_gctr_0: CU2 - port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, - NC0=>iwcount_0, NC1=>iwcount_1); - - w_gctr_1: CU2 - port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, - NC0=>iwcount_2, NC1=>iwcount_3); - - w_gctr_2: CU2 - port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, - NC0=>iwcount_4, NC1=>iwcount_5); - - w_gctr_3: CU2 - port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, - NC0=>iwcount_6, NC1=>iwcount_7); - - w_gctr_4: CU2 - port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, - NC0=>iwcount_8, NC1=>iwcount_9); - - r_gctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, - S1=>open); - - r_gctr_0: CU2 - port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, - NC0=>ircount_0, NC1=>ircount_1); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, - NC0=>ircount_2, NC1=>ircount_3); - - r_gctr_2: CU2 - port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, - NC0=>ircount_4, NC1=>ircount_5); - - r_gctr_3: CU2 - port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, - NC0=>ircount_6, NC1=>ircount_7); - - r_gctr_4: CU2 - port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, - NC0=>ircount_8, NC1=>ircount_9); - - empty_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open); - - empty_cmp_0: AGEB2 - port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_2, GE=>co1_2); - - empty_cmp_2: AGEB2 - port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_2, GE=>co2_2); - - empty_cmp_3: AGEB2 - port map (A0=>rcount_6, A1=>rcount_7, B0=>w_g2b_xor_cluster_0, - B1=>wcount_r7, CI=>co2_2, GE=>co3_2); - - empty_cmp_4: AGEB2 - port map (A0=>rcount_8, A1=>empty_cmp_set, B0=>wcount_r8, - B1=>empty_cmp_clr, CI=>co3_2, GE=>empty_d_c); - - a0: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, - S1=>open); - - full_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open); - - full_cmp_0: AGEB2 - port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_3, GE=>co1_3); - - full_cmp_2: AGEB2 - port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_3, GE=>co2_3); - - full_cmp_3: AGEB2 - port map (A0=>wcount_6, A1=>wcount_7, B0=>r_g2b_xor_cluster_0, - B1=>rcount_w7, CI=>co2_3, GE=>co3_3); - - full_cmp_4: AGEB2 - port map (A0=>wcount_8, A1=>full_cmp_set, B0=>rcount_w8, - B1=>full_cmp_clr, CI=>co3_3, GE=>full_d_c); - - a1: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, - S1=>open); - - ae_set_ctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>ae_set_ctr_ci, S0=>open, - S1=>open); - - ae_set_ctr_0: CU2 - port map (CI=>ae_set_ctr_ci, PC0=>ae_setcount_0, - PC1=>ae_setcount_1, CO=>co0_4, NC0=>iae_setcount_0, - NC1=>iae_setcount_1); - - ae_set_ctr_1: CU2 - port map (CI=>co0_4, PC0=>ae_setcount_2, PC1=>ae_setcount_3, - CO=>co1_4, NC0=>iae_setcount_2, NC1=>iae_setcount_3); - - ae_set_ctr_2: CU2 - port map (CI=>co1_4, PC0=>ae_setcount_4, PC1=>ae_setcount_5, - CO=>co2_4, NC0=>iae_setcount_4, NC1=>iae_setcount_5); - - ae_set_ctr_3: CU2 - port map (CI=>co2_4, PC0=>ae_setcount_6, PC1=>ae_setcount_7, - CO=>co3_4, NC0=>iae_setcount_6, NC1=>iae_setcount_7); - - ae_set_ctr_4: CU2 - port map (CI=>co3_4, PC0=>ae_setcount_8, PC1=>ae_setcount_9, - CO=>co4_2, NC0=>iae_setcount_8, NC1=>iae_setcount_9); - - ae_set_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, - CI=>scuba_vlo, COUT=>cmp_ci_2, S0=>open, S1=>open); - - ae_set_cmp_0: AGEB2 - port map (A0=>ae_setcount_0, A1=>ae_setcount_1, B0=>wcount_r0, - B1=>wcount_r1, CI=>cmp_ci_2, GE=>co0_5); - - ae_set_cmp_1: AGEB2 - port map (A0=>ae_setcount_2, A1=>ae_setcount_3, B0=>wcount_r2, - B1=>wcount_r3, CI=>co0_5, GE=>co1_5); - - ae_set_cmp_2: AGEB2 - port map (A0=>ae_setcount_4, A1=>ae_setcount_5, B0=>wcount_r4, - B1=>wcount_r5, CI=>co1_5, GE=>co2_5); - - ae_set_cmp_3: AGEB2 - port map (A0=>ae_setcount_6, A1=>ae_setcount_7, - B0=>w_g2b_xor_cluster_0, B1=>wcount_r7, CI=>co2_5, GE=>co3_5); - - ae_set_cmp_4: AGEB2 - port map (A0=>ae_setcount_8, A1=>ae_set_cmp_set, B0=>wcount_r8, - B1=>ae_set_cmp_clr, CI=>co3_5, GE=>ae_set_d_c); - - a2: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>ae_set_d_c, COUT=>open, S0=>ae_set_d, - S1=>open); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - af_set_ctr_cia: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, - B1=>scuba_vhi, CI=>scuba_vlo, COUT=>af_set_ctr_ci, S0=>open, - S1=>open); - - af_set_ctr_0: CU2 - port map (CI=>af_set_ctr_ci, PC0=>af_setcount_0, - PC1=>af_setcount_1, CO=>co0_6, NC0=>iaf_setcount_0, - NC1=>iaf_setcount_1); - - af_set_ctr_1: CU2 - port map (CI=>co0_6, PC0=>af_setcount_2, PC1=>af_setcount_3, - CO=>co1_6, NC0=>iaf_setcount_2, NC1=>iaf_setcount_3); - - af_set_ctr_2: CU2 - port map (CI=>co1_6, PC0=>af_setcount_4, PC1=>af_setcount_5, - CO=>co2_6, NC0=>iaf_setcount_4, NC1=>iaf_setcount_5); - - af_set_ctr_3: CU2 - port map (CI=>co2_6, PC0=>af_setcount_6, PC1=>af_setcount_7, - CO=>co3_6, NC0=>iaf_setcount_6, NC1=>iaf_setcount_7); - - af_set_ctr_4: CU2 - port map (CI=>co3_6, PC0=>af_setcount_8, PC1=>af_setcount_9, - CO=>co4_3, NC0=>iaf_setcount_8, NC1=>iaf_setcount_9); - - af_set_cmp_ci_a: FADD2B - port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, - CI=>scuba_vlo, COUT=>cmp_ci_3, S0=>open, S1=>open); - - af_set_cmp_0: AGEB2 - port map (A0=>af_setcount_0, A1=>af_setcount_1, B0=>rcount_w0, - B1=>rcount_w1, CI=>cmp_ci_3, GE=>co0_7); - - af_set_cmp_1: AGEB2 - port map (A0=>af_setcount_2, A1=>af_setcount_3, B0=>rcount_w2, - B1=>rcount_w3, CI=>co0_7, GE=>co1_7); - - af_set_cmp_2: AGEB2 - port map (A0=>af_setcount_4, A1=>af_setcount_5, B0=>rcount_w4, - B1=>rcount_w5, CI=>co1_7, GE=>co2_7); - - af_set_cmp_3: AGEB2 - port map (A0=>af_setcount_6, A1=>af_setcount_7, - B0=>r_g2b_xor_cluster_0, B1=>rcount_w7, CI=>co2_7, GE=>co3_7); - - af_set_cmp_4: AGEB2 - port map (A0=>af_setcount_8, A1=>af_set_cmp_set, B0=>rcount_w8, - B1=>af_set_cmp_clr, CI=>co3_7, GE=>af_set_c); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - a3: FADD2B - port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, - B1=>scuba_vlo, CI=>af_set_c, COUT=>open, S0=>af_set, - S1=>open); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library ecp2m; -configuration Structure_CON of ecp2m_link_fifo is - for Structure - for all:AGEB2 use entity ecp2m.AGEB2(V); end for; - for all:AND2 use entity ecp2m.AND2(V); end for; - for all:CU2 use entity ecp2m.CU2(V); end for; - for all:FADD2B use entity ecp2m.FADD2B(V); end for; - for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for; - for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for; - for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for; - for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for; - for all:INV use entity ecp2m.INV(V); end for; - for all:OR2 use entity ecp2m.OR2(V); end for; - for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for; - for all:VHI use entity ecp2m.VHI(V); end for; - for all:VLO use entity ecp2m.VLO(V); end for; - for all:XOR2 use entity ecp2m.XOR2(V); end for; - for all:PDPW16KB use entity ecp2m.PDPW16KB(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/oldfiles/serdes_test/etrax_interfacev2.vhd b/oldfiles/serdes_test/etrax_interfacev2.vhd deleted file mode 100644 index b1887f3..0000000 --- a/oldfiles/serdes_test/etrax_interfacev2.vhd +++ /dev/null @@ -1,490 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -use IEEE.NUMERIC_STD.all; ---library UNISIM; ---use UNISIM.VCOMPONENTS.all; - -entity etrax_interfacev2 is - generic ( - RW_SYSTEM : integer range 1 to 2:=1 - ); - port ( - CLK : in std_logic; - RESET : in std_logic; - DATA_BUS : in std_logic_vector(31 downto 0); - ETRAX_DATA_BUS_B : inout std_logic_vector(16 downto 0); - ETRAX_DATA_BUS_B_17 : in std_logic;--_vector(16 downto 0); - ETRAX_DATA_BUS_C : inout std_logic_vector(17 downto 0); - ETRAX_DATA_BUS_E : inout std_logic_vector(9 downto 8); - DATA_VALID : in std_logic; - ETRAX_BUS_BUSY : in std_logic; - ETRAX_IS_READY_TO_READ : out std_logic; - TDC_TCK : out std_logic; - TDC_TDI : out std_logic; - TDC_TMS : out std_logic; - TDC_TRST : out std_logic; - TDC_TDO : in std_logic; - TDC_RESET : out std_logic; - EXTERNAL_ADDRESS : out std_logic_vector(31 downto 0); - EXTERNAL_DATA_OUT : out std_logic_vector(31 downto 0); - EXTERNAL_DATA_IN : in std_logic_vector(31 downto 0); - EXTERNAL_ACK : out std_logic; - EXTERNAL_VALID : in std_logic; - EXTERNAL_MODE : out std_logic_vector(15 downto 0); - FPGA_REGISTER_00 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_01 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_02 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_03 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_04 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_05 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_06 : out std_logic_vector(31 downto 0); - FPGA_REGISTER_07 : out std_logic_vector(31 downto 0); - FPGA_REGISTER_08 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_09 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0A : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0B : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0C : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0D : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0E : out std_logic_vector(31 downto 0); - LVL2_VALID : in std_logic - -- DEBUG_REGISTER_OO : out std_logic_vector(31 downto 0) - ); -end etrax_interfacev2; - -architecture etrax_interfacev2 of etrax_interfacev2 is - - component edge_to_pulse - port ( - clock : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); - end component; - - signal etrax_trigger_pulse : std_logic; - signal rw_operation_finished_pulse : std_logic; - signal saved_rw_mode : std_logic_vector(15 downto 0); - signal saved_address : std_logic_vector (31 downto 0); - signal saved_data : std_logic_vector(31 downto 0); - signal saved_data_fpga : std_logic_vector(31 downto 0); - - signal fpga_register_00_i : std_logic_vector(31 downto 0); - signal fpga_register_01_i : std_logic_vector(31 downto 0); - signal fpga_register_02_i : std_logic_vector(31 downto 0); - signal fpga_register_03_i : std_logic_vector(31 downto 0); - signal fpga_register_04_i : std_logic_vector(31 downto 0); - signal fpga_register_05_i : std_logic_vector(31 downto 0); - signal fpga_register_06_i : std_logic_vector(31 downto 0); - signal fpga_register_07_i : std_logic_vector(31 downto 0); - signal fpga_register_08_i : std_logic_vector(31 downto 0); - signal fpga_register_09_i : std_logic_vector(31 downto 0); - signal fpga_register_0A_i : std_logic_vector(31 downto 0); - signal fpga_register_0B_i : std_logic_vector(31 downto 0); - signal fpga_register_0C_i : std_logic_vector(31 downto 0); - signal fpga_register_0D_i : std_logic_vector(31 downto 0); - signal fpga_register_0E_i : std_logic_vector(31 downto 0); - signal saved_external_data : std_logic_vector(31 downto 0); - signal etrax_is_ready_to_read_i : std_logic; - signal lvl2_not_valid_pulse : std_logic; - signal counter_for_pulses : std_logic_vector(2 downto 0); - signal internal_reset_i : std_logic := '0'; - - signal data_from_etrax : std_logic_vector(80 downto 0); - signal etrax_std_data_counter : std_logic_vector(7 downto 0):=x"00"; - signal enable_transmition : std_logic :='1'; - signal etrax_strobe : std_logic; - signal data_to_etrax : std_logic_vector(31 downto 0); - signal reset_counter : std_logic_vector(15 downto 0) := x"0000"; - signal external_reset_counter : std_logic_vector(31 downto 0); - signal en_trigg_to_etrax : std_logic; - signal busy_dma_counter : std_logic_vector(3 downto 0); - signal busy_dma : std_logic; - signal etrax_busy_end_pulse : std_logic; - signal not_etrax_busy : std_logic; - signal data_valid_synch : std_logic; - signal send_data : std_logic; - signal data_bus_reg : std_logic_vector(31 downto 0); - constant INTERFACE_FOR_TRANSFER : integer := 2; --1 DMA, 2 no DMA - signal readout_lvl2_fifo_to_long :std_logic; - signal readout_lvl2_fifo_to_long_synch :std_logic; - signal readout_lvl2_fifo :std_logic; - signal etrax_busy_start : std_logic; - signal data_valid_start_pulse : std_logic; - signal data_valid_end_pulse : std_logic; - signal data_valid_not : std_logic; - signal etrax_busy_end : std_logic; - signal write_to_dma : std_logic; - signal write_to_dma_synch : std_logic; - signal word16_counter : std_logic_vector(7 downto 0); - signal write_to_dma_synch_synch : std_logic; -begin - - -------------------------------------------------------------------------------- --- transmition for reading, writing fpga registers, dsp, sdram , addon . . . -------------------------------------------------------------------------------- - - TRB_SYSTEM : if RW_SYSTEM = 1 generate - ETRAX_DATA_BUS_C(17) <= 'Z'; - STROBE_PULSER : edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => ETRAX_DATA_BUS_C(17), - pulse => etrax_strobe); - - SAVE_ETRAX_DATA : process (CLK, RESET) - variable etrax_data_counter : integer := 0; - begin - if rising_edge(CLK)then - if RESET = '1' or (etrax_std_data_counter = 81 and saved_rw_mode(15) = '0') or (etrax_std_data_counter = 114 and saved_rw_mode(15) = '1') then - etrax_data_counter := 0; - data_from_etrax <= (others => '0'); - ETRAX_DATA_BUS_C(16) <= 'Z'; - enable_transmition <= '1'; - etrax_std_data_counter <= x"00"; - elsif etrax_strobe = '1' and etrax_std_data_counter < 81 then -- and etrax_data_counter < 81 and etrax_data_counter > 0 then - data_from_etrax(etrax_data_counter) <= ETRAX_DATA_BUS_C(16); - etrax_data_counter := etrax_data_counter + 1; - ETRAX_DATA_BUS_C(16) <= 'Z'; - enable_transmition <= '0'; - etrax_std_data_counter <= etrax_std_data_counter + 1; - elsif etrax_std_data_counter = 81 and saved_rw_mode(15) = '1' then - data_from_etrax <= data_from_etrax; - ETRAX_DATA_BUS_C(16) <= data_to_etrax(0); - etrax_data_counter := etrax_data_counter + 1; - etrax_std_data_counter <= etrax_std_data_counter + 1; - enable_transmition <= '0'; - elsif etrax_strobe = '1' and etrax_std_data_counter > 81 and saved_rw_mode(15) = '1' then - data_from_etrax <= data_from_etrax; - ETRAX_DATA_BUS_C(16) <= data_to_etrax((etrax_data_counter-81) mod 32); - etrax_data_counter := etrax_data_counter + 1; - etrax_std_data_counter <= etrax_std_data_counter + 1; - enable_transmition <= '0'; - end if; - end if; - end process SAVE_ETRAX_DATA; - end generate TRB_SYSTEM; - -- we should add one state to wait for the data from external device (valid - -- pulse- > one long puls on the data bus !) - ADDON_SYSTEM : if RW_SYSTEM = 2 generate - ETRAX_DATA_BUS_E(8) <= 'Z'; - STROBE_PULSER : edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => ETRAX_DATA_BUS_E(9),-- - pulse => etrax_strobe); - - SAVE_ETRAX_DATA : process (CLK, RESET) - variable etrax_data_counter : integer := 0; - begin - if rising_edge(CLK)then - if RESET = '1' or (etrax_std_data_counter = 81 and saved_rw_mode(15) = '0') or (etrax_std_data_counter = 114 and saved_rw_mode(15) = '1') then - etrax_data_counter := 0; - data_from_etrax <= (others => '0'); - ETRAX_DATA_BUS_E(8) <= 'Z'; - enable_transmition <= '1'; - etrax_std_data_counter <= x"00"; - elsif etrax_strobe = '1' and etrax_std_data_counter < 81 then -- and etrax_data_counter < 81 and etrax_data_counter > 0 then - data_from_etrax(etrax_data_counter) <= ETRAX_DATA_BUS_E(8); - etrax_data_counter := etrax_data_counter + 1; - ETRAX_DATA_BUS_E(8) <= 'Z'; - enable_transmition <= '0'; - etrax_std_data_counter <= etrax_std_data_counter + 1; - elsif etrax_std_data_counter = 81 and saved_rw_mode(15) = '1' then - data_from_etrax <= data_from_etrax; - ETRAX_DATA_BUS_E(8) <= data_to_etrax(0); - etrax_data_counter := etrax_data_counter + 1; - etrax_std_data_counter <= etrax_std_data_counter + 1; - enable_transmition <= '0'; - elsif etrax_strobe = '1' and etrax_std_data_counter > 81 and saved_rw_mode(15) = '1' then - data_from_etrax <= data_from_etrax; - ETRAX_DATA_BUS_E(8) <= data_to_etrax( (etrax_data_counter-81) mod 32); - etrax_data_counter := etrax_data_counter + 1; - etrax_std_data_counter <= etrax_std_data_counter + 1; - enable_transmition <= '0'; - end if; - end if; - end process SAVE_ETRAX_DATA; - end generate ADDON_SYSTEM; - - data_to_etrax <= saved_data_fpga when saved_rw_mode(7 downto 0) = x"00" else saved_external_data; - RW_FINISHED_PULSER : edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => EXTERNAL_VALID, - pulse => rw_operation_finished_pulse); - --for reading only 1us for responce for any external device !!! - ask RADEK - --abut timing - REGISTER_ETRAX_BUS: process (CLK, RESET) - begin - if rising_edge(CLK) then - if rw_operation_finished_pulse = '1' then - saved_external_data <= EXTERNAL_DATA_IN; - else - saved_external_data <= saved_external_data; - end if; - end if; - end process REGISTER_ETRAX_BUS; - EXTERNAL_ADDRESS <= saved_address; - EXTERNAL_MODE <= saved_rw_mode(15 downto 0); - EXTERNAL_DATA_OUT <= saved_data; - EXTERNAL_ACK <= '1' when etrax_std_data_counter = 80 else '0'; - - CLOCK_SAVED_DATA: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' then - saved_rw_mode <= (others => '0'); - saved_address <= (others => '0'); - saved_data <= (others => '0'); - else - saved_rw_mode <= data_from_etrax(15 downto 0); - saved_address <= data_from_etrax(47 downto 16); - saved_data <= data_from_etrax(79 downto 48); - end if; - end if; - end process CLOCK_SAVED_DATA; - - REGISTERS: process (CLK) - begin - if rising_edge(CLK) then --- if RESET = '1' or (ETRAX_DATA_BUS_C(16)='1' and ETRAX_DATA_BUS_C(17)='1') then - fpga_register_01_i <= FPGA_REGISTER_01; - fpga_register_02_i <= FPGA_REGISTER_02; - fpga_register_03_i <= FPGA_REGISTER_03; - fpga_register_04_i <= FPGA_REGISTER_04; - fpga_register_05_i <= FPGA_REGISTER_05; - FPGA_REGISTER_06 <= fpga_register_06_i; --this used for TDCjtag enable(0) - FPGA_REGISTER_07 <= fpga_register_07_i; - fpga_register_08_i <= FPGA_REGISTER_08; - fpga_register_09_i <= FPGA_REGISTER_09; - fpga_register_0A_i <= FPGA_REGISTER_0A; - fpga_register_0B_i <= FPGA_REGISTER_0B; - fpga_register_0c_i <= FPGA_REGISTER_0C; - fpga_register_0d_i <= FPGA_REGISTER_0D; - FPGA_REGISTER_0E <= fpga_register_0e_i; - end if; - end process REGISTERS; - - DATA_SOURCE_SELECT : process (CLK,RESET,saved_rw_mode,saved_address) - begin - if rising_edge(CLK) then - if RESET = '1' then--(ETRAX_DATA_BUS_C(16) = '1' and ETRAX_DATA_BUS_C(17) = '1') then - fpga_register_06_i <= x"00000000"; - fpga_register_07_i <= x"00000000"; - fpga_register_0e_i <= x"00000000"; - else - case saved_rw_mode(7 downto 0) is - when "00000000" => - if saved_rw_mode(15) = '1' then - case saved_address(31 downto 0) is - when x"00000000" => saved_data_fpga <= fpga_register_00_i; - when x"00000001" => saved_data_fpga <= fpga_register_01_i; - when x"00000002" => saved_data_fpga <= fpga_register_02_i; - when x"00000003" => saved_data_fpga <= fpga_register_03_i; - when x"00000004" => saved_data_fpga <= fpga_register_04_i; - when x"00000005" => saved_data_fpga <= fpga_register_05_i; - when x"00000006" => saved_data_fpga <= fpga_register_06_i; - when x"00000007" => saved_data_fpga <= fpga_register_07_i; - when x"00000008" => saved_data_fpga <= fpga_register_08_i; - when x"00000009" => saved_data_fpga <= fpga_register_09_i; - when x"0000000A" => saved_data_fpga <= fpga_register_0A_i; - when x"0000000B" => saved_data_fpga <= fpga_register_0B_i; - when x"0000000C" => saved_data_fpga <= fpga_register_0C_i; - when x"0000000D" => saved_data_fpga <= fpga_register_0D_i; - when x"0000000E" => saved_data_fpga <= fpga_register_0E_i; - when others => saved_data_fpga <= x"deadface"; - end case; - elsif saved_rw_mode(15) = '0' and etrax_std_data_counter = 80 then - case saved_address(31 downto 0) is - when x"00000006" => fpga_register_06_i <= saved_data; - when x"00000007" => fpga_register_07_i <= saved_data; - when x"0000000e" => fpga_register_0e_i <= saved_data; - when others => null; - end case; - end if; - when "00000001" => --DSP write read - saved_data_fpga <= saved_external_data; - when x"02" => --sdram - saved_data_fpga <= saved_external_data; - when x"03" => --ADDON board write read - saved_data_fpga <= saved_external_data; - when others => - saved_data_fpga <= x"deadface"; - end case; - end if; - end if; - end process DATA_SOURCE_SELECT; - -------------------------------------------------------------------------------- --- data transmitio fpga -> etrax -------------------------------------------------------------------------------- ---DMA - DMA_INTERFACE: if INTERFACE_FOR_TRANSFER=1 generate - - REG_DATA_TO_ETRAXa:process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' then - data_bus_reg <= (others => '0'); - write_to_dma_synch <= '0'; - write_to_dma_synch_synch <= '0'; - else - data_bus_reg <= DATA_BUS; - write_to_dma_synch <= readout_lvl2_fifo;--write_to_dma; - write_to_dma_synch_synch <= write_to_dma_synch; - end if; - end if; - end process REG_DATA_TO_ETRAXa; - ETRAX_DATA_BUS_B(7 downto 0) <= data_bus_reg(31 downto 24); --- ETRAX_DATA_BUS_B(6 downto 0) <= data_bus_reg(30 downto 24); --!!!test - ETRAX_DATA_BUS_B(15 downto 8) <= data_bus_reg(23 downto 16); - ETRAX_DATA_BUS_C(15 downto 8) <= data_bus_reg(15 downto 8); - ETRAX_DATA_BUS_C(7 downto 4) <= data_bus_reg(7 downto 4); - - --- ETRAX_DATA_BUS_B(7) <= ETRAX_DATA_BUS_B_17; --for test - - TDC_TMS <= ETRAX_DATA_BUS_C(1) when fpga_register_06_i(0) = '1' else '1'; - TDC_TCK <= ETRAX_DATA_BUS_C(2) when fpga_register_06_i(0) = '1' else '1'; - TDC_TDI <= ETRAX_DATA_BUS_C(3) when fpga_register_06_i(0) = '1' else '1'; - ETRAX_DATA_BUS_C(0) <= TDC_TDO when fpga_register_06_i(0) = '1' else data_bus_reg(0); - ETRAX_DATA_BUS_C(1) <= 'Z' when fpga_register_06_i(0) = '1' else data_bus_reg(1); - ETRAX_DATA_BUS_C(2) <= 'Z' when fpga_register_06_i(0) = '1' else data_bus_reg(2); - ETRAX_DATA_BUS_C(3) <= 'Z' when fpga_register_06_i(0) = '1' else data_bus_reg(3); - - START_READOUT : edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => DATA_VALID, - pulse => data_valid_start_pulse); - data_valid_not <= not DATA_VALID; - - END_READOUT : edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => data_valid_not, - pulse => data_valid_end_pulse); - - ETRAX_BUSY_START_PULSER : edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => ETRAX_DATA_BUS_B_17, - pulse => etrax_busy_start); - - not_etrax_busy <= not ETRAX_DATA_BUS_B_17; - - ETRAX_BUSY_END_PULSER : edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => not_etrax_busy, - pulse => etrax_busy_end); - - COUNTER_FOR_READOUT: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' then - word16_counter <= x"FF"; - elsif (data_valid_start_pulse = '1') or (etrax_busy_end = '1' and DATA_VALID = '1') then - word16_counter <= x"00"; - elsif word16_counter < x"1e" then - word16_counter <= word16_counter + 1; - else - word16_counter <= word16_counter; - end if; - end if; - end process COUNTER_FOR_READOUT; - - READOUT_LVL2_FIFO_PROC: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' or data_valid_end_pulse = '1' or word16_counter = x"1e" then - readout_lvl2_fifo <= '0'; - elsif word16_counter < x"1e" then - readout_lvl2_fifo <= word16_counter(0); - end if; - end if; - end process READOUT_LVL2_FIFO_PROC; - - WRITE_TO_ETRAX_DMA: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' or word16_counter = x"1e" then - write_to_dma <= '0'; - elsif word16_counter = x"00" then - write_to_dma <= '1'; - end if; - end if; - end process WRITE_TO_ETRAX_DMA; - - etrax_is_ready_to_read_i <= (data_valid_start_pulse or readout_lvl2_fifo) and DATA_VALID; - ETRAX_IS_READY_TO_READ <= readout_lvl2_fifo; - ETRAX_DATA_BUS_B(16) <= write_to_dma_synch_synch;--(not CLK) and (write_to_dma_synch_synch); - - end generate DMA_INTERFACE; - - --- NO DMA - WITHOUT_DMA_ETRAX_INTERFACE: if INTERFACE_FOR_TRANSFER = 2 generate - - ETRAX_READY_PULSE : edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => ETRAX_DATA_BUS_B_17, - pulse => etrax_is_ready_to_read_i); - - MAKE_PULSES: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' then - counter_for_pulses <= "000"; - else - counter_for_pulses <= counter_for_pulses + 1; - end if; - end if; - end process make_pulses; - - LVL2_NOT_VALID_READY_PULSE : edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => counter_for_pulses(2), - pulse => lvl2_not_valid_pulse); - - ETRAX_IS_READY_TO_READ <= DATA_VALID and ((etrax_is_ready_to_read_i and (not LVL2_VALID)) or (lvl2_not_valid_pulse and LVL2_VALID)); - - TDC_TMS <= ETRAX_DATA_BUS_C(1) when fpga_register_06_i(0) = '1' else '1'; - TDC_TCK <= ETRAX_DATA_BUS_C(2) when fpga_register_06_i(0) = '1' else '1'; - TDC_TDI <= ETRAX_DATA_BUS_C(3) when fpga_register_06_i(0) = '1' else '1'; - ETRAX_DATA_BUS_C(0) <= TDC_TDO when fpga_register_06_i(0) = '1' else DATA_BUS(16); - ETRAX_DATA_BUS_C(1) <= 'Z' when fpga_register_06_i(0) = '1' else DATA_BUS(17); - ETRAX_DATA_BUS_C(2) <= 'Z' when fpga_register_06_i(0) = '1' else DATA_BUS(18); - ETRAX_DATA_BUS_C(3) <= 'Z' when fpga_register_06_i(0) = '1' else DATA_BUS(19); - ETRAX_DATA_BUS_C(15 downto 4) <= DATA_BUS(31 downto 20); - ETRAX_DATA_BUS_B(15 downto 0) <= DATA_BUS(15 downto 0); - ETRAX_DATA_BUS_B(16) <= DATA_VALID and (not LVL2_VALID); - - - REG_DATA_TO_ETRAX: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' then - data_bus_reg <= (others => '0'); - else - data_bus_reg <= DATA_BUS; - end if; - end if; - end process REG_DATA_TO_ETRAX; -end generate WITHOUT_DMA_ETRAX_INTERFACE; - -end etrax_interfacev2; diff --git a/oldfiles/serdes_test/f_divider.vhd b/oldfiles/serdes_test/f_divider.vhd deleted file mode 100644 index 8ed1794..0000000 --- a/oldfiles/serdes_test/f_divider.vhd +++ /dev/null @@ -1,174 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.all; -use IEEE.STD_LOGIC_arith.all; -use IEEE.STD_LOGIC_unsigned.all; - - -entity f_divider is - - generic( - cnt : integer := 4000 -- Der Teiler teilt durch "cnt" , wenn Test = 0 ist. -- - ); - - port ( - clk : in std_logic; - ena_cnt : in std_logic; - f_div : out std_logic - ); - -end f_divider; - - - -architecture arch_f_divider of f_divider is - - function How_many_Bits (int : integer) return integer is - variable i, tmp : integer; - begin - tmp := int; - i := 0; - while tmp > 0 loop - tmp := tmp / 2; - i := i + 1; - end loop; - return i; - end How_many_bits; - - - --+ - --| Wie Breit muss der Teiler sein, um durch "cnt" teilen zu können? | - --+ - constant c_counter_width : integer := How_many_Bits(cnt - 2); - - --+ ---------------------------------------------------------------------------------------------+ - --| Des Zähler "s_counter" muss ein Bit breiter definiert werden, als zur Abarbeitung des "cnt" | - --| nötig wäre. Dieses Bit wird beim Zählerunterlauf '1'. Der Zählerablauf wird dadurch ohne | - --| Komparator erkannt, er steht als getaktetes physikalisches Signal zur Verfügung. | - --+ ---------------------------------------------------------------------------------------------+ - signal s_counter : std_logic_vector(c_counter_width downto 0) := conv_std_logic_vector(0, c_counter_width+1); - - --+ ---------------------------------------------------------------------------------------------+ - --| Teiler muss mit einen um -2 geringeren Wert geladen werden. Da das Neuladen erst durch dem | - --| Unterlauf Zählers erfolgt. D.h. die Null und minus Eins werden mitgezählt. | - --+ ---------------------------------------------------------------------------------------------+ - constant c_ld_value : integer := cnt - 2; - -begin - p_f_divider : process (clk) - begin - if clk'event and clk = '1' then - if s_counter(s_counter'high) = '1' then -- Bei underflow wird neu geladen -- - s_counter <= conv_std_logic_vector(c_ld_value, s_counter'length); - elsif ena_cnt = '1' then - if s_counter(s_counter'high) = '0' then -- Kein underflow erreicht weiter -- - s_counter <= s_counter - 1; -- subtrahieren. -- - end if; - end if; - end if; - end process p_f_divider; - - f_div <= s_counter(s_counter'high); - -end arch_f_divider; - - - - -library IEEE; -use IEEE.STD_LOGIC_1164.all; -use IEEE.STD_LOGIC_ARITH.all; -use IEEE.STD_LOGIC_UNSIGNED.all; - - ---library synplify; ---use synplify.attributes.all; - - -entity edge_to_pulse is - - port ( - clock : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); - -end edge_to_pulse; - -architecture arch_edge_to_pulse of edge_to_pulse is - signal signal_sync : std_logic; - signal old_sync : std_logic; - type state is (idle, high, wait_for_low); -- state - signal current_state, next_state : state; - -begin -- arch_edge_to_pulse - - fsm : process (clock) - begin -- process fsm - if rising_edge(clock) then -- rising clock edge - if en_clk = '1' then - current_state <= next_state; - signal_sync <= signal_in; - end if; - end if; - end process fsm; - - - fsm_comb : process (current_state, signal_sync) - begin -- process fsm_comb - case current_state is - when idle => - pulse <= '0'; - if signal_sync = '1' then - next_state <= high; - else - next_state <= idle; - end if; - when high => - pulse <= '1'; - next_state <= wait_for_low; --- when wait_for_low_1 => --- pulse <= '1'; --- next_state <= wait_for_low; - when wait_for_low => - pulse <= '0'; - if signal_sync = '0' then - next_state <= idle; - else - next_state <= wait_for_low; - end if; - when others => - pulse <= '0'; - next_state <= idle; - end case; - end process fsm_comb; - - -end arch_edge_to_pulse; - - - -library IEEE; -use IEEE.STD_LOGIC_1164.all; - -package support is - - component f_divider - generic ( - cnt : integer); - port ( - clk : in std_logic; - ena_cnt : in std_logic; - f_div : out std_logic); - end component; - - component edge_to_pulse - port ( - clock : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); - end component; - - -end support; - diff --git a/oldfiles/serdes_test/flexi_PCS_channel_synch.vhd b/oldfiles/serdes_test/flexi_PCS_channel_synch.vhd deleted file mode 100644 index e261606..0000000 --- a/oldfiles/serdes_test/flexi_PCS_channel_synch.vhd +++ /dev/null @@ -1,539 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_UNSIGNED.ALL; ---library UNISIM; ---use UNISIM.VCOMPONENTS.all; -library ieee; -library work; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.all; -use work.trb_net_std.all; -use work.trb_net16_hub_func.all; - -entity flexi_PCS_channel_synch is - - port ( - SYSTEM_CLK : in std_logic; - TX_CLK : in std_logic; - RX_CLK : in std_logic; - RESET : in std_logic; - RXD : in std_logic_vector(15 downto 0); - RXD_SYNCH : out std_logic_vector(15 downto 0); - RX_K : in std_logic_vector(1 downto 0); - RX_RST : out std_logic; - CV : in std_logic_vector(1 downto 0); - TXD : in std_logic_vector(15 downto 0); - TXD_SYNCH : out std_logic_vector(15 downto 0); - TX_K : out std_logic_vector(1 downto 0); - DATA_VALID_IN : in std_logic; - DATA_VALID_OUT : out std_logic; - FLEXI_PCS_STATUS : out std_logic_vector(c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_ERROR_OUT : out std_logic_vector(2 downto 0); - MED_READ_IN : in std_logic - ); - -end flexi_PCS_channel_synch; -architecture flexi_PCS_channel_synch of flexi_PCS_channel_synch is - component flexi_PCS_fifo_EBR - port ( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(17 downto 0); - Empty : out std_logic; - Full : out std_logic; - AlmostEmpty : out std_logic; - AlmostFull : out std_logic); - end component; - - component ecp2m_link_fifo - port ( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(17 downto 0); - Empty : out std_logic; - Full : out std_logic; - AlmostEmpty : out std_logic; - AlmostFull : out std_logic); - end component; - - component simpleupcounter_32bit - port ( - QOUT : out std_logic_vector(31 downto 0); - UP : in std_logic; - CLK : in std_logic; - CLR : in std_logic); - end component; - component simpleupcounter_16bit - port ( - QOUT : out std_logic_vector(15 downto 0); - UP : in std_logic; - CLK : in std_logic; - CLR : in std_logic); - end component; - component simpleupcounter_8bit - port ( - QOUT : out std_logic_vector(15 downto 0); - UP : in std_logic; - CLK : in std_logic; - CLR : in std_logic); - end component; - component edge_to_pulse - port ( - CLOCK : in std_logic; - EN_CLK : in std_logic; - SIGNAL_IN : in std_logic; - PULSE : out std_logic); - end component; - type SYNCH_MACHINE is (IDLE, SYNCH_START, RESYNC1, RESYNC2, RESYNC3, WAIT_1, WAIT_2, NORMAL_OPERATION_1, NORMAL_OPERATION_2); - signal SYNCH_CURRENT, SYNCH_NEXT : SYNCH_MACHINE; - signal fsm_debug_register : std_logic_vector(2 downto 0); - signal resync_counter_up :std_logic; - signal resync_counter_clr :std_logic; - signal resync_counter : std_logic_vector(31 downto 0); - signal cv_i : std_logic_vector(1 downto 0); - signal cv_or : std_logic; - signal cv_counter : std_logic_vector(15 downto 0); - signal rx_rst_i : std_logic; - signal rxd_synch_i : std_logic_vector(15 downto 0); - signal rxd_synch_synch_i : std_logic_vector(15 downto 0); - signal rx_k_synch_i : std_logic_vector(1 downto 0); - signal rx_k_synch_synch_i : std_logic_vector(1 downto 0); - signal fifo_data_in : std_logic_vector(17 downto 0); - signal fifo_data_out : std_logic_vector(17 downto 0); - signal fifo_wr_en : std_logic; - signal fifo_rd_en : std_logic; - signal fifo_rst : std_logic; - signal fifo_full : std_logic; - signal fifo_almost_full : std_logic; - signal fifo_empty : std_logic; - signal fifo_almost_empty : std_logic; - signal packet_number : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal start_counter_1 : std_logic_vector(31 downto 0); - signal start_counter_2 : std_logic_vector(31 downto 0); - signal fifo_rd_pulse : std_logic; - signal fifo_rd_cnt : std_logic_vector(15 downto 0); - signal fifo_wr_cnt : std_logic_vector(15 downto 0); - signal not_fifo_empty : std_logic; - signal fifo_rd_en_dv : std_logic; - ----------------------------------------------------------------------------- - -- fifo to optical link - ----------------------------------------------------------------------------- - signal data_valid_out_i : std_logic; - signal fifo_opt_not_empty : std_logic; - signal fifo_opt_empty : std_logic; - signal fifo_opt_empty_synch : std_logic; - signal data_opt_in : std_logic_vector(17 downto 0); - signal txd_fifo_out : std_logic_vector(17 downto 0); - signal fifo_opt_full : std_logic; - signal fifo_opt_almost_empty : std_logic; - signal fifo_opt_almost_full : std_logic; - signal not_clk : std_logic; - signal txd_synch_i : std_logic_vector(15 downto 0); - signal tx_k_i : std_logic; - signal fifo_opt_empty_synch_synch : std_logic; - signal fifo_rd_en_hub : std_logic; - constant SYSTEM : Integer := 2; -begin - SEND_ERROR: process (SYSTEM_CLK, RESET,SYNCH_CURRENT) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - MED_ERROR_OUT <= ERROR_NC; - elsif SYNCH_CURRENT = NORMAL_OPERATION_1 or SYNCH_CURRENT = NORMAL_OPERATION_2 then - MED_ERROR_OUT <= ERROR_OK; - elsif SYNCH_CURRENT = WAIT_1 or SYNCH_CURRENT = WAIT_2 then - MED_ERROR_OUT <= ERROR_WAIT; - else - MED_ERROR_OUT <= ERROR_NC; - end if; - end if; - end process SEND_ERROR; - PACKET_NUM: process (SYSTEM_CLK, RESET,fifo_rd_en) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - packet_number <= "011"; - elsif fifo_rd_en = '1' then - if packet_number = c_max_word_number then - packet_number <= "000"; - else - packet_number <= packet_number + 1; - end if; - end if; - end if; - end process PACKET_NUM; - MED_PACKET_NUM_OUT <= packet_number; - LINK_STATUS : process (SYSTEM_CLK,RESET) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - RX_RST <= '0'; - FLEXI_PCS_STATUS(15 downto 0) <= (others => '0'); - else - RX_RST <= rx_rst_i; - FLEXI_PCS_STATUS(2 downto 0) <= fsm_debug_register; - FLEXI_PCS_STATUS(7 downto 3) <= fifo_empty & fifo_full & fifo_opt_empty & fifo_opt_full & DATA_VALID_IN;--fifo_almost_full & - --'0'; - FLEXI_PCS_STATUS(15 downto 8) <= fifo_wr_cnt(3 downto 0) & fifo_rd_cnt(3 downto 0);--resync_counter(15 downto 8);--cv_counter(15 downto 12) & cv_counter(3 downto 0); --- FLEXI_PCS_STATUS(11 downto 8) <= fifo_wr_cnt(4 downto 1);--resync_counter(15 downto 8);--cv_counter(15 downto 12) & cv_counter(3 downto 0); - end if; - end if; - end process LINK_STATUS; - ----------------------------------------------------------------------------- - -- data from hub to link - ----------------------------------------------------------------------------- - data_opt_in <= "00" & TXD; - SYSTEM_SCM_MEMa: if SYSTEM=1 generate - CHANNEL_FIFO_TO_OPT: flexi_PCS_fifo_EBR - port map ( - Data => data_opt_in, - WrClock => SYSTEM_CLK, - RdClock => TX_CLK, - WrEn => DATA_VALID_IN, - RdEn => fifo_opt_not_empty, - Reset => fifo_rst, - RPReset => fifo_rst, - Q => txd_fifo_out, - Empty => fifo_opt_empty, - Full => fifo_opt_full, - AlmostEmpty => fifo_opt_almost_empty, - AlmostFull => fifo_opt_almost_full - ); - end generate SYSTEM_SCM_MEMa; - - SYSTEM_ECP2_MEMa: if SYSTEM=2 generate - CHANNEL_FIFO_TO_OPT: ecp2m_link_fifo - port map ( - Data => data_opt_in, - WrClock => SYSTEM_CLK, - RdClock => TX_CLK, - WrEn => DATA_VALID_IN, - RdEn => fifo_opt_not_empty, - Reset => fifo_rst, - RPReset => fifo_rst, - Q => txd_fifo_out, - Empty => fifo_opt_empty, - Full => fifo_opt_full, - AlmostEmpty => fifo_opt_almost_empty, - AlmostFull => fifo_opt_almost_full - ); - end generate SYSTEM_ECP2_MEMa; - - - DATA_SEND_TO_LINK: process (TX_CLK, RESET, DATA_VALID_IN,fifo_opt_empty_synch,fifo_opt_empty_synch_synch) - begin - if rising_edge(TX_CLK) then --falling ??? - if RESET = '1' then - tx_k_i <= '0'; - txd_synch_i <= (others => '0'); - fifo_opt_empty_synch <= fifo_opt_empty; - fifo_opt_empty_synch_synch <= fifo_opt_empty_synch; - fifo_opt_not_empty <= not fifo_opt_empty; - elsif fifo_opt_empty_synch = '0' and fifo_opt_empty_synch_synch ='0' then - tx_k_i <= '0'; - txd_synch_i <= txd_fifo_out(15 downto 0); - fifo_opt_empty_synch <= fifo_opt_empty; - fifo_opt_empty_synch_synch <= fifo_opt_empty_synch; - fifo_opt_not_empty <= not fifo_opt_empty; - else - tx_k_i <= '1'; - txd_synch_i <= x"c5bc"; - fifo_opt_empty_synch <= fifo_opt_empty; - fifo_opt_empty_synch_synch <= fifo_opt_empty_synch; - fifo_opt_not_empty <= not fifo_opt_empty; - end if; - end if; - end process DATA_SEND_TO_LINK; - SYNCH_DATA: process (TX_CLK) - begin - if rising_edge(TX_CLK) then - TXD_SYNCH <= txd_synch_i; - TX_K(0) <= tx_k_i; - TX_K(1) <= '0'; - end if; - end process SYNCH_DATA; --- TX_FORCE_DISP(1) <= '0'; - ----------------------------------------------------------------------------- - -- from link to hub - ----------------------------------------------------------------------------- - SYSTEM_SCM_MEMb: if SYSTEM=1 generate - CHANNEL_FIFO_TO_FPGA: flexi_PCS_fifo_EBR - port map ( - Data => fifo_data_in, - WrClock => RX_CLK, - RdClock => SYSTEM_CLK, - WrEn => fifo_wr_en, - RdEn => fifo_rd_en, - Reset => fifo_rst, - RPReset => fifo_rst, - Q => fifo_data_out, - Empty => fifo_empty, - Full => fifo_full, - AlmostEmpty => fifo_almost_empty, - AlmostFull => fifo_almost_full - ); - end generate SYSTEM_SCM_MEMb; - - SYSTEM_ECP2_MEMb: if SYSTEM=2 generate - CHANNEL_FIFO_TO_FPGA: ecp2m_link_fifo - port map ( - Data => fifo_data_in, - WrClock => RX_CLK, - RdClock => SYSTEM_CLK, - WrEn => fifo_wr_en, - RdEn => fifo_rd_en, - Reset => fifo_rst, - RPReset => fifo_rst, - Q => fifo_data_out, - Empty => fifo_empty, - Full => fifo_full, - AlmostEmpty => fifo_almost_empty, - AlmostFull => fifo_almost_full - ); - end generate SYSTEM_ECP2_MEMb; - - not_fifo_empty <= not fifo_empty; - RD_FIFO_PULSE: edge_to_pulse - port map ( - clock => SYSTEM_CLK, - en_clk => '1', - signal_in => not_fifo_empty, - pulse => fifo_rd_pulse); - READING_THE_FIFO: process (SYSTEM_CLK, RESET, fifo_rd_pulse,MED_READ_IN,fifo_empty,data_valid_out_i) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - data_valid_out_i <= '0'; - fifo_rd_en_hub <= '0'; - elsif fifo_rd_pulse = '1' then - data_valid_out_i <= '1'; - fifo_rd_en_hub <= MED_READ_IN; - elsif MED_READ_IN = '1' and fifo_empty = '1' and data_valid_out_i = '1' then - data_valid_out_i <= '0'; - fifo_rd_en_hub <= '0'; - elsif data_valid_out_i = '1' and fifo_empty = '0' then - data_valid_out_i <= '1'; - fifo_rd_en_hub <= MED_READ_IN; - end if; - end if; - end process READING_THE_FIFO; - DATA_VALID_OUT <= data_valid_out_i; - fifo_rd_en <= (fifo_rd_en_hub and (not fifo_empty)) or fifo_rd_pulse; - RXD_SYNCH <= fifo_data_out(15 downto 0); --- DATA_VALID_OUT <= fifo_data_out(16) and (not fifo_empty); - VALID_DATA_SEND_TO_API: process (RX_CLK, RESET) - begin - if rising_edge(RX_CLK) then - if RESET = '1' then - rxd_synch_i <= (others => '0'); - rxd_synch_synch_i <= rxd_synch_i; - rx_k_synch_i <= "00"; - rx_k_synch_synch_i <= rx_k_synch_i; - else-- RX_K(0) = '1' then - rxd_synch_i <= RXD; - rxd_synch_synch_i <= rxd_synch_i; - rx_k_synch_i <= RX_K; - rx_k_synch_synch_i <= rx_k_synch_i; - end if; - end if; - end process VALID_DATA_SEND_TO_API; - SHIFT_OR_NOT_DATA_IN: process (RX_CLK, RESET, SYNCH_CURRENT) - begin - if rising_edge(RX_CLK) then - if RESET = '1' then - fifo_data_in <= (others => '0'); - elsif SYNCH_CURRENT = NORMAL_OPERATION_2 then - fifo_data_in <= '0' & (not RX_K(0)) & RXD; - elsif SYNCH_CURRENT = NORMAL_OPERATION_1 then - fifo_data_in <= '0' & (not RX_K(1)) & rxd_synch_i(7 downto 0) & RXD(15 downto 8); - else - fifo_data_in <= (others => '0'); - end if; - end if; - end process SHIFT_OR_NOT_DATA_IN; - --- SYNCH_CLOCK : process (RX_CLK, RESET) - SYNCH_CLOCK : process (SYSTEM_CLK, RESET) - begin - if rising_edge (SYSTEM_CLK) then - if RESET = '1' then - SYNCH_CURRENT <= IDLE; --no_sim-- ---sim-- SYNCH_CURRENT <= NORMAL_OPERATION_2; - cv_i <= (others => '0'); - else - SYNCH_CURRENT <= SYNCH_NEXT; - cv_i <= CV; - end if; - end if; - end process SYNCH_CLOCK; - SYNCH_FSM : process( SYNCH_CURRENT, rxd_synch_i, resync_counter, cv_i,RX_K, MED_READ_IN ,fifo_rd_pulse, fifo_rd_en_hub,rx_k_synch_i) - begin - case (SYNCH_CURRENT) is - when IDLE => - fifo_rst <= '1'; - fifo_wr_en <= '0'; - fsm_debug_register(2 downto 0) <= "001"; - rx_rst_i <= '0'; - resync_counter_up <= '0'; - resync_counter_clr <= '1'; --- if rxd_synch_i = x"bc50" then --- SYNCH_NEXT <= WAIT_1;--NORMAL_OPERATION_1;--WAIT_1; - --els - if rxd_synch_i = x"50bc" or rxd_synch_i = x"c5bc" then - SYNCH_NEXT <= WAIT_2;--NORMAL_OPERATION_2; --WAIT_2; - else - SYNCH_NEXT <= RESYNC1; - end if; - when RESYNC1 => - fifo_rst <= '0'; - fifo_wr_en <= '0'; - fsm_debug_register(2 downto 0) <= "010"; - rx_rst_i <= '1'; - resync_counter_up <= '1'; - resync_counter_clr <= '0'; - if resync_counter(8) = '1' then - SYNCH_NEXT <= RESYNC2; - else - SYNCH_NEXT <= RESYNC1; - end if; - when RESYNC2 => - fifo_rst <= '0'; - fifo_wr_en <= '0'; - fsm_debug_register(2 downto 0) <= "010"; - rx_rst_i <= '0'; - resync_counter_up <= '1'; - resync_counter_clr <= '0'; - if resync_counter(16) = '1' then --at least 400us - SYNCH_NEXT <= RESYNC3; - else - SYNCH_NEXT <= RESYNC2; - end if; - - when RESYNC3 => - fifo_rst <= '0'; - fifo_wr_en <= '0'; - fsm_debug_register(2 downto 0) <= "010"; - rx_rst_i <= '0'; - resync_counter_up <= '0'; - resync_counter_clr <= '1'; --- if rxd_synch_i = x"bc50" and rx_k_synch_i(1) = '1' then --- SYNCH_NEXT <= WAIT_1;--NORMAL_OPERATION_1; - --els - if (rxd_synch_i = x"50bc" or rxd_synch_i = x"c5bc") and rx_k_synch_i(0) = '1' then - SYNCH_NEXT <= WAIT_2;--no_sim-- ---sim-- SYNCH_NEXT <= NORMAL_OPERATION_2; - else - SYNCH_NEXT <= IDLE; - end if; - when WAIT_1 => - fifo_rst <= '0'; - rx_rst_i <= '0'; - fifo_wr_en <= '0'; - fsm_debug_register(2 downto 0) <= "011"; - resync_counter_up <= '1'; - resync_counter_clr <= '0'; - if resync_counter(27) = '1' and (rxd_synch_i = x"bc50" or rxd_synch_i = x"bcc5") and rx_k_synch_i(1) = '1' then - SYNCH_NEXT <= NORMAL_OPERATION_1; - elsif resync_counter(26) = '1' and (rxd_synch_i /= x"bc50" or rx_k_synch_i(1) = '0') then - SYNCH_NEXT <= RESYNC1; - else - SYNCH_NEXT <= WAIT_1; - end if; - when WAIT_2 => - fifo_rst <= '0'; - fifo_wr_en <= '0'; - rx_rst_i <= '0'; - fsm_debug_register(2 downto 0) <= "011"; - resync_counter_up <= '1'; - resync_counter_clr <= '0'; - if resync_counter(27) = '1' and (rxd_synch_i = x"50bc" or rxd_synch_i = x"c5bc") and rx_k_synch_i(0) = '1' then - SYNCH_NEXT <= NORMAL_OPERATION_2; - elsif resync_counter(26) = '1' and (rxd_synch_i(7 downto 0) /= x"bc" or rx_k_synch_i(0) = '0') then - SYNCH_NEXT <= RESYNC1; - else - SYNCH_NEXT <= WAIT_2; - end if; - when NORMAL_OPERATION_1 => - fifo_rst <= '0'; - fifo_wr_en <= not rx_k_synch_i(1); - fsm_debug_register(2 downto 0) <= "110"; - rx_rst_i <= '0'; - resync_counter_up <= '0'; - resync_counter_clr <= '0'; - if cv_i(0) = '1' or cv_i(1) = '1' then - SYNCH_NEXT <= IDLE; - else - SYNCH_NEXT <= NORMAL_OPERATION_1; - end if; - when NORMAL_OPERATION_2 => - fifo_rst <='0';--no_sim-- ---sim-- fifo_rst <=RESET; - fifo_wr_en <= not rx_k_synch_i(0); - fsm_debug_register(2 downto 0) <= "111"; - rx_rst_i <= '0'; - resync_counter_up <= '0'; - resync_counter_clr <= '0'; - if cv_i(0) = '1' or cv_i(1) = '1' then - SYNCH_NEXT <= IDLE; - else - SYNCH_NEXT <= NORMAL_OPERATION_2; - end if; - when others => - fifo_rst <= '0'; - fifo_wr_en <= '0'; - resync_counter_up <= '0'; - resync_counter_clr <= '0'; - fsm_debug_register(2 downto 0) <= "000"; - rx_rst_i <= '0'; - SYNCH_NEXT <= IDLE; - end case; - end process SYNCH_FSM; - - RESYNC_COUNTER_INST : simpleupcounter_32bit - port map ( - QOUT => resync_counter, - UP => resync_counter_up, - CLK => SYSTEM_CLK, - CLR => resync_counter_clr); - cv_or <= cv_i(0) or cv_i(1); - CV_COUNTER_INST: simpleupcounter_16bit - port map ( - QOUT => cv_counter, - UP => cv_or, - CLK => RX_CLK, - CLR => RESET); - WR_COUNTER_INST: simpleupcounter_16bit - port map ( - QOUT => fifo_wr_cnt, - UP => fifo_wr_en, - CLK => SYSTEM_CLK, - CLR => RESET); - fifo_rd_en_dv <= fifo_rd_en and fifo_data_out(16) and fifo_empty; - RD_COUNTER_INST: simpleupcounter_16bit - port map ( - QOUT => fifo_rd_cnt, - UP => DATA_VALID_IN,--fifo_rd_en_dv,--fifo_rd_en, - CLK => SYSTEM_CLK, - CLR => RESET); -end flexi_PCS_channel_synch; ---reciving idle for 1ms and start e11o until recive e11o and idle ---write to fifo when rx_k is 1 ? --- wait for reset --- wait for pll locked --- send idles --- wait 650ms (counter(27) = 1) --- enable rx --- wait 650ms (counter(27) = 1) --- enable tx --- ready diff --git a/oldfiles/serdes_test/flexi_PCS_fifo_EBR.vhd b/oldfiles/serdes_test/flexi_PCS_fifo_EBR.vhd deleted file mode 100644 index 5fbed36..0000000 --- a/oldfiles/serdes_test/flexi_PCS_fifo_EBR.vhd +++ /dev/null @@ -1,180 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v70_Prod_Build (55) --- Module Version: 4.2 ---/opt/lattice/isplever7.0/isptools/ispfpga/bin/lin/scuba -w -n flexi_PCS_fifo_EBR -lang vhdl -synth synplify -bus_exp 7 -bb -arch or5s00 -type ebfifo -depth 512 -width 18 -rwidth 18 -no_enable -pe 10 -pf 508 -e - --- Tue Nov 27 10:58:36 2007 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library SCM; -use SCM.COMPONENTS.all; --- synopsys translate_on - -entity flexi_PCS_fifo_EBR is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(17 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end flexi_PCS_fifo_EBR; - -architecture Structure of flexi_PCS_fifo_EBR is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal Empty_int: std_logic; - signal Full_int: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component FIFO16KA - -- synopsys translate_off - generic (FULLPOINTER1 : in std_logic_vector(14 downto 0); - FULLPOINTER : in std_logic_vector(14 downto 0); - AFPOINTER1 : in std_logic_vector(14 downto 0); - AEPOINTER1 : in std_logic_vector(14 downto 0); - AFPOINTER : in std_logic_vector(14 downto 0); - AEPOINTER : in std_logic_vector(14 downto 0); - CSDECODE_R : in std_logic_vector(1 downto 0); - CSDECODE_W : in std_logic_vector(1 downto 0); - RESETMODE : in String; REGMODE : in String; - DATA_WIDTH_R : in Integer; DATA_WIDTH_W : in Integer); - -- synopsys translate_on - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - FULLI: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; EMPTYI: in std_logic; - CSR0: in std_logic; CSR1: in std_logic; WE: in std_logic; - RE: in std_logic; CLKW: in std_logic; CLKR: in std_logic; - RST: in std_logic; RPRST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic; - EF: out std_logic; AEF: out std_logic; AFF: out std_logic; - FF: out std_logic); - end component; - attribute FULLPOINTER1 : string; - attribute FULLPOINTER : string; - attribute AFPOINTER1 : string; - attribute AFPOINTER : string; - attribute AEPOINTER1 : string; - attribute AEPOINTER : string; - attribute RESETMODE : string; - attribute REGMODE : string; - attribute CSDECODE_R : string; - attribute CSDECODE_W : string; - attribute DATA_WIDTH_R : string; - attribute DATA_WIDTH_W : string; - attribute FULLPOINTER1 of flexi_PCS_fifo_EBR_0_0 : label is "0b011111111000001"; - attribute FULLPOINTER of flexi_PCS_fifo_EBR_0_0 : label is "0b011111111100001"; - attribute AFPOINTER1 of flexi_PCS_fifo_EBR_0_0 : label is "0b011111101000001"; - attribute AFPOINTER of flexi_PCS_fifo_EBR_0_0 : label is "0b011111101100001"; - attribute AEPOINTER1 of flexi_PCS_fifo_EBR_0_0 : label is "0b000000101111111"; - attribute AEPOINTER of flexi_PCS_fifo_EBR_0_0 : label is "0b000000101011111"; - attribute RESETMODE of flexi_PCS_fifo_EBR_0_0 : label is "ASYNC"; - attribute REGMODE of flexi_PCS_fifo_EBR_0_0 : label is "NOREG"; - attribute CSDECODE_R of flexi_PCS_fifo_EBR_0_0 : label is "0b11"; - attribute CSDECODE_W of flexi_PCS_fifo_EBR_0_0 : label is "0b11"; - attribute DATA_WIDTH_R of flexi_PCS_fifo_EBR_0_0 : label is "36"; - attribute DATA_WIDTH_W of flexi_PCS_fifo_EBR_0_0 : label is "36"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - flexi_PCS_fifo_EBR_0_0: FIFO16KA - -- synopsys translate_off - generic map (FULLPOINTER1=> "011111111000001", FULLPOINTER=> "011111111100001", - AFPOINTER1=> "011111101000001", AFPOINTER=> "011111101100001", - AEPOINTER1=> "000000101111111", AEPOINTER=> "000000101011111", - RESETMODE=> "ASYNC", REGMODE=> "NOREG", CSDECODE_R=> "11", - CSDECODE_W=> "11", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - -- synopsys translate_on - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>scuba_vlo, DI19=>scuba_vlo, DI20=>scuba_vlo, - DI21=>scuba_vlo, DI22=>scuba_vlo, DI23=>scuba_vlo, - DI24=>scuba_vlo, DI25=>scuba_vlo, DI26=>scuba_vlo, - DI27=>scuba_vlo, DI28=>scuba_vlo, DI29=>scuba_vlo, - DI30=>scuba_vlo, DI31=>scuba_vlo, DI32=>scuba_vlo, - DI33=>scuba_vlo, DI34=>scuba_vlo, DI35=>scuba_vlo, - FULLI=>Full_int, CSW0=>scuba_vhi, CSW1=>scuba_vhi, - EMPTYI=>Empty_int, CSR0=>scuba_vhi, CSR1=>scuba_vhi, - WE=>WrEn, RE=>RdEn, CLKW=>WrClock, CLKR=>RdClock, RST=>Reset, - RPRST=>RPReset, DO0=>open, DO1=>open, DO2=>open, DO3=>open, - DO4=>open, DO5=>open, DO6=>open, DO7=>open, DO8=>open, - DO9=>open, DO10=>open, DO11=>open, DO12=>open, DO13=>open, - DO14=>open, DO15=>open, DO16=>open, DO17=>open, DO18=>Q(0), - DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), DO22=>Q(4), DO23=>Q(5), - DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), DO27=>Q(9), DO28=>Q(10), - DO29=>Q(11), DO30=>Q(12), DO31=>Q(13), DO32=>Q(14), - DO33=>Q(15), DO34=>Q(16), DO35=>Q(17), EF=>Empty_int, - AEF=>AlmostEmpty, AFF=>AlmostFull, FF=>Full_int); - - Empty <= Empty_int; - Full <= Full_int; -end Structure; - --- synopsys translate_off -library SCM; -configuration Structure_CON of flexi_PCS_fifo_EBR is - for Structure - for all:VHI use entity SCM.VHI(V); end for; - for all:VLO use entity SCM.VLO(V); end for; - for all:FIFO16KA use entity SCM.FIFO16KA(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/oldfiles/serdes_test/flexi_PCS_synch.vhd b/oldfiles/serdes_test/flexi_PCS_synch.vhd deleted file mode 100644 index bb6aff9..0000000 --- a/oldfiles/serdes_test/flexi_PCS_synch.vhd +++ /dev/null @@ -1,90 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_UNSIGNED.ALL; ---library UNISIM; ---use UNISIM.VCOMPONENTS.all; -library ieee; -library work; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.all; -use work.trb_net_std.all; - -entity flexi_PCS_synch is - generic ( - HOW_MANY_CHANNELS : positive); - port ( - SYSTEM_CLK : in std_logic; - CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)-1 downto 0); - RX_CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - RESET : in std_logic; - RXD : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - MED_DATA_OUT : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - RX_K : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - RX_RST : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - CV : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - MED_DATA_IN : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - TXD_SYNCH : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - TX_K : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - MED_DATAREADY_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_DATAREADY_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - FLEXI_PCS_SYNCH_STATUS : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - MED_READ_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_READ_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_ERROR_OUT : out std_logic_vector(HOW_MANY_CHANNELS*3-1 downto 0); - MED_STAT_OP : out std_logic_vector (HOW_MANY_CHANNELS*16-1 downto 0); - MED_CTRL_OP : in std_logic_vector (HOW_MANY_CHANNELS*16-1 downto 0) - ); -end flexi_PCS_synch; -architecture flexi_PCS_synch of flexi_PCS_synch is - component flexi_PCS_channel_synch - port ( - SYSTEM_CLK : in std_logic; - TX_CLK : in std_logic; - RX_CLK : in std_logic; - RESET : in std_logic; - RXD : in std_logic_vector(15 downto 0); - RXD_SYNCH : out std_logic_vector(15 downto 0); - RX_K : in std_logic_vector(1 downto 0); - RX_RST : out std_logic; - CV : in std_logic_vector(1 downto 0); - TXD : in std_logic_vector(15 downto 0); - TXD_SYNCH : out std_logic_vector(15 downto 0); - TX_K : out std_logic_vector(1 downto 0); - DATA_VALID_IN : in std_logic; - DATA_VALID_OUT : out std_logic; - FLEXI_PCS_STATUS : out std_logic_vector(15 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_ERROR_OUT : out std_logic_vector(2 downto 0); - MED_READ_IN : in std_logic - ); - end component; -begin - CHANNEL_GENERATE : for bit_index in 0 to HOW_MANY_CHANNELS-1 generate - begin - MED_READ_OUT <= (others => '1'); - - SYNCH :flexi_PCS_channel_synch - port map ( - SYSTEM_CLK => SYSTEM_CLK, - TX_CLK => CLK(bit_index/4), --4 different channles clk - RX_CLK => RX_CLK(bit_index), - RESET => RESET, - RXD => RXD((bit_index*16+15) downto bit_index*16), - RXD_SYNCH => MED_DATA_OUT((bit_index*16+15) downto bit_index*16), - RX_K => RX_K(bit_index*2+1 downto bit_index*2), - RX_RST => RX_RST(bit_index), - CV => CV((bit_index*2+1) downto bit_index*2), - TXD => MED_DATA_IN((bit_index*16+15) downto bit_index*16), - TXD_SYNCH => TXD_SYNCH((bit_index*16+15) downto bit_index*16), - TX_K => TX_K(bit_index*2+1 downto bit_index*2), - DATA_VALID_IN => MED_DATAREADY_IN(bit_index), - DATA_VALID_OUT => MED_DATAREADY_OUT(bit_index), - FLEXI_PCS_STATUS => FLEXI_PCS_SYNCH_STATUS((bit_index*16+15) downto bit_index*16), - MED_PACKET_NUM_OUT => MED_PACKET_NUM_OUT(((bit_index+1)*c_NUM_WIDTH-1) downto bit_index*c_NUM_WIDTH), - MED_ERROR_OUT => MED_ERROR_OUT((bit_index*3+2) downto bit_index*3), - MED_READ_IN => MED_READ_IN(bit_index) - ); - end generate; -end flexi_PCS_synch; diff --git a/oldfiles/serdes_test/hub.vhd b/oldfiles/serdes_test/hub.vhd deleted file mode 100644 index 5699c6a..0000000 --- a/oldfiles/serdes_test/hub.vhd +++ /dev/null @@ -1,1076 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_UNSIGNED.ALL; ---library UNISIM; ---use UNISIM.VCOMPONENTS.all; -library ieee; -library work; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.all; -use work.version.all; -use work.trb_net_std.all; -use work.trb_net16_hub_func.all; --- library sc; --- use sc.components.all; -entity hub is - generic ( - HOW_MANY_CHANNELS : integer range 2 to c_MAX_MII_PER_HUB := 16 - ); - port ( - LVDS_CLK_200P : in std_logic; --- LVDS_CLK_200N : in std_logic; --- SERDES_200N : in std_logic; --- SERDES_200P : in std_logic; --- ADO_LV : in std_logic_vector(61 downto 0); - --addon connector - ADO_TTL : inout std_logic_vector(46 downto 0); - --diode - DBAD : out std_logic; - DGOOD : out std_logic; - DINT : out std_logic; - DWAIT : out std_logic; - LOK : out std_logic_vector(16 downto 1); - RT : out std_logic_vector(16 downto 1); - TX_DIS : out std_logic_vector(16 downto 1); - IPLL : out std_logic; - OPLL : out std_logic; - --data to/from optical tranceivers - SFP_INP_N : in std_logic_vector(15 downto 0); - SFP_INP_P : in std_logic_vector(15 downto 0); - SFP_OUT_N : out std_logic_vector(15 downto 0); - SFP_OUT_P : out std_logic_vector(15 downto 0); - --tempsens - FS_PE_11 : inout std_logic; - --etrax_interface - FS_PE : inout std_logic_vector(9 downto 8)--sim-- ; ---sim-- OPT_DATA_IN : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); ---sim-- OPT_DATA_OUT : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); ---sim-- OPT_DATA_VALID_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); ---sim-- OPT_DATA_VALID_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0) - ); -end hub; -architecture hub of hub is - component trb_hub_interface - port ( - CLK : in std_logic; - RESET : in std_logic; - STROBE : in std_logic; - INTERNAL_DATA_IN : in std_logic_vector(7 downto 0); - INTERNAL_DATA_OUT : out std_logic_vector(7 downto 0); - INTERNAL_ADDRESS : in std_logic_vector(15 downto 0); - INTERNAL_MODE : in std_logic; - VALID_DATA_SENT : out std_logic; - hub_register_00 : in std_logic_vector(7 downto 0); - hub_register_01 : in std_logic_vector(7 downto 0); - hub_register_02 : in std_logic_vector(7 downto 0); - hub_register_03 : in std_logic_vector(7 downto 0); - hub_register_04 : in std_logic_vector(7 downto 0); - hub_register_05 : in std_logic_vector(7 downto 0); - hub_register_06 : in std_logic_vector(7 downto 0); - hub_register_07 : in std_logic_vector(7 downto 0); - hub_register_08 : in std_logic_vector(7 downto 0); - hub_register_09 : in std_logic_vector(7 downto 0); - hub_register_0a : out std_logic_vector(7 downto 0); - hub_register_0b : out std_logic_vector(7 downto 0); - hub_register_0c : out std_logic_vector(7 downto 0); - hub_register_0d : out std_logic_vector(7 downto 0); - hub_register_0e : out std_logic_vector(7 downto 0); - hub_register_0f : out std_logic_vector(7 downto 0); - hub_register_10 : in std_logic_vector(7 downto 0); - hub_register_11 : in std_logic_vector(7 downto 0); - hub_register_12 : in std_logic_vector(7 downto 0); - hub_register_13 : in std_logic_vector(7 downto 0); - hub_register_14 : in std_logic_vector(7 downto 0); - hub_register_15 : in std_logic_vector(7 downto 0); - hub_register_16 : in std_logic_vector(7 downto 0) - ); - end component; - component serdes_fpga_ref_clk--serdes, flexi PCS - port( --- refclkp : in std_logic; --- refclkn : in std_logic; - rxrefclk : in std_logic; - refclk : in std_logic; - hdinp_0 : in std_logic; - hdinn_0 : in std_logic; - tclk_0 : in std_logic; - rclk_0 : in std_logic; - tx_rst_0 : in std_logic; - rx_rst_0 : in std_logic; - txd_0 : in std_logic_vector(15 downto 0); - tx_k_0 : in std_logic_vector(1 downto 0); - tx_force_disp_0 : in std_logic_vector(1 downto 0); - tx_disp_sel_0 : in std_logic_vector(1 downto 0); - tx_crc_init_0 : in std_logic_vector(1 downto 0); - word_align_en_0 : in std_logic; - mca_align_en_0 : in std_logic; - felb_0 : in std_logic; - lsm_en_0 : in std_logic; - hdinp_1 : in std_logic; - hdinn_1 : in std_logic; - tclk_1 : in std_logic; - rclk_1 : in std_logic; - tx_rst_1 : in std_logic; - rx_rst_1 : in std_logic; - txd_1 : in std_logic_vector(15 downto 0); - tx_k_1 : in std_logic_vector(1 downto 0); - tx_force_disp_1 : in std_logic_vector(1 downto 0); - tx_disp_sel_1 : in std_logic_vector(1 downto 0); - tx_crc_init_1 : in std_logic_vector(1 downto 0); - word_align_en_1 : in std_logic; - mca_align_en_1 : in std_logic; - felb_1 : in std_logic; - lsm_en_1 : in std_logic; - hdinp_2 : in std_logic; - hdinn_2 : in std_logic; - tclk_2 : in std_logic; - rclk_2 : in std_logic; - tx_rst_2 : in std_logic; - rx_rst_2 : in std_logic; - txd_2 : in std_logic_vector(15 downto 0); - tx_k_2 : in std_logic_vector(1 downto 0); - tx_force_disp_2 : in std_logic_vector(1 downto 0); - tx_disp_sel_2 : in std_logic_vector(1 downto 0); - tx_crc_init_2 : in std_logic_vector(1 downto 0); - word_align_en_2 : in std_logic; - mca_align_en_2 : in std_logic; - felb_2 : in std_logic; - lsm_en_2 : in std_logic; - hdinp_3 : in std_logic; - hdinn_3 : in std_logic; - tclk_3 : in std_logic; - rclk_3 : in std_logic; - tx_rst_3 : in std_logic; - rx_rst_3 : in std_logic; - txd_3 : in std_logic_vector(15 downto 0); - tx_k_3 : in std_logic_vector(1 downto 0); - tx_force_disp_3 : in std_logic_vector(1 downto 0); - tx_disp_sel_3 : in std_logic_vector(1 downto 0); - tx_crc_init_3 : in std_logic_vector(1 downto 0); - word_align_en_3 : in std_logic; - mca_align_en_3 : in std_logic; - felb_3 : in std_logic; - lsm_en_3 : in std_logic; - mca_resync_01 : in std_logic; - mca_resync_23 : in std_logic; - quad_rst : in std_logic; - serdes_rst : in std_logic; - rxa_pclk : out std_logic; - rxb_pclk : out std_logic; - hdoutp_0 : out std_logic; - hdoutn_0 : out std_logic; - ref_0_sclk : out std_logic; - rx_0_sclk : out std_logic; - rxd_0 : out std_logic_vector(15 downto 0); - rx_k_0 : out std_logic_vector(1 downto 0); - rx_disp_err_detect_0 : out std_logic_vector(1 downto 0); - rx_cv_detect_0 : out std_logic_vector(1 downto 0); - rx_crc_eop_0 : out std_logic_vector(1 downto 0); - lsm_status_0 : out std_logic; - hdoutp_1 : out std_logic; - hdoutn_1 : out std_logic; - ref_1_sclk : out std_logic; - rx_1_sclk : out std_logic; - rxd_1 : out std_logic_vector(15 downto 0); - rx_k_1 : out std_logic_vector(1 downto 0); - rx_disp_err_detect_1 : out std_logic_vector(1 downto 0); - rx_cv_detect_1 : out std_logic_vector(1 downto 0); - rx_crc_eop_1 : out std_logic_vector(1 downto 0); - lsm_status_1 : out std_logic; - hdoutp_2 : out std_logic; - hdoutn_2 : out std_logic; - ref_2_sclk : out std_logic; - rx_2_sclk : OUT std_logic; - rxd_2 : OUT std_logic_vector(15 downto 0); - rx_k_2 : OUT std_logic_vector(1 downto 0); - rx_disp_err_detect_2 : OUT std_logic_vector(1 downto 0); - rx_cv_detect_2 : OUT std_logic_vector(1 downto 0); - rx_crc_eop_2 : OUT std_logic_vector(1 downto 0); - lsm_status_2 : OUT std_logic; - hdoutp_3 : OUT std_logic; - hdoutn_3 : OUT std_logic; - ref_3_sclk : OUT std_logic; - rx_3_sclk : OUT std_logic; - rxd_3 : OUT std_logic_vector(15 downto 0); - rx_k_3 : OUT std_logic_vector(1 downto 0); - rx_disp_err_detect_3 : out std_logic_vector(1 downto 0); - rx_cv_detect_3 : out std_logic_vector(1 downto 0); - rx_crc_eop_3 : out std_logic_vector(1 downto 0); - lsm_status_3 : out std_logic; - mca_aligned_01 : out std_logic; - mca_inskew_01 : out std_logic; - mca_outskew_01 : out std_logic; - mca_aligned_23 : out std_logic; - mca_inskew_23 : out std_logic; - mca_outskew_23 : out std_logic; - ref_pclk : out std_logic - ); - end component; - component flexi_PCS_synch - generic ( - HOW_MANY_CHANNELS : positive); - port ( - SYSTEM_CLK : in std_logic; - CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)-1 downto 0); - RX_CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - RESET : in std_logic; - RXD : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - MED_DATA_OUT : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - RX_K : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - RX_RST : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - CV : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - MED_DATA_IN : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - TXD_SYNCH : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - TX_K : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - MED_DATAREADY_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_DATAREADY_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - FLEXI_PCS_SYNCH_STATUS : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - MED_READ_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_READ_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_ERROR_OUT : out std_logic_vector(HOW_MANY_CHANNELS*3-1 downto 0); - MED_STAT_OP : out std_logic_vector (HOW_MANY_CHANNELS*16-1 downto 0); - MED_CTRL_OP : in std_logic_vector (HOW_MANY_CHANNELS*16-1 downto 0) - ); - end component; - component pll_ref - port ( - clk : in std_logic; - clkop : out std_logic; - clkos : out std_logic; - lock : out std_logic); - end component; --- component trb_net16_hub_base --- generic ( --- --general settings --- MUX_SECURE_MODE : integer range 0 to 1 := c_NO; --- --hub control --- HUB_CTRL_CHANNELNUM : integer range 0 to 3 := 0;--c_SLOW_CTRL_CHANNEL; --- HUB_CTRL_DEPTH : integer range 0 to 6 := c_FIFO_SMALL; --- HUB_CTRL_REG_ADDR_WIDTH : integer range 1 to 7 := 4; --- HUB_USED_CHANNELS : hub_channel_config_t := (c_YES,c_YES,c_YES,c_YES); --- IBUF_SECURE_MODE : integer range 0 to 1 := c_NO; --- INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F00A"; --- INIT_UNIQUE_ID : std_logic_vector(95 downto 0) := (others => '0'); --- COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000"; --- COMPILE_VERSION : std_logic_vector(15 downto 0) := x"0001"; --- HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678"; --- --media interfaces --- MII_NUMBER : integer range 2 to c_MAX_MII_PER_HUB := HOW_MANY_CHANNELS; --- MII_IBUF_DEPTH : hub_iobuf_config_t := std_HUB_IBUF_DEPTH; --- -- settings for apis --- API_NUMBER : integer range 0 to c_MAX_API_PER_HUB := 0; --- API_CHANNELS : hub_api_config_t := (3,3,3,3,3,3,3,3); --- API_TYPE : hub_api_config_t := (0,0,0,0,0,0,0,0); --- API_FIFO_TO_INT_DEPTH : hub_api_config_t := (1,1,1,1,1,1,1,1); --- API_FIFO_TO_APL_DEPTH : hub_api_config_t := (1,1,1,1,1,1,1,1); --- --trigger reading interfaces --- TRG_NUMBER : integer range 0 to c_MAX_TRG_PER_HUB := 0; --- TRG_SECURE_MODE : integer range 0 to 1 := c_NO; --- TRG_CHANNELS : hub_api_config_t := (0,1,0,0,0,0,0,0) --- ); --- port ( --- CLK : in std_logic; --- RESET : in std_logic; --- CLK_EN : in std_logic; --- MED_DATAREADY_OUT : out std_logic_vector (MII_NUMBER-1 downto 0); --- MED_DATA_OUT : out std_logic_vector (MII_NUMBER*c_DATA_WIDTH-1 downto 0); --- MED_PACKET_NUM_OUT : out std_logic_vector (MII_NUMBER*c_NUM_WIDTH-1 downto 0); --- MED_READ_IN : in std_logic_vector (MII_NUMBER-1 downto 0); --- MED_DATAREADY_IN : in std_logic_vector (MII_NUMBER-1 downto 0); --- MED_DATA_IN : in std_logic_vector (MII_NUMBER*c_DATA_WIDTH-1 downto 0); --- MED_PACKET_NUM_IN : in std_logic_vector (MII_NUMBER*c_NUM_WIDTH-1 downto 0); --- MED_READ_OUT : out std_logic_vector (MII_NUMBER-1 downto 0); --- MED_ERROR_IN : in std_logic_vector (MII_NUMBER*3-1 downto 0); --- MED_STAT_OP : in std_logic_vector (MII_NUMBER*16-1 downto 0); --- MED_CTRL_OP : out std_logic_vector (MII_NUMBER*16-1 downto 0); --- APL_DATA_IN : in std_logic_vector (API_NUMBER*c_DATA_WIDTH downto 0); --- APL_PACKET_NUM_IN : in std_logic_vector (API_NUMBER*c_NUM_WIDTH downto 0); --- APL_DATAREADY_IN : in std_logic_vector (API_NUMBER downto 0); --- APL_READ_OUT : out std_logic_vector (API_NUMBER downto 0); --- APL_SHORT_TRANSFER_IN : in std_logic_vector (API_NUMBER downto 0); --- APL_DTYPE_IN : in std_logic_vector (API_NUMBER*4 downto 0); --- APL_ERROR_PATTERN_IN : in std_logic_vector (API_NUMBER*32 downto 0); --- APL_SEND_IN : in std_logic_vector (API_NUMBER downto 0); --- APL_TARGET_ADDRESS_IN : in std_logic_vector (API_NUMBER*16 downto 0); --- APL_DATA_OUT : out std_logic_vector (API_NUMBER*16 downto 0); --- APL_PACKET_NUM_OUT : out std_logic_vector (API_NUMBER*c_NUM_WIDTH downto 0); --- APL_TYP_OUT : out std_logic_vector (API_NUMBER*3 downto 0); --- APL_DATAREADY_OUT : out std_logic_vector (API_NUMBER downto 0); --- APL_READ_IN : in std_logic_vector (API_NUMBER downto 0); --- APL_RUN_OUT : out std_logic_vector (API_NUMBER downto 0); --- APL_MY_ADDRESS_IN : in std_logic_vector (API_NUMBER*16 downto 0); --- APL_SEQNR_OUT : out std_logic_vector (API_NUMBER*8 downto 0); --- TRG_GOT_TRIGGER_OUT : out std_logic_vector (TRG_NUMBER downto 0); --- TRG_ERROR_PATTERN_OUT : out std_logic_vector (TRG_NUMBER*32 downto 0); --- TRG_DTYPE_OUT : out std_logic_vector (TRG_NUMBER*4 downto 0); --- TRG_SEQNR_OUT : out std_logic_vector (TRG_NUMBER*8 downto 0); --- TRG_ERROR_PATTERN_IN : in std_logic_vector (TRG_NUMBER*32 downto 0); --- TRG_RELEASE_IN : in std_logic_vector (TRG_NUMBER downto 0); --- ONEWIRE : inout std_logic; --- HUB_STAT_CHANNEL : out std_logic_vector (2**(c_MUX_WIDTH-1)*16-1 downto 0); --- HUB_STAT_GEN : out std_logic_vector (31 downto 0); --- MPLEX_CTRL : in std_logic_vector (MII_NUMBER*32-1 downto 0); --- MPLEX_STAT : out std_logic_vector (MII_NUMBER*32-1 downto 0); --- ETRAX_CTRL : in std_logic_vector (15 downto 0) --- ); --- end component; - component simpleupcounter_16bit - port ( - QOUT : out std_logic_vector(15 downto 0); - UP : in std_logic; - CLK : in std_logic; - CLR : in std_logic); - end component; - component simpleupcounter_32bit - port ( - QOUT : out std_logic_vector(31 downto 0); - UP : in std_logic; - CLK : in std_logic; - CLR : in std_logic); - end component; - component trb_net_onewire - generic ( - USE_TEMPERATURE_READOUT : integer range 0 to 1; - CLK_PERIOD : integer); - port ( - CLK : in std_logic; - RESET : in std_logic; - ONEWIRE : inout std_logic; - DATA_OUT : out std_logic_vector(15 downto 0); - ADDR_OUT : out std_logic_vector(2 downto 0); - WRITE_OUT : out std_logic; - TEMP_OUT : out std_logic_vector(11 downto 0); - STAT : out std_logic_vector(31 downto 0)); - end component; - component edge_to_pulse - port ( - clock : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); - end component; - component DCS --- synthesis translate_off - --sim - generic ( - DCSMODE : string := "LOW_LOW"); --- synthesis translate_on - port ( - CLK0 : in std_logic; - CLK1 : in std_logic; - SEL : in std_logic; - DCSOUT : out std_logic); - end component; - component etrax_interfacev2 - generic ( - RW_SYSTEM : positive); - port ( - CLK : in std_logic; - RESET : in std_logic; - DATA_BUS : in std_logic_vector(31 downto 0); - ETRAX_DATA_BUS_B : inout std_logic_vector(16 downto 0); - ETRAX_DATA_BUS_B_17 : in std_logic; - ETRAX_DATA_BUS_C : inout std_logic_vector(17 downto 0); - ETRAX_DATA_BUS_E : inout std_logic_vector(10 downto 9); - DATA_VALID : in std_logic; - ETRAX_BUS_BUSY : in std_logic; - ETRAX_IS_READY_TO_READ : out std_logic; - TDC_TCK : out std_logic; - TDC_TDI : out std_logic; - TDC_TMS : out std_logic; - TDC_TRST : out std_logic; - TDC_TDO : in std_logic; - TDC_RESET : out std_logic; - EXTERNAL_ADDRESS : out std_logic_vector(31 downto 0); - EXTERNAL_DATA_OUT : out std_logic_vector(31 downto 0); - EXTERNAL_DATA_IN : in std_logic_vector(31 downto 0); - EXTERNAL_ACK : out std_logic; - EXTERNAL_VALID : in std_logic; - EXTERNAL_MODE : out std_logic_vector(15 downto 0); - FPGA_REGISTER_00 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_01 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_02 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_03 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_04 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_05 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_06 : out std_logic_vector(31 downto 0); - FPGA_REGISTER_07 : out std_logic_vector(31 downto 0); - FPGA_REGISTER_08 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_09 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0A : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0B : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0C : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0D : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0E : out std_logic_vector(31 downto 0); --- EXTERNAL_RESET : out std_logic; - LVL2_VALID : in std_logic); - end component; - - component hub_etrax_interface - port ( - CLK : in std_logic; - RESET : in std_logic; - ETRAX_DATA_BUS : inout std_logic_vector(17 downto 5); - EXTERNAL_ADDRESS : out std_logic_vector(31 downto 0); - EXTERNAL_DATA_OUT : out std_logic_vector(31 downto 0); - EXTERNAL_DATA_IN : in std_logic_vector(31 downto 0); - EXTERNAL_ACK : out std_logic; - EXTERNAL_VALID : in std_logic; - EXTERNAL_MODE : out std_logic_vector(7 downto 0); - FPGA_REGISTER_00 : out std_logic_vector(31 downto 0); - FPGA_REGISTER_01 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_02 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_03 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_04 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_05 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_06 : out std_logic_vector(31 downto 0); - FPGA_REGISTER_07 : out std_logic_vector(31 downto 0); - FPGA_REGISTER_08 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_09 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0A : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0B : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0C : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0D : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0E : out std_logic_vector(31 downto 0); - EXTERNAL_RESET : out std_logic); - end component; - - component simple_hub - generic ( - HOW_MANY_CHANNELS : positive); - port ( - CLK : in std_logic; - RESET : in std_logic; - DATA_IN : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - DATA_OUT : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - DATA_IN_VALID : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - SEND_DATA : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - ENABLE_CHANNELS : in std_logic_vector(15 downto 0); - READ_DATA : out std_logic_vector(HOW_MANY_CHANNELS -1 downto 0); - HUB_DEBUG : out std_logic_vector(31 downto 0) - ); - end component; --- constant HOW_MANY_CHANNELS : integer := 16; - ----------------------------------------------------------------------------- - -- FLEXI_PCS - ----------------------------------------------------------------------------- - signal ref_pclk : std_logic_vector((HOW_MANY_CHANNELS+3)/4 -1 downto 0); - signal rxd_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - signal rxd_synch_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - signal rx_k_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal rx_rst_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - signal cv_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal txd_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - signal txd_synch_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - signal tx_k_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal rxb_pclk_a : std_logic_vector((HOW_MANY_CHANNELS+3)/4 -1 downto 0); - signal rx_clk_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - signal flexi_pcs_synch_status_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - signal word_align_en : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - ----------------------------------------------------------------------------- - -- hub trb interface - ----------------------------------------------------------------------------- - signal hub_register_00_i : std_logic_vector(31 downto 0); - signal hub_register_01_i : std_logic_vector(31 downto 0); - signal hub_register_02_i : std_logic_vector(31 downto 0); - signal hub_register_03_i : std_logic_vector(31 downto 0); - signal hub_register_04_i : std_logic_vector(31 downto 0); - signal hub_register_05_i : std_logic_vector(31 downto 0); - signal hub_register_06_i : std_logic_vector(31 downto 0); - signal hub_register_07_i : std_logic_vector(31 downto 0); - signal hub_register_08_i : std_logic_vector(31 downto 0); - signal hub_register_09_i : std_logic_vector(31 downto 0); - signal hub_register_0a_i : std_logic_vector(31 downto 0); - signal hub_register_0b_i : std_logic_vector(31 downto 0); - signal hub_register_0c_i : std_logic_vector(31 downto 0); - signal hub_register_0d_i : std_logic_vector(31 downto 0); - signal hub_register_0e_i : std_logic_vector(31 downto 0); - signal hub_register_0f_i : std_logic_vector(31 downto 0); - signal hub_register_10_i : std_logic_vector(31 downto 0); - signal hub_register_11_i : std_logic_vector(31 downto 0); - signal hub_register_12_i : std_logic_vector(31 downto 0); - signal hub_register_13_i : std_logic_vector(31 downto 0); - signal hub_register_14_i : std_logic_vector(31 downto 0); - signal hub_register_15_i : std_logic_vector(31 downto 0); - signal hub_register_16_i : std_logic_vector(31 downto 0); - signal ADO_TTL_12 : std_logic; - ----------------------------------------------------------------------------- - -- flexi_PCS to hub interface - ----------------------------------------------------------------------------- - signal med_dataready_in_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - --test - signal data_valid_in_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal med_dataready_out_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal med_read_in_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal med_read_out_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal med_data_out_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - signal med_data_in_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - signal med_packet_num_out_i : std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - signal med_packet_num_in_i : std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - signal med_error_out_i : std_logic_vector(HOW_MANY_CHANNELS*3-1 downto 0); - signal med_stat_op_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - signal med_ctrl_op_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - signal hub_stat_channel_i : std_logic_vector(2**(c_MUX_WIDTH-1)*16-1 downto 0); - signal hub_stat_gen_i : std_logic_vector(31 downto 0); - - ----------------------------------------------------------------------------- - -- other - ----------------------------------------------------------------------------- - signal hub_register_0e_and_0d : std_logic_vector(15 downto 0) := x"0006"; - signal cv_counter : std_logic_vector(31 downto 0); - signal cv_countera : std_logic_vector(31 downto 0); - signal serdes_ref_clk : std_logic; - signal serdes_ref_lock : std_logic; - signal serdes_ref_clks : std_logic; - signal med_packet_num_in_s : std_logic_vector(HOW_MANY_CHANNELS*2 -1 downto 0); - signal mplex_ctrl_i : std_logic_vector (HOW_MANY_CHANNELS*32-1 downto 0); - signal word_counter_for_api_00 : std_logic_vector(1 downto 0); - signal word_counter_for_api_01 : std_logic_vector(1 downto 0); - signal global_reset_i : std_logic; - signal global_reset_cnt : std_logic_vector(3 downto 0):=x"0"; - signal registered_signals : std_logic_vector(7 downto 0); - signal hub_register_0a_i_synch : std_logic_vector(7 downto 0); - signal hub_register_0e_and_0d_synch : std_logic_vector(15 downto 0); - signal test_signal : std_logic_vector(1 downto 0); - signal pulse_test : std_logic; - signal saved_lvl1_ready : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0):=(others => '0'); - signal saved_lvl2_ready : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0):=(others => '0'); - signal all_lvl1_ready : std_logic; - signal all_lvl2_ready : std_logic; - signal flexi_pcs_ref_clk : std_logic; - signal lok_i : std_logic_vector(16 downto 1); - signal not_used_lok : std_logic_vector(15 downto 0); - signal used_channels_locked : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal channels_locked : std_logic_vector(16 downto 1); - signal switch_rx_clk : std_logic; - signal lock_pattern : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal all_lvl1_ready_delay1 : std_logic; - signal all_lvl1_ready_delay2 : std_logic; - signal all_lvl2_ready_delay1 : std_logic; - signal all_lvl2_ready_delay2 : std_logic; - -- etrax interface --- signal external_address_i : std_logic_vector(31 downto 0); --- signal external_data_out_i : std_logic_vector(31 downto 0); --- signal external_data_in_i : std_logic_vector(31 downto 0); --- signal external_ack_i : std_logic; --- signal external_valid_i : std_logic; --- signal external_mode_i : std_logic_vector(7 downto 0); --- signal data_valid_i : std_logic; - signal debug_register_00_i : std_logic_vector(7 downto 0); - signal test2 : std_logic_vector(1 downto 0); - signal med_read_counter : std_logic_vector(3 downto 0); - -- simulation - signal rx_k_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal tx_k_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal cv_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal rx_clk_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - signal ref_pclk_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)-1 downto 0); - constant trb_net_enable : integer := 0; - --etrax interface - signal external_address_i : std_logic_vector(31 downto 0); - signal external_data_out_i : std_logic_vector(31 downto 0); - signal external_data_in_i : std_logic_vector(31 downto 0); - signal external_ack_i : std_logic; - signal external_valid_i : std_logic; - signal external_mode_i : std_logic_vector(15 downto 0); - signal fpga_register_00_i : std_logic_vector(31 downto 0); - signal fpga_register_01_i : std_logic_vector(31 downto 0); - signal fpga_register_02_i : std_logic_vector(31 downto 0); - signal fpga_register_03_i : std_logic_vector(31 downto 0); - signal fpga_register_04_i : std_logic_vector(31 downto 0); - signal fpga_register_05_i : std_logic_vector(31 downto 0); - signal fpga_register_06_i : std_logic_vector(31 downto 0):=x"00000003"; - signal fpga_register_07_i : std_logic_vector(31 downto 0); - signal fpga_register_08_i : std_logic_vector(31 downto 0); - signal fpga_register_09_i : std_logic_vector(31 downto 0); - signal fpga_register_0a_i : std_logic_vector(31 downto 0); - signal fpga_register_0b_i : std_logic_vector(31 downto 0); - signal fpga_register_0c_i : std_logic_vector(31 downto 0); - signal fpga_register_0d_i : std_logic_vector(31 downto 0); - signal fpga_register_0e_i : std_logic_vector(31 downto 0); - --simple hub - signal hub_debug_i : std_logic_vector(31 downto 0); - --test - constant OPT_TEST_MODE : integer := 1; - -begin - GLOBAL_RESET: process(LVDS_CLK_200P,global_reset_cnt) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_cnt < x"e" then - global_reset_cnt <= global_reset_cnt + 1; - global_reset_i <= '1'; - elsif global_reset_cnt = x"e" then - global_reset_i <= '0'; - global_reset_cnt <= x"e"; - else - global_reset_i <= '0'; - global_reset_cnt <= global_reset_cnt; - end if; - end if; - end process GLOBAL_RESET; - REF_PLL: pll_ref - port map ( - clk => LVDS_CLK_200P, - clkop => serdes_ref_clk, - clkos => serdes_ref_clks, - lock => serdes_ref_lock); - TEST: edge_to_pulse - port map ( - clock => ref_pclk(0), - en_clk => '1', - signal_in => hub_register_0a_i(0), - pulse => pulse_test); - test_signal(1) <= pulse_test; - test_signal(0) <= pulse_test; - REF_CLK_SELECT: DCS - -- synthesis translate_off - - generic map (--no_sim-- - DCSMODE => DCSMODE)--no_sim-- - -- synthesis translate_on - port map ( - CLK0 => LVDS_CLK_200P, - CLK1 => '0', - SEL => switch_rx_clk,--hub_register_0a_i(0),--'0',--switch_rx_clk, - DCSOUT => flexi_pcs_ref_clk); - SWITCH_CLOCK: process (LVDS_CLK_200P, global_reset_i) - begin -- process SWITCH_CLOCK - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' or lock_pattern /= used_channels_locked then -- asynchronous reset (active low) - switch_rx_clk <= '0'; - lock_pattern <= (others => '1'); - elsif lock_pattern = used_channels_locked then - switch_rx_clk <= '1'; - lock_pattern <= (others => '1'); - end if; - end if; - end process SWITCH_CLOCK; --- LOK_STATUS_DIOD_EN : for synch_fsm_state in 0 to HOW_MANY_CHANNELS-1 generate --- begin --- used_channels_locked(synch_fsm_state) <= flexi_pcs_synch_status_i(2+synch_fsm_state*16); --- end generate LOK_STATUS_DIOD_EN; - - --lock_pattern(15 downto HOW_MANY_CHANNELS) <= lok_i(16 downto HOW_MANY_CHANNELS +1); - QUAD_GENERATE : for bit_index in 0 to ((HOW_MANY_CHANNELS+3)/4-1) generate - begin - QUAD : serdes_fpga_ref_clk - port map ( --- refclkp => SERDES_200P, --- refclkn => SERDES_200N, - rxrefclk => flexi_pcs_ref_clk,--LVDS_CLK_200P,--serdes_ref_clk,--LVDS_CLK_200P, - refclk => LVDS_CLK_200P,--serdes_ref_clk,--LVDS_CLK_200P, - hdinp_0 => SFP_INP_P(bit_index*4+0), - hdinn_0 => SFP_INP_N(bit_index*4+0), - tclk_0 => ref_pclk(bit_index), - rclk_0 => rx_clk_i(0+bit_index*4), - tx_rst_0 => '0', - rx_rst_0 => rx_rst_i(0+bit_index*4),--hub_register_0a_i(0), - txd_0 => txd_synch_i(15+bit_index*64 downto 0+bit_index*64),--hub_register_0e_and_0d,--txd_synch_i(15+bit_index*64 downto 0+bit_index*64),--hub_register_0e_and_0d_synch,--txd_synch_i(15+bit_index*64 downto 0+bit_index*64),--hub_register_0e_and_0d_synch,--txd_synch_i(15+bit_index*64 downto 0+bit_index*64),--hub_register_0e_and_0d_synch,-- - tx_k_0 => tx_k_i(1+bit_index*8 downto 0+bit_index*8),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--"10",--"10",--hub_register_0a_i_synch(1 downto 0),--"10", - tx_force_disp_0 => "00",--hub_register_0a_i(3 downto 2),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--hub_register_0a_i_synch(3 downto 2),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--hub_register_0a_i_synch(3 downto 2),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--hub_register_0a_i_synch(3 downto 2),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8), - tx_disp_sel_0 => "00",--hub_register_0a_i(5 downto 4), --"00",--hub_register_0a_i_synch(5 downto 4),--"00", - tx_crc_init_0 => "00", - word_align_en_0 => '1',--word_align_en(0+bit_index*4),--'1', - mca_align_en_0 => '0', - felb_0 => '0', - lsm_en_0 => '0', - hdinp_1 => SFP_INP_P(bit_index*4+1), - hdinn_1 => SFP_INP_N(bit_index*4+1), - tclk_1 => ref_pclk(bit_index), - rclk_1 => rx_clk_i(1+bit_index*4), - tx_rst_1 => '0', - rx_rst_1 => rx_rst_i(1+bit_index*4), - txd_1 => txd_synch_i(31+bit_index*64 downto 16+bit_index*64), - tx_k_1 => tx_k_i(3+bit_index*8 downto 2+bit_index*8),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--"10",--"10",--hub_register_0a_i_synch(1 downto 0),--"10", - tx_force_disp_1 => "00",--tx_k_i(3+bit_index*8 downto 2+bit_index*8), - tx_disp_sel_1 => "00", - tx_crc_init_1 => "00", - word_align_en_1 => '1',--word_align_en(1+bit_index*4),--'1',-- - mca_align_en_1 => '0', - felb_1 => '0', - lsm_en_1 => '0', - hdinp_2 => SFP_INP_P(bit_index*4+2), - hdinn_2 => SFP_INP_N(bit_index*4+2), - tclk_2 => ref_pclk(bit_index), - rclk_2 => rx_clk_i(2+bit_index*4), - tx_rst_2 => '0', - rx_rst_2 => rx_rst_i(2+bit_index*4), - txd_2 => txd_synch_i(47+bit_index*64 downto 32+bit_index*64), - tx_k_2 => tx_k_i(5+bit_index*8 downto 4+bit_index*8),--"10", - tx_force_disp_2 => "00",-- - tx_disp_sel_2 => "00", - tx_crc_init_2 => "00", - word_align_en_2 => '1',--word_align_en(2+bit_index*4),--'1', - mca_align_en_2 => '0', - felb_2 => '0', - lsm_en_2 => '0', - hdinp_3 => SFP_INP_P(bit_index*4+3), - hdinn_3 => SFP_INP_N(bit_index*4+3), - tclk_3 => ref_pclk(bit_index), - rclk_3 => rx_clk_i(3+bit_index*4), - tx_rst_3 => '0', - rx_rst_3 => rx_rst_i(3+bit_index*4), - txd_3 => txd_synch_i(63+bit_index*64 downto 48+bit_index*64), - tx_k_3 => tx_k_i(7+bit_index*8 downto 6+bit_index*8),--"10", - tx_force_disp_3 => "00", - tx_disp_sel_3 => "00", - tx_crc_init_3 => "00", - word_align_en_3 => '1',--word_align_en(3+bit_index*4),--'1', - mca_align_en_3 => '0', - felb_3 => '0', - lsm_en_3 => '0', - mca_resync_01 => '0', - mca_resync_23 => '0', - quad_rst => '0', - serdes_rst => '0', - rxa_pclk => rx_clk_i(0+bit_index*4), - rxb_pclk => rxb_pclk_a(bit_index), - hdoutp_0 => SFP_OUT_P(bit_index*4+0), - hdoutn_0 => SFP_OUT_N(bit_index*4+0), - ref_0_sclk => open, - rx_0_sclk => open, - rxd_0 => rxd_i(15+bit_index*64 downto 0+bit_index*64), - rx_k_0 => rx_k_i(1+bit_index*8 downto 0+bit_index*8), - rx_disp_err_detect_0 => open, --rx_disp_err_detect_0_a, - rx_cv_detect_0 => cv_i(1+bit_index*8 downto 0+bit_index*8), - rx_crc_eop_0 => open, - lsm_status_0 => open, - hdoutp_1 => SFP_OUT_P(bit_index*4+1), - hdoutn_1 => SFP_OUT_N(bit_index*4+1), - ref_1_sclk => open, - rx_1_sclk => rx_clk_i(1+bit_index*4), - rxd_1 => rxd_i(31+bit_index*64 downto 16+bit_index*64), - rx_k_1 => rx_k_i(3+bit_index*8 downto 2+bit_index*8), - rx_disp_err_detect_1 => open, --rx_disp_err_detect_1_a, - rx_cv_detect_1 => cv_i(3+bit_index*8 downto 2+bit_index*8), - rx_crc_eop_1 => open, - lsm_status_1 => open, - hdoutp_2 => SFP_OUT_P(bit_index*4+2), - hdoutn_2 => SFP_OUT_N(bit_index*4+2), - ref_2_sclk => open, - rx_2_sclk => rx_clk_i(2+bit_index*4), - rxd_2 => rxd_i(47+bit_index*64 downto 32+bit_index*64), - rx_k_2 => rx_k_i(5+bit_index*8 downto 4+bit_index*8), - rx_disp_err_detect_2 => open, --rx_disp_err_detect_2_a, - rx_cv_detect_2 => cv_i(5+bit_index*8 downto 4+bit_index*8), - rx_crc_eop_2 => open, - lsm_status_2 => open, - hdoutp_3 => SFP_OUT_P(bit_index*4+3), - hdoutn_3 => SFP_OUT_N(bit_index*4+3), - ref_3_sclk => open, - rx_3_sclk => rx_clk_i(3+bit_index*4), - rxd_3 => rxd_i(63+bit_index*64 downto 48+bit_index*64), - rx_k_3 => rx_k_i(7+bit_index*8 downto 6+bit_index*8), - rx_disp_err_detect_3 => open, --rx_disp_err_detect_3_a, - rx_cv_detect_3 => cv_i(7+bit_index*8 downto 6+bit_index*8), - rx_crc_eop_3 => open, - lsm_status_3 => open, - mca_aligned_01 => open, --mca_aligned_01_i, - mca_inskew_01 => open, --mca_inskew_01_i, - mca_outskew_01 => open, --mca_outskew_01_i, - mca_aligned_23 => open, --mca_aligned_23_i, - mca_inskew_23 => open, --mca_inskew_23_i, - mca_outskew_23 => open, --mca_outskew_23_i, - ref_pclk => ref_pclk(bit_index) - ); - end generate QUAD_GENERATE; - -- word_align_en <= not rx_rst_i; ---sim-- SIMULATION_CONNECTION: for i in 0 to HOW_MANY_CHANNELS-1 generate ---sim-- rx_k_sim(i*2) <= not OPT_DATA_VALID_IN(i); ---sim-- rx_k_sim(i*2+1) <= '0'; ---sim-- OPT_DATA_VALID_OUT(i) <= not tx_k_sim(i*2); ---sim-- rx_clk_sim <= (others => LVDS_CLK_200P); ---sim-- ref_pclk_sim <= (others => LVDS_CLK_200P); ---sim-- cv_sim <= (others => '0'); ---sim-- end generate SIMULATION_CONNECTION; - FLEXI_PCS_INT : flexi_PCS_synch - generic map ( - HOW_MANY_CHANNELS => HOW_MANY_CHANNELS) - port map ( - SYSTEM_CLK => LVDS_CLK_200P, - CLK => ref_pclk,--no_sim-- ---sim-- CLK => ref_pclk_sim, - RX_CLK => rx_clk_i,--no_sim-- ---sim-- RX_CLK => rx_clk_sim, - RESET => global_reset_i, - RXD => rxd_i,--no_sim-- ---sim-- RXD => OPT_DATA_IN, - MED_DATA_OUT => med_data_out_i, - RX_K => rx_k_i,--no_sim-- ---sim-- RX_K => rx_k_sim, - RX_RST => rx_rst_i, - CV => cv_i,--no_sim-- ---sim-- CV => cv_sim, - MED_DATA_IN => med_data_in_i, - TXD_SYNCH => txd_synch_i, --no_sim-- ---sim-- TXD_SYNCH => OPT_DATA_OUT, - TX_K => tx_k_i, --no_sim-- ---sim-- TX_K => tx_k_sim, - FLEXI_PCS_SYNCH_STATUS => flexi_pcs_synch_status_i, - MED_DATAREADY_IN => med_dataready_in_i, - MED_DATAREADY_OUT => med_dataready_out_i, - MED_PACKET_NUM_IN => med_packet_num_in_i, - MED_PACKET_NUM_OUT => med_packet_num_out_i, - MED_READ_IN => med_read_in_i, - MED_READ_OUT => med_read_out_i, - MED_ERROR_OUT => med_error_out_i, - MED_STAT_OP => med_stat_op_i, - MED_CTRL_OP => med_ctrl_op_i - ); --- SIMPLE_HUB_GEN: if trb_net_enable = 0 and OPT_TEST_MODE = 0 generate --- SIMPLE_HUB_INST: simple_hub --- generic map ( --- HOW_MANY_CHANNELS => HOW_MANY_CHANNELS) --- port map ( --- CLK => LVDS_CLK_200P, --- RESET => global_reset_i, --- DATA_IN => med_data_out_i, --- DATA_OUT => med_data_in_i, --- DATA_IN_VALID => med_dataready_out_i, --- SEND_DATA => med_dataready_in_i, --- ENABLE_CHANNELS => fpga_register_06_i(15 downto 0), --- READ_DATA => med_read_in_i, --- HUB_DEBUG => hub_debug_i --- ); - --- end generate SIMPLE_HUB_GEN; - --- ENABLE_OPT_TEST: if OPT_TEST_MODE = 1 generate - med_read_in_i <= (others => '1'); - med_data_in_i <= med_data_out_i; - med_dataready_in_i <= med_dataready_out_i; --- end generate ENABLE_OPT_TEST; --- ADO_TTL(34 downto 19) <= med_read_in_i(0) & flexi_pcs_synch_status_i(2 downto 1) & med_packet_num_out_i(1 downto 0) & rx_k_i(1 downto 0) & rxd_i(3 downto 0) & med_dataready_out_i(0) & med_data_out_i(3 downto 0); --- ADO_TTL(34 downto 19) <= med_dataready_out_i(0)& med_data_out_i(14 downto 0); --- ADO_TTL(15 downto 0) <= med_read_out_i(0) & flexi_pcs_synch_status_i(7 downto 6) & med_packet_num_in_i(1 downto 0) & tx_k_i(1 downto 0) & txd_synch_i(3 downto 0) & med_dataready_in_i(0) & med_data_in_i(3 downto 0); --- ADO_TTL(15 downto 0) <= rx_k_i(1 downto 0) & rxd_i(13 downto 0); --- med_data_in_i(15 downto 0) <= hub_register_0e_and_0d; --- med_read_in_i <= (others => '1'); --test - --- ENABLE_TRB_NET: if trb_net_enable = 1 generate --- HUB_API: trb_net16_hub_base --- port map ( --- CLK => LVDS_CLK_200P, --- RESET => global_reset_i, --- CLK_EN => '1', --- MED_DATAREADY_OUT => med_dataready_in_i, --- MED_DATA_OUT => med_data_in_i, --- MED_PACKET_NUM_OUT => med_packet_num_in_i, --- MED_READ_IN => med_read_out_i, --- MED_DATAREADY_IN => med_dataready_out_i, --- MED_DATA_IN => med_data_out_i, --- MED_PACKET_NUM_IN => med_packet_num_out_i, --- MED_READ_OUT => med_read_in_i, --- MED_ERROR_IN => med_error_out_i, --- MED_STAT_OP => med_stat_op_i, --- MED_CTRL_OP => med_ctrl_op_i, --- APL_DATA_IN => (others => '0'), --- APL_PACKET_NUM_IN => (others => '0'), --- APL_DATAREADY_IN => (others => '0'), --- APL_READ_OUT => open, --- APL_SHORT_TRANSFER_IN => (others => '0'), --- APL_DTYPE_IN => (others => '0'), --- APL_ERROR_PATTERN_IN => (others => '0'), --- APL_SEND_IN => (others => '0'), --- APL_TARGET_ADDRESS_IN => (others => '0'), --- APL_DATA_OUT => open, --- APL_PACKET_NUM_OUT => open, --- APL_TYP_OUT => open, --- APL_DATAREADY_OUT => open, --- APL_READ_IN => (others => '0'), --- APL_RUN_OUT => open, --- APL_MY_ADDRESS_IN => (others => '0'), --- APL_SEQNR_OUT => open, --- TRG_GOT_TRIGGER_OUT => open, --- TRG_ERROR_PATTERN_OUT => open, --- TRG_DTYPE_OUT => open, --- TRG_SEQNR_OUT => open, --- TRG_ERROR_PATTERN_IN => (others => '0'), --- TRG_RELEASE_IN => (others => '0'), --- ONEWIRE => FS_PE_11, --- HUB_STAT_CHANNEL => hub_stat_channel_i, --- HUB_STAT_GEN => hub_stat_gen_i, --- MPLEX_CTRL => mplex_ctrl_i, --- MPLEX_STAT => open, --- ETRAX_CTRL => hub_register_0e_and_0d --- ); --- end generate ENABLE_TRB_NET; - ETRAX_RW_DATA_INTERFACE: etrax_interfacev2 - generic map ( - RW_SYSTEM => 2) - port map ( - CLK => LVDS_CLK_200P, - RESET => global_reset_i, - DATA_BUS => (others => '0'), - ETRAX_DATA_BUS_B => open,--(others => '0'), - ETRAX_DATA_BUS_B_17 => '0', - ETRAX_DATA_BUS_C => open,--(others => '0'), - ETRAX_DATA_BUS_E => FS_PE(9 downto 8), - DATA_VALID => '0', - ETRAX_BUS_BUSY => '0', - ETRAX_IS_READY_TO_READ => open, - TDC_TCK => open, - TDC_TDI => open, - TDC_TMS => open, - TDC_TRST => open, - TDC_TDO => '0', - TDC_RESET => open, - EXTERNAL_ADDRESS => external_address_i, - EXTERNAL_DATA_OUT => external_data_out_i, - EXTERNAL_DATA_IN => x"ddbbccaa",--external_data_in_i, - EXTERNAL_ACK => external_ack_i, - EXTERNAL_VALID => external_ack_i,--external_valid_i, - EXTERNAL_MODE => external_mode_i, - FPGA_REGISTER_00 => fpga_register_00_i, - FPGA_REGISTER_01 => fpga_register_01_i, - FPGA_REGISTER_02 => fpga_register_02_i, - FPGA_REGISTER_03 => fpga_register_03_i, - FPGA_REGISTER_04 => fpga_register_04_i, - FPGA_REGISTER_05 => fpga_register_05_i, - FPGA_REGISTER_06 => fpga_register_06_i, - FPGA_REGISTER_07 => fpga_register_07_i, - FPGA_REGISTER_08 => fpga_register_08_i, - FPGA_REGISTER_09 => fpga_register_09_i, - FPGA_REGISTER_0A => fpga_register_0A_i, - FPGA_REGISTER_0B => fpga_register_0B_i, - FPGA_REGISTER_0C => fpga_register_0C_i, - FPGA_REGISTER_0D => fpga_register_0D_i, - FPGA_REGISTER_0E => fpga_register_0E_i, - -- EXTERNAL_RESET => open, - LVL2_VALID => '0'); - fpga_register_00_i <= x"0000"& lok_i; - fpga_register_01_i <= hub_debug_i; - fpga_register_02_i <= flexi_pcs_synch_status_i(31 downto 0); - fpga_register_03_i <= flexi_pcs_synch_status_i(63 downto 32); - fpga_register_04_i <= flexi_pcs_synch_status_i(95 downto 64); - - COUNT_LVL1_START: process (LVDS_CLK_200P, global_reset_i ) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' then - fpga_register_05_i <= (others => '0'); - elsif med_dataready_out_i(0) = '1' and med_data_out_i(15 downto 12) = x"1" then - fpga_register_05_i <= fpga_register_05_i + 1; - end if; - end if; - end process COUNT_LVL1_START; - - COUNT_LVL1_SEND: process (LVDS_CLK_200P, global_reset_i ) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' then - fpga_register_08_i <= (others => '0'); - elsif med_dataready_in_i(1) = '1' and med_data_in_i(31 downto 28) = x"1" then - fpga_register_08_i <= fpga_register_08_i + 1; - end if; - end if; - end process COUNT_LVL1_SEND; - - COUNT_LVL1_SEND: process (LVDS_CLK_200P, global_reset_i ) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' then - fpga_register_09_i <= (others => '0'); - elsif med_dataready_in_i(1) = '1' then - fpga_register_09_i <= fpga_register_08_i + 1; - end if; - end if; - end process COUNT_LVL1_SEND; - - COUNT_LVL1_END: process (LVDS_CLK_200P, global_reset_i ) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' then - fpga_register_07_i <= (others => '0'); - elsif med_dataready_out_i(1) = '1' and med_data_out_i(31 downto 28) = x"1" then - fpga_register_07_i <= fpga_register_07_i + 1; - end if; - end if; - end process COUNT_LVL1_END; - - TX_DIS_g : for synch_fsm_state in 0 to HOW_MANY_CHANNELS-1 generate - begin - TX_DIS(synch_fsm_state+1) <= '0'; - end generate; - - TX_DIS_g1 : for not_connected in 0 to 16-HOW_MANY_CHANNELS-1 generate - begin - WHEN_NOT_ALL_EN : if HOW_MANY_CHANNELS < 16 generate - TX_DIS(16-not_connected) <= '1'; - end generate WHEN_NOT_ALL_EN; - end generate; - ---------------------------------------------------------------------------- --- setting LED ---------------------------------------------------------------------------- - - --correct this for channels 11-8 - mirrored due to schematics -- also - --adressing of sfps !!! - LOK_STATUS_DIOD_EN : for synch_fsm_state in 0 to HOW_MANY_CHANNELS-1 generate - begin - lok_i(synch_fsm_state+1) <= not flexi_pcs_synch_status_i(2+synch_fsm_state*16); - end generate LOK_STATUS_DIOD_EN; - - LOK_STATUS_REGISTER_0 : for synch_fsm_state in 0 to (HOW_MANY_CHANNELS-1 mod 8) generate - begin - hub_register_00_i(synch_fsm_state) <= flexi_pcs_synch_status_i(2+synch_fsm_state*16); - end generate LOK_STATUS_REGISTER_0; - - LOK_STATUS_REGISTER_1 : for synch_fsm_state in 0 to (HOW_MANY_CHANNELS-1 - 8) generate - begin - hub_register_01_i(synch_fsm_state) <= flexi_pcs_synch_status_i(2+synch_fsm_state*16+8*16); - end generate LOK_STATUS_REGISTER_1; - - LOK_STATUS_DIOD_DIS : for not_connected in 0 to 16-HOW_MANY_CHANNELS-1 generate - begin - WHEN_NOT_ALL_EN : if HOW_MANY_CHANNELS < 16 generate - lok_i(16-not_connected) <= '1'; - end generate WHEN_NOT_ALL_EN; - end generate LOK_STATUS_DIOD_DIS; - LOK <= lok_i; - IPLL <= '0'; - OPLL <= '0'; - DBAD <= ADO_TTL(11); - DGOOD <= '1'; - DINT <= '0'; - DWAIT <= global_reset_i; - - CV_COUNTERaaa: process (LVDS_CLK_200P, global_reset_i) - begin - if rising_edge(LVDS_CLK_200P) then -- rising clock edge - if global_reset_i = '1' then -- asynchronous reset (active low) - cv_counter <= (others => '0'); - else - cv_counter <= cv_counter + 1; - end if; - end if; - end process CV_COUNTERaaa; - CV_COUNTERaab: process (ref_pclk(0), global_reset_i) - begin - if rising_edge(ref_pclk(0)) then -- rising clock edge - if global_reset_i = '1' then -- asynchronous reset (active low) - cv_countera <= (others => '0'); - else - cv_countera <= cv_countera + 1; - end if; - end if; - end process CV_COUNTERaab; - RT(8) <= cv_counter(23); - RT(9) <= med_read_in_i(0); - RT(16 downto 10) <= flexi_pcs_synch_status_i(7 downto 1); - RT(2) <= flexi_pcs_ref_clk;--cv_counter(0); - RT(1) <= not switch_rx_clk;--ref_pclk(0); - - RT(3) <= LVDS_CLK_200P; - - RT(4) <= rx_k_i(0); - - RT(5) <= med_dataready_out_i(0);--serdes_ref_clk; - RT(6) <= med_data_out_i(0);--serdes_ref_clks; - RT(7) <= med_data_out_i(1);--serdes_ref_lock; - -end hub; - diff --git a/oldfiles/serdes_test/link_test.vhd b/oldfiles/serdes_test/link_test.vhd deleted file mode 100644 index 5b333fe..0000000 --- a/oldfiles/serdes_test/link_test.vhd +++ /dev/null @@ -1,326 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -entity link_test is - - port ( - CLK : in std_logic; - RESET : in std_logic; - DATA_IN : in std_logic_vector(15 downto 0); - DATA_OUT : out std_logic_vector(15 downto 0); - VALID_IN : in std_logic; - VALID_OUT : out std_logic; - LINK_DEBUG : out std_logic_vector(31 downto 0); - LINK_INFO : in std_logic_vector(15 downto 0) - ); - -end link_test; - -architecture link_test of link_test is - - component up_down_counter - generic ( - NUMBER_OF_BITS : positive); - port ( - CLK : in std_logic; - RESET : in std_logic; - COUNT_OUT : out std_logic_vector(NUMBER_OF_BITS-1 downto 0); - UP_IN : in std_logic; - DOWN_IN : in std_logic); - end component; - - component mdc_dc_lvl1_dpram_rand - port ( - DataInA : in std_logic_vector(7 downto 0); - DataInB : in std_logic_vector(7 downto 0); - AddressA : in std_logic_vector(8 downto 0); - AddressB : in std_logic_vector(8 downto 0); - ClockA : in std_logic; - ClockB : in std_logic; - ClockEnA : in std_logic; - ClockEnB : in std_logic; - WrA : in std_logic; - WrB : in std_logic; - ResetA : in std_logic; - ResetB : in std_logic; - QA : out std_logic_vector(7 downto 0); - QB : out std_logic_vector(7 downto 0)); - end component; - - component mdc_dc_lvl1_dpram_zero - port ( - DataInA : in std_logic_vector(7 downto 0); - DataInB : in std_logic_vector(7 downto 0); - AddressA : in std_logic_vector(8 downto 0); - AddressB : in std_logic_vector(8 downto 0); - ClockA : in std_logic; - ClockB : in std_logic; - ClockEnA : in std_logic; - ClockEnB : in std_logic; - WrA : in std_logic; - WrB : in std_logic; - ResetA : in std_logic; - ResetB : in std_logic; - QA : out std_logic_vector(7 downto 0); - QB : out std_logic_vector(7 downto 0)); - end component; - type TEST_LINK_FSM is (IDLE, TEST1, TEST2, TEST3, TEST4, TRANSMITION_ERROR) ; - signal TEST_LINK_FSM_current, TEST_LINK_FSM_next : TEST_LINK_FSM; - signal wait_for_second_board_counter : std_logic_vector(31 downto 0); - signal enable_sec_board_counter : std_logic; - signal mem_diff : std_logic; - signal mem_check_ok : std_logic; - - signal random_memory_address : std_logic_vector(8 downto 0); - signal random_memory_send : std_logic; - - signal zero_memory_read_address : std_logic_vector(8 downto 0); - signal zero_memory_write_address : std_logic_vector(8 downto 0); - signal zero_memory_read : std_logic; - - signal zero_memory_data_out : std_logic_vector(7 downto 0); - signal rand_memory_data_out : std_logic_vector(7 downto 0); - - signal counter_for_send_en : std_logic_vector(10 downto 0); - - signal rand_memory_data_out_synch : std_logic_vector(7 downto 0); - signal rand_memory_data_out_synch_synch : std_logic_vector(7 downto 0); - signal rand_memory_data_out_synch_synch_synch : std_logic_vector(7 downto 0); - - signal wait_for_data_counter : std_logic_vector(27 downto 0); - signal wait_for_data_en : std_logic; - - signal link_debug_i : std_logic_vector(1 downto 0); - signal wait_for_data_reset : std_logic; - - signal zero_memory_read_synch : std_logic; - signal wait_for_second_board_reset : std_logic; - - -begin - TEST_CLOCK : process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' then - TEST_LINK_FSM_current <= IDLE; - else - TEST_LINK_FSM_current <= TEST_LINK_FSM_next; - end if; - end if; - end process TEST_CLOCK; - FSM_TO_TEST_LINK : process (CLK) - begin - case TEST_LINK_FSM_current is - when IDLE => - link_debug_i <= "01"; - enable_sec_board_counter <= '0'; - mem_check_ok <= '0'; - random_memory_send <= '0'; - wait_for_data_reset <= '1'; - VALID_OUT <= '0'; - wait_for_second_board_reset <= '1'; - if LINK_INFO(0)='1' then - TEST_LINK_FSM_next <= TEST1; - else - TEST_LINK_FSM_next <= IDLE; - end if; - when TEST1 => - link_debug_i <= "10"; - enable_sec_board_counter <= '1'; - mem_check_ok <= '0'; - random_memory_send <= '0'; - VALID_OUT <= '0'; - wait_for_data_reset <= '1'; - wait_for_second_board_reset <= '0'; - if wait_for_second_board_counter(27)='1' then - TEST_LINK_FSM_next <= TEST2; - else - TEST_LINK_FSM_next <= TEST1; - end if; - when TEST2 => - link_debug_i <= "11"; - enable_sec_board_counter <= '0'; - mem_check_ok <= '1'; - random_memory_send <= '1'; - VALID_OUT <= counter_for_send_en(10); - wait_for_data_reset <= '0'; - wait_for_second_board_reset <= '0'; - if (LINK_INFO(1)= '1' or LINK_INFO(2)='1' or mem_diff = '1') and wait_for_data_en = '0' then - TEST_LINK_FSM_next <= IDLE; - else - TEST_LINK_FSM_next <= TEST2; - end if; - when TRANSMITION_ERROR => - link_debug_i <= "00"; - enable_sec_board_counter <= '0'; - mem_check_ok <= '0'; - random_memory_send <= '0'; - wait_for_data_reset <= '1'; - wait_for_second_board_reset <= '0'; - when others => - link_debug_i <= "00"; - enable_sec_board_counter <= '0'; - mem_check_ok <= '0'; - random_memory_send <= '0'; - wait_for_data_reset <= '1'; - wait_for_second_board_reset <= '0'; - TEST_LINK_FSM_next <= IDLE; - end case; - end process FSM_TO_TEST_LINK; - - - WAIT_FOR_SECOND_BOARD: up_down_counter - generic map ( - NUMBER_OF_BITS => 32) - port map ( - CLK => CLK, - RESET => wait_for_second_board_reset, - COUNT_OUT => wait_for_second_board_counter, - UP_IN => enable_sec_board_counter, - DOWN_IN => '0'); - wait_for_data_en <= random_memory_send and (not wait_for_data_counter(27)); - - WAIT_FOR_DATA: up_down_counter - generic map ( - NUMBER_OF_BITS => 28) - port map ( - CLK => CLK, - RESET => wait_for_data_reset, - COUNT_OUT => wait_for_data_counter, - UP_IN => wait_for_data_en, - DOWN_IN => '0'); - - - WRITE_ZERO_MEM_ADDRESS: up_down_counter - generic map ( - NUMBER_OF_BITS => 9) - port map ( - CLK => CLK, - RESET => wait_for_second_board_reset,--RESET, - COUNT_OUT => zero_memory_write_address, - UP_IN => VALID_IN, - DOWN_IN => '0'); - - READ_ZERO_MEM_ADDRESS: up_down_counter - generic map ( - NUMBER_OF_BITS => 9) - port map ( - CLK => CLK, - RESET => wait_for_second_board_reset,--RESET, - COUNT_OUT => zero_memory_read_address, - UP_IN => zero_memory_read, - DOWN_IN => '0'); - - READ_RAND_MEM_ADDRESS: up_down_counter - generic map ( - NUMBER_OF_BITS => 9) - port map ( - CLK => CLK, - RESET => wait_for_second_board_reset,--RESET, - COUNT_OUT => random_memory_address, - UP_IN => random_memory_send, - DOWN_IN => '0'); - - SEND_RAND_MEM_EN: up_down_counter - generic map ( - NUMBER_OF_BITS => 11) - port map ( - CLK => CLK, - RESET => wait_for_second_board_reset,--RESET, - COUNT_OUT => counter_for_send_en, - UP_IN => '1', - DOWN_IN => '0'); - - MEM_RANDOM: mdc_dc_lvl1_dpram_rand - port map ( - DataInA => (others => '0'), - DataInB => (others => '0'), - AddressA => random_memory_address, - AddressB => (others => '0'), - ClockA => CLK, - ClockB => CLK, - ClockEnA => '1', - ClockEnB => '0', - WrA => '0', - WrB => '0', - ResetA => '0', - ResetB => '0', - QA => rand_memory_data_out, - QB => open); - - MEM_ZERO: mdc_dc_lvl1_dpram_zero - port map ( - DataInA => DATA_IN(7 downto 0), - DataInB => (others => '0'), - AddressA => zero_memory_write_address, - AddressB => zero_memory_read_address, - ClockA => CLK, - ClockB => CLK, - ClockEnA => '1', - ClockEnB => '1', - WrA => VALID_IN, - WrB => '0', - ResetA => '0', - ResetB => '0', - QA => open, - QB => zero_memory_data_out); - START_COMPARISON: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1'or TEST_LINK_FSM_current = IDLE then - zero_memory_read <= '0'; - elsif rand_memory_data_out = zero_memory_data_out then - zero_memory_read <= '1'; - else --- zero_memory_read <= '0'; - zero_memory_read <= zero_memory_read; - end if; - end if; - end process START_COMPARISON; - MAKE_COMPARISON: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1'or wait_for_second_board_reset = '1' then - mem_diff <= '1'; - elsif rand_memory_data_out_synch_synch = zero_memory_data_out then - mem_diff <= '0'; - elsif zero_memory_read_synch = '1' and rand_memory_data_out_synch_synch_synch /= zero_memory_data_out then - mem_diff <= '1'; --- mem_diff <= '0'; - end if; - end if; - end process MAKE_COMPARISON; - - SYNCH_DATA: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' or wait_for_second_board_reset = '1' then - rand_memory_data_out_synch_synch_synch <= (others => '0'); - rand_memory_data_out_synch_synch <= (others => '0'); - rand_memory_data_out_synch <= (others => '0'); - zero_memory_read_synch <= '0'; - else - rand_memory_data_out_synch_synch_synch<= rand_memory_data_out_synch_synch; - rand_memory_data_out_synch_synch<= rand_memory_data_out_synch; - rand_memory_data_out_synch <= rand_memory_data_out; - zero_memory_read_synch <= zero_memory_read; - end if; - end if; - end process SYNCH_DATA; - - - LINK_DEBUG(3 downto 0) <= zero_memory_data_out(3 downto 0); - LINK_DEBUG(7 downto 4) <= rand_memory_data_out_synch_synch_synch(3 downto 0); - LINK_DEBUG(9 downto 8) <= link_debug_i; - LINK_DEBUG(10) <= VALID_IN; - LINK_DEBUG(11) <= random_memory_send; - LINK_DEBUG(12) <= zero_memory_read; - LINK_DEBUG(14 downto 13) <= LINK_INFO(2 downto 1); - LINK_DEBUG(15) <= mem_diff; - DATA_OUT <= rand_memory_data_out & rand_memory_data_out; - -end link_test; diff --git a/oldfiles/serdes_test/pcs_for_ecp2m.txt b/oldfiles/serdes_test/pcs_for_ecp2m.txt deleted file mode 100644 index 91ea907..0000000 --- a/oldfiles/serdes_test/pcs_for_ecp2m.txt +++ /dev/null @@ -1,49 +0,0 @@ - -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCSC quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCSC quad to the final design requirements. - -DEVICE_NAME "LFE2M35E" -PROTOCOL "G8B10B" -CH0_MODE "DISABLE" -CH1_MODE "DISABLE" -CH2_MODE "SINGLE" -CH3_MODE "DISABLE" -PLL_SRC "CORE_TXREFCLK" -DATARANGE "MEDHIGH" -CH2_CDR_SRC "CORE_RXREFCLK" -CH2_DATA_WIDTH "16" -CH2_REFCK_MULT "20X" -#REFCLK_RATE 100 -#FPGAINTCLK_RATE 100 -CH2_TDRV_AMP "0" -CH2_TX_PRE "DISABLE" -CH2_RTERM_TX "50" -CH2_RX_EQ "DISABLE" -CH2_RTERM_RX "50" -CH2_RX_DCC "DC" -LOS_THRESHOLD "0" -PLL_TERM "50" -PLL_DCC "DC" -PLL_LOL_SET "0" -CH2_TX_SB "NORMAL" -CH2_RX_SB "NORMAL" -CH2_8B10B "NORMAL" -COMMA_A "1100000101" -COMMA_B "0011111010" -COMMA_M "1111111111" -CH2_COMMA_ALIGN "DYNAMIC" -CH2_CTC_BYP "BYPASS" -CC_MATCH1 "0000000000" -CC_MATCH2 "0000000000" -CC_MATCH3 "0100011100" -CC_MATCH4 "0100011100" -CC_MATCH_MODE "MATCH_4" -CC_MIN_IPG "0" -CCHMARK "4" -CCLMARK "4" -OS_REFCK2CORE "1" -OS_PLLQCLKPORTS "0" -OS_INT_ALL "0" - diff --git a/oldfiles/serdes_test/pcs_for_ecp2m.vhd b/oldfiles/serdes_test/pcs_for_ecp2m.vhd deleted file mode 100644 index ee1ecf9..0000000 --- a/oldfiles/serdes_test/pcs_for_ecp2m.vhd +++ /dev/null @@ -1,2185 +0,0 @@ - - ---synopsys translate_off - -library pcsc_work; -use pcsc_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSC is -GENERIC( - CONFIG_FILE : String := "pcs_for_ecp2m.txt" - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); - -end PCSC; - -architecture PCSC_arch of PCSC is - -component PCSC_sim -GENERIC( - CONFIG_FILE : String - ); -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - -begin - -PCSC_sim_inst : PCSC_sim -generic map ( - CONFIG_FILE => CONFIG_FILE) -port map ( - HDINN0 => HDINN0, - HDINN1 => HDINN1, - HDINN2 => HDINN2, - HDINN3 => HDINN3, - HDINP0 => HDINP0, - HDINP1 => HDINP1, - HDINP2 => HDINP2, - HDINP3 => HDINP3, - REFCLKN => REFCLKN, - REFCLKP => REFCLKP, - CIN11 => CIN11, - CIN10 => CIN10, - CIN9 => CIN9, - CIN8 => CIN8, - CIN7 => CIN7, - CIN6 => CIN6, - CIN5 => CIN5, - CIN4 => CIN4, - CIN3 => CIN3, - CIN2 => CIN2, - CIN1 => CIN1, - CIN0 => CIN0, - CYAWSTN => CYAWSTN, - FF_EBRD_CLK_3 => FF_EBRD_CLK_3, - FF_EBRD_CLK_2 => FF_EBRD_CLK_2, - FF_EBRD_CLK_1 => FF_EBRD_CLK_1, - FF_EBRD_CLK_0 => FF_EBRD_CLK_0, - FF_RXI_CLK_3 => FF_RXI_CLK_3, - FF_RXI_CLK_2 => FF_RXI_CLK_2, - FF_RXI_CLK_1 => FF_RXI_CLK_1, - FF_RXI_CLK_0 => FF_RXI_CLK_0, - - FF_TX_D_0_0 => FF_TX_D_0_0, - FF_TX_D_0_1 => FF_TX_D_0_1, - FF_TX_D_0_2 => FF_TX_D_0_2, - FF_TX_D_0_3 => FF_TX_D_0_3, - FF_TX_D_0_4 => FF_TX_D_0_4, - FF_TX_D_0_5 => FF_TX_D_0_5, - FF_TX_D_0_6 => FF_TX_D_0_6, - FF_TX_D_0_7 => FF_TX_D_0_7, - FF_TX_D_0_8 => FF_TX_D_0_8, - FF_TX_D_0_9 => FF_TX_D_0_9, - FF_TX_D_0_10 => FF_TX_D_0_10, - FF_TX_D_0_11 => FF_TX_D_0_11, - FF_TX_D_0_12 => FF_TX_D_0_12, - FF_TX_D_0_13 => FF_TX_D_0_13, - FF_TX_D_0_14 => FF_TX_D_0_14, - FF_TX_D_0_15 => FF_TX_D_0_15, - FF_TX_D_0_16 => FF_TX_D_0_16, - FF_TX_D_0_17 => FF_TX_D_0_17, - FF_TX_D_0_18 => FF_TX_D_0_18, - FF_TX_D_0_19 => FF_TX_D_0_19, - FF_TX_D_0_20 => FF_TX_D_0_20, - FF_TX_D_0_21 => FF_TX_D_0_21, - FF_TX_D_0_22 => FF_TX_D_0_22, - FF_TX_D_0_23 => FF_TX_D_0_23, - FF_TX_D_1_0 => FF_TX_D_1_0, - FF_TX_D_1_1 => FF_TX_D_1_1, - FF_TX_D_1_2 => FF_TX_D_1_2, - FF_TX_D_1_3 => FF_TX_D_1_3, - FF_TX_D_1_4 => FF_TX_D_1_4, - FF_TX_D_1_5 => FF_TX_D_1_5, - FF_TX_D_1_6 => FF_TX_D_1_6, - FF_TX_D_1_7 => FF_TX_D_1_7, - FF_TX_D_1_8 => FF_TX_D_1_8, - FF_TX_D_1_9 => FF_TX_D_1_9, - FF_TX_D_1_10 => FF_TX_D_1_10, - FF_TX_D_1_11 => FF_TX_D_1_11, - FF_TX_D_1_12 => FF_TX_D_1_12, - FF_TX_D_1_13 => FF_TX_D_1_13, - FF_TX_D_1_14 => FF_TX_D_1_14, - FF_TX_D_1_15 => FF_TX_D_1_15, - FF_TX_D_1_16 => FF_TX_D_1_16, - FF_TX_D_1_17 => FF_TX_D_1_17, - FF_TX_D_1_18 => FF_TX_D_1_18, - FF_TX_D_1_19 => FF_TX_D_1_19, - FF_TX_D_1_20 => FF_TX_D_1_20, - FF_TX_D_1_21 => FF_TX_D_1_21, - FF_TX_D_1_22 => FF_TX_D_1_22, - FF_TX_D_1_23 => FF_TX_D_1_23, - FF_TX_D_2_0 => FF_TX_D_2_0, - FF_TX_D_2_1 => FF_TX_D_2_1, - FF_TX_D_2_2 => FF_TX_D_2_2, - FF_TX_D_2_3 => FF_TX_D_2_3, - FF_TX_D_2_4 => FF_TX_D_2_4, - FF_TX_D_2_5 => FF_TX_D_2_5, - FF_TX_D_2_6 => FF_TX_D_2_6, - FF_TX_D_2_7 => FF_TX_D_2_7, - FF_TX_D_2_8 => FF_TX_D_2_8, - FF_TX_D_2_9 => FF_TX_D_2_9, - FF_TX_D_2_10 => FF_TX_D_2_10, - FF_TX_D_2_11 => FF_TX_D_2_11, - FF_TX_D_2_12 => FF_TX_D_2_12, - FF_TX_D_2_13 => FF_TX_D_2_13, - FF_TX_D_2_14 => FF_TX_D_2_14, - FF_TX_D_2_15 => FF_TX_D_2_15, - FF_TX_D_2_16 => FF_TX_D_2_16, - FF_TX_D_2_17 => FF_TX_D_2_17, - FF_TX_D_2_18 => FF_TX_D_2_18, - FF_TX_D_2_19 => FF_TX_D_2_19, - FF_TX_D_2_20 => FF_TX_D_2_20, - FF_TX_D_2_21 => FF_TX_D_2_21, - FF_TX_D_2_22 => FF_TX_D_2_22, - FF_TX_D_2_23 => FF_TX_D_2_23, - FF_TX_D_3_0 => FF_TX_D_3_0, - FF_TX_D_3_1 => FF_TX_D_3_1, - FF_TX_D_3_2 => FF_TX_D_3_2, - FF_TX_D_3_3 => FF_TX_D_3_3, - FF_TX_D_3_4 => FF_TX_D_3_4, - FF_TX_D_3_5 => FF_TX_D_3_5, - FF_TX_D_3_6 => FF_TX_D_3_6, - FF_TX_D_3_7 => FF_TX_D_3_7, - FF_TX_D_3_8 => FF_TX_D_3_8, - FF_TX_D_3_9 => FF_TX_D_3_9, - FF_TX_D_3_10 => FF_TX_D_3_10, - FF_TX_D_3_11 => FF_TX_D_3_11, - FF_TX_D_3_12 => FF_TX_D_3_12, - FF_TX_D_3_13 => FF_TX_D_3_13, - FF_TX_D_3_14 => FF_TX_D_3_14, - FF_TX_D_3_15 => FF_TX_D_3_15, - FF_TX_D_3_16 => FF_TX_D_3_16, - FF_TX_D_3_17 => FF_TX_D_3_17, - FF_TX_D_3_18 => FF_TX_D_3_18, - FF_TX_D_3_19 => FF_TX_D_3_19, - FF_TX_D_3_20 => FF_TX_D_3_20, - FF_TX_D_3_21 => FF_TX_D_3_21, - FF_TX_D_3_22 => FF_TX_D_3_22, - FF_TX_D_3_23 => FF_TX_D_3_23, - FF_TXI_CLK_0 => FF_TXI_CLK_0, - FF_TXI_CLK_1 => FF_TXI_CLK_1, - FF_TXI_CLK_2 => FF_TXI_CLK_2, - FF_TXI_CLK_3 => FF_TXI_CLK_3, - FFC_CK_CORE_RX => FFC_CK_CORE_RX, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_EI_EN_0 => FFC_EI_EN_0, - FFC_EI_EN_1 => FFC_EI_EN_1, - FFC_EI_EN_2 => FFC_EI_EN_2, - FFC_EI_EN_3 => FFC_EI_EN_3, - FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0, - FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1, - FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2, - FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3, - FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0, - FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1, - FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2, - FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3, - FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0, - FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1, - FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2, - FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3, - FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0, - FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1, - FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2, - FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0, - FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1, - FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2, - FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0, - FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1, - FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2, - FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_RRST_0 => FFC_RRST_0, - FFC_RRST_1 => FFC_RRST_1, - FFC_RRST_2 => FFC_RRST_2, - FFC_RRST_3 => FFC_RRST_3, - FFC_RXPWDNB_0 => FFC_RXPWDNB_0, - FFC_RXPWDNB_1 => FFC_RXPWDNB_1, - FFC_RXPWDNB_2 => FFC_RXPWDNB_2, - FFC_RXPWDNB_3 => FFC_RXPWDNB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0, - FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1, - FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2, - FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3, - FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0, - FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1, - FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2, - FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3, - FFC_TRST => FFC_TRST, - FFC_TXPWDNB_0 => FFC_TXPWDNB_0, - FFC_TXPWDNB_1 => FFC_TXPWDNB_1, - FFC_TXPWDNB_2 => FFC_TXPWDNB_2, - FFC_TXPWDNB_3 => FFC_TXPWDNB_3, - SCIADDR0 => SCIADDR0, - SCIADDR1 => SCIADDR1, - SCIADDR2 => SCIADDR2, - SCIADDR3 => SCIADDR3, - SCIADDR4 => SCIADDR4, - SCIADDR5 => SCIADDR5, - SCIENAUX => SCIENAUX, - SCIENCH0 => SCIENCH0, - SCIENCH1 => SCIENCH1, - SCIENCH2 => SCIENCH2, - SCIENCH3 => SCIENCH3, - SCIRD => SCIRD, - SCISELAUX => SCISELAUX, - SCISELCH0 => SCISELCH0, - SCISELCH1 => SCISELCH1, - SCISELCH2 => SCISELCH2, - SCISELCH3 => SCISELCH3, - SCIWDATA0 => SCIWDATA0, - SCIWDATA1 => SCIWDATA1, - SCIWDATA2 => SCIWDATA2, - SCIWDATA3 => SCIWDATA3, - SCIWDATA4 => SCIWDATA4, - SCIWDATA5 => SCIWDATA5, - SCIWDATA6 => SCIWDATA6, - SCIWDATA7 => SCIWDATA7, - SCIWSTN => SCIWSTN, - HDOUTN0 => HDOUTN0, - HDOUTN1 => HDOUTN1, - HDOUTN2 => HDOUTN2, - HDOUTN3 => HDOUTN3, - HDOUTP0 => HDOUTP0, - HDOUTP1 => HDOUTP1, - HDOUTP2 => HDOUTP2, - HDOUTP3 => HDOUTP3, - COUT19 => COUT19, - COUT18 => COUT18, - COUT17 => COUT17, - COUT16 => COUT16, - COUT15 => COUT15, - COUT14 => COUT14, - COUT13 => COUT13, - COUT12 => COUT12, - COUT11 => COUT11, - COUT10 => COUT10, - COUT9 => COUT9, - COUT8 => COUT8, - COUT7 => COUT7, - COUT6 => COUT6, - COUT5 => COUT5, - COUT4 => COUT4, - COUT3 => COUT3, - COUT2 => COUT2, - COUT1 => COUT1, - COUT0 => COUT0, - FF_RX_D_0_0 => FF_RX_D_0_0, - FF_RX_D_0_1 => FF_RX_D_0_1, - FF_RX_D_0_2 => FF_RX_D_0_2, - FF_RX_D_0_3 => FF_RX_D_0_3, - FF_RX_D_0_4 => FF_RX_D_0_4, - FF_RX_D_0_5 => FF_RX_D_0_5, - FF_RX_D_0_6 => FF_RX_D_0_6, - FF_RX_D_0_7 => FF_RX_D_0_7, - FF_RX_D_0_8 => FF_RX_D_0_8, - FF_RX_D_0_9 => FF_RX_D_0_9, - FF_RX_D_0_10 => FF_RX_D_0_10, - FF_RX_D_0_11 => FF_RX_D_0_11, - FF_RX_D_0_12 => FF_RX_D_0_12, - FF_RX_D_0_13 => FF_RX_D_0_13, - FF_RX_D_0_14 => FF_RX_D_0_14, - FF_RX_D_0_15 => FF_RX_D_0_15, - FF_RX_D_0_16 => FF_RX_D_0_16, - FF_RX_D_0_17 => FF_RX_D_0_17, - FF_RX_D_0_18 => FF_RX_D_0_18, - FF_RX_D_0_19 => FF_RX_D_0_19, - FF_RX_D_0_20 => FF_RX_D_0_20, - FF_RX_D_0_21 => FF_RX_D_0_21, - FF_RX_D_0_22 => FF_RX_D_0_22, - FF_RX_D_0_23 => FF_RX_D_0_23, - FF_RX_D_1_0 => FF_RX_D_1_0, - FF_RX_D_1_1 => FF_RX_D_1_1, - FF_RX_D_1_2 => FF_RX_D_1_2, - FF_RX_D_1_3 => FF_RX_D_1_3, - FF_RX_D_1_4 => FF_RX_D_1_4, - FF_RX_D_1_5 => FF_RX_D_1_5, - FF_RX_D_1_6 => FF_RX_D_1_6, - FF_RX_D_1_7 => FF_RX_D_1_7, - FF_RX_D_1_8 => FF_RX_D_1_8, - FF_RX_D_1_9 => FF_RX_D_1_9, - FF_RX_D_1_10 => FF_RX_D_1_10, - FF_RX_D_1_11 => FF_RX_D_1_11, - FF_RX_D_1_12 => FF_RX_D_1_12, - FF_RX_D_1_13 => FF_RX_D_1_13, - FF_RX_D_1_14 => FF_RX_D_1_14, - FF_RX_D_1_15 => FF_RX_D_1_15, - FF_RX_D_1_16 => FF_RX_D_1_16, - FF_RX_D_1_17 => FF_RX_D_1_17, - FF_RX_D_1_18 => FF_RX_D_1_18, - FF_RX_D_1_19 => FF_RX_D_1_19, - FF_RX_D_1_20 => FF_RX_D_1_20, - FF_RX_D_1_21 => FF_RX_D_1_21, - FF_RX_D_1_22 => FF_RX_D_1_22, - FF_RX_D_1_23 => FF_RX_D_1_23, - FF_RX_D_2_0 => FF_RX_D_2_0, - FF_RX_D_2_1 => FF_RX_D_2_1, - FF_RX_D_2_2 => FF_RX_D_2_2, - FF_RX_D_2_3 => FF_RX_D_2_3, - FF_RX_D_2_4 => FF_RX_D_2_4, - FF_RX_D_2_5 => FF_RX_D_2_5, - FF_RX_D_2_6 => FF_RX_D_2_6, - FF_RX_D_2_7 => FF_RX_D_2_7, - FF_RX_D_2_8 => FF_RX_D_2_8, - FF_RX_D_2_9 => FF_RX_D_2_9, - FF_RX_D_2_10 => FF_RX_D_2_10, - FF_RX_D_2_11 => FF_RX_D_2_11, - FF_RX_D_2_12 => FF_RX_D_2_12, - FF_RX_D_2_13 => FF_RX_D_2_13, - FF_RX_D_2_14 => FF_RX_D_2_14, - FF_RX_D_2_15 => FF_RX_D_2_15, - FF_RX_D_2_16 => FF_RX_D_2_16, - FF_RX_D_2_17 => FF_RX_D_2_17, - FF_RX_D_2_18 => FF_RX_D_2_18, - FF_RX_D_2_19 => FF_RX_D_2_19, - FF_RX_D_2_20 => FF_RX_D_2_20, - FF_RX_D_2_21 => FF_RX_D_2_21, - FF_RX_D_2_22 => FF_RX_D_2_22, - FF_RX_D_2_23 => FF_RX_D_2_23, - FF_RX_D_3_0 => FF_RX_D_3_0, - FF_RX_D_3_1 => FF_RX_D_3_1, - FF_RX_D_3_2 => FF_RX_D_3_2, - FF_RX_D_3_3 => FF_RX_D_3_3, - FF_RX_D_3_4 => FF_RX_D_3_4, - FF_RX_D_3_5 => FF_RX_D_3_5, - FF_RX_D_3_6 => FF_RX_D_3_6, - FF_RX_D_3_7 => FF_RX_D_3_7, - FF_RX_D_3_8 => FF_RX_D_3_8, - FF_RX_D_3_9 => FF_RX_D_3_9, - FF_RX_D_3_10 => FF_RX_D_3_10, - FF_RX_D_3_11 => FF_RX_D_3_11, - FF_RX_D_3_12 => FF_RX_D_3_12, - FF_RX_D_3_13 => FF_RX_D_3_13, - FF_RX_D_3_14 => FF_RX_D_3_14, - FF_RX_D_3_15 => FF_RX_D_3_15, - FF_RX_D_3_16 => FF_RX_D_3_16, - FF_RX_D_3_17 => FF_RX_D_3_17, - FF_RX_D_3_18 => FF_RX_D_3_18, - FF_RX_D_3_19 => FF_RX_D_3_19, - FF_RX_D_3_20 => FF_RX_D_3_20, - FF_RX_D_3_21 => FF_RX_D_3_21, - FF_RX_D_3_22 => FF_RX_D_3_22, - FF_RX_D_3_23 => FF_RX_D_3_23, - FF_RX_F_CLK_0 => FF_RX_F_CLK_0, - FF_RX_F_CLK_1 => FF_RX_F_CLK_1, - FF_RX_F_CLK_2 => FF_RX_F_CLK_2, - FF_RX_F_CLK_3 => FF_RX_F_CLK_3, - FF_RX_H_CLK_0 => FF_RX_H_CLK_0, - FF_RX_H_CLK_1 => FF_RX_H_CLK_1, - FF_RX_H_CLK_2 => FF_RX_H_CLK_2, - FF_RX_H_CLK_3 => FF_RX_H_CLK_3, - FF_RX_Q_CLK_0 => FF_RX_Q_CLK_0, - FF_RX_Q_CLK_1 => FF_RX_Q_CLK_1, - FF_RX_Q_CLK_2 => FF_RX_Q_CLK_2, - FF_RX_Q_CLK_3 => FF_RX_Q_CLK_3, - FF_TX_F_CLK => FF_TX_F_CLK, - FF_TX_H_CLK => FF_TX_H_CLK, - FF_TX_Q_CLK => FF_TX_Q_CLK, - FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0, - FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1, - FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2, - FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3, - FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0, - FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1, - FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2, - FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3, - FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0, - FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1, - FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2, - FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFS_RLOS_LO_0 => FFS_RLOS_LO_0, - FFS_RLOS_LO_1 => FFS_RLOS_LO_1, - FFS_RLOS_LO_2 => FFS_RLOS_LO_2, - FFS_RLOS_LO_3 => FFS_RLOS_LO_3, - FFS_PLOL => FFS_PLOL, - FFS_RLOL_0 => FFS_RLOL_0, - FFS_RLOL_1 => FFS_RLOL_1, - FFS_RLOL_2 => FFS_RLOL_2, - FFS_RLOL_3 => FFS_RLOL_3, - FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0, - FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1, - FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2, - FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3, - FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0, - FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1, - FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2, - FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3, - OOB_OUT_0 => OOB_OUT_0, - OOB_OUT_1 => OOB_OUT_1, - OOB_OUT_2 => OOB_OUT_2, - OOB_OUT_3 => OOB_OUT_3, - REFCK2CORE => REFCK2CORE, - SCIINT => SCIINT, - SCIRDATA0 => SCIRDATA0, - SCIRDATA1 => SCIRDATA1, - SCIRDATA2 => SCIRDATA2, - SCIRDATA3 => SCIRDATA3, - SCIRDATA4 => SCIRDATA4, - SCIRDATA5 => SCIRDATA5, - SCIRDATA6 => SCIRDATA6, - SCIRDATA7 => SCIRDATA7 - ); - -end PCSC_arch; - ---synopsys translate_on - ---synopsys translate_off -library ECP2; -use ECP2.components.all; ---synopsys translate_on - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - -entity pcs_for_ecp2m is - GENERIC (USER_CONFIG_FILE : String := "pcs_for_ecp2m.txt"); - port ( - core_txrefclk : in std_logic; - core_rxrefclk : in std_logic; - hdinp2, hdinn2 : in std_logic; - hdoutp2, hdoutn2 : out std_logic; - ff_rxiclk_ch2, ff_txiclk_ch2, ff_ebrd_clk_2 : in std_logic; - ff_txdata_ch2 : in std_logic_vector (15 downto 0); - ff_rxdata_ch2 : out std_logic_vector (15 downto 0); - ff_tx_k_cntrl_ch2 : in std_logic_vector (1 downto 0); - ff_rx_k_cntrl_ch2 : out std_logic_vector (1 downto 0); - ff_rxfullclk_ch2 : out std_logic; - ff_rxhalfclk_ch2 : out std_logic; - ff_force_disp_ch2 : in std_logic_vector (1 downto 0); - ff_disp_sel_ch2 : in std_logic_vector (1 downto 0); - ff_correct_disp_ch2 : in std_logic_vector (1 downto 0); - ff_disp_err_ch2, ff_cv_ch2 : out std_logic_vector (1 downto 0); - ffc_rrst_ch2 : in std_logic; - ffc_signal_detect_ch2 : in std_logic; - ffc_enable_cgalign_ch2 : in std_logic; - ffc_lane_tx_rst_ch2 : in std_logic; - ffc_lane_rx_rst_ch2 : in std_logic; - ffc_txpwdnb_ch2 : in std_logic; - ffc_rxpwdnb_ch2 : in std_logic; - ffs_rlos_lo_ch2 : out std_logic; - ffs_rlol_ch2 : out std_logic; - oob_out_ch2 : out std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - ff_txfullclk : out std_logic; - ff_txhalfclk : out std_logic; - refck2core : out std_logic; - ffs_plol : out std_logic); - -end pcs_for_ecp2m; - -architecture pcs_for_ecp2m_arch of pcs_for_ecp2m is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; -component PCSC ---synopsys translate_off -GENERIC( - CONFIG_FILE : String - ); ---synopsys translate_on -port ( - HDINN0 : in std_logic; - HDINN1 : in std_logic; - HDINN2 : in std_logic; - HDINN3 : in std_logic; - HDINP0 : in std_logic; - HDINP1 : in std_logic; - HDINP2 : in std_logic; - HDINP3 : in std_logic; - REFCLKN : in std_logic; - REFCLKP : in std_logic; - CIN0 : in std_logic; - CIN1 : in std_logic; - CIN2 : in std_logic; - CIN3 : in std_logic; - CIN4 : in std_logic; - CIN5 : in std_logic; - CIN6 : in std_logic; - CIN7 : in std_logic; - CIN8 : in std_logic; - CIN9 : in std_logic; - CIN10 : in std_logic; - CIN11 : in std_logic; - CYAWSTN : in std_logic; - FF_EBRD_CLK_0 : in std_logic; - FF_EBRD_CLK_1 : in std_logic; - FF_EBRD_CLK_2 : in std_logic; - FF_EBRD_CLK_3 : in std_logic; - FF_RXI_CLK_0 : in std_logic; - FF_RXI_CLK_1 : in std_logic; - FF_RXI_CLK_2 : in std_logic; - FF_RXI_CLK_3 : in std_logic; - FF_TX_D_0_0 : in std_logic; - FF_TX_D_0_1 : in std_logic; - FF_TX_D_0_2 : in std_logic; - FF_TX_D_0_3 : in std_logic; - FF_TX_D_0_4 : in std_logic; - FF_TX_D_0_5 : in std_logic; - FF_TX_D_0_6 : in std_logic; - FF_TX_D_0_7 : in std_logic; - FF_TX_D_0_8 : in std_logic; - FF_TX_D_0_9 : in std_logic; - FF_TX_D_0_10 : in std_logic; - FF_TX_D_0_11 : in std_logic; - FF_TX_D_0_12 : in std_logic; - FF_TX_D_0_13 : in std_logic; - FF_TX_D_0_14 : in std_logic; - FF_TX_D_0_15 : in std_logic; - FF_TX_D_0_16 : in std_logic; - FF_TX_D_0_17 : in std_logic; - FF_TX_D_0_18 : in std_logic; - FF_TX_D_0_19 : in std_logic; - FF_TX_D_0_20 : in std_logic; - FF_TX_D_0_21 : in std_logic; - FF_TX_D_0_22 : in std_logic; - FF_TX_D_0_23 : in std_logic; - FF_TX_D_1_0 : in std_logic; - FF_TX_D_1_1 : in std_logic; - FF_TX_D_1_2 : in std_logic; - FF_TX_D_1_3 : in std_logic; - FF_TX_D_1_4 : in std_logic; - FF_TX_D_1_5 : in std_logic; - FF_TX_D_1_6 : in std_logic; - FF_TX_D_1_7 : in std_logic; - FF_TX_D_1_8 : in std_logic; - FF_TX_D_1_9 : in std_logic; - FF_TX_D_1_10 : in std_logic; - FF_TX_D_1_11 : in std_logic; - FF_TX_D_1_12 : in std_logic; - FF_TX_D_1_13 : in std_logic; - FF_TX_D_1_14 : in std_logic; - FF_TX_D_1_15 : in std_logic; - FF_TX_D_1_16 : in std_logic; - FF_TX_D_1_17 : in std_logic; - FF_TX_D_1_18 : in std_logic; - FF_TX_D_1_19 : in std_logic; - FF_TX_D_1_20 : in std_logic; - FF_TX_D_1_21 : in std_logic; - FF_TX_D_1_22 : in std_logic; - FF_TX_D_1_23 : in std_logic; - FF_TX_D_2_0 : in std_logic; - FF_TX_D_2_1 : in std_logic; - FF_TX_D_2_2 : in std_logic; - FF_TX_D_2_3 : in std_logic; - FF_TX_D_2_4 : in std_logic; - FF_TX_D_2_5 : in std_logic; - FF_TX_D_2_6 : in std_logic; - FF_TX_D_2_7 : in std_logic; - FF_TX_D_2_8 : in std_logic; - FF_TX_D_2_9 : in std_logic; - FF_TX_D_2_10 : in std_logic; - FF_TX_D_2_11 : in std_logic; - FF_TX_D_2_12 : in std_logic; - FF_TX_D_2_13 : in std_logic; - FF_TX_D_2_14 : in std_logic; - FF_TX_D_2_15 : in std_logic; - FF_TX_D_2_16 : in std_logic; - FF_TX_D_2_17 : in std_logic; - FF_TX_D_2_18 : in std_logic; - FF_TX_D_2_19 : in std_logic; - FF_TX_D_2_20 : in std_logic; - FF_TX_D_2_21 : in std_logic; - FF_TX_D_2_22 : in std_logic; - FF_TX_D_2_23 : in std_logic; - FF_TX_D_3_0 : in std_logic; - FF_TX_D_3_1 : in std_logic; - FF_TX_D_3_2 : in std_logic; - FF_TX_D_3_3 : in std_logic; - FF_TX_D_3_4 : in std_logic; - FF_TX_D_3_5 : in std_logic; - FF_TX_D_3_6 : in std_logic; - FF_TX_D_3_7 : in std_logic; - FF_TX_D_3_8 : in std_logic; - FF_TX_D_3_9 : in std_logic; - FF_TX_D_3_10 : in std_logic; - FF_TX_D_3_11 : in std_logic; - FF_TX_D_3_12 : in std_logic; - FF_TX_D_3_13 : in std_logic; - FF_TX_D_3_14 : in std_logic; - FF_TX_D_3_15 : in std_logic; - FF_TX_D_3_16 : in std_logic; - FF_TX_D_3_17 : in std_logic; - FF_TX_D_3_18 : in std_logic; - FF_TX_D_3_19 : in std_logic; - FF_TX_D_3_20 : in std_logic; - FF_TX_D_3_21 : in std_logic; - FF_TX_D_3_22 : in std_logic; - FF_TX_D_3_23 : in std_logic; - FF_TXI_CLK_0 : in std_logic; - FF_TXI_CLK_1 : in std_logic; - FF_TXI_CLK_2 : in std_logic; - FF_TXI_CLK_3 : in std_logic; - FFC_CK_CORE_RX : in std_logic; - FFC_CK_CORE_TX : in std_logic; - FFC_EI_EN_0 : in std_logic; - FFC_EI_EN_1 : in std_logic; - FFC_EI_EN_2 : in std_logic; - FFC_EI_EN_3 : in std_logic; - FFC_ENABLE_CGALIGN_0 : in std_logic; - FFC_ENABLE_CGALIGN_1 : in std_logic; - FFC_ENABLE_CGALIGN_2 : in std_logic; - FFC_ENABLE_CGALIGN_3 : in std_logic; - FFC_FB_LOOPBACK_0 : in std_logic; - FFC_FB_LOOPBACK_1 : in std_logic; - FFC_FB_LOOPBACK_2 : in std_logic; - FFC_FB_LOOPBACK_3 : in std_logic; - FFC_LANE_RX_RST_0 : in std_logic; - FFC_LANE_RX_RST_1 : in std_logic; - FFC_LANE_RX_RST_2 : in std_logic; - FFC_LANE_RX_RST_3 : in std_logic; - FFC_LANE_TX_RST_0 : in std_logic; - FFC_LANE_TX_RST_1 : in std_logic; - FFC_LANE_TX_RST_2 : in std_logic; - FFC_LANE_TX_RST_3 : in std_logic; - FFC_MACRO_RST : in std_logic; - FFC_PCI_DET_EN_0 : in std_logic; - FFC_PCI_DET_EN_1 : in std_logic; - FFC_PCI_DET_EN_2 : in std_logic; - FFC_PCI_DET_EN_3 : in std_logic; - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - FFC_PFIFO_CLR_0 : in std_logic; - FFC_PFIFO_CLR_1 : in std_logic; - FFC_PFIFO_CLR_2 : in std_logic; - FFC_PFIFO_CLR_3 : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_RRST_0 : in std_logic; - FFC_RRST_1 : in std_logic; - FFC_RRST_2 : in std_logic; - FFC_RRST_3 : in std_logic; - FFC_RXPWDNB_0 : in std_logic; - FFC_RXPWDNB_1 : in std_logic; - FFC_RXPWDNB_2 : in std_logic; - FFC_RXPWDNB_3 : in std_logic; - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - FFC_SB_PFIFO_LP_0 : in std_logic; - FFC_SB_PFIFO_LP_1 : in std_logic; - FFC_SB_PFIFO_LP_2 : in std_logic; - FFC_SB_PFIFO_LP_3 : in std_logic; - FFC_SIGNAL_DETECT_0 : in std_logic; - FFC_SIGNAL_DETECT_1 : in std_logic; - FFC_SIGNAL_DETECT_2 : in std_logic; - FFC_SIGNAL_DETECT_3 : in std_logic; - FFC_TRST : in std_logic; - FFC_TXPWDNB_0 : in std_logic; - FFC_TXPWDNB_1 : in std_logic; - FFC_TXPWDNB_2 : in std_logic; - FFC_TXPWDNB_3 : in std_logic; - SCIADDR0 : in std_logic; - SCIADDR1 : in std_logic; - SCIADDR2 : in std_logic; - SCIADDR3 : in std_logic; - SCIADDR4 : in std_logic; - SCIADDR5 : in std_logic; - SCIENAUX : in std_logic; - SCIENCH0 : in std_logic; - SCIENCH1 : in std_logic; - SCIENCH2 : in std_logic; - SCIENCH3 : in std_logic; - SCIRD : in std_logic; - SCISELAUX : in std_logic; - SCISELCH0 : in std_logic; - SCISELCH1 : in std_logic; - SCISELCH2 : in std_logic; - SCISELCH3 : in std_logic; - SCIWDATA0 : in std_logic; - SCIWDATA1 : in std_logic; - SCIWDATA2 : in std_logic; - SCIWDATA3 : in std_logic; - SCIWDATA4 : in std_logic; - SCIWDATA5 : in std_logic; - SCIWDATA6 : in std_logic; - SCIWDATA7 : in std_logic; - SCIWSTN : in std_logic; - HDOUTN0 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTN3 : out std_logic; - HDOUTP0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTP3 : out std_logic; - COUT0 : out std_logic; - COUT1 : out std_logic; - COUT2 : out std_logic; - COUT3 : out std_logic; - COUT4 : out std_logic; - COUT5 : out std_logic; - COUT6 : out std_logic; - COUT7 : out std_logic; - COUT8 : out std_logic; - COUT9 : out std_logic; - COUT10 : out std_logic; - COUT11 : out std_logic; - COUT12 : out std_logic; - COUT13 : out std_logic; - COUT14 : out std_logic; - COUT15 : out std_logic; - COUT16 : out std_logic; - COUT17 : out std_logic; - COUT18 : out std_logic; - COUT19 : out std_logic; - FF_RX_D_0_0 : out std_logic; - FF_RX_D_0_1 : out std_logic; - FF_RX_D_0_2 : out std_logic; - FF_RX_D_0_3 : out std_logic; - FF_RX_D_0_4 : out std_logic; - FF_RX_D_0_5 : out std_logic; - FF_RX_D_0_6 : out std_logic; - FF_RX_D_0_7 : out std_logic; - FF_RX_D_0_8 : out std_logic; - FF_RX_D_0_9 : out std_logic; - FF_RX_D_0_10 : out std_logic; - FF_RX_D_0_11 : out std_logic; - FF_RX_D_0_12 : out std_logic; - FF_RX_D_0_13 : out std_logic; - FF_RX_D_0_14 : out std_logic; - FF_RX_D_0_15 : out std_logic; - FF_RX_D_0_16 : out std_logic; - FF_RX_D_0_17 : out std_logic; - FF_RX_D_0_18 : out std_logic; - FF_RX_D_0_19 : out std_logic; - FF_RX_D_0_20 : out std_logic; - FF_RX_D_0_21 : out std_logic; - FF_RX_D_0_22 : out std_logic; - FF_RX_D_0_23 : out std_logic; - FF_RX_D_1_0 : out std_logic; - FF_RX_D_1_1 : out std_logic; - FF_RX_D_1_2 : out std_logic; - FF_RX_D_1_3 : out std_logic; - FF_RX_D_1_4 : out std_logic; - FF_RX_D_1_5 : out std_logic; - FF_RX_D_1_6 : out std_logic; - FF_RX_D_1_7 : out std_logic; - FF_RX_D_1_8 : out std_logic; - FF_RX_D_1_9 : out std_logic; - FF_RX_D_1_10 : out std_logic; - FF_RX_D_1_11 : out std_logic; - FF_RX_D_1_12 : out std_logic; - FF_RX_D_1_13 : out std_logic; - FF_RX_D_1_14 : out std_logic; - FF_RX_D_1_15 : out std_logic; - FF_RX_D_1_16 : out std_logic; - FF_RX_D_1_17 : out std_logic; - FF_RX_D_1_18 : out std_logic; - FF_RX_D_1_19 : out std_logic; - FF_RX_D_1_20 : out std_logic; - FF_RX_D_1_21 : out std_logic; - FF_RX_D_1_22 : out std_logic; - FF_RX_D_1_23 : out std_logic; - FF_RX_D_2_0 : out std_logic; - FF_RX_D_2_1 : out std_logic; - FF_RX_D_2_2 : out std_logic; - FF_RX_D_2_3 : out std_logic; - FF_RX_D_2_4 : out std_logic; - FF_RX_D_2_5 : out std_logic; - FF_RX_D_2_6 : out std_logic; - FF_RX_D_2_7 : out std_logic; - FF_RX_D_2_8 : out std_logic; - FF_RX_D_2_9 : out std_logic; - FF_RX_D_2_10 : out std_logic; - FF_RX_D_2_11 : out std_logic; - FF_RX_D_2_12 : out std_logic; - FF_RX_D_2_13 : out std_logic; - FF_RX_D_2_14 : out std_logic; - FF_RX_D_2_15 : out std_logic; - FF_RX_D_2_16 : out std_logic; - FF_RX_D_2_17 : out std_logic; - FF_RX_D_2_18 : out std_logic; - FF_RX_D_2_19 : out std_logic; - FF_RX_D_2_20 : out std_logic; - FF_RX_D_2_21 : out std_logic; - FF_RX_D_2_22 : out std_logic; - FF_RX_D_2_23 : out std_logic; - FF_RX_D_3_0 : out std_logic; - FF_RX_D_3_1 : out std_logic; - FF_RX_D_3_2 : out std_logic; - FF_RX_D_3_3 : out std_logic; - FF_RX_D_3_4 : out std_logic; - FF_RX_D_3_5 : out std_logic; - FF_RX_D_3_6 : out std_logic; - FF_RX_D_3_7 : out std_logic; - FF_RX_D_3_8 : out std_logic; - FF_RX_D_3_9 : out std_logic; - FF_RX_D_3_10 : out std_logic; - FF_RX_D_3_11 : out std_logic; - FF_RX_D_3_12 : out std_logic; - FF_RX_D_3_13 : out std_logic; - FF_RX_D_3_14 : out std_logic; - FF_RX_D_3_15 : out std_logic; - FF_RX_D_3_16 : out std_logic; - FF_RX_D_3_17 : out std_logic; - FF_RX_D_3_18 : out std_logic; - FF_RX_D_3_19 : out std_logic; - FF_RX_D_3_20 : out std_logic; - FF_RX_D_3_21 : out std_logic; - FF_RX_D_3_22 : out std_logic; - FF_RX_D_3_23 : out std_logic; - FF_RX_F_CLK_0 : out std_logic; - FF_RX_F_CLK_1 : out std_logic; - FF_RX_F_CLK_2 : out std_logic; - FF_RX_F_CLK_3 : out std_logic; - FF_RX_H_CLK_0 : out std_logic; - FF_RX_H_CLK_1 : out std_logic; - FF_RX_H_CLK_2 : out std_logic; - FF_RX_H_CLK_3 : out std_logic; - FF_RX_Q_CLK_0 : out std_logic; - FF_RX_Q_CLK_1 : out std_logic; - FF_RX_Q_CLK_2 : out std_logic; - FF_RX_Q_CLK_3 : out std_logic; - FF_TX_F_CLK : out std_logic; - FF_TX_H_CLK : out std_logic; - FF_TX_Q_CLK : out std_logic; - FFS_CC_OVERRUN_0 : out std_logic; - FFS_CC_OVERRUN_1 : out std_logic; - FFS_CC_OVERRUN_2 : out std_logic; - FFS_CC_OVERRUN_3 : out std_logic; - FFS_CC_UNDERRUN_0 : out std_logic; - FFS_CC_UNDERRUN_1 : out std_logic; - FFS_CC_UNDERRUN_2 : out std_logic; - FFS_CC_UNDERRUN_3 : out std_logic; - FFS_LS_SYNC_STATUS_0 : out std_logic; - FFS_LS_SYNC_STATUS_1 : out std_logic; - FFS_LS_SYNC_STATUS_2 : out std_logic; - FFS_LS_SYNC_STATUS_3 : out std_logic; - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - FFS_RLOS_LO_0 : out std_logic; - FFS_RLOS_LO_1 : out std_logic; - FFS_RLOS_LO_2 : out std_logic; - FFS_RLOS_LO_3 : out std_logic; - OOB_OUT_0 : out std_logic; - OOB_OUT_1 : out std_logic; - OOB_OUT_2 : out std_logic; - OOB_OUT_3 : out std_logic; - REFCK2CORE : out std_logic; - SCIINT : out std_logic; - SCIRDATA0 : out std_logic; - SCIRDATA1 : out std_logic; - SCIRDATA2 : out std_logic; - SCIRDATA3 : out std_logic; - SCIRDATA4 : out std_logic; - SCIRDATA5 : out std_logic; - SCIRDATA6 : out std_logic; - SCIRDATA7 : out std_logic; - FFS_PLOL : out std_logic; - FFS_RLOL_0 : out std_logic; - FFS_RLOL_1 : out std_logic; - FFS_RLOL_2 : out std_logic; - FFS_RLOL_3 : out std_logic; - FFS_RXFBFIFO_ERROR_0 : out std_logic; - FFS_RXFBFIFO_ERROR_1 : out std_logic; - FFS_RXFBFIFO_ERROR_2 : out std_logic; - FFS_RXFBFIFO_ERROR_3 : out std_logic; - FFS_TXFBFIFO_ERROR_0 : out std_logic; - FFS_TXFBFIFO_ERROR_1 : out std_logic; - FFS_TXFBFIFO_ERROR_2 : out std_logic; - FFS_TXFBFIFO_ERROR_3 : out std_logic -); -end component; - attribute IS_ASB: string; - attribute IS_ASB of PCSC_INST : label is "ep5m00/data/ep5m00.acd"; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSC_INST : label is USER_CONFIG_FILE; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSC : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN"; - -signal fpsc_vlo : std_logic := '0'; -signal cin : std_logic_vector (11 downto 0) := "000000000000"; -signal cout : std_logic_vector (19 downto 0); - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); - --- pcs_quad instance -PCSC_INST : PCSC ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE) ---synopsys translate_on -port map ( - FFC_CK_CORE_TX => core_txrefclk, - FFC_CK_CORE_RX => core_rxrefclk, - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - HDINP0 => fpsc_vlo, - HDINN0 => fpsc_vlo, - HDOUTP0 => open, - HDOUTN0 => open, - SCISELCH0 => fpsc_vlo, - SCIENCH0 => fpsc_vlo, - FF_RXI_CLK_0 => fpsc_vlo, - FF_TXI_CLK_0 => fpsc_vlo, - FF_EBRD_CLK_0 => fpsc_vlo, - FF_RX_F_CLK_0 => open, - FF_RX_H_CLK_0 => open, - FF_RX_Q_CLK_0 => open, - FF_TX_D_0_0 => fpsc_vlo, - FF_TX_D_0_1 => fpsc_vlo, - FF_TX_D_0_2 => fpsc_vlo, - FF_TX_D_0_3 => fpsc_vlo, - FF_TX_D_0_4 => fpsc_vlo, - FF_TX_D_0_5 => fpsc_vlo, - FF_TX_D_0_6 => fpsc_vlo, - FF_TX_D_0_7 => fpsc_vlo, - FF_TX_D_0_8 => fpsc_vlo, - FF_TX_D_0_9 => fpsc_vlo, - FF_TX_D_0_10 => fpsc_vlo, - FF_TX_D_0_11 => fpsc_vlo, - FF_TX_D_0_12 => fpsc_vlo, - FF_TX_D_0_13 => fpsc_vlo, - FF_TX_D_0_14 => fpsc_vlo, - FF_TX_D_0_15 => fpsc_vlo, - FF_TX_D_0_16 => fpsc_vlo, - FF_TX_D_0_17 => fpsc_vlo, - FF_TX_D_0_18 => fpsc_vlo, - FF_TX_D_0_19 => fpsc_vlo, - FF_TX_D_0_20 => fpsc_vlo, - FF_TX_D_0_21 => fpsc_vlo, - FF_TX_D_0_22 => fpsc_vlo, - FF_TX_D_0_23 => fpsc_vlo, - FF_RX_D_0_0 => open, - FF_RX_D_0_1 => open, - FF_RX_D_0_2 => open, - FF_RX_D_0_3 => open, - FF_RX_D_0_4 => open, - FF_RX_D_0_5 => open, - FF_RX_D_0_6 => open, - FF_RX_D_0_7 => open, - FF_RX_D_0_8 => open, - FF_RX_D_0_9 => open, - FF_RX_D_0_10 => open, - FF_RX_D_0_11 => open, - FF_RX_D_0_12 => open, - FF_RX_D_0_13 => open, - FF_RX_D_0_14 => open, - FF_RX_D_0_15 => open, - FF_RX_D_0_16 => open, - FF_RX_D_0_17 => open, - FF_RX_D_0_18 => open, - FF_RX_D_0_19 => open, - FF_RX_D_0_20 => open, - FF_RX_D_0_21 => open, - FF_RX_D_0_22 => open, - FF_RX_D_0_23 => open, - FFC_RRST_0 => fpsc_vlo, - FFC_SIGNAL_DETECT_0 => fpsc_vlo, - FFC_SB_PFIFO_LP_0 => fpsc_vlo, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_PFIFO_CLR_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCI_DET_EN_0 => fpsc_vlo, - FFC_FB_LOOPBACK_0 => fpsc_vlo, - FFC_ENABLE_CGALIGN_0 => fpsc_vlo, - FFC_EI_EN_0 => fpsc_vlo, - FFC_LANE_TX_RST_0 => fpsc_vlo, - FFC_LANE_RX_RST_0 => fpsc_vlo, - FFC_TXPWDNB_0 => fpsc_vlo, - FFC_RXPWDNB_0 => fpsc_vlo, - FFS_RLOS_LO_0 => open, - FFS_PCIE_DONE_0 => open, - FFS_PCIE_CON_0 => open, - FFS_LS_SYNC_STATUS_0 => open, - FFS_CC_UNDERRUN_0 => open, - FFS_CC_OVERRUN_0 => open, - FFS_RLOL_0 => open, - FFS_RXFBFIFO_ERROR_0 => open, - FFS_TXFBFIFO_ERROR_0 => open, - OOB_OUT_0 => open, - HDINP1 => fpsc_vlo, - HDINN1 => fpsc_vlo, - HDOUTP1 => open, - HDOUTN1 => open, - SCISELCH1 => fpsc_vlo, - SCIENCH1 => fpsc_vlo, - FF_RXI_CLK_1 => fpsc_vlo, - FF_TXI_CLK_1 => fpsc_vlo, - FF_EBRD_CLK_1 => fpsc_vlo, - FF_RX_F_CLK_1 => open, - FF_RX_H_CLK_1 => open, - FF_RX_Q_CLK_1 => open, - FF_TX_D_1_0 => fpsc_vlo, - FF_TX_D_1_1 => fpsc_vlo, - FF_TX_D_1_2 => fpsc_vlo, - FF_TX_D_1_3 => fpsc_vlo, - FF_TX_D_1_4 => fpsc_vlo, - FF_TX_D_1_5 => fpsc_vlo, - FF_TX_D_1_6 => fpsc_vlo, - FF_TX_D_1_7 => fpsc_vlo, - FF_TX_D_1_8 => fpsc_vlo, - FF_TX_D_1_9 => fpsc_vlo, - FF_TX_D_1_10 => fpsc_vlo, - FF_TX_D_1_11 => fpsc_vlo, - FF_TX_D_1_12 => fpsc_vlo, - FF_TX_D_1_13 => fpsc_vlo, - FF_TX_D_1_14 => fpsc_vlo, - FF_TX_D_1_15 => fpsc_vlo, - FF_TX_D_1_16 => fpsc_vlo, - FF_TX_D_1_17 => fpsc_vlo, - FF_TX_D_1_18 => fpsc_vlo, - FF_TX_D_1_19 => fpsc_vlo, - FF_TX_D_1_20 => fpsc_vlo, - FF_TX_D_1_21 => fpsc_vlo, - FF_TX_D_1_22 => fpsc_vlo, - FF_TX_D_1_23 => fpsc_vlo, - FF_RX_D_1_0 => open, - FF_RX_D_1_1 => open, - FF_RX_D_1_2 => open, - FF_RX_D_1_3 => open, - FF_RX_D_1_4 => open, - FF_RX_D_1_5 => open, - FF_RX_D_1_6 => open, - FF_RX_D_1_7 => open, - FF_RX_D_1_8 => open, - FF_RX_D_1_9 => open, - FF_RX_D_1_10 => open, - FF_RX_D_1_11 => open, - FF_RX_D_1_12 => open, - FF_RX_D_1_13 => open, - FF_RX_D_1_14 => open, - FF_RX_D_1_15 => open, - FF_RX_D_1_16 => open, - FF_RX_D_1_17 => open, - FF_RX_D_1_18 => open, - FF_RX_D_1_19 => open, - FF_RX_D_1_20 => open, - FF_RX_D_1_21 => open, - FF_RX_D_1_22 => open, - FF_RX_D_1_23 => open, - FFC_RRST_1 => fpsc_vlo, - FFC_SIGNAL_DETECT_1 => fpsc_vlo, - FFC_SB_PFIFO_LP_1 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_PFIFO_CLR_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCI_DET_EN_1 => fpsc_vlo, - FFC_FB_LOOPBACK_1 => fpsc_vlo, - FFC_ENABLE_CGALIGN_1 => fpsc_vlo, - FFC_EI_EN_1 => fpsc_vlo, - FFC_LANE_TX_RST_1 => fpsc_vlo, - FFC_LANE_RX_RST_1 => fpsc_vlo, - FFC_TXPWDNB_1 => fpsc_vlo, - FFC_RXPWDNB_1 => fpsc_vlo, - FFS_RLOS_LO_1 => open, - FFS_PCIE_DONE_1 => open, - FFS_PCIE_CON_1 => open, - FFS_LS_SYNC_STATUS_1 => open, - FFS_CC_UNDERRUN_1 => open, - FFS_CC_OVERRUN_1 => open, - FFS_RLOL_1 => open, - FFS_RXFBFIFO_ERROR_1 => open, - FFS_TXFBFIFO_ERROR_1 => open, - OOB_OUT_1 => open, - HDINP2 => hdinp2, - HDINN2 => hdinn2, - HDOUTP2 => hdoutp2, - HDOUTN2 => hdoutn2, - SCISELCH2 => fpsc_vlo, - SCIENCH2 => fpsc_vlo, - FF_RXI_CLK_2 => ff_rxiclk_ch2, - FF_TXI_CLK_2 => ff_txiclk_ch2, - FF_EBRD_CLK_2 => ff_ebrd_clk_2, - FF_RX_F_CLK_2 => ff_rxfullclk_ch2, - FF_RX_H_CLK_2 => ff_rxhalfclk_ch2, - FF_RX_Q_CLK_2 => open, - FF_TX_D_2_0 => ff_txdata_ch2(0), - FF_TX_D_2_1 => ff_txdata_ch2(1), - FF_TX_D_2_2 => ff_txdata_ch2(2), - FF_TX_D_2_3 => ff_txdata_ch2(3), - FF_TX_D_2_4 => ff_txdata_ch2(4), - FF_TX_D_2_5 => ff_txdata_ch2(5), - FF_TX_D_2_6 => ff_txdata_ch2(6), - FF_TX_D_2_7 => ff_txdata_ch2(7), - FF_TX_D_2_8 => ff_tx_k_cntrl_ch2(0), - FF_TX_D_2_9 => ff_force_disp_ch2(0), - FF_TX_D_2_10 => ff_disp_sel_ch2(0), - FF_TX_D_2_11 => ff_correct_disp_ch2(0), - FF_TX_D_2_12 => ff_txdata_ch2(8), - FF_TX_D_2_13 => ff_txdata_ch2(9), - FF_TX_D_2_14 => ff_txdata_ch2(10), - FF_TX_D_2_15 => ff_txdata_ch2(11), - FF_TX_D_2_16 => ff_txdata_ch2(12), - FF_TX_D_2_17 => ff_txdata_ch2(13), - FF_TX_D_2_18 => ff_txdata_ch2(14), - FF_TX_D_2_19 => ff_txdata_ch2(15), - FF_TX_D_2_20 => ff_tx_k_cntrl_ch2(1), - FF_TX_D_2_21 => ff_force_disp_ch2(1), - FF_TX_D_2_22 => ff_disp_sel_ch2(1), - FF_TX_D_2_23 => ff_correct_disp_ch2(1), - FF_RX_D_2_0 => ff_rxdata_ch2(0), - FF_RX_D_2_1 => ff_rxdata_ch2(1), - FF_RX_D_2_2 => ff_rxdata_ch2(2), - FF_RX_D_2_3 => ff_rxdata_ch2(3), - FF_RX_D_2_4 => ff_rxdata_ch2(4), - FF_RX_D_2_5 => ff_rxdata_ch2(5), - FF_RX_D_2_6 => ff_rxdata_ch2(6), - FF_RX_D_2_7 => ff_rxdata_ch2(7), - FF_RX_D_2_8 => ff_rx_k_cntrl_ch2(0), - FF_RX_D_2_9 => ff_disp_err_ch2(0), - FF_RX_D_2_10 => ff_cv_ch2(0), - FF_RX_D_2_11 => open, - FF_RX_D_2_12 => ff_rxdata_ch2(8), - FF_RX_D_2_13 => ff_rxdata_ch2(9), - FF_RX_D_2_14 => ff_rxdata_ch2(10), - FF_RX_D_2_15 => ff_rxdata_ch2(11), - FF_RX_D_2_16 => ff_rxdata_ch2(12), - FF_RX_D_2_17 => ff_rxdata_ch2(13), - FF_RX_D_2_18 => ff_rxdata_ch2(14), - FF_RX_D_2_19 => ff_rxdata_ch2(15), - FF_RX_D_2_20 => ff_rx_k_cntrl_ch2(1), - FF_RX_D_2_21 => ff_disp_err_ch2(1), - FF_RX_D_2_22 => ff_cv_ch2(1), - FF_RX_D_2_23 => open, - FFC_RRST_2 => ffc_rrst_ch2, - FFC_SIGNAL_DETECT_2 => ffc_signal_detect_ch2, - FFC_ENABLE_CGALIGN_2 => ffc_enable_cgalign_ch2, - FFC_SB_PFIFO_LP_2 => fpsc_vlo, - FFC_PFIFO_CLR_2 => fpsc_vlo, - FFC_FB_LOOPBACK_2 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCI_DET_EN_2 => fpsc_vlo, - FFS_PCIE_DONE_2 => open, - FFS_PCIE_CON_2 => open, - FFC_EI_EN_2 => fpsc_vlo, - FFC_LANE_TX_RST_2 => ffc_lane_tx_rst_ch2, - FFC_LANE_RX_RST_2 => ffc_lane_rx_rst_ch2, - FFC_TXPWDNB_2 => ffc_txpwdnb_ch2, - FFC_RXPWDNB_2 => ffc_rxpwdnb_ch2, - FFS_RLOS_LO_2 => ffs_rlos_lo_ch2, - FFS_LS_SYNC_STATUS_2 => open, - FFS_CC_UNDERRUN_2 => open, - FFS_CC_OVERRUN_2 => open, - FFS_RXFBFIFO_ERROR_2 => open, - FFS_TXFBFIFO_ERROR_2 => open, - FFS_RLOL_2 => ffs_rlol_ch2, - OOB_OUT_2 => oob_out_ch2, - HDINP3 => fpsc_vlo, - HDINN3 => fpsc_vlo, - HDOUTP3 => open, - HDOUTN3 => open, - SCISELCH3 => fpsc_vlo, - SCIENCH3 => fpsc_vlo, - FF_RXI_CLK_3 => fpsc_vlo, - FF_TXI_CLK_3 => fpsc_vlo, - FF_EBRD_CLK_3 => fpsc_vlo, - FF_RX_F_CLK_3 => open, - FF_RX_H_CLK_3 => open, - FF_RX_Q_CLK_3 => open, - FF_TX_D_3_0 => fpsc_vlo, - FF_TX_D_3_1 => fpsc_vlo, - FF_TX_D_3_2 => fpsc_vlo, - FF_TX_D_3_3 => fpsc_vlo, - FF_TX_D_3_4 => fpsc_vlo, - FF_TX_D_3_5 => fpsc_vlo, - FF_TX_D_3_6 => fpsc_vlo, - FF_TX_D_3_7 => fpsc_vlo, - FF_TX_D_3_8 => fpsc_vlo, - FF_TX_D_3_9 => fpsc_vlo, - FF_TX_D_3_10 => fpsc_vlo, - FF_TX_D_3_11 => fpsc_vlo, - FF_TX_D_3_12 => fpsc_vlo, - FF_TX_D_3_13 => fpsc_vlo, - FF_TX_D_3_14 => fpsc_vlo, - FF_TX_D_3_15 => fpsc_vlo, - FF_TX_D_3_16 => fpsc_vlo, - FF_TX_D_3_17 => fpsc_vlo, - FF_TX_D_3_18 => fpsc_vlo, - FF_TX_D_3_19 => fpsc_vlo, - FF_TX_D_3_20 => fpsc_vlo, - FF_TX_D_3_21 => fpsc_vlo, - FF_TX_D_3_22 => fpsc_vlo, - FF_TX_D_3_23 => fpsc_vlo, - FF_RX_D_3_0 => open, - FF_RX_D_3_1 => open, - FF_RX_D_3_2 => open, - FF_RX_D_3_3 => open, - FF_RX_D_3_4 => open, - FF_RX_D_3_5 => open, - FF_RX_D_3_6 => open, - FF_RX_D_3_7 => open, - FF_RX_D_3_8 => open, - FF_RX_D_3_9 => open, - FF_RX_D_3_10 => open, - FF_RX_D_3_11 => open, - FF_RX_D_3_12 => open, - FF_RX_D_3_13 => open, - FF_RX_D_3_14 => open, - FF_RX_D_3_15 => open, - FF_RX_D_3_16 => open, - FF_RX_D_3_17 => open, - FF_RX_D_3_18 => open, - FF_RX_D_3_19 => open, - FF_RX_D_3_20 => open, - FF_RX_D_3_21 => open, - FF_RX_D_3_22 => open, - FF_RX_D_3_23 => open, - FFC_RRST_3 => fpsc_vlo, - FFC_SIGNAL_DETECT_3 => fpsc_vlo, - FFC_SB_PFIFO_LP_3 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - FFC_PFIFO_CLR_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCI_DET_EN_3 => fpsc_vlo, - FFC_FB_LOOPBACK_3 => fpsc_vlo, - FFC_ENABLE_CGALIGN_3 => fpsc_vlo, - FFC_EI_EN_3 => fpsc_vlo, - FFC_LANE_TX_RST_3 => fpsc_vlo, - FFC_LANE_RX_RST_3 => fpsc_vlo, - FFC_TXPWDNB_3 => fpsc_vlo, - FFC_RXPWDNB_3 => fpsc_vlo, - FFS_RLOS_LO_3 => open, - FFS_PCIE_DONE_3 => open, - FFS_PCIE_CON_3 => open, - FFS_LS_SYNC_STATUS_3 => open, - FFS_CC_UNDERRUN_3 => open, - FFS_CC_OVERRUN_3 => open, - FFS_RLOL_3 => open, - FFS_RXFBFIFO_ERROR_3 => open, - FFS_TXFBFIFO_ERROR_3 => open, - OOB_OUT_3 => open, - SCIWDATA0 => fpsc_vlo, - SCIWDATA1 => fpsc_vlo, - SCIWDATA2 => fpsc_vlo, - SCIWDATA3 => fpsc_vlo, - SCIWDATA4 => fpsc_vlo, - SCIWDATA5 => fpsc_vlo, - SCIWDATA6 => fpsc_vlo, - SCIWDATA7 => fpsc_vlo, - SCIADDR0 => fpsc_vlo, - SCIADDR1 => fpsc_vlo, - SCIADDR2 => fpsc_vlo, - SCIADDR3 => fpsc_vlo, - SCIADDR4 => fpsc_vlo, - SCIADDR5 => fpsc_vlo, - SCIRDATA0 => open, - SCIRDATA1 => open, - SCIRDATA2 => open, - SCIRDATA3 => open, - SCIRDATA4 => open, - SCIRDATA5 => open, - SCIRDATA6 => open, - SCIRDATA7 => open, - SCIENAUX => fpsc_vlo, - SCISELAUX => fpsc_vlo, - SCIRD => fpsc_vlo, - SCIWSTN => fpsc_vlo, - CYAWSTN => fpsc_vlo, - SCIINT => open, - FFC_MACRO_RST => ffc_macro_rst, - FFC_QUAD_RST => ffc_quad_rst, - FFC_TRST => ffc_trst, - FF_TX_F_CLK => ff_txfullclk, - FF_TX_H_CLK => ff_txhalfclk, - FF_TX_Q_CLK => open, - REFCK2CORE => refck2core, - CIN0 => cin(0), - CIN1 => cin(1), - CIN2 => cin(2), - CIN3 => cin(3), - CIN4 => cin(4), - CIN5 => cin(5), - CIN6 => cin(6), - CIN7 => cin(7), - CIN8 => cin(8), - CIN9 => cin(9), - CIN10 => cin(10), - CIN11 => cin(11), - COUT0 => cout(0), - COUT1 => cout(1), - COUT2 => cout(2), - COUT3 => cout(3), - COUT4 => cout(4), - COUT5 => cout(5), - COUT6 => cout(6), - COUT7 => cout(7), - COUT8 => cout(8), - COUT9 => cout(9), - COUT10 => cout(10), - COUT11 => cout(11), - COUT12 => cout(12), - COUT13 => cout(13), - COUT14 => cout(14), - COUT15 => cout(15), - COUT16 => cout(16), - COUT17 => cout(17), - COUT18 => cout(18), - COUT19 => cout(19), - FFS_PLOL => ffs_plol); - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on - -end pcs_for_ecp2m_arch ; diff --git a/oldfiles/serdes_test/rich.vhd b/oldfiles/serdes_test/rich.vhd deleted file mode 100644 index 1b6e6a2..0000000 --- a/oldfiles/serdes_test/rich.vhd +++ /dev/null @@ -1,350 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - - - -entity rich is - port( - CLK40M : in std_logic; - CLK100M_P : in std_logic; - CLK100M_N : in std_logic; - FPGA_LED : out std_logic_vector(4 downto 0); - SD_RXD_P : in std_logic; - SD_RXD_N : in std_logic; - SD_TXD_P : out std_logic; - SD_TXD_N : out std_logic; - SD_MD : inout std_logic_vector(2 downto 0); - SD_TXDIS : out std_logic; - SD_LOS : in std_logic; - SD_TXFAULT : out std_logic; - SD_RATE : out std_logic; - ONEWIRE : inout std_logic; - FPGA_EXP : out std_logic_vector(15 downto 0) - ); -end entity; - -architecture rich of rich is - - component pcs_for_ecp2m - port( - core_txrefclk : in std_logic; - core_rxrefclk : in std_logic; - hdinp2 : in std_logic; - hdinn2 : in std_logic; - ff_rxiclk_ch2 : in std_logic; - ff_txiclk_ch2 : in std_logic; - ff_ebrd_clk_2 : in std_logic; - ff_txdata_ch2 : in std_logic_vector(15 downto 0); - ff_tx_k_cntrl_ch2 : in std_logic_vector(1 downto 0); - ff_force_disp_ch2 : in std_logic_vector(1 downto 0); - ff_disp_sel_ch2 : in std_logic_vector(1 downto 0); - ff_correct_disp_ch2 : in std_logic_vector(1 downto 0); - ffc_rrst_ch2 : in std_logic; - ffc_signal_detect_ch2 : in std_logic; - ffc_enable_cgalign_ch2 : in std_logic; - ffc_lane_tx_rst_ch2 : in std_logic; - ffc_lane_rx_rst_ch2 : in std_logic; - ffc_txpwdnb_ch2 : in std_logic; - ffc_rxpwdnb_ch2 : in std_logic; - ffc_macro_rst : in std_logic; - ffc_quad_rst : in std_logic; - ffc_trst : in std_logic; - hdoutp2 : out std_logic; - hdoutn2 : out std_logic; - ff_rxdata_ch2 : out std_logic_vector(15 downto 0); - ff_rx_k_cntrl_ch2 : out std_logic_vector(1 downto 0); - ff_rxfullclk_ch2 : out std_logic; - ff_rxhalfclk_ch2 : out std_logic; - ff_disp_err_ch2 : OUT std_logic_vector(1 downto 0); - ff_cv_ch2 : OUT std_logic_vector(1 downto 0); - ffs_rlos_lo_ch2 : OUT std_logic; - ffs_rlol_ch2 : OUT std_logic; - oob_out_ch2 : OUT std_logic; - ff_txfullclk : OUT std_logic; - ff_txhalfclk : OUT std_logic; - refck2core : OUT std_logic; - ffs_plol : OUT std_logic - ); - END COMPONENT; - - component flexi_PCS_channel_synch - port ( - SYSTEM_CLK : in std_logic; - TX_CLK : in std_logic; - RX_CLK : in std_logic; - RESET : in std_logic; - RXD : in std_logic_vector(15 downto 0); - RXD_SYNCH : out std_logic_vector(15 downto 0); - RX_K : in std_logic_vector(1 downto 0); - RX_RST : out std_logic; - CV : in std_logic_vector(1 downto 0); - TXD : in std_logic_vector(15 downto 0); - TXD_SYNCH : out std_logic_vector(15 downto 0); - TX_K : out std_logic_vector(1 downto 0); - DATA_VALID_IN : in std_logic; - DATA_VALID_OUT : out std_logic; - FLEXI_PCS_STATUS : out std_logic_vector(c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_ERROR_OUT : out std_logic_vector(2 downto 0); - MED_READ_IN : in std_logic); - end component; - - component flexi_PCS_synch - generic ( - HOW_MANY_CHANNELS : positive); - port ( - SYSTEM_CLK : in std_logic; - CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)-1 downto 0); - RX_CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - RESET : in std_logic; - RXD : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - MED_DATA_OUT : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - RX_K : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - RX_RST : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - CV : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - MED_DATA_IN : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - TXD_SYNCH : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - TX_K : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - MED_DATAREADY_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_DATAREADY_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - FLEXI_PCS_SYNCH_STATUS : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector(HOW_MANY_CHANNELS*2-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(HOW_MANY_CHANNELS*2-1 downto 0); - MED_READ_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_READ_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_ERROR_OUT : out std_logic_vector(HOW_MANY_CHANNELS*3-1 downto 0); - MED_STAT_OP : out std_logic_vector (HOW_MANY_CHANNELS*16-1 downto 0); - MED_CTRL_OP : in std_logic_vector (HOW_MANY_CHANNELS*16-1 downto 0) - ); - end component; - - component DCS --- synthesis translate_off - --sim - generic ( - DCSMODE : string := "POS"); --- synthesis translate_on - port ( - CLK0 : in std_logic; - CLK1 : in std_logic; - SEL : in std_logic; - DCSOUT : out std_logic); - end component; - - component link_test - port ( - CLK : in std_logic; - RESET : in std_logic; - DATA_IN : in std_logic_vector(15 downto 0); - DATA_OUT : out std_logic_vector(15 downto 0); - VALID_IN : in std_logic; - VALID_OUT : out std_logic; - LINK_DEBUG : out std_logic_vector(31 downto 0); - LINK_INFO : in std_logic_vector(15 downto 0)); - end component; - - signal core_txrefclk_i : std_logic; - signal core_rxrefclk_i : std_logic; - signal hdinp2_i : std_logic; - signal hdinn2_i : std_logic; - signal ff_rxiclk_ch2_i : std_logic; - signal ff_txiclk_ch2_i : std_logic; - signal ff_ebrd_clk_2_i : std_logic; - signal ff_txdata_ch2_i : std_logic_vector(15 downto 0); - signal ff_tx_k_cntrl_ch2_i : std_logic_vector(1 downto 0); - signal ff_force_disp_ch2_i : std_logic_vector(1 downto 0); - signal ff_disp_sel_ch2_i : std_logic_vector(1 downto 0); - signal ff_correct_disp_ch2_i : std_logic_vector(1 downto 0); - signal ffc_rrst_ch2_i : std_logic; - signal ffc_signal_detect_ch2_i : std_logic; - signal ffc_enable_cgalign_ch2_i : std_logic; - signal ffc_lane_tx_rst_ch2_i : std_logic; - signal ffc_lane_rx_rst_ch2_i : std_logic; - signal ffc_txpwdnb_ch2_i : std_logic; - signal ffc_rxpwdnb_ch2_i : std_logic; - signal ffc_macro_rst_i : std_logic; - signal ffc_quad_rst_i : std_logic; - signal ffc_trst_i : std_logic; - signal hdoutp2_i : std_logic; - signal hdoutn2_i : std_logic; - signal ff_rxdata_ch2_i : std_logic_vector(15 downto 0); - signal ff_rx_k_cntrl_ch2_i : std_logic_vector(1 downto 0); - signal ff_rxfullclk_ch2_i : std_logic; - signal ff_rxhalfclk_ch2_i : std_logic; - signal ff_disp_err_ch2_i : std_logic_vector(1 downto 0); - signal ff_cv_ch2_i : std_logic_vector(1 downto 0); - signal ffs_rlos_lo_ch2_i : std_logic; - signal ffs_rlol_ch2_i : std_logic; - signal oob_out_ch2_i : std_logic; - signal ff_txfullclk_i : std_logic; - signal ff_txhalfclk_i : std_logic; - signal refck2core_i : std_logic; - signal ffs_plol_i : std_logic; - -- reset - signal global_reset_cnt : std_logic_vector(3 downto 0); - signal global_reset_i : std_logic:='0'; - signal counter : std_logic_vector(31 downto 0); - -- dcs_clock - signal dcs_clk_out : std_logic; - signal not_lock : std_logic; - --synch - signal data_valid_out_i : std_logic; - signal flexi_PCS_status_i : std_logic_vector(15 downto 0); - signal ffc_lane_rx_rst_ch2_start : std_logic; - signal ffc_lane_rx_rst_ch2_resync : std_logic; - --test - signal data_out_i : std_logic_vector(15 downto 0); - signal data_in_i : std_logic_vector(15 downto 0); - signal data_valid_in_i : std_logic; - signal test_link_debug : std_logic_vector(31 downto 0); - signal test_link_info : std_logic_vector(15 downto 0); -begin -- rich - RESET_COUNTER_a : process (CLK40M) - begin - if rising_edge(CLK40M) then - if counter < x"0ffffffe" then - counter <= counter +1; - else - counter <= counter; - end if; - end if; - end process RESET_COUNTER_a; - - ffc_quad_rst_i <= '1' when (counter > x"0000ffff" and counter < x"0001000f") else '0'; - ffc_lane_tx_rst_ch2_i <= '1' when (counter > x"00ffffff" and counter < x"0f00000f") else '0'; - ffc_lane_rx_rst_ch2_start <= '1' when (counter > x"00ffffff" and counter < x"0f00000f") else '0'; - - REF_CLK_SELECT: DCS - -- synthesis translate_off - - generic map (--no_sim-- - DCSMODE => "POS")--no_sim-- - -- synthesis translate_on - port map ( - CLK0 => ff_rxhalfclk_ch2_i, - CLK1 => CLK40M, - SEL => ffs_rlol_ch2_i,--hub_register_0a_i(0),--'0',--switch_rx_clk, - DCSOUT => dcs_clk_out); - - serdes : pcs_for_ecp2m port map( - core_txrefclk => CLK40M, - core_rxrefclk => dcs_clk_out,--CLK40M,--ff_rxhalfclk_ch2_i, - hdinp2 => SD_RXD_P, - hdinn2 => SD_RXD_N, - hdoutp2 => SD_TXD_P, - hdoutn2 => SD_TXD_N, - ff_rxiclk_ch2 => ff_rxhalfclk_ch2_i, - ff_txiclk_ch2 => ff_txhalfclk_i, - ff_ebrd_clk_2 => open,--ff_ebrd_clk_2_i, - ff_txdata_ch2 => ff_txdata_ch2_i, - ff_rxdata_ch2 => ff_rxdata_ch2_i, - ff_tx_k_cntrl_ch2 => ff_tx_k_cntrl_ch2_i, - ff_rx_k_cntrl_ch2 => ff_rx_k_cntrl_ch2_i, - ff_rxfullclk_ch2 => ff_rxfullclk_ch2_i, - ff_rxhalfclk_ch2 => ff_rxhalfclk_ch2_i, - ff_force_disp_ch2 => "00",--ff_force_disp_ch2_i, - ff_disp_sel_ch2 => "00",--ff_disp_sel_ch2_i, - ff_correct_disp_ch2 => ff_correct_disp_ch2_i, - ff_disp_err_ch2 => ff_disp_err_ch2_i, - ff_cv_ch2 => ff_cv_ch2_i, - ffc_rrst_ch2 => '0',--ffc_rrst_ch2_i, - ffc_signal_detect_ch2 => '1',--ffc_signal_detect_ch2_i, - ffc_enable_cgalign_ch2 => '1',--ffc_enable_cgalign_ch2_i, - ffc_lane_tx_rst_ch2 => ffc_lane_tx_rst_ch2_i, - ffc_lane_rx_rst_ch2 => ffc_lane_rx_rst_ch2_i, - ffc_txpwdnb_ch2 => '1',--ffc_txpwdnb_ch2_i, - ffc_rxpwdnb_ch2 => '1',--ffc_rxpwdnb_ch2_i, - ffs_rlos_lo_ch2 => ffs_rlos_lo_ch2_i, - ffs_rlol_ch2 => ffs_rlol_ch2_i, - oob_out_ch2 => oob_out_ch2_i, - ffc_macro_rst => '0',--ffc_macro_rst_i, - ffc_quad_rst => global_reset_i,--ffc_quad_rst_i, - ffc_trst => '0',--ffc_trst_i, - ff_txfullclk => ff_txfullclk_i, - ff_txhalfclk => ff_txhalfclk_i, - refck2core => refck2core_i, - ffs_plol => ffs_plol_i - ); - ffc_lane_rx_rst_ch2_i <= ffc_lane_rx_rst_ch2_resync or ffc_lane_rx_rst_ch2_start; - - SYNCH: flexi_PCS_channel_synch - port map ( - SYSTEM_CLK => CLK40M, - TX_CLK => ff_txhalfclk_i, - RX_CLK => ff_rxhalfclk_ch2_i, - RESET => global_reset_i, - RXD => ff_rxdata_ch2_i, - RXD_SYNCH => data_in_i, - RX_K => ff_rx_k_cntrl_ch2_i, - RX_RST => ffc_lane_rx_rst_ch2_resync, - CV => ff_cv_ch2_i, - TXD => data_out_i, - TXD_SYNCH => ff_txdata_ch2_i, - TX_K => ff_tx_k_cntrl_ch2_i, - DATA_VALID_IN => data_valid_in_i, - DATA_VALID_OUT => data_valid_out_i, - FLEXI_PCS_STATUS => flexi_pcs_status_i, - MED_PACKET_NUM_OUT => open, - MED_ERROR_OUT => open, - MED_READ_IN => '1'); - - test_link_info(2 downto 0) <= ff_cv_ch2_i & flexi_pcs_status_i(2); - - LINK_TETS_INST: link_test - port map ( - CLK => CLK40M, - RESET => global_reset_i, - DATA_IN => data_in_i, - DATA_OUT => data_out_i, - VALID_IN => data_valid_out_i, - VALID_OUT => data_valid_in_i, - LINK_DEBUG => test_link_debug, - LINK_INFO => test_link_info); - - - - GLOBAL_RESET: process(CLK40M,global_reset_cnt,global_reset_i) - begin - if rising_edge(CLK40M) then - if global_reset_cnt < x"e" or global_reset_cnt =x"f" then - global_reset_cnt <= global_reset_cnt + 1; - global_reset_i <= '1'; - elsif global_reset_cnt = x"e" then - global_reset_i <= '0'; - global_reset_cnt <= x"e"; - else - global_reset_i <= '0'; - global_reset_cnt <= global_reset_cnt; - end if; - end if; - end process GLOBAL_RESET; - --- ff_tx_k_cntrl_ch2_i <= "10"; --- ff_txdata_ch2_i <= x"bcc5"; - FPGA_LED(4 downto 1) <= "1010"; - FPGA_LED(0) <= not flexi_pcs_status_i(2); - - FPGA_EXP <= test_link_debug(15 downto 0); - --- FPGA_EXP(0) <= CLK40M; --- FPGA_EXP(1) <= ff_rxhalfclk_ch2_i; --- FPGA_EXP(2) <= dcs_clk_out; --- FPGA_EXP(3) <= ff_cv_ch2_i(0); --- FPGA_EXP(4) <= ff_cv_ch2_i(1); --- FPGA_EXP(5) <= ff_rx_k_cntrl_ch2_i(0); --- FPGA_EXP(6) <= ff_rx_k_cntrl_ch2_i(1); --- FPGA_EXP(7) <= ff_disp_err_ch2_i(0); --- FPGA_EXP(8) <= ff_disp_err_ch2_i(1); --- FPGA_EXP(9) <= ffs_rlos_lo_ch2_i; --- FPGA_EXP(10)<= ffs_rlol_ch2_i; --- FPGA_EXP(11)<= global_reset_i; --- FPGA_EXP(12)<= ffs_plol_i; --- FPGA_EXP(13) <= not flexi_pcs_status_i(2); --- FPGA_EXP(14) <= ffc_lane_rx_rst_ch2_i; - -end rich; diff --git a/oldfiles/serdes_test/serdes_fpga_ref_clk.txt b/oldfiles/serdes_test/serdes_fpga_ref_clk.txt deleted file mode 100644 index c664b6f..0000000 --- a/oldfiles/serdes_test/serdes_fpga_ref_clk.txt +++ /dev/null @@ -1,61 +0,0 @@ - - -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCS quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCS quad to the final design requirements. -# channel_0 is in "8b10b" mode -# channel_1 is in "8b10b" mode -# channel_2 is in "8b10b" mode -# channel_3 is in "8b10b" mode - -ch0 13 03 # Powerup Channel -ch0 00 00 -ch1 13 03 # Powerup Channel -ch1 00 00 -ch2 13 03 # Powerup Channel -ch2 00 00 -ch3 13 03 # Powerup Channel -ch3 00 00 -quad 00 00 -quad 01 E4 -quad 28 40 # Reference clock multiplier -quad 29 11 # FPGA sourced refclk -quad 02 00 # ref_pclk source is ch0 -quad 04 00 # MCA enable 4 channels - -quad 18 10 # 8b10b Mode -quad 14 FF # Word Alignment Mask -quad 15 7c # +ve K -quad 16 b6 # -ve K -quad 17 36 - -quad 19 8C # Enable word_align_en port, FPGA bus width is 16-bit/20-bit - -#quad 1e 01 #SOP EOP only 1 word 24.04.2008 -#quad 1f ff -#quad 20 7c -#quad 21 7c -#quad 22 5 -#quad 23 7c -#quad 24 7c -#quad 25 5 - - -ch0 14 90 # 16% pre-emphasis -ch0 15 10 # +6dB equalization -ch1 14 90 # 16% pre-emphasis -ch1 15 10 # +6dB equalization -ch2 14 90 # 16% pre-emphasis -ch2 15 10 # +6dB equalization -ch3 14 90 # 16% pre-emphasis -ch3 15 10 # +6dB equalization - -# These lines must appear last in the autoconfig file. These lines apply the correct -# reset sequence to the PCS block upon bitstream configuration -quad 41 00 # de-assert serdes_rst -quad 40 ff # assert datapath reset for all channels -quad 40 00 # de-assert datapath reset for all channels - - - diff --git a/oldfiles/serdes_test/up_down_counter.vhd b/oldfiles/serdes_test/up_down_counter.vhd deleted file mode 100644 index 7a02ead..0000000 --- a/oldfiles/serdes_test/up_down_counter.vhd +++ /dev/null @@ -1,44 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - -entity up_down_counter is - - generic ( - NUMBER_OF_BITS : positive - ); - port ( - CLK : in std_logic; - RESET : in std_logic; - COUNT_OUT : out std_logic_vector(NUMBER_OF_BITS-1 downto 0); - UP_IN : in std_logic; - DOWN_IN : in std_logic - ); - -end up_down_counter; - -architecture up_down_counter of up_down_counter is - -signal counter: std_logic_vector (NUMBER_OF_BITS-1 downto 0); - -begin - - COUNTER_PROC : process (CLK, RESET, UP_IN, DOWN_IN) - begin - if rising_edge(clk) then - if RESET = '1' then - counter <= (others => '0'); - elsif UP_IN = '1' and DOWN_IN = '0' then - counter <= counter + 1; - elsif UP_IN = '0' and DOWN_IN = '1' then - counter <= counter - 1; - else - counter <= counter; - end if; - end if; - end process COUNTER_PROC; - - COUNT_OUT <= counter; - -end up_down_counter; diff --git a/oldfiles/sfp_interface.vhd b/oldfiles/sfp_interface.vhd deleted file mode 100644 index 3577341..0000000 --- a/oldfiles/sfp_interface.vhd +++ /dev/null @@ -1,544 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -library ieee; -library work; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.all; - -entity Sfp_Interface is - generic ( - I2C_SPEED : std_logic_vector(15 downto 0) := x"0200" ------------------------------------------------------------------------------------- --- I2C_SPEED = 100 MHz / working frequency | --- max working frequency 400 kHz | --- Example: for 400 kHz working frequency => I2C_SPEED = FPGA freq / Working freq | --- I2C_SPEED = 100MHz / 400kHz | --- I2C_SPEED = 250 = x"FA" | ------------------------------------------------------------------------------------- - ); - port( - CLK_IN : in std_logic; -- System clock - RST_IN : in std_logic; -- System reset --- host side - START_PULSE : in std_logic; -- System start pulse - DEVICE_ADDRESS : in std_logic_vector(7 downto 0) :=x"06"; -- Device address input: x"06" for SFP_Interface - DATA_OUT : out std_logic_vector(15 downto 0); -- Data output from optical transmitter - READ_DONE : out std_logic; -- Reading process done - SFP_ADDRESS : in std_logic_vector(7 downto 0); -- SFP address ---------------------------------------------------------------- --- SFP_ADDRESS values: | ---------------------------------------------------------------| --- x"60" => Internally measured module temperature | --- x"66" => Measured TX optical output power | --- x"68" => Measured RX optical input power | ---------------------------------------------------------------- --- optical transceiver side - SCL : out std_logic_vector(15 downto 0); -- I2C Serial clock I/O - SDA : inout std_logic_vector(15 downto 0); -- I2C Serial data I/O - DEBUG : out std_logic_vector(31 downto 0) - ); - -end Sfp_Interface; -------------------------------------------------------------------------------- - -architecture behavioral of Sfp_Interface is -------------------------------------------------------------------------------- --- Internal Lines -------------------------------------------------------------------------------- - signal scl_int : std_logic := '1'; - signal sda_int : std_logic := '1'; - signal sda_int_mem : std_logic := '1'; - signal byte_2_send : std_logic_vector(7 downto 0) := x"00"; - signal byte_2_send_mem : std_logic_vector(7 downto 0) := x"00"; - signal byte_2_read : std_logic_vector(15 downto 0) := x"0000"; - signal data_out_int : std_logic_vector(15 downto 0) := x"0000"; - signal data_out_int_mem : std_logic_vector(15 downto 0) := x"0000"; - signal bit_read : std_logic := '0'; - signal bit_read_mem : std_logic := '0'; - signal read_done_int : std_logic := '0'; --- - signal en_reset_cnt : std_logic := '0'; - signal stop_reset_cnt : std_logic := '0'; - signal rst_reset_cnt : std_logic := '0'; - signal reset_cnt : std_logic_vector(3 downto 0) := "0001"; - signal reset_done : std_logic := '0'; - signal reset_done_mem : std_logic := '0'; --- - signal en_bit_cnt : std_logic := '0'; - signal stop_bit_cnt : std_logic := '0'; - signal rst_bit_cnt : std_logic := '0'; - signal bit_cnt : std_logic_vector(5 downto 0) := "000000"; --- - signal stop_fre_cnt : std_logic := '0'; - signal rst_fre_cnt : std_logic := '0'; - signal fre_cnt : std_logic_vector(15 downto 0) := x"0000"; --- - signal en_shift_reg : std_logic := '0'; - signal en_FSM : std_logic := '0'; - signal sfp_address_i : std_logic_vector(7 downto 0) := x"00"; - signal device_address_i : std_logic_vector(7 downto 0) := x"06"; - signal start_pulse_i : std_logic := '0'; --- - signal debug_signal : std_logic_vector(31 downto 0) := x"00000000"; - signal select_line : integer range 0 to 15; -------------------------------------------------------------------------------- - type STATES is (IDLE, RESET_A, RESET_B, RESET_C, RESET_D, START_A, START_B, - START_C, START_D, STOP_A, STOP_B, STOP_C, STOP_D, SEND_BYTE_A, - SEND_BYTE_B, SEND_BYTE_C, SEND_BYTE_D, READ_BYTE_A, READ_BYTE_B, - READ_BYTE_C, READ_BYTE_D, SEND_ACK_A, SEND_ACK_B, SEND_ACK_C, - SEND_ACK_D, READ_ACK_A, READ_ACK_B, READ_ACK_C, READ_ACK_D); - signal STATE_CURRENT : STATES; - signal STATE_NEXT : STATES; -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -begin - stop_reset_cnt <= rst_in or rst_reset_cnt; - stop_bit_cnt <= rst_in or rst_bit_cnt; - stop_fre_cnt <= rst_in or rst_fre_cnt; - select_line <= to_integer(unsigned(DEVICE_ADDRESS(3 downto 0))); - - proc_counters : process begin - wait until rising_edge(CLK_IN); - if stop_fre_cnt = '1' then - fre_cnt <= x"0000"; - else - fre_cnt <= std_logic_vector(unsigned(fre_cnt)+1); - end if; - - if stop_bit_cnt = '1' then - bit_cnt <= "000000"; - elsif en_bit_cnt = '1' then - bit_cnt <= std_logic_vector(unsigned(bit_cnt)+1); - end if; - - if stop_reset_cnt = '1' then - reset_cnt <= "0000"; - elsif en_reset_cnt = '1' then - reset_cnt <= std_logic_vector(unsigned(reset_cnt)+1); - end if; - - - end process; - - Frequency_Division : process (CLK_IN, RST_IN, fre_cnt) - begin - if rising_edge(CLK_IN) then - if RST_IN = '1' then - en_FSM <= '0'; - rst_fre_cnt <= '0'; - elsif fre_cnt = I2C_SPEED then - en_FSM <= '1'; - rst_fre_cnt <= '1'; - else - en_FSM <= '0'; - rst_fre_cnt <= '0'; - end if; - end if; - end process Frequency_Division; -------------------------------------------------------------------------------- - Address_Assingment : process (CLK_IN, RST_IN, START_PULSE) - begin - if rising_edge(CLK_IN) then - if RST_IN = '1' then - sfp_address_i <= x"00"; - device_address_i <= x"00"; - start_pulse_i <= '0'; - elsif START_PULSE = '1' then - sfp_address_i <= SFP_ADDRESS; - device_address_i <= DEVICE_ADDRESS; - start_pulse_i <= START_PULSE; - else - start_pulse_i <= '0'; - end if; - end if; - end process Address_Assingment; -------------------------------------------------------------------------------- - Syncronising : process (CLK_IN, RST_IN) - begin - if rising_edge(CLK_IN) then - if RST_IN = '1' then - STATE_CURRENT <= IDLE; - DATA_OUT <= x"0000"; - READ_DONE <= '0'; - data_out_int_mem <= x"0000"; - byte_2_send_mem <= x"00"; - reset_done_mem <= '0'; - bit_read_mem <= '0'; - SCL <= (others => 'Z'); - SDA <= (others => 'Z'); - sda_int_mem <= '1'; - DEBUG <= x"00000000"; - else - STATE_CURRENT <= STATE_NEXT; - DATA_OUT <= data_out_int; - READ_DONE <= read_done_int; - data_out_int_mem <= data_out_int; - byte_2_send_mem <= byte_2_send; - reset_done_mem <= reset_done; - sda_int_mem <= sda_int; - bit_read_mem <= bit_read; - SCL <= (others => scl_int); - SDA <= (others => sda_int); - DEBUG <= debug_signal; - end if; - end if; - end process Syncronising; -------------------------------------------------------------------------------- - Shift_Register : process (CLK_IN, RST_IN, en_shift_reg) - begin - if rising_edge(CLK_IN) then - if RST_IN = '1' then - byte_2_read <= x"0000"; - elsif en_shift_reg = '1' then - byte_2_read <= byte_2_read(14 downto 0) & bit_read; - end if; - end if; - end process Shift_Register; -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- --- The State Machine -------------------------------------------------------------------------------- - State_Decoder : process (start_pulse_i, device_address_i, STATE_CURRENT, - reset_cnt, reset_done, reset_done_mem, bit_cnt, SDA, - byte_2_send_mem, byte_2_read, data_out_int_mem, - en_FSM, sda_int_mem, sfp_address_i, bit_read_mem) - begin - en_reset_cnt <= '0'; - rst_reset_cnt <= '0'; - en_bit_cnt <= '0'; - rst_bit_cnt <= '0'; - en_shift_reg <= '0'; - sda_int <= 'Z'; - scl_int <= 'Z'; - byte_2_send <= byte_2_send_mem; - data_out_int <= data_out_int_mem; - reset_done <= reset_done_mem; - bit_read <= bit_read_mem; - read_done_int <= '0'; - STATE_NEXT <= STATE_CURRENT; - - case (STATE_CURRENT) is ---IDLE - when IDLE => - if start_pulse_i = '1' and reset_done = '0' then - STATE_NEXT <= RESET_C; - elsif start_pulse_i = '1' and reset_done = '1' then - STATE_NEXT <= START_A; - else - STATE_NEXT <= IDLE; - end if; - debug_signal <= x"00000001"; ---RESET - when RESET_A => - scl_int <= '0'; - sda_int <= '1'; - if en_FSM = '1' then - STATE_NEXT <= RESET_B; - end if; - debug_signal <= x"00000002"; --- - when RESET_B => - scl_int <= '0'; - sda_int <= '1'; - if reset_cnt = "1000" and en_FSM = '1' then - STATE_NEXT <= START_C; - rst_reset_cnt <= '1'; - reset_done <= '1'; - elsif en_FSM = '1' then - STATE_NEXT <= RESET_C; - en_reset_cnt <= '1'; - end if; - debug_signal <= x"00000003"; --- - when RESET_C => - scl_int <= '1'; - sda_int <= '1'; - if en_FSM = '1' then - STATE_NEXT <= RESET_D; - end if; - debug_signal <= x"00000004"; --- - when RESET_D => - scl_int <= '1'; - sda_int <= '1'; - if en_FSM = '1' then - STATE_NEXT <= RESET_A; - end if; - debug_signal <= x"00000005"; ---START - when START_A => - scl_int <= '0'; - sda_int <= '1'; - if en_FSM = '1' then - STATE_NEXT <= START_B; - end if; - debug_signal <= x"00000006"; --- - when START_B => - scl_int <= '0'; - sda_int <= '1'; - if en_FSM = '1' then - STATE_NEXT <= START_C; - end if; - debug_signal <= x"00000007"; --- - when START_C => - scl_int <= '1'; - sda_int <= '1'; - if en_FSM = '1' then - STATE_NEXT <= START_D; - end if; - debug_signal <= x"00000008"; --- - when START_D => - scl_int <= '1'; - sda_int <= '0'; - if bit_cnt = "010011" and en_FSM = '1' then - byte_2_send <= x"A3"; - STATE_NEXT <= SEND_BYTE_A; - en_bit_cnt <= '1'; - elsif bit_cnt = "000000" and en_FSM = '1' then - byte_2_send <= x"A2"; - STATE_NEXT <= SEND_BYTE_A; - en_bit_cnt <= '1'; - elsif en_FSM = '0' then - STATE_NEXT <= STATE_CURRENT; - else - byte_2_send <= x"00"; - STATE_NEXT <= IDLE; - end if; - debug_signal <= x"00000009"; ---STOP - when STOP_A => - scl_int <= '0'; - sda_int <= '0'; - if en_FSM = '1' then - STATE_NEXT <= STOP_B; - end if; - debug_signal <= x"0000000a"; --- - when STOP_B => - scl_int <= '0'; - sda_int <= '0'; - if en_FSM = '1' then - STATE_NEXT <= STOP_C; - end if; - debug_signal <= x"0000000b"; --- - when STOP_C => - scl_int <= '1'; - sda_int <= '0'; - if en_FSM = '1' then - STATE_NEXT <= STOP_D; - end if; - debug_signal <= x"0000000c"; --- - when STOP_D => - scl_int <= '1'; - sda_int <= '1'; - rst_bit_cnt <= '1'; - if en_FSM = '1' then - STATE_NEXT <= IDLE; - end if; - debug_signal <= x"0000000d"; ---SEND_BYTE - when SEND_BYTE_A => - scl_int <= '0'; - sda_int <= byte_2_send(7); - if en_FSM = '1' then - STATE_NEXT <= SEND_BYTE_B; - end if; - debug_signal <= x"0000000e"; --- - when SEND_BYTE_B => - scl_int <= '0'; - sda_int <= byte_2_send(7); - if en_FSM = '1' then - STATE_NEXT <= SEND_BYTE_C; - end if; - debug_signal <= x"0000000f"; --- - when SEND_BYTE_C => - scl_int <= '1'; - sda_int <= byte_2_send(7); - if en_FSM = '1' then - STATE_NEXT <= SEND_BYTE_D; - end if; - debug_signal <= x"00000010"; --- - when SEND_BYTE_D => - scl_int <= '1'; - sda_int <= byte_2_send(7); - if (bit_cnt = "001000" or bit_cnt = "010001" or bit_cnt = "011011") and en_FSM = '1' then - STATE_NEXT <= READ_ACK_A; - byte_2_send <= byte_2_send_mem(6 downto 0) & byte_2_send_mem(7); - en_bit_cnt <= '1'; - en_shift_reg <= '1'; - elsif en_FSM = '1' then - STATE_NEXT <= SEND_BYTE_A; - byte_2_send <= byte_2_send_mem(6 downto 0) & byte_2_send_mem(7); - en_bit_cnt <= '1'; - en_shift_reg <= '1'; - else - STATE_NEXT <= STATE_CURRENT; - end if; - debug_signal <= x"00000011"; ---READ_BYTE - when READ_BYTE_A => - scl_int <= '0'; - if en_FSM = '1' then - STATE_NEXT <= READ_BYTE_B; - end if; - debug_signal <= x"00000012"; --- - when READ_BYTE_B => - scl_int <= '0'; - if en_FSM = '1' then - STATE_NEXT <= READ_BYTE_C; - end if; - debug_signal <= x"00000013"; --- - when READ_BYTE_C => - scl_int <= '1'; - bit_read <= SDA(select_line); - if en_FSM = '1' then - STATE_NEXT <= READ_BYTE_D; - end if; - debug_signal <= x"00000014"; --- - when READ_BYTE_D => - scl_int <= '1'; - if (bit_cnt = "100100" or bit_cnt = "101100") and en_FSM = '1' then - STATE_NEXT <= SEND_ACK_A; - en_bit_cnt <= '1'; - en_shift_reg <= '1'; - elsif en_FSM = '1' then - STATE_NEXT <= READ_BYTE_A; - en_bit_cnt <= '1'; - en_shift_reg <= '1'; - else - STATE_NEXT <= STATE_CURRENT; - end if; - debug_signal <= x"00000015"; ---SEND_ACK - when SEND_ACK_A => - scl_int <= '0'; - if bit_cnt = "101101" then - sda_int <= '1'; - elsif bit_cnt = "100101" then - sda_int <= '0'; - else - sda_int <= 'X'; - end if; - if en_FSM = '1' then - STATE_NEXT <= SEND_ACK_B; - end if; - debug_signal <= x"00000016"; --- - when SEND_ACK_B => - scl_int <= '0'; - if bit_cnt = "101101" then - sda_int <= '1'; - elsif bit_cnt = "100101" then - sda_int <= '0'; - else - sda_int <= 'X'; - end if; - if en_FSM = '1' then - STATE_NEXT <= SEND_ACK_C; - end if; - debug_signal <= x"00000017"; --- - when SEND_ACK_C => - scl_int <= '1'; - if bit_cnt = "101101" then - sda_int <= '1'; - elsif bit_cnt = "100101" then - sda_int <= '0'; - else - sda_int <= 'X'; - end if; - if en_FSM = '1' then - STATE_NEXT <= SEND_ACK_D; - end if; - debug_signal <= x"00000018"; --- - when SEND_ACK_D => - scl_int <= '1'; - if bit_cnt = "101101" and en_FSM = '1' then - sda_int <= '1'; - STATE_NEXT <= STOP_A; - data_out_int <= byte_2_read; - read_done_int <= '1'; - elsif bit_cnt = "100101" and en_FSM = '1' then - sda_int <= '0'; - STATE_NEXT <= READ_BYTE_A; - elsif en_FSM = '0' then - sda_int <= sda_int_mem; - STATE_NEXT <= STATE_CURRENT; - else - sda_int <= 'X'; - STATE_NEXT <= IDLE; - end if; - debug_signal <= x"00000019"; ---READ_ACK - when READ_ACK_A => - scl_int <= '0'; - if en_FSM = '1' then - STATE_NEXT <= READ_ACK_B; - end if; - debug_signal <= x"0000001a"; --- - when READ_ACK_B => - scl_int <= '0'; - if en_FSM = '1' then - STATE_NEXT <= READ_ACK_C; - end if; - debug_signal <= x"0000001b"; --- - when READ_ACK_C => - scl_int <= '1'; - bit_read <= SDA(select_line); - if en_FSM = '1' then - STATE_NEXT <= READ_ACK_D; - end if; - debug_signal <= x"0000001c"; --- - when READ_ACK_D => - scl_int <= '1'; - if bit_read = '0' and bit_cnt = "001001" and en_FSM = '1' then - STATE_NEXT <= SEND_BYTE_A; - byte_2_send <= sfp_address_i(7 downto 0); - en_bit_cnt <= '1'; - elsif bit_read = '0' and bit_cnt = "010010" and en_FSM = '1' then - STATE_NEXT <= START_A; - en_bit_cnt <= '1'; - elsif bit_read = '0' and bit_cnt = "011100" and en_FSM = '1' then - STATE_NEXT <= READ_BYTE_A; - en_bit_cnt <= '1'; - elsif bit_read = '1' and en_FSM = '1' then - STATE_NEXT <= STOP_A; - en_bit_cnt <= '1'; - elsif en_FSM = '0' then - STATE_NEXT <= STATE_CURRENT; - else - STATE_NEXT <= IDLE; - end if; - debug_signal <= x"0000001d"; ---OTHERS - when others => - scl_int <= '1'; - sda_int <= '1'; - byte_2_send <= x"00"; - STATE_NEXT <= IDLE; - debug_signal <= x"0000001e"; - - end case; -end process State_Decoder; -------------------------------------------------------------------------------- - -end behavioral; diff --git a/oldfiles/sram_is61.vhd b/oldfiles/sram_is61.vhd deleted file mode 100644 index e9a3018..0000000 --- a/oldfiles/sram_is61.vhd +++ /dev/null @@ -1,169 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library work; -use work.trb_net_std.all; - -entity sram_is61 is - port( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - RAM_CLK : out std_logic; - RAM_DATA : inout std_logic_vector(17 downto 0); - RAM_ADDR : out std_logic_vector(19 downto 0); - RAM_ADVN : out std_logic; - RAM_ADSCN : out std_logic; - RAM_ADSPN : out std_logic; - RAM_GWN : out std_logic; - RAM_CEN : out std_logic; - RAM_OEN : out std_logic; - - INT_DATA_IN : in std_logic_vector(17 downto 0); - INT_ADDR_IN : in std_logic_vector(19 downto 0); - INT_DATA_OUT : out std_logic_vector(17 downto 0); - INT_WRITE_EN : in std_logic; - INT_BURST_WRITE_EN : in std_logic; - INT_READ_EN : in std_logic; - INT_BURST_READ_EN : in std_logic; - INT_BUSY_OUT : out std_logic; - INT_VALID_OUT : out std_logic; - - STAT_DEBUG : out std_logic_vector(31 downto 0); - ); -end entity; - --- write_en is always followed by two or more clock cycles busy time --- up to four burst_write might come in subsequent clock cycles, then several cycles busy followe --- if burst_write goes low after the first, 2nd or 3rd clock cycle, the burst cycle is finished. --- start of a burst cycle is always with lower two address bits = 0. --- address is read only once during burst cycle - --- pulse on read_en will give one data word from ram, thus one valid --- pulse on burst_read_en will read four words from ram, thus four consecutive valids --- user must be able to read offered data, no waitstates are possible - --- after falling edge of busy signal the next access can be started immediately - - - -architecture sram_is61_arch of sram_is61 is - -component ddr_off - port (Clk: in std_logic; Data: in std_logic_vector(1 downto 0); - Q: out std_logic_vector(0 downto 0)); -end component; - - - - type state_t is (IDLE, ); - signal current_state : state_t; - signal next_state : state_t; - - signal next_oe : std_logic; -- output enable - signal next_ce : std_logic; -- chip enable - signal next_gw : std_logic; -- write enable - signal next_adsp : std_logic; -- address register enable - signal next_adsc : std_logic; -- address register enable - signal next_adv : std_logic; -- address advance - - signal reg_oen : std_logic; - signal reg_cen : std_logic; - signal reg_gwn : std_logic; - signal reg_adspn : std_logic; - signal reg_adscn : std_logic; - signal reg_advn : std_logic; - signal ram_clock : std_logic; - signal next_ram_data : std_logic_vector(17 downto 0); - signal reg_ram_data : std_logic_vector(17 downto 0); - signal reg_ram_data_in : std_logic_vector(17 dowtno 0); - - signal last_oe : std_logic; - signal current_oe : std_logic; - -begin - -RAM_CEN <= reg_cen; -RAM_OEN <= reg_oen; -RAM_GWN <= reg_gwn; -RAM_ADSPN <= reg_adspn; -RAM_ADSCN <= reg_adscn; -RAM_ADVN <= reg_advn; -RAM_CLK <= ram_clock; - - THE_RAM_CLOCK : ddr_off - port map ( - Clk => CLK, - Data(1 downto 0) => "01", - Q(0) => ram_clock - ); - - - THE_DATA_OUTPUT_PROC : process(last_oe, reg_ram_data) - begin - if last_oe = '1' then - RAM_DATA <= (others => 'Z'); - else - RAM_DATA <= reg_ram_data; - end if; - end process; - - - THE_DATA_INPUT_SYNC : process(CLK) - begin - if rising_edge(CLK) then - reg_ram_data_in <= RAM_DATA; - end if; - end process; - - - THE_OUTPUT_SYNC : process(CLK) - begin - if rising_edge(CLK) then - reg_oen <= not next_oe; - reg_cen <= not next_ce; - reg_gwn <= not next_gw; - reg_adspn <= not next_adsp; - reg_adscn <= not next_adsc; - reg_advn <= not next_adv; - end if; - end process; - - - - THE_FSM_SYNC : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - current_state <= IDLE; - else - current_state <= next_state; - current_oe <= next_oe; - last_oe <= current_oe; - end if; - end if; - end process; - - THE_MAIN_FSM : process(current_state) - begin - next_state <= current_state; - next_oe <= '0'; - next_ce <= not RESET; - next_gw <= '0'; - next_adsp <= '0'; - next_adsc <= '0'; - next_adv <= '0'; - next_ram_data <= reg_ram_data; - - case current_state is - when IDLE => - end case; - end process; - - - - - -end architecture; \ No newline at end of file diff --git a/oldfiles/timing/api_timing.tex b/oldfiles/timing/api_timing.tex deleted file mode 100644 index a058277..0000000 --- a/oldfiles/timing/api_timing.tex +++ /dev/null @@ -1,210 +0,0 @@ -\documentstyle[german,timing,12pt,a4wide]{article} -\pagestyle{empty} -\begin{document} - -\begin{timing}[2s]{4cm} -\tin{1}{FIFO\_FULL\_OUT} -\tin{2}{DATA\_IN} -\tin{3}{WRITE\_IN} -\tin{4}{SEND\_IN} -\tin{5}{RUN\_OUT} -\til{1}{ -%..xxx...xxx...xxx...xxx... -LLLLLLLLLHHHHHHHHHLLLLLLLLL} -\til{2}{ -ZZZVVVXVVXVVVVVVVVVVVVVVXVV} -\tnote{2}{3.7}{D1} -\tnote{2}{6.7}{D2} -\tnote{2}{9.7}{D3} -\tnote{2}{24.7}{D3} -\til{3}{ -LLLHHHHHHHHHLLLLLLLLLHHHHHH} -\til{4}{ -LLLLLLLLLLLLHHHHHHHHHHHHHHH} -\til{5}{ -LLLLLLLLLLLLLLLHHHHHHHHHHHH} -%\tnote{2}{3}{Adressen}\tnote{2}{11}{Status} -%\tnote{2}{36}{Adressen}\tnote{2}{44}{Status} -\sline{0.5}{0}{5} -\sline{0.5}{3}{5} -\sline{0.5}{6}{5} -\sline{0.5}{9}{5} -\sline{0.5}{12}{5} -\sline{0.5}{15}{5} -\sline{0.5}{18}{5} -\sline{0.5}{21}{5} -\sline{0.5}{24}{5} -\sline{0.5}{27}{5} -\end{timing} - -%Early pre-fill and the starting phase of the channel master. This also shows -%the behaviour of a released transfer: During the FIFO\_FULL the master -%releases the writing, and after the FIFO\_FULL is pulled down it takes 2 clock -%cycles after the new data word can be written - -\newpage - -\begin{timing}[2s]{4cm} -\tin{1}{FIFO\_FULL\_OUT} -\tin{2}{DATA\_IN} -\tin{3}{WRITE\_IN} -\til{1}{ -%..xxx...xxx...xxx...xxx... -LLLLLLLLLHHHHHHHHHLLLLLLLLLHHHLLLLLL} -\til{2}{ -ZZZVVVXVVXVVVVVVVVVVVXVVXVVXVVVVVXVV} -\tnote{2}{3.7}{D1} -\tnote{2}{6.7}{D2} -\tnote{2}{9.7}{D3} -\tnote{2}{21.7}{D3} -\tnote{2}{24.7}{D4} -\tnote{2}{27.7}{D5} -\tnote{2}{33.7}{D6} -\til{3}{ -LLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH} -\sline{0.5}{0}{3} -\sline{0.5}{3}{3} -\sline{0.5}{6}{3} -\sline{0.5}{9}{3} -\sline{0.5}{12}{3} -\sline{0.5}{15}{3} -\sline{0.5}{18}{3} -\sline{0.5}{21}{3} -\sline{0.5}{24}{3} -\sline{0.5}{27}{3} -\sline{0.5}{30}{3} -\sline{0.5}{33}{3} -\sline{0.5}{36}{3} -\end{timing} - -%The running channel: Continous transfer if data words are always in the -%pipeline. Care has to be taken if no new data word can be provided, then -%WRITE\_IN has to be pulled down after the last valid word. - - -\newpage - - - -\begin{timing}[2s]{4cm} -\tin{1}{FIFO\_FULL\_OUT} -\tin{2}{DATA\_IN} -\tin{3}{WRITE\_IN} -\tin{4}{SEND\_IN} -\tin{5}{RUN\_OUT} -\til{1}{ -%..xxx...xxx...xxx...xxx... -LLLLLLLLLLLLLLLLLLLLLLLLLLL} -\til{2}{ -VVVXVVXVVXVVXVVUUUUUUUUUUUU} -\tnote{2}{0.7}{D1} -\tnote{2}{3.7}{D2} -\tnote{2}{6.7}{D3} -\tnote{2}{9.7}{D4} -\til{3}{ -HHHHHHHHHHHHHHHFFFFFFFFFFFF} -\til{4}{ -HHHHHHHHHHHHHHHLLLLLLLLLLLL} -\til{5}{ -HHHHHHHHHHHHHHHHHHHHHHHHHHH} -%\tnote{2}{3}{Adressen}\tnote{2}{11}{Status} -%\tnote{2}{36}{Adressen}\tnote{2}{44}{Status} -\sline{0.5}{0}{5} -\sline{0.5}{3}{5} -\sline{0.5}{6}{5} -\sline{0.5}{9}{5} -\sline{0.5}{12}{5} -\sline{0.5}{15}{5} -\sline{0.5}{18}{5} -\sline{0.5}{21}{5} -\sline{0.5}{24}{5} -\sline{0.5}{27}{5} -\end{timing} - -%The last words. SEND\_IN is released, -%RUN\_OUT will stay high. During this stage, all writes are ignored. -%Now it is time to wait for the answer! - -\newpage - - - -\begin{timing}[2s]{4cm} -\tin{1}{DATAREADY\_OUT} -\tin{2}{DATA\_OUT} -\tin{3}{READ\_IN} -\tin{4}{TYP\_OUT} -\til{1}{ -%..xxx...xxx...xxx...xxx... -LLLHHHHHHHHHLLLLLLHHHHHHHHH} -\til{2}{ -UUUXVVVVVXVVUUUUUUXVVVVVXVV} -\tnote{2}{3.7}{D1} -\tnote{2}{9.7}{D2} -\tnote{2}{18.7}{D3} -\tnote{2}{24.7}{D4} -\til{3}{ -LLLLLLHHHHHHHHHLLLLLLHHHHHH} -\til{4}{ -UUUVVVVVVVVVUUUUUUVVVVVVVVV} -\tnote{4}{3.7}{DAT or HDR} -\tnote{4}{18.7}{DAT or HDR} -%\tnote{2}{3}{Adressen}\tnote{2}{11}{Status} -%\tnote{2}{36}{Adressen}\tnote{2}{44}{Status} -\sline{0.5}{0}{4} -\sline{0.5}{3}{4} -\sline{0.5}{6}{4} -\sline{0.5}{9}{4} -\sline{0.5}{12}{4} -\sline{0.5}{15}{4} -\sline{0.5}{18}{4} -\sline{0.5}{21}{4} -\sline{0.5}{24}{4} -\sline{0.5}{27}{4} -\end{timing} - -%A typical read cycle after the answer arrives from the slaves. -%Same is true like for the writing: READ\_IN may stay high to save -%1 clock cycle. But the target must be able to read the offered word, otherwise -%it is lost. - -\newpage - - - -\begin{timing}[2s]{4cm} -\tin{1}{DATAREADY\_OUT} -\tin{2}{DATA\_OUT} -\tin{3}{READ\_IN} -\tin{4}{TYP\_OUT} -\tin{5}{RUN\_OUT} -\til{1}{ -%..xxx...xxx...xxx...xxx... -LLLHHHHHHLLLLLLLLL} -\til{2}{ -UUUXVVVVVUUUUUUUUU} -\tnote{2}{3.7}{TRM} -\til{3}{ -LLLLLLHHHLLLLLLLLL} -\til{4}{ -UUUVVVVVVUUUUUUUUU} -\tnote{4}{3.7}{TRM} -\til{5}{ -HHHHHHHHHFFFFFFLLL} -%\tnote{2}{3}{Adressen}\tnote{2}{11}{Status} -%\tnote{2}{36}{Adressen}\tnote{2}{44}{Status} -\sline{0.5}{0}{5} -\sline{0.5}{3}{5} -\sline{0.5}{6}{5} -\sline{0.5}{9}{5} -\sline{0.5}{12}{5} -\sline{0.5}{15}{5} -\sline{0.5}{18}{5} - -\end{timing} - -%The end of the story: The TRM word. After this has been read, the -%RUN\_OUT will be released and a new transfer may by initialized. - -\end{document} - diff --git a/oldfiles/timing/timing.mf b/oldfiles/timing/timing.mf deleted file mode 100644 index 2aef4c8..0000000 --- a/oldfiles/timing/timing.mf +++ /dev/null @@ -1,492 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% TIMING.MF -% -% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler -% Schaltungen. -% Hauptdatei fr alle Zeichens„tze -% -% Ludwig May, Dezember 1991 -% Jens Leilich, Žnderungen im Mai 1994 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -define_pixels(p_size,p3_size); -%define_good_x_pixels(c_width); -%define_good_y_pixels(c_height); -define_whole_pixels(c_width,c_height,p2_size); -if not odd c_width: c_width:=c_width-1; fi - -font_x_height c_height#; -font_quad c_width#; - -pen pinsel; -pinsel=(pencircle xscaled (0.8*p_size) yscaled p_size); - - -beginchar("H",c_width#,c_height#,bt#); "High Level"; - -pickup pinsel; -draw (-c_width,c_height)--(0,c_height); -showit; -endchar; - - -beginchar("L",c_width#,c_height#,bt#); "Low Level"; - -pickup pinsel; -draw (-c_width,0)--(0,0); -showit; -endchar; - -%1/12->xs#/12, damit Steigung von HL und LH wie UV (JL,8.1.94) -beginchar(0,2*c_width#,c_height#,bt#); "High-Low"; - -pickup pinsel; -draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); -showit; -endchar; - -beginchar(1,2*c_width#,c_height#,bt#); "Low-High"; - -pickup pinsel; -draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); -showit; -endchar; - -beginchar(12,2*c_width#,c_height#,bt#); "Change Bus"; - -pickup pinsel; -draw (-c_width,0)--(-xs#/12*c_width,0); -draw (-c_width,c_height)--(-xs#/12*c_width,c_height); -draw (xs#/12*c_width,0)--(c_width,0); -draw (xs#/12*c_width,c_height)--(c_width,c_height); -draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height); -draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0); -showit; -endchar; - -beginchar("V",c_width#,c_height#,bt#); "Valid Bus"; - -pickup pinsel; -draw (-c_width,0)--(0,0); -draw (-c_width,c_height)--(0,c_height); -showit; -endchar; - -beginchar("Z",c_width#,c_height#,bt#); "Tristate Bus"; - -pickup pinsel; -draw (-c_width,c_height/2)--(0,c_height/2); -showit; -endchar; - -beginchar(2,2*c_width#,c_height#,bt#); "Tristate -> Valid Bus"; - -pickup pinsel; -draw (-c_width,c_height/2)--(0/12*c_width,c_height/2); -draw (0/12*c_width,c_height/2)--(xs#/12*c_width,c_height)--(c_width,c_height); -draw (0/12*c_width,c_height/2)--(xs#/12*c_width,0)--(c_width,0); -showit; -endchar; - -beginchar(3,2*c_width#,c_height#,bt#); "Valid -> Tristate Bus"; - -pickup pinsel; -draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(0/12*c_width,c_height/2); -draw (-c_width,0)--(-xs#/12*c_width,0)--(0/12*c_width,c_height/2); -draw (0/12*c_width,c_height/2)--(c_width,c_height/2); -showit; -endchar; - - -beginchar("U",c_width#,c_height#,bt#); "Invalid Bus"; - -pickup pinsel; -draw (-c_width,0)--(0,0); -draw (-c_width,c_height)--(0,c_height); - -pickup pencircle scaled p3_size; -draw (-c_width,5/6*c_height)--(-c_width/2,c_height); -draw (-c_width,c_height/2)--(0,5/6*c_height); -draw (-c_width,1/6*c_height)--(0,c_height/2); -draw (-c_width/2,0)--(0,1/6*c_height); -showit; -endchar; - - -beginchar(4,2*c_width#,c_height#,bt#); "Tristate -> Invalid Bus"; - -y1=s_f#*2/3*(x1+c_width)+1/2*c_height; -x1=y1*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 1. Linie -%y1=s_f#* 12/xs#*(x1+c_width)-(6/xs#-0.5)*c_height;% Startpunkt der 1. Linie -y2=s_f#*2/3*(x2+c_width)+1/6*c_height; -x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie -%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% Startpunkt der 2. Linie -y3=s_f#*2/3*(x3+c_width)-1/6*c_height; -x3=y3*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 3. Linie -%y3=s_f#*-12/xs#*(x3+c_width)+(6/xs#+0.5)*c_height;% Startpunkt der 3. Linie - -pickup pinsel; -draw (-c_width,c_height/2)--(0/12*c_width,c_height/2); -draw (0/12*c_width,c_height/2)--(xs#/12*c_width,c_height)--(c_width,c_height); -draw (0/12*c_width,c_height/2)--(xs#/12*c_width,0)--(c_width,0); - -pickup pencircle scaled p3_size; -draw z1--(1/2*c_width,c_height); -draw z2--(c_width,5/6*c_height); -draw z3--(c_width,c_height/2); -draw (1/2*c_width,0)--(c_width,1/6*c_height); -showit; -endchar; - -beginchar(5,2*c_width#,c_height#,bt#); "Invalid -> Tristate Bus"; - -y1=s_f#*2/3*(x1+c_width)+1/2*c_height ; -x1=y1*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 1. Linie -%y1=s_f#*-12/xs#*(x1+c_width)+(6/xs#+0.5)*c_height; % Startpunkt der 1. Linie -y2=s_f#*2/3*(x2+c_width)+1/6*c_height ; -x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie -%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height; % Startpunkt der 2. Linie -y3=s_f#*2/3*(x3+c_width)-1/6*c_height ; -x3=y3*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 3. Linie -%y3=s_f#* 12/xs#*(x3+c_width)-(6/xs#-0.5)*c_height; % Startpunkt der 3. Linie - -pickup pinsel; -draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(0/12*c_width,c_height/2); -draw (-c_width,0)--(-xs#/12*c_width,0)--(0/12*c_width,c_height/2); -draw (0/12*c_width,c_height/2)--(c_width,c_height/2); - -pickup pencircle scaled p3_size; -draw (-c_width,5/6*c_height)--(-c_width/2,c_height); -draw (-c_width,c_height/2)--z1; -draw (-c_width,1/6*c_height)--z2; -draw (-c_width/2,0)--z3; -showit; -endchar; - - -beginchar(6,2*c_width#,c_height#,bt#); "Valid -> Invalid Bus"; - -y1=s_f#*2/3*(x1+c_width)+1/2*c_height; -x1=y1*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 1. Linie -%y1=s_f#* 12/xs#*(x1+c_width)-(6/xs#-0.5)*c_height;% 1. Linie -y2=s_f#*2/3*(x2+c_width)+1/6*c_height; -x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie -%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% 2. Linie -y3=s_f#*2/3*(x3+c_width)-1/6*c_height; -x3=y3*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 3. Linie -%y3=s_f#*-12/xs#*(x3+c_width)+(6/xs#+0.5)*c_height;% 3. Linie - -pickup pinsel; -draw (-c_width,0)--(-xs#/12*c_width,0); -draw (-c_width,c_height)--(-xs#/12*c_width,c_height); -draw (xs#/12*c_width,0)--(c_width,0); -draw (xs#/12*c_width,c_height)--(c_width,c_height); -draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height); -draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0); - -pickup pencircle scaled p3_size; -draw z1--(1/2*c_width,c_height); -draw z2--(c_width,5/6*c_height); -draw z3--(c_width,1/2*c_height); -draw (1/2*c_width,0)--(c_width,1/6*c_height); -showit; -endchar; - -beginchar(7,2*c_width#,c_height#,bt#); "Invalid -> Valid Bus"; - -y1=s_f#*2/3*(x1+c_width)+1/2*c_height; -x1=y1*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 1. Linie -%y1=s_f#*-12/xs#*(x1+c_width)+(6/xs#+0.5)*c_height;% 1. Linie -y2=s_f#*2/3*(x2+c_width)+1/6*c_height; -x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie -%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% 2. Linie -y3=s_f#*2/3*(x3+c_width)-1/6*c_height; -x3=y3*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 3. Linie -%y3=s_f#* 12/xs#*(x3+c_width)-(6/xs#-0.5)*c_height;% 3. Linie - -pickup pinsel; -draw (-c_width,0)--(-xs#/12*c_width,0); -draw (-c_width,c_height)--(-xs#/12*c_width,c_height); -draw (xs#/12*c_width,0)--(c_width,0); -draw (xs#/12*c_width,c_height)--(c_width,c_height); -draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height); -draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0); - -pickup pencircle scaled p3_size; -draw (-c_width,5/6*c_height)--(-1/2*c_width,c_height); -draw (-c_width,1/2*c_height)--z1; -draw (-c_width,1/6*c_height)--z2; -draw (-1/2*c_width,0)--z3; -showit; -endchar; - -beginchar("F",c_width#,c_height#,bt#); "Floating Line"; - -pickup pinsel; -draw (-c_width,0)--(0,0); -draw (-c_width,c_height)--(0,c_height); -showit; -endchar; - -%1/12->xs#/12, damit Steigung von FL und FH wie UV (JL,8.1.94) -beginchar(13,2*c_width#,c_height#,bt#); "Float-Low"; - -pickup pinsel; -draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0); -draw (-c_width,0)--(c_width,0); -showit; -endchar; - -beginchar(14,2*c_width#,c_height#,bt#); "Float-High"; - -pickup pinsel; -draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height); -draw (-c_width,c_height)--(c_width,c_height); -showit; -endchar; - -beginchar(15,2*c_width#,c_height#,bt#); "High-Float"; - -pickup pinsel; -draw (-c_width,c_height)--(c_width,c_height); -draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); -showit; -endchar; - -beginchar(16,2*c_width#,c_height#,bt#); "Low-Float"; - -pickup pinsel; -draw (-c_width,0)--(c_width,0); -draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); -showit; -endchar; - - -beginchar("-",c_width#/2,c_height#,bt#); "..."; - -pickup pencircle scaled p3_size; -draw (-c_width,-1/12*c_height)--(-c_width,13/12*c_height); -draw (-c_width/2-1,-1/12*c_height)--(-c_width/2-1,13/12*c_height); -showit; -endchar; - -beginchar("T",c_width#,1/6*c_height#,bt#); "TOP"; - -pickup pinsel; -draw (-c_width,1/12*c_height)--(-c_width,1/6*c_height)--(0,1/6*c_height); -showit; -endchar; - -beginchar("B",c_width#,1/6*c_height#,bt#); "BOTTOM"; - -pickup pinsel; -draw (-c_width,1/12*c_height)--(-c_width,0)--(0,0); -showit; -endchar; - -beginchar(8,3/2*c_width#,1/6*c_height#,bt#); "TOP-"; - -pickup pinsel; -draw (-c_width,1/12*c_height)--(-c_width,1/6*c_height)--(0,1/6*c_height); -pickup pencircle scaled p3_size; -draw (0+1,0)--(0+1,2/12*c_height); -draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); -showit; -endchar; - -beginchar(9,3/2*c_width#,1/6*c_height#,bt#); "BOTTOM-"; - -pickup pinsel; -draw (-c_width,1/12*c_height)--(-c_width,0)--(0,0); -pickup pencircle scaled p3_size; -draw (0+1,0)--(0+1,2/12*c_height); -draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); -showit; -endchar; - -beginchar(10,3/2*c_width#,1/6*c_height#,bt#); "top-"; - -pickup pinsel; -draw (-c_width,1/6*c_height)--(0,1/6*c_height); -pickup pencircle scaled p3_size; -draw (0+1,0)--(0+1,2/12*c_height); -draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); -showit; -endchar; - -beginchar(11,3/2*c_width#,1/6*c_height#,bt#); "bottom-"; - -pickup pinsel; -draw (-c_width,0)--(0,0); -pickup pencircle scaled p3_size; -draw (0+1,0)--(0+1,2/12*c_height); -draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); -showit; -endchar; - -beginchar("t",c_width#,1/6*c_height#,bt#); - -pickup pinsel; -draw (-c_width,1/6*c_height)--(0,1/6*c_height); -showit; -endchar; - -beginchar("b",c_width#,1/6*c_height#,bt#); - -pickup pinsel; -draw (-c_width,0)--(0,0); -showit; -endchar; - -%Pfeil von 1/2 nach 7/8 der Breite vergr”žert (JL,8.1.94) -beginchar("A",c_width#,3/12*c_height#,0); "Arrow left"; - -pickup pencircle scaled p_size; -draw (-1/8*c_width,1/12*c_height)--(0,1/12*c_height); -fill (-1/8*c_width,2/12*c_height)--(-c_width,1/12*c_height)--(-1/8*c_width,0)--cycle; -showit; -endchar; - -beginchar("P",c_width#,3/12*c_height#,0); "Arrow right"; - -pickup pencircle scaled p_size; -draw (-c_width,1/12*c_height)--(-1/8*c_width,1/12*c_height); -fill (-7/8*c_width,2/12*c_height)--(0,1/12*c_height)--(-7/8*c_width,0)--cycle; -showit; -endchar; - -beginchar("a",c_width#,3/12*c_height#,0); "Arrow line"; - -pickup pencircle scaled p_size; -draw (-c_width,1/12*c_height)--(0,1/12*c_height); -showit; -endchar; - - -%dasselbe wie "U" -beginchar("X",c_width#,c_height#,bt#); "Unknown"; -pickup pinsel; -draw (-c_width,0)--(0,0); -draw (-c_width,c_height)--(0,c_height); - -pickup pencircle scaled p3_size; -draw (-c_width,5/6*c_height)--(-c_width/2,c_height); -draw (-c_width,c_height/2)--(0,5/6*c_height); -draw (-c_width,1/6*c_height)--(0,c_height/2); -draw (-c_width/2,0)--(0,1/6*c_height); -showit; -endchar; - -%Leerzeichen mit Punkten, damit nachtr„glich gezeichnet werden kann -%(JL,8.1.94) - -beginchar(".",c_width#,c_height#,bt#); "Leer"; -pickup pinsel; -fill (-c_width,0)--(-c_width+p2_size,0)-- - (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; -fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- - (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; -showit; -endchar; - -beginchar("h",c_width#,c_height#,bt#); "High Level"; -pickup pinsel; -draw (-c_width,c_height)--(0,c_height); -fill (-c_width,0)--(-c_width+p2_size,0)-- - (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; -showit; -endchar; - - -beginchar("l",c_width#,c_height#,bt#); "Low Level"; -pickup pinsel; -draw (-c_width,0)--(0,0); -fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- - (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; -showit; -endchar; - -beginchar(20,2*c_width#,c_height#,bt#); "High-Low"; -pickup pinsel; -draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); -fill (-c_width,0)--(-c_width+p2_size,0)-- - (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; -fill (0,c_height)--(p2_size,c_height)-- - (p2_size,c_height-p2_size)--(0,c_height-p2_size)--cycle; -showit; -endchar; - -beginchar(21,2*c_width#,c_height#,bt#); "Low-High"; -pickup pinsel; -draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); -fill (0,0)--(p2_size,0)-- - (p2_size,p2_size)--(0,p2_size)--cycle; -fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- - (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; -showit; -endchar; - -beginchar("f",c_width#,c_height#,bt#); "Floating Line"; -pickup pinsel; -draw (-c_width,0)--(0,0); -draw (-c_width,c_height)--(0,c_height); -showit; -endchar; - -beginchar(33,2*c_width#,c_height#,bt#); "Float-Low"; -pickup pinsel; -draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0); -draw (-c_width,0)--(c_width,0); -fill (0,c_height)--(p2_size,c_height)-- - (p2_size,c_height-p2_size)--(0,c_height-p2_size)--cycle; -showit; -endchar; - -beginchar(34,2*c_width#,c_height#,bt#); "Float-High"; -pickup pinsel; -draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height); -draw (-c_width,c_height)--(c_width,c_height); -fill (0,0)--(p2_size,0)-- - (p2_size,p2_size)--(0,p2_size)--cycle; -showit; -endchar; - -beginchar(35,2*c_width#,c_height#,bt#); "High-Float"; -pickup pinsel; -draw (-c_width,c_height)--(c_width,c_height); -draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); -fill (-c_width,0)--(-c_width+p2_size,0)-- - (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; -showit; -endchar; - -beginchar(36,2*c_width#,c_height#,bt#); "Low-Float"; -pickup pinsel; -draw (-c_width,0)--(c_width,0); -draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); -fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- - (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; -showit; -endchar; - - -% HX,LX,XH,XL und dasselbe mit U statt X sind eigtl. Pfusch -% vielleicht mal Zeichen fr machen... (JL) -ligtable "H":"L"=:0, "F"=:15, "V"=:15, "X"=:15; -ligtable "L":"H"=:1, "F"=:16, "V"=:16, "X"=:16; -ligtable "F":"L"=:13,"H"=:14; -ligtable "h":"l"=:20,"f"=:35; % Version mit Punkten zum Zeichnen (JL, 4.2.94) -ligtable "l":"h"=:21,"f"=:36; -ligtable "f":"l"=:33,"h"=:34; -ligtable "Z":"V"=:2, "U"=:4; -ligtable "V":"Z"=:3, "U"=:6, "X"=:12, "L"=:13, "H"=:14; -ligtable "U":"Z"=:5, "V"=:7, "X"=:7, "L"=:13, "H"=:14; % UX=:7 [UV] (JL, 8.1.94) -ligtable "X":"V"=:12,"U"=:6, "L"=:13, "H"=:14; % XU=:6 [VU] (JL, 8.1.94) -ligtable "T":"-"=:8; -ligtable "B":"-"=:9; -ligtable "t":"-"=:10; -ligtable "b":"-"=:11; - -end; - diff --git a/oldfiles/timing/timing.sty b/oldfiles/timing/timing.sty deleted file mode 100644 index 0bb8abd..0000000 --- a/oldfiles/timing/timing.sty +++ /dev/null @@ -1,309 +0,0 @@ -% timing.sty: Ludwig May/Jens Leilich 10.12.91 -% -% Dieses Style-File erleichtert den Umgang mit dem Timing-Font. -% -% Es stellt Kommandos zur Positionierung von einzelnen Elementen -% eines Timing-Diagramms in einer picture-Umgebung zur Verfuegung. -% -% -% Folgende Kommandos sind verfuegbar: -% -% Erweiterte picture-Umgebung -% \begin{timing}[Zeichensatz]{Randgroesse} -% \end{timing} -% Zeichensatz ist 1,2,1s,2s. Die Zahl gibt die Breite an, -% s bedeutet schr„ge Flanken. 2 ist default. -% -% Zeile mit Timingdiagramm -% \til{y-pos}{Zeichenkette} -% -% Label fuer Zeile -% \tin{y-pos}{Zeichenkette} -% -% Bemerkung -% \tnote{y-pos}{x-pos}{Zeichenkette} -% -% Pfeil nach rechts zeigend -% \rarw{y-pos}{x-pos}{laenge}{Zeichenkette} -% -% Pfeil nach links zeigend -% \larw{y-pos}{x-pos}{laenge}{Zeichenkette} -% -% Senkrechte Linie -% \sline{y1-pos}{x-pos}{y2-pos} -% -% Zeitmarken als Argument fuer \til -% \timingcounter{Markenabstand}{Startwert}{Endwert}{Intervall} -% Zeitmarken als Argument fuer \til nach Unterbrechung -% \conttimingcounter{Markenabstand}{Startwert}{Endwert}{Intervall} -% -% -% Abstandsfaktor fuer einzelne Zeilen -% \timescalefactor -% -% Evtl. n”tige Anpassung fuer Ausrichtung senkrechter Linien -% \timadjust -% -% -% Dieses Style-File und der dazugehoerige Zeichensatz wurde erstellt, -% um moeglichst einfach ein paar Timingdiagramme in meine Studienarbeit -% integrieren zu koennen. Da es in der vorliegenden Form meine -% Erwartungen vollstaendig erfuellt hat, haben ich aus Zeitgruenden keine -% grosse Ueberarbeitung durchgefuehrt. Vielleicht kann das jemand uebernehmen, -% der von der ganzen Materie mehr Ahnung hat. Ein Problem ist z.B. die -% ungenaue horizontale Ausrichtung der senkrechten Linien (ist irgendwie -% Druckertreiber abhaengig, evtl. MAX_DRIFT des Treibers auf 0 setzen). -% Da aber grosses Interesse an dem Style besteht, haben ich ihn mal in -% Umlauf gegeben. Wenn jemand Verbesserungen durchfuehrt, waeren ich an -% einer Rueckmeldung an folgende Adresse dankbar: -% -% Ludwig May -% Friedrichstrasse 23b -% 6100 Darmstadt -% -% Bitte keine Fragen stellen, ich habe fuer eine weitere Unterstuetzung -% weder Zeit noch ausreichend Gelegenheit. -% -% Ludwig May -% -% Ich habe Font und Style weiterentwickelt zu Lehrzwecken, da ich -% Elektrotechnik an BBS unterrichte. -% Verbesserungsvorschl„ge und Lob ;-) k”nnen auch an mich gerichtet -% werden. -% Jens Leilich, C/O BBS Technik I, Franz-Zang-Str. 3--7, 67059 Ludwigshafen -% Jens_Leilich @ lu.maus.de -% -\typeout{Timing Style, Ludwig May Jens Leilich .} -% -% -% Alle benoetigten Counter, Dimensionen und Boxen definieren -% -% -\newfont{\timon}{timing1 scaled 1000} -\newfont{\timtw}{timing2 scaled 1000} -\newfont{\timons}{timing1s scaled 1000} -\newfont{\timtws}{timing2s scaled 1000} -\newfont{\timbs}{cmr5 scaled 1000} -\newcount\counttime -\newdimen\timetmpdim -\newdimen\timehdrdim -\newcount\timetmpcnt -\newcount\timearwcnt -\newdimen\timeskipdim -\newdimen\timewidthdim -\newbox\timebox -\def\timescalefactor{2} -\def\timadjust{0.0pt} -% -% -% Neue Umgebung definieren -% -% -\def\timing{\@ifnextchar [{\@@timing}{\@@timing[2]}} - -\def\@@timing[#1]#2% -{ -\expandafter\def\csname tim@@1\endcsname{\let\tim\timon} -\expandafter\def\csname tim@@2\endcsname{\let\tim\timtw} -\expandafter\def\csname tim@@1s\endcsname{\let\tim\timons} -\expandafter\def\csname tim@@2s\endcsname{\let\tim\timtws} -\def\tim{% - \typeout{Timing font `#1' not defined, assumed 2. Use 1,2,1s,2s only!} - \timtw \let\tim\timtw} -\csname tim@@#1\endcsname -\tim -\timehdrdim=#2 -\advance\timehdrdim by 1em -% -% -% Lokale Befehle definieren -% -% -% -% Hilfroutine zum Zeichen von Pfeilen variabler Laenge -% -% -\newcommand{\timatail}[1]{ \mbox{ \tim - \counttime=2 - \ifnum##1>1 - \loop - a% - \ifnum\counttime<##1 \advance\counttime by 1 - \repeat - \fi -}} -% -% -% Hilfroutine zum Zeichen der Zeitmarkierung -% -% -\newcommand{\lb}[2]{{\tim\makebox[##1em][c]{\timbs##2}}} -% -% -% \timingcounter -% -% -\newcommand{\timingcounter}[4]{ \mbox{ \tim - \counttime=##1\divide\counttime by -2 - \hskip\counttime em - \hskip -1em - \counttime=##2 - \loop - \lb{##1}{\number\counttime} - \ifnum\counttime<##3 \advance\counttime by ##4 - \repeat -}} -% -% -% \conttimingcounter -% -% -\newcommand{\conttimingcounter}[4]{ \mbox{ \tim - \hskip 0.5em - \counttime=##2 - \loop - \lb{##1}{\number\counttime} - \ifnum\counttime<##3 \advance\counttime by ##4 - \repeat -}} -% -% -% \til -% -% -\newcommand{\til}[2]{ -\tim -\timetmpdim=##1ex -\timetmpdim=\timescalefactor\timetmpdim -% -% Maximale y-Groesse festhalten -% -\ifdim\timetmpdim>\timeskipdim - \global\timeskipdim=\timetmpdim -\fi -\timetmpcnt=\timetmpdim -\timetmpdim=\timehdrdim -\advance\timetmpdim by -\timadjust -\timearwcnt=\timetmpdim -\setbox\timebox=\hbox{##2} -% -% Maximale x-Groesse festhalten -% -\ifdim\wd\timebox>\timewidthdim - \global\timewidthdim=\wd\timebox -\fi -\put(\timearwcnt,-\timetmpcnt){\tim\makebox(0,0)[l]{\box\timebox}} -%\put(\timearwcnt,-\timetmpcnt){\tim\makebox(0,0)[l]{##2}} -} -% -% -% \tin -% -% -\newcommand{\tin}[2]{ -\tim -\timetmpdim=##1ex -\timetmpdim=\timescalefactor\timetmpdim -\timetmpcnt=\timetmpdim -\put(0,-\timetmpcnt){\makebox(0,0)[lb]{\rm##2}} -} -% -% -% \tnote -% -% -\newcommand{\tnote}[3]{ -\tim -\timetmpdim=##1ex -\advance\timetmpdim by -0.3pt -\timetmpdim=\timescalefactor\timetmpdim -\timetmpcnt=\timetmpdim -\timetmpdim=##2em -\advance\timetmpdim by \timehdrdim -\advance\timetmpdim by -1em -\timearwcnt=\timetmpdim -\put(\timearwcnt,-\timetmpcnt){\tim\makebox(0,0)[l]{\scriptsize\sf##3}} -} -% -% -% \larw -% -% -\newcommand{\larw}[4]{ -\tim -\timetmpdim=##1ex -\timetmpdim=\timescalefactor\timetmpdim -\timetmpcnt=\timetmpdim -\timetmpdim=##2em -\advance\timetmpdim by \timehdrdim -\timearwcnt=\timetmpdim -\put(\timearwcnt,-\timetmpcnt)% - {\makebox(0,0)[l]{\tiny\vbox{\tim\hbox{\hskip-1em\hbox to ##3em{\hss\timbs\strut##4\hfil}}\nointerlineskip\vskip-4pt\hbox{A\timatail{##3}}}}} -} -% -% -% \rarw -% -% -\newcommand{\rarw}[4]{ -\tim -\timetmpdim=##1ex -\timetmpdim=\timescalefactor\timetmpdim -\timetmpcnt=\timetmpdim -\timetmpdim=##2em -\advance\timetmpdim by \timehdrdim -\timearwcnt=\timetmpdim -\put(\timearwcnt,-\timetmpcnt)% - {\makebox(0,0)[l]{\tiny\vbox{\tim\hbox{\hskip-1em\hbox to ##3em{\hfil\timbs\strut##4\hss}}\nointerlineskip\vskip-4pt\hbox{\timatail{##3}P}}}} -} -% -% -% \sline -% -% -\newcommand{\sline}[3]{ -\tim -\timetmpdim=##1ex -\timetmpdim=\timescalefactor\timetmpdim -\timetmpcnt=\timetmpdim -\timetmpdim=##2em -\advance\timetmpdim by \timehdrdim -\advance\timetmpdim by -1em -\timearwcnt=\timetmpdim -\timetmpdim=##3ex -\advance \timetmpdim by -##1ex -\advance \timetmpdim by 0.09ex -\timetmpdim=\timescalefactor\timetmpdim -\counttime=\timetmpdim -\put(\timearwcnt,-\timetmpcnt)% - {\line(0,-1){\counttime}} -} -% -% -% Weitere Initialisierung -% -% -\timeskipdim=0pt -\timewidthdim=0pt -\unitlength 1sp -\begin{picture}(0,0) -\linethickness{0.4pt} -}% -% -% -% Ende der Umgebung definieren -% -% -\def\endtiming{ -\global\advance\timeskipdim by 15pt -\end{picture} -% -% Da picture(0,0) definiert wurde, wird jetzt die wirkliche Groesse durch -% ein \rule freigehalten. -% -\timeskipdim=1.0\timeskipdim -\timewidthdim=1.0\timewidthdim -\advance\timewidthdim by \timehdrdim -\rule{\timewidthdim}{0pt} -\rule[-\timeskipdim]{0pt}{\timeskipdim} -} diff --git a/oldfiles/timing/timing1.mf b/oldfiles/timing/timing1.mf deleted file mode 100644 index 64b42dc..0000000 --- a/oldfiles/timing/timing1.mf +++ /dev/null @@ -1,29 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% TIMING1.MF -% -% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler -% Schaltungen. -% Datei fr Zeichensatz mit ca. 1mm Breite -% -% Ludwig May, Dezember 1991 -% Jens Leilich, Žnderungen im Mai 1994 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -mode_setup; - -font_size 10/300in#; -font_identifier:="TIMING1"; -font_coding_scheme:="UNSPECIFIED"; - -u#:=1/60in#; -c_width#:=5/2u#; -c_height#:=15u#; -p_size#:=u#/2; -p2_size#:=p_size#*2; -p3_size#:=p_size#/3; -s_f#:=c_height#/2/c_width#; -xs#:=0; % muss zwischen 0 und 6 liegen -bt#:=10; - -input timing - diff --git a/oldfiles/timing/timing1.pk b/oldfiles/timing/timing1.pk deleted file mode 100644 index b432d2a9108c2761b486e5111bfecce4409f9406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1284 zcmbVLO-$2J94{T9Tf43s8^}i4S`aa#AQ%N=6j%ZhrpQnfG(f;e1kou%OicXtK;l;> z@vd+&Cg3pfCQ?tn2!YN4YqDsTO-{x`i{e2vzLvFm(L@h@eed`Gz2E=+zrMCHd+P@M zO9B)cdp%>$^hSBMn#{{k-;TSa<3 z%r#y*7m629#f&d3)hxvGs1Al+lFZ|VP~h9voOmH++Ct?rU2o%?sVeQhpQg?W6**F1 zUb9QSFh2`UrD?Ie6`MoxOxBcDBwnA+c4zOtTozeb5-p1&vmlm*MUPAnyLoY7ev=#8 zUuE-&(LXc9`+}xmVGm@;8R|_}y`lDeY7bMo0AuT5%u6c~De#iHHot`;n640fdWmN4 zq^aYPO6TZb?G+9wFkP4l2o0&^jdrr!})RupzDsX|J} z2De=`vIazlq_tr_&!@1J~R2a+LSn9GP@+)~0nF$C$AP7h2h|p`QB6Y@qK->ZHE|o>qk-&)a`b$S__k zi==t6hKHs%2p~=>n)~D#F8fh?78v`JK*NV7-Oeb;vZ`5~2`?m0H|ok>?r47Aj&WS3 zO|?wbE+(3V*mm~r&P(Mpz}Ta`Q>mwgR*6Z80a$bkqk?Fz?&A7QAtO%(VV(Qji57QD Sl;bk;RW#|S9QMSQ)zzOPTfiCs diff --git a/oldfiles/timing/timing1.tfm b/oldfiles/timing/timing1.tfm deleted file mode 100644 index 7a75ba20d126f816f930cef6fdfafd4b35aeb995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmb`Fy-EW?6otQ;tVvvBvI#3TBKbpXEcOi~MM#l0OUMIA2$mL>Qwlzg4`J<#_za#| zX5$#dG%lPuKXdP$Ss321z!N7VQiiD5oi{se)Bo2IU{AtcmHJ8G`=i;ltSzH(EaQ@^+R+w(+ zOAqo+><_ihA6HpQgIwxbd>g8ADes?ypY1*?wbVMNM@i4E#S6WYIhlMWpRwfJE$H${ z?jD%1wiH@<6o`A2p@sMw1eC+c0n6Lir)4ntBha(@3e1zPu3=y?ow*PYDqD++5 zPUBCk=yVbUL6cNqNv!BD^ob?0il|5a{Xr_Qnbj6^B(^8;I|*A9PR0_xmx=&sYn#mE zbbA7?O4zPJ_Kr=gri+lxu4g=KlK?y~1+UI!a;5V*5~MU?@|&1wKBKcDrX}LF?FW+S z93GoVy4K4icoK&=5Tpb0*0v*?BeAU<{7qV1h0_wYIE={0t4BrcZjq$G1pB(sc~>Ed4 z7?ribq*BAQfum`yd0qj`dB81b_WLIJ)?W>kNJzrC8Y{U^^~lJA06GEuCQR2_}0c2U{8Y9HUXqHFd7B5-V@&S!H0aW zq#R?|H&Oe!7k)w!)G$at2JjF_@o;ZmXdTAwW1)#vW`o`kjUn-R(k8N& zB7kIdSz~b{_3BdB@VQl4cM##-UI}X}0(N~RHtxC^nurpj>@3wQdD@MlvqzJ#+U@24qn z@7s_2;JxwT&ckl8Vz3aW{C834(;@gZ|L-SugKoq@$^ukZ%=#-KT0YQYcH;`s^7rw} zqWMz6(Y4Z3^7@ik=PaJ`9e0ha)g(1na!oH*bNEu$8aBewzWToVrbL~qh?J6FH%&~2 z;LTZlq4~l!o7G%s`IVY0vS=PQHlnMgnk%l{l>^ae*Ex{~Mbv*Kvj!)*einpohfrk% i)jP1~bu$|cHEc|L{)H4v0KN#?EmvG*ZQRDwr~d#Fkwsnr diff --git a/oldfiles/timing/timing1s.tfm b/oldfiles/timing/timing1s.tfm deleted file mode 100644 index 7a75ba20d126f816f930cef6fdfafd4b35aeb995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmb`Fy-EW?6otQ;tVvvBvI#3TBKbpXEcOi~MM#l0OUMIA2$mL>Qwlzg4`J<#_za#| zX5$#dG%lPuKXdP$Ss321z!N7VQiiD5oi{se)Bo2IU{AtcmHJ8G`=i;ltSzH(EaQ@^+R+w(+ zOAqo+><_ihA6HpQgIwxbd>g8ADes?ypY1*?wbVMNM@i4E#S6WYIhlMWpRwfJE$H${ z?jD%1 z{#r(|a3$IJV;CSYxyHo4SWw>DYf;_{y;9mW(+chQXYH~1- zgc5Bb+U25lXLGFN<8u@0&yxw!A7ilEY>M z`>g}p*T41eq>X5`6Ad>AgM-lb6J-O0<|ZM(MMwsTtRZ}L7+)SyR|O<$jlwTgOSHaS z#Hw*_H^H>cLWHev8Ud$}yh%hcfs~FT+B-<)ZNxZ+G%(T=v+P?Hty>zyeEW{j7NQKZ z;++&~Gj`63+Pi#@mhN~x6|WS*LTvVa=gM8^^15E;GzruD+|j zy5RF32%YIWLc}6lRT?ZZS$(;r$QEfVx6YQk_qUGoiB|MuEj{jJZlL&Xg`CNyr7ROlZ?BSs5kNsxV z1GCLy?SOW1PD{UeAZ8|7f<((}*BsZZ7E1WZdX?!TB9(KoCi0uBvClpjVUJ0^f>R^$ tDbO6N4cCTKN9DzWjWQXlv6D4}2OwE}ej(=|zisb|wX3eMm_V&e9 zO~w22jb^sOe=R#uzrGp9{cLWUUW;Sf>m)XOZM@WHpqx|T*!$wMz-gQp$Kn3*4=*>} zP}kb=+p*q_b^oaJGVPbbwQyHDkjXix#!Jw*k6&dp*FL33LC-D4GyRh(sdOrxGNT=>{{jn;Ye$y_OabXrTfHCZAXP7iI};bAK#bb}em147$ITT%X+g z-23}IAN{@W^Jf|Q>Vc|LMe1xt-uCQMXRA)1t;)tr4rL#C+i>Q+Qx&Xxo1P=PwDyZ%L9#jq+P-7p8!zQ${ACG+!Ge++Bp#Ni;cMG1BTvms;mm7k8^w9<{=Q5QrCD&2(ELgUys`0F%IO3h`kG z%k6k&(t;8JI!!(^3!+Qd2?< zSe4W-=@>9-sfi2;sI5cCMJUjj(J=@GDjEd}7XlRB8pNX!cs1Of!o}Xg`M%xr{p2ic z?q(pM$$(B|qM*`*2D4C5Y(qyO2~f}&5V$bFbz|gW zH%88TFf!ngk}j_-k=m>bxD8Vw9DH3jxeL?^%|W3Y6f4cWecunJT(IyDB#wLJ{;AI6 z$GdRpTK%^n`AzM2;k68dcg6Uwc=U2VTmowq502whx@I~tUc zUz@C^PjB5E2VAYc^668f)XWX@K{|VHrj&__ZF8kf)>i(Z=&iajiw_3^VP7Agimf+< zfp31APTRPf-7ibc;)@4oKMPNZUN}B)Y)wmwc~geMqCLj~H$(z|E4}%-6?=^fGosCO zYI4LSO%7za7i8zxqq>8+YQZkcAHE#qu0yT%Gz&9hq zzFp(T&3oyrqUEny$psTN<$*v~32*<%_2C;Yj)ONXNxB&6hP#$?rBTYr*!bUX=}%Jf zBEi?IMF$%<^>Zw#??!VejEt}k&hKxx@ZXO)4&E!;aDUSBa(ev#W9RhY!I1RW%$k#$ zvX|enGv!QM`9fq~@7xlHdK?ZX;~+ln0_=2Mdt^(?n?EmaW`{QaokWMC!rq3&nOI>T z{wgFrn))_V&e9 zO~w22jb^sOe=R#uzrGp9{cLWUUW;Sf>m)XOZM@WHpqx|T*!$wMz-gQp$Kn3*4=*>} zP}kb=+p*q_b^oaJGVPbbwQyHDkjXix#!Jw*k6&dp*FL33LC-D4GyRh(sdOrxGN $1_$b.ps - ps2epsi $1_$b.ps $1_$b.eps - #convert -density 150x150 $1_$b.eps $1_$b.png - convert -density 75x75 $1_$b.eps $1_$b.png - rm $1_$b.ps $1_$b.eps -done - diff --git a/oldfiles/trb_net16_api_active.vhd b/oldfiles/trb_net16_api_active.vhd deleted file mode 100644 index afb8865..0000000 --- a/oldfiles/trb_net16_api_active.vhd +++ /dev/null @@ -1,219 +0,0 @@ --- connection between the TRBNET and any application --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetAPI - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - - -entity trb_net16_api_active is - - generic ( - FIFO_TO_INT_DEPTH : integer := std_FIFO_DEPTH; -- direction to medium - FIFO_TO_APL_DEPTH : integer := std_FIFO_DEPTH; -- direction to application - SBUF_VERSION : integer := std_SBUF_VERSION; - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "application to network" - APL_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_WRITE_IN : in std_logic; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT : out std_logic; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN : in std_logic; -- - APL_DTYPE_IN : in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN : in std_logic; -- Release sending of the data - APL_TARGET_ADDRESS_IN : in std_logic_vector (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "network to application" - APL_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_TYP_OUT : out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT : out std_logic; -- Data word is valid and might be read out - APL_READ_IN : in std_logic; -- Read data word - - -- APL Control port - APL_RUN_OUT : out std_logic; -- Data transfer is running - APL_MY_ADDRESS_IN : in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT : out std_logic_vector (7 downto 0); - - -- Internal direction port - -- the ports with master or slave in their name are to be mapped by the active api - -- to the init respectivly the reply path and vice versa in the passive api. - -- lets define: the "master" path is the path that I send data on. - INT_INIT_DATAREADY_OUT : out std_logic; - INT_INIT_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_INIT_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_INIT_READ_IN : in std_logic; - - INT_INIT_DATAREADY_IN : in std_logic; - INT_INIT_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_INIT_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_INIT_READ_OUT : out std_logic; - - - INT_REPLY_HEADER_IN : in std_logic; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT : out std_logic; - INT_REPLY_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_REPLY_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_IN : in std_logic; - - INT_REPLY_DATAREADY_IN : in std_logic; - INT_REPLY_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_REPLY_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_OUT : out std_logic; - - -- Status and control port - STAT_FIFO_TO_INT : out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL : out std_logic_vector(31 downto 0) - ); -end entity; - -architecture trb_net16_api_active_arch of trb_net16_api_active is - - component trb_net16_api_base is - generic ( - API_TYPE : integer := 1; -- type of api: 0 passive, 1 active - FIFO_TO_INT_DEPTH : integer := FIFO_TO_INT_DEPTH; - FIFO_TO_APL_DEPTH : integer := FIFO_TO_APL_DEPTH; - SBUF_VERSION : integer := std_SBUF_VERSION - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "application to network" - APL_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_WRITE_IN : in std_logic; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT : out std_logic; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN : in std_logic; -- - APL_DTYPE_IN : in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN : in std_logic; -- Release sending of the data - APL_TARGET_ADDRESS_IN : in std_logic_vector (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "network to application" - APL_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_TYP_OUT : out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT : out std_logic; -- Data word is valid and might be read out - APL_READ_IN : in std_logic; -- Read data word - - -- APL Control port - APL_RUN_OUT : out std_logic; -- Data transfer is running - APL_MY_ADDRESS_IN : in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT : out std_logic_vector (7 downto 0); - - -- Internal direction port - -- the ports with master or slave in their name are to be mapped by the active api - -- to the init respectivly the reply path and vice versa in the passive api. - -- lets define: the "master" path is the path that I send data on. - INT_MASTER_DATAREADY_OUT : out std_logic; - INT_MASTER_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_MASTER_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_MASTER_READ_IN : in std_logic; - - INT_MASTER_DATAREADY_IN : in std_logic; - INT_MASTER_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_MASTER_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_MASTER_READ_OUT : out std_logic; - - - INT_SLAVE_HEADER_IN : in std_logic; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_SLAVE_DATAREADY_OUT : out std_logic; - INT_SLAVE_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_SLAVE_READ_IN : in std_logic; - - INT_SLAVE_DATAREADY_IN : in std_logic; - INT_SLAVE_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_SLAVE_READ_OUT : out std_logic; - - -- Status and control port - STAT_FIFO_TO_INT : out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL : out std_logic_vector(31 downto 0) - ); - end component; - -begin - - BASE_API: trb_net16_api_base - generic map ( - API_TYPE => 1, - FIFO_TO_INT_DEPTH => FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => FIFO_TO_APL_DEPTH, - SBUF_VERSION => SBUF_VERSION - ) - port map ( - CLK => CLK, - CLK_EN => CLK_EN, - RESET => RESET, - - APL_DATA_IN => APL_DATA_IN, - APL_PACKET_NUM_IN => APL_PACKET_NUM_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_SEND_IN => APL_SEND_IN, - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN, - APL_DATA_OUT => APL_DATA_OUT, - APL_PACKET_NUM_OUT => APL_PACKET_NUM_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL_SEQNR_OUT, - - -- Internal direction port - INT_MASTER_DATAREADY_OUT => INT_INIT_DATAREADY_OUT, - INT_MASTER_DATA_OUT => INT_INIT_DATA_OUT, - INT_MASTER_PACKET_NUM_OUT => INT_INIT_PACKET_NUM_OUT, - INT_MASTER_READ_IN => INT_INIT_READ_IN, - - INT_MASTER_DATAREADY_IN => INT_INIT_DATAREADY_IN, - INT_MASTER_DATA_IN => INT_INIT_DATA_IN, - INT_MASTER_PACKET_NUM_IN => INT_INIT_PACKET_NUM_IN, - INT_MASTER_READ_OUT => INT_INIT_READ_OUT, - - INT_SLAVE_HEADER_IN => INT_REPLY_HEADER_IN, - - INT_SLAVE_DATAREADY_OUT => INT_REPLY_DATAREADY_OUT, - INT_SLAVE_DATA_OUT => INT_REPLY_DATA_OUT, - INT_SLAVE_PACKET_NUM_OUT => INT_REPLY_PACKET_NUM_OUT, - INT_SLAVE_READ_IN => INT_REPLY_READ_IN, - - INT_SLAVE_DATAREADY_IN => INT_REPLY_DATAREADY_IN, - INT_SLAVE_DATA_IN => INT_REPLY_DATA_IN, - INT_SLAVE_PACKET_NUM_IN => INT_REPLY_PACKET_NUM_IN, - INT_SLAVE_READ_OUT => INT_REPLY_READ_OUT, - -- Status and control port - STAT_FIFO_TO_INT => STAT_FIFO_TO_INT, - STAT_FIFO_TO_APL => STAT_FIFO_TO_APL - -- not needed now, but later - ); - -end architecture; diff --git a/oldfiles/trb_net16_api_passive.vhd b/oldfiles/trb_net16_api_passive.vhd deleted file mode 100644 index 75d9f5d..0000000 --- a/oldfiles/trb_net16_api_passive.vhd +++ /dev/null @@ -1,218 +0,0 @@ --- connection between the TRBNET and any application --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetAPI - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - -entity trb_net16_api_passive is - - generic ( - FIFO_TO_INT_DEPTH : integer := std_FIFO_DEPTH; -- direction to medium - FIFO_TO_APL_DEPTH : integer := std_FIFO_DEPTH; -- direction to application - SBUF_VERSION : integer := std_SBUF_VERSION; - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "application to network" - APL_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_WRITE_IN : in std_logic; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT : out std_logic; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN : in std_logic; -- - APL_DTYPE_IN : in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN : in std_logic; -- Release sending of the data - APL_TARGET_ADDRESS_IN : in std_logic_vector (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "network to application" - APL_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_TYP_OUT : out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT : out std_logic; -- Data word is valid and might be read out - APL_READ_IN : in std_logic; -- Read data word - - -- APL Control port - APL_RUN_OUT : out std_logic; -- Data transfer is running - APL_MY_ADDRESS_IN : in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT : out std_logic_vector (7 downto 0); - - -- Internal direction port - -- the ports with master or slave in their name are to be mapped by the active api - -- to the init respectivly the reply path and vice versa in the passive api. - -- lets define: the "master" path is the path that I send data on. - INT_INIT_DATAREADY_OUT : out std_logic; - INT_INIT_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_INIT_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_INIT_READ_IN : in std_logic; - - INT_INIT_DATAREADY_IN : in std_logic; - INT_INIT_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_INIT_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_INIT_READ_OUT : out std_logic; - - - INT_REPLY_HEADER_IN : in std_logic; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT : out std_logic; - INT_REPLY_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_REPLY_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_IN : in std_logic; - - INT_REPLY_DATAREADY_IN : in std_logic; - INT_REPLY_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_REPLY_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_OUT : out std_logic; - - -- Status and control port - STAT_FIFO_TO_INT : out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL : out std_logic_vector(31 downto 0) - ); -end entity; - -architecture trb_net16_api_passive_arch of trb_net16_api_passive is - - component trb_net16_api_base is - generic ( - API_TYPE : integer := 0; -- type of api: 0 passive, 1 active - FIFO_TO_INT_DEPTH : integer := 0; -- direction to medium - FIFO_TO_APL_DEPTH : integer := 0; -- direction to application - SBUF_VERSION : integer range 0 to 1 := std_SBUF_VERSION - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "application to network" - APL_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_WRITE_IN : in std_logic; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT : out std_logic; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN : in std_logic; -- - APL_DTYPE_IN : in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN : in std_logic; -- Release sending of the data - APL_TARGET_ADDRESS_IN : in std_logic_vector (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "network to application" - APL_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_TYP_OUT : out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT : out std_logic; -- Data word is valid and might be read out - APL_READ_IN : in std_logic; -- Read data word - - -- APL Control port - APL_RUN_OUT : out std_logic; -- Data transfer is running - APL_MY_ADDRESS_IN : in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT : out std_logic_vector (7 downto 0); - - -- Internal direction port - -- the ports with master or slave in their name are to be mapped by the active api - -- to the init respectivly the reply path and vice versa in the passive api. - -- lets define: the "master" path is the path that I send data on. - INT_MASTER_DATAREADY_OUT : out std_logic; - INT_MASTER_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_MASTER_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_MASTER_READ_IN : in std_logic; - - INT_MASTER_DATAREADY_IN : in std_logic; - INT_MASTER_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_MASTER_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_MASTER_READ_OUT : out std_logic; - - - INT_SLAVE_HEADER_IN : in std_logic; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_SLAVE_DATAREADY_OUT : out std_logic; - INT_SLAVE_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_SLAVE_READ_IN : in std_logic; - - INT_SLAVE_DATAREADY_IN : in std_logic; - INT_SLAVE_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_SLAVE_READ_OUT : out std_logic; - - -- Status and control port - STAT_FIFO_TO_INT : out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL : out std_logic_vector(31 downto 0) - ); - end component; - -begin - - BASE_API: trb_net16_api_base - generic map ( - API_TYPE => 0, - FIFO_TO_INT_DEPTH => FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => FIFO_TO_APL_DEPTH, - SBUF_VERSION => SBUF_VERSION - ) - port map ( - CLK => CLK, - CLK_EN => CLK_EN, - RESET => RESET, - - APL_DATA_IN => APL_DATA_IN, - APL_PACKET_NUM_IN => APL_PACKET_NUM_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_SEND_IN => APL_SEND_IN, - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN, - APL_DATA_OUT => APL_DATA_OUT, - APL_PACKET_NUM_OUT => APL_PACKET_NUM_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL_SEQNR_OUT, - - -- Internal direction port - INT_MASTER_DATAREADY_OUT => INT_REPLY_DATAREADY_OUT, - INT_MASTER_DATA_OUT => INT_REPLY_DATA_OUT, - INT_MASTER_PACKET_NUM_OUT => INT_REPLY_PACKET_NUM_OUT, - INT_MASTER_READ_IN => INT_REPLY_READ_IN, - - INT_MASTER_DATAREADY_IN => INT_REPLY_DATAREADY_IN, - INT_MASTER_DATA_IN => INT_REPLY_DATA_IN, - INT_MASTER_PACKET_NUM_IN => INT_REPLY_PACKET_NUM_IN, - INT_MASTER_READ_OUT => INT_REPLY_READ_OUT, - - INT_SLAVE_HEADER_IN => INT_REPLY_HEADER_IN, - - INT_SLAVE_DATAREADY_OUT => INT_INIT_DATAREADY_OUT, - INT_SLAVE_DATA_OUT => INT_INIT_DATA_OUT, - INT_SLAVE_PACKET_NUM_OUT => INT_INIT_PACKET_NUM_OUT, - INT_SLAVE_READ_IN => INT_INIT_READ_IN, - - INT_SLAVE_DATAREADY_IN => INT_INIT_DATAREADY_IN, - INT_SLAVE_DATA_IN => INT_INIT_DATA_IN, - INT_SLAVE_PACKET_NUM_IN => INT_INIT_PACKET_NUM_IN, - INT_SLAVE_READ_OUT => INT_INIT_READ_OUT, - -- Status and control port - STAT_FIFO_TO_INT => STAT_FIFO_TO_INT, - STAT_FIFO_TO_APL => STAT_FIFO_TO_APL - -- not needed now, but later - ); - -end architecture; diff --git a/oldfiles/trb_net16_api_streaming.vhd b/oldfiles/trb_net16_api_streaming.vhd deleted file mode 100644 index 55f3ed0..0000000 --- a/oldfiles/trb_net16_api_streaming.vhd +++ /dev/null @@ -1,857 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - - -entity trb_net16_api_streaming is - generic( - USE_VENDOR_CORES : integer range 0 to 1 := c_YES; - FIFO_TO_INT_DEPTH : integer range 0 to 6 := 6; - FIFO_TO_APL_DEPTH : integer range 1 to 6 := 6; - FORCE_REPLY : integer range 0 to 1 := std_FORCE_REPLY; - SBUF_VERSION : integer range 0 to 1 := std_SBUF_VERSION; - SECURE_MODE_TO_APL : integer range 0 to 1 := c_YES; - SECURE_MODE_TO_INT : integer range 0 to 1 := c_YES; - APL_WRITE_ALL_WORDS: integer range 0 to 1 := c_NO - ); - port( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - INT_INIT_DATAREADY_IN : in std_logic; - INT_INIT_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_INIT_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_INIT_READ_OUT : out std_logic; - - INT_REPLY_DATAREADY_OUT : out std_logic; - INT_REPLY_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_REPLY_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_IN : in std_logic; - - INT_REPLY_DATAREADY_IN : in std_logic; - INT_REPLY_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_REPLY_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_OUT : out std_logic; - - --apl init channel - APL_INIT_DATA_IN : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - APL_INIT_PACKET_NUM_IN : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_INIT_DATAREADY_IN : out std_logic; - - --apl reply sending - APL_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); - APL_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_DATAREADY_IN : in std_logic; - APL_READ_OUT : out std_logic; - APL_SHORT_TRANSFER_IN : in std_logic; - APL_DTYPE_IN : in std_logic_vector (3 downto 0); - APL_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0); - APL_SEND_IN : in std_logic; - - -- reply receiving - APL_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - APL_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_TYP_OUT : out std_logic_vector (2 downto 0); - APL_DATAREADY_OUT : out std_logic; - APL_READ_IN : in std_logic; - - -- APL Control port - APL_RUN_OUT : out std_logic; - APL_MY_ADDRESS_IN : in std_logic_vector (15 downto 0); - APL_SEQNR_OUT : out std_logic_vector (7 downto 0); - APL_LOOPBACK : in std_logic; - - STAT_FIFO_TO_INT : out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL : out std_logic_vector(31 downto 0) - ); -end entity; - - -architecture trb_net16_api_streaming_arch of trb_net16_api_streaming is - component trb_net16_dummy_fifo is - port ( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - DATA_IN : in std_logic_vector(c_DATA_WIDTH - 1 downto 0); -- Input data - PACKET_NUM_IN : in std_logic_vector(1 downto 0); -- Input data - WRITE_ENABLE_IN : in std_logic; - DATA_OUT : out std_logic_vector(c_DATA_WIDTH - 1 downto 0); -- Output data - PACKET_NUM_OUT : out std_logic_vector(1 downto 0); -- Input data - READ_ENABLE_IN : in std_logic; - FULL_OUT : out std_logic; -- Full Flag - EMPTY_OUT : out std_logic - ); - end component; - - component trb_net16_fifo is - generic ( - DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1) 64Bit packets - USE_VENDOR_CORES : integer := c_YES - ); - port ( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - DATA_IN : in std_logic_vector(c_DATA_WIDTH - 1 downto 0); -- Input data - PACKET_NUM_IN : in std_logic_vector(1 downto 0); -- Input data - WRITE_ENABLE_IN : in std_logic; - DATA_OUT : out std_logic_vector(c_DATA_WIDTH - 1 downto 0); -- Output data - PACKET_NUM_OUT : out std_logic_vector(1 downto 0); -- Input data - READ_ENABLE_IN : in std_logic; - FULL_OUT : out std_logic; -- Full Flag - EMPTY_OUT : out std_logic - ); - end component; - - component trb_net16_sbuf is - generic ( - VERSION : integer := 0 - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- port to combinatorial logic - COMB_DATAREADY_IN : in STD_LOGIC; --comb logic provides data word - COMB_next_READ_OUT: out STD_LOGIC; --sbuf can read in NEXT cycle - COMB_READ_IN : in STD_LOGIC; --comb logic IS reading - COMB_DATA_IN : in STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); -- Data word - COMB_PACKET_NUM_IN: in STD_LOGIC_VECTOR(c_NUM_WIDTH-1 downto 0); - -- Port to synchronous output. - SYN_DATAREADY_OUT : out STD_LOGIC; - SYN_DATA_OUT : out STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); -- Data word - SYN_PACKET_NUM_OUT: out STD_LOGIC_VECTOR(c_NUM_WIDTH-1 downto 0); - SYN_READ_IN : in STD_LOGIC; - -- Status and control port - STAT_BUFFER : out STD_LOGIC - ); - end component; - - component trb_net16_term is - generic ( - USE_APL_PORT : integer range 0 to 1 := 0; - SECURE_MODE : integer range 0 to 1 := 0 - --if secure_mode is not used, apl must provide error pattern and dtype until - --next trigger comes in. In secure mode these must be available when hold_trm goes low - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - INT_DATAREADY_OUT: out std_logic; - INT_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_PACKET_NUM_OUT: out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_IN: in std_logic; - INT_DATAREADY_IN: in std_logic; - INT_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_OUT: out std_logic; - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out std_logic_vector (7 downto 0); - APL_GOT_TRM: out std_logic; - APL_RELEASE_TRM: in std_logic; - APL_ERROR_PATTERN_IN: in std_logic_vector (31 downto 0) - -- Status and control port - ); - end component; - - component trb_net_sbuf is - generic ( - DATA_WIDTH : integer := c_DATA_WIDTH + c_NUM_WIDTH; - VERSION: integer := SBUF_VERSION); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- port to combinatorial logic - COMB_DATAREADY_IN: in STD_LOGIC; --comb logic provides data word - COMB_next_READ_OUT: out STD_LOGIC; --sbuf can read in NEXT cycle - COMB_READ_IN: in STD_LOGIC; --comb logic IS reading - COMB_DATA_IN: in STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - SYN_DATAREADY_OUT: out STD_LOGIC; - SYN_DATA_OUT: out STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - SYN_READ_IN: in STD_LOGIC; - STAT_BUFFER: out STD_LOGIC - ); - end component; - - -- signals for the APL to INT fifo: - signal fifo_to_int_data_in : std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal fifo_to_int_packet_num_in : std_logic_vector(1 downto 0); - signal fifo_to_int_write : std_logic; - signal fifo_to_int_data_out : std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal fifo_to_int_packet_num_out : std_logic_vector(1 downto 0); - signal fifo_to_int_long_packet_num_out : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal fifo_to_int_read : std_logic; - signal fifo_to_int_full : std_logic; - signal fifo_to_int_empty : std_logic; - - -- signals for the INT to APL: - signal fifo_to_apl_data_in : std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal fifo_to_apl_packet_num_in : std_logic_vector(1 downto 0); - signal fifo_to_apl_write : std_logic; - signal fifo_to_apl_data_out : std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal fifo_to_apl_packet_num_out : std_logic_vector(1 downto 0); - signal fifo_to_apl_long_packet_num_out : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal fifo_to_apl_read : std_logic; - signal fifo_to_apl_full : std_logic; - signal fifo_to_apl_empty : std_logic; - signal saved_fifo_to_apl_packet_type, current_fifo_to_apl_packet_type : std_logic_vector(2 downto 0); - - signal saved_fifo_to_apl_long_packet_num_out : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal saved_fifo_to_int_long_packet_num_out : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal last_fifo_to_apl_read : std_logic; - signal last_fifo_to_int_read : std_logic; - - signal state_bits, state_bits_to_int, state_bits_to_apl : std_logic_vector(2 downto 0); --- signal slave_running, next_slave_running, get_slave_running, release_slave_running : std_logic; - - signal next_INT_REPLY_DATA_OUT: std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal next_INT_REPLY_PACKET_NUM_OUT: std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal next_INT_REPLY_DATAREADY_OUT: std_logic; - signal sbuf_free, sbuf_next_READ: std_logic; - signal reg_INT_REPLY_READ_OUT: std_logic; - signal next_APL_DATAREADY_OUT, reg_APL_DATAREADY_OUT: std_logic; - signal next_APL_DATA_OUT, reg_APL_DATA_OUT: std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal next_APL_PACKET_NUM_OUT, reg_APL_PACKET_NUM_OUT: std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal next_APL_TYP_OUT, reg_APL_TYP_OUT, buf_APL_TYP_OUT: std_logic_vector(2 downto 0); - - type OUTPUT_SELECT is (HDR, DAT, TRM, TRM_COMB); - signal out_select: OUTPUT_SELECT; - signal sequence_counter,next_sequence_counter : std_logic_vector(7 downto 0); - signal combined_header_F1, combined_header_F2, combined_header_F3, combined_header_F0 : std_logic_vector(15 downto 0); - signal combined_trailer_F1, combined_trailer_F2, combined_trailer_F3, combined_trailer_F0 : std_logic_vector(15 downto 0); - signal registered_trailer_F1, registered_trailer_F2, registered_trailer_F3, registered_trailer_F0 : std_logic_vector(15 downto 0); - signal current_combined_header, current_registered_trailer, current_data : std_logic_vector(15 downto 0); - - signal update_registered_trailer: std_logic; - signal master_counter : std_logic_vector(c_NUM_WIDTH-1 downto 0); - - type PAS_API_TO_APL_STATE_T is (sa_IDLE, sa_INACTIVE); - signal state_to_apl, next_state_to_apl : PAS_API_TO_APL_STATE_T; - - type state_to_int_t is ( INACTIVE, IDLE, SEND_SHORT, SEND_HEADER, RUNNING, SEND_TRAILER, SHUTDOWN); - signal state_to_int, next_state_to_int : state_to_int_t; - --- type API_STATE is (IDLE, SEND_HEADER, RUNNING, SHUTDOWN, SEND_SHORT, SEND_TRAILER, WAITING,MY_ERROR); --- signal current_state, next_state : API_STATE; - signal throw_away : std_logic; - signal fifo_to_apl_read_before : std_logic; - signal fifo_to_int_read_before : std_logic; - - signal sbuf_to_apl_next_READ : std_logic; - signal sbuf_to_apl_free : std_logic; - signal sbuf_apl_type_dataready : std_logic; - - signal master_start, master_end, slave_start, slave_end : std_logic; - signal master_running, slave_running : std_logic; - - signal buf_INT_REPLY_PACKET_NUM_OUT : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal buf_INT_REPLY_DATAREADY_OUT : std_logic; - - signal next_fifo_was_not_empty, fifo_was_not_empty : std_logic; - -begin - - APL_INIT_DATAREADY_IN <= INT_INIT_DATAREADY_IN; - APL_INIT_DATA_IN <= INT_INIT_DATA_IN; - APL_INIT_PACKET_NUM_IN <= INT_INIT_PACKET_NUM_IN; - INT_INIT_READ_OUT <= '1'; - ---------------------------------------- --- fifo to internal ---------------------------------------- - - FIFO_TO_INT: trb_net16_fifo - generic map ( - DEPTH => FIFO_TO_INT_DEPTH, - USE_VENDOR_CORES => USE_VENDOR_CORES) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - DATA_IN => fifo_to_int_data_in, - PACKET_NUM_IN => fifo_to_int_packet_num_in, - WRITE_ENABLE_IN => fifo_to_int_write, - DATA_OUT => fifo_to_int_data_out, - PACKET_NUM_OUT => fifo_to_int_packet_num_out, - READ_ENABLE_IN => fifo_to_int_read, - FULL_OUT => fifo_to_int_full, - EMPTY_OUT => fifo_to_int_empty - ); - - STAT_FIFO_TO_INT(2 downto 0) <= fifo_to_int_data_in(2 downto 0); - STAT_FIFO_TO_INT(3) <= fifo_to_int_write; - STAT_FIFO_TO_INT(6 downto 4) <= buf_INT_REPLY_PACKET_NUM_OUT; - STAT_FIFO_TO_INT(7) <= buf_INT_REPLY_DATAREADY_OUT; - STAT_FIFO_TO_INT(8) <= INT_REPLY_READ_IN; - STAT_FIFO_TO_INT(11 downto 9) <= fifo_to_int_data_out(2 downto 0); - STAT_FIFO_TO_INT(12) <= fifo_to_int_read; - STAT_FIFO_TO_INT(13) <= fifo_to_int_read_before; - STAT_FIFO_TO_INT(14) <= fifo_to_int_full; - STAT_FIFO_TO_INT(15) <= fifo_to_int_empty; - STAT_FIFO_TO_INT(16) <= next_APL_DATAREADY_OUT; - STAT_FIFO_TO_INT(17) <= sbuf_to_apl_free; - STAT_FIFO_TO_INT(18) <= fifo_to_apl_read_before; - STAT_FIFO_TO_INT(19) <= fifo_to_apl_read; - STAT_FIFO_TO_INT(20) <= fifo_to_apl_empty; - STAT_FIFO_TO_INT(21) <= fifo_to_apl_write; - STAT_FIFO_TO_INT(24 downto 22) <= next_INT_REPLY_PACKET_NUM_OUT; - STAT_FIFO_TO_INT(25) <= next_INT_REPLY_DATAREADY_OUT; - STAT_FIFO_TO_INT(28 downto 26) <= state_bits_to_int; - STAT_FIFO_TO_INT(31 downto 29) <= state_bits_to_apl; ---------------------------------------- --- fifo to apl ---------------------------------------- - - FIFO_TO_APL: trb_net16_fifo - generic map ( - DEPTH => FIFO_TO_APL_DEPTH, - USE_VENDOR_CORES => USE_VENDOR_CORES) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - DATA_IN => fifo_to_apl_data_in, - PACKET_NUM_IN => fifo_to_apl_packet_num_in, - WRITE_ENABLE_IN => fifo_to_apl_write, - DATA_OUT => fifo_to_apl_data_out, - PACKET_NUM_OUT => fifo_to_apl_packet_num_out, - READ_ENABLE_IN => fifo_to_apl_read, - FULL_OUT => fifo_to_apl_full, - EMPTY_OUT => fifo_to_apl_empty - ); - - STAT_FIFO_TO_APL(2 downto 0) <= fifo_to_apl_data_in(2 downto 0); - STAT_FIFO_TO_APL(3) <= fifo_to_apl_write; - STAT_FIFO_TO_APL(9 downto 8) <= fifo_to_apl_data_out(1 downto 0); - STAT_FIFO_TO_APL(11) <= fifo_to_apl_read; - STAT_FIFO_TO_APL(14) <= fifo_to_apl_full; - STAT_FIFO_TO_APL(15) <= fifo_to_apl_empty; - STAT_FIFO_TO_APL(7 downto 4) <= (others => '0'); - --STAT_FIFO_TO_APL(13 downto 12) <= (others => '0'); - STAT_FIFO_TO_APL(31 downto 16) <= (others => '0'); - STAT_FIFO_TO_APL(13) <= reg_INT_REPLY_READ_OUT; - STAT_FIFO_TO_APL(12) <= INT_REPLY_DATAREADY_IN; - STAT_FIFO_TO_APL(10) <= reg_APL_DATAREADY_OUT; - ---------------------------------------- --- a sbuf (to_int direction) ---------------------------------------- - gen_int_sbuf : if SECURE_MODE_TO_INT = 1 generate - SBUF: trb_net16_sbuf - generic map ( - VERSION => SBUF_VERSION) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => next_INT_REPLY_DATAREADY_OUT, - COMB_next_READ_OUT => sbuf_next_READ, - COMB_READ_IN => '1', - COMB_DATA_IN => next_INT_REPLY_DATA_OUT, - COMB_PACKET_NUM_IN => next_INT_REPLY_PACKET_NUM_OUT, - SYN_DATAREADY_OUT => buf_INT_REPLY_DATAREADY_OUT, - SYN_DATA_OUT => INT_REPLY_DATA_OUT, - SYN_PACKET_NUM_OUT => buf_INT_REPLY_PACKET_NUM_OUT, - SYN_READ_IN => INT_REPLY_READ_IN - ); - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - sbuf_free <= '0'; - else - sbuf_free <= sbuf_next_READ or INT_REPLY_READ_IN; - end if; - end if; - end process; - end generate; - gen_int_nonsbuf : if SECURE_MODE_TO_INT = 0 generate - buf_INT_REPLY_DATAREADY_OUT <= next_INT_REPLY_DATAREADY_OUT; - INT_REPLY_DATA_OUT <= next_INT_REPLY_DATA_OUT; - buf_INT_REPLY_PACKET_NUM_OUT <= next_INT_REPLY_PACKET_NUM_OUT; - sbuf_free <= INT_REPLY_READ_IN; - end generate; -INT_REPLY_PACKET_NUM_OUT <= buf_INT_REPLY_PACKET_NUM_OUT; -INT_REPLY_DATAREADY_OUT <= buf_INT_REPLY_DATAREADY_OUT; ---------------------------------------- --- a sbuf (to_apl direction) ---------------------------------------- - gen_apl_sbuf : if SECURE_MODE_TO_APL = 1 generate - SBUF_TO_APL: trb_net16_sbuf - generic map ( - VERSION => SBUF_VERSION) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => next_APL_DATAREADY_OUT, - COMB_next_READ_OUT => sbuf_to_apl_next_READ, - COMB_READ_IN => '1', - COMB_DATA_IN => next_APL_DATA_OUT, - COMB_PACKET_NUM_IN => next_APL_PACKET_NUM_OUT, - SYN_DATAREADY_OUT => reg_APL_DATAREADY_OUT, - SYN_DATA_OUT => reg_APL_DATA_OUT, - SYN_PACKET_NUM_OUT => reg_APL_PACKET_NUM_OUT, - SYN_READ_IN => APL_READ_IN - ); - SBUF_TO_APL2: trb_net_sbuf - generic map ( - VERSION => SBUF_VERSION, - DATA_WIDTH => 3) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => next_APL_DATAREADY_OUT, - COMB_next_READ_OUT => open, - COMB_READ_IN => '1', - COMB_DATA_IN => next_APL_TYP_OUT, - SYN_DATAREADY_OUT => sbuf_apl_type_dataready, - SYN_DATA_OUT => buf_APL_TYP_OUT, - SYN_READ_IN => APL_READ_IN - ); - - reg_APL_TYP_OUT <= TYPE_ILLEGAL when sbuf_apl_type_dataready = '0' else buf_APL_TYP_OUT; - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - sbuf_to_apl_free <= '0'; - else - sbuf_to_apl_free <= sbuf_to_apl_next_READ; - end if; - end if; - end process; - end generate; - - gen_apl_nonsbuf : if SECURE_MODE_TO_APL = 0 generate - reg_APL_DATAREADY_OUT <= next_APL_DATAREADY_OUT; - reg_APL_DATA_OUT <= next_APL_DATA_OUT; - reg_APL_PACKET_NUM_OUT <= next_APL_PACKET_NUM_OUT; - reg_APL_TYP_OUT <= next_APL_TYP_OUT; - sbuf_to_apl_free <= APL_READ_IN; - end generate; - - next_APL_DATA_OUT <= fifo_to_apl_data_out; - next_APL_PACKET_NUM_OUT <= fifo_to_apl_long_packet_num_out; - next_APL_TYP_OUT <= current_fifo_to_apl_packet_type; - APL_DATAREADY_OUT <= reg_APL_DATAREADY_OUT; - APL_DATA_OUT <= reg_APL_DATA_OUT; - APL_PACKET_NUM_OUT <= reg_APL_PACKET_NUM_OUT; - APL_TYP_OUT <= reg_APL_TYP_OUT; - APL_SEQNR_OUT <= sequence_counter; - - - ---------------------------------------- ---regenerate long packet numbers ---------------------------------------- - fifo_to_int_long_packet_num_out(2) <= fifo_to_int_packet_num_out(1); - fifo_to_int_long_packet_num_out(0) <= fifo_to_int_packet_num_out(0); - fifo_to_int_long_packet_num_out(1) <= not saved_fifo_to_int_long_packet_num_out(1) when last_fifo_to_int_read = '1' and not saved_fifo_to_int_long_packet_num_out(2) = '1' and saved_fifo_to_int_long_packet_num_out(0) = '1' else saved_fifo_to_int_long_packet_num_out(1); - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - saved_fifo_to_int_long_packet_num_out <= (others => '0'); - elsif last_fifo_to_int_read = '1' then - saved_fifo_to_int_long_packet_num_out <= fifo_to_int_long_packet_num_out; - end if; - end if; - end process; - - - fifo_to_apl_long_packet_num_out(2) <= fifo_to_apl_packet_num_out(1); - fifo_to_apl_long_packet_num_out(0) <= fifo_to_apl_packet_num_out(0); - fifo_to_apl_long_packet_num_out(1) <= not saved_fifo_to_apl_long_packet_num_out(1) when last_fifo_to_apl_read = '1' and not saved_fifo_to_apl_long_packet_num_out(2) = '1' and saved_fifo_to_apl_long_packet_num_out(0) = '1' else saved_fifo_to_apl_long_packet_num_out(1); - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - saved_fifo_to_apl_long_packet_num_out <= (others => '0'); - elsif last_fifo_to_apl_read = '1' then - saved_fifo_to_apl_long_packet_num_out <= fifo_to_apl_long_packet_num_out; - end if; - end if; - end process; - ---------------------------------------- --- save packet type ---------------------------------------- - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' or fifo_to_apl_long_packet_num_out = c_F3 then - saved_fifo_to_apl_packet_type <= TYPE_ILLEGAL; - elsif fifo_to_apl_long_packet_num_out = c_H0 then - saved_fifo_to_apl_packet_type <= fifo_to_apl_data_out(2 downto 0); - end if; - end if; - end process; - --create comb. real packet type - current_fifo_to_apl_packet_type <= fifo_to_apl_data_out(2 downto 0) when (fifo_to_apl_long_packet_num_out = c_H0) - else saved_fifo_to_apl_packet_type; - ---------------------------------------- --- select data for int direction ---------------------------------------- - - - process(current_combined_header, current_registered_trailer, current_data, out_select) - begin - case out_select is - when HDR => next_INT_REPLY_DATA_OUT <= current_combined_header; - when TRM => next_INT_REPLY_DATA_OUT <= current_registered_trailer; - when others => next_INT_REPLY_DATA_OUT <= current_data; - end case; - end process; - - - - process(master_counter, fifo_to_int_data_out, combined_header_F1, registered_trailer_F1, - combined_header_F2, registered_trailer_F2, registered_trailer_F0, - combined_header_F3, registered_trailer_F3, combined_header_F0) - begin - case master_counter is - when c_F0 => - current_combined_header <= combined_header_F0; - current_registered_trailer <= registered_trailer_F0; - current_data <= fifo_to_int_data_out; - when c_F1 => - current_combined_header <= combined_header_F1; - current_registered_trailer <= registered_trailer_F1; - current_data <= fifo_to_int_data_out; - when c_F2 => - current_combined_header <= combined_header_F2; - current_registered_trailer <= registered_trailer_F2; - current_data <= fifo_to_int_data_out; - when c_F3 => - current_combined_header <= combined_header_F3; - current_registered_trailer <= registered_trailer_F3; - current_data <= fifo_to_int_data_out; - when others => - current_combined_header <= "0000000000000" & TYPE_HDR; - current_registered_trailer <= "0000000000000" & TYPE_TRM; - current_data <= "0000000000000" & TYPE_DAT; - end case; - end process; - - next_INT_REPLY_PACKET_NUM_OUT <= master_counter; - - MASTER_TRANSFER_COUNTER : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - master_counter <= c_H0; - elsif next_INT_REPLY_DATAREADY_OUT = '1' then - if master_counter = c_max_word_number then - master_counter <= (others => '0'); - else - master_counter <= master_counter + 1; - end if; - end if; - end if; - end process; - - ---------------------------------------- --- keep track of fifo read operations ---------------------------------------- - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - fifo_to_apl_read_before <= '0'; - else - last_fifo_to_apl_read <= fifo_to_apl_read; - if fifo_to_apl_read = '1' then - fifo_to_apl_read_before <= '1'; - elsif sbuf_to_apl_free = '1' or throw_away = '1' then - fifo_to_apl_read_before <= '0'; - end if; - end if; - end if; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - fifo_to_int_read_before <= '0'; - else - last_fifo_to_int_read <= fifo_to_int_read; - if fifo_to_int_read = '1' then - fifo_to_int_read_before <= '1'; - elsif next_INT_REPLY_DATAREADY_OUT = '1' and master_counter /= "00" then --implies sbuf_free - fifo_to_int_read_before <= '0'; - end if; - end if; - end if; - end process; - - - ---------------------------------------- ---state machine for direction to APL ---------------------------------------- - to_apl : process(fifo_to_apl_full, reg_INT_REPLY_READ_OUT, INT_REPLY_DATAREADY_IN, fifo_to_apl_empty, - fifo_to_apl_long_packet_num_out, state_to_apl, reg_APL_TYP_OUT, reg_APL_PACKET_NUM_OUT, - sbuf_to_apl_free, INT_REPLY_DATA_IN, INT_REPLY_PACKET_NUM_IN, - reg_APL_DATAREADY_OUT, slave_running, fifo_to_apl_read_before, throw_away,state_to_int ) - begin - reg_INT_REPLY_READ_OUT <= not fifo_to_apl_full; - fifo_to_apl_write <= reg_INT_REPLY_READ_OUT and INT_REPLY_DATAREADY_IN; - fifo_to_apl_read <= '0'; - next_APL_DATAREADY_OUT <= '0'; - next_state_to_apl <= state_to_apl; - throw_away <= '0'; - slave_start <= '0'; - slave_end <= '0'; - - case state_to_apl is - when sa_IDLE => - slave_start <= fifo_to_apl_write; - if APL_WRITE_ALL_WORDS = 0 then - next_APL_DATAREADY_OUT <= fifo_to_apl_read_before and not fifo_to_apl_long_packet_num_out(2) and sbuf_to_apl_free; - throw_away <= fifo_to_apl_long_packet_num_out(2); - else - next_APL_DATAREADY_OUT <= fifo_to_apl_read_before and sbuf_to_apl_free; - end if; - fifo_to_apl_read <= not fifo_to_apl_empty and not (fifo_to_apl_read_before and not sbuf_to_apl_free and not throw_away); - if reg_APL_TYP_OUT = TYPE_TRM and reg_APL_PACKET_NUM_OUT = c_F3 and sbuf_to_apl_free = '1' then - next_state_to_apl <= sa_INACTIVE; - slave_end <= '1'; - end if; - when sa_INACTIVE => - if state_to_int = INACTIVE then - next_state_to_apl <= sa_IDLE; - end if; - end case; - end process; - ---------------------------------------- ---state machine for direction to INT ---------------------------------------- - to_int : process(state_to_int, APL_SHORT_TRANSFER_IN, APL_SEND_IN, slave_start, - master_counter, sbuf_free, fifo_to_int_empty, sequence_counter, fifo_to_int_read_before, - state_to_apl, master_start, fifo_was_not_empty) - begin - next_state_to_int <= state_to_int; - update_registered_trailer <= '0'; - out_select <= DAT; - next_INT_REPLY_DATAREADY_OUT <= '0'; - next_sequence_counter <= sequence_counter; - fifo_to_int_read <= '0'; - master_start <= '0'; - master_end <= '0'; - next_fifo_was_not_empty <= fifo_was_not_empty or not fifo_to_int_empty; - - case state_to_int is - when INACTIVE => - if slave_start = '1' then - next_state_to_int <= IDLE; - end if; - when IDLE => - next_fifo_was_not_empty <= '0'; - if APL_SEND_IN = '1' then - master_start <= '1'; - if APL_SHORT_TRANSFER_IN = '1' then - next_state_to_int <= SEND_SHORT; - else - next_state_to_int <= SEND_HEADER; - end if; - end if; - when SEND_SHORT => - if APL_SEND_IN = '0' then - update_registered_trailer <= '1'; - next_state_to_int <= SEND_TRAILER; - end if; - when SEND_HEADER => - out_select <= HDR; - next_INT_REPLY_DATAREADY_OUT <= sbuf_free; - if master_counter = c_F3 and sbuf_free = '1' then - next_state_to_int <= RUNNING; - end if; - when RUNNING => - fifo_to_int_read <= not fifo_to_int_empty and sbuf_free and not master_counter(2); - next_INT_REPLY_DATAREADY_OUT <= sbuf_free and (fifo_to_int_read_before or master_counter(2)); - if APL_SEND_IN = '0' and fifo_was_not_empty = '1' then -- terminate the transfer - update_registered_trailer <= '1'; - if fifo_to_int_empty = '1' and master_counter = c_F3 and sbuf_free = '1' then - next_state_to_int <= SEND_TRAILER; -- immediate stop - else - next_state_to_int <= SHUTDOWN; -- send rest of data / padding - end if; - end if; - when SHUTDOWN => - fifo_to_int_read <= not fifo_to_int_empty and sbuf_free and not master_counter(2); - next_INT_REPLY_DATAREADY_OUT <= sbuf_free and - ((fifo_to_int_read_before or master_counter(2)) or --write data from fifo - (fifo_to_int_empty and not master_counter(2))); --fill with padding words - if master_counter = c_F3 and fifo_to_int_empty = '1' and sbuf_free = '1' then - next_state_to_int <= SEND_TRAILER; - end if; - when SEND_TRAILER => - out_select <= TRM; - next_INT_REPLY_DATAREADY_OUT <= sbuf_free; - if master_counter = "11" and sbuf_free = '1' then - next_state_to_int <= INACTIVE; - next_sequence_counter <= sequence_counter +1; - master_end <= '1'; - end if; - end case; - end process; - - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - state_to_apl <= sa_IDLE; - state_to_int <= INACTIVE; - sequence_counter <= (others => '0'); - fifo_was_not_empty <= '0'; - else - state_to_apl <= next_state_to_apl; - state_to_int <= next_state_to_int; - sequence_counter <= next_sequence_counter; - fifo_was_not_empty <= next_fifo_was_not_empty; - end if; - end if; - end process; - - - ---------------------------------------- --- ---------------------------------------- - - --save target address for passive api - reg_hdr_f1: process(CLK) - begin - if rising_edge(CLK) then - if current_fifo_to_apl_packet_type = TYPE_HDR then - if fifo_to_apl_long_packet_num_out = c_F1 then - combined_header_F1 <= fifo_to_apl_data_out; - end if; - end if; - end if; - end process; - -- combine the next header - combined_header_F0 <= APL_MY_ADDRESS_IN; - combined_header_F2 <= (others => '0'); - combined_header_F3(15 downto 14) <= (others => '0'); -- LAY - combined_header_F3(13 downto 12) <= (others => '0'); -- VERS - combined_header_F3(11 downto 4) <= sequence_counter; -- SEQNR - combined_header_F3(3 downto 0) <= APL_DTYPE_IN; - combined_trailer_F0 <= (others => '0'); - combined_trailer_F1 <= APL_ERROR_PATTERN_IN(31 downto 16); - combined_trailer_F2 <= APL_ERROR_PATTERN_IN(15 downto 0); - combined_trailer_F3(15 downto 14) <= (others => '0'); -- res. - combined_trailer_F3(13 downto 12) <= (others => '0'); -- VERS - combined_trailer_F3(11 downto 4) <= sequence_counter; -- SEQNR - combined_trailer_F3(3 downto 0) <= APL_DTYPE_IN; - - -- connect Transmitter port - fifo_to_int_data_in <= APL_DATA_IN; - fifo_to_int_packet_num_in <= APL_PACKET_NUM_IN(2) & APL_PACKET_NUM_IN(0); - fifo_to_int_write <= (APL_DATAREADY_IN and not fifo_to_int_full); - APL_READ_OUT <= not fifo_to_int_full; -- APL has to stop writing - - -- connect receiver - fifo_to_apl_data_in <= INT_REPLY_DATA_IN; - fifo_to_apl_packet_num_in <= INT_REPLY_PACKET_NUM_IN(2) & INT_REPLY_PACKET_NUM_IN(0); - INT_REPLY_READ_OUT <= reg_INT_REPLY_READ_OUT; - - RUN_OUT_gen : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - APL_RUN_OUT <= '0'; - else - if slave_start = '1' then - APL_RUN_OUT <= '1'; - elsif slave_running = '0' and state_to_int = INACTIVE then - APL_RUN_OUT <= '0'; - end if; - end if; - end if; - end process; - - RUNNING_gen : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - master_running <= '0'; - slave_running <= '0'; - else - if master_start = '1' then - master_running <= '1'; - elsif master_end = '1' then - master_running <= '0'; - end if; - if slave_start = '1' then - slave_running <= '1'; - elsif slave_end = '1' then - slave_running <= '0'; - end if; - end if; - end if; - end process; - - REG3 : process(CLK) - begin - if rising_edge(CLK) then - if update_registered_trailer = '1' then - registered_trailer_F0 <= combined_trailer_F0; - registered_trailer_F1 <= combined_trailer_F1; - registered_trailer_F2 <= combined_trailer_F2; - registered_trailer_F3 <= combined_trailer_F3; - end if; - end if; - end process; - ---for simulation only - - - process(state_to_apl) - begin - case state_to_apl is - when sa_IDLE => state_bits_to_apl <= "000"; - when sa_INACTIVE => state_bits_to_apl <= "100"; - when others => state_bits_to_apl <= "111"; - end case; - end process; - process(state_to_int) - begin - case state_to_int is - when IDLE => state_bits_to_int <= "000"; - when SEND_HEADER => state_bits_to_int <= "001"; - when RUNNING => state_bits_to_int <= "010"; - when SHUTDOWN => state_bits_to_int <= "011"; - when SEND_SHORT => state_bits_to_int <= "100"; - when SEND_TRAILER => state_bits_to_int <= "101"; - when INACTIVE => state_bits_to_int <= "110"; - when others => state_bits_to_int <= "111"; - end case; - end process; - - -end architecture; diff --git a/oldfiles/trb_net16_bram_fifo.vhd b/oldfiles/trb_net16_bram_fifo.vhd deleted file mode 100644 index 4886c36..0000000 --- a/oldfiles/trb_net16_bram_fifo.vhd +++ /dev/null @@ -1,279 +0,0 @@ - ---------------------------------------------------------------------------- --- -- --- Module : fifoctlr_cc_v2.vhd Last Update: 01/07/05 -- --- -- --- Description : FifO controller top level. -- --- Implements a 511x36 FifO w/common read/write clocks. -- --- -- --- The following VHDL code implements a 511x36 FifO in a Virtex2 -- --- device. The inputs are a Clock, a Read Enable, a Write Enable, -- --- Write Data, and a FifO_gsr signal as an initial reset. The outputs -- --- are Read Data, Full, Empty, and the FifOcount outputs, which -- --- indicate how full the FifO is. -- --- -- --- Designer : Nick Camilleri -- --- -- --- Company : Xilinx, Inc. -- --- -- --- Disclaimer : THESE DESIGNS ARE PROVIDED "AS IS" WITH NO WARRANTY -- --- WHATSOEVER AND XILINX SPECifICALLY DISCLAIMS ANY -- --- IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR -- --- A PARTICULAR PURPOSE, OR AGAINST INFRINGEMENT. -- --- THEY ARE ONLY INTendED TO BE USED BY XILINX -- --- CUSTOMERS, AND WITHIN XILINX DEVICES. -- --- -- --- Copyright (c) 2000 Xilinx, Inc. -- --- All rights reserved -- --- -- ---------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_unsigned.all; -use work.trb_net_std.all; -library unisim; -use UNISIM.VComponents.all; - -entity trb_net16_bram_fifo is - port (clock_in: IN std_logic; - read_enable_in: IN std_logic; - write_enable_in: IN std_logic; - write_data_in: IN std_logic_vector(17 downto 0); - fifo_gsr_in: IN std_logic; - read_data_out: OUT std_logic_vector(17 downto 0); - full_out: OUT std_logic; - empty_out: OUT std_logic; - fifocount_out: OUT std_logic_vector(3 downto 0)); -end trb_net16_bram_fifo; - -architecture trb_net16_bram_fifo_arch of trb_net16_bram_fifo is - signal clock: std_logic; - signal read_enable: std_logic; - signal write_enable: std_logic; - signal fifo_gsr: std_logic; - signal read_data: std_logic_vector(17 downto 0) := "000000000000000000"; - signal write_data: std_logic_vector(17 downto 0); - signal full: std_logic; - signal empty: std_logic; - signal read_addr: std_logic_vector(9 downto 0) := "0000000000"; - signal write_addr: std_logic_vector(9 downto 0) := "0000000000"; - signal fcounter: std_logic_vector(9 downto 0) := "0000000000"; - signal read_allow: std_logic; - signal write_allow: std_logic; - signal fcnt_allow: std_logic; - signal fcntandout: std_logic_vector(3 downto 0); - signal ra_or_fcnt0: std_logic; - signal wa_or_fcnt0: std_logic; - signal emptyg: std_logic; - signal fullg: std_logic; - signal gnd_bus: std_logic_vector(17 downto 0); - signal gnd: std_logic; - signal pwr: std_logic; - signal read_after_write: std_logic; - signal read_after_empty: std_logic; - -component BUFG - port ( - I: IN std_logic; - O: OUT std_logic); -end component; - -component RAMB16_S18_S18 - port ( - ADDRA: IN std_logic_vector(9 downto 0); - ADDRB: IN std_logic_vector(9 downto 0); - DIA: IN std_logic_vector(15 downto 0); - DIB: IN std_logic_vector(15 downto 0); - DIPA: IN std_logic_vector(1 downto 0); - DIPB: IN std_logic_vector(1 downto 0); - WEA: IN std_logic; - WEB: IN std_logic; - CLKA: IN std_logic; - CLKB: IN std_logic; - SSRA: IN std_logic; - SSRB: IN std_logic; - ENA: IN std_logic; - ENB: IN std_logic; - DOA: OUT std_logic_vector(15 downto 0); - DOB: OUT std_logic_vector(15 downto 0); - DOPA: OUT std_logic_vector(1 downto 0); - DOPB: OUT std_logic_vector(1 downto 0)); -end component; - -begin - read_enable <= read_enable_in; - write_enable <= write_enable_in; - fifo_gsr <= fifo_gsr_in; - write_data <= write_data_in; - read_data_out <= read_data; - - full_out <= full; - gnd_bus <= "000000000000000000"; - gnd <= '0'; - pwr <= '1'; - empty_out <= (empty or read_after_write) and read_after_empty; - clock <= clock_in; - --------------------------------------------------------------------------- --- -- --- Block RAM instantiation for FifO. Module is 1024x18, of which one -- --- address location is sacrificed for the overall speed of the design. -- --- -- --------------------------------------------------------------------------- - -bram1: RAMB16_S18_S18 port map (ADDRA => read_addr, ADDRB => write_addr, - DIA => gnd_bus(17 downto 2), DIPA => gnd_bus(1 downto 0), - DIB => write_data(17 downto 2), DIPB => write_data(1 downto 0), - WEA => gnd, WEB => pwr, CLKA => clock, CLKB => clock, - SSRA => gnd, SSRB => gnd, ENA => read_allow, ENB => write_allow, - DOA => read_data(17 downto 2), DOPA => read_data(1 downto 0), - DOB => open, DOPB => open ); - ---------------------------------------------------------------- --- -- --- Set allow flags, which control the clock enables for -- --- read, write, and count operations. -- --- -- ---------------------------------------------------------------- - -write_allow <= write_enable AND NOT fullg; -read_allow <= (read_enable or read_after_write) AND NOT empty;-- ; -fcnt_allow <= write_allow XOR read_allow; -- and not read_after_write - -proc33: process (clock) -begin - if rising_edge(clock) then - if (fifo_gsr = '1') then - read_after_write <= '0'; - else - if empty = '1' and read_after_empty='1' and write_enable = '1' then - read_after_write <= '1'; - else - read_after_write <= '0'; - end if; - end if; - end if; -end process; - -process(clock) - begin - if rising_edge(clock) then - if fifo_gsr = '1' or (empty = '0' and emptyg = '1') then - read_after_empty <= empty; - elsif read_enable_in = '1' then - read_after_empty <= '1'; - end if; - end if; - end process; - ---------------------------------------------------------------- --- -- --- Empty flag is set on fifo_gsr (initial), or when on the -- --- next clock cycle, Write Enable is low, and either the -- --- FifOcount is equal to 0, or it is equal to 1 and Read -- --- Enable is high (about to go Empty). -- --- -- ---------------------------------------------------------------- - -ra_or_fcnt0 <= (read_allow OR NOT fcounter(0)); - -emptyg <= (not or_all(fcounter(9 downto 1)) AND ra_or_fcnt0) AND NOT write_allow; - -proc3: process (clock, fifo_gsr) -begin - if rising_edge(clock) then - if (fifo_gsr = '1') then - empty <= '1'; - else - empty <= emptyg; - end if; - end if; -end process proc3; - ---------------------------------------------------------------- --- -- --- Full flag is set on fifo_gsr (but it is cleared on the -- --- first valid clock edge after fifo_gsr is removed), or -- --- when on the next clock cycle, Read Enable is low, and -- --- either the FifOcount is equal to 3FF (hex), or it is -- --- equal to 3FE and the Write Enable is high (about to go -- --- Full). -- --- -- ---------------------------------------------------------------- - ---wa_or_fcnt0 <= (write_allow OR fcounter(0)); -wa_or_fcnt0 <= fcounter(0); -fullg <= (and_all(fcounter(9 downto 1)) AND wa_or_fcnt0 AND NOT read_allow); - -proc4: process (clock, fifo_gsr) -begin - if rising_edge(clock) then - if (fifo_gsr = '1') then - full <= '1'; - else - full <= fullg; - end if; - end if; -end process proc4; - ----------------------------------------------------------------- --- -- --- Generation of Read and Write address pointers. They now -- --- use binary counters, because it is simpler in simulation, -- --- and the previous LFSR implementation wasn't in the -- --- critical path. -- --- -- ----------------------------------------------------------------- - -proc5: process (clock, fifo_gsr) -begin - if rising_edge(clock) then - if (fifo_gsr = '1') then - read_addr <= (others => '0'); - elsif (read_allow = '1') then - read_addr <= read_addr + '1'; - end if; - end if; -end process proc5; - -proc6: process (clock, fifo_gsr) -begin - if rising_edge(clock) then - if (fifo_gsr = '1') then - write_addr <= "0000000000"; - elsif (write_allow = '1') then - write_addr <= write_addr + '1'; - end if; - end if; -end process proc6; - ----------------------------------------------------------------- --- -- --- Generation of FifOcount outputs. Used to determine how -- --- full FifO is, based on a counter that keeps track of how -- --- many words are in the FifO. Also used to generate Full -- --- and Empty flags. Only the upper four bits of the counter -- --- are sent outside the module. -- --- -- ----------------------------------------------------------------- - -proc7: process (clock, fifo_gsr) -begin - if rising_edge(clock) then - if (fifo_gsr = '1') then - fcounter <= "0000000000"; - elsif (fcnt_allow = '1') then - if (read_allow = '1') then -- and read_after_write = '0' - fcounter <= fcounter - '1'; - else - fcounter <= fcounter + '1'; - end if; - end if; - end if; -end process proc7; - -fifocount_out <= fcounter(9 downto 6); - -end architecture; - diff --git a/oldfiles/trb_net16_endpoint_1_trg_2_data_1_regio.vhd b/oldfiles/trb_net16_endpoint_1_trg_2_data_1_regio.vhd deleted file mode 100644 index 8aadcaa..0000000 --- a/oldfiles/trb_net16_endpoint_1_trg_2_data_1_regio.vhd +++ /dev/null @@ -1,960 +0,0 @@ --- the full endpoint for HADES: trg, data, data, regio - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - - - -entity trb_net16_endpoint_1_trg_2_api_1_regio is - generic ( - USE_CHANNEL : channel_config_t := (c_YES,c_YES,c_YES,c_YES); - API_TYPE : channel_config_t := (c_API_PASSIVE,c_API_PASSIVE,c_API_PASSIVE,c_API_PASSIVE); - IBUF_DEPTH : channel_config_t := (0,6,6,6); - FIFO_TO_INT_DEPTH : channel_config_t := (0,6,6,6); - FIFO_TO_APL_DEPTH : channel_config_t := (0,6,6,6); - IBUF_SECURE_MODE : channel_config_t := (c_YES,c_YES,c_YES,c_YES); - API_SECURE_MODE_TO_APL : channel_config_t := (c_YES,c_YES,c_YES,c_YES); - OBUF_DATA_COUNT_WIDTH : integer range 0 to 7 := std_DATA_COUNT_WIDTH; - INIT_CAN_SEND_DATA : channel_config_t := (c_NO,c_NO,c_NO,c_NO); - REPLY_CAN_SEND_DATA : channel_config_t := (c_YES,c_YES,c_YES,c_YES); - SCTR_NUM_STAT_REGS : integer range 0 to 6 := 2; --log2 of number of status registers - SCTR_NUM_CTRL_REGS : integer range 0 to 6 := 2; --log2 of number of ctrl registers - --standard values for output registers - SCTR_INIT_CTRL_REGS : std_logic_vector(2**(3)*32-1 downto 0) := (others => '0'); - --set to 0 for unused ctrl registers to save resources - SCTR_USED_CTRL_REGS : std_logic_vector(2**(3)-1 downto 0) := "00000001"; - --set to 0 for each unused bit in a register - SCTR_USED_CTRL_BITMASK : std_logic_vector(2**(3)*32-1 downto 0) := (others => '1'); - --no data / address out? - SCTR_USE_DATA_PORT : integer := c_NO; - SCTR_USE_1WIRE_INTERFACE : integer := c_YES; - SCTR_INIT_ADDRESS : std_logic_vector(15 downto 0) := x"FFFF"; - SCTR_INIT_UNIQUE_ID : std_logic_vector(95 downto 0) := (others => '0'); - SCTR_COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000"; - SCTR_COMPILE_VERSION : std_logic_vector(15 downto 0) := x"0001"; - SCTR_HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678" - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- Media direction port - MED_DATAREADY_OUT : out std_logic; - MED_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT: out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_READ_IN : in std_logic; - MED_DATAREADY_IN : in std_logic; - MED_DATA_IN : in std_logic_vector(c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_READ_OUT : out std_logic; - MED_ERROR_IN : in std_logic_vector (2 downto 0); - MED_STAT_OP : in std_logic_vector (15 downto 0); - MED_CTRL_OP : out std_logic_vector (15 downto 0); - - -- LVL1 trigger APL - LVL1_ERROR_PATTERN_OUT : out std_logic_vector(31 downto 0); - LVL1_GOT_TRIGGER_OUT : out std_logic; - LVL1_DTYPE_OUT : out std_logic_vector(3 downto 0); - LVL1_SEQNR_OUT : out std_logic_vector(7 downto 0); - LVL1_ERROR_PATTERN_IN : in std_logic_vector(31 downto 0) := x"00000000"; - LVL1_RELEASE_IN : in std_logic := '0'; - - -- IPU-Data Channel APL - IPUD_APL_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0) := x"0000"; - IPUD_APL_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0) := "00"; - IPUD_APL_DATAREADY_IN : in std_logic := '0'; - IPUD_APL_READ_OUT : out std_logic; - IPUD_APL_SHORT_TRANSFER_IN: in std_logic := '0'; - IPUD_APL_DTYPE_IN : in std_logic_vector (3 downto 0) := x"0"; - IPUD_APL_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0) := x"00000000"; - IPUD_APL_SEND_IN : in std_logic:= '0'; - IPUD_APL_TARGET_ADDRESS_IN: in std_logic_vector (15 downto 0) := x"0000"; - IPUD_APL_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - IPUD_APL_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - IPUD_APL_TYP_OUT : out std_logic_vector (2 downto 0); - IPUD_APL_DATAREADY_OUT : out std_logic; - IPUD_APL_READ_IN : in std_logic:= '0'; - IPUD_APL_RUN_OUT : out std_logic; - IPUD_APL_SEQNR_OUT : out std_logic_vector (7 downto 0); - - -- LVL2-Data Channel APL - LVL2_APL_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0) := x"0000"; - LVL2_APL_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0) := "00"; - LVL2_APL_DATAREADY_IN : in std_logic := '0'; - LVL2_APL_READ_OUT : out std_logic; - LVL2_APL_SHORT_TRANSFER_IN: in std_logic := '0'; - LVL2_APL_DTYPE_IN : in std_logic_vector (3 downto 0) := x"0"; - LVL2_APL_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0) := x"00000000"; - LVL2_APL_SEND_IN : in std_logic:= '0'; - LVL2_APL_TARGET_ADDRESS_IN: in std_logic_vector (15 downto 0) := x"0000"; - LVL2_APL_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - LVL2_APL_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - LVL2_APL_TYP_OUT : out std_logic_vector (2 downto 0); - LVL2_APL_DATAREADY_OUT : out std_logic; - LVL2_APL_READ_IN : in std_logic:= '0'; - LVL2_APL_RUN_OUT : out std_logic; - LVL2_APL_SEQNR_OUT : out std_logic_vector (7 downto 0); - - -- Slow Control Data Port - SCTR_COMMON_STAT_REG_IN : in std_logic_vector(std_COMSTATREG*32-1 downto 0) := (others => '0'); - SCTR_COMMON_CTRL_REG_OUT : out std_logic_vector(std_COMCTRLREG*32-1 downto 0); - SCTR_REGISTERS_IN : in std_logic_vector(32*2**(SCTR_NUM_STAT_REGS)-1 downto 0) := (others => '0'); - SCTR_REGISTERS_OUT : out std_logic_vector(32*2**(SCTR_NUM_CTRL_REGS)-1 downto 0); - --following ports only used when using internal data port - SCTR_ADDR_OUT : out std_logic_vector(16-1 downto 0); - SCTR_READ_ENABLE_OUT : out std_logic; - SCTR_WRITE_ENABLE_OUT : out std_logic; - SCTR_DATA_OUT : out std_logic_vector(32-1 downto 0); - SCTR_DATA_IN : in std_logic_vector(32-1 downto 0) := (others => '0'); - SCTR_DATAREADY_IN : in std_logic := '0'; - SCTR_NO_MORE_DATA_IN : in std_logic := '0'; - --IDRAM is used if no 1-wire interface, onewire used otherwise - SCTR_IDRAM_DATA_IN : in std_logic_vector(15 downto 0) := (others => '0'); - SCTR_IDRAM_DATA_OUT : out std_logic_vector(15 downto 0); - SCTR_IDRAM_ADDR_IN : in std_logic_vector(2 downto 0) := "000"; - SCTR_IDRAM_WR_IN : in std_logic := '0'; - SCTR_ONEWIRE_INOUT : inout std_logic; - --Additional r/w access to ctrl registers - SCTR_EXT_REG_DATA_IN : in std_logic_vector(31 downto 0) := (others => '0'); - SCTR_EXT_REG_DATA_OUT : out std_logic_vector(31 downto 0); - SCTR_EXT_REG_WRITE_IN : in std_logic := '0'; - SCTR_EXT_REG_ADDR_IN : in std_logic_vector(7 downto 0) := (others => '0'); - -- Status - MPLEX_CTRL : in std_logic_vector (31 downto 0) := (others => '0'); - STAT_CTRL_INIT_BUFFER : in std_logic_vector (4*32-1 downto 0) := (others => '0'); - STAT_CTRL_GEN : in std_logic_vector (4*32-1 downto 0) := (others => '0'); - STAT_GEN_1 : out std_logic_vector (31 downto 0); -- General Status - STAT_GEN_2 : out std_logic_vector (31 downto 0); -- General Status - CTRL_GEN : in std_logic_vector (4*32-1 downto 0) := (others => '0') - ); -end entity; - - - - - -architecture trb_net16_endpoint_1_trg_2_api_1_regio_arch of trb_net16_endpoint_1_trg_2_api_1_regio is - - component trb_net_onewire is - generic( - USE_TEMPERATURE_READOUT : integer range 0 to 1 := 1; - CLK_PERIOD : integer := 10 --clk period in ns - ); - port( - CLK : in std_logic; - RESET : in std_logic; - --connection to 1-wire interface - ONEWIRE : inout std_logic; - --connection to id ram, according to memory map in TrbNetRegIO - DATA_OUT : out std_logic_vector(15 downto 0); - ADDR_OUT : out std_logic_vector(2 downto 0); - WRITE_OUT: out std_logic; - TEMP_OUT : out std_logic_vector(11 downto 0); - STAT : out std_logic_vector(31 downto 0) - ); - end component; - - component trb_net16_regIO is - generic ( - REGISTER_WIDTH : integer range 32 to 32 := 32; - ADDRESS_WIDTH : integer range 8 to 16 := 16; - NUM_STAT_REGS : integer range 0 to 6 := 1; --log2 of number of status registers - NUM_CTRL_REGS : integer range 0 to 6 := 2; --log2 of number of ctrl registers - --standard values for output registers - INIT_CTRL_REGS : std_logic_vector(2**(3)*32-1 downto 0) := - (others => '0'); - --set to 0 for unused ctrl registers to save resources - USED_CTRL_REGS : std_logic_vector(2**(3)-1 downto 0) := "00000001"; - --set to 0 for each unused bit in a register - USED_CTRL_BITMASK : std_logic_vector(2**(3)*32-1 downto 0) := - (others => '1'); - USE_DAT_PORT : integer range 0 to 1 := c_YES; --internal data port - - INIT_ADDRESS : std_logic_vector(15 downto 0) := x"FFFF"; - INIT_UNIQUE_ID : std_logic_vector(95 downto 0) := (others => '0'); - COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000"; - COMPILE_VERSION : std_logic_vector(15 downto 0) := x"0001"; - HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678" - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Port to API - API_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - API_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - API_DATAREADY_OUT : out std_logic; - API_READ_IN : in std_logic; - API_SHORT_TRANSFER_OUT : out std_logic; - API_DTYPE_OUT : out std_logic_vector (3 downto 0); - API_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); - API_SEND_OUT : out std_logic; - API_TARGET_ADDRESS_OUT : out std_logic_vector (15 downto 0); - -- Receiver port - API_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); - API_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - API_TYP_IN : in std_logic_vector (2 downto 0); - API_DATAREADY_IN : in std_logic; - API_READ_OUT : out std_logic; - -- APL Control port - API_RUN_IN : in std_logic; - API_SEQNR_IN : in std_logic_vector (7 downto 0); - - --Port to write Unique ID - IDRAM_DATA_IN : in std_logic_vector(15 downto 0); - IDRAM_DATA_OUT : out std_logic_vector(15 downto 0); - IDRAM_ADDR_IN : in std_logic_vector(2 downto 0); - IDRAM_WR_IN : in std_logic; - MY_ADDRESS_OUT : out std_logic_vector(15 downto 0); - - --Common Register in / out - COMMON_STAT_REG_IN : in std_logic_vector(std_COMSTATREG*32-1 downto 0); - COMMON_CTRL_REG_OUT : out std_logic_vector(std_COMCTRLREG*32-1 downto 0); - --Custom Register in / out - REGISTERS_IN : in std_logic_vector(REGISTER_WIDTH*2**(NUM_STAT_REGS)-1 downto 0); - REGISTERS_OUT : out std_logic_vector(REGISTER_WIDTH*2**(NUM_CTRL_REGS)-1 downto 0); - --Internal Data Port - DAT_ADDR_OUT : out std_logic_vector(ADDRESS_WIDTH-1 downto 0); - DAT_READ_ENABLE_OUT : out std_logic; - DAT_WRITE_ENABLE_OUT: out std_logic; - DAT_DATA_OUT : out std_logic_vector(REGISTER_WIDTH-1 downto 0); - --Data input can only be used as reaction on read or write access. write operation should return data - --if successful - DAT_DATA_IN : in std_logic_vector(REGISTER_WIDTH-1 downto 0); - DAT_DATAREADY_IN : in std_logic; - DAT_NO_MORE_DATA_IN : in std_logic; - --finish transmission, when reading from a fifo and it got empty - --Additional write access to ctrl registers - EXT_REG_DATA_IN : in std_logic_vector(31 downto 0); - EXT_REG_DATA_OUT : out std_logic_vector(31 downto 0); - EXT_REG_WRITE_IN : in std_logic; - EXT_REG_ADDR_IN : in std_logic_vector(7 downto 0); - STAT : out std_logic_vector(31 downto 0) - ); - end component; - - component trb_net16_iobuf is - generic ( - IBUF_DEPTH : integer range 0 to 6 := c_FIFO_BRAM;--std_FIFO_DEPTH; - IBUF_SECURE_MODE : integer range 0 to 1 := c_NO;--std_IBUF_SECURE_MODE; - SBUF_VERSION : integer range 0 to 1 := std_SBUF_VERSION; - OBUF_DATA_COUNT_WIDTH : integer range 2 to 7 := std_DATA_COUNT_WIDTH; - USE_ACKNOWLEDGE : integer range 0 to 1 := std_USE_ACKNOWLEDGE; - USE_CHECKSUM : integer range 0 to 1 := c_YES; - USE_VENDOR_CORES : integer range 0 to 1 := c_YES; - INIT_CAN_SEND_DATA : integer range 0 to 1 := c_YES; - REPLY_CAN_SEND_DATA : integer range 0 to 1 := c_YES - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_INIT_DATAREADY_OUT: out std_logic; - MED_INIT_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_INIT_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_INIT_READ_IN: in std_logic; - - MED_REPLY_DATAREADY_OUT: out std_logic; - MED_REPLY_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_REPLY_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_REPLY_READ_IN: in std_logic; - - - MED_DATAREADY_IN: in std_logic; -- Data word is offered by the Media(the IOBUF MUST read) - MED_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_READ_OUT: out std_logic; - MED_ERROR_IN: in std_logic_vector (2 downto 0); - - - - -- Internal direction port - - INT_INIT_DATAREADY_OUT: out std_logic; - INT_INIT_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_INIT_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_INIT_READ_IN: in std_logic; - - INT_INIT_DATAREADY_IN: in std_logic; - INT_INIT_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_INIT_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_INIT_READ_OUT: out std_logic; - - INT_REPLY_DATAREADY_OUT: out std_logic; - INT_REPLY_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_REPLY_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_IN: in std_logic; - - INT_REPLY_DATAREADY_IN: in std_logic; - INT_REPLY_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_REPLY_PACKET_NUM_IN :in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_OUT: out std_logic; - - -- Status and control port - STAT_GEN: out std_logic_vector (31 downto 0); - STAT_IBUF_BUFFER: out std_logic_vector (31 downto 0); - CTRL_GEN: in std_logic_vector (31 downto 0); - STAT_CTRL_IBUF_BUFFER: in std_logic_vector (31 downto 0) - ); - end component; - - component trb_net16_api_base is - generic ( - API_TYPE : integer range 0 to 1 := c_API_ACTIVE; - FIFO_TO_INT_DEPTH : integer range 1 to 6 := 1;--std_FIFO_DEPTH; - FIFO_TO_APL_DEPTH : integer range 1 to 6 := 1;--std_FIFO_DEPTH; - FORCE_REPLY : integer range 0 to 1 := std_FORCE_REPLY; - SBUF_VERSION : integer range 0 to 1 := std_SBUF_VERSION; - USE_VENDOR_CORES : integer range 0 to 1 := c_YES; - SECURE_MODE_TO_APL: integer range 0 to 1 := c_YES; - SECURE_MODE_TO_INT: integer range 0 to 1 := c_YES; - APL_WRITE_4_PACKETS:integer range 0 to 1 := c_NO - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "application to network" - APL_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_DATAREADY_IN: in std_logic; -- Data word is valid and should be transmitted - APL_READ_OUT: out std_logic; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in std_logic; -- - APL_DTYPE_IN: in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in std_logic; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in std_logic_vector (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word "network to application" - APL_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - APL_TYP_OUT: out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out std_logic; -- Data word is valid and might be read out - APL_READ_IN: in std_logic; -- Read data word - - -- APL Control port - APL_RUN_OUT: out std_logic; -- Data transfer is running - APL_MY_ADDRESS_IN: in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out std_logic_vector (7 downto 0); - - -- Internal direction port - -- This is just a clone from trb_net_iobuf - - INT_MASTER_DATAREADY_OUT: out std_logic; - INT_MASTER_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_MASTER_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_MASTER_READ_IN: in std_logic; - - INT_MASTER_DATAREADY_IN: in std_logic; - INT_MASTER_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_MASTER_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_MASTER_READ_OUT: out std_logic; - - - INT_SLAVE_HEADER_IN: in std_logic; -- Concentrator kindly asks to resend the last - -- header (only for the SLAVE path) - INT_SLAVE_DATAREADY_OUT: out std_logic; - INT_SLAVE_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_SLAVE_READ_IN: in std_logic; - - INT_SLAVE_DATAREADY_IN: in std_logic; - INT_SLAVE_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_SLAVE_READ_OUT: out std_logic; - - -- Status and control port - STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); - end component; - - - - component trb_net16_io_multiplexer is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN: in STD_LOGIC_VECTOR (1 downto 0); - MED_READ_OUT: out STD_LOGIC; - - MED_DATAREADY_OUT: out STD_LOGIC; - MED_DATA_OUT: out STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT: out STD_LOGIC_VECTOR (1 downto 0); - MED_READ_IN: in STD_LOGIC; - - -- Internal direction port - INT_DATA_OUT: out STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_OUT: out STD_LOGIC_VECTOR (c_NUM_WIDTH-1 downto 0); - INT_DATAREADY_OUT: out STD_LOGIC_VECTOR (2**(c_MUX_WIDTH-1)-1 downto 0); - INT_READ_IN: in STD_LOGIC_VECTOR (2**(c_MUX_WIDTH-1)-1 downto 0); - - INT_DATAREADY_IN: in STD_LOGIC_VECTOR (2**c_MUX_WIDTH-1 downto 0); - INT_DATA_IN: in STD_LOGIC_VECTOR ((c_DATA_WIDTH)*(2**c_MUX_WIDTH)-1 downto 0); - INT_PACKET_NUM_IN: in STD_LOGIC_VECTOR (2*(2**c_MUX_WIDTH)-1 downto 0); - INT_READ_OUT: out STD_LOGIC_VECTOR (2**c_MUX_WIDTH-1 downto 0); - - -- Status and control port - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - STAT: out STD_LOGIC_VECTOR (31 downto 0) - ); - end component; - - component trb_net16_term_buf is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - MED_INIT_DATAREADY_OUT: out std_logic; - MED_INIT_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - MED_INIT_PACKET_NUM_OUT: out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_INIT_READ_IN: in std_logic; - - MED_REPLY_DATAREADY_OUT: out std_logic; - MED_REPLY_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - MED_REPLY_PACKET_NUM_OUT: out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_REPLY_READ_IN: in std_logic; - - MED_DATAREADY_IN: in std_logic; - MED_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - MED_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_READ_OUT: out std_logic - ); - end component; - component trb_net16_term is - generic ( - USE_APL_PORT : integer range 0 to 1 := 0; - SECURE_MODE : integer range 0 to 1 := std_TERM_SECURE_MODE - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - INT_DATAREADY_OUT: out std_logic; - INT_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_PACKET_NUM_OUT: out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_IN: in std_logic; - - INT_DATAREADY_IN: in std_logic; - INT_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_OUT: out std_logic; - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out std_logic_vector (7 downto 0); - APL_GOT_TRM: out std_logic; - APL_RELEASE_TRM: in std_logic; - APL_ERROR_PATTERN_IN: in std_logic_vector (31 downto 0) -- see NewTriggerBusNetworkDescr - -- Status and control port - ); - end component; -signal apl_to_buf_INIT_DATAREADY: std_logic_vector(3 downto 0); -signal apl_to_buf_INIT_DATA : std_logic_vector (4*c_DATA_WIDTH-1 downto 0); -signal apl_to_buf_INIT_PACKET_NUM:std_logic_vector (4*c_NUM_WIDTH-1 downto 0); -signal apl_to_buf_INIT_READ : std_logic_vector(3 downto 0); - -signal buf_to_apl_INIT_DATAREADY: std_logic_vector(3 downto 0); -signal buf_to_apl_INIT_DATA : std_logic_vector (4*c_DATA_WIDTH-1 downto 0); -signal buf_to_apl_INIT_PACKET_NUM:std_logic_vector (4*c_NUM_WIDTH-1 downto 0); -signal buf_to_apl_INIT_READ : std_logic_vector(3 downto 0); - -signal apl_to_buf_REPLY_DATAREADY: std_logic_vector(3 downto 0); -signal apl_to_buf_REPLY_DATA : std_logic_vector (4*c_DATA_WIDTH-1 downto 0); -signal apl_to_buf_REPLY_PACKET_NUM:std_logic_vector (4*c_NUM_WIDTH-1 downto 0); -signal apl_to_buf_REPLY_READ : std_logic_vector(3 downto 0); - -signal buf_to_apl_REPLY_DATAREADY: std_logic_vector(3 downto 0); -signal buf_to_apl_REPLY_DATA : std_logic_vector (4*c_DATA_WIDTH-1 downto 0); -signal buf_to_apl_REPLY_PACKET_NUM:std_logic_vector (4*c_NUM_WIDTH-1 downto 0); -signal buf_to_apl_REPLY_READ : std_logic_vector(3 downto 0); - --- for the connection to the multiplexer -signal MED_IO_DATAREADY_IN : std_logic_vector(3 downto 0); -signal MED_IO_DATA_IN : std_logic_vector (c_DATA_WIDTH-1 downto 0); -signal MED_IO_PACKET_NUM_IN : std_logic_vector (c_NUM_WIDTH-1 downto 0); -signal MED_IO_READ_OUT : std_logic_vector(3 downto 0); - -signal MED_IO_DATAREADY_OUT : std_logic_vector(7 downto 0); -signal MED_IO_DATA_OUT : std_logic_vector (8*c_DATA_WIDTH-1 downto 0); -signal MED_IO_PACKET_NUM_OUT : std_logic_vector (8*c_NUM_WIDTH-1 downto 0); -signal MED_IO_READ_IN : std_logic_vector(7 downto 0); - -signal buf_APL_DATA_IN : std_logic_vector(3*c_DATA_WIDTH-1 downto 0); -signal buf_APL_PACKET_NUM_IN : std_logic_vector(3*c_NUM_WIDTH-1 downto 0); -signal buf_APL_DATAREADY_IN : std_logic_vector(2 downto 0); -signal buf_APL_READ_OUT : std_logic_vector(2 downto 0); -signal buf_APL_SHORT_TRANSFER_IN : std_logic_vector(2 downto 0); -signal buf_APL_DTYPE_IN : std_logic_vector(3*4-1 downto 0); -signal buf_APL_ERROR_PATTERN_IN : std_logic_vector(3*32-1 downto 0); -signal buf_APL_SEND_IN : std_logic_vector(2 downto 0); -signal buf_APL_TARGET_ADDRESS_IN : std_logic_vector(3*16-1 downto 0); -signal buf_APL_DATA_OUT : std_logic_vector(3*c_DATA_WIDTH-1 downto 0); -signal buf_APL_PACKET_NUM_OUT : std_logic_vector(3*c_NUM_WIDTH-1 downto 0); -signal buf_APL_DATAREADY_OUT : std_logic_vector(2 downto 0); -signal buf_APL_READ_IN : std_logic_vector(2 downto 0); -signal buf_APL_TYP_OUT : std_logic_vector(3*3-1 downto 0); -signal buf_APL_RUN_OUT : std_logic_vector(2 downto 0); -signal buf_APL_SEQNR_OUT : std_logic_vector(3*8-1 downto 0); - -signal MY_ADDRESS : std_logic_vector(15 downto 0); - -signal buf_api_stat_fifo_to_apl, buf_api_stat_fifo_to_int : std_logic_vector (4*32-1 downto 0); -signal buf_STAT_GEN : std_logic_vector(32*4-1 downto 0); -signal buf_STAT_INIT_BUFFER : std_logic_vector(32*4-1 downto 0); -signal buf_CTRL_GEN : std_logic_vector(32*4-1 downto 0); -signal buf_STAT_CTRL_INIT_BUFFER : std_logic_vector(32*4-1 downto 0); -signal SCTR_REGIO_STAT : std_logic_vector(31 downto 0); - -signal buf_COMMON_STAT_REG_IN: std_logic_vector(std_COMSTATREG*32-1 downto 0); - -signal buf_IDRAM_DATA_IN : std_logic_vector(15 downto 0); -signal buf_IDRAM_DATA_OUT : std_logic_vector(15 downto 0); -signal buf_IDRAM_ADDR_IN : std_logic_vector(2 downto 0); -signal buf_IDRAM_WR_IN : std_logic; - -begin - - MED_CTRL_OP(15) <= MED_STAT_OP(15); - MED_CTRL_OP(14 downto 0) <= (others => '0'); - - --Connections for data channel - genbuffers : for i in 0 to 3 generate - geniobuf: if USE_CHANNEL(i) = c_YES generate - IOBUF: trb_net16_iobuf - generic map ( - IBUF_DEPTH => IBUF_DEPTH(i), - IBUF_SECURE_MODE => IBUF_SECURE_MODE(i), - SBUF_VERSION => 0, - USE_ACKNOWLEDGE => cfg_USE_ACKNOWLEDGE(i), - USE_VENDOR_CORES => c_YES, - USE_CHECKSUM => cfg_USE_CHECKSUM(i), - INIT_CAN_SEND_DATA => INIT_CAN_SEND_DATA(i), - REPLY_CAN_SEND_DATA => REPLY_CAN_SEND_DATA(i) - ) - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_IO_DATAREADY_OUT(i*2), - MED_INIT_DATA_OUT => MED_IO_DATA_OUT((i*2+1)*c_DATA_WIDTH-1 downto i*2*c_DATA_WIDTH), - MED_INIT_PACKET_NUM_OUT => MED_IO_PACKET_NUM_OUT((i*2+1)*c_NUM_WIDTH-1 downto i*2*c_NUM_WIDTH), - MED_INIT_READ_IN => MED_IO_READ_IN(i*2), - - MED_DATAREADY_IN => MED_IO_DATAREADY_IN(i), - MED_DATA_IN => MED_IO_DATA_IN, - MED_PACKET_NUM_IN => MED_IO_PACKET_NUM_IN, - MED_READ_OUT => MED_IO_READ_OUT(i), - MED_ERROR_IN => MED_ERROR_IN, - - MED_REPLY_DATAREADY_OUT => MED_IO_DATAREADY_OUT(i*2+1), - MED_REPLY_DATA_OUT => MED_IO_DATA_OUT((i*2+2)*c_DATA_WIDTH-1 downto (i*2+1)*c_DATA_WIDTH), - MED_REPLY_PACKET_NUM_OUT=> MED_IO_PACKET_NUM_OUT((i*2+2)*c_NUM_WIDTH-1 downto (i*2+1)*c_NUM_WIDTH), - MED_REPLY_READ_IN => MED_IO_READ_IN(i*2+1), - - -- Internal direction port - - INT_INIT_DATAREADY_OUT => buf_to_apl_INIT_DATAREADY(i), - INT_INIT_DATA_OUT => buf_to_apl_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_INIT_PACKET_NUM_OUT=> buf_to_apl_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_INIT_READ_IN => buf_to_apl_INIT_READ(i), - - INT_INIT_DATAREADY_IN => apl_to_buf_INIT_DATAREADY(i), - INT_INIT_DATA_IN => apl_to_buf_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_INIT_PACKET_NUM_IN => apl_to_buf_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_INIT_READ_OUT => apl_to_buf_INIT_READ(i), - - INT_REPLY_DATAREADY_OUT => buf_to_apl_REPLY_DATAREADY(i), - INT_REPLY_DATA_OUT => buf_to_apl_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_REPLY_PACKET_NUM_OUT=> buf_to_apl_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_REPLY_READ_IN => buf_to_apl_REPLY_READ(i), - - INT_REPLY_DATAREADY_IN => apl_to_buf_REPLY_DATAREADY(i), - INT_REPLY_DATA_IN => apl_to_buf_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_REPLY_PACKET_NUM_IN => apl_to_buf_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_REPLY_READ_OUT => apl_to_buf_REPLY_READ(i), - - -- Status and control port - STAT_GEN => buf_STAT_GEN(32*(i+1)-1 downto i*32), - STAT_IBUF_BUFFER => buf_STAT_INIT_BUFFER(32*(i+1)-1 downto i*32), - CTRL_GEN => buf_CTRL_GEN(32*(i+1)-1 downto i*32), - STAT_CTRL_IBUF_BUFFER => buf_STAT_CTRL_INIT_BUFFER(32*(i+1)-1 downto i*32) - ); - genactapi : if API_TYPE(i) = c_API_ACTIVE and i /= 0 generate - DAT_ACTIVE_API: trb_net16_api_base - generic map ( - API_TYPE => API_TYPE(i), - FIFO_TO_INT_DEPTH => FIFO_TO_INT_DEPTH(i), - FIFO_TO_APL_DEPTH => FIFO_TO_APL_DEPTH(i), - FORCE_REPLY => cfg_FORCE_REPLY(i), - SBUF_VERSION => 0 - ) - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => buf_APL_DATA_IN((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - APL_PACKET_NUM_IN => buf_APL_PACKET_NUM_IN((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - APL_DATAREADY_IN => buf_APL_DATAREADY_IN(i), - APL_READ_OUT => buf_APL_READ_OUT(i), - APL_SHORT_TRANSFER_IN => buf_APL_SHORT_TRANSFER_IN(i), - APL_DTYPE_IN => buf_APL_DTYPE_IN((i+1)*4-1 downto i*4), - APL_ERROR_PATTERN_IN => buf_APL_ERROR_PATTERN_IN((i+1)*32-1 downto i*32), - APL_SEND_IN => buf_APL_SEND_IN(i), - APL_TARGET_ADDRESS_IN => buf_APL_TARGET_ADDRESS_IN((i+1)*16-1 downto i*16), - -- Receiver port - APL_DATA_OUT => buf_APL_DATA_OUT((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - APL_PACKET_NUM_OUT=> buf_APL_PACKET_NUM_OUT((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - APL_TYP_OUT => buf_APL_TYP_OUT((i+1)*3-1 downto i*3), - APL_DATAREADY_OUT => buf_APL_DATAREADY_OUT(i), - APL_READ_IN => buf_APL_READ_IN(i), - -- APL Control port - APL_RUN_OUT => buf_APL_RUN_OUT(i), - APL_MY_ADDRESS_IN => MY_ADDRESS, - APL_SEQNR_OUT => buf_APL_SEQNR_OUT((i+1)*8-1 downto i*8), - -- Internal direction port - INT_MASTER_DATAREADY_OUT => apl_to_buf_INIT_DATAREADY(i), - INT_MASTER_DATA_OUT => apl_to_buf_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_MASTER_PACKET_NUM_OUT=> apl_to_buf_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_MASTER_READ_IN => apl_to_buf_INIT_READ(i), - INT_MASTER_DATAREADY_IN => buf_to_apl_INIT_DATAREADY(i), - INT_MASTER_DATA_IN => buf_to_apl_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_MASTER_PACKET_NUM_IN => buf_to_apl_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_MASTER_READ_OUT => buf_to_apl_INIT_READ(i), - INT_SLAVE_HEADER_IN => '0', - INT_SLAVE_DATAREADY_OUT => apl_to_buf_REPLY_DATAREADY(i), - INT_SLAVE_DATA_OUT => apl_to_buf_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_SLAVE_PACKET_NUM_OUT => apl_to_buf_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_SLAVE_READ_IN => apl_to_buf_REPLY_READ(i), - INT_SLAVE_DATAREADY_IN => buf_to_apl_REPLY_DATAREADY(i), - INT_SLAVE_DATA_IN => buf_to_apl_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_SLAVE_PACKET_NUM_IN=> buf_to_apl_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_SLAVE_READ_OUT => buf_to_apl_REPLY_READ(i), - -- Status and control port - STAT_FIFO_TO_INT => buf_api_stat_fifo_to_int((i+1)*32-1 downto i*32), - STAT_FIFO_TO_APL => buf_api_stat_fifo_to_apl((i+1)*32-1 downto i*32) - ); - end generate; - genpasapi : if API_TYPE(i) = c_API_PASSIVE and i /= 0 generate - constant j : integer := i-1; - begin - DAT_PASSIVE_API: trb_net16_api_base - generic map ( - API_TYPE => API_TYPE(i), - FIFO_TO_INT_DEPTH => FIFO_TO_INT_DEPTH(i), - FIFO_TO_APL_DEPTH => FIFO_TO_APL_DEPTH(i), - FORCE_REPLY => cfg_FORCE_REPLY(i), - SBUF_VERSION => 0 - ) - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => buf_APL_DATA_IN((j+1)*c_DATA_WIDTH-1 downto j*c_DATA_WIDTH), - APL_PACKET_NUM_IN => buf_APL_PACKET_NUM_IN((j+1)*c_NUM_WIDTH-1 downto j*c_NUM_WIDTH), - APL_DATAREADY_IN => buf_APL_DATAREADY_IN(j), - APL_READ_OUT => buf_APL_READ_OUT(j), - APL_SHORT_TRANSFER_IN => buf_APL_SHORT_TRANSFER_IN(j), - APL_DTYPE_IN => buf_APL_DTYPE_IN((j+1)*4-1 downto j*4), - APL_ERROR_PATTERN_IN => buf_APL_ERROR_PATTERN_IN((j+1)*32-1 downto j*32), - APL_SEND_IN => buf_APL_SEND_IN(j), - APL_TARGET_ADDRESS_IN => buf_APL_TARGET_ADDRESS_IN((j+1)*16-1 downto j*16), - -- Receiver port - APL_DATA_OUT => buf_APL_DATA_OUT((j+1)*c_DATA_WIDTH-1 downto j*c_DATA_WIDTH), - APL_PACKET_NUM_OUT=> buf_APL_PACKET_NUM_OUT((j+1)*c_NUM_WIDTH-1 downto j*c_NUM_WIDTH), - APL_TYP_OUT => buf_APL_TYP_OUT((j+1)*3-1 downto j*3), - APL_DATAREADY_OUT => buf_APL_DATAREADY_OUT(j), - APL_READ_IN => buf_APL_READ_IN(j), - -- APL Control port - APL_RUN_OUT => buf_APL_RUN_OUT(j), - APL_MY_ADDRESS_IN => MY_ADDRESS, - APL_SEQNR_OUT => buf_APL_SEQNR_OUT((j+1)*8-1 downto j*8), - -- Internal direction port - INT_MASTER_DATAREADY_OUT => apl_to_buf_REPLY_DATAREADY(i), - INT_MASTER_DATA_OUT => apl_to_buf_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_MASTER_PACKET_NUM_OUT=> apl_to_buf_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_MASTER_READ_IN => apl_to_buf_REPLY_READ(i), - INT_MASTER_DATAREADY_IN => buf_to_apl_REPLY_DATAREADY(i), - INT_MASTER_DATA_IN => buf_to_apl_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_MASTER_PACKET_NUM_IN => buf_to_apl_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_MASTER_READ_OUT => buf_to_apl_REPLY_READ(i), - INT_SLAVE_HEADER_IN => '0', - INT_SLAVE_DATAREADY_OUT => apl_to_buf_INIT_DATAREADY(i), - INT_SLAVE_DATA_OUT => apl_to_buf_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_SLAVE_PACKET_NUM_OUT => apl_to_buf_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_SLAVE_READ_IN => apl_to_buf_INIT_READ(i), - INT_SLAVE_DATAREADY_IN => buf_to_apl_INIT_DATAREADY(i), - INT_SLAVE_DATA_IN => buf_to_apl_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_SLAVE_PACKET_NUM_IN=> buf_to_apl_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_SLAVE_READ_OUT => buf_to_apl_INIT_READ(i), - -- Status and control port - STAT_FIFO_TO_INT => buf_api_stat_fifo_to_int((i+1)*32-1 downto i*32), - STAT_FIFO_TO_APL => buf_api_stat_fifo_to_apl((i+1)*32-1 downto i*32) - ); - end generate; - gentrgapi : if i = 0 generate - apl_to_buf_INIT_DATAREADY(0) <= '0'; - apl_to_buf_INIT_DATA(15 downto 0) <= (others => '0'); - apl_to_buf_INIT_PACKET_NUM(1 downto 0) <= "00"; - buf_to_apl_REPLY_READ(0) <= '1'; - trglvl1 : trb_net16_term - generic map( - USE_APL_PORT => c_YES, - SECURE_MODE => std_TERM_SECURE_MODE - ) - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - - INT_DATAREADY_OUT => apl_to_buf_REPLY_DATAREADY(i), - INT_DATA_OUT => apl_to_buf_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_PACKET_NUM_OUT=> apl_to_buf_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_READ_IN => apl_to_buf_REPLY_READ(i), - - INT_DATAREADY_IN => buf_to_apl_INIT_DATAREADY(i), - INT_DATA_IN => buf_to_apl_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_PACKET_NUM_IN=> buf_to_apl_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_READ_OUT => buf_to_apl_INIT_READ(i), - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT => LVL1_DTYPE_OUT, - APL_ERROR_PATTERN_OUT => LVL1_ERROR_PATTERN_OUT, - APL_SEQNR_OUT => LVL1_SEQNR_OUT, - APL_GOT_TRM => LVL1_GOT_TRIGGER_OUT, - APL_RELEASE_TRM => LVL1_RELEASE_IN, - APL_ERROR_PATTERN_IN => LVL1_ERROR_PATTERN_IN - ); - end generate; - end generate; - gentermbuf: if USE_CHANNEL(i) = c_NO generate - termbuf: trb_net16_term_buf - port map( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_IO_DATAREADY_IN(i), - MED_DATA_IN => MED_IO_DATA_IN, - MED_PACKET_NUM_IN => MED_IO_PACKET_NUM_IN, - MED_READ_OUT => MED_IO_READ_OUT(i), - - MED_INIT_DATAREADY_OUT => MED_IO_DATAREADY_OUT(i*2), - MED_INIT_DATA_OUT => MED_IO_DATA_OUT((i*2+1)*c_DATA_WIDTH-1 downto i*2*c_DATA_WIDTH), - MED_INIT_PACKET_NUM_OUT => MED_IO_PACKET_NUM_OUT((i*2+1)*c_NUM_WIDTH-1 downto i*2*c_NUM_WIDTH), - MED_INIT_READ_IN => MED_IO_READ_IN(i*2), - MED_REPLY_DATAREADY_OUT => MED_IO_DATAREADY_OUT(i*2+1), - MED_REPLY_DATA_OUT => MED_IO_DATA_OUT((i*2+2)*c_DATA_WIDTH-1 downto (i*2+1)*c_DATA_WIDTH), - MED_REPLY_PACKET_NUM_OUT=> MED_IO_PACKET_NUM_OUT((i*2+2)*c_NUM_WIDTH-1 downto (i*2+1)*c_NUM_WIDTH), - MED_REPLY_READ_IN => MED_IO_READ_IN(i*2+1) - ); - end generate; - end generate; - - - buf_APL_DATA_IN(1*c_DATA_WIDTH-1 downto 0*c_DATA_WIDTH) <= IPUD_APL_DATA_IN; - buf_APL_DATA_IN(2*c_DATA_WIDTH-1 downto 1*c_DATA_WIDTH) <= LVL2_APL_DATA_IN; - buf_APL_PACKET_NUM_IN(1*c_NUM_WIDTH-1 downto 0*c_NUM_WIDTH) <= IPUD_APL_PACKET_NUM_IN; - buf_APL_PACKET_NUM_IN(2*c_NUM_WIDTH-1 downto 1*c_NUM_WIDTH) <= LVL2_APL_PACKET_NUM_IN; - buf_APL_DATAREADY_IN(0) <= IPUD_APL_DATAREADY_IN; - buf_APL_DATAREADY_IN(1) <= LVL2_APL_DATAREADY_IN; - IPUD_APL_READ_OUT <= buf_APL_READ_OUT(0); - LVL2_APL_READ_OUT <= buf_APL_READ_OUT(1); - buf_APL_SHORT_TRANSFER_IN(0) <= IPUD_APL_SHORT_TRANSFER_IN; - buf_APL_SHORT_TRANSFER_IN(1) <= LVL2_APL_SHORT_TRANSFER_IN; - buf_APL_DTYPE_IN(1*4-1 downto 0*4) <= IPUD_APL_DTYPE_IN; - buf_APL_DTYPE_IN(2*4-1 downto 1*4) <= LVL2_APL_DTYPE_IN; - buf_APL_ERROR_PATTERN_IN(1*32-1 downto 0*32) <= IPUD_APL_ERROR_PATTERN_IN; - buf_APL_ERROR_PATTERN_IN(2*32-1 downto 1*32) <= LVL2_APL_ERROR_PATTERN_IN; - buf_APL_SEND_IN(0) <= IPUD_APL_SEND_IN; - buf_APL_SEND_IN(1) <= LVL2_APL_SEND_IN; - buf_APL_TARGET_ADDRESS_IN(1*16-1 downto 0*16) <= IPUD_APL_TARGET_ADDRESS_IN; - buf_APL_TARGET_ADDRESS_IN(2*16-1 downto 1*16) <= LVL2_APL_TARGET_ADDRESS_IN; - - IPUD_APL_DATA_OUT <= buf_APL_DATA_OUT(1*c_DATA_WIDTH-1 downto 0*c_DATA_WIDTH); - LVL2_APL_DATA_OUT <= buf_APL_DATA_OUT(2*c_DATA_WIDTH-1 downto 1*c_DATA_WIDTH); - IPUD_APL_PACKET_NUM_OUT <= buf_APL_DATA_OUT(1*c_NUM_WIDTH-1 downto 0*c_NUM_WIDTH); - LVL2_APL_PACKET_NUM_OUT <= buf_APL_DATA_OUT(2*c_NUM_WIDTH-1 downto 1*c_NUM_WIDTH); - IPUD_APL_DATAREADY_OUT <= buf_APL_DATAREADY_OUT(0); - LVL2_APL_DATAREADY_OUT <= buf_APL_DATAREADY_OUT(1); - buf_APL_READ_IN(0) <= IPUD_APL_READ_IN; - buf_APL_READ_IN(1) <= LVL2_APL_READ_IN; - IPUD_APL_TYP_OUT <= buf_APL_TYP_OUT(2 downto 0); - LVL2_APL_TYP_OUT <= buf_APL_TYP_OUT(5 downto 3); - - buf_APL_DTYPE_IN(1*4-1 downto 0*4) <= IPUD_APL_DTYPE_IN; - buf_APL_DTYPE_IN(2*4-1 downto 1*4) <= LVL2_APL_DTYPE_IN; - IPUD_APL_RUN_OUT <= buf_APL_RUN_OUT(0); - LVL2_APL_RUN_OUT <= buf_APL_RUN_OUT(1); - IPUD_APL_SEQNR_OUT <= buf_APL_SEQNR_OUT(1*8-1 downto 0*8); - LVL2_APL_SEQNR_OUT <= buf_APL_SEQNR_OUT(2*8-1 downto 1*8); - - gen_regio : if USE_CHANNEL(c_SLOW_CTRL_CHANNEL) = c_YES generate - regIO : trb_net16_regIO - generic map( - REGISTER_WIDTH => 32, - ADDRESS_WIDTH => 16, - NUM_STAT_REGS => SCTR_NUM_STAT_REGS, - NUM_CTRL_REGS => SCTR_NUM_CTRL_REGS, - --standard values for output registers - INIT_CTRL_REGS => SCTR_INIT_CTRL_REGS, - --set to 0 for unused ctrl registers to save resources - USED_CTRL_REGS => SCTR_USED_CTRL_REGS, - --set to 0 for each unused bit in a register - USED_CTRL_BITMASK => SCTR_USED_CTRL_BITMASK, - --no data / address out? - USE_DAT_PORT => SCTR_USE_DATA_PORT, - INIT_ADDRESS => SCTR_INIT_ADDRESS, - INIT_UNIQUE_ID => SCTR_INIT_UNIQUE_ID, - COMPILE_TIME => SCTR_COMPILE_TIME, - COMPILE_VERSION => SCTR_COMPILE_VERSION, - HARDWARE_VERSION => SCTR_HARDWARE_VERSION - ) - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- Port to API - API_DATA_OUT => buf_APL_DATA_IN(3*c_DATA_WIDTH-1 downto 2*c_DATA_WIDTH), - API_PACKET_NUM_OUT => buf_APL_PACKET_NUM_IN(3*c_NUM_WIDTH-1 downto 2*c_NUM_WIDTH), - API_DATAREADY_OUT => buf_APL_DATAREADY_IN(2), - API_READ_IN => buf_APL_READ_OUT(2), - API_SHORT_TRANSFER_OUT => buf_APL_SHORT_TRANSFER_IN(2), - API_DTYPE_OUT => buf_APL_DTYPE_IN(3*4-1 downto 2*4), - API_ERROR_PATTERN_OUT => buf_APL_ERROR_PATTERN_IN(3*32-1 downto 2*32), - API_SEND_OUT => buf_APL_SEND_IN(2), - API_TARGET_ADDRESS_OUT => buf_APL_TARGET_ADDRESS_IN(3*16-1 downto 2*16), - API_DATA_IN => buf_APL_DATA_OUT(3*c_DATA_WIDTH-1 downto 2*c_DATA_WIDTH), - API_PACKET_NUM_IN => buf_APL_PACKET_NUM_OUT(3*c_NUM_WIDTH-1 downto 2*c_NUM_WIDTH), - API_TYP_IN => buf_APL_TYP_OUT(3*3-1 downto 2*3), - API_DATAREADY_IN => buf_APL_DATAREADY_OUT(2), - API_READ_OUT => buf_APL_READ_IN(2), - API_RUN_IN => buf_APL_RUN_OUT(2), - API_SEQNR_IN => buf_APL_SEQNR_OUT(3*8-1 downto 2*8), - --Port to write Unique ID - IDRAM_DATA_IN => buf_IDRAM_DATA_IN, - IDRAM_DATA_OUT => buf_IDRAM_DATA_OUT, - IDRAM_ADDR_IN => buf_IDRAM_ADDR_IN, - IDRAM_WR_IN => buf_IDRAM_WR_IN, - MY_ADDRESS_OUT => MY_ADDRESS, - --Common Register in / out - COMMON_STAT_REG_IN => buf_COMMON_STAT_REG_IN, - COMMON_CTRL_REG_OUT => SCTR_COMMON_CTRL_REG_OUT, - --Custom Register in / out - REGISTERS_IN => SCTR_REGISTERS_IN, - REGISTERS_OUT => SCTR_REGISTERS_OUT, - --following ports only used when no internal register is accessed - DAT_ADDR_OUT => SCTR_ADDR_OUT, - DAT_READ_ENABLE_OUT => SCTR_READ_ENABLE_OUT, - DAT_WRITE_ENABLE_OUT => SCTR_WRITE_ENABLE_OUT, - DAT_DATA_OUT => SCTR_DATA_OUT, - DAT_DATA_IN => SCTR_DATA_IN, - DAT_DATAREADY_IN => SCTR_DATAREADY_IN, - DAT_NO_MORE_DATA_IN => SCTR_NO_MORE_DATA_IN, - EXT_REG_DATA_IN => SCTR_EXT_REG_DATA_IN, - EXT_REG_DATA_OUT => SCTR_EXT_REG_DATA_OUT, - EXT_REG_WRITE_IN => SCTR_EXT_REG_WRITE_IN, - EXT_REG_ADDR_IN => SCTR_EXT_REG_ADDR_IN, - STAT => SCTR_REGIO_STAT - ); - end generate; - - gen_no1wire : if SCTR_USE_1WIRE_INTERFACE = 0 generate - buf_IDRAM_DATA_IN <= SCTR_IDRAM_DATA_IN; - buf_IDRAM_ADDR_IN <= SCTR_IDRAM_ADDR_IN; - buf_IDRAM_WR_IN <= SCTR_IDRAM_WR_IN; - SCTR_IDRAM_DATA_OUT <= buf_IDRAM_DATA_OUT; - SCTR_ONEWIRE_INOUT <= '0'; - buf_COMMON_STAT_REG_IN <= SCTR_COMMON_STAT_REG_IN; - end generate; - gen_1wire : if SCTR_USE_1WIRE_INTERFACE = 1 generate - buf_COMMON_STAT_REG_IN(19 downto 0) <= SCTR_COMMON_STAT_REG_IN(19 downto 0); - buf_COMMON_STAT_REG_IN(SCTR_COMMON_STAT_REG_IN'left downto 32) <= SCTR_COMMON_STAT_REG_IN(SCTR_COMMON_STAT_REG_IN'left downto 32); - - SCTR_IDRAM_DATA_OUT <= (others => '0'); - - onewire_interface : trb_net_onewire - generic map( - USE_TEMPERATURE_READOUT => c_YES, - CLK_PERIOD => 10 - ) - port map( - CLK => CLK, - RESET => RESET, - --connection to 1-wire interface - ONEWIRE => SCTR_ONEWIRE_INOUT, - --connection to id ram, according to memory map in TrbNetRegIO - DATA_OUT => buf_IDRAM_DATA_IN, - ADDR_OUT => buf_IDRAM_ADDR_IN, - WRITE_OUT=> buf_IDRAM_WR_IN, - TEMP_OUT => buf_COMMON_STAT_REG_IN(31 downto 20), - STAT => open - ); - end generate; - - - MPLEX: trb_net16_io_multiplexer - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_DATAREADY_IN, - MED_DATA_IN => MED_DATA_IN, - MED_PACKET_NUM_IN => MED_PACKET_NUM_IN, - MED_READ_OUT => MED_READ_OUT, - MED_DATAREADY_OUT => MED_DATAREADY_OUT, - MED_DATA_OUT => MED_DATA_OUT, - MED_PACKET_NUM_OUT => MED_PACKET_NUM_OUT, - MED_READ_IN => MED_READ_IN, - INT_DATAREADY_OUT => MED_IO_DATAREADY_IN, - INT_DATA_OUT => MED_IO_DATA_IN, - INT_PACKET_NUM_OUT => MED_IO_PACKET_NUM_IN, - INT_READ_IN => MED_IO_READ_OUT, - INT_DATAREADY_IN => MED_IO_DATAREADY_OUT, - INT_DATA_IN => MED_IO_DATA_OUT, - INT_PACKET_NUM_IN => MED_IO_PACKET_NUM_OUT, - INT_READ_OUT => MED_IO_READ_IN, - CTRL => MPLEX_CTRL - ); - - -buf_STAT_CTRL_INIT_BUFFER <= STAT_CTRL_INIT_BUFFER; -buf_CTRL_GEN <= CTRL_GEN; -STAT_GEN_1 <= (others => '0'); -STAT_GEN_2 <= (others => '0'); - -end architecture; - diff --git a/oldfiles/trb_net16_endpoint_2_trg.vhd b/oldfiles/trb_net16_endpoint_2_trg.vhd deleted file mode 100644 index a329354..0000000 --- a/oldfiles/trb_net16_endpoint_2_trg.vhd +++ /dev/null @@ -1,461 +0,0 @@ - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - - - -entity trb_net16_endpoint_2_trg is - generic ( - --channel numbers - LVL1_CHANNEL_NUM : integer := 0; - LVL2_CHANNEL_NUM : integer := 1; - --register error_pattern_in? - LVL1_SECURE_MODE : integer := std_TERM_SECURE_MODE; - LVL2_SECURE_MODE : integer := std_TERM_SECURE_MODE - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- Media direction port - MED_DATAREADY_OUT : out std_logic; - MED_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT: out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_READ_IN : in std_logic; - MED_DATAREADY_IN : in std_logic; - MED_DATA_IN : in std_logic_vector(c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_READ_OUT : out std_logic; - MED_ERROR_IN : in std_logic_vector (2 downto 0); - MED_STAT_OP : in std_logic_vector (15 downto 0); - MED_CTRL_OP : out std_logic_vector (15 downto 0); - - -- LVL1 trigger APL - LVL1_ERROR_PATTERN_OUT : out std_logic_vector(31 downto 0); - LVL1_GOT_TRIGGER_OUT : out std_logic; - LVL1_DTYPE_OUT : out std_logic_vector(3 downto 0); - LVL1_SEQNR_OUT : out std_logic_vector(7 downto 0); - LVL1_ERROR_PATTERN_IN : in std_logic_vector(31 downto 0); - LVL1_RELEASE_IN : in std_logic; - - -- LVL2 trigger APL - LVL2_ERROR_PATTERN_OUT : out std_logic_vector(31 downto 0); - LVL2_GOT_TRIGGER_OUT : out std_logic; - LVL2_DTYPE_OUT : out std_logic_vector(3 downto 0); - LVL2_SEQNR_OUT : out std_logic_vector(7 downto 0); - LVL2_ERROR_PATTERN_IN : in std_logic_vector(31 downto 0); - LVL2_RELEASE_IN : in std_logic - ); -end entity; - - - - - -architecture trb_net16_endpoint_2_trg_arch of trb_net16_endpoint_2_trg is - - - - component trb_net16_iobuf is - generic ( - IBUF_DEPTH : integer range 0 to 6 := c_FIFO_BRAM;--std_FIFO_DEPTH; - IBUF_SECURE_MODE : integer range 0 to 1 := c_NO;--std_IBUF_SECURE_MODE; - SBUF_VERSION : integer range 0 to 1 := std_SBUF_VERSION; - OBUF_DATA_COUNT_WIDTH : integer range 2 to 7 := std_DATA_COUNT_WIDTH; - USE_ACKNOWLEDGE : integer range 0 to 1 := std_USE_ACKNOWLEDGE; - USE_CHECKSUM : integer range 0 to 1 := c_YES; - USE_VENDOR_CORES : integer range 0 to 1 := c_YES; - INIT_CAN_SEND_DATA : integer range 0 to 1 := c_YES; - REPLY_CAN_SEND_DATA : integer range 0 to 1 := c_YES - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_INIT_DATAREADY_OUT: out std_logic; - MED_INIT_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_INIT_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_INIT_READ_IN: in std_logic; - - MED_REPLY_DATAREADY_OUT: out std_logic; - MED_REPLY_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_REPLY_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_REPLY_READ_IN: in std_logic; - - - MED_DATAREADY_IN: in std_logic; -- Data word is offered by the Media(the IOBUF MUST read) - MED_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_READ_OUT: out std_logic; - MED_ERROR_IN: in std_logic_vector (2 downto 0); - - - - -- Internal direction port - - INT_INIT_DATAREADY_OUT: out std_logic; - INT_INIT_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_INIT_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_INIT_READ_IN: in std_logic; - - INT_INIT_DATAREADY_IN: in std_logic; - INT_INIT_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_INIT_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_INIT_READ_OUT: out std_logic; - - INT_REPLY_DATAREADY_OUT: out std_logic; - INT_REPLY_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_REPLY_PACKET_NUM_OUT:out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_IN: in std_logic; - - INT_REPLY_DATAREADY_IN: in std_logic; - INT_REPLY_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_REPLY_PACKET_NUM_IN :in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_REPLY_READ_OUT: out std_logic; - - -- Status and control port - STAT_GEN: out std_logic_vector (31 downto 0); - STAT_IBUF_BUFFER: out std_logic_vector (31 downto 0); - CTRL_GEN: in std_logic_vector (31 downto 0); - STAT_CTRL_IBUF_BUFFER: in std_logic_vector (31 downto 0) - ); - end component; - - - - component trb_net16_io_multiplexer is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN: in STD_LOGIC_VECTOR (1 downto 0); - MED_READ_OUT: out STD_LOGIC; - - MED_DATAREADY_OUT: out STD_LOGIC; - MED_DATA_OUT: out STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT: out STD_LOGIC_VECTOR (1 downto 0); - MED_READ_IN: in STD_LOGIC; - - -- Internal direction port - INT_DATA_OUT: out STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_OUT: out STD_LOGIC_VECTOR (c_NUM_WIDTH-1 downto 0); - INT_DATAREADY_OUT: out STD_LOGIC_VECTOR (2**(c_MUX_WIDTH-1)-1 downto 0); - INT_READ_IN: in STD_LOGIC_VECTOR (2**(c_MUX_WIDTH-1)-1 downto 0); - - INT_DATAREADY_IN: in STD_LOGIC_VECTOR (2**c_MUX_WIDTH-1 downto 0); - INT_DATA_IN: in STD_LOGIC_VECTOR ((c_DATA_WIDTH)*(2**c_MUX_WIDTH)-1 downto 0); - INT_PACKET_NUM_IN: in STD_LOGIC_VECTOR (2*(2**c_MUX_WIDTH)-1 downto 0); - INT_READ_OUT: out STD_LOGIC_VECTOR (2**c_MUX_WIDTH-1 downto 0); - - -- Status and control port - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - STAT: out STD_LOGIC_VECTOR (31 downto 0) - ); - end component; - - component trb_net16_term_buf is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - MED_INIT_DATAREADY_OUT: out std_logic; - MED_INIT_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - MED_INIT_PACKET_NUM_OUT: out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_INIT_READ_IN: in std_logic; - - MED_REPLY_DATAREADY_OUT: out std_logic; - MED_REPLY_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - MED_REPLY_PACKET_NUM_OUT: out std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_REPLY_READ_IN: in std_logic; - - MED_DATAREADY_IN: in std_logic; - MED_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - MED_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_READ_OUT: out std_logic - ); - end component; - component trb_net16_term is - generic ( - USE_APL_PORT : integer range 0 to 1 := 0; - SECURE_MODE : integer range 0 to 1 := std_TERM_SECURE_MODE - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - INT_DATAREADY_OUT: out std_logic; - INT_DATA_OUT: out std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_PACKET_NUM_OUT: out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_IN: in std_logic; - - INT_DATAREADY_IN: in std_logic; - INT_DATA_IN: in std_logic_vector (c_DATA_WIDTH-1 downto 0); -- Data word - INT_PACKET_NUM_IN: in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_OUT: out std_logic; - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out std_logic_vector (7 downto 0); - APL_GOT_TRM: out std_logic; - APL_RELEASE_TRM: in std_logic; - APL_ERROR_PATTERN_IN: in std_logic_vector (31 downto 0) -- see NewTriggerBusNetworkDescr - -- Status and control port - ); - end component; - constant channels : integer := 2**(c_MUX_WIDTH-1); -signal apl_to_buf_INIT_DATAREADY: std_logic_vector(channels-1 downto 0); -signal apl_to_buf_INIT_DATA : std_logic_vector (channels*c_DATA_WIDTH-1 downto 0); -signal apl_to_buf_INIT_PACKET_NUM:std_logic_vector (channels*c_NUM_WIDTH-1 downto 0); -signal apl_to_buf_INIT_READ : std_logic_vector(channels-1 downto 0); - -signal buf_to_apl_INIT_DATAREADY: std_logic_vector(channels-1 downto 0); -signal buf_to_apl_INIT_DATA : std_logic_vector (channels*c_DATA_WIDTH-1 downto 0); -signal buf_to_apl_INIT_PACKET_NUM:std_logic_vector (channels*c_NUM_WIDTH-1 downto 0); -signal buf_to_apl_INIT_READ : std_logic_vector(channels-1 downto 0); - -signal apl_to_buf_REPLY_DATAREADY: std_logic_vector(channels-1 downto 0); -signal apl_to_buf_REPLY_DATA : std_logic_vector (channels*c_DATA_WIDTH-1 downto 0); -signal apl_to_buf_REPLY_PACKET_NUM:std_logic_vector (channels*c_NUM_WIDTH-1 downto 0); -signal apl_to_buf_REPLY_READ : std_logic_vector(channels-1 downto 0); - -signal buf_to_apl_REPLY_DATAREADY: std_logic_vector(channels-1 downto 0); -signal buf_to_apl_REPLY_DATA : std_logic_vector (channels*c_DATA_WIDTH-1 downto 0); -signal buf_to_apl_REPLY_PACKET_NUM:std_logic_vector (channels*c_NUM_WIDTH-1 downto 0); -signal buf_to_apl_REPLY_READ : std_logic_vector(channels-1 downto 0); - --- for the connection to the multiplexer -signal MED_IO_DATAREADY_IN : std_logic_vector(channels-1 downto 0); -signal MED_IO_DATA_IN : std_logic_vector (c_DATA_WIDTH-1 downto 0); -signal MED_IO_PACKET_NUM_IN : std_logic_vector (c_NUM_WIDTH-1 downto 0); -signal MED_IO_READ_OUT : std_logic_vector(channels-1 downto 0); - -signal MED_IO_DATAREADY_OUT : std_logic_vector(channels*2-1 downto 0); -signal MED_IO_DATA_OUT : std_logic_vector (channels*2*c_DATA_WIDTH-1 downto 0); -signal MED_IO_PACKET_NUM_OUT : std_logic_vector (channels*2*c_NUM_WIDTH-1 downto 0); -signal MED_IO_READ_IN : std_logic_vector(channels*2-1 downto 0); - -signal MY_ADDRESS : std_logic_vector(15 downto 0); - -signal buf_api_stat_fifo_to_apl, buf_api_stat_fifo_to_int : std_logic_vector (channels*32-1 downto 0); -signal buf_STAT_GEN : std_logic_vector(32*channels-1 downto 0); -signal buf_STAT_INIT_BUFFER : std_logic_vector(32*channels-1 downto 0); -signal buf_CTRL_GEN : std_logic_vector(32*channels-1 downto 0); -signal buf_STAT_CTRL_INIT_BUFFER : std_logic_vector(32*channels-1 downto 0); -signal SCTR_REGIO_STAT : std_logic_vector(31 downto 0); - -signal buf_COMMON_STAT_REG_IN: std_logic_vector(std_COMSTATREG*32-1 downto 0); - - -begin - - MED_CTRL_OP(15) <= MED_STAT_OP(15); - MED_CTRL_OP(14 downto 0) <= (others => '0'); - - --Connections for data channel - genbuffers : for i in 0 to 2**(c_MUX_WIDTH-1)-1 generate - geniobuf: if i = LVL1_CHANNEL_NUM or i = LVL2_CHANNEL_NUM generate - IOBUF: trb_net16_iobuf - generic map ( - IBUF_DEPTH => 0, - IBUF_SECURE_MODE => c_YES, - SBUF_VERSION => 0, - USE_ACKNOWLEDGE => c_NO, - USE_VENDOR_CORES => c_YES, - USE_CHECKSUM => c_NO, - INIT_CAN_SEND_DATA => c_NO, - REPLY_CAN_SEND_DATA => c_YES - ) - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_IO_DATAREADY_OUT(i*2), - MED_INIT_DATA_OUT => MED_IO_DATA_OUT((i*2+1)*c_DATA_WIDTH-1 downto i*2*c_DATA_WIDTH), - MED_INIT_PACKET_NUM_OUT => MED_IO_PACKET_NUM_OUT((i*2+1)*c_NUM_WIDTH-1 downto i*2*c_NUM_WIDTH), - MED_INIT_READ_IN => MED_IO_READ_IN(i*2), - - MED_DATAREADY_IN => MED_IO_DATAREADY_IN(i), - MED_DATA_IN => MED_IO_DATA_IN, - MED_PACKET_NUM_IN => MED_IO_PACKET_NUM_IN, - MED_READ_OUT => MED_IO_READ_OUT(i), - MED_ERROR_IN => MED_ERROR_IN, - - MED_REPLY_DATAREADY_OUT => MED_IO_DATAREADY_OUT(i*2+1), - MED_REPLY_DATA_OUT => MED_IO_DATA_OUT((i*2+2)*c_DATA_WIDTH-1 downto (i*2+1)*c_DATA_WIDTH), - MED_REPLY_PACKET_NUM_OUT=> MED_IO_PACKET_NUM_OUT((i*2+2)*c_NUM_WIDTH-1 downto (i*2+1)*c_NUM_WIDTH), - MED_REPLY_READ_IN => MED_IO_READ_IN(i*2+1), - - -- Internal direction port - - INT_INIT_DATAREADY_OUT => buf_to_apl_INIT_DATAREADY(i), - INT_INIT_DATA_OUT => buf_to_apl_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_INIT_PACKET_NUM_OUT=> buf_to_apl_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_INIT_READ_IN => buf_to_apl_INIT_READ(i), - - INT_INIT_DATAREADY_IN => apl_to_buf_INIT_DATAREADY(i), - INT_INIT_DATA_IN => apl_to_buf_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_INIT_PACKET_NUM_IN => apl_to_buf_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_INIT_READ_OUT => apl_to_buf_INIT_READ(i), - - INT_REPLY_DATAREADY_OUT => buf_to_apl_REPLY_DATAREADY(i), - INT_REPLY_DATA_OUT => buf_to_apl_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_REPLY_PACKET_NUM_OUT=> buf_to_apl_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_REPLY_READ_IN => buf_to_apl_REPLY_READ(i), - - INT_REPLY_DATAREADY_IN => apl_to_buf_REPLY_DATAREADY(i), - INT_REPLY_DATA_IN => apl_to_buf_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_REPLY_PACKET_NUM_IN => apl_to_buf_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_REPLY_READ_OUT => apl_to_buf_REPLY_READ(i), - - -- Status and control port - STAT_GEN => buf_STAT_GEN(32*(i+1)-1 downto i*32), - STAT_IBUF_BUFFER => buf_STAT_INIT_BUFFER(32*(i+1)-1 downto i*32), - CTRL_GEN => (others => '0'), - STAT_CTRL_IBUF_BUFFER => (others => '0') - ); - - - genlvl1 : if i = LVL1_CHANNEL_NUM generate - apl_to_buf_INIT_DATAREADY(i) <= '0'; - apl_to_buf_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH) <= (others => '0'); - apl_to_buf_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH) <= "00"; - buf_to_apl_REPLY_READ(i) <= '1'; - trglvl1 : trb_net16_term - generic map( - USE_APL_PORT => c_YES, - SECURE_MODE => LVL1_SECURE_MODE - ) - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - - INT_DATAREADY_OUT => apl_to_buf_REPLY_DATAREADY(i), - INT_DATA_OUT => apl_to_buf_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_PACKET_NUM_OUT=> apl_to_buf_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_READ_IN => apl_to_buf_REPLY_READ(i), - - INT_DATAREADY_IN => buf_to_apl_INIT_DATAREADY(i), - INT_DATA_IN => buf_to_apl_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_PACKET_NUM_IN=> buf_to_apl_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_READ_OUT => buf_to_apl_INIT_READ(i), - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT => LVL1_DTYPE_OUT, - APL_ERROR_PATTERN_OUT => LVL1_ERROR_PATTERN_OUT, - APL_SEQNR_OUT => LVL1_SEQNR_OUT, - APL_GOT_TRM => LVL1_GOT_TRIGGER_OUT, - APL_RELEASE_TRM => LVL1_RELEASE_IN, - APL_ERROR_PATTERN_IN => LVL1_ERROR_PATTERN_IN - ); - end generate; - genlvl2 : if i = LVL2_CHANNEL_NUM generate - apl_to_buf_INIT_DATAREADY(i) <= '0'; - apl_to_buf_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH) <= (others => '0'); - apl_to_buf_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH) <= "00"; - buf_to_apl_REPLY_READ(i) <= '1'; - trglvl1 : trb_net16_term - generic map( - USE_APL_PORT => c_YES, - SECURE_MODE => LVL2_SECURE_MODE - ) - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - - INT_DATAREADY_OUT => apl_to_buf_REPLY_DATAREADY(i), - INT_DATA_OUT => apl_to_buf_REPLY_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_PACKET_NUM_OUT=> apl_to_buf_REPLY_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_READ_IN => apl_to_buf_REPLY_READ(i), - - INT_DATAREADY_IN => buf_to_apl_INIT_DATAREADY(i), - INT_DATA_IN => buf_to_apl_INIT_DATA((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH), - INT_PACKET_NUM_IN=> buf_to_apl_INIT_PACKET_NUM((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH), - INT_READ_OUT => buf_to_apl_INIT_READ(i), - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT => LVL2_DTYPE_OUT, - APL_ERROR_PATTERN_OUT => LVL2_ERROR_PATTERN_OUT, - APL_SEQNR_OUT => LVL2_SEQNR_OUT, - APL_GOT_TRM => LVL2_GOT_TRIGGER_OUT, - APL_RELEASE_TRM => LVL2_RELEASE_IN, - APL_ERROR_PATTERN_IN => LVL2_ERROR_PATTERN_IN - ); - end generate; - end generate; - gentermbuf: if i /= LVL1_CHANNEL_NUM and i /= LVL2_CHANNEL_NUM generate - termbuf: trb_net16_term_buf - port map( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_IO_DATAREADY_IN(i), - MED_DATA_IN => MED_IO_DATA_IN, - MED_PACKET_NUM_IN => MED_IO_PACKET_NUM_IN, - MED_READ_OUT => MED_IO_READ_OUT(i), - - MED_INIT_DATAREADY_OUT => MED_IO_DATAREADY_OUT(i*2), - MED_INIT_DATA_OUT => MED_IO_DATA_OUT((i*2+1)*c_DATA_WIDTH-1 downto i*2*c_DATA_WIDTH), - MED_INIT_PACKET_NUM_OUT => MED_IO_PACKET_NUM_OUT((i*2+1)*c_NUM_WIDTH-1 downto i*2*c_NUM_WIDTH), - MED_INIT_READ_IN => MED_IO_READ_IN(i*2), - MED_REPLY_DATAREADY_OUT => MED_IO_DATAREADY_OUT(i*2+1), - MED_REPLY_DATA_OUT => MED_IO_DATA_OUT((i*2+2)*c_DATA_WIDTH-1 downto (i*2+1)*c_DATA_WIDTH), - MED_REPLY_PACKET_NUM_OUT=> MED_IO_PACKET_NUM_OUT((i*2+2)*c_NUM_WIDTH-1 downto (i*2+1)*c_NUM_WIDTH), - MED_REPLY_READ_IN => MED_IO_READ_IN(i*2+1) - ); - end generate; - end generate; - - - MPLEX: trb_net16_io_multiplexer - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_DATAREADY_IN, - MED_DATA_IN => MED_DATA_IN, - MED_PACKET_NUM_IN => MED_PACKET_NUM_IN, - MED_READ_OUT => MED_READ_OUT, - MED_DATAREADY_OUT => MED_DATAREADY_OUT, - MED_DATA_OUT => MED_DATA_OUT, - MED_PACKET_NUM_OUT => MED_PACKET_NUM_OUT, - MED_READ_IN => MED_READ_IN, - INT_DATAREADY_OUT => MED_IO_DATAREADY_IN, - INT_DATA_OUT => MED_IO_DATA_IN, - INT_PACKET_NUM_OUT => MED_IO_PACKET_NUM_IN, - INT_READ_IN => MED_IO_READ_OUT, - INT_DATAREADY_IN => MED_IO_DATAREADY_OUT, - INT_DATA_IN => MED_IO_DATA_OUT, - INT_PACKET_NUM_IN => MED_IO_PACKET_NUM_OUT, - INT_READ_OUT => MED_IO_READ_IN, - CTRL => (others => '0') - ); - - -end architecture; - diff --git a/oldfiles/trb_net16_endpoint_2_trg_1_api.vhd b/oldfiles/trb_net16_endpoint_2_trg_1_api.vhd deleted file mode 100644 index f2b5d97..0000000 --- a/oldfiles/trb_net16_endpoint_2_trg_1_api.vhd +++ /dev/null @@ -1,990 +0,0 @@ - --- NOT UP TO DATE - - - - - - - - - - - - - - - - - - - - - - - - --- this is an trigger receiver combined with a passive api - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net16_endpoint_2_trg_1_api is - - generic ( - --api type for data channel - API_TYPE : integer range 0 to 1 := 0; - --Fifo for data channel - DAT_INIT_DEPTH : integer range 0 to 7 := 2; - DAT_REPLY_DEPTH : integer range 0 to 7 := 0; --passive api doesn't need a fifo here - DAT_FIFO_TO_INT_DEPTH : integer range 0 to 7 := 1; - DAT_FIFO_TO_APL_DEPTH : integer range 0 to 7 := 1; - --SBUF_DATA_VERSION : integer range 0 to 1 := 0; - --Fifo for TRG channel - TRG1_INIT_DEPTH : integer range 0 to 7 := 0; - TRG1_REPLY_DEPTH : integer range 0 to 7 := 0; - TRG1_SECURE_MODE : integer range 0 to 1 := 0; - TRG2_INIT_DEPTH : integer range 0 to 7 := 0; - TRG2_REPLY_DEPTH : integer range 0 to 7 := 0; - TRG2_SECURE_MODE : integer range 0 to 1 := 0; - --SBUF_TRG_VERSION : integer range 0 to 1 := 0; - --Multiplexer - MUX_WIDTH : integer range 1 to 5 := 3; - MUX_SECURE_MODE : integer range 0 to 1 := 0; - TRG1_CHANNEL : integer range 0 to 3 := 0; --range 0 to 2**(MUX_WIDTH-1) - TRG2_CHANNEL : integer range 0 to 3 := 1; --range 0 to 2**(MUX_WIDTH-1) - DAT_CHANNEL : integer range 0 to 3 := 3; --range 0 to 2**(MUX_WIDTH-1) - --General - DATA_WIDTH : integer range 16 to 16 := 16; - NUM_WIDTH : integer range 2 to 2 := 2 - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out std_logic; --Data word ready to be read out - MED_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - MED_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - MED_READ_IN: in std_logic; -- Media is reading - MED_DATAREADY_IN: in std_logic; -- Data word is offered by the Media - MED_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - MED_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_READ_OUT: out std_logic; -- buffer reads a word from media - MED_ERROR_IN: in std_logic_vector (2 downto 0); -- Status bits - - -- APL Transceiver port - APL_DATA_IN: in std_logic_vector (15 downto 0); -- Data word "application to network" - APL_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - APL_WRITE_IN: in std_logic; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out std_logic; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in std_logic; -- - APL_DTYPE_IN: in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in std_logic; -- Release sending of the data - APL_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word "network to application" - APL_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - APL_TYP_OUT: out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out std_logic; -- Data word is valid and might be read out - APL_READ_IN: in std_logic; -- Read data word - APL_RUN_OUT: out std_logic; -- Data transfer is running - APL_MY_ADDRESS_IN: in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out std_logic_vector (7 downto 0); - APL_TARGET_ADDRESS_IN : in std_logic_vector(15 downto 0); - - -- TRG1 Receiver port - TRG1_GOT_TRIGGER_OUT : out std_logic; - TRG1_ERROR_PATTERN_OUT : out std_logic_vector(31 downto 0); - TRG1_DTYPE_OUT : out std_logic_vector(3 downto 0); - TRG1_SEQNR_OUT : out std_logic_vector(7 downto 0); - TRG1_ERROR_PATTERN_IN : in std_logic_vector(31 downto 0); - TRG1_RELEASE_IN : in std_logic; - - -- TRG2 Receiver port - TRG2_GOT_TRIGGER_OUT : out std_logic; - TRG2_ERROR_PATTERN_OUT : out std_logic_vector(31 downto 0); - TRG2_DTYPE_OUT : out std_logic_vector(3 downto 0); - TRG2_SEQNR_OUT : out std_logic_vector(7 downto 0); - TRG2_ERROR_PATTERN_IN : in std_logic_vector(31 downto 0); - TRG2_RELEASE_IN : in std_logic; - - -- Status and control port => for debugging - STAT_DAT_GEN: out std_logic_vector (31 downto 0); -- General Status - STAT_DAT_LOCKED: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_DAT_INIT_BUFFER: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_DAT_REPLY_BUFFER: out std_logic_vector (31 downto 0); -- General Status - STAT_DAT_api_control_signals: out std_logic_vector(31 downto 0); - CTRL_DAT_GEN: in std_logic_vector (31 downto 0); - CTRL_DAT_LOCKED: in std_logic_vector (31 downto 0); - STAT_DAT_CTRL_INIT_BUFFER: in std_logic_vector (31 downto 0); - STAT_DAT_CTRL_REPLY_BUFFER: in std_logic_vector (31 downto 0); - STAT_TRG1_GEN: out std_logic_vector (31 downto 0); -- General Status - STAT_TRG1_LOCKED: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_TRG1_INIT_BUFFER: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_TRG1_REPLY_BUFFER: out std_logic_vector (31 downto 0); -- General Status - STAT_TRG1_api_control_signals: out std_logic_vector(31 downto 0); - CTRL_TRG1_GEN: in std_logic_vector (31 downto 0); - CTRL_TRG1_LOCKED: in std_logic_vector (31 downto 0); - STAT_TRG1_CTRL_INIT_BUFFER: in std_logic_vector (31 downto 0); - STAT_TRG1_CTRL_REPLY_BUFFER: in std_logic_vector (31 downto 0); - STAT_TRG2_GEN: out std_logic_vector (31 downto 0); -- General Status - STAT_TRG2_LOCKED: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_TRG2_INIT_BUFFER: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_TRG2_REPLY_BUFFER: out std_logic_vector (31 downto 0); -- General Status - STAT_TRG2_api_control_signals: out std_logic_vector(31 downto 0); - CTRL_TRG2_GEN: in std_logic_vector (31 downto 0); - CTRL_TRG2_LOCKED: in std_logic_vector (31 downto 0); - STAT_TRG2_CTRL_INIT_BUFFER: in std_logic_vector (31 downto 0); - STAT_TRG2_CTRL_REPLY_BUFFER: in std_logic_vector (31 downto 0); - STAT_MPLEX: out std_logic_vector(31 downto 0); - MPLEX_CTRL: in std_logic_vector (31 downto 0); - DAT_API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - DAT_API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); -end entity; - -architecture trb_net16_endpoint_2_trg_1_api_arch of trb_net16_endpoint_2_trg_1_api_endpoint is - - component trb_net16_iobuf is - - generic ( - INIT_DEPTH : integer := 1; - REPLY_DEPTH : integer := 1 - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_INIT_DATAREADY_OUT: out std_logic; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_INIT_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - MED_INIT_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - MED_INIT_READ_IN: in std_logic; -- Media is reading - - MED_INIT_DATAREADY_IN: in std_logic; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_INIT_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - MED_INIT_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_INIT_READ_OUT: out std_logic; -- buffer reads a word from media - MED_INIT_ERROR_IN: in std_logic_vector (2 downto 0); -- Status bits - - MED_REPLY_DATAREADY_OUT: out std_logic; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_REPLY_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - MED_REPLY_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - MED_REPLY_READ_IN: in std_logic; -- Media is reading - - MED_REPLY_DATAREADY_IN: in std_logic; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_REPLY_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - MED_REPLY_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_REPLY_READ_OUT: out std_logic; -- buffer reads a word from media - MED_REPLY_ERROR_IN: in std_logic_vector (2 downto 0); -- Status bits - - -- Internal direction port - - INT_INIT_DATAREADY_OUT: out std_logic; - INT_INIT_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - INT_INIT_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - INT_INIT_READ_IN: in std_logic; - - INT_INIT_DATAREADY_IN: in std_logic; - INT_INIT_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - INT_INIT_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - INT_INIT_READ_OUT: out std_logic; - - INT_REPLY_HEADER_IN: in std_logic; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out std_logic; - INT_REPLY_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - INT_REPLY_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - INT_REPLY_READ_IN: in std_logic; - - INT_REPLY_DATAREADY_IN: in std_logic; - INT_REPLY_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - INT_REPLY_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - INT_REPLY_READ_OUT: out std_logic; - - -- Status and control port - STAT_GEN: out std_logic_vector (31 downto 0); -- General Status - STAT_LOCKED: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out std_logic_vector (31 downto 0); -- General Status - CTRL_GEN: in std_logic_vector (31 downto 0); - CTRL_LOCKED: in std_logic_vector (31 downto 0); - STAT_CTRL_INIT_BUFFER: in std_logic_vector (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in std_logic_vector (31 downto 0) - ); - end component; - - component trb_net16_api_base is - generic (API_TYPE : integer := API_TYPE; -- type of api: 0 passive, 1 active - --FIFO size is given in 2^(n+1) 64Bit-packets i.e. 2^(n+3) 16bit packets - FIFO_TO_INT_DEPTH : integer := 1; -- direction to medium - FIFO_TO_APL_DEPTH : integer := 1; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering master path - -- if set to 0, no buffer is used - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- APL Transmitter port - APL_DATA_IN : in std_logic_vector (15 downto 0); -- Data word "application to network" - APL_PACKET_NUM_IN : in std_logic_vector (1 downto 0); - APL_WRITE_IN : in std_logic; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT : out std_logic; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN : in std_logic; -- - APL_DTYPE_IN : in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN : in std_logic; -- Release sending of the data - APL_TARGET_ADDRESS_IN : in std_logic_vector (15 downto 0); -- Address of - -- Receiver port - APL_DATA_OUT : out std_logic_vector (15 downto 0); -- Data word "network to application" - APL_PACKET_NUM_OUT : out std_logic_vector (1 downto 0); - APL_TYP_OUT : out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT : out std_logic; -- Data word is valid and might be read out - APL_READ_IN : in std_logic; -- Read data word - -- APL Control port - APL_RUN_OUT : out std_logic; -- Data transfer is running - APL_MY_ADDRESS_IN : in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT : out std_logic_vector (7 downto 0); - -- Internal direction port - -- the ports with master or slave in their name are to be mapped by the active api - -- to the init respectivly the reply path and vice versa in the passive api. - -- lets define: the "master" path is the path that I send data on. - INT_MASTER_DATAREADY_OUT : out std_logic; - INT_MASTER_DATA_OUT : out std_logic_vector (15 downto 0); -- Data word - INT_MASTER_PACKET_NUM_OUT : out std_logic_vector (1 downto 0); - INT_MASTER_READ_IN : in std_logic; - INT_MASTER_DATAREADY_IN : in std_logic; - INT_MASTER_DATA_IN : in std_logic_vector (15 downto 0); -- Data word - INT_MASTER_PACKET_NUM_IN : in std_logic_vector (1 downto 0); - INT_MASTER_READ_OUT : out std_logic; - INT_SLAVE_HEADER_IN : in std_logic; -- Concentrator kindly asks to resend the last HDR - INT_SLAVE_DATAREADY_OUT : out std_logic; - INT_SLAVE_DATA_OUT : out std_logic_vector (15 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_OUT : out std_logic_vector (1 downto 0); - INT_SLAVE_READ_IN : in std_logic; - INT_SLAVE_DATAREADY_IN : in std_logic; - INT_SLAVE_DATA_IN : in std_logic_vector (15 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_IN : in std_logic_vector (1 downto 0); - INT_SLAVE_READ_OUT : out std_logic; - -- Status and control port - STAT_FIFO_TO_INT : out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL : out std_logic_vector(31 downto 0) - ); - end component; - - component trb_net16_term is - generic ( - USE_APL_PORT : integer range 0 to 1 := 1; - SECURE_MODE : integer range 0 to 1 := 0 - --if secure_mode is not used, apl must provide error pattern and dtype until - --next trigger comes in. In secure mode these must be available when hold_trm goes low - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - INT_DATAREADY_OUT: out std_logic; - INT_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - INT_PACKET_NUM_OUT: out std_logic_vector (1 downto 0); - INT_READ_IN: in std_logic; - INT_DATAREADY_IN: in std_logic; - INT_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - INT_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - INT_READ_OUT: out std_logic; - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out std_logic_vector (7 downto 0); - APL_GOT_TRM: out std_logic; - APL_RELEASE_TRM: in std_logic; - APL_ERROR_PATTERN_IN: in std_logic_vector (31 downto 0) -- see NewTriggerBusNetworkDescr - -- Status and control port - ); - end component; - - component trb_net16_io_multiplexer is - generic ( - DATA_WIDTH : integer := 16; - NUM_WIDTH : integer := 2; - MUX_WIDTH : integer range 1 to 5 := 3; - MUX_SECURE_MODE : integer range 0 to 1 := 0 --use sbufs or not? - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in std_logic; - MED_DATA_IN: in std_logic_vector (DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN: in std_logic_vector (NUM_WIDTH-1 downto 0); - MED_READ_OUT: out std_logic; - MED_DATAREADY_OUT: out std_logic; - MED_DATA_OUT: out std_logic_vector (DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT:out std_logic_vector (NUM_WIDTH-1 downto 0); - MED_READ_IN: in std_logic; - -- Internal direction port - INT_DATAREADY_OUT: out std_logic_vector (2**MUX_WIDTH-1 downto 0); - INT_DATA_OUT: out std_logic_vector ((DATA_WIDTH)*(2**MUX_WIDTH)-1 downto 0); - INT_PACKET_NUM_OUT:out std_logic_vector (2*(2**MUX_WIDTH)-1 downto 0); - INT_READ_IN: in std_logic_vector (2**MUX_WIDTH-1 downto 0); - INT_DATAREADY_IN: in std_logic_vector (2**MUX_WIDTH-1 downto 0); - INT_DATA_IN: in std_logic_vector ((DATA_WIDTH)*(2**MUX_WIDTH)-1 downto 0); - INT_PACKET_NUM_IN: in std_logic_vector (2*(2**MUX_WIDTH)-1 downto 0); - INT_READ_OUT: out std_logic_vector (2**MUX_WIDTH-1 downto 0); - -- Status and control port - CTRL: in std_logic_vector (31 downto 0); - STAT: out std_logic_vector (31 downto 0) - ); - end component; - - component trb_net16_term_buf is - port( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - MED_INIT_DATAREADY_OUT: out std_logic; - MED_INIT_DATA_OUT: out std_logic_vector (15 downto 0); - MED_INIT_PACKET_NUM_OUT: out std_logic_vector (1 downto 0); - MED_INIT_READ_IN: in std_logic; - MED_INIT_DATAREADY_IN: in std_logic; - MED_INIT_DATA_IN: in std_logic_vector (15 downto 0); - MED_INIT_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_INIT_READ_OUT: out std_logic; - MED_REPLY_DATAREADY_OUT: out std_logic; - MED_REPLY_DATA_OUT: out std_logic_vector (15 downto 0); - MED_REPLY_PACKET_NUM_OUT: out std_logic_vector (1 downto 0); - MED_REPLY_READ_IN: in std_logic; - MED_REPLY_DATAREADY_IN: in std_logic; - MED_REPLY_DATA_IN: in std_logic_vector (15 downto 0); - MED_REPLY_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_REPLY_READ_OUT: out std_logic - ); - end component; -signal apl_to_buf_DAT_INIT_DATAREADY: std_logic; -signal apl_to_buf_DAT_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_DAT_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_DAT_INIT_READ : std_logic; - -signal buf_to_apl_DAT_INIT_DATAREADY: std_logic; -signal buf_to_apl_DAT_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_DAT_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_DAT_INIT_READ : std_logic; - -signal apl_to_buf_DAT_REPLY_DATAREADY: std_logic; -signal apl_to_buf_DAT_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_DAT_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_DAT_REPLY_READ : std_logic; - -signal buf_to_apl_DAT_REPLY_DATAREADY: std_logic; -signal buf_to_apl_DAT_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_DAT_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_DAT_REPLY_READ : std_logic; - -signal apl_to_buf_TRG1_INIT_DATAREADY: std_logic; -signal apl_to_buf_TRG1_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_TRG1_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_TRG1_INIT_READ : std_logic; - -signal buf_to_apl_TRG1_INIT_DATAREADY: std_logic; -signal buf_to_apl_TRG1_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_TRG1_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_TRG1_INIT_READ : std_logic; - -signal apl_to_buf_TRG1_REPLY_DATAREADY: std_logic; -signal apl_to_buf_TRG1_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_TRG1_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_TRG1_REPLY_READ : std_logic; - -signal buf_to_apl_TRG1_REPLY_DATAREADY: std_logic; -signal buf_to_apl_TRG1_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_TRG1_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_TRG1_REPLY_READ : std_logic; - -signal apl_to_buf_TRG2_INIT_DATAREADY: std_logic; -signal apl_to_buf_TRG2_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_TRG2_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_TRG2_INIT_READ : std_logic; - -signal buf_to_apl_TRG2_INIT_DATAREADY: std_logic; -signal buf_to_apl_TRG2_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_TRG2_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_TRG2_INIT_READ : std_logic; - -signal apl_to_buf_TRG2_REPLY_DATAREADY: std_logic; -signal apl_to_buf_TRG2_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_TRG2_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_TRG2_REPLY_READ : std_logic; - -signal buf_to_apl_TRG2_REPLY_DATAREADY: std_logic; -signal buf_to_apl_TRG2_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_TRG2_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_TRG2_REPLY_READ : std_logic; - --- for the connection to the multiplexer -signal MED_DAT_INIT_DATAREADY_OUT : std_logic; -signal MED_DAT_INIT_DATA_OUT : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT_INIT_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT_INIT_READ_IN : std_logic; - -signal MED_DAT_INIT_DATAREADY_IN : std_logic; -signal MED_DAT_INIT_DATA_IN : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT_INIT_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT_INIT_READ_OUT : std_logic; - -signal MED_DAT_REPLY_DATAREADY_OUT : std_logic; -signal MED_DAT_REPLY_DATA_OUT : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT_REPLY_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT_REPLY_READ_IN : std_logic; - -signal MED_DAT_REPLY_DATAREADY_IN : std_logic; -signal MED_DAT_REPLY_DATA_IN : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT_REPLY_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT_REPLY_READ_OUT : std_logic; - -signal MED_TRG1_INIT_DATAREADY_OUT : std_logic_vector(1 downto 0); -signal MED_TRG1_INIT_DATA_OUT : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG1_INIT_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG1_INIT_READ_IN : std_logic_vector(1 downto 0); - -signal MED_TRG1_INIT_DATAREADY_IN : std_logic_vector(1 downto 0); -signal MED_TRG1_INIT_DATA_IN : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG1_INIT_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG1_INIT_READ_OUT : std_logic_vector(1 downto 0); - -signal MED_TRG1_REPLY_DATAREADY_OUT : std_logic_vector(1 downto 0); -signal MED_TRG1_REPLY_DATA_OUT : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG1_REPLY_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG1_REPLY_READ_IN : std_logic_vector(1 downto 0); - -signal MED_TRG1_REPLY_DATAREADY_IN : std_logic_vector(1 downto 0); -signal MED_TRG1_REPLY_DATA_IN : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG1_REPLY_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG1_REPLY_READ_OUT : std_logic_vector(1 downto 0); - -signal MED_TRG2_INIT_DATAREADY_OUT : std_logic_vector(1 downto 0); -signal MED_TRG2_INIT_DATA_OUT : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG2_INIT_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG2_INIT_READ_IN : std_logic_vector(1 downto 0); - -signal MED_TRG2_INIT_DATAREADY_IN : std_logic_vector(1 downto 0); -signal MED_TRG2_INIT_DATA_IN : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG2_INIT_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG2_INIT_READ_OUT : std_logic_vector(1 downto 0); - -signal MED_TRG2_REPLY_DATAREADY_OUT : std_logic_vector(1 downto 0); -signal MED_TRG2_REPLY_DATA_OUT : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG2_REPLY_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG2_REPLY_READ_IN : std_logic_vector(1 downto 0); - -signal MED_TRG2_REPLY_DATAREADY_IN : std_logic_vector(1 downto 0); -signal MED_TRG2_REPLY_DATA_IN : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG2_REPLY_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG2_REPLY_READ_OUT : std_logic_vector(1 downto 0); - -signal m_DATAREADY_OUT : std_logic_vector (2**MUX_WIDTH-1 downto 0); -signal m_DATA_OUT : std_logic_vector (DATA_WIDTH*2**MUX_WIDTH-1 downto 0); -signal m_PACKET_NUM_OUT: std_logic_vector (NUM_WIDTH*2**MUX_WIDTH-1 downto 0); -signal m_READ_IN : std_logic_vector (2**MUX_WIDTH-1 downto 0); - -signal m_DATAREADY_IN : std_logic_vector (2**MUX_WIDTH-1 downto 0); -signal m_DATA_IN : std_logic_vector (DATA_WIDTH**MUX_WIDTH-1 downto 0); -signal m_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2**MUX_WIDTH-1 downto 0); -signal m_READ_OUT : std_logic_vector (2**MUX_WIDTH-1 downto 0); - -begin - - --Connections for data and trigger channel - genmuxcon : for i in 0 to 2**(MUX_WIDTH-1)-1 generate - gendat: if i = DAT_CHANNEL generate - m_DATAREADY_OUT(i*2) <= MED_DAT_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(i*2+1) <= MED_DAT_REPLY_DATAREADY_OUT; - m_DATA_OUT((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2) <= MED_DAT_INIT_DATA_OUT; - m_DATA_OUT((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH) <= MED_DAT_REPLY_DATA_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2) <= MED_DAT_INIT_PACKET_NUM_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2) <= MED_DAT_REPLY_PACKET_NUM_OUT; - MED_DAT_INIT_READ_IN <= m_READ_IN(i*2); - MED_DAT_REPLY_READ_IN <= m_READ_IN(i*2+1); - MED_DAT_INIT_DATAREADY_IN <= m_DATAREADY_IN(i*2); - MED_DAT_REPLY_DATAREADY_IN <= m_DATAREADY_IN(i*2+1); - MED_DAT_INIT_DATA_IN <= m_DATA_IN((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2); - MED_DAT_REPLY_DATA_IN <= m_DATA_IN((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH); - MED_DAT_INIT_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2); - MED_DAT_REPLY_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2); - m_READ_OUT(i*2) <= MED_DAT_INIT_READ_OUT; - m_READ_OUT(i*2+1) <= MED_DAT_REPLY_READ_OUT; - end generate; - gentrg1: if i = TRG1_CHANNEL generate - m_DATAREADY_OUT(i*2) <= MED_TRG1_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(i*2+1) <= MED_TRG1_REPLY_DATAREADY_OUT; - m_DATA_OUT((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2) <= MED_TRG1_INIT_DATA_OUT; - m_DATA_OUT((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH) <= MED_TRG1_REPLY_DATA_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2) <= MED_TRG1_INIT_PACKET_NUM_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2) <= MED_TRG1_REPLY_PACKET_NUM_OUT; - MED_TRG1_INIT_READ_IN <= m_READ_IN(i*2); - MED_TRG1_REPLY_READ_IN <= m_READ_IN(i*2+1); - MED_TRG1_INIT_DATAREADY_IN <= m_DATAREADY_IN(i*2); - MED_TRG1_REPLY_DATAREADY_IN <= m_DATAREADY_IN(i*2+1); - MED_TRG1_INIT_DATA_IN <= m_DATA_IN((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2); - MED_TRG1_REPLY_DATA_IN <= m_DATA_IN((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH); - MED_TRG1_INIT_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2); - MED_TRG1_REPLY_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2); - m_READ_OUT(i*2) <= MED_TRG1_INIT_READ_OUT; - m_READ_OUT(i*2+1) <= MED_TRG1_REPLY_READ_OUT; - end generate; - gentrg1: if i = TRG2_CHANNEL generate - m_DATAREADY_OUT(i*2) <= MED_TRG2_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(i*2+1) <= MED_TRG2_REPLY_DATAREADY_OUT; - m_DATA_OUT((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2) <= MED_TRG2_INIT_DATA_OUT; - m_DATA_OUT((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH) <= MED_TRG2_REPLY_DATA_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2) <= MED_TRG2_INIT_PACKET_NUM_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2) <= MED_TRG2_REPLY_PACKET_NUM_OUT; - MED_TRG2_INIT_READ_IN <= m_READ_IN(i*2); - MED_TRG2_REPLY_READ_IN <= m_READ_IN(i*2+1); - MED_TRG2_INIT_DATAREADY_IN <= m_DATAREADY_IN(i*2); - MED_TRG2_REPLY_DATAREADY_IN <= m_DATAREADY_IN(i*2+1); - MED_TRG2_INIT_DATA_IN <= m_DATA_IN((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2); - MED_TRG2_REPLY_DATA_IN <= m_DATA_IN((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH); - MED_TRG2_INIT_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2); - MED_TRG2_REPLY_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2); - m_READ_OUT(i*2) <= MED_TRG2_INIT_READ_OUT; - m_READ_OUT(i*2+1) <= MED_TRG2_REPLY_READ_OUT; - end generate; - genelse: if i /= DAT_CHANNEL and i /= TRG1_CHANNEL and i /= TRG2_CHANNEL generate - termbuf: trb_net16_term_buf - port map( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_INIT_DATAREADY_OUT => m_DATAREADY_OUT(i*2), - MED_INIT_DATA_OUT => m_DATA_OUT((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2), - MED_INIT_PACKET_NUM_OUT => m_PACKET_NUM_OUT(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2), - MED_INIT_READ_IN => m_READ_IN(i*2), - MED_INIT_DATAREADY_IN => m_DATAREADY_IN(i*2), - MED_INIT_DATA_IN => m_DATA_IN((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2), - MED_INIT_PACKET_NUM_IN => m_PACKET_NUM_IN(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2), - MED_INIT_READ_OUT => m_READ_OUT(i*2), - - MED_REPLY_DATAREADY_OUT => m_DATAREADY_OUT(i*2+1), - MED_REPLY_DATA_OUT => m_DATA_OUT((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH), - MED_REPLY_PACKET_NUM_OUT => m_PACKET_NUM_OUT(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2), - MED_REPLY_READ_IN => m_READ_IN(i*2+1), - MED_REPLY_DATAREADY_IN => m_DATAREADY_IN(i*2+1), - MED_REPLY_DATA_IN => m_DATA_IN((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH), - MED_REPLY_PACKET_NUM_IN => m_PACKET_NUM_IN(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2), - MED_REPLY_READ_OUT => m_READ_OUT(i*2+1) - ); - end generate; - end generate; - - gen_actapi: if API_TYPE = 1 generate - DAT_ACTIVE_API: trb_net16_api_base - generic map ( - API_TYPE => 1, - FIFO_TO_INT_DEPTH => DAT_FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => DAT_FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => APL_DATA_IN, - APL_PACKET_NUM_IN => APL_PACKET_NUM_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_SEND_IN => APL_SEND_IN, - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN, - -- Receiver port - APL_DATA_OUT => APL_DATA_OUT, - APL_PACKET_NUM_OUT=> APL_PACKET_NUM_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL_SEQNR_OUT, - -- Internal direction port - INT_MASTER_DATAREADY_OUT => apl_to_buf_DAT_INIT_DATAREADY, - INT_MASTER_DATA_OUT => apl_to_buf_DAT_INIT_DATA, - INT_MASTER_PACKET_NUM_OUT=> apl_to_buf_DAT_INIT_PACKET_NUM, - INT_MASTER_READ_IN => apl_to_buf_DAT_INIT_READ, - INT_MASTER_DATAREADY_IN => buf_to_apl_DAT_INIT_DATAREADY, - INT_MASTER_DATA_IN => buf_to_apl_DAT_INIT_DATA, - INT_MASTER_PACKET_NUM_IN => buf_to_apl_DAT_INIT_PACKET_NUM, - INT_MASTER_READ_OUT => buf_to_apl_DAT_INIT_READ, - INT_SLAVE_HEADER_IN => '0', - INT_SLAVE_DATAREADY_OUT => apl_to_buf_DAT_REPLY_DATAREADY, - INT_SLAVE_DATA_OUT => apl_to_buf_DAT_REPLY_DATA, - INT_SLAVE_PACKET_NUM_OUT => apl_to_buf_DAT_REPLY_PACKET_NUM, - INT_SLAVE_READ_IN => apl_to_buf_DAT_REPLY_READ, - INT_SLAVE_DATAREADY_IN => buf_to_apl_DAT_REPLY_DATAREADY, - INT_SLAVE_DATA_IN => buf_to_apl_DAT_REPLY_DATA, - INT_SLAVE_PACKET_NUM_IN=> buf_to_apl_DAT_REPLY_PACKET_NUM, - INT_SLAVE_READ_OUT => buf_to_apl_DAT_REPLY_READ, - -- Status and control port - STAT_FIFO_TO_INT => DAT_api_stat_fifo_to_int, - STAT_FIFO_TO_APL => DAT_api_stat_fifo_to_apl - ); - end generate; - - gen_pasapi: if API_TYPE = 0 generate - DAT_PASSIVE_API: trb_net16_api_base - generic map ( - API_TYPE => 0, - FIFO_TO_INT_DEPTH => DAT_FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => DAT_FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => APL_DATA_IN, - APL_PACKET_NUM_IN => APL_PACKET_NUM_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_SEND_IN => APL_SEND_IN, - APL_TARGET_ADDRESS_IN => (others => '0'), - -- Receiver port - APL_DATA_OUT => APL_DATA_OUT, - APL_PACKET_NUM_OUT=> APL_PACKET_NUM_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL_SEQNR_OUT, - -- Internal direction port - INT_MASTER_DATAREADY_OUT => apl_to_buf_DAT_REPLY_DATAREADY, - INT_MASTER_DATA_OUT => apl_to_buf_DAT_REPLY_DATA, - INT_MASTER_PACKET_NUM_OUT=> apl_to_buf_DAT_REPLY_PACKET_NUM, - INT_MASTER_READ_IN => apl_to_buf_DAT_REPLY_READ, - INT_MASTER_DATAREADY_IN => buf_to_apl_DAT_REPLY_DATAREADY, - INT_MASTER_DATA_IN => buf_to_apl_DAT_REPLY_DATA, - INT_MASTER_PACKET_NUM_IN => buf_to_apl_DAT_REPLY_PACKET_NUM, - INT_MASTER_READ_OUT => buf_to_apl_DAT_REPLY_READ, - INT_SLAVE_HEADER_IN => '0', - INT_SLAVE_DATAREADY_OUT => apl_to_buf_DAT_INIT_DATAREADY, - INT_SLAVE_DATA_OUT => apl_to_buf_DAT_INIT_DATA, - INT_SLAVE_PACKET_NUM_OUT => apl_to_buf_DAT_INIT_PACKET_NUM, - INT_SLAVE_READ_IN => apl_to_buf_DAT_INIT_READ, - INT_SLAVE_DATAREADY_IN => buf_to_apl_DAT_INIT_DATAREADY, - INT_SLAVE_DATA_IN => buf_to_apl_DAT_INIT_DATA, - INT_SLAVE_PACKET_NUM_IN=> buf_to_apl_DAT_INIT_PACKET_NUM, - INT_SLAVE_READ_OUT => buf_to_apl_DAT_INIT_READ, - -- Status and control port - STAT_FIFO_TO_INT => DAT_api_stat_fifo_to_int, - STAT_FIFO_TO_APL => DAT_api_stat_fifo_to_apl - ); - end generate; - -STAT_DAT_api_control_signals(2 downto 0) <= APL_DATA_IN(2 downto 0); -STAT_DAT_api_control_signals(3) <= APL_WRITE_IN; -STAT_DAT_api_control_signals(4) <= APL_SEND_IN; -STAT_DAT_api_control_signals(7 downto 5) <= (others => '0'); -STAT_DAT_api_control_signals(10 downto 8) <= apl_to_buf_DAT_INIT_DATA(2 downto 0); -STAT_DAT_api_control_signals(11) <= apl_to_buf_DAT_INIT_DATAREADY; -STAT_DAT_api_control_signals(12) <= apl_to_buf_DAT_INIT_READ; -STAT_DAT_api_control_signals(31 downto 13) <= (others => '0'); - - - -DAT_IOBUF: trb_net16_iobuf - generic map( - INIT_DEPTH => DAT_INIT_DEPTH, - REPLY_DEPTH => DAT_REPLY_DEPTH - ) - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_DAT_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_DAT_INIT_DATA_OUT, - MED_INIT_PACKET_NUM_OUT => MED_DAT_INIT_PACKET_NUM_OUT, - MED_INIT_READ_IN => MED_DAT_INIT_READ_IN, - MED_INIT_DATAREADY_IN => MED_DAT_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_DAT_INIT_DATA_IN, - MED_INIT_PACKET_NUM_IN => MED_DAT_INIT_PACKET_NUM_IN, - MED_INIT_READ_OUT => MED_DAT_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - MED_REPLY_DATAREADY_OUT => MED_DAT_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_DAT_REPLY_DATA_OUT, - MED_REPLY_PACKET_NUM_OUT=> MED_DAT_REPLY_PACKET_NUM_OUT, - MED_REPLY_READ_IN => MED_DAT_REPLY_READ_IN, - MED_REPLY_DATAREADY_IN => MED_DAT_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_DAT_REPLY_DATA_IN, - MED_REPLY_PACKET_NUM_IN => MED_DAT_REPLY_PACKET_NUM_IN, - MED_REPLY_READ_OUT => MED_DAT_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - -- Internal direction port - INT_INIT_DATAREADY_OUT => buf_to_apl_DAT_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_DAT_INIT_DATA, - INT_INIT_PACKET_NUM_OUT=> buf_to_apl_DAT_INIT_PACKET_NUM, - INT_INIT_READ_IN => buf_to_apl_DAT_INIT_READ, - INT_INIT_DATAREADY_IN => apl_to_buf_DAT_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_DAT_INIT_DATA, - INT_INIT_PACKET_NUM_IN => apl_to_buf_DAT_INIT_PACKET_NUM, - INT_INIT_READ_OUT => apl_to_buf_DAT_INIT_READ, - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_DAT_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_DAT_REPLY_DATA, - INT_REPLY_PACKET_NUM_OUT=> buf_to_apl_DAT_REPLY_PACKET_NUM, - INT_REPLY_READ_IN => buf_to_apl_DAT_REPLY_READ, - INT_REPLY_DATAREADY_IN => apl_to_buf_DAT_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_DAT_REPLY_DATA, - INT_REPLY_PACKET_NUM_IN => apl_to_buf_DAT_REPLY_PACKET_NUM, - INT_REPLY_READ_OUT => apl_to_buf_DAT_REPLY_READ, - -- Status and control port - STAT_GEN => STAT_DAT_GEN, - STAT_LOCKED => STAT_DAT_LOCKED, - STAT_INIT_BUFFER => STAT_DAT_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_DAT_REPLY_BUFFER, - CTRL_GEN => CTRL_DAT_GEN, - CTRL_LOCKED => CTRL_DAT_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_DAT_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_DAT_CTRL_REPLY_BUFFER - ); - - TRG1_IOBUF: trb_net16_iobuf - generic map( - INIT_DEPTH => TRG1_INIT_DEPTH, - REPLY_DEPTH => TRG1_REPLY_DEPTH - ) - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_TRG1_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_TRG1_INIT_DATA_OUT, - MED_INIT_PACKET_NUM_OUT => MED_TRG1_INIT_PACKET_NUM_OUT, - MED_INIT_READ_IN => MED_TRG1_INIT_READ_IN, - MED_INIT_DATAREADY_IN => MED_TRG1_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_TRG1_INIT_DATA_IN, - MED_INIT_PACKET_NUM_IN => MED_TRG1_INIT_PACKET_NUM_IN, - MED_INIT_READ_OUT => MED_TRG1_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - MED_REPLY_DATAREADY_OUT => MED_TRG1_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_TRG1_REPLY_DATA_OUT, - MED_REPLY_PACKET_NUM_OUT=> MED_TRG1_REPLY_PACKET_NUM_OUT, - MED_REPLY_READ_IN => MED_TRG1_REPLY_READ_IN, - MED_REPLY_DATAREADY_IN => MED_TRG1_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_TRG1_REPLY_DATA_IN, - MED_REPLY_PACKET_NUM_IN => MED_TRG1_REPLY_PACKET_NUM_IN, - MED_REPLY_READ_OUT => MED_TRG1_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - -- Internal direction port - INT_INIT_DATAREADY_OUT => buf_to_apl_TRG1_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_TRG1_INIT_DATA, - INT_INIT_PACKET_NUM_OUT=> buf_to_apl_TRG1_INIT_PACKET_NUM, - INT_INIT_READ_IN => buf_to_apl_TRG1_INIT_READ, - INT_INIT_DATAREADY_IN => apl_to_buf_TRG1_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_TRG1_INIT_DATA, - INT_INIT_PACKET_NUM_IN => apl_to_buf_TRG1_INIT_PACKET_NUM, - INT_INIT_READ_OUT => apl_to_buf_TRG1_INIT_READ, - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_TRG1_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_TRG1_REPLY_DATA, - INT_REPLY_PACKET_NUM_OUT=> buf_to_apl_TRG1_REPLY_PACKET_NUM, - INT_REPLY_READ_IN => buf_to_apl_TRG1_REPLY_READ, - INT_REPLY_DATAREADY_IN => apl_to_buf_TRG1_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_TRG1_REPLY_DATA, - INT_REPLY_PACKET_NUM_IN => apl_to_buf_TRG1_REPLY_PACKET_NUM, - INT_REPLY_READ_OUT => apl_to_buf_TRG1_REPLY_READ, - -- Status and control port - STAT_GEN => STAT_TRG1_GEN, - STAT_LOCKED => STAT_TRG1_LOCKED, - STAT_INIT_BUFFER => STAT_TRG1_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_TRG1_REPLY_BUFFER, - CTRL_GEN => CTRL_TRG1_GEN, - CTRL_LOCKED => CTRL_TRG1_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_TRG1_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_TRG1_CTRL_REPLY_BUFFER - ); - - TRG2_IOBUF: trb_net16_iobuf - generic map( - INIT_DEPTH => TRG2_INIT_DEPTH, - REPLY_DEPTH => TRG2_REPLY_DEPTH - ) - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_TRG2_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_TRG2_INIT_DATA_OUT, - MED_INIT_PACKET_NUM_OUT => MED_TRG2_INIT_PACKET_NUM_OUT, - MED_INIT_READ_IN => MED_TRG2_INIT_READ_IN, - MED_INIT_DATAREADY_IN => MED_TRG2_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_TRG2_INIT_DATA_IN, - MED_INIT_PACKET_NUM_IN => MED_TRG2_INIT_PACKET_NUM_IN, - MED_INIT_READ_OUT => MED_TRG2_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - MED_REPLY_DATAREADY_OUT => MED_TRG2_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_TRG2_REPLY_DATA_OUT, - MED_REPLY_PACKET_NUM_OUT=> MED_TRG2_REPLY_PACKET_NUM_OUT, - MED_REPLY_READ_IN => MED_TRG2_REPLY_READ_IN, - MED_REPLY_DATAREADY_IN => MED_TRG2_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_TRG2_REPLY_DATA_IN, - MED_REPLY_PACKET_NUM_IN => MED_TRG2_REPLY_PACKET_NUM_IN, - MED_REPLY_READ_OUT => MED_TRG2_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - -- Internal direction port - INT_INIT_DATAREADY_OUT => buf_to_apl_TRG2_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_TRG2_INIT_DATA, - INT_INIT_PACKET_NUM_OUT=> buf_to_apl_TRG2_INIT_PACKET_NUM, - INT_INIT_READ_IN => buf_to_apl_TRG2_INIT_READ, - INT_INIT_DATAREADY_IN => apl_to_buf_TRG2_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_TRG2_INIT_DATA, - INT_INIT_PACKET_NUM_IN => apl_to_buf_TRG2_INIT_PACKET_NUM, - INT_INIT_READ_OUT => apl_to_buf_TRG2_INIT_READ, - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_TRG2_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_TRG2_REPLY_DATA, - INT_REPLY_PACKET_NUM_OUT=> buf_to_apl_TRG2_REPLY_PACKET_NUM, - INT_REPLY_READ_IN => buf_to_apl_TRG2_REPLY_READ, - INT_REPLY_DATAREADY_IN => apl_to_buf_TRG2_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_TRG2_REPLY_DATA, - INT_REPLY_PACKET_NUM_IN => apl_to_buf_TRG2_REPLY_PACKET_NUM, - INT_REPLY_READ_OUT => apl_to_buf_TRG2_REPLY_READ, - -- Status and control port - STAT_GEN => STAT_TRG2_GEN, - STAT_LOCKED => STAT_TRG2_LOCKED, - STAT_INIT_BUFFER => STAT_TRG2_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_TRG2_REPLY_BUFFER, - CTRL_GEN => CTRL_TRG2_GEN, - CTRL_LOCKED => CTRL_TRG2_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_TRG2_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_TRG2_CTRL_REPLY_BUFFER - ); - - MPLEX: trb_net16_io_multiplexer - generic map ( - DATA_WIDTH => DATA_WIDTH, - NUM_WIDTH => NUM_WIDTH, - MUX_WIDTH => MUX_WIDTH, - MUX_SECURE_MODE => MUX_SECURE_MODE - ) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_DATAREADY_IN, - MED_DATA_IN => MED_DATA_IN, - MED_PACKET_NUM_IN => MED_PACKET_NUM_IN, - MED_READ_OUT => MED_READ_OUT, - MED_DATAREADY_OUT => MED_DATAREADY_OUT, - MED_DATA_OUT => MED_DATA_OUT, - MED_PACKET_NUM_OUT => MED_PACKET_NUM_OUT, - MED_READ_IN => MED_READ_IN, - INT_DATAREADY_OUT => m_DATAREADY_IN, - INT_DATA_OUT =>m_DATA_IN, - INT_PACKET_NUM_OUT => m_PACKET_NUM_IN, - INT_READ_IN =>m_READ_OUT, - INT_DATAREADY_IN =>m_DATAREADY_OUT, - INT_DATA_IN =>m_DATA_OUT, - INT_PACKET_NUM_IN => m_PACKET_NUM_OUT, - INT_READ_OUT =>m_READ_IN, - CTRL => MPLEX_CTRL - ); - - TRG1_INIT : trb_net16_term - generic map ( - FIFO_TERM_BUFFER_DEPTH => 0, - SECURE_MODE => TRG1_SECURE_MODE - ) - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - INT_DATAREADY_OUT => apl_to_buf_TRG1_REPLY_DATAREADY, - INT_DATA_OUT => apl_to_buf_TRG1_REPLY_DATA, - INT_PACKET_NUM_OUT => apl_to_buf_TRG1_REPLY_PACKET_NUM, - INT_READ_IN => apl_to_buf_TRG1_REPLY_READ, - INT_DATAREADY_IN => buf_to_apl_TRG1_INIT_DATAREADY, - INT_DATA_IN => buf_to_apl_TRG1_INIT_DATA, - INT_PACKET_NUM_IN => buf_to_apl_TRG1_INIT_PACKET_NUM, - INT_READ_OUT => buf_to_apl_TRG1_INIT_READ, - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT => TRG1_DTYPE_OUT, - APL_ERROR_PATTERN_OUT => TRG1_ERROR_PATTERN_OUT, - APL_SEQNR_OUT => TRG1_SEQNR_OUT, - APL_GOT_TRM => TRG1_GOT_TRIGGER_OUT, - APL_RELEASE_TRM => TRG1_RELEASE_IN, - APL_ERROR_PATTERN_IN => TRG1_ERROR_PATTERN_IN - -- Status and control port - ); - - TRG2_INIT : trb_net16_term - generic map ( - FIFO_TERM_BUFFER_DEPTH => 0, - SECURE_MODE => TRG2_SECURE_MODE - ) - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - INT_DATAREADY_OUT => apl_to_buf_TRG2_REPLY_DATAREADY, - INT_DATA_OUT => apl_to_buf_TRG2_REPLY_DATA, - INT_PACKET_NUM_OUT => apl_to_buf_TRG2_REPLY_PACKET_NUM, - INT_READ_IN => apl_to_buf_TRG2_REPLY_READ, - INT_DATAREADY_IN => buf_to_apl_TRG2_INIT_DATAREADY, - INT_DATA_IN => buf_to_apl_TRG2_INIT_DATA, - INT_PACKET_NUM_IN => buf_to_apl_TRG2_INIT_PACKET_NUM, - INT_READ_OUT => buf_to_apl_TRG2_INIT_READ, - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT => TRG2_DTYPE_OUT, - APL_ERROR_PATTERN_OUT => TRG2_ERROR_PATTERN_OUT, - APL_SEQNR_OUT => TRG2_SEQNR_OUT, - APL_GOT_TRM => TRG2_GOT_TRIGGER_OUT, - APL_RELEASE_TRM => TRG2_RELEASE_IN, - APL_ERROR_PATTERN_IN => TRG2_ERROR_PATTERN_IN - -- Status and control port - ); - -apl_to_buf_TRG1_INIT_DATAREADY <= '0'; -apl_to_buf_TRG1_INIT_DATA <= (others => '0'); -apl_to_buf_TRG1_INIT_PACKET_NUM <= (others => '0'); -buf_to_apl_TRG1_REPLY_READ <= '1'; - -apl_to_buf_TRG2_INIT_DATAREADY <= '0'; -apl_to_buf_TRG2_INIT_DATA <= (others => '0'); -apl_to_buf_TRG2_INIT_PACKET_NUM <= (others => '0'); -buf_to_apl_TRG2_REPLY_READ <= '1'; -end architecture; diff --git a/oldfiles/trb_net16_endpoint_2_trg_2_api.vhd b/oldfiles/trb_net16_endpoint_2_trg_2_api.vhd deleted file mode 100644 index a9b6466..0000000 --- a/oldfiles/trb_net16_endpoint_2_trg_2_api.vhd +++ /dev/null @@ -1,1245 +0,0 @@ - --- NOT UP TO DATE - - - - - - - - - - - - - - - - - - - - - - - - --- this is an trigger receiver combined with a passive api - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net16_endpoint_2_trg_2_api is - - generic ( - --api type for data channel - API1_TYPE : integer range 0 to 1 := 0; - API2_TYPE : integer range 0 to 1 := 0; - --Fifo for data channel - DAT1_INIT_DEPTH : integer range 0 to 7 := 2; - DAT1_REPLY_DEPTH : integer range 0 to 7 := 0; --passive api doesn't need a fifo here - DAT1_FIFO_TO_INT_DEPTH : integer range 0 to 7 := 1; - DAT1_FIFO_TO_APL_DEPTH : integer range 0 to 7 := 1; - DAT2_INIT_DEPTH : integer range 0 to 7 := 2; - DAT2_REPLY_DEPTH : integer range 0 to 7 := 0; --passive api doesn't need a fifo here - DAT2_FIFO_TO_INT_DEPTH : integer range 0 to 7 := 1; - DAT2_FIFO_TO_APL_DEPTH : integer range 0 to 7 := 1; - --SBUF_DATA_VERSION : integer range 0 to 1 := 0; - --Fifo for TRG channel - TRG1_INIT_DEPTH : integer range 0 to 7 := 0; - TRG1_REPLY_DEPTH : integer range 0 to 7 := 0; - TRG1_SECURE_MODE : integer range 0 to 1 := 0; - TRG2_INIT_DEPTH : integer range 0 to 7 := 0; - TRG2_REPLY_DEPTH : integer range 0 to 7 := 0; - TRG2_SECURE_MODE : integer range 0 to 1 := 0; - --SBUF_TRG_VERSION : integer range 0 to 1 := 0; - --Multiplexer - MUX_WIDTH : integer range 1 to 5 := 3; - MUX_SECURE_MODE : integer range 0 to 1 := 0; - TRG1_CHANNEL : integer range 0 to 3 := 0; --range 0 to 2**(MUX_WIDTH-1) - TRG2_CHANNEL : integer range 0 to 3 := 1; --range 0 to 2**(MUX_WIDTH-1) - DAT1_CHANNEL : integer range 0 to 3 := 2; --range 0 to 2**(MUX_WIDTH-1) - DAT2_CHANNEL : integer range 0 to 3 := 3; --range 0 to 2**(MUX_WIDTH-1) - --General - DATA_WIDTH : integer range 16 to 16 := 16; - NUM_WIDTH : integer range 2 to 2 := 2 - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out std_logic; --Data word ready to be read out - MED_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - MED_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - MED_READ_IN: in std_logic; -- Media is reading - MED_DATAREADY_IN: in std_logic; -- Data word is offered by the Media - MED_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - MED_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_READ_OUT: out std_logic; -- buffer reads a word from media - MED_ERROR_IN: in std_logic_vector (2 downto 0); -- Status bits - - -- APL1 Transceiver port - APL1_DATA_IN: in std_logic_vector (15 downto 0); -- Data word "application to network" - APL1_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - APL1_WRITE_IN: in std_logic; -- Data word is valid and should be transmitted - APL1_FIFO_FULL_OUT: out std_logic; -- Stop transfer, the fifo is full - APL1_SHORT_TRANSFER_IN: in std_logic; -- - APL1_DTYPE_IN: in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL1_ERROR_PATTERN_IN: in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL1_SEND_IN: in std_logic; -- Release sending of the data - APL1_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word "network to application" - APL1_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - APL1_TYP_OUT: out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL1_DATAREADY_OUT: out std_logic; -- Data word is valid and might be read out - APL1_READ_IN: in std_logic; -- Read data word - APL1_RUN_OUT: out std_logic; -- Data transfer is running - APL1_MY_ADDRESS_IN: in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL1_SEQNR_OUT: out std_logic_vector (7 downto 0); - APL1_TARGET_ADDRESS_IN : in std_logic_vector(15 downto 0); - - -- APL2 Transceiver port - APL2_DATA_IN: in std_logic_vector (15 downto 0); -- Data word "application to network" - APL2_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - APL2_WRITE_IN: in std_logic; -- Data word is valid and should be transmitted - APL2_FIFO_FULL_OUT: out std_logic; -- Stop transfer, the fifo is full - APL2_SHORT_TRANSFER_IN: in std_logic; -- - APL2_DTYPE_IN: in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL2_ERROR_PATTERN_IN: in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL2_SEND_IN: in std_logic; -- Release sending of the data - APL2_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word "network to application" - APL2_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - APL2_TYP_OUT: out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL2_DATAREADY_OUT: out std_logic; -- Data word is valid and might be read out - APL2_READ_IN: in std_logic; -- Read data word - APL2_RUN_OUT: out std_logic; -- Data transfer is running - APL2_MY_ADDRESS_IN: in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL2_SEQNR_OUT: out std_logic_vector (7 downto 0); - APL2_TARGET_ADDRESS_IN : in std_logic_vector(15 downto 0); - - -- TRG1 Receiver port - TRG1_GOT_TRIGGER_OUT : out std_logic; - TRG1_ERROR_PATTERN_OUT : out std_logic_vector(31 downto 0); - TRG1_DTYPE_OUT : out std_logic_vector(3 downto 0); - TRG1_SEQNR_OUT : out std_logic_vector(7 downto 0); - TRG1_ERROR_PATTERN_IN : in std_logic_vector(31 downto 0); - TRG1_RELEASE_IN : in std_logic; - - -- TRG2 Receiver port - TRG2_GOT_TRIGGER_OUT : out std_logic; - TRG2_ERROR_PATTERN_OUT : out std_logic_vector(31 downto 0); - TRG2_DTYPE_OUT : out std_logic_vector(3 downto 0); - TRG2_SEQNR_OUT : out std_logic_vector(7 downto 0); - TRG2_ERROR_PATTERN_IN : in std_logic_vector(31 downto 0); - TRG2_RELEASE_IN : in std_logic; - - -- Status and control port => for debugging - STAT_DAT2_GEN: out std_logic_vector (31 downto 0); -- General Status - STAT_DAT2_LOCKED: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_DAT2_INIT_BUFFER: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_DAT2_REPLY_BUFFER: out std_logic_vector (31 downto 0); -- General Status - STAT_DAT2_api_control_signals: out std_logic_vector(31 downto 0); - CTRL_DAT2_GEN: in std_logic_vector (31 downto 0); - CTRL_DAT2_LOCKED: in std_logic_vector (31 downto 0); - STAT_DAT2_CTRL_INIT_BUFFER: in std_logic_vector (31 downto 0); - STAT_DAT2_CTRL_REPLY_BUFFER: in std_logic_vector (31 downto 0); - STAT_TRG2_GEN: out std_logic_vector (31 downto 0); -- General Status - STAT_TRG2_LOCKED: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_TRG2_INIT_BUFFER: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_TRG2_REPLY_BUFFER: out std_logic_vector (31 downto 0); -- General Status - STAT_TRG2_api_control_signals: out std_logic_vector(31 downto 0); - CTRL_TRG2_GEN: in std_logic_vector (31 downto 0); - CTRL_TRG2_LOCKED: in std_logic_vector (31 downto 0); - STAT_TRG2_CTRL_INIT_BUFFER: in std_logic_vector (31 downto 0); - STAT_TRG2_CTRL_REPLY_BUFFER: in std_logic_vector (31 downto 0); - STAT_MPLEX: out std_logic_vector(31 downto 0); - MPLEX_CTRL: in std_logic_vector (31 downto 0); - DAT1_API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - DAT1_API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - DAT2_API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - DAT2_API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); -end entity; - -architecture trb_net16_endpoint_2_trg_2_api_arch of trb_net16_endpoint_2_trg_2_api_endpoint is - - component trb_net16_iobuf is - - generic ( - INIT_DEPTH : integer := 1; - REPLY_DEPTH : integer := 1 - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_INIT_DATAREADY_OUT: out std_logic; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_INIT_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - MED_INIT_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - MED_INIT_READ_IN: in std_logic; -- Media is reading - - MED_INIT_DATAREADY_IN: in std_logic; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_INIT_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - MED_INIT_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_INIT_READ_OUT: out std_logic; -- buffer reads a word from media - MED_INIT_ERROR_IN: in std_logic_vector (2 downto 0); -- Status bits - - MED_REPLY_DATAREADY_OUT: out std_logic; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_REPLY_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - MED_REPLY_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - MED_REPLY_READ_IN: in std_logic; -- Media is reading - - MED_REPLY_DATAREADY_IN: in std_logic; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_REPLY_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - MED_REPLY_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_REPLY_READ_OUT: out std_logic; -- buffer reads a word from media - MED_REPLY_ERROR_IN: in std_logic_vector (2 downto 0); -- Status bits - - -- Internal direction port - - INT_INIT_DATAREADY_OUT: out std_logic; - INT_INIT_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - INT_INIT_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - INT_INIT_READ_IN: in std_logic; - - INT_INIT_DATAREADY_IN: in std_logic; - INT_INIT_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - INT_INIT_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - INT_INIT_READ_OUT: out std_logic; - - INT_REPLY_HEADER_IN: in std_logic; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out std_logic; - INT_REPLY_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - INT_REPLY_PACKET_NUM_OUT:out std_logic_vector (1 downto 0); - INT_REPLY_READ_IN: in std_logic; - - INT_REPLY_DATAREADY_IN: in std_logic; - INT_REPLY_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - INT_REPLY_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - INT_REPLY_READ_OUT: out std_logic; - - -- Status and control port - STAT_GEN: out std_logic_vector (31 downto 0); -- General Status - STAT_LOCKED: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out std_logic_vector (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out std_logic_vector (31 downto 0); -- General Status - CTRL_GEN: in std_logic_vector (31 downto 0); - CTRL_LOCKED: in std_logic_vector (31 downto 0); - STAT_CTRL_INIT_BUFFER: in std_logic_vector (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in std_logic_vector (31 downto 0) - ); - end component; - - component trb_net16_api_base is - generic (API_TYPE : integer := API_TYPE; -- type of api: 0 passive, 1 active - --FIFO size is given in 2^(n+1) 64Bit-packets i.e. 2^(n+3) 16bit packets - FIFO_TO_INT_DEPTH : integer := 1; -- direction to medium - FIFO_TO_APL_DEPTH : integer := 1; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering master path - -- if set to 0, no buffer is used - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- APL Transmitter port - APL_DATA_IN : in std_logic_vector (15 downto 0); -- Data word "application to network" - APL_PACKET_NUM_IN : in std_logic_vector (1 downto 0); - APL_WRITE_IN : in std_logic; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT : out std_logic; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN : in std_logic; -- - APL_DTYPE_IN : in std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN : in std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN : in std_logic; -- Release sending of the data - APL_TARGET_ADDRESS_IN : in std_logic_vector (15 downto 0); -- Address of - -- Receiver port - APL_DATA_OUT : out std_logic_vector (15 downto 0); -- Data word "network to application" - APL_PACKET_NUM_OUT : out std_logic_vector (1 downto 0); - APL_TYP_OUT : out std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT : out std_logic; -- Data word is valid and might be read out - APL_READ_IN : in std_logic; -- Read data word - -- APL Control port - APL_RUN_OUT : out std_logic; -- Data transfer is running - APL_MY_ADDRESS_IN : in std_logic_vector (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT : out std_logic_vector (7 downto 0); - -- Internal direction port - -- the ports with master or slave in their name are to be mapped by the active api - -- to the init respectivly the reply path and vice versa in the passive api. - -- lets define: the "master" path is the path that I send data on. - INT_MASTER_DATAREADY_OUT : out std_logic; - INT_MASTER_DATA_OUT : out std_logic_vector (15 downto 0); -- Data word - INT_MASTER_PACKET_NUM_OUT : out std_logic_vector (1 downto 0); - INT_MASTER_READ_IN : in std_logic; - INT_MASTER_DATAREADY_IN : in std_logic; - INT_MASTER_DATA_IN : in std_logic_vector (15 downto 0); -- Data word - INT_MASTER_PACKET_NUM_IN : in std_logic_vector (1 downto 0); - INT_MASTER_READ_OUT : out std_logic; - INT_SLAVE_HEADER_IN : in std_logic; -- Concentrator kindly asks to resend the last HDR - INT_SLAVE_DATAREADY_OUT : out std_logic; - INT_SLAVE_DATA_OUT : out std_logic_vector (15 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_OUT : out std_logic_vector (1 downto 0); - INT_SLAVE_READ_IN : in std_logic; - INT_SLAVE_DATAREADY_IN : in std_logic; - INT_SLAVE_DATA_IN : in std_logic_vector (15 downto 0); -- Data word - INT_SLAVE_PACKET_NUM_IN : in std_logic_vector (1 downto 0); - INT_SLAVE_READ_OUT : out std_logic; - -- Status and control port - STAT_FIFO_TO_INT : out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL : out std_logic_vector(31 downto 0) - ); - end component; - - component trb_net16_term is - generic ( - USE_APL_PORT : integer range 0 to 1 := 1; - SECURE_MODE : integer range 0 to 1 := 0 - --if secure_mode is not used, apl must provide error pattern and dtype until - --next trigger comes in. In secure mode these must be available when hold_trm goes low - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - INT_DATAREADY_OUT: out std_logic; - INT_DATA_OUT: out std_logic_vector (15 downto 0); -- Data word - INT_PACKET_NUM_OUT: out std_logic_vector (1 downto 0); - INT_READ_IN: in std_logic; - INT_DATAREADY_IN: in std_logic; - INT_DATA_IN: in std_logic_vector (15 downto 0); -- Data word - INT_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - INT_READ_OUT: out std_logic; - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out std_logic_vector (7 downto 0); - APL_GOT_TRM: out std_logic; - APL_RELEASE_TRM: in std_logic; - APL_ERROR_PATTERN_IN: in std_logic_vector (31 downto 0) -- see NewTriggerBusNetworkDescr - -- Status and control port - ); - end component; - - component trb_net16_io_multiplexer is - generic ( - DATA_WIDTH : integer := 16; - NUM_WIDTH : integer := 2; - MUX_WIDTH : integer range 1 to 5 := 3; - MUX_SECURE_MODE : integer range 0 to 1 := 0 --use sbufs or not? - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in std_logic; - MED_DATA_IN: in std_logic_vector (DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN: in std_logic_vector (NUM_WIDTH-1 downto 0); - MED_READ_OUT: out std_logic; - MED_DATAREADY_OUT: out std_logic; - MED_DATA_OUT: out std_logic_vector (DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT:out std_logic_vector (NUM_WIDTH-1 downto 0); - MED_READ_IN: in std_logic; - -- Internal direction port - INT_DATAREADY_OUT: out std_logic_vector (2**MUX_WIDTH-1 downto 0); - INT_DATA_OUT: out std_logic_vector ((DATA_WIDTH)*(2**MUX_WIDTH)-1 downto 0); - INT_PACKET_NUM_OUT:out std_logic_vector (2*(2**MUX_WIDTH)-1 downto 0); - INT_READ_IN: in std_logic_vector (2**MUX_WIDTH-1 downto 0); - INT_DATAREADY_IN: in std_logic_vector (2**MUX_WIDTH-1 downto 0); - INT_DATA_IN: in std_logic_vector ((DATA_WIDTH)*(2**MUX_WIDTH)-1 downto 0); - INT_PACKET_NUM_IN: in std_logic_vector (2*(2**MUX_WIDTH)-1 downto 0); - INT_READ_OUT: out std_logic_vector (2**MUX_WIDTH-1 downto 0); - -- Status and control port - CTRL: in std_logic_vector (31 downto 0); - STAT: out std_logic_vector (31 downto 0) - ); - end component; - - component trb_net16_term_buf is - port( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - MED_INIT_DATAREADY_OUT: out std_logic; - MED_INIT_DATA_OUT: out std_logic_vector (15 downto 0); - MED_INIT_PACKET_NUM_OUT: out std_logic_vector (1 downto 0); - MED_INIT_READ_IN: in std_logic; - MED_INIT_DATAREADY_IN: in std_logic; - MED_INIT_DATA_IN: in std_logic_vector (15 downto 0); - MED_INIT_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_INIT_READ_OUT: out std_logic; - MED_REPLY_DATAREADY_OUT: out std_logic; - MED_REPLY_DATA_OUT: out std_logic_vector (15 downto 0); - MED_REPLY_PACKET_NUM_OUT: out std_logic_vector (1 downto 0); - MED_REPLY_READ_IN: in std_logic; - MED_REPLY_DATAREADY_IN: in std_logic; - MED_REPLY_DATA_IN: in std_logic_vector (15 downto 0); - MED_REPLY_PACKET_NUM_IN: in std_logic_vector (1 downto 0); - MED_REPLY_READ_OUT: out std_logic - ); - end component; -signal apl_to_buf_DAT1_INIT_DATAREADY: std_logic; -signal apl_to_buf_DAT1_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_DAT1_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_DAT1_INIT_READ : std_logic; - -signal buf_to_apl_DAT1_INIT_DATAREADY: std_logic; -signal buf_to_apl_DAT1_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_DAT1_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_DAT1_INIT_READ : std_logic; - -signal apl_to_buf_DAT1_REPLY_DATAREADY: std_logic; -signal apl_to_buf_DAT1_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_DAT1_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_DAT1_REPLY_READ : std_logic; - -signal buf_to_apl_DAT1_REPLY_DATAREADY: std_logic; -signal buf_to_apl_DAT1_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_DAT1_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_DAT1_REPLY_READ : std_logic; - -signal apl_to_buf_DAT2_INIT_DATAREADY: std_logic; -signal apl_to_buf_DAT2_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_DAT2_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_DAT2_INIT_READ : std_logic; - -signal buf_to_apl_DAT2_INIT_DATAREADY: std_logic; -signal buf_to_apl_DAT2_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_DAT2_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_DAT2_INIT_READ : std_logic; - -signal apl_to_buf_DAT2_REPLY_DATAREADY: std_logic; -signal apl_to_buf_DAT2_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_DAT2_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_DAT2_REPLY_READ : std_logic; - -signal buf_to_apl_DAT2_REPLY_DATAREADY: std_logic; -signal buf_to_apl_DAT2_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_DAT2_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_DAT2_REPLY_READ : std_logic; - -signal apl_to_buf_TRG1_INIT_DATAREADY: std_logic; -signal apl_to_buf_TRG1_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_TRG1_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_TRG1_INIT_READ : std_logic; - -signal buf_to_apl_TRG1_INIT_DATAREADY: std_logic; -signal buf_to_apl_TRG1_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_TRG1_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_TRG1_INIT_READ : std_logic; - -signal apl_to_buf_TRG1_REPLY_DATAREADY: std_logic; -signal apl_to_buf_TRG1_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_TRG1_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_TRG1_REPLY_READ : std_logic; - -signal buf_to_apl_TRG1_REPLY_DATAREADY: std_logic; -signal buf_to_apl_TRG1_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_TRG1_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_TRG1_REPLY_READ : std_logic; - -signal apl_to_buf_TRG2_INIT_DATAREADY: std_logic; -signal apl_to_buf_TRG2_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_TRG2_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_TRG2_INIT_READ : std_logic; - -signal buf_to_apl_TRG2_INIT_DATAREADY: std_logic; -signal buf_to_apl_TRG2_INIT_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_TRG2_INIT_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_TRG2_INIT_READ : std_logic; - -signal apl_to_buf_TRG2_REPLY_DATAREADY: std_logic; -signal apl_to_buf_TRG2_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal apl_to_buf_TRG2_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal apl_to_buf_TRG2_REPLY_READ : std_logic; - -signal buf_to_apl_TRG2_REPLY_DATAREADY: std_logic; -signal buf_to_apl_TRG2_REPLY_DATA : std_logic_vector (DATA_WIDTH-1 downto 0); -signal buf_to_apl_TRG2_REPLY_PACKET_NUM:std_logic_vector (NUM_WIDTH-1 downto 0); -signal buf_to_apl_TRG2_REPLY_READ : std_logic; - --- for the connection to the multiplexer -signal MED_DAT1_INIT_DATAREADY_OUT : std_logic; -signal MED_DAT1_INIT_DATA_OUT : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT1_INIT_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT1_INIT_READ_IN : std_logic; - -signal MED_DAT1_INIT_DATAREADY_IN : std_logic; -signal MED_DAT1_INIT_DATA_IN : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT1_INIT_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT1_INIT_READ_OUT : std_logic; - -signal MED_DAT1_REPLY_DATAREADY_OUT : std_logic; -signal MED_DAT1_REPLY_DATA_OUT : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT1_REPLY_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT1_REPLY_READ_IN : std_logic; - -signal MED_DAT1_REPLY_DATAREADY_IN : std_logic; -signal MED_DAT1_REPLY_DATA_IN : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT1_REPLY_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT1_REPLY_READ_OUT : std_logic; - -signal MED_DAT2_INIT_DATAREADY_OUT : std_logic; -signal MED_DAT2_INIT_DATA_OUT : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT2_INIT_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT2_INIT_READ_IN : std_logic; - -signal MED_DAT2_INIT_DATAREADY_IN : std_logic; -signal MED_DAT2_INIT_DATA_IN : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT2_INIT_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT2_INIT_READ_OUT : std_logic; - -signal MED_DAT2_REPLY_DATAREADY_OUT : std_logic; -signal MED_DAT2_REPLY_DATA_OUT : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT2_REPLY_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT2_REPLY_READ_IN : std_logic; - -signal MED_DAT2_REPLY_DATAREADY_IN : std_logic; -signal MED_DAT2_REPLY_DATA_IN : std_logic_vector (DATA_WIDTH-1 downto 0); -signal MED_DAT2_REPLY_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH-1 downto 0); -signal MED_DAT2_REPLY_READ_OUT : std_logic; - -signal MED_TRG1_INIT_DATAREADY_OUT : std_logic_vector(1 downto 0); -signal MED_TRG1_INIT_DATA_OUT : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG1_INIT_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG1_INIT_READ_IN : std_logic_vector(1 downto 0); - -signal MED_TRG1_INIT_DATAREADY_IN : std_logic_vector(1 downto 0); -signal MED_TRG1_INIT_DATA_IN : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG1_INIT_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG1_INIT_READ_OUT : std_logic_vector(1 downto 0); - -signal MED_TRG1_REPLY_DATAREADY_OUT : std_logic_vector(1 downto 0); -signal MED_TRG1_REPLY_DATA_OUT : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG1_REPLY_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG1_REPLY_READ_IN : std_logic_vector(1 downto 0); - -signal MED_TRG1_REPLY_DATAREADY_IN : std_logic_vector(1 downto 0); -signal MED_TRG1_REPLY_DATA_IN : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG1_REPLY_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG1_REPLY_READ_OUT : std_logic_vector(1 downto 0); - -signal MED_TRG2_INIT_DATAREADY_OUT : std_logic_vector(1 downto 0); -signal MED_TRG2_INIT_DATA_OUT : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG2_INIT_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG2_INIT_READ_IN : std_logic_vector(1 downto 0); - -signal MED_TRG2_INIT_DATAREADY_IN : std_logic_vector(1 downto 0); -signal MED_TRG2_INIT_DATA_IN : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG2_INIT_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG2_INIT_READ_OUT : std_logic_vector(1 downto 0); - -signal MED_TRG2_REPLY_DATAREADY_OUT : std_logic_vector(1 downto 0); -signal MED_TRG2_REPLY_DATA_OUT : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG2_REPLY_PACKET_NUM_OUT : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG2_REPLY_READ_IN : std_logic_vector(1 downto 0); - -signal MED_TRG2_REPLY_DATAREADY_IN : std_logic_vector(1 downto 0); -signal MED_TRG2_REPLY_DATA_IN : std_logic_vector (DATA_WIDTH*2-1 downto 0); -signal MED_TRG2_REPLY_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2-1 downto 0); -signal MED_TRG2_REPLY_READ_OUT : std_logic_vector(1 downto 0); - -signal m_DATAREADY_OUT : std_logic_vector (2**MUX_WIDTH-1 downto 0); -signal m_DATA_OUT : std_logic_vector (DATA_WIDTH*2**MUX_WIDTH-1 downto 0); -signal m_PACKET_NUM_OUT: std_logic_vector (NUM_WIDTH*2**MUX_WIDTH-1 downto 0); -signal m_READ_IN : std_logic_vector (2**MUX_WIDTH-1 downto 0); - -signal m_DATAREADY_IN : std_logic_vector (2**MUX_WIDTH-1 downto 0); -signal m_DATA_IN : std_logic_vector (DATA_WIDTH**MUX_WIDTH-1 downto 0); -signal m_PACKET_NUM_IN : std_logic_vector (NUM_WIDTH*2**MUX_WIDTH-1 downto 0); -signal m_READ_OUT : std_logic_vector (2**MUX_WIDTH-1 downto 0); - -begin - - --Connections for data and trigger channel - genmuxcon : for i in 0 to 2**(MUX_WIDTH-1)-1 generate - gendat1: if i = DAT1_CHANNEL generate - m_DATAREADY_OUT(i*2) <= MED_DAT1_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(i*2+1) <= MED_DAT1_REPLY_DATAREADY_OUT; - m_DATA_OUT((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2) <= MED_DAT1_INIT_DATA_OUT; - m_DATA_OUT((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH) <= MED_DAT1_REPLY_DATA_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2) <= MED_DAT1_INIT_PACKET_NUM_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2) <= MED_DAT1_REPLY_PACKET_NUM_OUT; - MED_DAT1_INIT_READ_IN <= m_READ_IN(i*2); - MED_DAT1_REPLY_READ_IN <= m_READ_IN(i*2+1); - MED_DAT1_INIT_DATAREADY_IN <= m_DATAREADY_IN(i*2); - MED_DAT1_REPLY_DATAREADY_IN <= m_DATAREADY_IN(i*2+1); - MED_DAT1_INIT_DATA_IN <= m_DATA_IN((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2); - MED_DAT1_REPLY_DATA_IN <= m_DATA_IN((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH); - MED_DAT1_INIT_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2); - MED_DAT1_REPLY_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2); - m_READ_OUT(i*2) <= MED_DAT1_INIT_READ_OUT; - m_READ_OUT(i*2+1) <= MED_DAT1_REPLY_READ_OUT; - end generate; - gendat2: if i = DAT2_CHANNEL generate - m_DATAREADY_OUT(i*2) <= MED_DAT2_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(i*2+1) <= MED_DAT2_REPLY_DATAREADY_OUT; - m_DATA_OUT((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2) <= MED_DAT2_INIT_DATA_OUT; - m_DATA_OUT((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH) <= MED_DAT2_REPLY_DATA_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2) <= MED_DAT2_INIT_PACKET_NUM_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2) <= MED_DAT2_REPLY_PACKET_NUM_OUT; - MED_DAT2_INIT_READ_IN <= m_READ_IN(i*2); - MED_DAT2_REPLY_READ_IN <= m_READ_IN(i*2+1); - MED_DAT2_INIT_DATAREADY_IN <= m_DATAREADY_IN(i*2); - MED_DAT2_REPLY_DATAREADY_IN <= m_DATAREADY_IN(i*2+1); - MED_DAT2_INIT_DATA_IN <= m_DATA_IN((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2); - MED_DAT2_REPLY_DATA_IN <= m_DATA_IN((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH); - MED_DAT2_INIT_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2); - MED_DAT2_REPLY_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2); - m_READ_OUT(i*2) <= MED_DAT2_INIT_READ_OUT; - m_READ_OUT(i*2+1) <= MED_DAT2_REPLY_READ_OUT; - end generate; - gentrg1: if i = TRG1_CHANNEL generate - m_DATAREADY_OUT(i*2) <= MED_TRG1_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(i*2+1) <= MED_TRG1_REPLY_DATAREADY_OUT; - m_DATA_OUT((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2) <= MED_TRG1_INIT_DATA_OUT; - m_DATA_OUT((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH) <= MED_TRG1_REPLY_DATA_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2) <= MED_TRG1_INIT_PACKET_NUM_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2) <= MED_TRG1_REPLY_PACKET_NUM_OUT; - MED_TRG1_INIT_READ_IN <= m_READ_IN(i*2); - MED_TRG1_REPLY_READ_IN <= m_READ_IN(i*2+1); - MED_TRG1_INIT_DATAREADY_IN <= m_DATAREADY_IN(i*2); - MED_TRG1_REPLY_DATAREADY_IN <= m_DATAREADY_IN(i*2+1); - MED_TRG1_INIT_DATA_IN <= m_DATA_IN((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2); - MED_TRG1_REPLY_DATA_IN <= m_DATA_IN((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH); - MED_TRG1_INIT_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2); - MED_TRG1_REPLY_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2); - m_READ_OUT(i*2) <= MED_TRG1_INIT_READ_OUT; - m_READ_OUT(i*2+1) <= MED_TRG1_REPLY_READ_OUT; - end generate; - gentrg1: if i = TRG2_CHANNEL generate - m_DATAREADY_OUT(i*2) <= MED_TRG2_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(i*2+1) <= MED_TRG2_REPLY_DATAREADY_OUT; - m_DATA_OUT((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2) <= MED_TRG2_INIT_DATA_OUT; - m_DATA_OUT((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH) <= MED_TRG2_REPLY_DATA_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2) <= MED_TRG2_INIT_PACKET_NUM_OUT; - m_PACKET_NUM_OUT(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2) <= MED_TRG2_REPLY_PACKET_NUM_OUT; - MED_TRG2_INIT_READ_IN <= m_READ_IN(i*2); - MED_TRG2_REPLY_READ_IN <= m_READ_IN(i*2+1); - MED_TRG2_INIT_DATAREADY_IN <= m_DATAREADY_IN(i*2); - MED_TRG2_REPLY_DATAREADY_IN <= m_DATAREADY_IN(i*2+1); - MED_TRG2_INIT_DATA_IN <= m_DATA_IN((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2); - MED_TRG2_REPLY_DATA_IN <= m_DATA_IN((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH); - MED_TRG2_INIT_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2); - MED_TRG2_REPLY_PACKET_NUM_IN <= m_PACKET_NUM_IN(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2); - m_READ_OUT(i*2) <= MED_TRG2_INIT_READ_OUT; - m_READ_OUT(i*2+1) <= MED_TRG2_REPLY_READ_OUT; - end generate; - genelse: if i /= DAT1_CHANNEL and i /= DAT2_CHANNEL and i /= TRG1_CHANNEL and i /= TRG2_CHANNEL generate - termbuf: trb_net16_term_buf - port map( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_INIT_DATAREADY_OUT => m_DATAREADY_OUT(i*2), - MED_INIT_DATA_OUT => m_DATA_OUT((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2), - MED_INIT_PACKET_NUM_OUT => m_PACKET_NUM_OUT(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2), - MED_INIT_READ_IN => m_READ_IN(i*2), - MED_INIT_DATAREADY_IN => m_DATAREADY_IN(i*2), - MED_INIT_DATA_IN => m_DATA_IN((i*2+1)*DATA_WIDTH-1 downto i*DATA_WIDTH*2), - MED_INIT_PACKET_NUM_IN => m_PACKET_NUM_IN(i*NUM_WIDTH*2+1 downto i*NUM_WIDTH*2), - MED_INIT_READ_OUT => m_READ_OUT(i*2), - - MED_REPLY_DATAREADY_OUT => m_DATAREADY_OUT(i*2+1), - MED_REPLY_DATA_OUT => m_DATA_OUT((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH), - MED_REPLY_PACKET_NUM_OUT => m_PACKET_NUM_OUT(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2), - MED_REPLY_READ_IN => m_READ_IN(i*2+1), - MED_REPLY_DATAREADY_IN => m_DATAREADY_IN(i*2+1), - MED_REPLY_DATA_IN => m_DATA_IN((i*2+2)*DATA_WIDTH-1 downto (i*2+1)*DATA_WIDTH), - MED_REPLY_PACKET_NUM_IN => m_PACKET_NUM_IN(i*NUM_WIDTH*2+3 downto i*NUM_WIDTH*2+2), - MED_REPLY_READ_OUT => m_READ_OUT(i*2+1) - ); - end generate; - end generate; - - gen_actapi1: if API1_TYPE = 1 generate - DAT_ACTIVE_API1: trb_net16_api_base - generic map ( - API_TYPE => 1, - FIFO_TO_INT_DEPTH => DAT1_FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => DAT1_FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => APL1_DATA_IN, - APL_PACKET_NUM_IN => APL1_PACKET_NUM_IN, - APL_WRITE_IN => APL1_WRITE_IN, - APL_FIFO_FULL_OUT => APL1_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL1_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL1_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL1_ERROR_PATTERN_IN, - APL_SEND_IN => APL1_SEND_IN, - APL_TARGET_ADDRESS_IN => APL1_TARGET_ADDRESS_IN, - -- Receiver port - APL_DATA_OUT => APL1_DATA_OUT, - APL_PACKET_NUM_OUT=> APL1_PACKET_NUM_OUT, - APL_TYP_OUT => APL1_TYP_OUT, - APL_DATAREADY_OUT => APL1_DATAREADY_OUT, - APL_READ_IN => APL1_READ_IN, - -- APL Control port - APL_RUN_OUT => APL1_RUN_OUT, - APL_MY_ADDRESS_IN => APL1_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL1_SEQNR_OUT, - -- Internal direction port - INT_MASTER_DATAREADY_OUT => apl_to_buf_DAT1_INIT_DATAREADY, - INT_MASTER_DATA_OUT => apl_to_buf_DAT1_INIT_DATA, - INT_MASTER_PACKET_NUM_OUT=> apl_to_buf_DAT1_INIT_PACKET_NUM, - INT_MASTER_READ_IN => apl_to_buf_DAT1_INIT_READ, - INT_MASTER_DATAREADY_IN => buf_to_apl_DAT1_INIT_DATAREADY, - INT_MASTER_DATA_IN => buf_to_apl_DAT1_INIT_DATA, - INT_MASTER_PACKET_NUM_IN => buf_to_apl_DAT1_INIT_PACKET_NUM, - INT_MASTER_READ_OUT => buf_to_apl_DAT1_INIT_READ, - INT_SLAVE_HEADER_IN => '0', - INT_SLAVE_DATAREADY_OUT => apl_to_buf_DAT1_REPLY_DATAREADY, - INT_SLAVE_DATA_OUT => apl_to_buf_DAT1_REPLY_DATA, - INT_SLAVE_PACKET_NUM_OUT => apl_to_buf_DAT1_REPLY_PACKET_NUM, - INT_SLAVE_READ_IN => apl_to_buf_DAT1_REPLY_READ, - INT_SLAVE_DATAREADY_IN => buf_to_apl_DAT1_REPLY_DATAREADY, - INT_SLAVE_DATA_IN => buf_to_apl_DAT1_REPLY_DATA, - INT_SLAVE_PACKET_NUM_IN=> buf_to_apl_DAT1_REPLY_PACKET_NUM, - INT_SLAVE_READ_OUT => buf_to_apl_DAT1_REPLY_READ, - -- Status and control port - STAT_FIFO_TO_INT => DAT1_api_stat_fifo_to_int, - STAT_FIFO_TO_APL => DAT1_api_stat_fifo_to_apl - ); - end generate; - - gen_pasapi1: if API1_TYPE = 0 generate - DAT_PASSIVE_API1: trb_net16_api_base - generic map ( - API_TYPE => 0, - FIFO_TO_INT_DEPTH => DAT1_FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => DAT1_FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => APL1_DATA_IN, - APL_PACKET_NUM_IN => APL1_PACKET_NUM_IN, - APL_WRITE_IN => APL1_WRITE_IN, - APL_FIFO_FULL_OUT => APL1_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL1_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL1_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL1_ERROR_PATTERN_IN, - APL_SEND_IN => APL1_SEND_IN, - APL_TARGET_ADDRESS_IN => (others => '0'), - -- Receiver port - APL_DATA_OUT => APL1_DATA_OUT, - APL_PACKET_NUM_OUT=> APL1_PACKET_NUM_OUT, - APL_TYP_OUT => APL1_TYP_OUT, - APL_DATAREADY_OUT => APL1_DATAREADY_OUT, - APL_READ_IN => APL1_READ_IN, - -- APL Control port - APL_RUN_OUT => APL1_RUN_OUT, - APL_MY_ADDRESS_IN => APL1_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL1_SEQNR_OUT, - -- Internal direction port - INT_MASTER_DATAREADY_OUT => apl_to_buf_DAT1_REPLY_DATAREADY, - INT_MASTER_DATA_OUT => apl_to_buf_DAT1_REPLY_DATA, - INT_MASTER_PACKET_NUM_OUT=> apl_to_buf_DAT1_REPLY_PACKET_NUM, - INT_MASTER_READ_IN => apl_to_buf_DAT1_REPLY_READ, - INT_MASTER_DATAREADY_IN => buf_to_apl_DAT1_REPLY_DATAREADY, - INT_MASTER_DATA_IN => buf_to_apl_DAT1_REPLY_DATA, - INT_MASTER_PACKET_NUM_IN => buf_to_apl_DAT1_REPLY_PACKET_NUM, - INT_MASTER_READ_OUT => buf_to_apl_DAT1_REPLY_READ, - INT_SLAVE_HEADER_IN => '0', - INT_SLAVE_DATAREADY_OUT => apl_to_buf_DAT1_INIT_DATAREADY, - INT_SLAVE_DATA_OUT => apl_to_buf_DAT1_INIT_DATA, - INT_SLAVE_PACKET_NUM_OUT => apl_to_buf_DAT1_INIT_PACKET_NUM, - INT_SLAVE_READ_IN => apl_to_buf_DAT1_INIT_READ, - INT_SLAVE_DATAREADY_IN => buf_to_apl_DAT1_INIT_DATAREADY, - INT_SLAVE_DATA_IN => buf_to_apl_DAT1_INIT_DATA, - INT_SLAVE_PACKET_NUM_IN=> buf_to_apl_DAT1_INIT_PACKET_NUM, - INT_SLAVE_READ_OUT => buf_to_apl_DAT1_INIT_READ, - -- Status and control port - STAT_FIFO_TO_INT => DAT1_api_stat_fifo_to_int, - STAT_FIFO_TO_APL => DAT1_api_stat_fifo_to_apl - ); - end generate; - -STAT_DAT1_api_control_signals(2 downto 0) <= APL1_DATA_IN(2 downto 0); -STAT_DAT1_api_control_signals(3) <= APL1_WRITE_IN; -STAT_DAT1_api_control_signals(4) <= APL1_SEND_IN; -STAT_DAT1_api_control_signals(7 downto 5) <= (others => '0'); -STAT_DAT1_api_control_signals(10 downto 8) <= apl_to_buf_DAT1_INIT_DATA(2 downto 0); -STAT_DAT1_api_control_signals(11) <= apl_to_buf_DAT1_INIT_DATAREADY; -STAT_DAT1_api_control_signals(12) <= apl_to_buf_DAT1_INIT_READ; -STAT_DAT1_api_control_signals(31 downto 13) <= (others => '0'); - - gen_actapi2: if API2_TYPE = 1 generate - DAT_ACTIVE_API1: trb_net16_api_base - generic map ( - API_TYPE => 1, - FIFO_TO_INT_DEPTH => DAT2_FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => DAT2_FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => APL2_DATA_IN, - APL_PACKET_NUM_IN => APL2_PACKET_NUM_IN, - APL_WRITE_IN => APL2_WRITE_IN, - APL_FIFO_FULL_OUT => APL2_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL2_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL2_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL2_ERROR_PATTERN_IN, - APL_SEND_IN => APL2_SEND_IN, - APL_TARGET_ADDRESS_IN => APL2_TARGET_ADDRESS_IN, - -- Receiver port - APL_DATA_OUT => APL2_DATA_OUT, - APL_PACKET_NUM_OUT=> APL2_PACKET_NUM_OUT, - APL_TYP_OUT => APL2_TYP_OUT, - APL_DATAREADY_OUT => APL2_DATAREADY_OUT, - APL_READ_IN => APL2_READ_IN, - -- APL Control port - APL_RUN_OUT => APL2_RUN_OUT, - APL_MY_ADDRESS_IN => APL2_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL2_SEQNR_OUT, - -- Internal direction port - INT_MASTER_DATAREADY_OUT => apl_to_buf_DAT2_INIT_DATAREADY, - INT_MASTER_DATA_OUT => apl_to_buf_DAT2_INIT_DATA, - INT_MASTER_PACKET_NUM_OUT=> apl_to_buf_DAT2_INIT_PACKET_NUM, - INT_MASTER_READ_IN => apl_to_buf_DAT2_INIT_READ, - INT_MASTER_DATAREADY_IN => buf_to_apl_DAT2_INIT_DATAREADY, - INT_MASTER_DATA_IN => buf_to_apl_DAT2_INIT_DATA, - INT_MASTER_PACKET_NUM_IN => buf_to_apl_DAT2_INIT_PACKET_NUM, - INT_MASTER_READ_OUT => buf_to_apl_DAT2_INIT_READ, - INT_SLAVE_HEADER_IN => '0', - INT_SLAVE_DATAREADY_OUT => apl_to_buf_DAT2_REPLY_DATAREADY, - INT_SLAVE_DATA_OUT => apl_to_buf_DAT2_REPLY_DATA, - INT_SLAVE_PACKET_NUM_OUT => apl_to_buf_DAT2_REPLY_PACKET_NUM, - INT_SLAVE_READ_IN => apl_to_buf_DAT2_REPLY_READ, - INT_SLAVE_DATAREADY_IN => buf_to_apl_DAT2_REPLY_DATAREADY, - INT_SLAVE_DATA_IN => buf_to_apl_DAT2_REPLY_DATA, - INT_SLAVE_PACKET_NUM_IN=> buf_to_apl_DAT2_REPLY_PACKET_NUM, - INT_SLAVE_READ_OUT => buf_to_apl_DAT2_REPLY_READ, - -- Status and control port - STAT_FIFO_TO_INT => DAT2_api_stat_fifo_to_int, - STAT_FIFO_TO_APL => DAT2_api_stat_fifo_to_apl - ); - end generate; - - gen_pasapi2: if API2_TYPE = 0 generate - DAT_PASSIVE_API1: trb_net16_api_base - generic map ( - API_TYPE => 0, - FIFO_TO_INT_DEPTH => DAT2_FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => DAT2_FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => APL2_DATA_IN, - APL_PACKET_NUM_IN => APL2_PACKET_NUM_IN, - APL_WRITE_IN => APL2_WRITE_IN, - APL_FIFO_FULL_OUT => APL2_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL2_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL2_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL2_ERROR_PATTERN_IN, - APL_SEND_IN => APL2_SEND_IN, - APL_TARGET_ADDRESS_IN => (others => '0'), - -- Receiver port - APL_DATA_OUT => APL2_DATA_OUT, - APL_PACKET_NUM_OUT=> APL2_PACKET_NUM_OUT, - APL_TYP_OUT => APL2_TYP_OUT, - APL_DATAREADY_OUT => APL2_DATAREADY_OUT, - APL_READ_IN => APL2_READ_IN, - -- APL Control port - APL_RUN_OUT => APL2_RUN_OUT, - APL_MY_ADDRESS_IN => APL2_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL2_SEQNR_OUT, - -- Internal direction port - INT_MASTER_DATAREADY_OUT => apl_to_buf_DAT2_REPLY_DATAREADY, - INT_MASTER_DATA_OUT => apl_to_buf_DAT2_REPLY_DATA, - INT_MASTER_PACKET_NUM_OUT=> apl_to_buf_DAT2_REPLY_PACKET_NUM, - INT_MASTER_READ_IN => apl_to_buf_DAT2_REPLY_READ, - INT_MASTER_DATAREADY_IN => buf_to_apl_DAT2_REPLY_DATAREADY, - INT_MASTER_DATA_IN => buf_to_apl_DAT2_REPLY_DATA, - INT_MASTER_PACKET_NUM_IN => buf_to_apl_DAT2_REPLY_PACKET_NUM, - INT_MASTER_READ_OUT => buf_to_apl_DAT2_REPLY_READ, - INT_SLAVE_HEADER_IN => '0', - INT_SLAVE_DATAREADY_OUT => apl_to_buf_DAT2_INIT_DATAREADY, - INT_SLAVE_DATA_OUT => apl_to_buf_DAT2_INIT_DATA, - INT_SLAVE_PACKET_NUM_OUT => apl_to_buf_DAT2_INIT_PACKET_NUM, - INT_SLAVE_READ_IN => apl_to_buf_DAT2_INIT_READ, - INT_SLAVE_DATAREADY_IN => buf_to_apl_DAT2_INIT_DATAREADY, - INT_SLAVE_DATA_IN => buf_to_apl_DAT2_INIT_DATA, - INT_SLAVE_PACKET_NUM_IN=> buf_to_apl_DAT2_INIT_PACKET_NUM, - INT_SLAVE_READ_OUT => buf_to_apl_DAT2_INIT_READ, - -- Status and control port - STAT_FIFO_TO_INT => DAT2_api_stat_fifo_to_int, - STAT_FIFO_TO_APL => DAT2_api_stat_fifo_to_apl - ); - end generate; - -STAT_DAT2_api_control_signals(2 downto 0) <= APL2_DATA_IN(2 downto 0); -STAT_DAT2_api_control_signals(3) <= APL2_WRITE_IN; -STAT_DAT2_api_control_signals(4) <= APL2_SEND_IN; -STAT_DAT2_api_control_signals(7 downto 5) <= (others => '0'); -STAT_DAT2_api_control_signals(10 downto 8) <= apl_to_buf_DAT2_INIT_DATA(2 downto 0); -STAT_DAT2_api_control_signals(11) <= apl_to_buf_DAT2_INIT_DATAREADY; -STAT_DAT2_api_control_signals(12) <= apl_to_buf_DAT2_INIT_READ; -STAT_DAT2_api_control_signals(31 downto 13) <= (others => '0'); - -DAT1_IOBUF: trb_net16_iobuf - generic map( - INIT_DEPTH => DAT1_INIT_DEPTH, - REPLY_DEPTH => DAT1_REPLY_DEPTH - ) - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_DAT1_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_DAT1_INIT_DATA_OUT, - MED_INIT_PACKET_NUM_OUT => MED_DAT1_INIT_PACKET_NUM_OUT, - MED_INIT_READ_IN => MED_DAT1_INIT_READ_IN, - MED_INIT_DATAREADY_IN => MED_DAT1_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_DAT1_INIT_DATA_IN, - MED_INIT_PACKET_NUM_IN => MED_DAT1_INIT_PACKET_NUM_IN, - MED_INIT_READ_OUT => MED_DAT1_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - MED_REPLY_DATAREADY_OUT => MED_DAT1_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_DAT1_REPLY_DATA_OUT, - MED_REPLY_PACKET_NUM_OUT=> MED_DAT1_REPLY_PACKET_NUM_OUT, - MED_REPLY_READ_IN => MED_DAT1_REPLY_READ_IN, - MED_REPLY_DATAREADY_IN => MED_DAT1_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_DAT1_REPLY_DATA_IN, - MED_REPLY_PACKET_NUM_IN => MED_DAT1_REPLY_PACKET_NUM_IN, - MED_REPLY_READ_OUT => MED_DAT1_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - -- Internal direction port - INT_INIT_DATAREADY_OUT => buf_to_apl_DAT1_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_DAT1_INIT_DATA, - INT_INIT_PACKET_NUM_OUT=> buf_to_apl_DAT1_INIT_PACKET_NUM, - INT_INIT_READ_IN => buf_to_apl_DAT1_INIT_READ, - INT_INIT_DATAREADY_IN => apl_to_buf_DAT1_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_DAT1_INIT_DATA, - INT_INIT_PACKET_NUM_IN => apl_to_buf_DAT1_INIT_PACKET_NUM, - INT_INIT_READ_OUT => apl_to_buf_DAT1_INIT_READ, - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_DAT1_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_DAT1_REPLY_DATA, - INT_REPLY_PACKET_NUM_OUT=> buf_to_apl_DAT1_REPLY_PACKET_NUM, - INT_REPLY_READ_IN => buf_to_apl_DAT1_REPLY_READ, - INT_REPLY_DATAREADY_IN => apl_to_buf_DAT1_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_DAT1_REPLY_DATA, - INT_REPLY_PACKET_NUM_IN => apl_to_buf_DAT1_REPLY_PACKET_NUM, - INT_REPLY_READ_OUT => apl_to_buf_DAT1_REPLY_READ, - -- Status and control port - STAT_GEN => STAT_DAT1_GEN, - STAT_LOCKED => STAT_DAT1_LOCKED, - STAT_INIT_BUFFER => STAT_DAT1_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_DAT1_REPLY_BUFFER, - CTRL_GEN => CTRL_DAT1_GEN, - CTRL_LOCKED => CTRL_DAT1_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_DAT1_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_DAT1_CTRL_REPLY_BUFFER - ); - -DAT2_IOBUF: trb_net16_iobuf - generic map( - INIT_DEPTH => DAT2_INIT_DEPTH, - REPLY_DEPTH => DAT2_REPLY_DEPTH - ) - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_DAT2_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_DAT2_INIT_DATA_OUT, - MED_INIT_PACKET_NUM_OUT => MED_DAT2_INIT_PACKET_NUM_OUT, - MED_INIT_READ_IN => MED_DAT2_INIT_READ_IN, - MED_INIT_DATAREADY_IN => MED_DAT2_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_DAT2_INIT_DATA_IN, - MED_INIT_PACKET_NUM_IN => MED_DAT2_INIT_PACKET_NUM_IN, - MED_INIT_READ_OUT => MED_DAT2_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - MED_REPLY_DATAREADY_OUT => MED_DAT2_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_DAT2_REPLY_DATA_OUT, - MED_REPLY_PACKET_NUM_OUT=> MED_DAT2_REPLY_PACKET_NUM_OUT, - MED_REPLY_READ_IN => MED_DAT2_REPLY_READ_IN, - MED_REPLY_DATAREADY_IN => MED_DAT2_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_DAT2_REPLY_DATA_IN, - MED_REPLY_PACKET_NUM_IN => MED_DAT2_REPLY_PACKET_NUM_IN, - MED_REPLY_READ_OUT => MED_DAT2_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - -- Internal direction port - INT_INIT_DATAREADY_OUT => buf_to_apl_DAT2_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_DAT2_INIT_DATA, - INT_INIT_PACKET_NUM_OUT=> buf_to_apl_DAT2_INIT_PACKET_NUM, - INT_INIT_READ_IN => buf_to_apl_DAT2_INIT_READ, - INT_INIT_DATAREADY_IN => apl_to_buf_DAT2_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_DAT2_INIT_DATA, - INT_INIT_PACKET_NUM_IN => apl_to_buf_DAT2_INIT_PACKET_NUM, - INT_INIT_READ_OUT => apl_to_buf_DAT2_INIT_READ, - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_DAT2_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_DAT2_REPLY_DATA, - INT_REPLY_PACKET_NUM_OUT=> buf_to_apl_DAT2_REPLY_PACKET_NUM, - INT_REPLY_READ_IN => buf_to_apl_DAT2_REPLY_READ, - INT_REPLY_DATAREADY_IN => apl_to_buf_DAT2_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_DAT2_REPLY_DATA, - INT_REPLY_PACKET_NUM_IN => apl_to_buf_DAT2_REPLY_PACKET_NUM, - INT_REPLY_READ_OUT => apl_to_buf_DAT2_REPLY_READ, - -- Status and control port - STAT_GEN => STAT_DAT2_GEN, - STAT_LOCKED => STAT_DAT2_LOCKED, - STAT_INIT_BUFFER => STAT_DAT2_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_DAT2_REPLY_BUFFER, - CTRL_GEN => CTRL_DAT2_GEN, - CTRL_LOCKED => CTRL_DAT2_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_DAT2_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_DAT2_CTRL_REPLY_BUFFER - ); - - TRG1_IOBUF: trb_net16_iobuf - generic map( - INIT_DEPTH => TRG1_INIT_DEPTH, - REPLY_DEPTH => TRG1_REPLY_DEPTH - ) - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_TRG1_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_TRG1_INIT_DATA_OUT, - MED_INIT_PACKET_NUM_OUT => MED_TRG1_INIT_PACKET_NUM_OUT, - MED_INIT_READ_IN => MED_TRG1_INIT_READ_IN, - MED_INIT_DATAREADY_IN => MED_TRG1_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_TRG1_INIT_DATA_IN, - MED_INIT_PACKET_NUM_IN => MED_TRG1_INIT_PACKET_NUM_IN, - MED_INIT_READ_OUT => MED_TRG1_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - MED_REPLY_DATAREADY_OUT => MED_TRG1_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_TRG1_REPLY_DATA_OUT, - MED_REPLY_PACKET_NUM_OUT=> MED_TRG1_REPLY_PACKET_NUM_OUT, - MED_REPLY_READ_IN => MED_TRG1_REPLY_READ_IN, - MED_REPLY_DATAREADY_IN => MED_TRG1_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_TRG1_REPLY_DATA_IN, - MED_REPLY_PACKET_NUM_IN => MED_TRG1_REPLY_PACKET_NUM_IN, - MED_REPLY_READ_OUT => MED_TRG1_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - -- Internal direction port - INT_INIT_DATAREADY_OUT => buf_to_apl_TRG1_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_TRG1_INIT_DATA, - INT_INIT_PACKET_NUM_OUT=> buf_to_apl_TRG1_INIT_PACKET_NUM, - INT_INIT_READ_IN => buf_to_apl_TRG1_INIT_READ, - INT_INIT_DATAREADY_IN => apl_to_buf_TRG1_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_TRG1_INIT_DATA, - INT_INIT_PACKET_NUM_IN => apl_to_buf_TRG1_INIT_PACKET_NUM, - INT_INIT_READ_OUT => apl_to_buf_TRG1_INIT_READ, - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_TRG1_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_TRG1_REPLY_DATA, - INT_REPLY_PACKET_NUM_OUT=> buf_to_apl_TRG1_REPLY_PACKET_NUM, - INT_REPLY_READ_IN => buf_to_apl_TRG1_REPLY_READ, - INT_REPLY_DATAREADY_IN => apl_to_buf_TRG1_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_TRG1_REPLY_DATA, - INT_REPLY_PACKET_NUM_IN => apl_to_buf_TRG1_REPLY_PACKET_NUM, - INT_REPLY_READ_OUT => apl_to_buf_TRG1_REPLY_READ, - -- Status and control port - STAT_GEN => STAT_TRG1_GEN, - STAT_LOCKED => STAT_TRG1_LOCKED, - STAT_INIT_BUFFER => STAT_TRG1_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_TRG1_REPLY_BUFFER, - CTRL_GEN => CTRL_TRG1_GEN, - CTRL_LOCKED => CTRL_TRG1_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_TRG1_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_TRG1_CTRL_REPLY_BUFFER - ); - - TRG2_IOBUF: trb_net16_iobuf - generic map( - INIT_DEPTH => TRG2_INIT_DEPTH, - REPLY_DEPTH => TRG2_REPLY_DEPTH - ) - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_TRG2_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_TRG2_INIT_DATA_OUT, - MED_INIT_PACKET_NUM_OUT => MED_TRG2_INIT_PACKET_NUM_OUT, - MED_INIT_READ_IN => MED_TRG2_INIT_READ_IN, - MED_INIT_DATAREADY_IN => MED_TRG2_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_TRG2_INIT_DATA_IN, - MED_INIT_PACKET_NUM_IN => MED_TRG2_INIT_PACKET_NUM_IN, - MED_INIT_READ_OUT => MED_TRG2_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - MED_REPLY_DATAREADY_OUT => MED_TRG2_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_TRG2_REPLY_DATA_OUT, - MED_REPLY_PACKET_NUM_OUT=> MED_TRG2_REPLY_PACKET_NUM_OUT, - MED_REPLY_READ_IN => MED_TRG2_REPLY_READ_IN, - MED_REPLY_DATAREADY_IN => MED_TRG2_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_TRG2_REPLY_DATA_IN, - MED_REPLY_PACKET_NUM_IN => MED_TRG2_REPLY_PACKET_NUM_IN, - MED_REPLY_READ_OUT => MED_TRG2_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - -- Internal direction port - INT_INIT_DATAREADY_OUT => buf_to_apl_TRG2_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_TRG2_INIT_DATA, - INT_INIT_PACKET_NUM_OUT=> buf_to_apl_TRG2_INIT_PACKET_NUM, - INT_INIT_READ_IN => buf_to_apl_TRG2_INIT_READ, - INT_INIT_DATAREADY_IN => apl_to_buf_TRG2_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_TRG2_INIT_DATA, - INT_INIT_PACKET_NUM_IN => apl_to_buf_TRG2_INIT_PACKET_NUM, - INT_INIT_READ_OUT => apl_to_buf_TRG2_INIT_READ, - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_TRG2_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_TRG2_REPLY_DATA, - INT_REPLY_PACKET_NUM_OUT=> buf_to_apl_TRG2_REPLY_PACKET_NUM, - INT_REPLY_READ_IN => buf_to_apl_TRG2_REPLY_READ, - INT_REPLY_DATAREADY_IN => apl_to_buf_TRG2_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_TRG2_REPLY_DATA, - INT_REPLY_PACKET_NUM_IN => apl_to_buf_TRG2_REPLY_PACKET_NUM, - INT_REPLY_READ_OUT => apl_to_buf_TRG2_REPLY_READ, - -- Status and control port - STAT_GEN => STAT_TRG2_GEN, - STAT_LOCKED => STAT_TRG2_LOCKED, - STAT_INIT_BUFFER => STAT_TRG2_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_TRG2_REPLY_BUFFER, - CTRL_GEN => CTRL_TRG2_GEN, - CTRL_LOCKED => CTRL_TRG2_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_TRG2_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_TRG2_CTRL_REPLY_BUFFER - ); - - MPLEX: trb_net16_io_multiplexer - generic map ( - DATA_WIDTH => DATA_WIDTH, - NUM_WIDTH => NUM_WIDTH, - MUX_WIDTH => MUX_WIDTH, - MUX_SECURE_MODE => MUX_SECURE_MODE - ) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_DATAREADY_IN, - MED_DATA_IN => MED_DATA_IN, - MED_PACKET_NUM_IN => MED_PACKET_NUM_IN, - MED_READ_OUT => MED_READ_OUT, - MED_DATAREADY_OUT => MED_DATAREADY_OUT, - MED_DATA_OUT => MED_DATA_OUT, - MED_PACKET_NUM_OUT => MED_PACKET_NUM_OUT, - MED_READ_IN => MED_READ_IN, - INT_DATAREADY_OUT => m_DATAREADY_IN, - INT_DATA_OUT =>m_DATA_IN, - INT_PACKET_NUM_OUT => m_PACKET_NUM_IN, - INT_READ_IN =>m_READ_OUT, - INT_DATAREADY_IN =>m_DATAREADY_OUT, - INT_DATA_IN =>m_DATA_OUT, - INT_PACKET_NUM_IN => m_PACKET_NUM_OUT, - INT_READ_OUT =>m_READ_IN, - CTRL => MPLEX_CTRL - ); - - TRG1_INIT : trb_net16_term - generic map ( - FIFO_TERM_BUFFER_DEPTH => 0, - SECURE_MODE => TRG1_SECURE_MODE - ) - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - INT_DATAREADY_OUT => apl_to_buf_TRG1_REPLY_DATAREADY, - INT_DATA_OUT => apl_to_buf_TRG1_REPLY_DATA, - INT_PACKET_NUM_OUT => apl_to_buf_TRG1_REPLY_PACKET_NUM, - INT_READ_IN => apl_to_buf_TRG1_REPLY_READ, - INT_DATAREADY_IN => buf_to_apl_TRG1_INIT_DATAREADY, - INT_DATA_IN => buf_to_apl_TRG1_INIT_DATA, - INT_PACKET_NUM_IN => buf_to_apl_TRG1_INIT_PACKET_NUM, - INT_READ_OUT => buf_to_apl_TRG1_INIT_READ, - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT => TRG1_DTYPE_OUT, - APL_ERROR_PATTERN_OUT => TRG1_ERROR_PATTERN_OUT, - APL_SEQNR_OUT => TRG1_SEQNR_OUT, - APL_GOT_TRM => TRG1_GOT_TRIGGER_OUT, - APL_RELEASE_TRM => TRG1_RELEASE_IN, - APL_ERROR_PATTERN_IN => TRG1_ERROR_PATTERN_IN - -- Status and control port - ); - - TRG2_INIT : trb_net16_term - generic map ( - FIFO_TERM_BUFFER_DEPTH => 0, - SECURE_MODE => TRG2_SECURE_MODE - ) - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - INT_DATAREADY_OUT => apl_to_buf_TRG2_REPLY_DATAREADY, - INT_DATA_OUT => apl_to_buf_TRG2_REPLY_DATA, - INT_PACKET_NUM_OUT => apl_to_buf_TRG2_REPLY_PACKET_NUM, - INT_READ_IN => apl_to_buf_TRG2_REPLY_READ, - INT_DATAREADY_IN => buf_to_apl_TRG2_INIT_DATAREADY, - INT_DATA_IN => buf_to_apl_TRG2_INIT_DATA, - INT_PACKET_NUM_IN => buf_to_apl_TRG2_INIT_PACKET_NUM, - INT_READ_OUT => buf_to_apl_TRG2_INIT_READ, - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT => TRG2_DTYPE_OUT, - APL_ERROR_PATTERN_OUT => TRG2_ERROR_PATTERN_OUT, - APL_SEQNR_OUT => TRG2_SEQNR_OUT, - APL_GOT_TRM => TRG2_GOT_TRIGGER_OUT, - APL_RELEASE_TRM => TRG2_RELEASE_IN, - APL_ERROR_PATTERN_IN => TRG2_ERROR_PATTERN_IN - -- Status and control port - ); - -apl_to_buf_TRG1_INIT_DATAREADY <= '0'; -apl_to_buf_TRG1_INIT_DATA <= (others => '0'); -apl_to_buf_TRG1_INIT_PACKET_NUM <= (others => '0'); -buf_to_apl_TRG1_REPLY_READ <= '1'; - -apl_to_buf_TRG2_INIT_DATAREADY <= '0'; -apl_to_buf_TRG2_INIT_DATA <= (others => '0'); -apl_to_buf_TRG2_INIT_PACKET_NUM <= (others => '0'); -buf_to_apl_TRG2_REPLY_READ <= '1'; -end architecture; diff --git a/oldfiles/trb_net16_hub_streaming_port.vhd b/oldfiles/trb_net16_hub_streaming_port.vhd deleted file mode 100644 index e76593b..0000000 --- a/oldfiles/trb_net16_hub_streaming_port.vhd +++ /dev/null @@ -1,626 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; -use work.trb_net16_hub_func.all; - ---the first media interface is always the uplink & stream output! - -entity trb_net16_hub_streaming_port is - generic( - --hub control - HUB_CTRL_CHANNELNUM : integer range 0 to 3 := c_SLOW_CTRL_CHANNEL; - HUB_CTRL_DEPTH : integer range 0 to 6 := c_FIFO_BRAM; - HUB_USED_CHANNELS : hub_channel_config_t := (c_YES,c_YES,c_NO,c_YES); - USE_CHECKSUM : hub_channel_config_t := (c_NO,c_YES,c_YES,c_YES); - USE_VENDOR_CORES : integer range 0 to 1 := c_YES; - IBUF_SECURE_MODE : integer range 0 to 1 := c_YES; - INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F004"; - INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := (others => '0'); - COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000"; - INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0'); - HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678"; - INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001"; - BROADCAST_BITMASK : std_logic_vector(7 downto 0) := x"7E"; - CLOCK_FREQUENCY : integer range 1 to 200 := 100; - USE_ONEWIRE : integer range 0 to 2 := c_YES; - BROADCAST_SPECIAL_ADDR : std_logic_vector(7 downto 0) := x"FF"; - --media interfaces - MII_NUMBER : integer range 2 to c_MAX_MII_PER_HUB := 12; - MII_IBUF_DEPTH : hub_iobuf_config_t := std_HUB_IBUF_DEPTH; - MII_IS_UPLINK : hub_mii_config_t := (others => c_YES); - MII_IS_DOWNLINK : hub_mii_config_t := (others => c_YES); - MII_IS_UPLINK_ONLY : hub_mii_config_t := (others => c_NO) - ); - - port( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - --Media Interface - MED_DATAREADY_OUT : out std_logic_vector (MII_NUMBER-1 downto 0); - MED_DATA_OUT : out std_logic_vector (MII_NUMBER*c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector (MII_NUMBER*c_NUM_WIDTH-1 downto 0); - MED_READ_IN : in std_logic_vector (MII_NUMBER-1 downto 0); - MED_DATAREADY_IN : in std_logic_vector (MII_NUMBER-1 downto 0); - MED_DATA_IN : in std_logic_vector (MII_NUMBER*c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector (MII_NUMBER*c_NUM_WIDTH-1 downto 0); - MED_READ_OUT : out std_logic_vector (MII_NUMBER-1 downto 0); - MED_STAT_OP : in std_logic_vector (MII_NUMBER*16-1 downto 0); - MED_CTRL_OP : out std_logic_vector (MII_NUMBER*16-1 downto 0); - - --Event information coming from CTS - CTS_NUMBER_OUT : out std_logic_vector (15 downto 0); - CTS_CODE_OUT : out std_logic_vector (7 downto 0); - CTS_INFORMATION_OUT : out std_logic_vector (7 downto 0); - CTS_READOUT_TYPE_OUT : out std_logic_vector (3 downto 0); - CTS_START_READOUT_OUT : out std_logic; - - --Information sent to CTS - --status data, equipped with DHDR - CTS_DATA_IN : in std_logic_vector (31 downto 0); - CTS_DATAREADY_IN : in std_logic; - CTS_READOUT_FINISHED_IN : in std_logic; --no more data, end transfer, send TRM - CTS_READ_OUT : out std_logic; - CTS_LENGTH_IN : in std_logic_vector (15 downto 0); - CTS_STATUS_BITS_IN : in std_logic_vector (31 downto 0); - - -- Data from Frontends - FEE_DATA_OUT : out std_logic_vector (15 downto 0); - FEE_DATAREADY_OUT : out std_logic; - FEE_READ_IN : in std_logic; --must be high when idle, otherwise you will never get a dataready - FEE_STATUS_BITS_OUT : out std_logic_vector (31 downto 0); - FEE_BUSY_OUT : out std_logic; - - MY_ADDRESS_IN : in std_logic_vector (15 downto 0); - - COMMON_STAT_REGS : out std_logic_vector (std_COMSTATREG*32-1 downto 0); --Status of common STAT regs - COMMON_CTRL_REGS : out std_logic_vector (std_COMCTRLREG*32-1 downto 0); --Status of common STAT regs - ONEWIRE : inout std_logic; - ONEWIRE_MONITOR_IN : in std_logic; - ONEWIRE_MONITOR_OUT : out std_logic; - MY_ADDRESS_OUT : out std_logic_vector(15 downto 0); - TIMER_TICKS_OUT : out std_logic_vector(1 downto 0); - - --REGIO INTERFACE - REGIO_ADDR_OUT : out std_logic_vector(16-1 downto 0); - REGIO_READ_ENABLE_OUT : out std_logic; - REGIO_WRITE_ENABLE_OUT : out std_logic; - REGIO_DATA_OUT : out std_logic_vector(32-1 downto 0); - REGIO_DATA_IN : in std_logic_vector(32-1 downto 0) := (others => '0'); - REGIO_DATAREADY_IN : in std_logic := '0'; - REGIO_NO_MORE_DATA_IN : in std_logic := '0'; - REGIO_WRITE_ACK_IN : in std_logic := '0'; - REGIO_UNKNOWN_ADDR_IN : in std_logic := '0'; - REGIO_TIMEOUT_OUT : out std_logic; - - - --status and control ports - HUB_STAT_CHANNEL : out std_logic_vector (2**(c_MUX_WIDTH-1)*16-1 downto 0); - HUB_STAT_GEN : out std_logic_vector (31 downto 0); - MPLEX_CTRL : in std_logic_vector (MII_NUMBER*32-1 downto 0); - MPLEX_STAT : out std_logic_vector (MII_NUMBER*32-1 downto 0); - STAT_REGS : out std_logic_vector (8*32-1 downto 0); --Status of custom STAT regs - STAT_CTRL_REGS : out std_logic_vector (8*32-1 downto 0); --Status of custom CTRL regs - --Debugging registers - STAT_DEBUG : out std_logic_vector (31 downto 0); --free status regs for debugging - CTRL_DEBUG : in std_logic_vector (31 downto 0) --free control regs for debugging - ); -end entity; - - -architecture trb_net16_hub_streaming_arch of trb_net16_hub_streaming_port is - -constant mii : integer := MII_NUMBER-1; - -signal hub_init_dataready_out : std_logic_vector(3 downto 0); -signal hub_reply_dataready_out : std_logic_vector(3 downto 0); -signal hub_init_dataready_in : std_logic_vector(3 downto 0); -signal hub_reply_dataready_in : std_logic_vector(3 downto 0); - -signal hub_init_read_out : std_logic_vector(3 downto 0); -signal hub_reply_read_out : std_logic_vector(3 downto 0); -signal hub_init_read_in : std_logic_vector(3 downto 0); -signal hub_reply_read_in : std_logic_vector(3 downto 0); - -signal hub_init_data_out : std_logic_vector(48 downto 0); -signal hub_reply_data_out : std_logic_vector(48 downto 0); -signal hub_init_data_in : std_logic_vector(48 downto 0); -signal hub_reply_data_in : std_logic_vector(48 downto 0); - -signal hub_init_packet_num_out : std_logic_vector(9 downto 0); -signal hub_reply_packet_num_out : std_logic_vector(9 downto 0); -signal hub_init_packet_num_in : std_logic_vector(9 downto 0); -signal hub_reply_packet_num_in : std_logic_vector(9 downto 0); - -signal cts_init_data_out : std_logic_vector(15 downto 0); -signal cts_init_dataready_out : std_logic; -signal cts_init_packet_num_out : std_logic_vector(2 downto 0); -signal cts_init_read_in : std_logic; - -signal cts_reply_data_in : std_logic_vector(15 downto 0); -signal cts_reply_dataready_in : std_logic; -signal cts_reply_packet_num_in : std_logic_vector(2 downto 0); -signal cts_reply_read_out : std_logic; - -signal common_ctrl : std_logic_vector(std_COMCTRLREG*32-1 downto 0); -signal common_stat : std_logic_vector(std_COMSTATREG*32-1 downto 0); -signal my_address : std_logic_vector(15 downto 0); - -signal io_dataready_out : std_logic_vector(7 downto 0); -signal io_data_out : std_logic_vector(127 downto 0); -signal io_packet_num_out : std_logic_vector(23 downto 0); -signal io_read_in : std_logic_vector(7 downto 0); - -signal io_dataready_in : std_logic_vector(3 downto 0); -signal io_read_out : std_logic_vector(3 downto 0); -signal io_data_in : std_logic_vector(4*16-1 downto 0); -signal io_packet_num_in : std_logic_vector(4*3-1 downto 0); -signal io_error_in : std_logic_vector(2 downto 0); - -signal reset_i : std_logic; - -signal HUB_MED_CTRL_OP : std_logic_vector(mii*16-1 downto 0); -signal reset_i_mux_io : std_logic; - -signal hub_make_network_reset : std_logic; -signal hub_got_network_reset : std_logic; -signal timer_ticks : std_logic_vector(1 downto 0); -signal hub_ctrl_debug : std_logic_vector(31 downto 0); - -begin - ---------------------------------------------------------------------- --- Reset ---------------------------------------------------------------------- ---13: reset sequence received ---14: not connected ---15: send reset sequence - - SYNC_RESET_MUX_IO : process(CLK) - begin - if rising_edge(CLK) then - reset_i <= RESET; - reset_i_mux_io <= MED_STAT_OP(mii*16+14) or reset_i; - end if; - end process; - - ---generate media resync - gen_resync : for i in 0 to mii-1 generate - MED_CTRL_OP(13+i*16 downto i*16) <= (others => '0'); - MED_CTRL_OP(14+i*16) <= HUB_MED_CTRL_OP(14+i*16); - MED_CTRL_OP(15+i*16) <= hub_make_network_reset ; - end generate; - MED_CTRL_OP(13+mii*16 downto mii*16) <= (others => '0'); - MED_CTRL_OP(14+mii*16) <= '0'; - MED_CTRL_OP(15+mii*16) <= hub_make_network_reset; - - - hub_make_network_reset <= MED_STAT_OP(15) or MED_STAT_OP(15+mii*16); - ---------------------------------------------------------------------- --- Connecting I/O ---------------------------------------------------------------------- - - COMMON_CTRL_REGS <= common_ctrl; - COMMON_STAT_REGS <= common_stat; - MY_ADDRESS_OUT <= my_address; - - ---------------------------------------------------------------------- --- The Hub ---------------------------------------------------------------------- - - - THE_HUB : trb_net16_hub_base - generic map ( - --hub control - HUB_CTRL_CHANNELNUM => HUB_CTRL_CHANNELNUM, - HUB_CTRL_DEPTH => HUB_CTRL_DEPTH, - HUB_USED_CHANNELS => HUB_USED_CHANNELS, - USE_CHECKSUM => USE_CHECKSUM, - USE_VENDOR_CORES => USE_VENDOR_CORES, - IBUF_SECURE_MODE => IBUF_SECURE_MODE, - INIT_ADDRESS => INIT_ADDRESS, - INIT_UNIQUE_ID => INIT_UNIQUE_ID, - COMPILE_TIME => COMPILE_TIME, - INCLUDED_FEATURES => INCLUDED_FEATURES, - HARDWARE_VERSION => HARDWARE_VERSION, - HUB_CTRL_BROADCAST_BITMASK => BROADCAST_BITMASK, - CLOCK_FREQUENCY => CLOCK_FREQUENCY, - USE_ONEWIRE => USE_ONEWIRE, - BROADCAST_SPECIAL_ADDR => BROADCAST_SPECIAL_ADDR, - MII_NUMBER => mii, - MII_IBUF_DEPTH => MII_IBUF_DEPTH, - MII_IS_UPLINK => MII_IS_UPLINK, - MII_IS_DOWNLINK => MII_IS_DOWNLINK, - MII_IS_UPLINK_ONLY => MII_IS_UPLINK_ONLY, - INIT_ENDPOINT_ID => INIT_ENDPOINT_ID, - INT_NUMBER => 3, - INT_CHANNELS => (0=>0,1=>1,2=>3,others=>0) - ) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - - --Media interfacces - MED_DATAREADY_OUT => med_dataready_out(mii-1 downto 0), - MED_DATA_OUT => med_data_out(mii*16-1 downto 0), - MED_PACKET_NUM_OUT=> med_packet_num_out(mii*3-1 downto 0), - MED_READ_IN => med_read_in(mii-1 downto 0), - MED_DATAREADY_IN => med_dataready_in(mii-1 downto 0), - MED_DATA_IN => med_data_in(mii*16-1 downto 0), - MED_PACKET_NUM_IN => med_packet_num_in(mii*3-1 downto 0), - MED_READ_OUT => med_read_out(mii-1 downto 0), - MED_STAT_OP => med_stat_op(mii*16-1 downto 0), - MED_CTRL_OP => HUB_MED_CTRL_OP(mii*16-1 downto 0), - - INT_INIT_DATAREADY_OUT => hub_init_dataready_out, - INT_INIT_DATA_OUT => hub_init_data_out, - INT_INIT_PACKET_NUM_OUT => hub_init_packet_num_out, - INT_INIT_READ_IN => hub_init_read_in, - INT_INIT_DATAREADY_IN => hub_init_dataready_in, - INT_INIT_DATA_IN => hub_init_data_in, - INT_INIT_PACKET_NUM_IN => hub_init_packet_num_in, - INT_INIT_READ_OUT => hub_init_read_out, - INT_REPLY_DATAREADY_OUT => hub_reply_dataready_out, - INT_REPLY_DATA_OUT => hub_reply_data_out, - INT_REPLY_PACKET_NUM_OUT => hub_reply_packet_num_out, - INT_REPLY_READ_IN => hub_reply_read_in, - INT_REPLY_DATAREADY_IN => hub_reply_dataready_in, - INT_REPLY_DATA_IN => hub_reply_data_in, - INT_REPLY_PACKET_NUM_IN => hub_reply_packet_num_in, - INT_REPLY_READ_OUT => hub_reply_read_out, - --REGIO INTERFACE - REGIO_ADDR_OUT => REGIO_ADDR_OUT, - REGIO_READ_ENABLE_OUT => REGIO_READ_ENABLE_OUT, - REGIO_WRITE_ENABLE_OUT => REGIO_WRITE_ENABLE_OUT, - REGIO_DATA_OUT => REGIO_DATA_OUT, - REGIO_DATA_IN => REGIO_DATA_IN, - REGIO_DATAREADY_IN => REGIO_DATAREADY_IN, - REGIO_NO_MORE_DATA_IN => REGIO_NO_MORE_DATA_IN, - REGIO_WRITE_ACK_IN => REGIO_WRITE_ACK_IN, - REGIO_UNKNOWN_ADDR_IN => REGIO_UNKNOWN_ADDR_IN, - REGIO_TIMEOUT_OUT => REGIO_TIMEOUT_OUT, - TIMER_TICKS_OUT => timer_ticks, - ONEWIRE => ONEWIRE, - ONEWIRE_MONITOR_IN => ONEWIRE_MONITOR_IN, - ONEWIRE_MONITOR_OUT=> ONEWIRE_MONITOR_OUT, - MY_ADDRESS_OUT => my_address, - COMMON_CTRL_REGS => common_ctrl, - COMMON_STAT_REGS => common_stat, - MPLEX_CTRL => (others => '0'), - CTRL_DEBUG => hub_ctrl_debug, - STAT_DEBUG => STAT_DEBUG - ); - - hub_ctrl_debug(2 downto 0) <= not io_error_in; - hub_ctrl_debug(31 downto 3) <= (others => '0'); - TIMER_TICKS_OUT <= timer_ticks; ---------------------------------------------------------------------- --- I/O Buffers ---------------------------------------------------------------------- - - THE_IOBUF_0 : trb_net16_iobuf - generic map( - IBUF_DEPTH => 6, - USE_ACKNOWLEDGE => cfg_USE_ACKNOWLEDGE(0), - USE_CHECKSUM => cfg_USE_CHECKSUM(0), - INIT_CAN_SEND_DATA => c_YES, - INIT_CAN_RECEIVE_DATA => c_YES, - REPLY_CAN_SEND_DATA => c_YES, - REPLY_CAN_RECEIVE_DATA => c_YES - ) - port map( - -- Misc - CLK => CLK, - RESET => reset_i_mux_io, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => io_dataready_out(0), - MED_INIT_DATA_OUT => io_data_out(15 downto 0), - MED_INIT_PACKET_NUM_OUT => io_packet_num_out(2 downto 0), - MED_INIT_READ_IN => io_read_in(0), - - MED_REPLY_DATAREADY_OUT => io_dataready_out(1), - MED_REPLY_DATA_OUT => io_data_out(31 downto 16), - MED_REPLY_PACKET_NUM_OUT => io_packet_num_out(5 downto 3), - MED_REPLY_READ_IN => io_read_in(1), - - MED_DATAREADY_IN => io_dataready_in(0), - MED_DATA_IN => io_data_in(15 downto 0), - MED_PACKET_NUM_IN => io_packet_num_in(2 downto 0), - MED_READ_OUT => io_read_out(0), - MED_ERROR_IN => io_error_in, - - -- Internal direction port - - INT_INIT_DATAREADY_OUT => hub_init_dataready_in(0), - INT_INIT_DATA_OUT => hub_init_data_in(15 downto 0), - INT_INIT_PACKET_NUM_OUT => hub_init_packet_num_in(2 downto 0), - INT_INIT_READ_IN => hub_init_read_out(0), - - INT_INIT_DATAREADY_IN => hub_init_dataready_out(0), - INT_INIT_DATA_IN => hub_init_data_out(15 downto 0), - INT_INIT_PACKET_NUM_IN => hub_init_packet_num_out(2 downto 0), - INT_INIT_READ_OUT => hub_init_read_in(0), - - INT_REPLY_DATAREADY_OUT => hub_reply_dataready_in(0), - INT_REPLY_DATA_OUT => hub_reply_data_in(15 downto 0), - INT_REPLY_PACKET_NUM_OUT => hub_reply_packet_num_in(2 downto 0), - INT_REPLY_READ_IN => hub_reply_read_out(0), - - INT_REPLY_DATAREADY_IN => hub_reply_dataready_out(0), - INT_REPLY_DATA_IN => hub_reply_data_out(15 downto 0), - INT_REPLY_PACKET_NUM_IN => hub_reply_packet_num_out(2 downto 0), - INT_REPLY_READ_OUT => hub_reply_read_in(0), - - -- Status and control port - STAT_GEN => open, - STAT_IBUF_BUFFER => open, - CTRL_GEN => (others => '0'), - STAT_INIT_OBUF_DEBUG => open, - STAT_REPLY_OBUF_DEBUG => open, - TIMER_TICKS_IN => timer_ticks - ); - - - THE_IOBUF_1 : trb_net16_iobuf - generic map( - IBUF_DEPTH => 6, - USE_ACKNOWLEDGE => cfg_USE_ACKNOWLEDGE(1), - USE_CHECKSUM => cfg_USE_CHECKSUM(1), - INIT_CAN_SEND_DATA => c_YES, - INIT_CAN_RECEIVE_DATA => c_YES, - REPLY_CAN_SEND_DATA => c_YES, - REPLY_CAN_RECEIVE_DATA => c_YES - ) - port map( - -- Misc - CLK => CLK, - RESET => reset_i_mux_io, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => io_dataready_out(2), - MED_INIT_DATA_OUT => io_data_out(47 downto 32), - MED_INIT_PACKET_NUM_OUT => io_packet_num_out(8 downto 6), - MED_INIT_READ_IN => io_read_in(2), - - MED_REPLY_DATAREADY_OUT => io_dataready_out(3), - MED_REPLY_DATA_OUT => io_data_out(63 downto 48), - MED_REPLY_PACKET_NUM_OUT => io_packet_num_out(11 downto 9), - MED_REPLY_READ_IN => io_read_in(3), - - MED_DATAREADY_IN => io_dataready_in(1), - MED_DATA_IN => io_data_in(31 downto 16), - MED_PACKET_NUM_IN => io_packet_num_in(5 downto 3), - MED_READ_OUT => io_read_out(1), - MED_ERROR_IN => io_error_in, - - -- Internal direction port - - INT_INIT_DATAREADY_OUT => cts_init_dataready_out, - INT_INIT_DATA_OUT => cts_init_data_out, - INT_INIT_PACKET_NUM_OUT => cts_init_packet_num_out, - INT_INIT_READ_IN => cts_init_read_in, - - INT_INIT_DATAREADY_IN => '0', - INT_INIT_DATA_IN => (others => '0'), - INT_INIT_PACKET_NUM_IN => (others => '0'), - INT_INIT_READ_OUT => open, - - INT_REPLY_DATAREADY_OUT => open, - INT_REPLY_DATA_OUT => open, - INT_REPLY_PACKET_NUM_OUT => open, - INT_REPLY_READ_IN => '1', - - INT_REPLY_DATAREADY_IN => cts_reply_dataready_in, - INT_REPLY_DATA_IN => cts_reply_data_in, - INT_REPLY_PACKET_NUM_IN => cts_reply_packet_num_in, - INT_REPLY_READ_OUT => cts_reply_read_out, - - -- Status and control port - STAT_GEN => open, - STAT_IBUF_BUFFER => open, - CTRL_GEN => (others => '0'), - STAT_INIT_OBUF_DEBUG => open, - STAT_REPLY_OBUF_DEBUG => open, - TIMER_TICKS_IN => timer_ticks - ); - - THE_IOBUF_2 : trb_net16_term_buf - port map ( - -- Misc - CLK => CLK , - RESET => reset_i_mux_io, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => io_dataready_out(4), - MED_INIT_DATA_OUT => io_data_out(79 downto 64), - MED_INIT_PACKET_NUM_OUT => io_packet_num_out(14 downto 12), - MED_INIT_READ_IN => io_read_in(4), - MED_REPLY_DATAREADY_OUT => io_dataready_out(5), - MED_REPLY_DATA_OUT => io_data_out(95 downto 80), - MED_REPLY_PACKET_NUM_OUT=> io_packet_num_out(17 downto 15), - MED_REPLY_READ_IN => io_read_in(5), - MED_DATAREADY_IN => io_dataready_in(2), - MED_DATA_IN => io_data_in(47 downto 32), - MED_PACKET_NUM_IN => io_packet_num_in(8 downto 6), - MED_READ_OUT => io_read_out(2) - ); - - THE_IOBUF_3 : trb_net16_iobuf - generic map( - IBUF_DEPTH => 6, - USE_ACKNOWLEDGE => cfg_USE_ACKNOWLEDGE(3), - USE_CHECKSUM => cfg_USE_CHECKSUM(3), - INIT_CAN_SEND_DATA => c_YES, - INIT_CAN_RECEIVE_DATA => c_YES, - REPLY_CAN_SEND_DATA => c_YES, - REPLY_CAN_RECEIVE_DATA => c_YES - ) - port map( - -- Misc - CLK => CLK, - RESET => reset_i_mux_io, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => io_dataready_out(6), - MED_INIT_DATA_OUT => io_data_out(111 downto 96), - MED_INIT_PACKET_NUM_OUT => io_packet_num_out(20 downto 18), - MED_INIT_READ_IN => io_read_in(6), - - MED_REPLY_DATAREADY_OUT => io_dataready_out(7), - MED_REPLY_DATA_OUT => io_data_out(127 downto 112), - MED_REPLY_PACKET_NUM_OUT => io_packet_num_out(23 downto 21), - MED_REPLY_READ_IN => io_read_in(7), - - MED_DATAREADY_IN => io_dataready_in(3), - MED_DATA_IN => io_data_in(63 downto 48), - MED_PACKET_NUM_IN => io_packet_num_in(11 downto 9), - MED_READ_OUT => io_read_out(3), - MED_ERROR_IN => io_error_in, - - -- Internal direction port - - INT_INIT_DATAREADY_OUT => hub_init_dataready_in(2), - INT_INIT_DATA_OUT => hub_init_data_in(47 downto 32), - INT_INIT_PACKET_NUM_OUT => hub_init_packet_num_in(8 downto 6), - INT_INIT_READ_IN => hub_init_read_out(2), - - INT_INIT_DATAREADY_IN => hub_init_dataready_out(2), - INT_INIT_DATA_IN => hub_init_data_out(47 downto 32), - INT_INIT_PACKET_NUM_IN => hub_init_packet_num_out(8 downto 6), - INT_INIT_READ_OUT => hub_init_read_in(2), - - INT_REPLY_DATAREADY_OUT => hub_reply_dataready_in(2), - INT_REPLY_DATA_OUT => hub_reply_data_in(47 downto 32), - INT_REPLY_PACKET_NUM_OUT => hub_reply_packet_num_in(8 downto 6), - INT_REPLY_READ_IN => hub_reply_read_out(2), - - INT_REPLY_DATAREADY_IN => hub_reply_dataready_out(2), - INT_REPLY_DATA_IN => hub_reply_data_out(47 downto 32), - INT_REPLY_PACKET_NUM_IN => hub_reply_packet_num_out(8 downto 6), - INT_REPLY_READ_OUT => hub_reply_read_in(2), - - -- Status and control port - STAT_GEN => open, - STAT_IBUF_BUFFER => open, - CTRL_GEN => (others => '0'), - STAT_INIT_OBUF_DEBUG => open, - STAT_REPLY_OBUF_DEBUG => open, - TIMER_TICKS_IN => timer_ticks - ); - ---------------------------------------------------------------------- --- Multiplexer ---------------------------------------------------------------------- - MPLEX: trb_net16_io_multiplexer - port map ( - CLK => CLK, - RESET => reset_i_mux_io, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_DATAREADY_IN(mii), - MED_DATA_IN => MED_DATA_IN(mii*16+15 downto mii*16), - MED_PACKET_NUM_IN => MED_PACKET_NUM_IN(mii*3+2 downto mii*3), - MED_READ_OUT => MED_READ_OUT(mii), - MED_DATAREADY_OUT => MED_DATAREADY_OUT(mii), - MED_DATA_OUT => MED_DATA_OUT(mii*16+15 downto mii*16), - MED_PACKET_NUM_OUT => MED_PACKET_NUM_OUT(mii*3+2 downto mii*3), - MED_READ_IN => MED_READ_IN(mii), - INT_DATAREADY_OUT => io_dataready_in, - INT_DATA_OUT => io_data_in, - INT_PACKET_NUM_OUT => io_packet_num_in, - INT_READ_IN => io_read_out, - INT_DATAREADY_IN => io_dataready_out, - INT_DATA_IN => io_data_out, - INT_PACKET_NUM_IN => io_packet_num_out, - INT_READ_OUT => io_read_in, - CTRL => (others => '0'), - STAT => open - ); - io_error_in <= MED_STAT_OP(mii*16+2 downto mii*16+0); - ---------------------------------------------------------------------- --- IPU Channel ---------------------------------------------------------------------- - - hub_reply_data_in(31 downto 16) <= (others => '0'); - hub_reply_packet_num_in(5 downto 3) <= (others => '0'); - hub_reply_dataready_in(1) <= '0'; - hub_init_read_in(1) <= '1'; - - THE_STREAMING : trb_net16_api_ipu_streaming - port map( - CLK => CLK, - RESET => reset_i, - CLK_EN => CLK_EN, - - -- Internal direction port - - FEE_INIT_DATA_OUT => hub_init_data_in(31 downto 16), - FEE_INIT_DATAREADY_OUT => hub_init_dataready_in(1), - FEE_INIT_PACKET_NUM_OUT => hub_init_packet_num_in(5 downto 3), - FEE_INIT_READ_IN => hub_init_read_out(1), - - FEE_REPLY_DATA_IN => hub_reply_data_out(31 downto 16), - FEE_REPLY_DATAREADY_IN => hub_reply_dataready_out(1), - FEE_REPLY_PACKET_NUM_IN => hub_reply_packet_num_out(5 downto 3), - FEE_REPLY_READ_OUT => hub_reply_read_in(1), - - CTS_INIT_DATA_IN => cts_init_data_out, - CTS_INIT_DATAREADY_IN => cts_init_dataready_out, - CTS_INIT_PACKET_NUM_IN => cts_init_packet_num_out, - CTS_INIT_READ_OUT => cts_init_read_in, - - CTS_REPLY_DATA_OUT => cts_reply_data_in, - CTS_REPLY_DATAREADY_OUT => cts_reply_dataready_in, - CTS_REPLY_PACKET_NUM_OUT => cts_reply_packet_num_in, - CTS_REPLY_READ_IN => cts_reply_read_out, - - --Event information coming from CTS - CTS_NUMBER_OUT => CTS_NUMBER_OUT, - CTS_CODE_OUT => CTS_CODE_OUT, - CTS_INFORMATION_OUT => CTS_INFORMATION_OUT, - CTS_READOUT_TYPE_OUT => CTS_READOUT_TYPE_OUT, - CTS_START_READOUT_OUT => CTS_START_READOUT_OUT, - - --Information sent to CTS - --status data, equipped with DHDR - CTS_DATA_IN => CTS_DATA_IN, - CTS_DATAREADY_IN => CTS_DATAREADY_IN, - CTS_READOUT_FINISHED_IN => CTS_READOUT_FINISHED_IN, - CTS_READ_OUT => CTS_READ_OUT, - CTS_LENGTH_IN => CTS_LENGTH_IN, - CTS_STATUS_BITS_IN => CTS_STATUS_BITS_IN, - - -- Data from Frontends - FEE_DATA_OUT => FEE_DATA_OUT, - FEE_DATAREADY_OUT => FEE_DATAREADY_OUT, - FEE_READ_IN => FEE_READ_IN, - FEE_STATUS_BITS_OUT => FEE_STATUS_BITS_OUT, - FEE_BUSY_OUT => FEE_BUSY_OUT, - - MY_ADDRESS_IN => MY_ADDRESS_IN, - CTRL_SEQNR_RESET => common_ctrl(10) - - ); - --- STAT_DEBUG(0) <= cts_reply_dataready_in; --- STAT_DEBUG(1) <= cts_reply_read_out; --- STAT_DEBUG(2) <= cts_init_dataready_out; --- STAT_DEBUG(3) <= cts_reply_read_out; --- STAT_DEBUG(4) <= io_dataready_out(2); --- STAT_DEBUG(5) <= io_dataready_out(3); --- STAT_DEBUG(6) <= '0'; --- STAT_DEBUG(7) <= '0'; - - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net16_med_16_CC.vhd b/oldfiles/trb_net16_med_16_CC.vhd deleted file mode 100644 index 1023f55..0000000 --- a/oldfiles/trb_net16_med_16_CC.vhd +++ /dev/null @@ -1,384 +0,0 @@ --- A 16bit data interface between two devices using a common clock, 32 data lines and 4 control lines - - -LIBRARY ieee; -use ieee.std_logic_1164.all; -USE IEEE.numeric_std.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - -entity trb_net16_med_16_CC is - port( - CLK : in std_logic; - CLK_EN : in std_logic; - RESET : in std_logic; - - --Internal Connection - MED_DATA_IN : in std_logic_vector(c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_DATAREADY_IN : in std_logic; - MED_READ_OUT : out std_logic; - MED_DATA_OUT : out std_logic_vector(c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_DATAREADY_OUT : out std_logic; - MED_READ_IN : in std_logic; - - DATA_OUT : out std_logic_vector(15 downto 0); - DATA_VALID_OUT : out std_logic; - DATA_CTRL_OUT : out std_logic; - DATA_IN : in std_logic_vector(15 downto 0); - DATA_VALID_IN : in std_logic; - DATA_CTRL_IN : in std_logic; - - STAT_OP : out std_logic_vector(15 downto 0); - CTRL_OP : in std_logic_vector(15 downto 0); - STAT_DEBUG : out std_logic_vector(63 downto 0) - ); - attribute syn_useioff : boolean; - attribute syn_useioff of DATA_OUT : signal is true; - attribute syn_useioff of DATA_VALID_OUT : signal is true; - attribute syn_useioff of DATA_CTRL_OUT : signal is true; - attribute syn_useioff of DATA_IN : signal is true; - attribute syn_useioff of DATA_VALID_IN : signal is true; - attribute syn_useioff of DATA_CTRL_IN : signal is true; - -end entity; - -architecture trb_net16_med_16_CC_arch of trb_net16_med_16_CC is - - component signal_sync is - generic( - WIDTH : integer := 18; - DEPTH : integer := 3 - ); - port( - RESET : in std_logic; - CLK0 : in std_logic; - CLK1 : in std_logic; - D_IN : in std_logic_vector(WIDTH-1 downto 0); - D_OUT : out std_logic_vector(WIDTH-1 downto 0) - ); - end component; - - signal buf_DATA_IN : std_logic_vector(15 downto 0); - signal buf_DATA_VALID_IN : std_logic; - signal buf_DATA_CTRL_IN : std_logic; - - signal reg_DATA_IN : std_logic_vector(15 downto 0); - signal reg_DATA_VALID_IN : std_logic; - signal reg_DATA_CTRL_IN : std_logic; - - signal last_DATA_CTRL_IN : std_logic; - signal link_running : std_logic; - - signal buf_DATA_VALID_OUT : std_logic; - signal buf_DATA_CTRL_OUT : std_logic; - signal buf_DATA_OUT : std_logic_vector(15 downto 0); - signal PRESENT_SIG : std_logic; - signal led_counter : unsigned(18 downto 0); - - signal link_led : std_logic; - signal tx_led : std_logic; - signal rx_led : std_logic; - --signal resync : std_logic; - --signal resync_counter : unsigned(4 downto 0); - - signal rx_counter : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal buf_MED_READ_OUT : std_logic; - signal buf_MED_DATAREADY_OUT : std_logic; - signal buf_MED_PACKET_NUM_OUT : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal buf_MED_DATA_OUT : std_logic_vector(c_DATA_WIDTH-1 downto 0); - - signal not_connected : std_logic; - signal resync_received: std_logic; - type link_state_t is (STARTUP, WAITING, WORKING, RESYNCING, RESYNC_WAIT); - signal link_state : link_state_t; - signal med_error : std_logic_vector(2 downto 0); - signal pattern_counter : unsigned(11 downto 0); - signal pattern_detected : std_logic; - signal state_bits : std_logic_vector(2 downto 0); - signal make_reset : std_logic; - - -begin - ------------------------ ---Receiver ------------------------ - - PROC_RX_INPUT : process(CLK) - begin - if rising_edge(CLK) then - buf_DATA_IN <= DATA_IN; - buf_DATA_VALID_IN <= DATA_VALID_IN; - buf_DATA_CTRL_IN <= DATA_CTRL_IN; - end if; - end process; - - THE_RX_SIGNAL_SYNC: signal_sync - generic map( - DEPTH => 2, - WIDTH => 18 - ) - port map( - RESET => RESET, - D_IN(15 downto 0) => buf_DATA_IN, - D_IN(16) => buf_DATA_VALID_IN, - D_IN(17) => buf_DATA_CTRL_IN, - CLK0 => CLK, - CLK1 => CLK, - D_OUT(15 downto 0) => reg_DATA_IN, - D_OUT(16) => reg_DATA_VALID_IN, - D_OUT(17) => reg_DATA_CTRL_IN - ); - - - PROC_RX_COUNTER : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - rx_counter <= c_H0; - elsif buf_MED_DATAREADY_OUT = '1' and CLK_EN = '1' then - if rx_counter = c_max_word_number then - rx_counter <= (others => '0'); - else - rx_counter <= rx_counter + 1; - end if; - end if; - end if; - end process; - - - buf_MED_PACKET_NUM_OUT <= rx_counter; - buf_MED_DATAREADY_OUT <= reg_DATA_VALID_IN and link_running; - buf_MED_DATA_OUT <= reg_DATA_IN; - buf_MED_READ_OUT <= link_running; - MED_READ_OUT <= buf_MED_READ_OUT; - - PROC_REG_MED_OUT : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - MED_DATA_OUT <= buf_MED_DATA_OUT; - MED_DATAREADY_OUT <= '0'; - MED_PACKET_NUM_OUT<= buf_MED_PACKET_NUM_OUT; - else - MED_DATA_OUT <= buf_MED_DATA_OUT; - MED_DATAREADY_OUT <= buf_MED_DATAREADY_OUT; - MED_PACKET_NUM_OUT<= buf_MED_PACKET_NUM_OUT; - end if; - end if; - end process; - - ------------------------ ---Link detection & Status & Control signals ------------------------ - - STAT_OP(2 downto 0) <= med_error; - STAT_OP(8 downto 3) <= (others => '0'); - STAT_OP(9) <= link_led; - STAT_OP(10) <= rx_led; - STAT_OP(11) <= tx_led; - STAT_OP(12) <= '0'; - STAT_OP(13) <= make_reset; - STAT_OP(14) <= not_connected; - STAT_OP(15) <= resync_received; - - - PROC_LED : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' or not_connected = '1' then - led_counter <= (others => '0'); - rx_led <= '0'; - tx_led <= '0'; - link_led <= '0'; - else - led_counter <= led_counter + 1; - link_led <= link_running; - if led_counter(18) = '1' then - led_counter <= (others => '0'); - rx_led <= '0'; - tx_led <= '0'; - end if; - if buf_MED_DATAREADY_OUT = '1' then - rx_led <= '1'; - end if; - if MED_DATAREADY_IN = '1' and buf_MED_READ_OUT = '1' then - tx_led <= '1'; - end if; - end if; - end if; - end process; - - - PROC_SIGNAL_DETECT_PREPARE : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - last_DATA_CTRL_IN <= '0'; - pattern_detected <= '0'; - elsif reg_DATA_VALID_IN = '0' then - last_DATA_CTRL_IN <= reg_DATA_CTRL_IN; - pattern_detected <= last_DATA_CTRL_IN xor reg_DATA_CTRL_IN; - end if; - end if; - end process; - - PROC_FSM : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - link_state <= STARTUP; - link_running <= '0'; - resync_received <= '0'; - not_connected <= '1'; - make_reset <= '0'; - else - case link_state is - when STARTUP => - med_error <= ERROR_NC; - link_running <= '0'; - not_connected <= '1'; - resync_received <= '0'; - if pattern_detected = '1' then - not_connected <= '0'; - link_state <= WAITING; - pattern_counter <= x"040"; - end if; - - when WAITING => - med_error <= ERROR_WAIT; - if pattern_detected = '1' and reg_DATA_VALID_IN = '0' then - pattern_counter <= pattern_counter + "1"; - elsif pattern_detected = '0' then - pattern_counter <= pattern_counter - x"40"; - end if; - if pattern_counter < x"040" then - link_state <= STARTUP; - elsif pattern_counter = x"FFF" then - link_state <= WORKING; - end if; - - when WORKING => - med_error <= ERROR_OK; - link_running <= '1'; --- if CTRL_OP(15) = '1' then --- link_state <= RESYNCING; --- resync_counter <= (others => '0'); --- link_running <= '0'; --- end if; --- if (reg_DATA_VALID_IN = '1' and reg_DATA_CTRL_IN = '1' and rx_counter /= c_H0) --- or (reg_DATA_VALID_IN = '1' and reg_DATA_CTRL_IN = '0' and rx_counter = c_H0) then --- resync_needed <= '1'; --- else --- resync_needed <= '0'; --- end if; - if reg_DATA_VALID_IN = '0' and reg_DATA_IN = x"FEFE" then - resync_received <= '1'; - else - resync_received <= '0'; - make_reset <= resync_received; - end if; - - if pattern_detected = '0' then - link_running <= '0'; - link_state <= STARTUP; - end if; - --- when RESYNCING => --- med_error <= ERROR_WAIT; --- resync <= '1'; --- if CTRL_OP(15) = '0' then --- resync <= '0'; --- link_state <= RESYNC_WAIT; --- end if; - - when RESYNC_WAIT => - med_error <= ERROR_WAIT; - if reg_DATA_VALID_IN = '0' and reg_DATA_IN = x"AAAA" then - link_state <= WAITING; - pattern_counter <= x"040"; - elsif pattern_detected = '0' then - link_state <= STARTUP; - end if; - - when others => - link_state <= STARTUP; - end case; - end if; - end if; - end process; - - state_bits <= "000" when link_state = STARTUP else - "001" when link_state = WAITING else - "010" when link_state = RESYNCING else - "011" when link_state = RESYNC_WAIT else - "100" when link_state = WORKING else "111"; - - ------------------------ ---Sender ------------------------ - - ---Generate tx signals - PROC_SEND_DATA : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - buf_DATA_VALID_OUT <= '0'; - buf_DATA_CTRL_OUT <= '0'; - buf_DATA_OUT <= (others => '0'); - PRESENT_SIG <= '0'; - elsif CTRL_OP(15) = '1' then - buf_DATA_VALID_OUT <= '0'; - buf_DATA_CTRL_OUT <= not buf_DATA_CTRL_OUT; - buf_DATA_OUT <= x"FEFE"; - elsif MED_DATAREADY_IN = '1' and buf_MED_READ_OUT = '1' then - buf_DATA_VALID_OUT <= '1'; - buf_DATA_OUT <= MED_DATA_IN; - if MED_PACKET_NUM_IN = c_H0 then - buf_DATA_CTRL_OUT <= '1'; - else - buf_DATA_CTRL_OUT <= '0'; - end if; - else - buf_DATA_OUT <= x"AAAA"; - buf_DATA_CTRL_OUT <= PRESENT_SIG; - buf_DATA_VALID_OUT <= '0'; - PRESENT_SIG <= not PRESENT_SIG; - end if; - end if; - end process; - ---Generate O-FF - PROC_OUTPUT : process(CLK) - begin - if rising_edge(CLK) then - DATA_VALID_OUT <= buf_DATA_VALID_OUT; - DATA_CTRL_OUT <= buf_DATA_CTRL_OUT; - DATA_OUT <= buf_DATA_OUT; - end if; - end process; - - - ------------------------ ---Debug ------------------------ - -STAT_DEBUG(15 downto 0) <= reg_DATA_IN; -STAT_DEBUG(16) <= reg_DATA_VALID_IN; -STAT_DEBUG(17) <= reg_DATA_CTRL_IN; -STAT_DEBUG(18) <= resync_received; -STAT_DEBUG(22 downto 19)<= std_logic_vector(pattern_counter(3 downto 0)); -STAT_DEBUG(23) <= '0'; -STAT_DEBUG(26 downto 24)<= state_bits; - -STAT_DEBUG(63 downto 27) <= (others => '0'); - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net16_med_16_IC.vhd b/oldfiles/trb_net16_med_16_IC.vhd deleted file mode 100644 index 33f3153..0000000 --- a/oldfiles/trb_net16_med_16_IC.vhd +++ /dev/null @@ -1,483 +0,0 @@ -LIBRARY ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.ALL; - -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; - -entity trb_net16_med_16_IC is - generic( - DATA_CLK_OUT_PHASE : std_logic := '1' - ); - port( - CLK : in std_logic; - CLK_EN : in std_logic; - RESET : in std_logic; - - --Internal Connection - MED_DATA_IN : in std_logic_vector(c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_DATAREADY_IN : in std_logic; - MED_READ_OUT : out std_logic; - MED_DATA_OUT : out std_logic_vector(c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_DATAREADY_OUT : out std_logic; - MED_READ_IN : in std_logic; - - DATA_OUT : out std_logic_vector(15 downto 0); - DATA_VALID_OUT : out std_logic; - DATA_CTRL_OUT : out std_logic; - DATA_CLK_OUT : out std_logic; - DATA_IN : in std_logic_vector(15 downto 0); - DATA_VALID_IN : in std_logic; - DATA_CTRL_IN : in std_logic; - DATA_CLK_IN : in std_logic; - - STAT_OP : out std_logic_vector(15 downto 0); - CTRL_OP : in std_logic_vector(15 downto 0); - STAT_DEBUG : out std_logic_vector(63 downto 0) - ); -end entity; - - - -architecture trb_net16_med_16_IC_arch of trb_net16_med_16_IC is - signal buf_DATA_IN : std_logic_vector(15 downto 0); - signal buf_DATA_VALID_IN : std_logic; - signal buf_DATA_CTRL_IN : std_logic; - signal reg_DATA_IN : std_logic_vector(15 downto 0); - signal reg_DATA_VALID_IN : std_logic; - signal reg_DATA_CTRL_IN : std_logic; - - signal rx_allow_qrx : std_logic; - signal rx_fifo_read : std_logic; - signal rx_fifo_write : std_logic; - signal rx_fifo_reset : std_logic; - signal rx_fifo_full : std_logic; - signal rx_fifo_empty : std_logic; - signal rx_fifo_valid_read : std_logic; - signal rx_fifo_dout : std_logic_vector(17 downto 0); - - signal rx_allow : std_logic; - signal tx_allow : std_logic; - - signal rx_counter : unsigned(2 downto 0); - - signal buf_MED_DATAREADY_OUT : std_logic; - signal buf_MED_DATA_OUT : std_logic_vector(15 downto 0); - signal buf_MED_READ_OUT : std_logic; - - signal buf_DATA_VALID_OUT : std_logic; - signal buf_DATA_CTRL_OUT : std_logic; - signal buf_DATA_OUT : std_logic_vector(15 downto 0); - - signal reg0_DATA_VALID_IN : std_logic; - signal reg0_DATA_CTRL_IN : std_logic; - signal reg0_DATA_IN : std_logic_vector(15 downto 0); - - signal med_error : std_logic_vector(2 downto 0); - signal link_led : std_logic; - signal link_running : std_logic; - signal tx_led : std_logic; - signal rx_led : std_logic; - signal make_reset : std_logic; - signal not_connected : std_logic; - signal resync_received : std_logic; - signal led_counter : unsigned(18 downto 0); - - signal state_bits : std_logic_vector(2 downto 0); - type link_state_t is (STARTUP, WAITING, WORKING, RESYNC_WAIT); - signal link_state : link_state_t; - signal pattern_detected_q : std_logic; - - signal pattern_counter : unsigned(11 downto 0); - signal pattern_detected : std_logic; - signal last_DATA_CTRL_IN : std_logic; - signal present_sig : std_logic; - - - signal rx_idle_pattern : std_logic; - signal rx_idle_pattern_q : std_logic; - signal rx_resync_pattern : std_logic; - signal rx_resync_pattern_q : std_logic; - signal pattern_valid : std_logic; - signal pattern_valid_q : std_logic; - - -- Placer Directives - attribute HGROUP : string; - -- for whole architecture - attribute HGROUP of trb_net16_med_16_IC_arch : architecture is "media_interface_group"; - -begin - -------------------------------------------- --- RX Input -------------------------------------------- - - THE_INPUT_FF : process(DATA_CLK_IN) - begin - if falling_edge(DATA_CLK_IN) then - buf_DATA_IN <= DATA_IN; - buf_DATA_VALID_IN <= DATA_VALID_IN; - buf_DATA_CTRL_IN <= DATA_CTRL_IN; - end if; - end process; - - - THE_INPUT_SYNC : process(DATA_CLK_IN) - begin - if falling_edge(DATA_CLK_IN) then - reg0_DATA_IN <= buf_DATA_IN; - reg0_DATA_VALID_IN <= buf_DATA_VALID_IN; - reg0_DATA_CTRL_IN <= buf_DATA_CTRL_IN; - end if; - end process; - THE_INPUT_SYNC_2 : process(DATA_CLK_IN) - begin - if rising_edge(DATA_CLK_IN) then - reg_DATA_IN <= reg0_DATA_IN; - reg_DATA_VALID_IN <= reg0_DATA_VALID_IN; - reg_DATA_CTRL_IN <= reg0_DATA_CTRL_IN; - end if; - end process; - --- THE_INPUT_SYNC : signal_sync --- generic map( --- DEPTH => 1, --- WIDTH => 18 --- ) --- port map( --- RESET => RESET, --- D_IN(15 downto 0) => buf_DATA_IN, --- D_IN(16) => buf_DATA_VALID_IN, --- D_IN(17) => buf_DATA_CTRL_IN, --- CLK0 => DATA_CLK_IN, --- CLK1 => DATA_CLK_IN, --- D_OUT(15 downto 0) => reg_DATA_IN, --- D_OUT(16) => reg_DATA_VALID_IN, --- D_OUT(17) => reg_DATA_CTRL_IN --- ); - -------------------------------------------- --- RX Fifo -------------------------------------------- - - THE_RX_FIFO : trb_net_fifo_16bit_bram_dualport - port map( - read_clock_in => CLK, - write_clock_in => DATA_CLK_IN, - read_enable_in => rx_fifo_read, - write_enable_in => rx_fifo_write, - fifo_gsr_in => rx_fifo_reset, - write_data_in(15 downto 0) => reg_DATA_IN, - write_data_in(16) => reg_DATA_VALID_IN, - write_data_in(17) => reg_DATA_CTRL_IN, - read_data_out => rx_fifo_dout, - full_out => rx_fifo_full, - empty_out => rx_fifo_empty, - fifostatus_out => open, - valid_read_out => open, - almost_empty_out => open, - almost_full_out => open - ); - - rx_fifo_write <= reg_DATA_VALID_IN and rx_allow_qrx; - rx_fifo_reset <= RESET or not rx_allow_qrx; - rx_fifo_read <= rx_allow; - - -------------------------------------------- --- RX Output -------------------------------------------- - - PROC_RX_COUNTER : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - rx_counter <= unsigned(c_H0); - elsif buf_MED_DATAREADY_OUT = '1' and CLK_EN = '1' then - if rx_counter = unsigned(c_max_word_number) then - rx_counter <= (others => '0'); - else - rx_counter <= rx_counter + 1; - end if; - end if; - end if; - end process; - - PROC_RX_READ : process(CLK) - begin - if rising_edge(CLK) then - rx_fifo_valid_read <= rx_fifo_read and not rx_fifo_empty; - buf_MED_DATAREADY_OUT <= rx_fifo_valid_read; - buf_MED_DATA_OUT <= rx_fifo_dout(15 downto 0); - end if; - end process; - - - MED_DATA_OUT <= buf_MED_DATA_OUT; - MED_DATAREADY_OUT <= buf_MED_DATAREADY_OUT; - MED_PACKET_NUM_OUT <= std_logic_vector(rx_counter); - - -------------------------------------------- --- TX -------------------------------------------- - - - buf_MED_READ_OUT <= tx_allow; - MED_READ_OUT <= buf_MED_READ_OUT; - - - PROC_SEND_DATA : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - buf_DATA_VALID_OUT <= '0'; - buf_DATA_CTRL_OUT <= '0'; - buf_DATA_OUT <= (others => '0'); - present_sig <= '0'; - elsif CTRL_OP(15) = '1' then - buf_DATA_VALID_OUT <= '0'; - buf_DATA_CTRL_OUT <= not buf_DATA_CTRL_OUT; - buf_DATA_OUT <= x"FEFE"; - elsif MED_DATAREADY_IN = '1' and buf_MED_READ_OUT = '1' then - buf_DATA_VALID_OUT <= '1'; - buf_DATA_OUT <= MED_DATA_IN; - if MED_PACKET_NUM_IN = c_H0 then - buf_DATA_CTRL_OUT <= '1'; - else - buf_DATA_CTRL_OUT <= '0'; - end if; - else - buf_DATA_OUT <= x"AAAA"; - buf_DATA_CTRL_OUT <= present_sig; - buf_DATA_VALID_OUT <= '0'; - present_sig <= not present_sig; - end if; - end if; - end process; - - - THE_CLK_OUT : ddr_off - port map( - Clk => CLK, - Data(0) => not DATA_CLK_OUT_PHASE, - Data(1) => DATA_CLK_OUT_PHASE, - Q(0) => DATA_CLK_OUT - ); - - - PROC_DATA_OUTPUT : process(CLK) - begin - if rising_edge(CLK) then - DATA_VALID_OUT <= buf_DATA_VALID_OUT; - DATA_CTRL_OUT <= buf_DATA_CTRL_OUT; - DATA_OUT <= buf_DATA_OUT; - end if; - end process; - - -------------------------------------------- --- Link Control -------------------------------------------- - - PROC_SIGNAL_DETECT_PREPARE : process(DATA_CLK_IN) - begin - if rising_edge(DATA_CLK_IN) then - if RESET = '1' then - last_DATA_CTRL_IN <= '0'; - pattern_detected <= '0'; - pattern_valid <= '0'; - elsif reg_DATA_VALID_IN = '0' then - last_DATA_CTRL_IN <= reg_DATA_CTRL_IN; - pattern_detected <= last_DATA_CTRL_IN xor reg_DATA_CTRL_IN; - pattern_valid <= pattern_detected and not reg_DATA_VALID_IN; - end if; - end if; - end process; - - - PROC_FSM : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - link_state <= STARTUP; - link_running <= '0'; - resync_received <= '0'; - not_connected <= '1'; - make_reset <= '0'; - rx_allow <= '0'; - tx_allow <= '0'; - else - case link_state is - when STARTUP => - med_error <= ERROR_NC; - link_running <= '0'; - not_connected <= '1'; - resync_received <= '0'; - rx_allow <= '0'; - tx_allow <= '0'; - if pattern_detected_q = '1' then - not_connected <= '0'; - link_state <= WAITING; - pattern_counter <= x"040"; - end if; - - when WAITING => - med_error <= ERROR_WAIT; - if pattern_valid_q = '1' then - pattern_counter <= pattern_counter + "1"; - elsif pattern_detected_q = '0' then - pattern_counter <= pattern_counter - x"39"; - end if; - if pattern_counter < x"040" then - link_state <= STARTUP; - elsif pattern_counter = x"DFF" then - rx_allow <= '1'; - elsif pattern_counter = x"FFF" then - link_state <= WORKING; - tx_allow <= '1'; - end if; - - when WORKING => - med_error <= ERROR_OK; - link_running <= '1'; - if rx_resync_pattern_q = '1' then - resync_received <= '1'; - else - resync_received <= '0'; - make_reset <= resync_received; - end if; - - if pattern_detected_q = '0' then - link_running <= '0'; - link_state <= STARTUP; - end if; - - when RESYNC_WAIT => - med_error <= ERROR_WAIT; - if rx_idle_pattern_q = '1' then - link_state <= WAITING; - pattern_counter <= x"040"; - elsif pattern_detected_q = '0' then - link_state <= STARTUP; - end if; - - when others => - link_state <= STARTUP; - end case; - end if; - end if; - end process; - - state_bits <= "000" when link_state = STARTUP else - "001" when link_state = WAITING else - "011" when link_state = RESYNC_WAIT else - "100" when link_state = WORKING else "111"; - -------------------------------------------- --- Transfer RX status to sys clock domain -------------------------------------------- - - rx_idle_pattern <= '1' when reg_DATA_IN = x"AAAA" and reg_DATA_VALID_IN = '0' else '0'; - rx_resync_pattern <= '1' when reg_DATA_IN = x"FEFE" and reg_DATA_VALID_IN = '0' else '0'; - - - THE_SYNC_TO_SYS : signal_sync - generic map( - DEPTH => 3, - WIDTH => 4 - ) - port map( - RESET => RESET, - D_IN(0) => pattern_detected, - D_IN(1) => rx_idle_pattern, - D_IN(2) => rx_resync_pattern, - D_IN(3) => pattern_valid, - CLK0 => DATA_CLK_IN, - CLK1 => CLK, - D_OUT(0) => pattern_detected_q, - D_OUT(1) => rx_idle_pattern_q, - D_OUT(2) => rx_resync_pattern_q, - D_OUT(3) => pattern_valid_q - ); - - THE_SYNC_TO_RX : signal_sync - generic map( - DEPTH => 3, - WIDTH => 1 - ) - port map( - RESET => RESET, - D_IN(0) => rx_allow, - CLK0 => CLK, - CLK1 => DATA_CLK_IN, - D_OUT(0) => rx_allow_qrx - ); - - - - - -------------------------------------------- --- Link Status Information -------------------------------------------- - - PROC_LED : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' or not_connected = '1' then - led_counter <= (others => '0'); - rx_led <= '0'; - tx_led <= '0'; - link_led <= '0'; - else - led_counter <= led_counter + 1; - link_led <= link_running; - if led_counter(18) = '1' then - led_counter <= (others => '0'); - rx_led <= '0'; - tx_led <= '0'; - end if; - if buf_MED_DATAREADY_OUT = '1' then - rx_led <= '1'; - end if; - if MED_DATAREADY_IN = '1' and buf_MED_READ_OUT = '1' then - tx_led <= '1'; - end if; - end if; - end if; - end process; - - - STAT_OP(2 downto 0) <= med_error; - STAT_OP(8 downto 3) <= (others => '0'); - STAT_OP(9) <= link_led; - STAT_OP(10) <= rx_led; - STAT_OP(11) <= tx_led; - STAT_OP(12) <= '0'; - STAT_OP(13) <= make_reset; - STAT_OP(14) <= not_connected; - STAT_OP(15) <= resync_received; - - -------------------------------------------- --- Debug -------------------------------------------- - STAT_DEBUG(0) <= reg_DATA_VALID_IN; - STAT_DEBUG(1) <= reg_DATA_CTRL_IN; - STAT_DEBUG(2) <= make_reset; - STAT_DEBUG(3) <= MED_DATAREADY_IN; - STAT_DEBUG(4) <= last_DATA_CTRL_IN; - STAT_DEBUG(5) <= buf_DATA_VALID_OUT; - STAT_DEBUG(6) <= buf_MED_READ_OUT; - STAT_DEBUG(7) <= resync_received; - STAT_DEBUG(15 downto 8) <= reg_DATA_IN(7 downto 0); - STAT_DEBUG(18 downto 16) <= state_bits; - STAT_DEBUG(31 downto 19) <= buf_DATA_OUT(12 downto 0); - - STAT_DEBUG(63 downto 32) <= (others => '0'); - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net16_med_16_SDR_OS.vhd b/oldfiles/trb_net16_med_16_SDR_OS.vhd deleted file mode 100644 index b716a46..0000000 --- a/oldfiles/trb_net16_med_16_SDR_OS.vhd +++ /dev/null @@ -1,477 +0,0 @@ ---media interface with 16 data lines, single data rate and oversampling of RX input ---oversampling running at 250 MHz - - - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - -entity trb_net16_med_16_SDR_OS is - generic( - TRANSMISSION_CLOCK_DIV: integer range 1 to 10 := 1 - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - INT_DATAREADY_OUT : out std_logic; - INT_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_IN : in std_logic; - - INT_DATAREADY_IN : in std_logic; - INT_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_OUT : out std_logic; - - -- Media direction port - TX_DATA_OUT : out std_logic_vector (15 downto 0); - TX_CLK_OUT : out std_logic; - TX_CTRL_OUT : out std_logic_vector (3 downto 0); - RX_DATA_IN : in std_logic_vector (15 downto 0); - RX_CLK_IN : in std_logic; - RX_CTRL_IN : in std_logic_vector (3 downto 0); - - -- Status and control port - STAT_OP: out std_logic_vector (15 downto 0); - CTRL_OP: in std_logic_vector (15 downto 0); - - STAT: out std_logic_vector (31 downto 0); - CTRL: in std_logic_vector (31 downto 0) - ); -end entity; - -architecture trb_net16_med_16_SDR_OS_arch of trb_net16_med_16_SDR_OS is - component trb_net_clock_generator is - generic( - FREQUENCY_IN : real; - FREQUENCY_OUT : real; - CLOCK_MULT : integer range 1 to 32; - CLOCK_DIV : integer range 1 to 32; - CLKIN_DIVIDE_BY_2 : boolean; - CLKIN_PERIOD : real - ); - port( - RESET : in std_logic; - CLK_IN : in std_logic; - CLK_OUT : out std_logic; - LOCKED : out std_logic - ); - end component; - - component trb_net_fifo_16bit_bram_dualport is - generic( - USE_STATUS_FLAGS : integer := c_YES - ); - port ( - read_clock_in: IN std_logic; - write_clock_in: IN std_logic; - read_enable_in: IN std_logic; - write_enable_in: IN std_logic; - fifo_gsr_in: IN std_logic; - write_data_in: IN std_logic_vector(17 downto 0); - read_data_out: OUT std_logic_vector(17 downto 0); - full_out: OUT std_logic; - empty_out: OUT std_logic; - fifostatus_out: OUT std_logic_vector(3 downto 0); - valid_read_out: OUT std_logic; - almost_empty_out:OUT std_logic; - almost_full_out :OUT std_logic - ); - end component; - - component dualdatarate_flipflop is - --1 clock, no CE, PRE for Lattice SCM - generic( - WIDTH : integer := 1 - ); - port( - C0 : in std_logic; - C1 : in std_logic; - CE : in std_logic; - CLR : in std_logic; - D0 : in std_logic_vector(WIDTH-1 downto 0); - D1 : in std_logic_vector(WIDTH-1 downto 0); - PRE : in std_logic; - Q : out std_logic_vector(WIDTH-1 downto 0) - ); - end component; - - signal RECV_CLK, recv_clk_locked : std_logic; - signal reg_RX_CLK, buf_RX_CLK, last_RX_CLK : std_logic; - signal reg_RX_CTRL, buf_RX_CTRL : std_logic_vector(3 downto 0); - signal reg_RX_DATA, buf_RX_DATA : std_logic_vector(15 downto 0); - - signal rx_datavalid : std_logic; - signal rx_first_packet : std_logic; - signal rx_reset : std_logic; - signal rx_parity : std_logic; - signal rx_parity_match : std_logic; - - signal rx_fifo_read_enable : std_logic; - signal rx_fifo_write_enable, next_rx_fifo_write_enable: std_logic; - signal rx_fifo_data_in, next_rx_fifo_data_in : std_logic_vector(17 downto 0); - signal rx_fifo_data_out : std_logic_vector(17 downto 0); - signal rx_fifo_full : std_logic; - signal rx_fifo_empty : std_logic; - signal rx_fifostatus_out : std_logic_vector(3 downto 0); - signal rx_valid_read_out : std_logic; - signal rx_almost_empty_out : std_logic; - signal rx_almost_full_out : std_logic; - - - signal buf_INT_DATAREADY_OUT : std_logic; - - signal rx_packet_counter : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal wait_for_startup : std_logic; - signal wait_for_startup_slow : std_logic; - signal rx_CLK_counter : std_logic_vector(4 downto 0); - signal rx_clock_detect : std_logic; - - signal med_reset : std_logic; - - signal tx_datavalid, tx_first_packet, tx_reset, tx_parity : std_logic; - signal buf_INT_DATA_IN : std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal buf_INT_READ_OUT : std_logic; - signal tx_clock_enable : std_logic; - signal next_tx_reset : std_logic; - signal buf_tx_reset : std_logic; - signal buf_tx_clk : std_logic; - signal recv_clk_real_locked : std_logic; - signal locked_counter : std_logic_vector(19 downto 0); - - signal led_counter : std_logic_vector(18 downto 0); - signal send_resync_counter : std_logic_vector(11 downto 0); - signal send_resync : std_logic; - signal rx_led, tx_led, link_led : std_logic; - signal med_error : std_logic_vector(2 downto 0); - signal trbnet_reset : std_logic; -begin - - ---Transmitter (full speed only) -------------------------- - INT_READ_OUT <= buf_INT_READ_OUT; - buf_INT_READ_OUT <= not wait_for_startup_slow and not buf_tx_reset; - - TX_DATA_OUT <= buf_INT_DATA_IN; - TX_CTRL_OUT(0) <= tx_datavalid; - TX_CTRL_OUT(1) <= tx_first_packet; - TX_CTRL_OUT(2) <= tx_reset; - TX_CTRL_OUT(3) <= tx_parity; - - tx_clock_enable <= not RESET; - - next_tx_reset <= CTRL_OP(15) or (recv_clk_real_locked and wait_for_startup_slow); - - - process(CLK) - begin - if rising_edge(CLK) then - TX_CLK_OUT <= buf_tx_clk; - end if; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - tx_datavalid <= '0'; - tx_reset <= '1'; - buf_tx_reset <= '1'; - buf_INT_DATA_IN <= (others => '0'); - tx_first_packet <= '0'; - tx_parity <= '0'; - buf_tx_clk <= '0'; - else - buf_INT_DATA_IN <= INT_DATA_IN; - tx_datavalid <= INT_DATAREADY_IN and buf_INT_READ_OUT; - if INT_PACKET_NUM_IN = c_H0 then - tx_first_packet <= '1'; - else - tx_first_packet <= '0'; - end if; - tx_reset <= buf_tx_reset; - buf_tx_reset <= next_tx_reset; - tx_parity <= xor_all(INT_DATA_IN); - buf_tx_clk <= not buf_tx_clk; - end if; - end if; - end process; - - - ---Receiver -------------------------- - RECV_CLOCK_GEN : trb_net_clock_generator - generic map( - FREQUENCY_IN => 100.0, - FREQUENCY_OUT => 200.0, - CLOCK_MULT => 2, - CLOCK_DIV => 1, - CLKIN_DIVIDE_BY_2 => false, - CLKIN_PERIOD => 10.0 - ) - port map( - RESET => RESET, - CLK_IN => CLK, - CLK_OUT => RECV_CLK, - LOCKED => recv_clk_locked - ); - -process(CLK) - begin - if rising_edge(CLK) then - if recv_clk_locked = '0' then - locked_counter <= (others => '0'); - recv_clk_real_locked <= '0'; - else - if locked_counter /= x"0000F" then - locked_counter <= locked_counter + 1; - else - recv_clk_real_locked <= '1'; - end if; - end if; - end if; - end process; - - RX_INPUT_REG : process(RECV_CLK) - begin - if rising_edge(RECV_CLK) then - reg_RX_CLK <= RX_CLK_IN; - reg_RX_CTRL <= RX_CTRL_IN; - reg_RX_DATA <= RX_DATA_IN; - end if; - end process; - - RX_REG : process(RECV_CLK, recv_clk_real_locked) - begin - if rising_edge(RECV_CLK) then - if recv_clk_real_locked = '0' then - buf_RX_CTRL <= (others => '0'); - buf_RX_CLK <= '0'; - last_RX_CLK <= '0'; - buf_RX_DATA <= (others => '0'); - else - buf_RX_CLK <= reg_RX_CLK; - buf_RX_DATA <= reg_RX_DATA; - buf_RX_CTRL <= reg_RX_CTRL; - last_RX_CLK <= buf_RX_CLK; - end if; - end if; - end process; - - rx_datavalid <= buf_RX_CTRL(0); - rx_first_packet <= buf_RX_CTRL(1); - rx_reset <= buf_RX_CTRL(2); - rx_parity <= buf_RX_CTRL(3); - - rx_parity_match <= '1' when rx_parity = xor_all(buf_RX_DATA) else '0'; - next_rx_fifo_write_enable <= (buf_RX_CLK xor last_RX_CLK) and rx_datavalid; - next_rx_fifo_data_in <= rx_first_packet & rx_parity_match & buf_RX_DATA; - - reg_fifo_in : process(RECV_CLK) - begin - if rising_edge(RECV_CLK) then - rx_fifo_write_enable <= next_rx_fifo_write_enable; - rx_fifo_data_in <= next_rx_fifo_data_in; - end if; - end process; - - RX_FIFO : trb_net_fifo_16bit_bram_dualport - port map( - read_clock_in => CLK, - write_clock_in => RECV_CLK, - read_enable_in => rx_fifo_read_enable, - write_enable_in => rx_fifo_write_enable, - fifo_gsr_in => med_reset, - write_data_in => rx_fifo_data_in, - read_data_out => rx_fifo_data_out, - full_out => rx_fifo_full, - empty_out => rx_fifo_empty, - fifostatus_out => rx_fifostatus_out, - valid_read_out => rx_valid_read_out, - almost_empty_out => rx_almost_empty_out, - almost_full_out => rx_almost_full_out - ); - - rx_fifo_read_enable <= INT_READ_IN; - - INT_DATA_OUT <= rx_fifo_data_out(15 downto 0); - INT_PACKET_NUM_OUT <= rx_packet_counter; - INT_DATAREADY_OUT <= buf_INT_DATAREADY_OUT; - - packet_counter_p : process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - rx_packet_counter <= "100"; - elsif buf_INT_DATAREADY_OUT = '1' then - if rx_packet_counter = c_max_word_number then - rx_packet_counter <= (others => '0'); - else - rx_packet_counter <= rx_packet_counter + 1; - end if; - end if; - end if; - end process; - - - rx_dataready_p : process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - buf_INT_DATAREADY_OUT <= '0'; - else - buf_INT_DATAREADY_OUT <= rx_fifo_read_enable and not rx_fifo_empty; - end if; - end if; - end process; - - ---monitor link -------------------------- - process(CLK) - begin - if rising_edge(CLK) then - wait_for_startup_slow <= wait_for_startup; - end if; - end process; - - process(RECV_CLK, recv_clk_real_locked,med_reset) - begin - if rising_edge(RECV_CLK) then - if recv_clk_real_locked = '0' or med_reset = '1' or rx_clock_detect = '0' then - wait_for_startup <= '1'; - elsif rx_reset = '1' and recv_clk_locked = '1' then - wait_for_startup <= '0'; - end if; - end if; - end process; - - - ERROR_OUT_gen : process(CLK) - begin - if rising_edge(CLK) then - if recv_clk_real_locked = '0' or rx_clock_detect = '0' then - med_error <= ERROR_NC; - elsif (buf_INT_DATAREADY_OUT = '1' and rx_fifo_data_out(16) = '0') then --Parity error - med_error <= ERROR_ENCOD; - elsif (rx_packet_counter /= "100" and buf_INT_DATAREADY_OUT = '1' and rx_fifo_data_out(17) = '1') then - med_error <= ERROR_FATAL; --Counter error - else - med_error <= ERROR_OK; - end if; - end if; - end process; - - - rx_clk_detect_counter: process (RECV_CLK, recv_clk_real_locked) - begin - if rising_edge(RECV_CLK) then - if recv_clk_real_locked = '0' then - rx_CLK_counter <= (others => '0'); - rx_clock_detect <= '0'; - elsif buf_RX_CLK = '1' and last_RX_CLK = '0' then - rx_CLK_counter <= (others => '0'); - rx_clock_detect <= '1'; - elsif rx_CLK_counter /= 31 then - rx_CLK_counter <= rx_CLK_counter + 1; - elsif rx_CLK_counter = 31 then - rx_clock_detect <= '0'; - end if; - end if; - end process; - - ---STAT & CTRL Ports -------------------------- - ---LED - link_led <= rx_clock_detect and not wait_for_startup_slow; - - process(CLK) - begin - if rising_edge(CLK) then - if led_counter(18) = '1' then - led_counter <= (others => '0'); - else - led_counter <= led_counter + 1; - end if; - if rx_fifo_empty = '0' then - rx_led <= '1'; - elsif led_counter(18) = '1' then - rx_led <= '0'; - end if; - if tx_datavalid = '1' then - tx_led <= '1'; - elsif led_counter(18) = '1' then - tx_led <= '0'; - end if; - end if; - end process; - - - STAT_OP(2 downto 0) <= med_error; - STAT_OP(8 downto 3) <= (others => '0'); - STAT_OP(9) <= link_led; - STAT_OP(10) <= rx_led; - STAT_OP(11) <= tx_led; - STAT_OP(12) <= '0'; - STAT_OP(13) <= trbnet_reset; - STAT_OP(14) <= rx_clock_detect; - STAT_OP(15) <= '1' when rx_reset = '1' and wait_for_startup_slow = '0' else '0'; - - STAT(12) <= rx_parity_match; - STAT(11) <= RECV_CLK; - STAT(10) <= recv_clk_real_locked; - STAT(9) <= rx_reset; - STAT(8) <= buf_RX_CLK xor last_RX_CLK; - STAT(7) <= recv_clk_locked; - STAT(6) <= wait_for_startup; - STAT(5) <= rx_first_packet; - STAT(4) <= buf_tx_clk; --not or_all(INT_PACKET_NUM_IN); --tx_first_packet; - STAT(3) <= rx_datavalid; - STAT(2) <= next_tx_reset; - STAT(1) <= buf_RX_CLK; - - STAT(13) <= or_all(rx_fifostatus_out); - STAT(14) <= rx_valid_read_out; - STAT(15) <= rx_almost_empty_out; - STAT(16) <= rx_almost_full_out; - STAT(31 downto 17) <= (others => '0'); - - med_reset <= RESET or send_resync; - trbnet_reset <= rx_reset or not recv_clk_real_locked; - - ---detect resync - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - send_resync <= '0'; - send_resync_counter <= (others => '0'); - else - if not (send_resync_counter = 0) then - send_resync_counter <= send_resync_counter + 1; - end if; - if CTRL_OP(15) = '1' and send_resync_counter(11 downto 4) = 0 then - send_resync <= '1'; - send_resync_counter <= send_resync_counter + 1; - end if; - if send_resync_counter = x"00F" then - send_resync <= '0'; - end if; - end if; - end if; - end process; - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net16_med_8_DDR_OS.vhd b/oldfiles/trb_net16_med_8_DDR_OS.vhd deleted file mode 100644 index 2b47211..0000000 --- a/oldfiles/trb_net16_med_8_DDR_OS.vhd +++ /dev/null @@ -1,491 +0,0 @@ ---media interface with 16 data lines, single data rate and oversampling of RX input ---oversampling running at 250 MHz - - - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - -entity trb_net16_med_8_DDR_OS is - generic( - TRANSMISSION_CLOCK_DIV: integer range 1 to 10 := 1 - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - INT_DATAREADY_OUT : out std_logic; - INT_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_IN : in std_logic; - - INT_DATAREADY_IN : in std_logic; - INT_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_OUT : out std_logic; - - -- Media direction port - TX_DATA_OUT : out std_logic_vector (7 downto 0); - TX_CLK_OUT : out std_logic; - TX_CTRL_OUT : out std_logic_vector (1 downto 0); - RX_DATA_IN : in std_logic_vector (7 downto 0); - RX_CLK_IN : in std_logic; - RX_CTRL_IN : in std_logic_vector (1 downto 0); - - -- Status and control port - STAT_OP: out std_logic_vector (15 downto 0); - CTRL_OP: in std_logic_vector (15 downto 0); - - STAT: out std_logic_vector (31 downto 0); - CTRL: in std_logic_vector (31 downto 0) - ); -end entity; - -architecture trb_net16_med_8_DDR_OS_arch of trb_net16_med_8_DDR_OS is - - component trb_net_clock_generator is - generic( - FREQUENCY_IN : real; - FREQUENCY_OUT : real; - CLOCK_MULT : integer range 1 to 32; - CLOCK_DIV : integer range 1 to 32; - CLKIN_DIVIDE_BY_2 : boolean; - CLKIN_PERIOD : real - ); - port( - RESET : in std_logic; - CLK_IN : in std_logic; - CLK_OUT : out std_logic; - LOCKED : out std_logic - ); - end component; - - component trb_net_fifo_16bit_bram_dualport is - generic( - USE_STATUS_FLAGS : integer := c_YES - ); - port ( - read_clock_in: IN std_logic; - write_clock_in: IN std_logic; - read_enable_in: IN std_logic; - write_enable_in: IN std_logic; - fifo_gsr_in: IN std_logic; - write_data_in: IN std_logic_vector(17 downto 0); - read_data_out: OUT std_logic_vector(17 downto 0); - full_out: OUT std_logic; - empty_out: OUT std_logic; - fifostatus_out: OUT std_logic_vector(3 downto 0); - valid_read_out: OUT std_logic; - almost_empty_out:OUT std_logic; - almost_full_out :OUT std_logic - ); - end component; - - component signal_sync is - generic( - WIDTH : integer := 1; -- - DEPTH : integer := 3 - ); - port( - RESET : in std_logic; --Reset is neceessary to avoid optimization to shift register - CLK0 : in std_logic; --clock for first FF - CLK1 : in std_logic; --Clock for other FF - D_IN : in std_logic_vector(WIDTH-1 downto 0); --Data input - D_OUT : out std_logic_vector(WIDTH-1 downto 0) --Data output - ); - end component; - - signal RECV_CLK, recv_clk_locked : std_logic; - signal reg_RX_CLK, buf_RX_CLK, last_RX_CLK : std_logic; - signal reg_RX_CTRL, buf_RX_CTRL : std_logic_vector(1 downto 0); - signal reg_RX_DATA, buf_RX_DATA : std_logic_vector(7 downto 0); - - signal rx_datavalid : std_logic; - signal rx_reset : std_logic; - - signal rx_fifo_read_enable : std_logic; - signal rx_fifo_write_enable, next_rx_fifo_write_enable: std_logic; - signal rx_fifo_data_in, next_rx_fifo_data_in : std_logic_vector(17 downto 0); - signal rx_fifo_data_out : std_logic_vector(17 downto 0); - signal rx_fifo_full : std_logic; - signal rx_fifo_empty : std_logic; - signal rx_fifostatus_out : std_logic_vector(3 downto 0); - signal rx_valid_read_out : std_logic; - signal rx_almost_empty_out : std_logic; - signal rx_almost_full_out : std_logic; - signal saved_fifo_data_out : std_logic_vector(7 downto 0); - - signal buf_INT_DATAREADY_OUT : std_logic; - - signal rx_packet_counter : std_logic_vector(3 downto 0); - signal wait_for_startup : std_logic; - signal wait_for_startup_slow : std_logic; - signal rx_CLK_counter : std_logic_vector(4 downto 0); - signal rx_clock_detect : std_logic; - - signal med_reset : std_logic; - - signal tx_datavalid, tx_first_packet, tx_reset, tx_parity : std_logic; - signal buf_INT_DATA_IN : std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal buf_INT_READ_OUT : std_logic; - signal tx_clock_enable : std_logic; - signal next_tx_reset : std_logic; - signal buf_tx_reset : std_logic; - signal buf_tx_clk : std_logic; - signal recv_clk_real_locked : std_logic; - signal locked_counter : std_logic_vector(19 downto 0); - - signal led_counter : std_logic_vector(18 downto 0); - signal rx_led, tx_led, link_led : std_logic; - signal med_error : std_logic_vector(2 downto 0); - - signal tx_data : std_logic_vector(7 downto 0); - signal tx_word_waiting : std_logic; - signal tx_data_buffer : std_logic_vector(7 downto 0); - signal next_recv_clk_locked : std_logic; - signal recv_clk_real_locked_q : std_logic; -begin - - ---Transmitter (full speed only) -------------------------- - INT_READ_OUT <= buf_INT_READ_OUT; - - - - process(CLK) - begin - if rising_edge(CLK) then - TX_CLK_OUT <= buf_tx_clk; - TX_DATA_OUT <= tx_data; - TX_CTRL_OUT(0) <= tx_datavalid; - TX_CTRL_OUT(1) <= buf_tx_reset; - end if; - end process; - - - process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - buf_tx_reset <= '1'; - buf_tx_clk <= '0'; - else - buf_tx_reset <= (recv_clk_real_locked_q and wait_for_startup_slow); - buf_tx_clk <= not buf_tx_clk; - end if; - end if; - end process; - - - process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - tx_datavalid <= '0'; - buf_INT_DATA_IN <= (others => '0'); - buf_INT_READ_OUT <= '0'; - tx_data <= (others => '0'); - tx_word_waiting <= '0'; - else - if tx_word_waiting = '1' then - tx_data <= tx_data_buffer; - tx_datavalid <= '1'; - buf_INT_READ_OUT <= not wait_for_startup_slow and not buf_tx_reset; - tx_word_waiting <= '0'; - elsif INT_DATAREADY_IN = '1' and buf_INT_READ_OUT = '1' then - tx_data <= INT_DATA_IN(15 downto 8); - tx_data_buffer <= INT_DATA_IN(7 downto 0); - tx_datavalid <= '1'; - tx_word_waiting <= '1'; - buf_INT_READ_OUT <= '0'; - else - tx_datavalid <= '0'; - buf_INT_READ_OUT <= not wait_for_startup_slow and not buf_tx_reset; - end if; - end if; - end if; - end process; - - - ---Receiver -------------------------- - RECV_CLOCK_GEN : trb_net_clock_generator - generic map( - FREQUENCY_IN => 100.0, - FREQUENCY_OUT => 200.0, - CLOCK_MULT => 2, - CLOCK_DIV => 1, - CLKIN_DIVIDE_BY_2 => false, - CLKIN_PERIOD => 10.0 - ) - port map( - RESET => RESET, - CLK_IN => CLK, - CLK_OUT => RECV_CLK, - LOCKED => recv_clk_locked - ); - --- THE_SYNC_TO_CLK : signal_sync --- generic map( --- DEPTH => 2, --- WIDTH => 1 --- ) --- port map( --- RESET => RESET, --- D_IN(0) => next_recv_clk_locked, --- CLK0 => CLK, --- CLK1 => CLK, --- D_OUT(0) => recv_clk_locked --- ); - - THE_SYNC_TO_CLK_0 : signal_sync - generic map( - DEPTH => 3, - WIDTH => 1 - ) - port map( - RESET => RESET, - D_IN(0) => recv_clk_real_locked, - CLK0 => CLK, - CLK1 => CLK, - D_OUT(0) => recv_clk_real_locked_q - ); - -process(CLK) - begin - if rising_edge(RECV_CLK) then - if recv_clk_locked = '0' then - locked_counter <= (others => '0'); - recv_clk_real_locked <= '0'; - else - if locked_counter /= x"0000F" then - locked_counter <= locked_counter + 1; - else - recv_clk_real_locked <= '1'; - end if; - end if; - end if; - end process; - - RX_INPUT_REG : process(RECV_CLK) - begin - if rising_edge(RECV_CLK) then - reg_RX_CLK <= RX_CLK_IN; - reg_RX_CTRL <= RX_CTRL_IN; - reg_RX_DATA <= RX_DATA_IN; - end if; - end process; - - RX_REG : process(RECV_CLK, recv_clk_real_locked) - begin - if rising_edge(RECV_CLK) then - if recv_clk_real_locked = '0' then - buf_RX_CTRL <= (others => '0'); - buf_RX_CLK <= '0'; - last_RX_CLK <= '0'; - buf_RX_DATA <= (others => '0'); - else - buf_RX_CLK <= reg_RX_CLK; - buf_RX_DATA <= reg_RX_DATA; - buf_RX_CTRL <= reg_RX_CTRL; - last_RX_CLK <= buf_RX_CLK; - end if; - end if; - end process; - - rx_datavalid <= buf_RX_CTRL(0); - rx_reset <= buf_RX_CTRL(1); - - next_rx_fifo_write_enable <= (buf_RX_CLK xor last_RX_CLK) and rx_datavalid; - next_rx_fifo_data_in <= x"00" & '0' & '0' & buf_RX_DATA; - - reg_fifo_in : process(RECV_CLK) - begin - if rising_edge(RECV_CLK) then - rx_fifo_write_enable <= next_rx_fifo_write_enable; - rx_fifo_data_in <= next_rx_fifo_data_in; - end if; - end process; - - RX_FIFO : trb_net_fifo_16bit_bram_dualport - port map( - read_clock_in => CLK, - write_clock_in => RECV_CLK, - read_enable_in => rx_fifo_read_enable, - write_enable_in => rx_fifo_write_enable, - fifo_gsr_in => med_reset, - write_data_in => rx_fifo_data_in, - read_data_out => rx_fifo_data_out, - full_out => rx_fifo_full, - empty_out => rx_fifo_empty, - fifostatus_out => rx_fifostatus_out, - valid_read_out => rx_valid_read_out, - almost_empty_out => rx_almost_empty_out, - almost_full_out => rx_almost_full_out - ); - - rx_fifo_read_enable <= INT_READ_IN; - - proc_rx_dataoutput : process(CLK) - begin - if rising_edge(CLK) then - INT_DATA_OUT <= saved_fifo_data_out(7 downto 0) & rx_fifo_data_out(7 downto 0); - INT_PACKET_NUM_OUT <= rx_packet_counter(3 downto 1); - INT_DATAREADY_OUT <= buf_INT_DATAREADY_OUT; - end if; - end process; - - packet_counter_p : process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - rx_packet_counter <= "0111"; - elsif rx_fifo_read_enable = '1' and rx_fifo_empty = '0' then - if rx_packet_counter = c_max_word_number & '1' then - rx_packet_counter <= (others => '0'); - else - rx_packet_counter <= rx_packet_counter + 1; - end if; - end if; - end if; - end process; - - - rx_dataready_p : process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - buf_INT_DATAREADY_OUT <= '0'; - saved_fifo_data_out <= (others => '0'); - else - buf_INT_DATAREADY_OUT <= rx_fifo_read_enable and not rx_fifo_empty and not rx_packet_counter(0); - if rx_fifo_read_enable = '1' and rx_fifo_empty = '0' and rx_packet_counter(0) = '1' then - saved_fifo_data_out <= rx_fifo_data_out(7 downto 0); - end if; - end if; - end if; - end process; - - ---monitor link -------------------------- - - THE_SYNCTOCLK : signal_sync - generic map( - DEPTH => 3, - WIDTH => 1 - ) - port map( - RESET => RESET, - D_IN(0) => wait_for_startup, - CLK0 => CLK, - CLK1 => CLK, - D_OUT(0) => wait_for_startup_slow - ); - - - process(RECV_CLK, recv_clk_real_locked,med_reset) - begin - if rising_edge(RECV_CLK) then - if recv_clk_real_locked = '0' or med_reset = '1' or rx_clock_detect = '0' then - wait_for_startup <= '1'; - elsif rx_reset = '1' and recv_clk_real_locked = '1' then -- - wait_for_startup <= '0'; - end if; - end if; - end process; - - - ERROR_OUT_gen : process(CLK) - begin - if rising_edge(CLK) then - if recv_clk_real_locked = '0' or rx_clock_detect = '0' then -- or wait_for_startup_slow = '1' - med_error <= ERROR_NC; - else - med_error <= ERROR_OK; - end if; - end if; - end process; - - - rx_clk_detect_counter: process (RECV_CLK, recv_clk_real_locked) - begin - if rising_edge(RECV_CLK) then - if recv_clk_real_locked = '0' then - rx_CLK_counter <= (others => '0'); - rx_clock_detect <= '0'; - elsif buf_RX_CLK = '1' and last_RX_CLK = '0' then - rx_CLK_counter <= (others => '0'); - rx_clock_detect <= '1'; - elsif rx_CLK_counter /= 31 then - rx_CLK_counter <= rx_CLK_counter + 1; - elsif rx_CLK_counter = 31 then - rx_clock_detect <= '0'; - end if; - end if; - end process; - - ---STAT & CTRL Ports -------------------------- - ---LED - link_led <= rx_clock_detect and not wait_for_startup_slow; - - process(CLK) - begin - if rising_edge(CLK) then - if led_counter(18) = '1' then - led_counter <= (others => '0'); - else - led_counter <= led_counter + 1; - end if; - if rx_fifo_empty = '0' then - rx_led <= '1'; - elsif led_counter(18) = '1' then - rx_led <= '0'; - end if; - if tx_datavalid = '1' then - tx_led <= '1'; - elsif led_counter(18) = '1' then - tx_led <= '0'; - end if; - end if; - end process; - - - STAT_OP(2 downto 0) <= med_error; - STAT_OP(8 downto 3) <= (others => '0'); - STAT_OP(9) <= link_led; - STAT_OP(10) <= rx_led; - STAT_OP(11) <= tx_led; - STAT_OP(12) <= '0'; - STAT_OP(13) <= '0'; --trbnet_reset; - STAT_OP(14) <= rx_clock_detect; - STAT_OP(15) <= '1' when rx_reset = '1' and wait_for_startup_slow = '0' else '0'; - - - STAT(7 downto 0) <= buf_RX_DATA; - STAT(9 downto 8) <= buf_RX_CTRL; - STAT(10) <= buf_RX_CLK; - STAT(11) <= wait_for_startup_slow; - STAT(12) <= rx_fifo_empty; - STAT(13) <= rx_fifo_read_enable; - STAT(14) <= rx_fifo_write_enable; - STAT(15) <= rx_clock_detect; - STAT(31 downto 16) <= (others => '0'); - - med_reset <= RESET; --- trbnet_reset <= rx_reset or not recv_clk_real_locked; - - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net16_med_8_SDR_OS.vhd b/oldfiles/trb_net16_med_8_SDR_OS.vhd deleted file mode 100644 index 613d27b..0000000 --- a/oldfiles/trb_net16_med_8_SDR_OS.vhd +++ /dev/null @@ -1,405 +0,0 @@ - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - -entity trb_net16_med_8_SDR_OS is - generic( - TRANSMISSION_CLOCK_DIV: integer range 1 to 10 := 1 - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - INT_DATAREADY_OUT : out std_logic; - INT_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_IN : in std_logic; - - INT_DATAREADY_IN : in std_logic; - INT_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_OUT : out std_logic; - - -- Media direction port - TX_DATA_OUT : out std_logic_vector (7 downto 0); - TX_CLK_OUT : out std_logic; - TX_CTRL_OUT : out std_logic_vector (1 downto 0); - RX_DATA_IN : in std_logic_vector (7 downto 0); - RX_CLK_IN : in std_logic; - RX_CTRL_IN : in std_logic_vector (1 downto 0); - - -- Status and control port - STAT_OP: out std_logic_vector (15 downto 0); - CTRL_OP: in std_logic_vector (15 downto 0); - - STAT: out std_logic_vector (31 downto 0); - CTRL: in std_logic_vector (31 downto 0) - ); -end entity; - -architecture trb_net16_med_8_SDR_OS_arch of trb_net16_med_8_SDR_OS is - - component trb_net_fifo_16bit_bram_dualport is - generic( - USE_STATUS_FLAGS : integer := c_YES - ); - port ( - read_clock_in: IN std_logic; - write_clock_in: IN std_logic; - read_enable_in: IN std_logic; - write_enable_in: IN std_logic; - fifo_gsr_in: IN std_logic; - write_data_in: IN std_logic_vector(17 downto 0); - read_data_out: OUT std_logic_vector(17 downto 0); - full_out: OUT std_logic; - empty_out: OUT std_logic; - fifostatus_out: OUT std_logic_vector(3 downto 0); - valid_read_out: OUT std_logic; - almost_empty_out:OUT std_logic; - almost_full_out :OUT std_logic - ); - end component; - - component signal_sync is - generic( - WIDTH : integer := 1; -- - DEPTH : integer := 3 - ); - port( - RESET : in std_logic; --Reset is neceessary to avoid optimization to shift register - CLK0 : in std_logic; --clock for first FF - CLK1 : in std_logic; --Clock for other FF - D_IN : in std_logic_vector(WIDTH-1 downto 0); --Data input - D_OUT : out std_logic_vector(WIDTH-1 downto 0) --Data output - ); - end component; - - signal reg_RX_CLK, buf_RX_CLK, last_RX_CLK : std_logic; - signal reg_RX_CTRL, buf_RX_CTRL : std_logic_vector(1 downto 0); - signal reg_RX_DATA, buf_RX_DATA : std_logic_vector(7 downto 0); - - signal rx_datavalid : std_logic; - signal rx_reset : std_logic; - signal rx_fifo_read_enable : std_logic; - signal rx_fifo_write_enable, next_rx_fifo_write_enable: std_logic; - signal rx_fifo_data_in, next_rx_fifo_data_in : std_logic_vector(17 downto 0); - signal rx_fifo_data_out : std_logic_vector(17 downto 0); - signal rx_fifo_empty : std_logic; - signal rx_packet_counter : std_logic_vector(3 downto 0); - signal rx_CLK_counter : std_logic_vector(4 downto 0); - signal rx_clock_detect : std_logic; - - - signal saved_fifo_data_out : std_logic_vector(7 downto 0); - - signal med_reset : std_logic; - - signal tx_datavalid : std_logic; - signal buf_INT_READ_OUT : std_logic; - signal buf_INT_DATAREADY_OUT : std_logic; - signal buf_tx_reset : std_logic; - signal buf_tx_clk : std_logic; - - signal led_counter : std_logic_vector(18 downto 0); - signal rx_led, tx_led, link_led : std_logic; - signal med_error : std_logic_vector(2 downto 0); - - signal tx_data : std_logic_vector(7 downto 0); - signal tx_word_waiting : std_logic; - signal tx_data_buffer : std_logic_vector(7 downto 0); - signal last_rx_fifo_read_enable : std_logic; - signal last_rx_fifo_empty : std_logic; - signal buf_tx_half_clk : std_logic; - signal rx_active : std_logic; - signal tx_active : std_logic; - signal rx_fifo_reset : std_logic; - signal active_counter : std_logic_vector(15 downto 0); - -begin - - med_reset <= RESET; - - - ---Transmitter -------------------------- - INT_READ_OUT <= buf_INT_READ_OUT; - - - - process(CLK) - begin - if rising_edge(CLK) then - TX_CLK_OUT <= buf_tx_half_clk; - TX_DATA_OUT <= tx_data; - TX_CTRL_OUT(0) <= tx_datavalid; - TX_CTRL_OUT(1) <= buf_tx_reset; - end if; - end process; - - - process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - buf_tx_reset <= '1'; - buf_tx_clk <= '0'; - buf_tx_half_clk <= '0'; - else - buf_tx_reset <= not tx_active; - buf_tx_clk <= not buf_tx_clk; - if buf_tx_clk = '1' then - buf_tx_half_clk <= not buf_tx_half_clk; - end if; - end if; - end if; - end process; - - - process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' or tx_active = '0' then - tx_datavalid <= '0'; - buf_INT_READ_OUT <= '0'; - tx_data <= (others => '0'); - tx_word_waiting <= '0'; - else - buf_INT_READ_OUT <= '0'; - if buf_tx_half_clk = '0' and buf_tx_clk = '0' then - if tx_word_waiting = '1' then - tx_data <= tx_data_buffer; - tx_datavalid <= '1'; - tx_word_waiting <= '0'; - elsif INT_DATAREADY_IN = '1' and buf_INT_READ_OUT = '1' then - tx_data <= INT_DATA_IN(15 downto 8); - tx_data_buffer <= INT_DATA_IN(7 downto 0); - tx_datavalid <= '1'; - tx_word_waiting <= '1'; - else - tx_datavalid <= '0'; - end if; - elsif buf_tx_half_clk = '1' and buf_tx_clk = '1' then - buf_INT_READ_OUT <= not tx_word_waiting and tx_active; - end if; - end if; - end if; - end process; - - - ---Receiver -------------------------- - - RX_INPUT_REG : process(CLK) - begin - if rising_edge(CLK) then - reg_RX_CLK <= RX_CLK_IN; - reg_RX_CTRL <= RX_CTRL_IN; - reg_RX_DATA <= RX_DATA_IN; - end if; - end process; - - RX_REG : process(CLK) - begin - if rising_edge(CLK) then - buf_RX_CLK <= reg_RX_CLK; - buf_RX_DATA <= reg_RX_DATA; - buf_RX_CTRL <= reg_RX_CTRL; - last_RX_CLK <= buf_RX_CLK; - end if; - end process; - - rx_datavalid <= buf_RX_CTRL(0); - rx_reset <= buf_RX_CTRL(1); - - next_rx_fifo_write_enable <= (buf_RX_CLK and not last_RX_CLK) and rx_datavalid and rx_active; - next_rx_fifo_data_in <= x"00" & '0' & '0' & buf_RX_DATA; - - reg_fifo_in : process(CLK) - begin - if rising_edge(CLK) then - rx_fifo_write_enable <= next_rx_fifo_write_enable; - rx_fifo_data_in <= next_rx_fifo_data_in; - end if; - end process; - - RX_FIFO : trb_net_fifo_16bit_bram_dualport - port map( - read_clock_in => CLK, - write_clock_in => CLK, - read_enable_in => rx_fifo_read_enable, - write_enable_in => rx_fifo_write_enable, - fifo_gsr_in => rx_fifo_reset, - write_data_in => rx_fifo_data_in, - read_data_out => rx_fifo_data_out, - full_out => open, - empty_out => rx_fifo_empty, - fifostatus_out => open, - valid_read_out => open, - almost_empty_out => open, - almost_full_out => open - ); - - rx_fifo_reset <= med_reset or not rx_active; - rx_fifo_read_enable <= INT_READ_IN; - - proc_rx_dataoutput : process(CLK) - begin - if rising_edge(CLK) then - INT_DATA_OUT <= saved_fifo_data_out(7 downto 0) & rx_fifo_data_out(7 downto 0); - INT_PACKET_NUM_OUT <= rx_packet_counter(3 downto 1); - INT_DATAREADY_OUT <= buf_INT_DATAREADY_OUT; - - last_rx_fifo_read_enable <= rx_fifo_read_enable; - last_rx_fifo_empty <= rx_fifo_empty; - end if; - end process; - - packet_counter_p : process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - rx_packet_counter <= "0111"; - elsif rx_fifo_read_enable = '1' and rx_fifo_empty = '0' then - if rx_packet_counter = c_max_word_number & '1' then - rx_packet_counter <= (others => '0'); - else - rx_packet_counter <= rx_packet_counter + 1; - end if; - end if; - end if; - end process; - - - rx_dataready_p : process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - buf_INT_DATAREADY_OUT <= '0'; - saved_fifo_data_out <= (others => '0'); - else - buf_INT_DATAREADY_OUT <= rx_fifo_read_enable and not rx_fifo_empty and not rx_packet_counter(0); - if last_rx_fifo_read_enable = '1' and last_rx_fifo_empty = '0' and rx_packet_counter(0) = '0' then - saved_fifo_data_out <= rx_fifo_data_out(7 downto 0); - end if; - end if; - end if; - end process; - - ---monitor link -------------------------- - - - ERROR_OUT_gen : process(CLK) - begin - if rising_edge(CLK) then - if rx_clock_detect = '0' or rx_active = '0' then - med_error <= ERROR_NC; - else - med_error <= ERROR_OK; - end if; - end if; - end process; - - - rx_clk_detect_counter: process (CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - rx_CLK_counter <= (others => '0'); - rx_clock_detect <= '0'; - elsif buf_RX_CLK = '1' and last_RX_CLK = '0' then - rx_CLK_counter <= (others => '0'); - rx_clock_detect <= '1'; - elsif rx_CLK_counter /= 31 then - rx_CLK_counter <= rx_CLK_counter + 1; - elsif rx_CLK_counter = 31 then - rx_clock_detect <= '0'; - end if; - end if; - end process; - - proc_active : process(CLK) - begin - if rising_edge(CLK) then - if rx_clock_detect = '0' then - active_counter <= (others => '0'); - elsif active_counter < x"FFFF" then - active_counter <= active_counter + 1; - end if; - if active_counter > x"8000" then - rx_active <= '1'; - else - rx_active <= '0'; - end if; - if active_counter = x"FFFF" then - tx_active <= '1'; - else - tx_active <= '0'; - end if; - end if; - end process; - ---STAT & CTRL Ports -------------------------- - ---LED - link_led <= rx_clock_detect and rx_active and tx_active; - - process(CLK) - begin - if rising_edge(CLK) then - if led_counter(18) = '1' then - led_counter <= (others => '0'); - else - led_counter <= led_counter + 1; - end if; - if rx_fifo_empty = '0' then - rx_led <= '1'; - elsif led_counter(18) = '1' then - rx_led <= '0'; - end if; - if tx_datavalid = '1' then - tx_led <= '1'; - elsif led_counter(18) = '1' then - tx_led <= '0'; - end if; - end if; - end process; - - - STAT_OP(2 downto 0) <= med_error; - STAT_OP(8 downto 3) <= (others => '0'); - STAT_OP(9) <= link_led; - STAT_OP(10) <= rx_led; - STAT_OP(11) <= tx_led; - STAT_OP(12) <= '0'; - STAT_OP(13) <= '0'; --trbnet_reset; - STAT_OP(14) <= not rx_clock_detect; - STAT_OP(15) <= not rx_active; - - - STAT(7 downto 0) <= buf_RX_DATA; - STAT(9 downto 8) <= buf_RX_CTRL; - STAT(10) <= buf_RX_CLK; - STAT(11) <= '0'; - STAT(12) <= rx_fifo_empty; - STAT(13) <= rx_fifo_read_enable; - STAT(14) <= rx_fifo_write_enable; - STAT(15) <= rx_clock_detect; - STAT(23 downto 16) <= tx_data; - STAT(24) <= tx_datavalid; - STAT(31 downto 25) <= (others => '0'); - - - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net16_med_8_SDR_sync.vhd b/oldfiles/trb_net16_med_8_SDR_sync.vhd deleted file mode 100644 index 08976e7..0000000 --- a/oldfiles/trb_net16_med_8_SDR_sync.vhd +++ /dev/null @@ -1,456 +0,0 @@ ---media interface with 16 data lines, single data rate and oversampling of RX input ---oversampling running at 250 MHz - - - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - -entity trb_net16_med_8_SDR_sync is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - INT_DATAREADY_OUT : out std_logic; - INT_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_IN : in std_logic; - - INT_DATAREADY_IN : in std_logic; - INT_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - INT_READ_OUT : out std_logic; - - -- Media direction port - TX_DATA_OUT : out std_logic_vector (15 downto 0); - TX_CTRL_OUT : out std_logic_vector (3 downto 0); - RX_DATA_IN : in std_logic_vector (15 downto 0); - RX_CTRL_IN : in std_logic_vector (3 downto 0); - - -- Status and control port - STAT_OP: out std_logic_vector (15 downto 0); - CTRL_OP: in std_logic_vector (15 downto 0); - - STAT: out std_logic_vector (31 downto 0); - CTRL: in std_logic_vector (31 downto 0) - ); -end entity; - -architecture trb_net16_med_8_SDR_sync_arch of trb_net16_med_8_SDR_sync is - - component trb_net_fifo_16bit_bram_dualport is - generic( - USE_STATUS_FLAGS : integer := c_YES - ); - port ( - read_clock_in: IN std_logic; - write_clock_in: IN std_logic; - read_enable_in: IN std_logic; - write_enable_in: IN std_logic; - fifo_gsr_in: IN std_logic; - write_data_in: IN std_logic_vector(17 downto 0); - read_data_out: OUT std_logic_vector(17 downto 0); - full_out: OUT std_logic; - empty_out: OUT std_logic; - fifostatus_out: OUT std_logic_vector(3 downto 0); - valid_read_out: OUT std_logic; - almost_empty_out:OUT std_logic; - almost_full_out :OUT std_logic - ); - end component; - - component dualdatarate_flipflop is - --1 clock, no CE, PRE for Lattice SCM - generic( - WIDTH : integer := 1 - ); - port( - C0 : in std_logic; - C1 : in std_logic; - CE : in std_logic; - CLR : in std_logic; - D0 : in std_logic_vector(WIDTH-1 downto 0); - D1 : in std_logic_vector(WIDTH-1 downto 0); - PRE : in std_logic; - Q : out std_logic_vector(WIDTH-1 downto 0) - ); - end component; - - signal RECV_CLK, recv_clk_locked : std_logic; - signal reg_RX_CLK, buf_RX_CLK, last_RX_CLK : std_logic; - signal reg_RX_CTRL, buf_RX_CTRL : std_logic_vector(3 downto 0); - signal reg_RX_DATA, buf_RX_DATA : std_logic_vector(15 downto 0); - - signal rx_datavalid : std_logic; - signal rx_first_packet : std_logic; - signal rx_reset : std_logic; - signal rx_parity : std_logic; - signal rx_parity_match : std_logic; - - signal rx_fifo_read_enable : std_logic; - signal rx_fifo_write_enable, next_rx_fifo_write_enable: std_logic; - signal rx_fifo_data_in, next_rx_fifo_data_in : std_logic_vector(17 downto 0); - signal rx_fifo_data_out : std_logic_vector(17 downto 0); - signal rx_fifo_full : std_logic; - signal rx_fifo_empty : std_logic; - signal rx_fifostatus_out : std_logic_vector(3 downto 0); - signal rx_valid_read_out : std_logic; - signal rx_almost_empty_out : std_logic; - signal rx_almost_full_out : std_logic; - - - signal buf_INT_DATAREADY_OUT : std_logic; - - signal rx_packet_counter : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal wait_for_startup : std_logic; - signal wait_for_startup_slow : std_logic; - signal rx_CLK_counter : std_logic_vector(4 downto 0); - signal rx_clock_detect : std_logic; - - signal med_reset : std_logic; - - signal tx_datavalid, tx_first_packet, tx_reset, tx_parity : std_logic; - signal buf_INT_DATA_IN : std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal buf_INT_READ_OUT : std_logic; - signal tx_clock_enable : std_logic; - signal next_tx_reset : std_logic; - signal buf_tx_reset : std_logic; - signal buf_tx_clk : std_logic; - signal recv_clk_real_locked : std_logic; - signal locked_counter : std_logic_vector(19 downto 0); - - signal led_counter : std_logic_vector(18 downto 0); - signal send_resync_counter : std_logic_vector(11 downto 0); - signal send_resync : std_logic; - signal rx_led, tx_led, link_led : std_logic; - signal med_error : std_logic_vector(2 downto 0); - signal trbnet_reset : std_logic; -begin - - ---Transmitter (full speed only) -------------------------- - INT_READ_OUT <= buf_INT_READ_OUT; - buf_INT_READ_OUT <= not wait_for_startup_slow and not buf_tx_reset; - - TX_DATA_OUT <= buf_INT_DATA_IN; - TX_CTRL_OUT(0) <= tx_datavalid; - TX_CTRL_OUT(1) <= tx_first_packet; - TX_CTRL_OUT(2) <= tx_reset; - TX_CTRL_OUT(3) <= tx_parity; - - tx_clock_enable <= not RESET; - - next_tx_reset <= CTRL_OP(15) or (recv_clk_real_locked and wait_for_startup_slow); - - - process(CLK) - begin - if rising_edge(CLK) then - TX_CLK_OUT <= buf_tx_clk; - end if; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - tx_datavalid <= '0'; - tx_reset <= '1'; - buf_tx_reset <= '1'; - buf_INT_DATA_IN <= (others => '0'); - tx_first_packet <= '0'; - tx_parity <= '0'; - buf_tx_clk <= '0'; - else - buf_INT_DATA_IN <= INT_DATA_IN; - tx_datavalid <= INT_DATAREADY_IN and buf_INT_READ_OUT; - if INT_PACKET_NUM_IN = c_H0 then - tx_first_packet <= '1'; - else - tx_first_packet <= '0'; - end if; - tx_reset <= buf_tx_reset; - buf_tx_reset <= next_tx_reset; - tx_parity <= xor_all(INT_DATA_IN); - buf_tx_clk <= not buf_tx_clk; - end if; - end if; - end process; - - - ---Receiver -------------------------- - RECV_CLOCK_GEN : trb_net_clock_generator - generic map( - FREQUENCY_IN => 100.0, - FREQUENCY_OUT => 200.0, - CLOCK_MULT => 2, - CLOCK_DIV => 1, - CLKIN_DIVIDE_BY_2 => false, - CLKIN_PERIOD => 10.0 - ) - port map( - RESET => RESET, - CLK_IN => CLK, - CLK_OUT => RECV_CLK, - LOCKED => recv_clk_locked - ); - -process(CLK) - begin - if rising_edge(CLK) then - if recv_clk_locked = '0' then - locked_counter <= (others => '0'); - recv_clk_real_locked <= '0'; - else - if locked_counter /= x"0000F" then - locked_counter <= locked_counter + 1; - else - recv_clk_real_locked <= '1'; - end if; - end if; - end if; - end process; - - RX_INPUT_REG : process(RECV_CLK) - begin - if rising_edge(RECV_CLK) then - reg_RX_CLK <= RX_CLK_IN; - reg_RX_CTRL <= RX_CTRL_IN; - reg_RX_DATA <= RX_DATA_IN; - end if; - end process; - - RX_REG : process(RECV_CLK, recv_clk_real_locked) - begin - if rising_edge(RECV_CLK) then - if recv_clk_real_locked = '0' then - buf_RX_CTRL <= (others => '0'); - buf_RX_CLK <= '0'; - last_RX_CLK <= '0'; - buf_RX_DATA <= (others => '0'); - else - buf_RX_CLK <= reg_RX_CLK; - buf_RX_DATA <= reg_RX_DATA; - buf_RX_CTRL <= reg_RX_CTRL; - last_RX_CLK <= buf_RX_CLK; - end if; - end if; - end process; - - rx_datavalid <= buf_RX_CTRL(0); - rx_first_packet <= buf_RX_CTRL(1); - rx_reset <= buf_RX_CTRL(2); - rx_parity <= buf_RX_CTRL(3); - - rx_parity_match <= '1' when rx_parity = xor_all(buf_RX_DATA) else '0'; - next_rx_fifo_write_enable <= (buf_RX_CLK xor last_RX_CLK) and rx_datavalid; - next_rx_fifo_data_in <= rx_first_packet & rx_parity_match & buf_RX_DATA; - - reg_fifo_in : process(RECV_CLK) - begin - if rising_edge(RECV_CLK) then - rx_fifo_write_enable <= next_rx_fifo_write_enable; - rx_fifo_data_in <= next_rx_fifo_data_in; - end if; - end process; - - RX_FIFO : trb_net_fifo_16bit_bram_dualport - port map( - read_clock_in => CLK, - write_clock_in => RECV_CLK, - read_enable_in => rx_fifo_read_enable, - write_enable_in => rx_fifo_write_enable, - fifo_gsr_in => med_reset, - write_data_in => rx_fifo_data_in, - read_data_out => rx_fifo_data_out, - full_out => rx_fifo_full, - empty_out => rx_fifo_empty, - fifostatus_out => rx_fifostatus_out, - valid_read_out => rx_valid_read_out, - almost_empty_out => rx_almost_empty_out, - almost_full_out => rx_almost_full_out - ); - - rx_fifo_read_enable <= INT_READ_IN; - - INT_DATA_OUT <= rx_fifo_data_out(15 downto 0); - INT_PACKET_NUM_OUT <= rx_packet_counter; - INT_DATAREADY_OUT <= buf_INT_DATAREADY_OUT; - - packet_counter_p : process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - rx_packet_counter <= "100"; - elsif buf_INT_DATAREADY_OUT = '1' then - if rx_packet_counter = c_max_word_number then - rx_packet_counter <= (others => '0'); - else - rx_packet_counter <= rx_packet_counter + 1; - end if; - end if; - end if; - end process; - - - rx_dataready_p : process(CLK) - begin - if rising_edge(CLK) then - if med_reset = '1' then - buf_INT_DATAREADY_OUT <= '0'; - else - buf_INT_DATAREADY_OUT <= rx_fifo_read_enable and not rx_fifo_empty; - end if; - end if; - end process; - - ---monitor link -------------------------- - process(CLK) - begin - if rising_edge(CLK) then - wait_for_startup_slow <= wait_for_startup; - end if; - end process; - - process(RECV_CLK, recv_clk_real_locked,med_reset) - begin - if rising_edge(RECV_CLK) then - if recv_clk_real_locked = '0' or med_reset = '1' or rx_clock_detect = '0' then - wait_for_startup <= '1'; - elsif rx_reset = '1' and recv_clk_locked = '1' then - wait_for_startup <= '0'; - end if; - end if; - end process; - - - ERROR_OUT_gen : process(CLK) - begin - if rising_edge(CLK) then - if recv_clk_real_locked = '0' or rx_clock_detect = '0' then - med_error <= ERROR_NC; - elsif (buf_INT_DATAREADY_OUT = '1' and rx_fifo_data_out(16) = '0') then --Parity error - med_error <= ERROR_ENCOD; - elsif (rx_packet_counter /= "100" and buf_INT_DATAREADY_OUT = '1' and rx_fifo_data_out(17) = '1') then - med_error <= ERROR_FATAL; --Counter error - else - med_error <= ERROR_OK; - end if; - end if; - end process; - - - rx_clk_detect_counter: process (RECV_CLK, recv_clk_real_locked) - begin - if rising_edge(RECV_CLK) then - if recv_clk_real_locked = '0' then - rx_CLK_counter <= (others => '0'); - rx_clock_detect <= '0'; - elsif buf_RX_CLK = '1' and last_RX_CLK = '0' then - rx_CLK_counter <= (others => '0'); - rx_clock_detect <= '1'; - elsif rx_CLK_counter /= 31 then - rx_CLK_counter <= rx_CLK_counter + 1; - elsif rx_CLK_counter = 31 then - rx_clock_detect <= '0'; - end if; - end if; - end process; - - ---STAT & CTRL Ports -------------------------- - ---LED - link_led <= rx_clock_detect and not wait_for_startup_slow; - - process(CLK) - begin - if rising_edge(CLK) then - if led_counter(18) = '1' then - led_counter <= (others => '0'); - else - led_counter <= led_counter + 1; - end if; - if rx_fifo_empty = '0' then - rx_led <= '1'; - elsif led_counter(18) = '1' then - rx_led <= '0'; - end if; - if tx_datavalid = '1' then - tx_led <= '1'; - elsif led_counter(18) = '1' then - tx_led <= '0'; - end if; - end if; - end process; - - - STAT_OP(2 downto 0) <= med_error; - STAT_OP(8 downto 3) <= (others => '0'); - STAT_OP(9) <= link_led; - STAT_OP(10) <= rx_led; - STAT_OP(11) <= tx_led; - STAT_OP(12) <= '0'; - STAT_OP(13) <= trbnet_reset; - STAT_OP(14) <= rx_clock_detect; - STAT_OP(15) <= '1' when rx_reset = '1' and wait_for_startup_slow = '0' else '0'; - - STAT(12) <= rx_parity_match; - STAT(11) <= RECV_CLK; - STAT(10) <= recv_clk_real_locked; - STAT(9) <= rx_reset; - STAT(8) <= buf_RX_CLK xor last_RX_CLK; - STAT(7) <= recv_clk_locked; - STAT(6) <= wait_for_startup; - STAT(5) <= rx_first_packet; - STAT(4) <= buf_tx_clk; --not or_all(INT_PACKET_NUM_IN); --tx_first_packet; - STAT(3) <= rx_datavalid; - STAT(2) <= next_tx_reset; - STAT(1) <= buf_RX_CLK; - - STAT(13) <= or_all(rx_fifostatus_out); - STAT(14) <= rx_valid_read_out; - STAT(15) <= rx_almost_empty_out; - STAT(16) <= rx_almost_full_out; - STAT(31 downto 17) <= (others => '0'); - - med_reset <= RESET or send_resync; - trbnet_reset <= rx_reset or not recv_clk_real_locked; - - ---detect resync - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - send_resync <= '0'; - send_resync_counter <= (others => '0'); - else - if not (send_resync_counter = 0) then - send_resync_counter <= send_resync_counter + 1; - end if; - if CTRL_OP(15) = '1' and send_resync_counter(11 downto 4) = 0 then - send_resync <= '1'; - send_resync_counter <= send_resync_counter + 1; - end if; - if send_resync_counter = x"00F" then - send_resync <= '0'; - end if; - end if; - end if; - end process; - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net16_med_tlk.vhd b/oldfiles/trb_net16_med_tlk.vhd deleted file mode 100644 index 414e14f..0000000 --- a/oldfiles/trb_net16_med_tlk.vhd +++ /dev/null @@ -1,573 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; -LIBRARY unisim; -USE UNISIM.VComponents.all; -library work; -use work.trb_net_std.all; -use work.trb_net_components.all; - - -entity trb_net16_med_tlk is - port ( - RESET : in std_logic; - CLK : in std_logic; - TLK_CLK : in std_logic; - TLK_ENABLE : out std_logic; - TLK_LCKREFN : out std_logic; - TLK_LOOPEN : out std_logic; - TLK_PRBSEN : out std_logic; - TLK_RXD : in std_logic_vector(15 downto 0); - TLK_RX_CLK : in std_logic; - TLK_RX_DV : in std_logic; - TLK_RX_ER : in std_logic; - TLK_TXD : out std_logic_vector(15 downto 0); - TLK_TX_EN : out std_logic; - TLK_TX_ER : out std_logic; - SFP_LOS : in std_logic; - SFP_TX_DIS : out std_logic; - MED_DATAREADY_IN : in std_logic; - MED_READ_IN : in std_logic; - MED_DATA_IN : in std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector (c_NUM_WIDTH-1 downto 0); - MED_DATAREADY_OUT : out std_logic; - MED_READ_OUT : out std_logic; - MED_DATA_OUT : out std_logic_vector (c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector (c_NUM_WIDTH-1 downto 0); - STAT : out std_logic_vector (63 downto 0); - STAT_MONITOR : out std_logic_vector ( 100 downto 0); - STAT_OP : out std_logic_vector (15 downto 0); - CTRL_OP : in std_logic_vector (15 downto 0) - --connect STAT(0) to LED - ); -end trb_net16_med_tlk; - -architecture trb_net16_med_tlk_arch of trb_net16_med_tlk is - - signal fifo_din_a : std_logic_vector(17 downto 0); - signal fifo_dout_a : std_logic_vector(17 downto 0); - signal fifo_wr_en_a : std_logic; - signal fifo_rd_en_a : std_logic; - signal fifo_empty_a : std_logic; - signal fifo_full_a : std_logic; - signal fifo_din_m : std_logic_vector(17 downto 0); - signal fifo_dout_m : std_logic_vector(17 downto 0); - signal fifo_rd_en_m : std_logic; - signal fifo_wr_en_m : std_logic; - signal fifo_empty_m : std_logic; - signal fifo_full_m : std_logic; - signal fifo_valid_read_m, fifo_valid_read_a : std_logic; - signal fifo_almost_full_m, fifo_almost_full_a : std_logic; - signal fifo_almost_empty_m, fifo_almost_empty_a : std_logic; - - - signal fifo_reset : std_logic; - signal fifo_status_a : std_logic_vector(3 downto 0); - signal fifo_status_m : std_logic_vector(3 downto 0); - signal buf_MED_PACKET_NUM_OUT : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal buf_MED_READ_OUT : std_logic; - signal buf_MED_DATAREADY_OUT : std_logic; - signal rx_allow : std_logic; - signal tx_allow : std_logic; - signal internal_reset : std_logic; - - - signal reg_RXD : std_logic_vector(15 downto 0); - signal reg_RX_DV : std_logic; - signal reg_RX_ER : std_logic; - signal reg_TXD : std_logic_vector(15 downto 0); - signal reg_TX_EN : std_logic; - signal reg_TX_ER : std_logic; - - signal TLK_CLK_neg : std_logic; - signal CLK_FB_Out, FB_CLK : std_logic; - - type tlk_state_t is (RESETTING, WAIT_FOR_RX_LOCK, WAIT_FOR_TX_ALLOW, WORKING); - signal current_state, next_state : tlk_state_t; - signal next_tx_allow, next_rx_allow : std_logic:='1'; - signal counter, next_counter : std_logic_vector(28 downto 0); - signal next_internal_reset : std_logic; - signal buf_MED_ERROR_OUT, next_MED_ERROR_OUT : std_logic_vector(2 downto 0); - signal state_bits : std_logic_vector(2 downto 0); - signal counter_reset : std_logic; - - signal reg_SFP_LOS : std_logic; - - signal send_reset : std_logic; - signal make_reset : std_logic; - signal send_reset_counter : std_logic_vector(6 downto 0); - signal send_reset_q : std_logic; - signal make_reset_q : std_logic; - signal sending_reset: std_logic; - - signal buf_RESET_TRBNET_OUT : std_logic; - - signal led_counter : std_logic_vector(18 downto 0); - signal rx_led, tx_led, link_led : std_logic; - - signal comb_fifo_wr_en_a : std_logic; - signal comb_fifo_din_a : std_logic_vector(17 downto 0); - -begin - - TLK_ENABLE <= not RESET; - TLK_LCKREFN <= '1'; - TLK_PRBSEN <= '0'; - TLK_LOOPEN <= '0'; - SFP_TX_DIS <= RESET; - - - - ---------------------------------------------- ---Receiver FIFO ---------------------------------------------- - - FIFO_OPT_TO_MED: trb_net_fifo_16bit_bram_dualport - generic map( - USE_STATUS_FLAGS => c_NO - ) - port map( - read_clock_in => CLK, - write_clock_in => TLK_RX_CLK, - read_enable_in => fifo_rd_en_a, - write_enable_in => fifo_wr_en_a, - fifo_gsr_in => fifo_reset, - write_data_in => fifo_din_a, - read_data_out => fifo_dout_a, - full_out => fifo_full_a, - empty_out => fifo_empty_a, - fifostatus_out => fifo_status_a, - valid_read_out => fifo_valid_read_a, - almost_empty_out=> fifo_almost_empty_a, - almost_full_out => fifo_almost_full_a - ); - - fifo_rd_en_a <= rx_allow; - fifo_reset <= internal_reset; - - - buf_MED_READ_OUT <= tx_allow; - buf_MED_DATAREADY_OUT <= fifo_valid_read_a and fifo_dout_a(16) and not fifo_dout_a(17) and rx_allow; - - - PROC_PACKET_COUNTER : process(CLK) - begin - if rising_edge(CLK) then - if internal_reset = '1' or buf_RESET_TRBNET_OUT = '1' then - buf_MED_PACKET_NUM_OUT <= c_H0; - elsif buf_MED_DATAREADY_OUT = '1' then - if buf_MED_PACKET_NUM_OUT = c_max_word_number then - buf_MED_PACKET_NUM_OUT <= (others => '0'); - else - buf_MED_PACKET_NUM_OUT <= buf_MED_PACKET_NUM_OUT + 1; - end if; - end if; - end if; - end process; - - REG_MED_OUTPUTS : process(CLK) - begin - if rising_edge(CLK) then - MED_PACKET_NUM_OUT <= buf_MED_PACKET_NUM_OUT; - MED_DATAREADY_OUT <= buf_MED_DATAREADY_OUT; - MED_DATA_OUT <= fifo_dout_a(15 downto 0); - MED_READ_OUT <= buf_MED_READ_OUT; - end if; - end process; - - - - REG_RX_FIFO_INPUTS : process(TLK_RX_CLK) - begin - if rising_edge(TLK_RX_CLK) then - fifo_wr_en_a <= (reg_RX_DV and not reg_RX_ER) and rx_allow; - fifo_din_a <= reg_RX_ER & reg_RX_DV & reg_RXD; - end if; - end process; - - SYNC_TLK_RX_INPUT : process(TLK_RX_CLK) - begin - if rising_edge(TLK_RX_CLK) then - reg_RXD <= TLK_RXD; - reg_RX_DV <= TLK_RX_DV; - reg_RX_ER <= TLK_RX_ER; - end if; - end process; - - - ---------------------------------------------- ---Detect Reset (Error Propagation) ---------------------------------------------- - - - process(TLK_RX_CLK) - begin - if rising_edge(TLK_RX_CLK) then - if RESET = '1' then - send_reset_counter <= (others => '0'); - send_reset <= '0'; - make_reset <= '0'; - else - if reg_RX_DV = '1' and reg_RX_ER = '1' and send_reset_counter(5) = '0' then - send_reset_counter <= send_reset_counter + 1; - elsif reg_RX_ER = '0' then - send_reset_counter <= (others => '0'); - end if; - if send_reset = '1' and reg_RX_ER = '0' then --do reset - make_reset <= '1'; - send_reset <= '0'; - elsif send_reset_counter(5) = '1' and reg_RX_ER = '1' then --send reset - send_reset <= '1'; - make_reset <= '0'; - else - send_reset <= '0'; - make_reset <= '0'; - end if; - end if; - end if; - end process; - - SYNC_SEND_RESET : signal_sync - generic map( - WIDTH => 2, - DEPTH => 2 - ) - port map( - RESET => RESET, - CLK0 => CLK, - CLK1 => CLK, - D_IN(0) => send_reset, - D_IN(1) => make_reset, - D_OUT(0) => send_reset_q, - D_OUT(1) => make_reset_q - ); - - SYNC_SENDING_RESET : signal_sync - generic map( - WIDTH => 1, - DEPTH => 2 - ) - port map( - RESET => RESET, - CLK0 => TLK_CLK_neg, - CLK1 => TLK_CLK_neg, - D_IN(0) => CTRL_OP(15), - D_OUT(0) => sending_reset - ); - - - SYNC_SFP_LOS : signal_sync - generic map( - WIDTH => 1, - DEPTH => 2 - ) - port map( - RESET => RESET, - CLK0 => CLK, - CLK1 => CLK, - D_IN(0) => SFP_LOS, - D_OUT(0) => reg_SFP_LOS - ); - ---------------------------------------------- ---A DCM - not really used ---------------------------------------------- - -U_DCM_Transmitter: DCM --no_sim-- - generic map( --no_sim-- - CLKIN_PERIOD => 10.00, -- 30.30ns--no_sim-- - STARTUP_WAIT => FALSE,--no_sim-- - PHASE_SHIFT => 0,--no_sim-- - DESKEW_ADJUST => "SOURCE_SYNCHRONOUS",--no_sim-- - CLKOUT_PHASE_SHIFT => "FIXED"--no_sim-- - )--no_sim-- - port map (--no_sim-- - CLKIN => TLK_CLK,--no_sim-- - CLKFB => FB_CLK,--no_sim-- - DSSEN => '0',--no_sim-- - PSINCDEC => '0',--no_sim-- - PSEN => '0',--no_sim-- - PSCLK => '0',--no_sim-- - RST => RESET,--no_sim-- - CLK0 => CLK_FB_Out, -- for feedback--no_sim-- - CLK90=> open,--no_sim-- - LOCKED => open--no_sim-- - );--no_sim-- --- -U0_BUFG: BUFG port map (I => CLK_FB_Out, O => TLK_CLK_neg);--no_sim-- -U1_BUFG: BUFG port map (I => CLK_FB_Out, O => FB_CLK);--no_sim-- ---sim--TLK_CLK_neg <= not TLK_CLK; - - - ---------------------------------------------- ---TX FIFO ---------------------------------------------- - - FIFO_MED_TO_OPT: trb_net_fifo_16bit_bram_dualport - generic map( - USE_STATUS_FLAGS => c_NO - ) - port map( - read_clock_in => TLK_CLK_neg, - write_clock_in => CLK, - read_enable_in => fifo_rd_en_m, - write_enable_in => fifo_wr_en_m, - fifo_gsr_in => fifo_reset, - write_data_in => fifo_din_m, - read_data_out => fifo_dout_m, - valid_read_out => fifo_valid_read_m, - full_out => fifo_full_m, - empty_out => fifo_empty_m, - fifostatus_out => fifo_status_m, - almost_empty_out=> fifo_almost_empty_m, - almost_full_out => fifo_almost_full_m - ); - - - - REG_TLK_TX_OUT : process(TLK_CLK_neg) - begin - if rising_edge(TLK_CLK_neg) then - TLK_TX_EN <= reg_TX_EN; - TLK_TX_ER <= reg_TX_ER; - TLK_TXD <= reg_TXD; - end if; - end process; - - REG_TLK_TX_buffers : process(TLK_CLK_neg) - begin - if rising_edge(TLK_CLK_neg) then - reg_TXD <= fifo_dout_m(15 downto 0); - reg_TX_ER <= sending_reset; - reg_TX_EN <= (fifo_valid_read_m and fifo_dout_m(16)) or sending_reset; - end if; - end process; - - PROC_TX_FIFO_INPUT : process(CLK) - begin - if rising_edge(CLK) then - fifo_wr_en_m <= (MED_DATAREADY_IN and buf_MED_READ_OUT); - fifo_din_m <= MED_PACKET_NUM_IN(2) & (MED_DATAREADY_IN and buf_MED_READ_OUT) & MED_DATA_IN; - end if; - end process; - - fifo_rd_en_m <= tx_allow; - - - - - ---------------------------------------------- ---Link State Machine ---------------------------------------------- - - medium_states : process(current_state, tx_allow, rx_allow, internal_reset, MED_READ_IN, - reg_RX_ER, reg_RX_DV, buf_MED_ERROR_OUT, counter, make_reset_q) - begin - next_state <= current_state; - next_tx_allow <= tx_allow; - next_rx_allow <= rx_allow; - next_internal_reset <= internal_reset; - next_counter <= counter + 1; - counter_reset <= reg_RX_ER and not reg_RX_DV; - next_MED_ERROR_OUT <= buf_MED_ERROR_OUT; - - case current_state is - when RESETTING => - next_MED_ERROR_OUT <= ERROR_NC; - next_internal_reset <= '1'; - next_rx_allow <= '0'; - next_tx_allow <= '0'; - counter_reset <= '0'; - if counter(16) = '1' then - counter_reset <= '1'; - next_state <= WAIT_FOR_RX_LOCK; - next_internal_reset <= '0'; - end if; - when WAIT_FOR_RX_LOCK => - next_internal_reset <= '0'; - if counter(28) = '1' then - counter_reset <= '1'; - next_rx_allow <= '1'; - next_state <= WAIT_FOR_TX_ALLOW; - end if; - when WAIT_FOR_TX_ALLOW => - next_MED_ERROR_OUT <= ERROR_WAIT; - next_internal_reset <= '0'; - if counter(28) = '1' then - next_tx_allow <= '1'; - next_state <= WORKING; - end if; - when WORKING => - next_MED_ERROR_OUT <= ERROR_OK; - next_tx_allow <= '1'; - next_rx_allow <= '1'; - next_internal_reset <= '0'; - end case; - if reg_RX_ER = '1' and reg_RX_DV = '0' and internal_reset = '0' then - next_rx_allow <= '0'; - next_tx_allow <= '0'; - next_state <= WAIT_FOR_RX_LOCK; - next_MED_ERROR_OUT <= ERROR_WAIT; - end if; - if MED_READ_IN = '0' then - next_MED_ERROR_OUT <= ERROR_NC; - end if; - if make_reset_q = '1' or reg_SFP_LOS = '1' then - next_state <= RESETTING; - next_MED_ERROR_OUT <= ERROR_NC; - counter_reset <= '1'; - end if; - end process; - - process(current_state) - begin - case current_state is - when RESETTING => state_bits <= "000"; - when WAIT_FOR_RX_LOCK => state_bits <= "001"; - when WAIT_FOR_TX_ALLOW => state_bits <= "011"; - when WORKING => state_bits <= "100"; - when others => state_bits <= "111"; - end case; - end process; - - - - states_reg : process(CLK) - begin - if rising_edge(CLK) then - tx_allow <= next_tx_allow; - rx_allow <= next_rx_allow; - end if; - end process; - - states_reg_counter : process(CLK) - begin - if rising_edge(CLK) then - if counter_reset = '1' then - counter <= (others => '0'); - else - counter <= next_counter; - end if; - end if; - end process; - - states_reg_2 : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - current_state <= RESETTING;--no_sim-- ---sim-- current_state <= WORKING; - internal_reset <= '1'; - buf_MED_ERROR_OUT <= ERROR_NC; - else - current_state <= next_state; - internal_reset <= next_internal_reset; - buf_MED_ERROR_OUT <= next_MED_ERROR_OUT; - end if; - end if; - end process; - - - - - ---------------------------------------------- ---STAT_OP & LED ---------------------------------------------- - process(CLK) - begin - if rising_edge(CLK) then - if led_counter(18) = '1' then - led_counter <= (others => '0'); - else - led_counter <= led_counter + 1; - end if; - if buf_med_dataready_out = '1' then - rx_led <= '1'; - elsif led_counter(18) = '1' then - rx_led <= '0'; - end if; - - if MED_DATAREADY_IN = '1' then - tx_led <= '1'; - elsif led_counter(18) = '1' then - tx_led <= '0'; - end if; - - end if; - end process; - - link_led <= (counter(24) or tx_allow) and not reg_sfp_los; - - stat_op(2 downto 0) <= buf_MED_ERROR_OUT; - stat_op(8 downto 3) <= (others => '0'); -- unused - stat_op(9) <= link_led; - stat_op(10) <= rx_led; --rx led - stat_op(11) <= tx_led; --tx led - stat_op(12) <= '0'; -- unused - stat_op(13) <= make_reset_q; - stat_op(14) <= reg_SFP_LOS or make_reset_q; -- reset out - stat_op(15) <= send_reset_q; -- protocol error - ---------------------------------------------- ---Debugging ---------------------------------------------- - - - STAT(0) <= counter(24) or tx_allow; - STAT(1) <= rx_allow; - STAT(2) <= tx_allow; - STAT(3) <= fifo_wr_en_a; - STAT(4) <= fifo_rd_en_a; - STAT(5) <= fifo_empty_a; - STAT(6) <= fifo_rd_en_m; - STAT(7) <= fifo_empty_m; - STAT(8) <= fifo_full_a; - STAT(9) <= fifo_full_m; - STAT(10)<= fifo_dout_m(14); - STAT(11)<= fifo_dout_a(14); - STAT(12)<= fifo_din_a(14); --- STAT(11)<= last_fifo_rd_en_a; - STAT(13) <= internal_reset; - STAT(14) <= reg_RX_DV; - STAT(15) <= reg_RX_ER; - STAT(31 downto 16) <= reg_RXD; - STAT(32) <= fifo_valid_read_m; - STAT(33) <= fifo_valid_read_a; - STAT(36 downto 34) <= state_bits; - STAT(40 downto 37) <= fifo_status_a; - STAT(44 downto 41) <= fifo_status_m; - STAT(48 downto 45) <= fifo_dout_m(3 downto 0); - STAT(50 downto 49) <= fifo_dout_m(17 downto 16); - STAT(54 downto 51) <= fifo_din_a(3 downto 0); - STAT(56 downto 55) <= fifo_din_a(17 downto 16); - STAT(57) <= make_reset; - STAT(58) <= send_reset; - STAT(59) <= TLK_CLK_neg; - STAT(60) <= fifo_wr_en_m; - STAT(63 downto 61) <= send_reset_counter(2 downto 0); - --STAT(63 downto 57) <= (others => '0'); - - STAT_MONITOR(17 downto 0) <= fifo_din_a; - STAT_MONITOR(18) <= fifo_almost_full_m; - STAT_MONITOR(19) <= fifo_almost_full_a; - STAT_MONITOR(20) <= fifo_almost_empty_m; - STAT_MONITOR(21) <= fifo_almost_empty_a; - STAT_MONITOR(37 downto 22) <= CTRL_OP; - STAT_MONITOR(45 downto 38) <= (others => '0'); - STAT_MONITOR(46) <= reg_TX_ER; - STAT_MONITOR(47) <= reg_TX_EN; - STAT_MONITOR(63 downto 48) <= reg_TXD; - STAT_MONITOR(81 downto 64) <= fifo_din_a; -- RX_ER & RX_DV & RX_DATA - STAT_MONITOR(88 downto 82) <= send_reset_counter; - STAT_MONITOR(100 downto 89) <= (others => '0'); - - - - -end architecture; diff --git a/oldfiles/trb_net16_rx_packets.vhd b/oldfiles/trb_net16_rx_packets.vhd deleted file mode 100755 index a585c00..0000000 --- a/oldfiles/trb_net16_rx_packets.vhd +++ /dev/null @@ -1,440 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library work; -use work.trb_net_std.all; ---use work.trb_net_components.all; - -entity trb_net16_rx_packets is -port( - -- Resets - RESET_IN : in std_logic; - QUAD_RST_IN : in std_logic; - -- data stream from SerDes - CLK_IN : in std_logic; -- SerDes RX clock - RX_ALLOW_IN : in std_logic; - RX_DATA_IN : in std_logic_vector(7 downto 0); - RX_K_IN : in std_logic; - -- media interface - SYSCLK_IN : in std_logic; -- 100MHz master clock - MED_DATA_OUT : out std_logic_vector(15 downto 0); - MED_DATAREADY_OUT : out std_logic; - MED_READ_IN : in std_logic; - MED_PACKET_NUM_OUT : out std_logic_vector(2 downto 0); - -- reset handling - SEND_RESET_WORDS_OUT : out std_logic; - MAKE_TRBNET_RESET_OUT : out std_logic; - -- Status signals - PACKET_TIMEOUT_OUT : out std_logic; - -- Debug signals - BSM_OUT : out std_logic_vector(3 downto 0); - DBG_OUT : out std_logic_vector(15 downto 0) -); -end entity trb_net16_rx_packets; - - -architecture behavioral of trb_net16_rx_packets is - --- components -component trb_net_fifo_8bit_16bit_bram_dualport is -port( - READ_CLOCK_IN : in std_logic; - WRITE_CLOCK_IN : in std_logic; - READ_ENABLE_IN : in std_logic; - WRITE_ENABLE_IN : in std_logic; - FIFO_GSR_IN : in std_logic; - WRITE_DATA_IN : in std_logic_vector(7 downto 0); - READ_DATA_OUT : out std_logic_vector(15 downto 0); - FULL_OUT : out std_logic; - EMPTY_OUT : out std_logic; - WCNT_OUT : out std_logic_vector(9 downto 0); - RCNT_OUT : out std_logic_vector(8 downto 0) -); -end component trb_net_fifo_8bit_16bit_bram_dualport; - --- State description: --- --- IDLE: wait for any data to be written into the FIFO --- RD1 : first word prefetch --- RD2 : first word output reg, second word prefetch, wait state for full packet in FIFO --- RDI : generates initial dataready_out, wait state for handshake of first data word --- RD3 : second word output reg, third word prefetch, wait state for handshake of second data word --- RD4 : third word output reg, fourth word prefetch, wait state for handshake of third data word --- RD5 : fourth word output reg, fifth word prefetch, wait state for handshake of forth data word --- => decision: continous data stream or stalling as FIFO runs empty! --- RDO : fifth word output reg, wait state for handshake of fifth data word, can also resume transmission --- if new data is available in FIFO --- RDW : fifth word output reg, first word prefetch, wait state for handshake of fifth data word, --- continue data stream or stall if for complete packet - --- state declarations -type STATES is (IDLE, RD1, RD2, RDI, RD3, RD4, RD5, RDO, RDW, TOC, CLEAN); -signal CURRENT_STATE, NEXT_STATE: STATES; - --- normal signals -signal bsm_x : std_logic_vector(3 downto 0); -signal bsm : std_logic_vector(3 downto 0); -signal update_x : std_logic; -signal med_dataready_x : std_logic; -signal med_dataready : std_logic; -signal med_data : std_logic_vector(15 downto 0); - -signal buf_rx_data : std_logic_vector(7 downto 0); -signal buf_rx_k : std_logic; - -signal fifo_wr_en : std_logic; -signal fifo_rd_en_x : std_logic; -signal fifo_wr_data : std_logic_vector(7 downto 0); -signal fifo_rd_data : std_logic_vector(15 downto 0); -signal fifo_reset : std_logic; -signal fifo_rcnt_stdlv : std_logic_vector(8 downto 0); -signal fifo_rcnt : unsigned(8 downto 0); -signal fifo_rst_x : std_logic; -signal fifo_rst : std_logic; - -signal rx_counter : unsigned(2 downto 0); - -signal is_idle_word : std_logic; -signal rx_starting : std_logic; -signal send_reset_words : std_logic; -signal make_trbnet_reset : std_logic; -signal reset_word_cnt : unsigned(4 downto 0); - -signal timeout_ctr : unsigned(9 downto 0); -signal rst_toc_x : std_logic; -signal rst_toc : std_logic; -signal ce_toc_x : std_logic; -signal ce_toc : std_logic; -signal toc_done_x : std_logic; -signal toc_done : std_logic; - -signal debug : std_logic_vector(15 downto 0); - -begin - ----------------------------------------------------------------------- --- FIFO write process ----------------------------------------------------------------------- -THE_WRITE_RX_FIFO_PROC: process( CLK_IN ) -begin - if( rising_edge(CLK_IN) ) then - buf_rx_data <= RX_DATA_IN; - buf_rx_k <= RX_K_IN; - if( (RESET_IN = '1') or (RX_ALLOW_IN = '0') ) then - fifo_wr_en <= '0'; - is_idle_word <= '1'; - rx_starting <= '1'; - else - fifo_wr_data <= buf_rx_data; - if( (buf_rx_k = '0') and (is_idle_word = '0') and (rx_starting = '0') ) then - fifo_wr_en <= '1'; - else - fifo_wr_en <= '0'; - end if; - if ( buf_rx_k = '1' ) then - is_idle_word <= '1'; - rx_starting <= '0'; - elsif( (buf_rx_k = '0') and (is_idle_word = '1') ) then - is_idle_word <= '0'; - end if; - end if; - end if; -end process THE_WRITE_RX_FIFO_PROC; - ----------------------------------------------------------------------- --- TRBnet reset handling ----------------------------------------------------------------------- -THE_CNT_RESET_PROC: process( CLK_IN ) -begin - if( rising_edge(CLK_IN) ) then - if( RESET_IN = '1' ) then - send_reset_words <= '0'; - make_trbnet_reset <= '0'; - reset_word_cnt <= (others => '0'); - else - send_reset_words <= '0'; - make_trbnet_reset <= '0'; - if( (buf_rx_data = x"FE") and (buf_rx_k = '1') ) then - if( reset_word_cnt(4) = '0' ) then - reset_word_cnt <= reset_word_cnt + 1; - else - send_reset_words <= '1'; - end if; - else - reset_word_cnt <= (others => '0'); - make_trbnet_reset <= reset_word_cnt(4); - end if; - end if; - end if; -end process; - ----------------------------------------------------------------------- --- the RX FIFO itself ----------------------------------------------------------------------- -THE_RX_FIFO: trb_net_fifo_8bit_16bit_bram_dualport -port map( - READ_CLOCK_IN => SYSCLK_IN, - WRITE_CLOCK_IN => CLK_IN, - READ_ENABLE_IN => fifo_rd_en_x, - WRITE_ENABLE_IN => fifo_wr_en, - FIFO_GSR_IN => fifo_reset, - WRITE_DATA_IN => fifo_wr_data, - READ_DATA_OUT => fifo_rd_data, - FULL_OUT => open, - EMPTY_OUT => open, - WCNT_OUT => open, -- not needed - RCNT_OUT => fifo_rcnt_stdlv -); - -fifo_reset <= RESET_IN or QUAD_RST_IN or not RX_ALLOW_IN or fifo_rst; - -fifo_rcnt <= unsigned(fifo_rcnt_stdlv); - ----------------------------------------------------------------------- --- RX packet state machine ----------------------------------------------------------------------- --- state registers -STATE_MEM: process( SYSCLK_IN ) -begin - if( rising_edge(SYSCLK_IN) ) then - if( RESET_IN = '1' ) then - CURRENT_STATE <= IDLE; - med_dataready <= '0'; - ce_toc <= '0'; - rst_toc <= '0'; - fifo_rst <= '0'; - bsm <= (others => '0'); - else - CURRENT_STATE <= NEXT_STATE; - med_dataready <= med_dataready_x; - ce_toc <= ce_toc_x; - rst_toc <= rst_toc_x; - fifo_rst <= fifo_rst_x; - bsm <= bsm_x; - end if; - end if; -end process STATE_MEM; - --- state transitions -STATE_TRANSFORM: process( CURRENT_STATE, fifo_rcnt, MED_READ_IN, med_dataready, toc_done ) -begin - NEXT_STATE <= IDLE; -- avoid latches - fifo_rd_en_x <= '0'; - med_dataready_x <= '0'; - update_x <= '0'; - ce_toc_x <= '0'; - rst_toc_x <= '0'; - fifo_rst_x <= '0'; - case CURRENT_STATE is - when IDLE => if( fifo_rcnt > 0 ) then - -- we have at least one data word in FIFO, so we prefetch it - NEXT_STATE <= RD1; - fifo_rd_en_x <= '1'; - ce_toc_x <= '1'; - else - NEXT_STATE <= IDLE; - end if; - when RD1 => if ( fifo_rcnt > 1 ) then -- was 0 - -- second data word is available in FIFO, so we prefetch it and - -- forward the first word to the output register - NEXT_STATE <= RD2; - fifo_rd_en_x <= '1'; - update_x <= '1'; - ce_toc_x <= '1'; - elsif( toc_done = '1' ) then - NEXT_STATE <= TOC; - rst_toc_x <= '1'; - fifo_rst_x <= '1'; - else - NEXT_STATE <= RD1; - ce_toc_x <= '1'; - end if; - when RD2 => if ( fifo_rcnt > 2 ) then - -- at least all three missing words in FIFO... so we go ahead and notify full packet availability - NEXT_STATE <= RDI; - med_dataready_x <= '1'; - rst_toc_x <= '1'; - elsif( toc_done = '1' ) then - NEXT_STATE <= TOC; - rst_toc_x <= '1'; - fifo_rst_x <= '1'; - else - NEXT_STATE <= RD2; - ce_toc_x <= '1'; - end if; - when RDI => med_dataready_x <= '1'; - if( MED_READ_IN = '1' ) then - -- first word of packet has been transfered, update output register and prefetch next data word - NEXT_STATE <= RD3; - fifo_rd_en_x <= '1'; - update_x <= '1'; - else - NEXT_STATE <= RDI; - end if; - when RD3 => med_dataready_x <= '1'; - if( MED_READ_IN = '1' ) then - -- second word of packet has been transfered, update output register and prefetch next data word - NEXT_STATE <= RD4; - fifo_rd_en_x <= '1'; - update_x <= '1'; - else - NEXT_STATE <= RD3; - end if; - when RD4 => med_dataready_x <= '1'; - -- third word of packet has been transfered, update output register and prefetch next data word - if( MED_READ_IN = '1' ) then - NEXT_STATE <= RD5; - fifo_rd_en_x <= '1'; - update_x <= '1'; - else - NEXT_STATE <= RD4; - end if; - when RD5 => med_dataready_x <= '1'; - -- DANGER. This is the key state for decisions here. - -- There are many ways to do it the wrong way, depending on the FIFO fill level. - if ( (MED_READ_IN = '1') and (fifo_rcnt < 3) ) then -- was 2, changed due to RCNT latency - -- fourth word of packet has been transfered, and FIFO has not seen any new packet word. - -- so we update output register only, no prefetch - NEXT_STATE <= RDO; - update_x <= '1'; - elsif( (MED_READ_IN = '1') and (fifo_rcnt > 2) ) then -- was 1, changed due to RCNT latency - -- fourth word of packet DONE, new packet data already in the FIFO - -- so we can prefetch on data word already and update the output register - NEXT_STATE <= RDW; - fifo_rd_en_x <= '1'; - update_x <= '1'; - else - NEXT_STATE <= RD5; - end if; - when RDO => if ( (MED_READ_IN = '1') and (fifo_rcnt = 0) ) then - -- last word of packet has been transfered, and no new data words to handle. - -- we keep the last transfered word in the output register and wait for new packets to arrive. - NEXT_STATE <= IDLE; - elsif( (MED_READ_IN = '1') and (fifo_rcnt > 0) ) then - -- last word of packet has been transfered, and a new packet data available. - -- so we enter the prefetch phase again. - NEXT_STATE <= RD1; - fifo_rd_en_x <= '1'; - else - NEXT_STATE <= RDO; - med_dataready_x <= '1'; - end if; - when RDW => if ( (MED_READ_IN = '1') and (fifo_rcnt > 3) ) then - -- last word of packet has been transfered, complete packet in FIFO, so we can go ahead. - NEXT_STATE <= RDI; - fifo_rd_en_x <= '1'; - update_x <= '1'; - med_dataready_x <= '1'; - elsif( (MED_READ_IN = '1') and (fifo_rcnt < 4 ) ) then - -- last word of packet has been transfered, but new packet not complete yet. - NEXT_STATE <= RD2; - fifo_rd_en_x <= '1'; - update_x <= '1'; - else - NEXT_STATE <= RDW; - med_dataready_x <= '1'; - end if; - when TOC => NEXT_STATE <= CLEAN; - fifo_rst_x <= '1'; - when CLEAN => NEXT_STATE <= IDLE; - - when others => NEXT_STATE <= IDLE; - end case; -end process STATE_TRANSFORM; - --- just for debugging -THE_DECODE_PROC: process( NEXT_STATE ) -begin - case NEXT_STATE is - when IDLE => bsm_x <= x"0"; - when RD1 => bsm_x <= x"1"; - when RD2 => bsm_x <= x"2"; - when RDI => bsm_x <= x"3"; - when RD3 => bsm_x <= x"4"; - when RD4 => bsm_x <= x"5"; - when RD5 => bsm_x <= x"6"; - when RDO => bsm_x <= x"7"; - when RDW => bsm_x <= x"8"; - when TOC => bsm_x <= x"9"; - when CLEAN => bsm_x <= x"a"; - when others => bsm_x <= x"f"; - end case; -end process THE_DECODE_PROC; - -THE_SYNC_PROC: process( SYSCLK_IN ) -begin - if( rising_edge(SYSCLK_IN) ) then - if( update_x = '1' ) then - med_data <= fifo_rd_data; - end if; - end if; -end process THE_SYNC_PROC; - ----------------------------------------------------------------------- --- RX packet counter ----------------------------------------------------------------------- -THE_RX_PACKETS_PROC: process( SYSCLK_IN ) -begin - if( rising_edge(SYSCLK_IN) ) then - if( (RESET_IN = '1') or (RX_ALLOW_IN = '0') ) then - rx_counter <= unsigned(c_H0); - else - if( (med_dataready = '1') and (MED_READ_IN = '1') ) then -- modified - if( rx_counter = unsigned(c_max_word_number) ) then - rx_counter <= (others => '0'); - else - rx_counter <= rx_counter + 1; - end if; - end if; - end if; - end if; -end process THE_RX_PACKETS_PROC; - ----------------------------------------------------------------------- --- Timeout counter ----------------------------------------------------------------------- -THE_TOC_PROC: process( SYSCLK_IN ) -begin - if( rising_edge(SYSCLK_IN) ) then - toc_done <= toc_done_x; - if ( (RESET_IN = '1') or (rst_toc = '1') ) then - timeout_ctr <= (others => '0'); - elsif( (ce_toc = '1') and (toc_done = '0') ) then - timeout_ctr <= timeout_ctr + 1; - end if; - end if; -end process THE_TOC_PROC; - -toc_done_x <= '1' when ( timeout_ctr(9 downto 2) = b"11_1111_11" ) else '0'; - ----------------------------------------------------------------------- --- Debug signals ----------------------------------------------------------------------- -debug(15 downto 13) <= (others => '0'); -debug(12 downto 4) <= fifo_rcnt_stdlv; -debug(3) <= toc_done; -debug(2) <= ce_toc; -debug(1) <= rst_toc; -debug(0) <= fifo_rst; - ---debug(15 downto 8) <= fifo_rcnt_stdlv(7 downto 0); ---debug(7 downto 2) <= (others => '0'); ---debug(1) <= update_x; ---debug(0) <= fifo_rd_en_x; - ----------------------------------------------------------------------- --- Output signals ----------------------------------------------------------------------- -SEND_RESET_WORDS_OUT <= send_reset_words; -MAKE_TRBNET_RESET_OUT <= make_trbnet_reset; -PACKET_TIMEOUT_OUT <= fifo_rst; - -MED_DATAREADY_OUT <= med_dataready; -MED_DATA_OUT <= med_data; -MED_PACKET_NUM_OUT <= std_logic_vector(rx_counter); - -BSM_OUT <= bsm; -DBG_OUT <= debug; - -end behavioral; \ No newline at end of file diff --git a/oldfiles/trb_net_18_to_16_converter.vhd b/oldfiles/trb_net_18_to_16_converter.vhd deleted file mode 100644 index 467251a..0000000 --- a/oldfiles/trb_net_18_to_16_converter.vhd +++ /dev/null @@ -1,299 +0,0 @@ - ------------------------------------ ---D18 data structure --- XXXXXXXX0+++++++ 00 --- 1+++++++2+++++++ 01 --- 3+++++++4+++++++ 10 --- 5+++++++6+++++++ 11 ------------------------------------- ---X unused, / error+parity, + data ------------------------------------- - - - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_18_to_16_converter is - generic ( VERSION : integer := 0); --Version of included sbufs - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - D18_DATAREADY_IN: in STD_LOGIC; - D18_PACKET_NUM_IN: in STD_LOGIC_VECTOR(1 downto 0); - D18_DATA_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Data word - D18_READ_OUT: out STD_LOGIC; - - D16_DATAREADY_OUT: out STD_LOGIC; - D16_DATA_OUT: out STD_LOGIC_VECTOR (15 downto 0); -- Data word - D16_READ_IN: in STD_LOGIC; - D16_PACKET_NUM_OUT: out STD_LOGIC_VECTOR(1 downto 0); - - D18_DATAREADY_OUT: out STD_LOGIC; - D18_PACKET_NUM_OUT: out STD_LOGIC_VECTOR(1 downto 0); - D18_DATA_OUT: out STD_LOGIC_VECTOR (15 downto 0); -- Data word - D18_READ_IN: in STD_LOGIC; - - D16_DATAREADY_IN: in STD_LOGIC; - D16_DATA_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Data word - D16_READ_OUT: out STD_LOGIC; - D16_PACKET_NUM_IN: in STD_LOGIC_VECTOR(1 downto 0) - ); -end entity; - -architecture trb_net_18_to_16_converter_arch of trb_net_18_to_16_converter is - component trb_net_sbuf - generic (DATA_WIDTH : integer := 16; - VERSION: integer := 0); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- port to combinatorial logic - COMB_DATAREADY_IN: in STD_LOGIC; --comb logic provides data word - COMB_next_READ_OUT: out STD_LOGIC; --sbuf can read in NEXT cycle - COMB_READ_IN: in STD_LOGIC; --comb logic IS reading - -- the COMB_next_READ_OUT should be connected via comb. logic to a register - -- to provide COMB_READ_IN (feedback path with 1 cycle delay) - -- The "REAL" READ_OUT can be constructed in the comb via COMB_next_READ_ - -- OUT and the READ_IN: If one of these is ='1', no problem to read in next - -- step. - COMB_DATA_IN: in STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - -- Port to synchronous output. - SYN_DATAREADY_OUT: out STD_LOGIC; - SYN_DATA_OUT: out STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - SYN_READ_IN: in STD_LOGIC; - -- Status and control port - STAT_BUFFER: out STD_LOGIC - ); - end component; - -signal dbuf18_comb_dataready_in : std_logic; -signal dbuf18_next_read_out : std_logic; -signal dbuf18_comb_read_in : std_logic; -signal dbuf18_comb_data_in, buf_D16_DATA_OUT : std_logic_vector(17 downto 0); -signal dbuf18_status : std_logic_vector(31 downto 0); -signal buffer_dbuf18_comb_data_in : std_logic_vector(7 downto 0); -signal next_buffer_dbuf18_comb_data_in : std_logic_vector(7 downto 0); -signal next_buf_D18_READ_OUT, buf_D18_READ_OUT : std_logic; -signal D18_PACKET4, last_D18_PACKET4 : std_logic; - - -signal dbuf16_comb_dataready_in : std_logic; -signal dbuf16_next_read_out : std_logic; -signal dbuf16_comb_read_in : std_logic; -signal dbuf16_comb_data_in, buf_D18_data_out : std_logic_vector(17 downto 0); -signal dbuf16_status : std_logic_vector(31 downto 0); -signal buffer_dbuf16_comb_data_in : std_logic_vector(7 downto 0); -signal next_buffer_dbuf16_comb_data_in : std_logic_vector(7 downto 0); -signal next_buf_D16_READ_OUT, buf_D16_READ_OUT : std_logic; -signal D16_packet, next_D16_packet : std_logic_vector(1 downto 0); -signal last_dbuf18_next_read_out : std_logic; - - -begin - ------------------------------------------------------------ ---Direction 18 to 16 ------------------------------------------------------------ - - - -next_buf_D18_READ_OUT <= dbuf18_next_read_out;--and not D18_PACKET4; -D18_READ_OUT <= buf_D18_READ_OUT; - - D18to16 : process(buffer_dbuf18_comb_data_in, dbuf18_comb_data_in, last_D18_PACKET4, - buf_D18_READ_OUT, D18_DATAREADY_IN, D18_PACKET_NUM_IN, D18_DATA_IN, - last_dbuf18_next_read_out) - variable newdata : std_logic; - begin - dbuf18_comb_dataready_in <= '0'; - next_buffer_dbuf18_comb_data_in <= buffer_dbuf18_comb_data_in; - dbuf18_comb_data_in <= dbuf18_comb_data_in; - D18_PACKET4 <= '0'; - - - if buf_D18_READ_OUT = '1' and D18_DATAREADY_IN = '1' then - newdata := '1'; - else - newdata := '0'; - end if; - - - if ((D18_PACKET_NUM_IN /= "00" and newdata = '1') or last_D18_PACKET4 = '1') then - dbuf18_comb_dataready_in <= '1'; - end if; - - - if newdata = '1' and D18_PACKET_NUM_IN /= "00" then - dbuf18_comb_data_in(7 downto 0) <= D18_DATA_IN(15 downto 8); - else - dbuf18_comb_data_in(7 downto 0) <= D18_DATA_IN(15 downto 8);--(others => '0'); - end if; - - if newdata = '1' or last_D18_PACKET4 = '1' then - dbuf18_comb_data_in(15 downto 8) <= buffer_dbuf18_comb_data_in(7 downto 0); - if last_D18_PACKET4 = '0' then - dbuf18_comb_data_in(17 downto 16) <= D18_PACKET_NUM_IN - 1; - else - dbuf18_comb_data_in(17 downto 16) <= "11"; - end if; - else - dbuf18_comb_data_in(15 downto 8) <= (others => '0'); - dbuf18_comb_data_in(17 downto 16) <= "00"; - end if; - - - if (D18_PACKET_NUM_IN = "11" and newdata = '1') or (last_D18_PACKET4 = '1' and last_dbuf18_next_read_out = '0') then - D18_PACKET4 <= '1'; - end if; - - if newdata = '1' then - next_buffer_dbuf18_comb_data_in <= D18_DATA_IN(7 downto 0); - end if; - - - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - buffer_dbuf18_comb_data_in <= (others => '0'); - last_D18_PACKET4 <= '0'; - buf_D18_READ_OUT <= '0'; - last_dbuf18_next_read_out <= '0'; - else - buffer_dbuf18_comb_data_in <= next_buffer_dbuf18_comb_data_in; - last_D18_PACKET4 <= D18_PACKET4; - buf_D18_READ_OUT <= next_buf_D18_READ_OUT; - last_dbuf18_next_read_out <= dbuf18_next_read_out; - end if; - end if; - end process; - - - DBUF18 : trb_net_sbuf --dbuf from 18Bit to 16Bit - generic map(DATA_WIDTH => 18, VERSION => VERSION) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => dbuf18_comb_dataready_in, - COMB_next_READ_OUT => dbuf18_next_read_out, - COMB_READ_IN => last_dbuf18_next_read_out, - COMB_DATA_IN => dbuf18_comb_data_in, - -- Port to synchronous output. - SYN_DATAREADY_OUT => D16_DATAREADY_OUT, - SYN_DATA_OUT => buf_D16_DATA_OUT, - SYN_READ_IN => D16_READ_IN, - -- Status and control port - STAT_BUFFER => dbuf18_status(0) - ); - -D16_DATA_OUT <= buf_D16_DATA_OUT(15 downto 0); -D16_PACKET_NUM_OUT <= buf_D16_DATA_OUT(17 downto 16); - - - - ------------------------------------------------------------ ---Direction 16 to 18 ------------------------------------------------------------ - -next_buf_D16_READ_OUT <= dbuf16_next_read_out; -D16_READ_OUT <= buf_D16_READ_OUT; -dbuf16_comb_data_in(15 downto 8) <= (others => '0'); - D16to18 : process(buffer_dbuf16_comb_data_in, dbuf16_comb_data_in, - buf_D16_READ_OUT, D16_DATAREADY_IN, D16_DATA_IN, D16_PACKET_NUM_IN) - variable newdata : std_logic; - begin - - if buf_D16_READ_OUT = '1' and D16_DATAREADY_IN = '1' then - newdata := '1'; - else - newdata := '0'; - end if; - - dbuf16_comb_dataready_in <= newdata; - --next_buffer_dbuf16_comb_data_in <= buffer_dbuf16_comb_data_in; - --dbuf16_comb_data_in <= dbuf16_comb_data_in; - - dbuf16_comb_data_in(17 downto 16) <= D16_PACKET_NUM_IN; - - if newdata = '1' then - dbuf16_comb_data_in(7 downto 0) <= D16_DATA_IN(15 downto 8); - else - dbuf16_comb_data_in(7 downto 0) <= (others => '0'); - end if; - - if newdata = '1' then - if D16_PACKET_NUM_IN = "11" then - next_buffer_dbuf16_comb_data_in <= (others => '0'); - else - next_buffer_dbuf16_comb_data_in <= D16_DATA_IN(7 downto 0); - end if; - else - next_buffer_dbuf16_comb_data_in <= buffer_dbuf16_comb_data_in; - end if; - end process; - - process(CLK, RESET) - begin - if RESET = '1' then - buffer_dbuf16_comb_data_in <= (others => '0'); - --D16_packet <= "00"; - buf_D16_READ_OUT <= '0'; - elsif rising_edge(CLK) then - buffer_dbuf16_comb_data_in <= next_buffer_dbuf16_comb_data_in; - --D16_packet <= next_D16_packet; - buf_D16_READ_OUT <= next_buf_D16_READ_OUT; - else - buffer_dbuf16_comb_data_in <= buffer_dbuf16_comb_data_in; - --D16_packet <= D16_packet; - buf_D16_READ_OUT <= buf_D16_READ_OUT; - end if; - end process; - - - DBUF16 : trb_net_sbuf --dbuf from 16Bit to 18Bit - generic map(DATA_WIDTH => 18, VERSION => VERSION) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => dbuf16_comb_dataready_in, - COMB_next_READ_OUT => dbuf16_next_read_out, - COMB_READ_IN => dbuf16_comb_read_in, - COMB_DATA_IN => dbuf16_comb_data_in, - -- Port to synchronous output. - SYN_DATAREADY_OUT => D18_DATAREADY_OUT, - SYN_DATA_OUT => buf_D18_data_out, - SYN_READ_IN => D18_READ_IN, - -- Status and control port - STAT_BUFFER => dbuf16_status(0) - ); - -D18_DATA_OUT <= buf_D18_data_out(15 downto 0); -D18_PACKET_NUM_OUT <= buf_D18_data_out(17 downto 16); - - dbuf16_read_in_gen : process(CLK, RESET) - begin - if RESET = '1' then - dbuf16_comb_read_in <= '0'; - elsif rising_edge(CLK) then - dbuf16_comb_read_in <= dbuf16_next_read_out; - else - dbuf16_comb_read_in <= dbuf16_comb_read_in; - end if; - end process; - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net_55_to_18_converter.vhd b/oldfiles/trb_net_55_to_18_converter.vhd deleted file mode 100644 index 40b89fe..0000000 --- a/oldfiles/trb_net_55_to_18_converter.vhd +++ /dev/null @@ -1,229 +0,0 @@ ---this is a converter from 64/55 Bit to 18 Bit format. ---It's just a quick hack and should not be used in the final network ---for example, no packet number check is implemented and one cycle is wasted - - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_55_to_18_converter is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - D55_DATA_IN : in std_logic_vector(55 downto 0); - D55_DATAREADY_IN : in std_logic; - D55_READ_OUT : out std_logic; - - D18_DATA_OUT : out std_logic_vector(15 downto 0); - D18_PACKET_NUM_OUT : out std_logic_vector(1 downto 0); - D18_DATAREADY_OUT : out std_logic; - D18_READ_IN : in std_logic; - - D55_DATA_OUT : out std_logic_vector(55 downto 0); - D55_DATAREADY_OUT : out std_logic; - D55_READ_IN : in std_logic; - - D18_DATA_IN : in std_logic_vector(15 downto 0); - D18_PACKET_NUM_IN : in std_logic_vector(1 downto 0); - D18_DATAREADY_IN : in std_logic; - D18_READ_OUT : out std_logic - ); -end entity; - - -architecture trb_net_55_to_18_converter_arch of trb_net_55_to_18_converter is - - - -type CONV_STATE is (IDLE, FIRST, SECOND, THIRD, LAST); -signal D55to18_state, next_D55to18_state : CONV_STATE; -signal D18to55_state, next_D18to55_state : CONV_STATE; - -signal next_D55_READ_OUT, buf_D55_READ_OUT : std_logic; -signal next_D18_DATAREADY_OUT, buf_D18_DATAREADY_OUT : std_logic; -signal next_D18_PACKET_NUM_OUT, buf_D18_PACKET_NUM_OUT : std_logic_vector(1 downto 0); -signal next_D18_DATA_OUT, buf_D18_DATA_OUT : std_logic_vector(15 downto 0); - - -signal next_D18_READ_OUT, buf_D18_READ_OUT : std_logic; -signal next_D55_DATAREADY_OUT, buf_D55_DATAREADY_OUT : std_logic; -signal next_dataread55, dataread55 : std_logic; - --data from 55 read and waiting to be written - -signal next_buf_D55_DATA_IN, buf_D55_DATA_IN : std_logic_vector(55 downto 0); -signal next_D55_DATA_OUT, buf_D55_DATA_OUT : std_logic_vector(55 downto 0); - --databuffer for both directions -begin ------------------------------------------------------------ ---Direction 18 to 55 ------------------------------------------------------------ - - D18to55_fsm : process(D55_READ_IN, buf_D55_DATAREADY_OUT, buf_D18_READ_OUT, D18_DATAREADY_IN, - D18to55_state, buf_D55_DATA_OUT, D18_DATA_IN) - variable dataisread18, dataisread55 : std_logic; - begin - next_D55_DATA_OUT <= buf_D55_DATA_OUT; - next_D18to55_state <= D18to55_state; - next_D18_READ_OUT <= '1'; - next_D55_DATAREADY_OUT <= '0'; - - dataisread55 := D55_READ_IN AND buf_D55_DATAREADY_OUT; - dataisread18 := buf_D18_READ_OUT AND D18_DATAREADY_IN; - - - case D18to55_state is - when IDLE => - if(dataisread18 = '1') then - next_D55_DATA_OUT(55 downto 48) <= D18_DATA_IN(7 downto 0); - next_D18to55_state <= FIRST; - end if; - when FIRST => - if(dataisread18 = '1') then - next_D55_DATA_OUT(47 downto 32) <= D18_DATA_IN; - next_D18to55_state <= SECOND; - end if; - when SECOND => - if(dataisread18 = '1') then - next_D55_DATA_OUT(31 downto 16) <= D18_DATA_IN; - next_D18to55_state <= THIRD; - end if; - when THIRD => - if(dataisread18 = '1') then - next_D55_DATA_OUT(15 downto 0) <= D18_DATA_IN; - next_D55_DATAREADY_OUT <= '1'; - next_D18to55_state <= LAST; - next_D18_READ_OUT <= '0'; - end if; - when LAST => - if(dataisread55 = '1') then - next_D55_DATA_OUT <= (others => '0'); - next_D55_DATAREADY_OUT <= '0'; - next_D18to55_state <= IDLE; - else - next_D18_READ_OUT <= '0'; - next_D55_DATAREADY_OUT <= '1'; - end if; - end case; - end process; - - D18to55_fsm_reg : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - buf_D55_DATA_OUT <= (others => '0'); - D18to55_state <= IDLE; - buf_D55_DATAREADY_OUT <= '0'; - buf_D18_READ_OUT <= '0'; - else - buf_D55_DATA_OUT <= next_D55_DATA_OUT; - D18to55_state <= next_D18to55_state; - buf_D55_DATAREADY_OUT <= next_D55_DATAREADY_OUT; - buf_D18_READ_OUT <= next_D18_READ_OUT; - end if; - end if; - end process; - -D55_DATA_OUT <= buf_D55_DATA_OUT; -D55_DATAREADY_OUT <= buf_D55_DATAREADY_OUT; -D18_READ_OUT <= buf_D18_READ_OUT; - ------------------------------------------------------------ ---Direction 55 to 18 ------------------------------------------------------------ - D55to18_fsm : process(buf_D18_DATA_OUT, buf_D18_PACKET_NUM_OUT, buf_D18_DATAREADY_OUT, - D18_READ_IN, D55_DATA_IN, D55_DATAREADY_IN, D55to18_state, - buf_D55_READ_OUT, buf_D55_DATA_IN, dataread55) - variable dataisread18, dataisread55 : std_logic; - begin - next_D18_DATA_OUT <= buf_D18_DATA_OUT; - next_D18_PACKET_NUM_OUT <= buf_D18_PACKET_NUM_OUT; - next_D55to18_state <= D55to18_state; - next_D55_READ_OUT <= '0'; - next_buf_D55_DATA_IN <= buf_D55_DATA_IN; - - dataisread18 := D18_READ_IN AND buf_D18_DATAREADY_OUT; - dataisread55 := D55_DATAREADY_IN AND buf_D55_READ_OUT; - - if(dataisread18 = '1') then - next_D18_DATAREADY_OUT <= '0'; - else - next_D18_DATAREADY_OUT <= buf_D18_DATAREADY_OUT; - end if; - - - case D55to18_state is - when IDLE => - if (dataisread18 = '1' OR buf_D18_DATAREADY_OUT = '0') then - next_D55_READ_OUT <= '1'; - if dataisread55 = '1' then - next_buf_D55_DATA_IN(55 downto 0) <= D55_DATA_IN(55 downto 0); - next_D55_READ_OUT <= '0'; - next_D18_DATA_OUT(7 downto 0) <= D55_DATA_IN(55 downto 48); - next_D18_DATA_OUT(15 downto 8) <= (others => '0'); - next_D18_PACKET_NUM_OUT <= "00"; - next_D18_DATAREADY_OUT <= '1'; - next_D55to18_state <= FIRST; - end if; - end if; - when FIRST => - if(dataisread18 = '1') then - next_D18_DATA_OUT(15 downto 0) <= buf_D55_DATA_IN(47 downto 32); - next_D18_DATAREADY_OUT <= '1'; - next_D18_PACKET_NUM_OUT <= "01"; - next_D55to18_state <= SECOND; - end if; - when SECOND => - if(dataisread18 = '1') then - next_D18_DATA_OUT(15 downto 0) <= buf_D55_DATA_IN(31 downto 16); - next_D18_DATAREADY_OUT <= '1'; - next_D18_PACKET_NUM_OUT <= "10"; - next_D55to18_state <= THIRD; - end if; - when THIRD => - if(dataisread18 = '1') then - next_D18_DATA_OUT(15 downto 0) <= buf_D55_DATA_IN(15 downto 0); - next_D18_DATAREADY_OUT <= '1'; - next_D18_PACKET_NUM_OUT <= "11"; - next_D55to18_state <= IDLE; - next_D55_READ_OUT <= '1'; - end if; - when others => - next_D55to18_state <= IDLE; - end case; - end process; - - D55to18_fsm_reg : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - buf_D18_DATA_OUT <= (others => '0'); - buf_D55_DATA_IN <= (others => '0'); - buf_D55_READ_OUT <= '0'; - buf_D18_DATAREADY_OUT <= '0'; - buf_D18_PACKET_NUM_OUT <= "00"; - D55to18_state <= IDLE; - else - buf_D18_DATA_OUT <= next_D18_DATA_OUT; - buf_D18_DATAREADY_OUT <= next_D18_DATAREADY_OUT; - buf_D55_READ_OUT <= next_D55_READ_OUT; - buf_D55_DATA_IN <= next_buf_D55_DATA_IN; - buf_D18_PACKET_NUM_OUT <= next_D18_PACKET_NUM_OUT; - D55to18_state <= next_D55to18_state; - end if; - end if; - end process; - -D18_DATA_OUT <= buf_D18_DATA_OUT; -D18_DATAREADY_OUT <= buf_D18_DATAREADY_OUT; -D18_PACKET_NUM_OUT <= buf_D18_PACKET_NUM_OUT; -D55_READ_OUT <= buf_D55_READ_OUT; - - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net_64_to_18_converter.vhd b/oldfiles/trb_net_64_to_18_converter.vhd deleted file mode 100644 index 69a8265..0000000 --- a/oldfiles/trb_net_64_to_18_converter.vhd +++ /dev/null @@ -1,229 +0,0 @@ ---this is a converter from 64/55 Bit to 18 Bit format. ---It's just a quick hack and should not be used in the final network ---for example, no packet number check is implemented and one cycle is wasted - - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_64_to_18_converter is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - D55_DATA_IN : in std_logic_vector(50 downto 0); - D55_DATAREADY_IN : in std_logic; - D55_READ_OUT : out std_logic; - - D18_DATA_OUT : out std_logic_vector(15 downto 0); - D18_PACKET_NUM_OUT : out std_logic_vector(1 downto 0); - D18_DATAREADY_OUT : out std_logic; - D18_READ_IN : in std_logic; - - D55_DATA_OUT : out std_logic_vector(50 downto 0); - D55_DATAREADY_OUT : out std_logic; - D55_READ_IN : in std_logic; - - D18_DATA_IN : in std_logic_vector(15 downto 0); - D18_PACKET_NUM_IN : in std_logic_vector(1 downto 0); - D18_DATAREADY_IN : in std_logic; - D18_READ_OUT : out std_logic - ); -end entity; - - -architecture trb_net_64_to_18_converter_arch of trb_net_64_to_18_converter is - - - -type CONV_STATE is (IDLE, FIRST, SECOND, THIRD, LAST); -signal D55to18_state, next_D55to18_state : CONV_STATE; -signal D18to55_state, next_D18to55_state : CONV_STATE; - -signal next_D55_READ_OUT, buf_D55_READ_OUT : std_logic; -signal next_D18_DATAREADY_OUT, buf_D18_DATAREADY_OUT : std_logic; -signal next_D18_PACKET_NUM_OUT, buf_D18_PACKET_NUM_OUT : std_logic_vector(1 downto 0); -signal next_D18_DATA_OUT, buf_D18_DATA_OUT : std_logic_vector(15 downto 0); - - -signal next_D18_READ_OUT, buf_D18_READ_OUT : std_logic; -signal next_D55_DATAREADY_OUT, buf_D55_DATAREADY_OUT : std_logic; -signal next_dataread55, dataread55 : std_logic; - --data from 55 read and waiting to be written - -signal next_buf_D55_DATA_IN, buf_D55_DATA_IN : std_logic_vector(50 downto 0); -signal next_D55_DATA_OUT, buf_D55_DATA_OUT : std_logic_vector(50 downto 0); - --databuffer for both directions -begin ------------------------------------------------------------ ---Direction 18 to 55 ------------------------------------------------------------ - - D18to55_fsm : process(D55_READ_IN, buf_D55_DATAREADY_OUT, buf_D18_READ_OUT, D18_DATAREADY_IN, - D18to55_state, buf_D55_DATA_OUT, D18_DATA_IN) - variable dataisread18, dataisread55 : std_logic; - begin - next_D55_DATA_OUT <= buf_D55_DATA_OUT; - next_D18to55_state <= D18to55_state; - next_D18_READ_OUT <= '1'; - next_D55_DATAREADY_OUT <= '0'; - - dataisread55 := D55_READ_IN AND buf_D55_DATAREADY_OUT; - dataisread18 := buf_D18_READ_OUT AND D18_DATAREADY_IN; - - - case D18to55_state is - when IDLE => - if(dataisread18 = '1') then - next_D55_DATA_OUT(50 downto 48) <= D18_DATA_IN(2 downto 0); - next_D18to55_state <= FIRST; - end if; - when FIRST => - if(dataisread18 = '1') then - next_D55_DATA_OUT(47 downto 32) <= D18_DATA_IN; - next_D18to55_state <= SECOND; - end if; - when SECOND => - if(dataisread18 = '1') then - next_D55_DATA_OUT(31 downto 16) <= D18_DATA_IN; - next_D18to55_state <= THIRD; - end if; - when THIRD => - if(dataisread18 = '1') then - next_D55_DATA_OUT(15 downto 0) <= D18_DATA_IN; - next_D55_DATAREADY_OUT <= '1'; - next_D18to55_state <= LAST; - next_D18_READ_OUT <= '0'; - end if; - when LAST => - if(dataisread55 = '1') then - next_D55_DATA_OUT <= (others => '0'); - next_D55_DATAREADY_OUT <= '0'; - next_D18to55_state <= IDLE; - else - next_D18_READ_OUT <= '0'; - next_D55_DATAREADY_OUT <= '1'; - end if; - end case; - end process; - - D18to55_fsm_reg : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - buf_D55_DATA_OUT <= (others => '0'); - D18to55_state <= IDLE; - buf_D55_DATAREADY_OUT <= '0'; - buf_D18_READ_OUT <= '0'; - else - buf_D55_DATA_OUT <= next_D55_DATA_OUT; - D18to55_state <= next_D18to55_state; - buf_D55_DATAREADY_OUT <= next_D55_DATAREADY_OUT; - buf_D18_READ_OUT <= next_D18_READ_OUT; - end if; - end if; - end process; - -D55_DATA_OUT <= buf_D55_DATA_OUT; -D55_DATAREADY_OUT <= buf_D55_DATAREADY_OUT; -D18_READ_OUT <= buf_D18_READ_OUT; - ------------------------------------------------------------ ---Direction 55 to 18 ------------------------------------------------------------ - D55to18_fsm : process(buf_D18_DATA_OUT, buf_D18_PACKET_NUM_OUT, buf_D18_DATAREADY_OUT, - D18_READ_IN, D55_DATA_IN, D55_DATAREADY_IN, D55to18_state, - buf_D55_READ_OUT, buf_D55_DATA_IN, dataread55) - variable dataisread18, dataisread55 : std_logic; - begin - next_D18_DATA_OUT <= buf_D18_DATA_OUT; - next_D18_PACKET_NUM_OUT <= buf_D18_PACKET_NUM_OUT; - next_D55to18_state <= D55to18_state; - next_D55_READ_OUT <= '0'; - next_buf_D55_DATA_IN <= buf_D55_DATA_IN; - - dataisread18 := D18_READ_IN AND buf_D18_DATAREADY_OUT; - dataisread55 := D55_DATAREADY_IN AND buf_D55_READ_OUT; - - if(dataisread18 = '1') then - next_D18_DATAREADY_OUT <= '0'; - else - next_D18_DATAREADY_OUT <= buf_D18_DATAREADY_OUT; - end if; - - - case D55to18_state is - when IDLE => - if (dataisread18 = '1' OR buf_D18_DATAREADY_OUT = '0') then - next_D55_READ_OUT <= '1'; - if dataisread55 = '1' then - next_buf_D55_DATA_IN(50 downto 0) <= D55_DATA_IN(50 downto 0); - next_D55_READ_OUT <= '0'; - next_D18_DATA_OUT(2 downto 0) <= D55_DATA_IN(50 downto 48); - next_D18_DATA_OUT(15 downto 3) <= (others => '0'); - next_D18_PACKET_NUM_OUT <= "00"; - next_D18_DATAREADY_OUT <= '1'; - next_D55to18_state <= FIRST; - end if; - end if; - when FIRST => - if(dataisread18 = '1') then - next_D18_DATA_OUT(15 downto 0) <= buf_D55_DATA_IN(47 downto 32); - next_D18_DATAREADY_OUT <= '1'; - next_D18_PACKET_NUM_OUT <= "01"; - next_D55to18_state <= SECOND; - end if; - when SECOND => - if(dataisread18 = '1') then - next_D18_DATA_OUT(15 downto 0) <= buf_D55_DATA_IN(31 downto 16); - next_D18_DATAREADY_OUT <= '1'; - next_D18_PACKET_NUM_OUT <= "10"; - next_D55to18_state <= THIRD; - end if; - when THIRD => - if(dataisread18 = '1') then - next_D18_DATA_OUT(15 downto 0) <= buf_D55_DATA_IN(15 downto 0); - next_D18_DATAREADY_OUT <= '1'; - next_D18_PACKET_NUM_OUT <= "11"; - next_D55to18_state <= IDLE; - next_D55_READ_OUT <= '1'; - end if; - when others => - next_D55to18_state <= IDLE; - end case; - end process; - - D55to18_fsm_reg : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - buf_D18_DATA_OUT <= (others => '0'); - buf_D55_DATA_IN <= (others => '0'); - buf_D55_READ_OUT <= '0'; - buf_D18_DATAREADY_OUT <= '0'; - buf_D18_PACKET_NUM_OUT <= "00"; - D55to18_state <= IDLE; - else - buf_D18_DATA_OUT <= next_D18_DATA_OUT; - buf_D18_DATAREADY_OUT <= next_D18_DATAREADY_OUT; - buf_D55_READ_OUT <= next_D55_READ_OUT; - buf_D55_DATA_IN <= next_buf_D55_DATA_IN; - buf_D18_PACKET_NUM_OUT <= next_D18_PACKET_NUM_OUT; - D55to18_state <= next_D55to18_state; - end if; - end if; - end process; - -D18_DATA_OUT <= buf_D18_DATA_OUT; -D18_DATAREADY_OUT <= buf_D18_DATAREADY_OUT; -D18_PACKET_NUM_OUT <= buf_D18_PACKET_NUM_OUT; -D55_READ_OUT <= buf_D55_READ_OUT; - - -end architecture; \ No newline at end of file diff --git a/oldfiles/trb_net_active_api.vhd b/oldfiles/trb_net_active_api.vhd deleted file mode 100644 index ef6c0b0..0000000 --- a/oldfiles/trb_net_active_api.vhd +++ /dev/null @@ -1,203 +0,0 @@ --- connection between the TRBNET and any application --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetAPI - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - - -entity trb_net_active_api is - - generic (FIFO_TO_INT_DEPTH : integer := 0; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 0; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Internal direction port - -- This is just a clone from trb_net_iobuf - - INT_INIT_DATAREADY_OUT: out STD_LOGIC; - INT_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_IN: in STD_LOGIC; - - INT_INIT_DATAREADY_IN: in STD_LOGIC; - INT_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_OUT: out STD_LOGIC; - - - INT_REPLY_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out STD_LOGIC; - INT_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_IN: in STD_LOGIC; - - INT_REPLY_DATAREADY_IN: in STD_LOGIC; - INT_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_OUT: out STD_LOGIC; - - -- Status and control port - STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - -- not needed now, but later - ); -end trb_net_active_api; - -architecture trb_net_active_api_arch of trb_net_active_api is - - component trb_net_base_api is - generic (API_TYPE : integer := 0; -- type of api: 0 passive, 1 active - FIFO_TO_INT_DEPTH : integer := 0; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 0; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Internal direction port - -- the ports with active or passive in their name are to be mapped by the active api - -- to the init respectivly the reply path and vice versa in the passive api. - INT_MASTER_DATAREADY_OUT: out STD_LOGIC; - INT_MASTER_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_MASTER_READ_IN: in STD_LOGIC; - - INT_MASTER_DATAREADY_IN: in STD_LOGIC; - INT_MASTER_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_MASTER_READ_OUT: out STD_LOGIC; - - INT_SLAVE_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_SLAVE_DATAREADY_OUT: out STD_LOGIC; - INT_SLAVE_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_SLAVE_READ_IN: in STD_LOGIC; - - INT_SLAVE_DATAREADY_IN: in STD_LOGIC; - INT_SLAVE_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_SLAVE_READ_OUT: out STD_LOGIC; - -- Status and control port - STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - -- not needed now, but later - ); - end component; - -begin - - ACTIVE_API: trb_net_base_api - generic map ( - API_TYPE => 1, - FIFO_TO_INT_DEPTH => FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => FIFO_TERM_BUFFER_DEPTH - ) - port map ( - CLK => CLK, - CLK_EN => CLK_EN, - RESET => RESET, - - APL_DATA_IN => APL_DATA_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_SEND_IN => APL_SEND_IN, - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN, - APL_DATA_OUT => APL_DATA_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL_SEQNR_OUT, - - -- Internal direction port - INT_MASTER_DATAREADY_OUT => INT_INIT_DATAREADY_OUT, - INT_MASTER_DATA_OUT => INT_INIT_DATA_OUT, - INT_MASTER_READ_IN => INT_INIT_READ_IN, - - INT_MASTER_DATAREADY_IN => INT_INIT_DATAREADY_IN, - INT_MASTER_DATA_IN => INT_INIT_DATA_IN, - INT_MASTER_READ_OUT => INT_INIT_READ_OUT, - - INT_SLAVE_HEADER_IN => INT_REPLY_HEADER_IN, - - INT_SLAVE_DATAREADY_OUT => INT_REPLY_DATAREADY_OUT, - INT_SLAVE_DATA_OUT => INT_REPLY_DATA_OUT, - INT_SLAVE_READ_IN => INT_REPLY_READ_IN, - - INT_SLAVE_DATAREADY_IN => INT_REPLY_DATAREADY_IN, - INT_SLAVE_DATA_IN => INT_REPLY_DATA_IN, - INT_SLAVE_READ_OUT => INT_REPLY_READ_OUT, - -- Status and control port - STAT_FIFO_TO_INT => STAT_FIFO_TO_INT, - STAT_FIFO_TO_APL => STAT_FIFO_TO_APL - -- not needed now, but later - ); - -end trb_net_active_api_arch; diff --git a/oldfiles/trb_net_active_apimbuf.vhd b/oldfiles/trb_net_active_apimbuf.vhd deleted file mode 100644 index 1bb8346..0000000 --- a/oldfiles/trb_net_active_apimbuf.vhd +++ /dev/null @@ -1,467 +0,0 @@ --- an active api together with an iobuf - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_active_apimbuf is - - generic (INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3; -- or the replyibuf - FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 3; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0 -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Status and control port => just coming from the iobuf for debugging - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_api_control_signals: out std_logic_vector(31 downto 0); - STAT_MPLEX: out STD_LOGIC_VECTOR(31 downto 0); - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0); - API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); -END trb_net_active_apimbuf; - -architecture trb_net_active_apimbuf_arch of trb_net_active_apimbuf is - -component trb_net_iobuf is - - generic (INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3); -- or the replyibuf - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_INIT_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_INIT_READ_IN: in STD_LOGIC; -- Media is reading - - MED_INIT_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_INIT_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_INIT_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - MED_REPLY_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_REPLY_READ_IN: in STD_LOGIC; -- Media is reading - - MED_REPLY_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_REPLY_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_REPLY_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - -- Internal direction port - - INT_INIT_DATAREADY_OUT: out STD_LOGIC; - INT_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_IN: in STD_LOGIC; - - INT_INIT_DATAREADY_IN: in STD_LOGIC; - INT_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_OUT: out STD_LOGIC; - - INT_REPLY_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out STD_LOGIC; - INT_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_IN: in STD_LOGIC; - - INT_REPLY_DATAREADY_IN: in STD_LOGIC; - INT_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_OUT: out STD_LOGIC; - - -- Status and control port - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0) - ); -END component; - -component trb_net_active_api is - - generic (FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 3; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Internal direction port - -- This is just a clone from trb_net_iobuf - - INT_INIT_DATAREADY_OUT: out STD_LOGIC; - INT_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_IN: in STD_LOGIC; - - INT_INIT_DATAREADY_IN: in STD_LOGIC; - INT_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_OUT: out STD_LOGIC; - - - INT_REPLY_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out STD_LOGIC; - INT_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_IN: in STD_LOGIC; - - INT_REPLY_DATAREADY_IN: in STD_LOGIC; - INT_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_OUT: out STD_LOGIC; - - -- Status and control port - STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); -end component; - -component trb_net_io_multiplexer is - - generic (BUS_WIDTH : integer := 56; - MULT_WIDTH : integer := 5); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - -- highest bits are mult. - MED_READ_OUT: out STD_LOGIC; - - MED_DATAREADY_OUT: out STD_LOGIC; - MED_DATA_OUT: out STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - MED_READ_IN: in STD_LOGIC; - - -- Internal direction port - INT_DATAREADY_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_OUT: out STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - INT_DATAREADY_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_IN: in STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - -- Status and control port - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - STAT: out STD_LOGIC_VECTOR (31 downto 0) - ); -END component; - -signal apl_to_buf_INIT_DATAREADY: STD_LOGIC; -signal apl_to_buf_INIT_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal apl_to_buf_INIT_READ : STD_LOGIC; - -signal buf_to_apl_INIT_DATAREADY: STD_LOGIC; -signal buf_to_apl_INIT_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal buf_to_apl_INIT_READ : STD_LOGIC; - -signal apl_to_buf_REPLY_DATAREADY: STD_LOGIC; -signal apl_to_buf_REPLY_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal apl_to_buf_REPLY_READ : STD_LOGIC; - -signal buf_to_apl_REPLY_DATAREADY: STD_LOGIC; -signal buf_to_apl_REPLY_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal buf_to_apl_REPLY_READ : STD_LOGIC; - --- for the connection to the multiplexer -signal MED_INIT_DATAREADY_OUT : STD_LOGIC; -signal MED_INIT_DATA_OUT : STD_LOGIC_VECTOR (50 downto 0); -signal MED_INIT_READ_IN : STD_LOGIC; - -signal MED_INIT_DATAREADY_IN : STD_LOGIC; -signal MED_INIT_DATA_IN : STD_LOGIC_VECTOR (50 downto 0); -signal MED_INIT_READ_OUT : STD_LOGIC; - -signal MED_REPLY_DATAREADY_OUT : STD_LOGIC; -signal MED_REPLY_DATA_OUT : STD_LOGIC_VECTOR (50 downto 0); -signal MED_REPLY_READ_IN : STD_LOGIC; - -signal MED_REPLY_DATAREADY_IN : STD_LOGIC; -signal MED_REPLY_DATA_IN : STD_LOGIC_VECTOR (50 downto 0); -signal MED_REPLY_READ_OUT : STD_LOGIC; - -signal m_DATAREADY_OUT : STD_LOGIC_VECTOR (1 downto 0); -signal m_DATA_OUT : STD_LOGIC_VECTOR (101 downto 0); -signal m_READ_IN : STD_LOGIC_VECTOR (1 downto 0); - -signal m_DATAREADY_IN : STD_LOGIC_VECTOR (1 downto 0); -signal m_DATA_IN : STD_LOGIC_VECTOR (101 downto 0); -signal m_READ_OUT : STD_LOGIC_VECTOR (1 downto 0); - -begin - - m_DATAREADY_OUT(0) <= MED_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(1) <= MED_REPLY_DATAREADY_OUT; - m_DATA_OUT(50 downto 0) <= MED_INIT_DATA_OUT; - m_DATA_OUT(101 downto 51) <= MED_REPLY_DATA_OUT; - MED_INIT_READ_IN <= m_READ_IN(0); - MED_REPLY_READ_IN <= m_READ_IN(1); - - MED_INIT_DATAREADY_IN <= m_DATAREADY_IN(0); - MED_REPLY_DATAREADY_IN <= m_DATAREADY_IN(1); - MED_INIT_DATA_IN <= m_DATA_IN(50 downto 0); - MED_REPLY_DATA_IN <= m_DATA_IN(101 downto 51); - m_READ_OUT(0) <= MED_INIT_READ_OUT; - m_READ_OUT(1) <= MED_REPLY_READ_OUT; - - - ACTIVE_API: trb_net_active_api - - generic map (FIFO_TO_INT_DEPTH => FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => FIFO_TERM_BUFFER_DEPTH) - - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - - -- APL Transmitter port - APL_DATA_IN => APL_DATA_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_SEND_IN => APL_SEND_IN, - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN, - - -- Receiver port - APL_DATA_OUT => APL_DATA_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL_SEQNR_OUT, - - -- Internal direction port - -- connect via private signals - - INT_INIT_DATAREADY_OUT => apl_to_buf_INIT_DATAREADY, - INT_INIT_DATA_OUT => apl_to_buf_INIT_DATA, - INT_INIT_READ_IN => apl_to_buf_INIT_READ, - - INT_INIT_DATAREADY_IN => buf_to_apl_INIT_DATAREADY, - INT_INIT_DATA_IN => buf_to_apl_INIT_DATA, - INT_INIT_READ_OUT => buf_to_apl_INIT_READ, - - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT =>apl_to_buf_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => apl_to_buf_REPLY_DATA, - INT_REPLY_READ_IN => apl_to_buf_REPLY_READ, - - INT_REPLY_DATAREADY_IN => buf_to_apl_REPLY_DATAREADY, - INT_REPLY_DATA_IN => buf_to_apl_REPLY_DATA, - INT_REPLY_READ_OUT => buf_to_apl_REPLY_READ, - - -- Status and control port - STAT_FIFO_TO_INT => api_stat_fifo_to_int, - STAT_FIFO_TO_APL => api_stat_fifo_to_apl - ); - -STAT_api_control_signals(2 downto 0) <= APL_DATA_IN(2 downto 0); -STAT_api_control_signals(3) <= APL_WRITE_IN; -STAT_api_control_signals(4) <= APL_SEND_IN; -STAT_api_control_signals(7 downto 5) <= (others => '0'); -STAT_api_control_signals(10 downto 8) <= apl_to_buf_INIT_DATA(2 downto 0); -STAT_api_control_signals(11) <= apl_to_buf_INIT_DATAREADY; -STAT_api_control_signals(12) <= apl_to_buf_INIT_READ; -STAT_api_control_signals(31 downto 13) <= (others => '0'); - - - -IOBUF: trb_net_iobuf - - generic map (INIT_DEPTH => INIT_DEPTH, - REPLY_DEPTH => REPLY_DEPTH) - - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_INIT_DATA_OUT, - MED_INIT_READ_IN => MED_INIT_READ_IN, - - MED_INIT_DATAREADY_IN => MED_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_INIT_DATA_IN, - MED_INIT_READ_OUT => MED_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - - MED_REPLY_DATAREADY_OUT => MED_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_REPLY_DATA_OUT, - MED_REPLY_READ_IN => MED_REPLY_READ_IN, - - MED_REPLY_DATAREADY_IN => MED_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_REPLY_DATA_IN, - MED_REPLY_READ_OUT => MED_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - - -- Internal direction port - - INT_INIT_DATAREADY_OUT => buf_to_apl_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_INIT_DATA, - INT_INIT_READ_IN => buf_to_apl_INIT_READ, - - INT_INIT_DATAREADY_IN => apl_to_buf_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_INIT_DATA, - INT_INIT_READ_OUT => apl_to_buf_INIT_READ, - - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_REPLY_DATA, - INT_REPLY_READ_IN => buf_to_apl_REPLY_READ, - - INT_REPLY_DATAREADY_IN => apl_to_buf_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_REPLY_DATA, - INT_REPLY_READ_OUT => apl_to_buf_REPLY_READ, - - -- Status and control port - STAT_GEN => STAT_GEN, - STAT_LOCKED => STAT_LOCKED, - STAT_INIT_BUFFER => STAT_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_REPLY_BUFFER, - CTRL_GEN => CTRL_GEN, - CTRL_LOCKED => CTRL_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_CTRL_REPLY_BUFFER - ); - - MPLEX: trb_net_io_multiplexer - generic map (BUS_WIDTH => 52, - MULT_WIDTH => 1) - port map ( - CLK => CLK, - RESET => RESET , - CLK_EN => CLK_EN, - - MED_DATAREADY_IN => MED_DATAREADY_IN, - MED_DATA_IN => MED_DATA_IN, - MED_READ_OUT => MED_READ_OUT, - - MED_DATAREADY_OUT => MED_DATAREADY_OUT, - MED_DATA_OUT => MED_DATA_OUT, - MED_READ_IN => MED_READ_IN, - - INT_DATAREADY_OUT => m_DATAREADY_IN, - INT_DATA_OUT =>m_DATA_IN, - INT_READ_IN =>m_READ_OUT, - - INT_DATAREADY_IN =>m_DATAREADY_OUT, - INT_DATA_IN =>m_DATA_OUT, - INT_READ_OUT =>m_READ_IN, - - CTRL => MPLEX_CTRL - - ); - -end trb_net_active_apimbuf_arch; - diff --git a/oldfiles/trb_net_apimbuf_fast_lvds.vhd b/oldfiles/trb_net_apimbuf_fast_lvds.vhd deleted file mode 100644 index 4a4df49..0000000 --- a/oldfiles/trb_net_apimbuf_fast_lvds.vhd +++ /dev/null @@ -1,512 +0,0 @@ ------------------------------------------------------------------------------- --- --- This is a combination of the fast 8bit lvds interface and an active or --- passive api, selectable with generic "API_TYPE" --- ------------------------------------------------------------------------------- - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - - - -entity trb_net_apimbuf_fast_lvds is - generic ( - API_TYPE : integer range 0 to 1 := 0 --0: passive, 1: active api - ); - port( - CLK : in std_logic; - RESET : in std_logic; - API_RESET : in std_logic; - CLK_EN : in std_logic; - - --LVDS - LVDS_IN : in std_logic_vector(15 downto 0); - LVDS_OUT : out std_logic_vector(15 downto 0); - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Status and Control registers - API_STAT_GEN: out std_logic_vector(31 downto 0); - API_STAT_LOCKED: out std_logic_vector(31 downto 0); - API_STAT_INIT_BUFFER: out std_logic_vector(31 downto 0); - API_STAT_REPLY_BUFFER: out std_logic_vector(31 downto 0); - API_STAT_control_signals: out std_logic_vector(31 downto 0); - STAT_MPLEX: out STD_LOGIC_VECTOR(31 downto 0); - API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0); - LVDS_STAT: out std_logic_vector(31 downto 0); - LVDS_CTRL: in std_logic_vector(31 downto 0); - MPLEX_CTRL: in std_logic_vector(31 downto 0) - ); -end entity; - - -architecture trb_net_apimbuf_fast_lvds_arch of trb_net_apimbuf_fast_lvds is - component trb_net_55_to_18_converter is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - D55_DATA_IN : in std_logic_vector(55 downto 0); - D55_DATAREADY_IN : in std_logic; - D55_READ_OUT : out std_logic; - - D18_DATA_OUT : out std_logic_vector(15 downto 0); - D18_PACKET_NUM_OUT : out std_logic_vector(1 downto 0); - D18_DATAREADY_OUT : out std_logic; - D18_READ_IN : in std_logic; - - D55_DATA_OUT : out std_logic_vector(55 downto 0); - D55_DATAREADY_OUT : out std_logic; - D55_READ_IN : in std_logic; - - D18_DATA_IN : in std_logic_vector(15 downto 0); - D18_PACKET_NUM_IN : in std_logic_vector(1 downto 0); - D18_DATAREADY_IN : in std_logic; - D18_READ_OUT : out std_logic - ); - end component; - - component trb_net_active_apimbuf is - generic (INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3; -- or the replyibuf - FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 3; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0 -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Status and control port => just coming from the iobuf for debugging - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_api_control_signals: out std_logic_vector(31 downto 0); - STAT_MPLEX: out STD_LOGIC_VECTOR(31 downto 0); - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0); - API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); - end component; - - component trb_net_passive_apimbuf is - generic ( - INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3; -- or the replyibuf - FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 3; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0 -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Status and control port - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_api_control_signals: out std_logic_vector(31 downto 0); - STAT_MPLEX: out STD_LOGIC_VECTOR(31 downto 0); - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0); - API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); - end component; - - - component trb_net_med_8bit_fast is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- 1st part: from the medium to the internal logic (trbnet) - INT_DATAREADY_OUT: out STD_LOGIC; - INT_DATA_OUT: out STD_LOGIC_VECTOR (15 downto 0); -- Data word - INT_PACKET_NR_OUT: out STD_LOGIC_VECTOR(1 downto 0); - INT_READ_IN: in STD_LOGIC; - INT_ERROR_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- 2nd part: from the internal logic (trbnet) to the medium - INT_DATAREADY_IN: in STD_LOGIC; -- Data word is offered for the Media - INT_DATA_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Data word - INT_PACKET_NR_IN : in STD_LOGIC_VECTOR(1 downto 0); - INT_READ_OUT: out STD_LOGIC; -- offered word is read - INT_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- Media direction port - -- in this case for the cable => 32 lines in total - MED_DATA_OUT: out STD_LOGIC_VECTOR (12 downto 0); -- Data word - MED_TRANSMISSION_CLK_OUT: out STD_LOGIC; - MED_CARRIER_OUT: out STD_LOGIC; - MED_PARITY_OUT: out STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (12 downto 0); -- Data word - MED_TRANSMISSION_CLK_IN: in STD_LOGIC; - MED_CARRIER_IN: in STD_LOGIC; - MED_PARITY_IN: in STD_LOGIC; - -- Status and control port => this never can hurt - STAT: out STD_LOGIC_VECTOR (31 downto 0); - CTRL: in STD_LOGIC_VECTOR (31 downto 0) - ); - end component; - - ------------------------------------------------------------------------ ---media interface signals ------------------------------------------------------------------------ - signal LVDS_INT_DATAREADY_OUT : std_logic; - signal LVDS_INT_DATA_OUT : std_logic_vector(15 downto 0); - signal LVDS_INT_READ_IN : std_logic; - signal LVDS_INT_ERROR_IN : std_logic_vector(2 downto 0); - signal LVDS_INT_DATAREADY_IN : std_logic; - signal LVDS_INT_DATA_IN : std_logic_vector(15 downto 0); - signal LVDS_INT_READ_OUT : std_logic; - signal LVDS_INT_ERROR_OUT : std_logic_vector(2 downto 0); - signal LVDS_MED_DATA_OUT : std_logic_vector(12 downto 0); - signal LVDS_MED_TRANSMISSION_CLK_OUT : std_logic; - signal LVDS_MED_CARRIER_OUT : std_logic; - signal LVDS_MED_PARITY_OUT : std_logic; - signal LVDS_MED_DATA_IN : std_logic_vector(12 downto 0); - signal LVDS_MED_TRANSMISSION_CLK_IN : std_logic; - signal LVDS_MED_CARRIER_IN : std_logic; - signal LVDS_MED_PARITY_IN : std_logic; - signal LVDS_INT_PACKET_NUM_OUT : std_logic_vector(1 downto 0); - signal LVDS_INT_PACKET_NUM_IN : std_logic_vector(1 downto 0); - - - ------------------------------------------------------------------------ ---API signals ------------------------------------------------------------------------ - signal API_MED_DATAREADY_OUT : std_logic; - signal API_MED_DATA_OUT : std_logic_vector(51 downto 0); - signal API_MED_READ_IN : std_logic; - signal API_MED_ERROR_IN : std_logic_vector(2 downto 0); - signal API_MED_DATAREADY_IN : std_logic; - signal API_MED_DATA_IN : std_logic_vector(51 downto 0); - signal API_MED_READ_OUT : std_logic; - signal API_MED_ERROR_OUT : std_logic_vector(2 downto 0); - signal API_ctrl : std_logic_vector(31 downto 0); - signal C5518_D55_DATA_IN, C5518_D55_DATA_OUT : std_logic_vector(55 downto 0); - ------------------------------------------------------------------------ ---Control signals ------------------------------------------------------------------------ - - - -begin - - ------------------------------------------------------------------------ ---the media interface ------------------------------------------------------------------------ - lvds: trb_net_med_8bit_fast - port map( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - - INT_DATAREADY_OUT => LVDS_INT_DATAREADY_OUT, - INT_DATA_OUT => LVDS_INT_DATA_OUT, - INT_PACKET_NR_OUT => LVDS_INT_PACKET_NUM_OUT, - INT_READ_IN => LVDS_INT_READ_IN, - INT_ERROR_OUT => LVDS_INT_ERROR_OUT, - INT_DATAREADY_IN => LVDS_INT_DATAREADY_IN, - INT_DATA_IN => LVDS_INT_DATA_IN, - INT_PACKET_NR_IN => LVDS_INT_PACKET_NUM_IN, - INT_READ_OUT => LVDS_INT_READ_OUT, - INT_ERROR_IN => LVDS_INT_ERROR_IN, - - MED_DATA_OUT => LVDS_MED_DATA_OUT, - MED_TRANSMISSION_CLK_OUT => LVDS_MED_TRANSMISSION_CLK_OUT, - MED_CARRIER_OUT => LVDS_MED_CARRIER_OUT, - MED_PARITY_OUT => LVDS_MED_PARITY_OUT, - MED_DATA_IN => LVDS_MED_DATA_IN, - MED_TRANSMISSION_CLK_IN => LVDS_MED_TRANSMISSION_CLK_IN, - MED_CARRIER_IN => LVDS_MED_CARRIER_IN, - MED_PARITY_IN => LVDS_MED_PARITY_IN, - STAT => LVDS_STAT, - CTRL => LVDS_CTRL - ); - - LVDS_OUT(7 downto 0) <= LVDS_MED_DATA_OUT(7 downto 0); - LVDS_OUT(10) <= C5518_D55_DATA_OUT(48); - LVDS_OUT(9) <= LVDS_INT_DATA_OUT(0); - LVDS_OUT(8) <= LVDS_INT_DATAREADY_OUT; - LVDS_OUT(11) <= LVDS_MED_DATA_OUT(11) and not API_RESET; - LVDS_OUT(12) <= LVDS_MED_DATA_OUT(12); - LVDS_OUT(13) <= LVDS_MED_TRANSMISSION_CLK_OUT; - LVDS_OUT(14) <= LVDS_MED_CARRIER_OUT; - LVDS_OUT(15) <= LVDS_MED_PARITY_OUT; - LVDS_MED_DATA_IN <= LVDS_IN(12 downto 0); - LVDS_MED_TRANSMISSION_CLK_IN <= LVDS_IN(13); - LVDS_MED_CARRIER_IN <= LVDS_IN(14); - LVDS_MED_PARITY_IN <= LVDS_IN(15); - - ------------------------------------------------------------------------ ---bus width converter ------------------------------------------------------------------------ - C5518 : trb_net_55_to_18_converter - port map( - -- Misc - CLK => CLK, - RESET => API_RESET, - CLK_EN => CLK_EN, - - D55_DATA_IN => C5518_D55_DATA_IN, - D55_DATAREADY_IN => API_MED_DATAREADY_OUT, - D55_READ_OUT => API_MED_READ_IN, - - D18_DATA_OUT => LVDS_INT_DATA_IN, - D18_PACKET_NUM_OUT => LVDS_INT_PACKET_NUM_IN, - D18_DATAREADY_OUT => LVDS_INT_DATAREADY_IN, - D18_READ_IN => LVDS_INT_READ_OUT, - - D55_DATA_OUT => C5518_D55_DATA_OUT, - D55_DATAREADY_OUT => API_MED_DATAREADY_IN, - D55_READ_IN => API_MED_READ_OUT, - - D18_DATA_IN => LVDS_INT_DATA_OUT, - D18_PACKET_NUM_IN => LVDS_INT_PACKET_NUM_OUT, - D18_DATAREADY_IN => LVDS_INT_DATAREADY_OUT, - D18_READ_OUT => LVDS_INT_READ_IN - ); - - C5518_D55_DATA_IN(51 downto 0) <= API_MED_DATA_OUT; - C5518_D55_DATA_IN(55 downto 52) <= "0000"; - API_MED_DATA_IN <= C5518_D55_DATA_OUT(51 downto 0); - ------------------------------------------------------------------------ ---API ------------------------------------------------------------------------ - - apigenact : if API_TYPE = 1 generate - API: trb_net_active_apimbuf - generic map ( - FIFO_TERM_BUFFER_DEPTH => 3) - port map ( - CLK => CLK, - RESET => API_RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => APL_DATA_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_SEND_IN => APL_SEND_IN, - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN, - -- Receiver port - APL_DATA_OUT => APL_DATA_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL_SEQNR_OUT, - -- Media direction - MED_DATAREADY_OUT => API_MED_DATAREADY_OUT, - MED_DATA_OUT => API_MED_DATA_OUT, - MED_READ_IN => API_MED_READ_IN, - MED_ERROR_IN => LVDS_INT_ERROR_OUT, - MED_DATAREADY_IN => API_MED_DATAREADY_IN, - MED_DATA_IN => API_MED_DATA_IN, - MED_READ_OUT => API_MED_READ_OUT, - - CTRL_LOCKED => (others => '0'), - CTRL_GEN => (others => '0'), - - STAT_GEN => API_STAT_GEN, - STAT_LOCKED => API_STAT_LOCKED, - STAT_INIT_BUFFER => API_STAT_INIT_BUFFER, - STAT_REPLY_BUFFER => API_STAT_REPLY_BUFFER, - STAT_api_control_signals => API_STAT_control_signals, - STAT_MPLEX => STAT_MPLEX, - STAT_CTRL_INIT_BUFFER => (others => '0'), - STAT_CTRL_REPLY_BUFFER => (others => '0'), - MPLEX_CTRL => MPLEX_CTRL, - API_STAT_FIFO_TO_INT => API_STAT_FIFO_TO_INT, - API_STAT_FIFO_TO_APL => API_STAT_FIFO_TO_APL - ); - end generate; - - apigenpas : if API_TYPE = 0 generate - API: trb_net_passive_apimbuf - generic map ( - FIFO_TERM_BUFFER_DEPTH => 3) - port map ( - CLK => CLK, - RESET => API_RESET, - CLK_EN => CLK_EN, - -- APL Transmitter port - APL_DATA_IN => APL_DATA_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_SEND_IN => APL_SEND_IN, - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN, - -- Receiver port - APL_DATA_OUT => APL_DATA_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_SEQNR_OUT => APL_SEQNR_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - -- Media direction - MED_DATAREADY_OUT => API_MED_DATAREADY_OUT, - MED_DATA_OUT => API_MED_DATA_OUT, - MED_READ_IN => API_MED_READ_IN, - MED_ERROR_IN => API_MED_ERROR_IN, - MED_DATAREADY_IN => API_MED_DATAREADY_IN, - MED_DATA_IN => API_MED_DATA_IN, - MED_READ_OUT => API_MED_READ_OUT, - - CTRL_LOCKED => (others => '0'), - CTRL_GEN => (others => '0'), - - STAT_GEN => API_STAT_GEN, - STAT_LOCKED => API_STAT_LOCKED, - STAT_INIT_BUFFER => API_STAT_INIT_BUFFER, - STAT_REPLY_BUFFER => API_STAT_REPLY_BUFFER, - STAT_api_control_signals => API_STAT_control_signals, - STAT_MPLEX => STAT_MPLEX, - STAT_CTRL_INIT_BUFFER => (others => '0'), - STAT_CTRL_REPLY_BUFFER => (others => '0'), - MPLEX_CTRL => MPLEX_CTRL, - API_STAT_FIFO_TO_INT => API_STAT_FIFO_TO_INT, - API_STAT_FIFO_TO_APL => API_STAT_FIFO_TO_APL - ); - end generate; - -end architecture; - - - - - - - diff --git a/oldfiles/trb_net_base_api.vhd b/oldfiles/trb_net_base_api.vhd deleted file mode 100644 index 09b4b87..0000000 --- a/oldfiles/trb_net_base_api.vhd +++ /dev/null @@ -1,722 +0,0 @@ -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - - -entity trb_net_base_api is - - generic (API_TYPE : integer := 0; -- type of api: 0 passive, 1 active - FIFO_TO_INT_DEPTH : integer := 0; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 0; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Internal direction port - -- the ports with master or slave in their name are to be mapped by the active api - -- to the init respectivly the reply path and vice versa in the passive api. - -- lets define: the "master" path is the path that I send data on. - INT_MASTER_DATAREADY_OUT: out STD_LOGIC; - INT_MASTER_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_MASTER_READ_IN: in STD_LOGIC; - - INT_MASTER_DATAREADY_IN: in STD_LOGIC; - INT_MASTER_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_MASTER_READ_OUT: out STD_LOGIC; - - - INT_SLAVE_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_SLAVE_DATAREADY_OUT: out STD_LOGIC; - INT_SLAVE_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_SLAVE_READ_IN: in STD_LOGIC; - - INT_SLAVE_DATAREADY_IN: in STD_LOGIC; - INT_SLAVE_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_SLAVE_READ_OUT: out STD_LOGIC; - - -- Status and control port - STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - -- not needed now, but later - - ); -end entity trb_net_base_api; - - - -architecture trb_net_base_api_arch of trb_net_base_api is - component trb_net_fifo is - generic ( - WIDTH : integer := 8; -- FIFO word width - DEPTH : integer := 4); -- Depth of the FIFO, 2^(n+1) - port ( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - DATA_IN : in std_logic_vector(WIDTH - 1 downto 0); -- Input data - WRITE_ENABLE_IN : in std_logic; - DATA_OUT : out std_logic_vector(WIDTH - 1 downto 0); -- Output data - READ_ENABLE_IN : in std_logic; - FULL_OUT : out std_logic; -- Full Flag - EMPTY_OUT : out std_logic; - DEPTH_OUT : out std_logic_vector(7 downto 0) - ); - end component; - - component trb_net_dummy_fifo is - generic (WIDTH : integer := 8); -- Depth of the FIFO, 2^(n+1) - port ( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - DATA_IN : in std_logic_vector(WIDTH - 1 downto 0); -- Input data - WRITE_ENABLE_IN : in std_logic; - DATA_OUT : out std_logic_vector(WIDTH - 1 downto 0); -- Output data - READ_ENABLE_IN : in std_logic; - FULL_OUT : out std_logic; -- Full Flag - EMPTY_OUT : out std_logic; - DEPTH_OUT : out std_logic_vector(7 downto 0) - ); - end component; - - component trb_net_sbuf is - generic (DATA_WIDTH : integer := 56; - VERSION: integer := 1); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- port to combinatorial logic - COMB_DATAREADY_IN: in STD_LOGIC; --comb logic provides data word - COMB_next_READ_OUT: out STD_LOGIC; --sbuf can read in NEXT cycle - COMB_READ_IN: in STD_LOGIC; --comb logic IS reading - COMB_DATA_IN: in STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - -- Port to synchronous output. - SYN_DATAREADY_OUT: out STD_LOGIC; - SYN_DATA_OUT: out STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - SYN_READ_IN: in STD_LOGIC; - -- Status and control port - STAT_BUFFER: out STD_LOGIC - ); - end component; - - - - component trb_net_term is - generic (FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of the master - -- path, if set to 0 no buffer is used at all - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- Internal direction port - -- This is just a clone from trb_net_iobuf - INT_DATAREADY_OUT: out STD_LOGIC; - INT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - INT_DATAREADY_IN: in STD_LOGIC; - INT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_OUT: out STD_LOGIC; - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - APL_GOT_TRM: out STD_LOGIC; - APL_HOLD_TRM: in STD_LOGIC; - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0) -- My own address (temporary solution!!!) - -- Status and control port - -- not needed now, but later - ); - end component; - - -- signals for the APL to INT fifo: - signal fifo_to_int_data_in : std_logic_vector(47 downto 0); - signal fifo_to_int_write : std_logic; - signal fifo_to_int_data_out : std_logic_vector(47 downto 0); - signal fifo_to_int_read : std_logic; - signal fifo_to_int_full : std_logic; - signal fifo_to_int_empty : std_logic; - - -- signals for the INT to APL: - signal fifo_to_apl_data_in : std_logic_vector(50 downto 0); - signal fifo_to_apl_write : std_logic; - signal fifo_to_apl_data_out : std_logic_vector(50 downto 0); - signal fifo_to_apl_read : std_logic; - signal fifo_to_apl_full : std_logic; - signal fifo_to_apl_empty : std_logic; - - -- signals for the test buffer - signal fifo_term_buffer_data_in : std_logic_vector(50 downto 0); - signal fifo_term_buffer_write : std_logic; - signal fifo_term_buffer_data_out : std_logic_vector(50 downto 0); - signal fifo_term_buffer_read : std_logic; - signal fifo_term_buffer_full : std_logic; - signal fifo_term_buffer_empty : std_logic; - - signal state_bits : std_logic_vector(2 downto 0); - type API_STATE is (IDLE, SEND_HEADER, RUNNING, SHUTDOWN, SEND_SHORT, SEND_TRAILER, WAITING,MY_ERROR); - type TERM_BUFFER_STATE is (IDLE, RUNNING, SEND_TRAILER, MY_ERROR); - signal current_state, next_state : API_STATE; - signal tb_current_state, tb_next_state : TERM_BUFFER_STATE; - signal slave_running, next_slave_running : std_logic; - - signal combined_header: std_logic_vector(47 downto 0); --stored in sbuf - -- , registered_header, next_registered_header: std_logic_vector(47 downto 0); - --signal update_registered_header: std_logic; - signal combined_trailer, registered_trailer, next_registered_trailer: std_logic_vector(47 downto 0); - signal update_registered_trailer: std_logic; - signal tb_registered_trailer, tb_next_registered_trailer: std_logic_vector(47 downto 0); - signal tb_registered_target, tb_next_registered_target: std_logic_vector(15 downto 0); - - signal sequence_counter,next_sequence_counter : std_logic_vector(7 downto 0); - signal next_INT_MASTER_DATA_OUT: std_logic_vector(50 downto 0); - signal next_INT_MASTER_DATAREADY_OUT: std_logic; - signal sbuf_free, sbuf_next_READ: std_logic; - signal next_INT_SLAVE_READ_OUT, reg_INT_SLAVE_READ_OUT: std_logic; - signal next_APL_DATAREADY_OUT, reg_APL_DATAREADY_OUT: std_logic; - signal next_APL_DATA_OUT, reg_APL_DATA_OUT: std_logic_vector(47 downto 0); - signal next_APL_TYP_OUT, reg_APL_TYP_OUT: std_logic_vector(2 downto 0); - - type OUTPUT_SELECT is (HDR, DAT, TRM, TRM_COMB); - signal out_select: OUTPUT_SELECT; - -begin - ---------------------------------------- --- termination for active api ---------------------------------------- - --- gen_term: if API_TYPE = 1 generate - TrbNetTerm: trb_net_term - generic map(FIFO_TERM_BUFFER_DEPTH => 0) - port map( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - INT_DATAREADY_OUT => INT_SLAVE_DATAREADY_OUT, - INT_DATA_OUT => INT_SLAVE_DATA_OUT, - INT_READ_IN => INT_SLAVE_READ_IN, - INT_DATAREADY_IN => INT_MASTER_DATAREADY_IN, - INT_DATA_IN => INT_MASTER_DATA_IN, - INT_READ_OUT => INT_MASTER_READ_OUT, - APL_HOLD_TRM => '0', - APL_DTYPE_IN => (others => '0'), - APL_ERROR_PATTERN_IN => (others => '0'), - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN - ); --- end generate; - --- gen_noterm: if API_TYPE = 0 generate --- INT_SLAVE_READ_OUT <= '0'; --- --- end generate; - ---------------------------------------- --- fifo to internal ---------------------------------------- - - CHECK_BUFFER3: if FIFO_TO_INT_DEPTH >0 generate - FIFO_TO_INT: trb_net_fifo - generic map ( - WIDTH => 48, - DEPTH => FIFO_TO_INT_DEPTH) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - DATA_IN => fifo_to_int_data_in, - WRITE_ENABLE_IN => fifo_to_int_write, - DATA_OUT => fifo_to_int_data_out, - READ_ENABLE_IN => fifo_to_int_read, - FULL_OUT => fifo_to_int_full, - EMPTY_OUT => fifo_to_int_empty - ); - end generate; - - CHECK_BUFFER4: if FIFO_TO_INT_DEPTH =0 generate - FIFO_TO_INT: trb_net_dummy_fifo - generic map ( - WIDTH => 48) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - DATA_IN => fifo_to_int_data_in, - WRITE_ENABLE_IN => fifo_to_int_write, - DATA_OUT => fifo_to_int_data_out, - READ_ENABLE_IN => fifo_to_int_read, - FULL_OUT => fifo_to_int_full, - EMPTY_OUT => fifo_to_int_empty - ); - end generate CHECK_BUFFER4; - - STAT_FIFO_TO_INT(2 downto 0) <= fifo_to_int_data_in(2 downto 0); - STAT_FIFO_TO_INT(3) <= fifo_to_int_write; - STAT_FIFO_TO_INT(10 downto 8) <= fifo_to_int_data_out(2 downto 0); - STAT_FIFO_TO_INT(11) <= fifo_to_int_read; - STAT_FIFO_TO_INT(14) <= fifo_to_int_full; - STAT_FIFO_TO_INT(15) <= fifo_to_int_empty; - STAT_FIFO_TO_INT(7 downto 4) <= (others => '0'); - STAT_FIFO_TO_INT(13 downto 12) <= (others => '0'); - STAT_FIFO_TO_INT(28 downto 16) <= (others => '0'); - STAT_FIFO_TO_INT(31 downto 29) <= state_bits; ---------------------------------------- --- fifo to apl ---------------------------------------- - - CHECK_BUFFER5: if FIFO_TO_APL_DEPTH >0 generate - FIFO_TO_APL: trb_net_fifo - generic map ( - WIDTH => 51, - DEPTH => FIFO_TO_APL_DEPTH) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - DATA_IN => fifo_to_apl_data_in, - WRITE_ENABLE_IN => fifo_to_apl_write, - DATA_OUT => fifo_to_apl_data_out, - READ_ENABLE_IN => fifo_to_apl_read, - FULL_OUT => fifo_to_apl_full, - EMPTY_OUT => fifo_to_apl_empty - ); - end generate CHECK_BUFFER5; - - CHECK_BUFFER6: if FIFO_TO_APL_DEPTH =0 generate - FIFO_TO_APL: trb_net_dummy_fifo - generic map ( - WIDTH => 51) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - DATA_IN => fifo_to_apl_data_in, - WRITE_ENABLE_IN => fifo_to_apl_write, - DATA_OUT => fifo_to_apl_data_out, - READ_ENABLE_IN => fifo_to_apl_read, - FULL_OUT => fifo_to_apl_full, - EMPTY_OUT => fifo_to_apl_empty - ); - end generate CHECK_BUFFER6; - - STAT_FIFO_TO_APL(2 downto 0) <= fifo_to_apl_data_in(2 downto 0); - STAT_FIFO_TO_APL(3) <= fifo_to_apl_write; - STAT_FIFO_TO_APL(9 downto 8) <= fifo_to_apl_data_out(1 downto 0); - STAT_FIFO_TO_APL(11) <= fifo_to_apl_read; - STAT_FIFO_TO_APL(14) <= fifo_to_apl_full; - STAT_FIFO_TO_APL(15) <= fifo_to_apl_empty; - STAT_FIFO_TO_APL(7 downto 4) <= (others => '0'); - --STAT_FIFO_TO_APL(13 downto 12) <= (others => '0'); - STAT_FIFO_TO_APL(31 downto 16) <= (others => '0'); - STAT_FIFO_TO_APL(13) <= reg_INT_SLAVE_READ_OUT; - STAT_FIFO_TO_APL(12) <= INT_SLAVE_DATAREADY_IN; - STAT_FIFO_TO_APL(10) <= reg_APL_DATAREADY_OUT; - ---------------------------------------- --- a sbuf on the active channel ---------------------------------------- - - ACTIVE_SBUF: trb_net_sbuf - generic map ( - DATA_WIDTH => 51, - VERSION => 0) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => next_INT_MASTER_DATAREADY_OUT, - COMB_next_READ_OUT => sbuf_next_READ, - COMB_READ_IN => '1', - COMB_DATA_IN => next_INT_MASTER_DATA_OUT, - SYN_DATAREADY_OUT => INT_MASTER_DATAREADY_OUT, - SYN_DATA_OUT => INT_MASTER_DATA_OUT, - SYN_READ_IN => INT_MASTER_READ_IN - ); - - - - --sbuf_free <= sbuf_next_READ or INT_INIT_READ_IN; --sbuf killed in next cycle - sbuf_free <= sbuf_next_READ; - next_registered_trailer <= combined_trailer; - --next_registered_header <= combined_header; - next_APL_DATA_OUT <= fifo_to_apl_data_out(DWORD_POSITION); - next_APL_TYP_OUT <= fifo_to_apl_data_out(TYPE_POSITION); - - ---------------------------------------- --- select data for int direction ---------------------------------------- - process (out_select, combined_header, registered_trailer, - fifo_to_int_data_out, combined_trailer) - begin - if out_select = HDR then - next_INT_MASTER_DATA_OUT(TYPE_POSITION) <= TYPE_HDR; - next_INT_MASTER_DATA_OUT(DWORD_POSITION) <= combined_header; - elsif out_select = TRM then - next_INT_MASTER_DATA_OUT(TYPE_POSITION) <= TYPE_TRM; - next_INT_MASTER_DATA_OUT(DWORD_POSITION) <= registered_trailer; - elsif out_select = TRM_COMB then - next_INT_MASTER_DATA_OUT(TYPE_POSITION) <= TYPE_TRM; - next_INT_MASTER_DATA_OUT(DWORD_POSITION) <= combined_trailer; - else - next_INT_MASTER_DATA_OUT(TYPE_POSITION) <= TYPE_DAT; - next_INT_MASTER_DATA_OUT(DWORD_POSITION) <= fifo_to_int_data_out; - end if; - end process; - - ---------------------------------------- --- the state machine ---------------------------------------- --- gen_active_fsm : if API_TYPE = 1 generate - STATE_COMB : process(current_state, APL_SEND_IN, combined_header, - INT_MASTER_READ_IN, APL_WRITE_IN, fifo_to_int_empty, - fifo_to_int_data_out, combined_trailer, slave_running, - next_registered_trailer, fifo_to_int_data_out, - fifo_to_apl_empty, INT_SLAVE_DATAREADY_IN, - reg_INT_SLAVE_READ_OUT,fifo_to_apl_read, - reg_APL_DATAREADY_OUT, fifo_to_apl_data_out, - reg_APL_DATAREADY_OUT, APL_READ_IN, sbuf_free, - reg_APL_TYP_OUT, APL_SHORT_TRANSFER_IN, fifo_to_apl_full) - begin -- process - next_state <= MY_ERROR; - next_INT_MASTER_DATAREADY_OUT <= '0'; - out_select <= DAT; - update_registered_trailer <= '0'; - fifo_to_int_read <= '0'; - next_INT_SLAVE_READ_OUT <= '0'; - fifo_to_apl_write <= '0'; - next_APL_DATAREADY_OUT <= '0'; - fifo_to_apl_read <= '0'; - next_slave_running <= slave_running; - next_sequence_counter <= sequence_counter; - ------------------------------------------------------------------------------- - -- IDLE - ------------------------------------------------------------------------------- - if current_state = IDLE then - if APL_SEND_IN = '1' then - if APL_SHORT_TRANSFER_IN = '1' and APL_WRITE_IN = '0' and fifo_to_int_empty = '1' then - next_state <= SEND_SHORT; -- no next data word, waiting for falling edge of APL_SEND_IN - next_INT_MASTER_DATAREADY_OUT <= '0'; - update_registered_trailer <= '1'; -- moved from SEND_SHORT - else -- normal transfer, prepare the header - next_state <= SEND_HEADER; - out_select <= HDR; - next_INT_MASTER_DATAREADY_OUT <= '1'; - end if; -- next word will be a header - else - next_state <= IDLE; - end if; -- APL_SEND_IN - ------------------------------------------------------------------------------- - -- SEND_SHORT - ------------------------------------------------------------------------------- - elsif current_state = SEND_SHORT then - next_state <= SEND_SHORT; - if APL_SEND_IN = '0' then -- terminate the transfer - next_state <= SEND_TRAILER; - next_INT_MASTER_DATAREADY_OUT <= '1'; - out_select <= TRM; - end if; - ------------------------------------------------------------------------------- - -- SEND_HEADER - ------------------------------------------------------------------------------- - elsif current_state = SEND_HEADER then - if sbuf_free = '1' then -- kill current header - next_state <= RUNNING; - if fifo_to_int_empty = '1' then - next_INT_MASTER_DATAREADY_OUT <= '0'; - else - next_INT_MASTER_DATAREADY_OUT <= '1'; - out_select <= DAT; - fifo_to_int_read <= '1'; - end if; -- fifo_to_int_empty - else - next_state <= SEND_HEADER; - end if; - ------------------------------------------------------------------------------- - -- RUNNING - ------------------------------------------------------------------------------- - elsif current_state = RUNNING then - if APL_SEND_IN = '0' then -- terminate the transfer - if fifo_to_int_empty = '1' then -- immediate stop - next_state <= SEND_TRAILER; - update_registered_trailer <= '1'; - next_INT_MASTER_DATAREADY_OUT <= '1'; - out_select <= TRM_COMB; - else - next_state <= SHUTDOWN; - update_registered_trailer <= '1'; - if sbuf_free = '1' then - -- data words have to be prepared - next_INT_MASTER_DATAREADY_OUT <= '1'; - out_select <= DAT; - fifo_to_int_read <= '1'; - end if; -- fifo_to_int_empty = '0' - end if; - else -- APL_SEND_IN: still running - next_state <= RUNNING; - if fifo_to_int_empty = '0' and sbuf_free = '1' then - -- data words have to be prepared - next_INT_MASTER_DATAREADY_OUT <= '1'; - out_select <= DAT; - fifo_to_int_read <= '1'; - end if; -- fifo_to_int_empty = '0' - end if; - ------------------------------------------------------------------------------- - -- SHUTDOWN: Empty the pipe - ------------------------------------------------------------------------------- - elsif current_state = SHUTDOWN then - next_state <= SHUTDOWN; - if fifo_to_int_empty = '0' and sbuf_free = '1' then - -- data words have to be prepared - next_INT_MASTER_DATAREADY_OUT <= '1'; - out_select <= DAT; - fifo_to_int_read <= '1'; - elsif sbuf_free = '1' then - -- we are done - next_state <= SEND_TRAILER; - next_INT_MASTER_DATAREADY_OUT <= '1'; - out_select <= TRM; - end if; - ------------------------------------------------------------------------------- - -- SEND_TRAILER - ------------------------------------------------------------------------------- - elsif current_state = SEND_TRAILER then - if sbuf_free = '1' then -- kill current trailer - next_state <= WAITING; - out_select <= TRM; - next_INT_MASTER_DATAREADY_OUT <= '0'; - next_slave_running <= '0'; - else - next_state <= SEND_TRAILER; - end if; - ------------------------------------------------------------------------------- - -- WAITING => for the answer or a request - ------------------------------------------------------------------------------- - elsif current_state = WAITING then - next_state <= WAITING; - -- here we have to supply the receiver port - -- part 1: connection to network - if fifo_to_apl_full = '0' or (fifo_to_apl_read = '1' and reg_APL_DATAREADY_OUT = '1') then - next_INT_SLAVE_READ_OUT <= '1'; - end if; - if reg_INT_SLAVE_READ_OUT = '1' and INT_SLAVE_DATAREADY_IN = '1' then - fifo_to_apl_write <= '1'; -- use fifo as the pipe - end if; - - -- part 2: connection to apl --- if fifo_to_apl_empty = '0' then - if fifo_to_apl_empty = '0' and not (reg_APL_DATAREADY_OUT = '1' and APL_READ_IN = '1') then --is this really correct???? - next_APL_DATAREADY_OUT <= '1'; - end if; -- read/no read - - if reg_APL_DATAREADY_OUT = '1' and APL_READ_IN = '1' then - -- valid read - fifo_to_apl_read <= '1'; - if (reg_APL_TYP_OUT = TYPE_TRM or reg_APL_TYP_OUT = TYPE_HDR) then - next_slave_running <= '1'; - end if; - if reg_APL_TYP_OUT = TYPE_TRM and (APL_READ_IN = '1' and reg_APL_DATAREADY_OUT = '1') then --fifo_to_apl_read = '1' - next_state <= IDLE; - next_sequence_counter <= sequence_counter +1; - end if; - end if; - -- MISSING: SEQNR check - -- OPEN QUESTION: Address matching? makes sense for a reply transfer? - end if; -- end state switch - end process; --- end generate; - - - ---------------------------------------- --- ---------------------------------------- - - -- combine the next header - combined_header(F1_POSITION) <= APL_MY_ADDRESS_IN; - combined_header(F2_POSITION) <= APL_TARGET_ADDRESS_IN; - combined_header(15 downto 14) <= (others => '0'); -- LAY - combined_header(13 downto 12) <= (others => '0'); -- VERS - combined_header(11 downto 4) <= sequence_counter; -- SEQNR - combined_header(3 downto 0) <= APL_DTYPE_IN; - combined_trailer(F1_POSITION) <= APL_ERROR_PATTERN_IN(31 downto 16); - combined_trailer(F2_POSITION) <= APL_ERROR_PATTERN_IN(15 downto 0); - combined_trailer(15 downto 14) <= (others => '0'); -- res. - combined_trailer(13 downto 12) <= (others => '0'); -- VERS - combined_trailer(11 downto 4) <= sequence_counter; -- SEQNR - combined_trailer(3 downto 0) <= APL_DTYPE_IN; - -- this is not very consequent, find a better solution the be independent - -- with the range - - -- connect Transmitter port - fifo_to_int_data_in <= APL_DATA_IN; - fifo_to_int_write <= (APL_WRITE_IN and not fifo_to_int_full) when (current_state = IDLE or - current_state = SEND_HEADER or - current_state = RUNNING) - - else '0'; - - - APL_FIFO_FULL_OUT <= fifo_to_int_full; -- APL has to stop writing - - - INT_SLAVE_READ_OUT <= reg_INT_SLAVE_READ_OUT; - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - reg_APL_DATAREADY_OUT <= '0'; - reg_APL_DATA_OUT <= (others => '0'); - reg_APL_TYP_OUT <= (others => '0'); - else - reg_APL_DATAREADY_OUT <= next_APL_DATAREADY_OUT; - reg_APL_DATA_OUT <= next_APL_DATA_OUT; - reg_APL_TYP_OUT <= next_APL_TYP_OUT; - end if; - end if; - end process; - - - -- connect receiver - fifo_to_apl_data_in <= INT_SLAVE_DATA_IN; - --- this has to be registered! --- reg_APL_DATAREADY_OUT <= next_APL_DATAREADY_OUT; --- reg_APL_DATA_OUT <= next_APL_DATA_OUT; --- reg_APL_TYP_OUT <= next_APL_TYP_OUT; - - APL_DATAREADY_OUT <= reg_APL_DATAREADY_OUT; - APL_DATA_OUT <= reg_APL_DATA_OUT; - APL_TYP_OUT <= reg_APL_TYP_OUT; --- APL_RUN_OUT <= '0' when ((current_state = IDLE )) - APL_RUN_OUT <= '0' when ((current_state = IDLE and API_TYPE = 1) - or (slave_running = '0' and API_TYPE = 0)) - else '1'; - APL_SEQNR_OUT <= sequence_counter; - ---removed and put into main state machine --- generate the sequence counter --- -- combinatorial part --- SEQNR_COMB : process(sequence_counter, current_state, next_state) --- begin --- if current_state = WAITING and next_state = IDLE then --- next_sequence_counter <= sequence_counter+1; --- else --- next_sequence_counter <= sequence_counter; --- end if; --- end process; - - - - CLK_REG: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - sequence_counter <= (others => '0'); - reg_INT_SLAVE_READ_OUT <= '0'; - if API_TYPE = 1 then - current_state <= IDLE; - else - current_state <= WAITING; - end if; - slave_running <= '0'; - tb_current_state <= IDLE; - tb_registered_trailer <= (others => '0'); - tb_registered_target <= ILLEGAL_ADRESS; - elsif CLK_EN = '1' then - sequence_counter <= next_sequence_counter; - reg_INT_SLAVE_READ_OUT <= next_INT_SLAVE_READ_OUT; - current_state <= next_state; - slave_running <= next_slave_running; - tb_current_state <= tb_next_state; - tb_registered_trailer <= tb_next_registered_trailer; - tb_registered_target <= tb_next_registered_target; - else - sequence_counter <= sequence_counter; - reg_INT_SLAVE_READ_OUT <= reg_INT_SLAVE_READ_OUT; - current_state <= current_state; - slave_running <= slave_running; - tb_current_state <= tb_current_state; - tb_registered_trailer <= tb_registered_trailer; - tb_registered_target <= tb_registered_target; - end if; - end if; - end process; - - REG3 : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - registered_trailer <= (others => '0'); - elsif update_registered_trailer = '1' then - registered_trailer <= next_registered_trailer; - else - registered_trailer <= registered_trailer; - end if; - end if; - end process; - -process(current_state) - begin - case current_state is - when IDLE => state_bits <= "000"; - when SEND_HEADER => state_bits <= "001"; - when RUNNING => state_bits <= "010"; - when SHUTDOWN => state_bits <= "011"; - when SEND_SHORT => state_bits <= "100"; - when SEND_TRAILER => state_bits <= "101"; - when WAITING => state_bits <= "110"; - when others => state_bits <= "111"; - end case; - end process; - - - -end architecture trb_net_base_api_arch; - - - diff --git a/oldfiles/trb_net_endpoint_3ch.vhd b/oldfiles/trb_net_endpoint_3ch.vhd deleted file mode 100644 index da6f3ae..0000000 --- a/oldfiles/trb_net_endpoint_3ch.vhd +++ /dev/null @@ -1,582 +0,0 @@ --- this is the final endpoint to be used --- It has 3 channels - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_endpoint_3ch is - - -- per channel we have the following generics: - -- 1.) APIX_FIFO_TO_INT_DEPTH - -- 2.) APIX_FIFO_TO_APL_DEPTH - -- 3.) APIX_TYPE (0=active, 1=passive, 99=dummy) - -- 4.) APIX_INIT_DEPTH - -- 5.) APIX_REPLY_DEPTH - -- 6.) APIX_CHANNEL_NUMBER - - -- The dummy APL can be used for debugging - -- In this case, the API lines are use only for sniffing - -- and the input lines can be driven to any value - -- with one exeption: - -- if APL_SEND_IN = '0' the dummy APL will be resetted - - generic ( - - API1_FIFO_TO_INT_DEPTH: integer := 3; - API1_FIFO_TO_APL_DEPTH: integer := 3; - API1_TYPE : integer := 0; - API1_INIT_DEPTH : integer := 3; - API1_REPLY_DEPTH : integer := 3; - API1_CHANNEL_NUMBER : integer := 0; - - API2_FIFO_TO_INT_DEPTH: integer := 3; - API2_FIFO_TO_APL_DEPTH: integer := 3; - API2_TYPE : integer := 0; - API2_INIT_DEPTH : integer := 3; - API2_REPLY_DEPTH : integer := 3; - API2_CHANNEL_NUMBER : integer := 1; - - API3_FIFO_TO_INT_DEPTH: integer := 3; - API3_FIFO_TO_APL_DEPTH: integer := 3; - API3_TYPE : integer := 0; - API3_INIT_DEPTH : integer := 3; - API3_REPLY_DEPTH : integer := 3; - API3_CHANNEL_NUMBER : integer := 2 - - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - ---------------------------------------------------------------------------- - -- API1 - ---------------------------------------------------------------------------- - -- APL Transmitter port - APL1_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL1_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL1_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL1_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL1_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL1_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL1_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL1_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL1_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL1_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL1_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL1_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL1_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL1_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - ---------------------------------------------------------------------------- - -- API2 - ---------------------------------------------------------------------------- - -- APL Transmitter port - APL2_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL2_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL2_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL2_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL2_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL2_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL2_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL2_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL2_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL2_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL2_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL2_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL2_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL2_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - ---------------------------------------------------------------------------- - -- API3 - ---------------------------------------------------------------------------- - -- APL Transmitter port - APL3_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL3_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL3_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL3_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL3_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL3_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL3_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL3_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL3_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL3_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL3_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL3_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL3_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL3_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - - ---------------------------------------------------------------------------- - -- Common API stuff - ---------------------------------------------------------------------------- - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0); - - -- IOBUF ports missing -> Later (BUGBUG) - - APL_GOT_TRM : out STD_LOGIC_VECTOR (15 downto 0); --pattern from the - --unused TERMs - APL_HOLD_TRM: in STD_LOGIC_VECTOR (15 downto 0); --put to "0" - - --------------------------------------------------------------------------- - -- Media direction port (directly to be connected to MII) - --------------------------------------------------------------------------- - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (55 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (55 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - MED_MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0) - ); -END trb_net_endpoint_3ch; - -architecture trb_net_endpoint_3ch_arch of trb_net_endpoint_3ch is - - component trb_net_io_multiplexer is - - generic (BUS_WIDTH : integer := 56; - MULT_WIDTH : integer := 5); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - -- highest bits are mult. - MED_READ_OUT: out STD_LOGIC; - - MED_DATAREADY_OUT: out STD_LOGIC; - MED_DATA_OUT: out STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - MED_READ_IN: in STD_LOGIC; - - -- Internal direction port - INT_DATAREADY_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_OUT: out STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - INT_DATAREADY_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_IN: in STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - -- Status and control port - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - STAT: out STD_LOGIC_VECTOR (31 downto 0) - ); -END component; - -component trb_net_active_apimbuf is - - generic (INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3; -- or the replyibuf - FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 3; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0 -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Status and control port => just coming from the iobuf for debugging - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0) - ); -END component; - -component trb_net_term_mbuf is - - generic (FIFO_TERM_BUFFER_DEPTH : integer := 0 -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - APL_GOT_TRM: out STD_LOGIC; - - APL_HOLD_TRM: in STD_LOGIC; - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - - -- Status and control port => just coming from the iobuf for debugging - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0) - ); -END component; - --- for the connection to the multiplexer -signal MED_INIT_DATAREADY_OUT : STD_LOGIC; -signal MED_INIT_DATA_OUT : STD_LOGIC_VECTOR (50 downto 0); -signal MED_INIT_READ_IN : STD_LOGIC; - -signal MED_INIT_DATAREADY_IN : STD_LOGIC; -signal MED_INIT_DATA_IN : STD_LOGIC_VECTOR (50 downto 0); -signal MED_INIT_READ_OUT : STD_LOGIC; - -signal MED_REPLY_DATAREADY_OUT : STD_LOGIC; -signal MED_REPLY_DATA_OUT : STD_LOGIC_VECTOR (50 downto 0); -signal MED_REPLY_READ_IN : STD_LOGIC; - -signal MED_REPLY_DATAREADY_IN : STD_LOGIC; -signal MED_REPLY_DATA_IN : STD_LOGIC_VECTOR (50 downto 0); -signal MED_REPLY_READ_OUT : STD_LOGIC; - -signal m_DATAREADY_OUT : STD_LOGIC_VECTOR (15 downto 0); -signal m_DATA_OUT : STD_LOGIC_VECTOR (831 downto 0); -signal m_READ_IN : STD_LOGIC_VECTOR (15 downto 0); - -signal m_DATAREADY_IN : STD_LOGIC_VECTOR (15 downto 0); -signal m_DATA_IN : STD_LOGIC_VECTOR (831 downto 0); -signal m_READ_OUT : STD_LOGIC_VECTOR (15 downto 0); - -begin - - --- m_DATAREADY_OUT(0) <= MED_INIT_DATAREADY_OUT; --- m_DATAREADY_OUT(1) <= MED_REPLY_DATAREADY_OUT; --- m_DATA_OUT(50 downto 0) <= MED_INIT_DATA_OUT; --- m_DATA_OUT(101 downto 51) <= MED_REPLY_DATA_OUT; --- MED_INIT_READ_IN <= m_READ_IN(0); --- MED_REPLY_READ_IN <= m_READ_IN(1); - --- MED_INIT_DATAREADY_IN <= m_DATAREADY_IN(0); --- MED_REPLY_DATAREADY_IN <= m_DATAREADY_IN(1); --- MED_INIT_DATA_IN <= m_DATA_IN(50 downto 0); --- MED_REPLY_DATA_IN <= m_DATA_IN(101 downto 51); --- m_READ_OUT(0) <= MED_INIT_READ_OUT; --- m_READ_OUT(1) <= MED_REPLY_READ_OUT; - - G1: for channel in 0 to 15 generate -------------------------------------------------------------------------------- --- loop over the channels -------------------------------------------------------------------------------- - GEN_API1: if not (channel = API1_CHANNEL_NUMBER) - and not (channel = API2_CHANNEL_NUMBER) - and not (channel = API3_CHANNEL_NUMBER) - generate - -- make the term - TERM: trb_net_term_mbuf - - generic map (FIFO_TERM_BUFFER_DEPTH => 0 ) - port map ( - -- Misc - CLK => CLK, - RESET => RESET , - CLK_EN => CLK_EN, - -- Media direction port - MED_DATAREADY_OUT => m_DATAREADY_OUT(channel), - MED_DATA_OUT => m_DATA_OUT(channel*52+51 downto channel*52), - MED_READ_IN => m_READ_IN(channel), - - MED_DATAREADY_IN => m_DATAREADY_IN(channel), - MED_DATA_IN => m_DATA_IN(channel*52+51 downto channel*52), - MED_READ_OUT => m_READ_OUT(channel), - MED_ERROR_IN => (others => '0'), - - APL_GOT_TRM => APL_GOT_TRM(channel), - - APL_HOLD_TRM => APL_HOLD_TRM(channel), - APL_DTYPE_IN => (others => '0'), - APL_ERROR_PATTERN_IN => (others => '0'), - - CTRL_GEN => (others => '0'), - CTRL_LOCKED => (others => '0'), - STAT_CTRL_INIT_BUFFER => (others => '0'), - STAT_CTRL_REPLY_BUFFER=> (others => '0'), - - MPLEX_CTRL => APL_MPLEX_CTRL ); - end generate; - end generate; - - MPLEX: trb_net_io_multiplexer - generic map (BUS_WIDTH => 56, - MULT_WIDTH => 4) - port map ( - CLK => CLK, - RESET => RESET , - CLK_EN => CLK_EN, - - MED_DATAREADY_IN => MED_DATAREADY_IN, - MED_DATA_IN => MED_DATA_IN, - MED_READ_OUT => MED_READ_OUT, - - MED_DATAREADY_OUT => MED_DATAREADY_OUT, - MED_DATA_OUT => MED_DATA_OUT, - MED_READ_IN => MED_READ_IN, - - INT_DATAREADY_OUT => m_DATAREADY_IN, - INT_DATA_OUT =>m_DATA_IN, - INT_READ_IN =>m_READ_OUT, - - INT_DATAREADY_IN =>m_DATAREADY_OUT, - INT_DATA_IN =>m_DATA_OUT, - INT_READ_OUT =>m_READ_IN, - - CTRL => MED_MPLEX_CTRL - ); - -API1: trb_net_active_apimbuf - - generic map (INIT_DEPTH => API1_INIT_DEPTH, - REPLY_DEPTH => API1_REPLY_DEPTH, - FIFO_TO_INT_DEPTH => API1_FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => API1_FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_DATAREADY_OUT => m_DATAREADY_OUT(API1_CHANNEL_NUMBER), - MED_DATA_OUT => m_DATA_OUT(API1_CHANNEL_NUMBER*52+51 downto API1_CHANNEL_NUMBER*52), - MED_READ_IN => m_READ_IN(API1_CHANNEL_NUMBER), - - MED_DATAREADY_IN => m_DATAREADY_IN(API1_CHANNEL_NUMBER), - MED_DATA_IN => m_DATA_IN(API1_CHANNEL_NUMBER*52+51 downto API1_CHANNEL_NUMBER*52), - MED_READ_OUT => m_READ_OUT(API1_CHANNEL_NUMBER), - MED_ERROR_IN => (others => '0'), - - -- APL Transmitter port - APL_DATA_IN => APL1_DATA_IN, - APL_WRITE_IN => APL1_WRITE_IN, - APL_FIFO_FULL_OUT => APL1_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL1_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL1_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL1_ERROR_PATTERN_IN, - APL_SEND_IN => APL1_SEND_IN, - APL_TARGET_ADDRESS_IN => APL1_TARGET_ADDRESS_IN, - - -- Receiver port - APL_DATA_OUT => APL1_DATA_OUT, - APL_TYP_OUT => APL1_TYP_OUT, - APL_DATAREADY_OUT => APL1_DATAREADY_OUT, - APL_READ_IN => APL1_READ_IN, - - -- APL Control port - APL_RUN_OUT => APL1_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL1_SEQNR_OUT, - - CTRL_GEN => (others => '0'), - CTRL_LOCKED => (others => '0'), - STAT_CTRL_INIT_BUFFER => (others => '0'), - STAT_CTRL_REPLY_BUFFER=> (others => '0'), - MPLEX_CTRL => APL_MPLEX_CTRL - ); - -API2: trb_net_active_apimbuf - - generic map (INIT_DEPTH => API2_INIT_DEPTH, - REPLY_DEPTH => API2_REPLY_DEPTH, - FIFO_TO_INT_DEPTH => API2_FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => API2_FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_DATAREADY_OUT => m_DATAREADY_OUT(API2_CHANNEL_NUMBER), - MED_DATA_OUT => m_DATA_OUT(API2_CHANNEL_NUMBER*52+51 downto API2_CHANNEL_NUMBER*52), - MED_READ_IN => m_READ_IN(API2_CHANNEL_NUMBER), - - MED_DATAREADY_IN => m_DATAREADY_IN(API2_CHANNEL_NUMBER), - MED_DATA_IN => m_DATA_IN(API2_CHANNEL_NUMBER*52+51 downto API2_CHANNEL_NUMBER*52), - MED_READ_OUT => m_READ_OUT(API2_CHANNEL_NUMBER), - MED_ERROR_IN => (others => '0'), - - -- APL Transmitter port - APL_DATA_IN => APL2_DATA_IN, - APL_WRITE_IN => APL2_WRITE_IN, - APL_FIFO_FULL_OUT => APL2_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL2_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL2_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL2_ERROR_PATTERN_IN, - APL_SEND_IN => APL2_SEND_IN, - APL_TARGET_ADDRESS_IN => APL2_TARGET_ADDRESS_IN, - - -- Receiver port - APL_DATA_OUT => APL2_DATA_OUT, - APL_TYP_OUT => APL2_TYP_OUT, - APL_DATAREADY_OUT => APL2_DATAREADY_OUT, - APL_READ_IN => APL2_READ_IN, - - -- APL Control port - APL_RUN_OUT => APL2_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL2_SEQNR_OUT, - - CTRL_GEN => (others => '0'), - CTRL_LOCKED => (others => '0'), - STAT_CTRL_INIT_BUFFER => (others => '0'), - STAT_CTRL_REPLY_BUFFER=> (others => '0'), - MPLEX_CTRL => APL_MPLEX_CTRL - ); - -API3: trb_net_active_apimbuf - - generic map (INIT_DEPTH => API3_INIT_DEPTH, - REPLY_DEPTH => API3_REPLY_DEPTH, - FIFO_TO_INT_DEPTH => API3_FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => API3_FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - - port map( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_DATAREADY_OUT => m_DATAREADY_OUT(API3_CHANNEL_NUMBER), - MED_DATA_OUT => m_DATA_OUT(API3_CHANNEL_NUMBER*52+51 downto API3_CHANNEL_NUMBER*52), - MED_READ_IN => m_READ_IN(API3_CHANNEL_NUMBER), - - MED_DATAREADY_IN => m_DATAREADY_IN(API3_CHANNEL_NUMBER), - MED_DATA_IN => m_DATA_IN(API3_CHANNEL_NUMBER*52+51 downto API3_CHANNEL_NUMBER*52), - MED_READ_OUT => m_READ_OUT(API3_CHANNEL_NUMBER), - MED_ERROR_IN => (others => '0'), - - -- APL Transmitter port - APL_DATA_IN => APL3_DATA_IN, - APL_WRITE_IN => APL3_WRITE_IN, - APL_FIFO_FULL_OUT => APL3_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL3_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL3_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL3_ERROR_PATTERN_IN, - APL_SEND_IN => APL3_SEND_IN, - APL_TARGET_ADDRESS_IN => APL3_TARGET_ADDRESS_IN, - - -- Receiver port - APL_DATA_OUT => APL3_DATA_OUT, - APL_TYP_OUT => APL3_TYP_OUT, - APL_DATAREADY_OUT => APL3_DATAREADY_OUT, - APL_READ_IN => APL3_READ_IN, - - -- APL Control port - APL_RUN_OUT => APL3_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL3_SEQNR_OUT, - - CTRL_GEN => (others => '0'), - CTRL_LOCKED => (others => '0'), - STAT_CTRL_INIT_BUFFER => (others => '0'), - STAT_CTRL_REPLY_BUFFER=> (others => '0'), - MPLEX_CTRL => APL_MPLEX_CTRL - ); - - -end trb_net_endpoint_3ch_arch; - diff --git a/oldfiles/trb_net_fanout_hub.vhd b/oldfiles/trb_net_fanout_hub.vhd deleted file mode 100644 index 5f6f73e..0000000 --- a/oldfiles/trb_net_fanout_hub.vhd +++ /dev/null @@ -1,400 +0,0 @@ - --- This is to be rewritten before it can be fully used. It is not approbriate --- to use full apis in a hub - rewriting every header takes way too much time --- and too much buffers - ---LIMITATIONS: --------------- --- long transfers are not transmitted, since the addresses do not match! --- no check for fifo_full on active apis --- seqnr are not synchronized --- all outputs must be connected - - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - - -entity trb_net_fanout_hub is - generic( - OUTPUT_PORTS : integer range 1 to 8 := 4 - ); - port( - CLK: in std_logic; - CLK_EN: in std_logic; - RESET: in std_logic; - - - STAT: out std_logic_vector(31 downto 0) - ); -end entity; - - -architecture trb_net_fanout_hub_arch of trb_net_fanout_hub is - -component trb_net_passive_apimbuf is - generic (INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3; -- or the replyibuf - FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 3; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0 -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Status and control port => just coming from the iobuf for debugging - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_api_control_signals: out std_logic_vector(31 downto 0); - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0); - API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); - end component; - -component trb_net_active_apimbuf is - generic (INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3; -- or the replyibuf - FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 3; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0 -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Status and control port => just coming from the iobuf for debugging - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_api_control_signals: out std_logic_vector(31 downto 0); - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0); - API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); - end component; - - - -type logic_1_array is array (OUTPUT_PORTS downto 0) of std_logic; -type vector_3_array is array (OUTPUT_PORTS downto 0) of std_logic_vector(2 downto 0); -type vector_4_array is array (OUTPUT_PORTS downto 0) of std_logic_vector(3 downto 0); -type vector_8_array is array (OUTPUT_PORTS downto 0) of std_logic_vector(7 downto 0); -type vector_16_array is array (OUTPUT_PORTS downto 0) of std_logic_vector(15 downto 0); -type vector_32_array is array (OUTPUT_PORTS downto 0) of std_logic_vector(31 downto 0); -type vector_48_array is array (OUTPUT_PORTS downto 0) of std_logic_vector(47 downto 0); -type vector_52_array is array (OUTPUT_PORTS downto 0) of std_logic_vector(51 downto 0); - ---(0) of each array is the passive input api ---(x) all others are the active output apis - - -signal MED_DATAREADY_OUT : logic_1_array; -signal MED_DATA_OUT: vector_52_array; -signal MED_READ_IN: logic_1_array; -signal MED_DATAREADY_IN: logic_1_array; -signal MED_DATA_IN: vector_52_array; -signal MED_READ_OUT: logic_1_array; -signal MED_ERROR_IN: vector_3_array; -signal APL_DATA_IN: vector_48_array; -signal APL_WRITE_IN: logic_1_array; -signal APL_FIFO_FULL_OUT: logic_1_array; -signal APL_SHORT_TRANSFER_IN:logic_1_array; -signal APL_DTYPE_IN: vector_4_array; -signal APL_ERROR_PATTERN_IN: vector_32_array; -signal APL_SEND_IN: logic_1_array; -signal APL_TARGET_ADDRESS_IN:vector_16_array; -signal APL_DATA_OUT: vector_48_array; -signal APL_TYP_OUT: vector_3_array; -signal APL_DATAREADY_OUT: logic_1_array; -signal APL_READ_IN: logic_1_array; -signal APL_RUN_OUT: logic_1_array; -signal APL_MY_ADDRESS_IN: vector_16_array; -signal APL_SEQNR_OUT: vector_8_array; -signal STAT_GEN: vector_32_array; -signal STAT_LOCKED: vector_32_array; -signal STAT_INIT_BUFFER: vector_32_array; -signal STAT_REPLY_BUFFER: vector_32_array; -signal STAT_api_control_signals: vector_32_array; -signal CTRL_GEN: vector_32_array; -signal CTRL_LOCKED: vector_32_array; -signal STAT_CTRL_INIT_BUFFER: vector_32_array; -signal STAT_CTRL_REPLY_BUFFER: vector_32_array; -signal MPLEX_CTRL: vector_32_array; -signal API_STAT_FIFO_TO_INT: vector_32_array; -signal API_STAT_FIFO_TO_APL: vector_32_array; - -signal this_APL_RUN_OUT, last_APL_RUN_OUT : logic_1_array; -signal APL_RUN_OUT_fallen, next_APL_RUN_OUT_fallen : logic_1_array; -signal next_APL_SEND_IN : logic_1_array; - - - -begin - ---------------------------------------- ---generate all apis ---------------------------------------- - - output_api: for i in 1 to OUTPUT_PORTS generate - output_api: trb_net_active_apimbuf - --no generic map, using defaults - port map( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_OUT => MED_DATAREADY_OUT(i), - MED_DATA_OUT => MED_DATA_OUT(i), - MED_READ_IN => MED_READ_IN(i), - MED_DATAREADY_IN => MED_DATAREADY_IN(i), - MED_DATA_IN => MED_DATA_IN(i), - MED_READ_OUT => MED_READ_OUT(i), - MED_ERROR_IN => MED_ERROR_IN(i), - APL_DATA_IN => APL_DATA_IN(1), - APL_WRITE_IN => APL_WRITE_IN(1), - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT(i), - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN(1), - APL_DTYPE_IN => APL_DTYPE_IN(1), - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN(1), - APL_SEND_IN => APL_SEND_IN(1), - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN(1), - APL_DATA_OUT => APL_DATA_OUT(i), - APL_TYP_OUT => APL_TYP_OUT(i), - APL_DATAREADY_OUT => APL_DATAREADY_OUT(i), - APL_READ_IN => APL_READ_IN(1), - APL_RUN_OUT => APL_RUN_OUT(i), - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN(1), - APL_SEQNR_OUT => APL_SEQNR_OUT(i), - STAT_GEN => STAT_GEN(i), - STAT_LOCKED => STAT_LOCKED(i), - STAT_INIT_BUFFER => STAT_INIT_BUFFER(i), - STAT_REPLY_BUFFER => STAT_REPLY_BUFFER(i), - STAT_api_control_signals => STAT_api_control_signals(i), - CTRL_GEN => CTRL_GEN(i), - CTRL_LOCKED => CTRL_LOCKED(i), - STAT_CTRL_INIT_BUFFER => STAT_CTRL_INIT_BUFFER(i), - STAT_CTRL_REPLY_BUFFER => STAT_CTRL_REPLY_BUFFER(i), - MPLEX_CTRL => MPLEX_CTRL(i), - API_STAT_FIFO_TO_INT => API_STAT_FIFO_TO_INT(i), - API_STAT_FIFO_TO_APL => API_STAT_FIFO_TO_APL(i) - ); - end generate; - - - input_api: trb_net_passive_apimbuf - --no generic map, using defaults - port map( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_OUT => MED_DATAREADY_OUT(0), - MED_DATA_OUT => MED_DATA_OUT(0), - MED_READ_IN => MED_READ_IN(0), - MED_DATAREADY_IN => MED_DATAREADY_IN(0), - MED_DATA_IN => MED_DATA_IN(0), - MED_READ_OUT => MED_READ_OUT(0), - MED_ERROR_IN => MED_ERROR_IN(0), - --- - APL_DATA_IN => APL_DATA_IN(0), - APL_WRITE_IN => APL_WRITE_IN(0), - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT(0), - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN(0), - APL_DTYPE_IN => APL_DTYPE_IN(0), - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN(0), - APL_SEND_IN => APL_SEND_IN(0), - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN(0), - APL_DATA_OUT => APL_DATA_OUT(0), - APL_TYP_OUT => APL_TYP_OUT(0), - APL_DATAREADY_OUT => APL_DATAREADY_OUT(0), - APL_READ_IN => APL_READ_IN(0), - APL_RUN_OUT => APL_RUN_OUT(0), - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN(0), - APL_SEQNR_OUT => APL_SEQNR_OUT(0), - --- - STAT_GEN => STAT_GEN(0), - STAT_LOCKED => STAT_LOCKED(0), - STAT_INIT_BUFFER => STAT_INIT_BUFFER(0), - STAT_REPLY_BUFFER => STAT_REPLY_BUFFER(0), - STAT_api_control_signals => STAT_api_control_signals(0), - CTRL_GEN => CTRL_GEN(0), - CTRL_LOCKED => CTRL_LOCKED(0), - STAT_CTRL_INIT_BUFFER => STAT_CTRL_INIT_BUFFER(0), - STAT_CTRL_REPLY_BUFFER => STAT_CTRL_REPLY_BUFFER(0), - MPLEX_CTRL => MPLEX_CTRL(0), - API_STAT_FIFO_TO_INT => API_STAT_FIFO_TO_INT(0), - API_STAT_FIFO_TO_APL => API_STAT_FIFO_TO_APL(0) - ); - - - - - APL_DATA_IN(1) <= (others => '0'); - APL_SHORT_TRANSFER_IN(1) <= '1'; - APL_SHORT_TRANSFER_IN(0) <= '1'; - APL_ERROR_PATTERN_IN(1) <= APL_DATA_OUT(0)(47 downto 16); - APL_WRITE_IN(1) <= '0'; - APL_WRITE_IN(0) <= '0'; - - APL_DTYPE_IN(1) <= APL_DATA_OUT(0)(3 downto 0); - APL_SEND_IN(1) <= APL_DATAREADY_OUT(0); - APL_TARGET_ADDRESS_IN(1) <= (others => '0'); - APL_READ_IN(1) <= '1'; - APL_READ_IN(0) <= '1'; - APL_MY_ADDRESS_IN(1) <= (others => '0'); - ---merge all errorpatterns -------------------------- - process(APL_DATA_OUT) - variable tmp : std_logic_vector(31 downto 0); - begin - tmp := (others => '0'); - for i in 1 to OUTPUT_PORTS loop - tmp := tmp or APL_DATA_OUT(i)(47 downto 16); - end loop; - APL_ERROR_PATTERN_IN(0) <= tmp; - end process; - - ---check for falling run_out for all output apis ------------------------------------------------ - process(last_APL_RUN_OUT, this_APL_RUN_OUT, APL_RUN_OUT_fallen) - variable tmp : std_logic; - begin - next_APL_RUN_OUT_fallen <= APL_RUN_OUT_fallen; - next_APL_SEND_IN(0) <= '0'; - for i in 1 to OUTPUT_PORTS loop - if last_APL_RUN_OUT(i)= '1' and this_APL_RUN_OUT(i) = '0' then - next_APL_RUN_OUT_fallen(i) <= '1'; - end if; - end loop; - tmp := '1'; - for i in 1 to OUTPUT_PORTS loop - tmp := tmp and APL_RUN_OUT_fallen(i); - end loop; - if tmp = '1' then - next_APL_SEND_IN(0) <= '1'; - next_APL_RUN_OUT_fallen <= (others => '0'); - end if; - end process; - - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - this_APL_RUN_OUT <= (others => '0'); - last_APL_RUN_OUT <= (others => '0'); - APL_RUN_OUT_fallen <= (others => '0'); - APL_SEND_IN(0) <= '0'; - else - this_APL_RUN_OUT <= APL_RUN_OUT; - last_APL_RUN_OUT <= this_APL_RUN_OUT; - APL_RUN_OUT_fallen <= next_APL_RUN_OUT_fallen; - APL_SEND_IN(0) <= next_APL_SEND_IN(0); - end if; - end if; - end process; - - -end architecture; - - - diff --git a/oldfiles/trb_net_fifo_arch.vhd b/oldfiles/trb_net_fifo_arch.vhd deleted file mode 100644 index 91fb10d..0000000 --- a/oldfiles/trb_net_fifo_arch.vhd +++ /dev/null @@ -1,197 +0,0 @@ --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetFifo - --- taken example from xapp256, but rewritten most of the parts --- output fully synchonized with a "look-ahead" logic - -library ieee; - -use ieee.std_logic_1164.all; -USE ieee.std_logic_signed.ALL; -USE IEEE.numeric_std.ALL; -use work.trb_net_std.all; - - -architecture arch_trb_net_fifo of trb_net_fifo is - component trb_net16_bram_fifo is - port (clock_in: IN std_logic; - read_enable_in: IN std_logic; - write_enable_in: IN std_logic; - write_data_in: IN std_logic_vector(17 downto 0); - fifo_gsr_in: IN std_logic; - read_data_out: OUT std_logic_vector(17 downto 0); - full_out: OUT std_logic; - empty_out: OUT std_logic; - fifocount_out: OUT std_logic_vector(3 downto 0)); - end component; - - component shift_lut_x16 - generic ( - ADDRESS_WIDTH : integer := 0 - ); - port ( - D : in std_logic; - CE : in std_logic; - CLK : in std_logic; - A : in std_logic_vector (ADDRESS_WIDTH+3 downto 0); - Q : out std_logic - ); - end component; - - signal current_ADDRESS_SRL : std_logic_vector(DEPTH+1 downto 0); - signal next_ADDRESS_SRL : std_logic_vector(DEPTH+1 downto 0); - signal real_ADDRESS_SRL : std_logic_vector(DEPTH+1 downto 0); - signal current_DOUT : std_logic_vector(WIDTH -1 downto 0); - signal next_DOUT : std_logic_vector(WIDTH -1 downto 0); - - signal current_FULL, next_FULL : std_logic; - signal current_EMPTY, next_EMPTY : std_logic; - signal do_shift, do_shift_internal : std_logic; - signal fifocount : std_logic_vector(3 downto 0); - -begin - - gen_shiftreg : if DEPTH /= 8 or WIDTH /= 18 or FORCE_LUT = 1 generate - - FULL_OUT <= current_FULL; - EMPTY_OUT <= current_EMPTY; - do_shift <= do_shift_internal and CLK_EN; - - - -- generate the shift registers - - inst_SRLC256E_MACRO : for i in 0 to (WIDTH - 1) generate - U1 : shift_lut_x16 - generic map ( - ADDRESS_WIDTH => DEPTH - 3 - ) - port map ( - D => DATA_IN(i), - CE => do_shift, - CLK => CLK, - A => real_ADDRESS_SRL(DEPTH downto 0), - Q => next_DOUT(i)); - end generate; - - reg_counter: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - current_ADDRESS_SRL <= (others => '0'); - elsif CLK_EN = '1' then - current_ADDRESS_SRL <= next_ADDRESS_SRL; - else - current_ADDRESS_SRL <= current_ADDRESS_SRL; - end if; - end if; - end process; - - -- adress logic - comb_counter: process(WRITE_ENABLE_IN, READ_ENABLE_IN, current_ADDRESS_SRL, - current_EMPTY, current_FULL) - begin - do_shift_internal <= WRITE_ENABLE_IN and not current_FULL; - next_ADDRESS_SRL <= current_ADDRESS_SRL; - real_ADDRESS_SRL <= current_ADDRESS_SRL - 1; - - -- no activity - if WRITE_ENABLE_IN = '0' and READ_ENABLE_IN = '0' then - next_ADDRESS_SRL <= current_ADDRESS_SRL; - real_ADDRESS_SRL <= current_ADDRESS_SRL - 1; - -- read from FIFO - elsif WRITE_ENABLE_IN = '0' and READ_ENABLE_IN = '1' then - if current_EMPTY = '0' then - next_ADDRESS_SRL <= current_ADDRESS_SRL - 1; - real_ADDRESS_SRL <= current_ADDRESS_SRL - 2; - end if; - -- write into FIFO - elsif WRITE_ENABLE_IN = '1' and READ_ENABLE_IN = '0' then - if current_FULL = '0' then - next_ADDRESS_SRL <= current_ADDRESS_SRL + 1; - real_ADDRESS_SRL <= current_ADDRESS_SRL - 1; - end if; - -- read and write can be done in all cases - elsif WRITE_ENABLE_IN = '1' and READ_ENABLE_IN = '1' then - next_ADDRESS_SRL <= current_ADDRESS_SRL; - real_ADDRESS_SRL <= current_ADDRESS_SRL - 2; - end if; - end process; - - - -- registered read from FIFO - reg_output: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - current_DOUT <= (others => '0'); - elsif CLK_EN = '1' then - if current_EMPTY = '1' or real_ADDRESS_SRL(DEPTH+1) = '1' then - current_DOUT <= DATA_IN; - else - current_DOUT <= next_DOUT; - end if; - end if; - end if; - end process; - - -- Comparator Block - next_FULL <= next_ADDRESS_SRL(DEPTH+1); - -- Empty flag is generated when reading from the last location - next_EMPTY <= '1' when (next_ADDRESS_SRL(DEPTH+1 downto 0) = 0) else '0'; - - reg_empty: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - current_EMPTY <= '1'; - current_FULL <= '0'; - elsif CLK_EN = '1' then - current_EMPTY <= next_EMPTY; - current_FULL <= next_FULL; - else - current_EMPTY <= current_EMPTY; - current_FULL <= current_FULL; - end if; - end if; - end process; - - FULL_OUT <= current_FULL; - EMPTY_OUT <= current_EMPTY; - DATA_OUT <= current_DOUT; - - - -- generate the real depth which is at least 3 - -- 0 -> 2 - -- 1 -> 4 - -- 2 -> 8 - -- 3 -> 16 - CHECK_DEPTH1: if DEPTH>=3 generate - DEPTH_OUT <= std_logic_vector(to_unsigned(DEPTH,8)); - end generate; - CHECK_DEPTH2: if DEPTH<3 generate - DEPTH_OUT <= x"03"; - end generate; - end generate; - - - - gen_BRAM : if (DEPTH = 8 and WIDTH = 18) and FORCE_LUT = 0 generate - bram_fifo:trb_net16_bram_fifo - port map ( - clock_in => CLK, - read_enable_in => READ_ENABLE_IN, - write_enable_in => WRITE_ENABLE_IN, - write_data_in => DATA_IN, - fifo_gsr_in => RESET, - read_data_out => DATA_OUT, - full_out => FULL_OUT, - empty_out => EMPTY_OUT, - fifocount_out => fifocount - ); - - DEPTH_OUT <= (others => '1'); - end generate; - - -end arch_trb_net_fifo; - - diff --git a/oldfiles/trb_net_ibuf.vhd b/oldfiles/trb_net_ibuf.vhd deleted file mode 100644 index 9105560..0000000 --- a/oldfiles/trb_net_ibuf.vhd +++ /dev/null @@ -1,299 +0,0 @@ --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetIBUF - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_ibuf is - - generic (DEPTH : integer := 3); -- Depth of the FIFO, 2^(n+1) - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- Internal direction port - INT_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last header - INT_DATAREADY_OUT: out STD_LOGIC; - INT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - INT_ERROR_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- Status and control port - STAT_LOCKED: out STD_LOGIC_VECTOR (15 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (15 downto 0); - STAT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0) - ); -end trb_net_ibuf; - -architecture trb_net_ibuf_arch of trb_net_ibuf is - -component trb_net_fifo is - - generic (WIDTH : integer := 8; -- FIFO word width - DEPTH : integer := 4); -- Depth of the FIFO, 2^(n+1) - - port (CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - DATA_IN : in std_logic_vector(WIDTH - 1 downto 0); -- Input data - WRITE_ENABLE_IN : in std_logic; - DATA_OUT : out std_logic_vector(WIDTH - 1 downto 0); -- Output data - READ_ENABLE_IN : in std_logic; - FULL_OUT : out std_logic; -- Full Flag - EMPTY_OUT : out std_logic; - DEPTH_OUT : out std_logic_vector(7 downto 0) - ); - -end component; - - component trb_net_sbuf is - - generic (DATA_WIDTH : integer := 56; - VERSION: integer := 0); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- port to combinatorial logic - COMB_DATAREADY_IN: in STD_LOGIC; --comb logic provides data word - COMB_next_READ_OUT: out STD_LOGIC; --sbuf can read in NEXT cycle - COMB_READ_IN: in STD_LOGIC; --comb logic IS reading - COMB_DATA_IN: in STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - -- Port to synchronous output. - SYN_DATAREADY_OUT: out STD_LOGIC; - SYN_DATA_OUT: out STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - SYN_READ_IN: in STD_LOGIC; - -- Status and control port - STAT_BUFFER: out STD_LOGIC - ); - end component; - -signal fifo_data_in : std_logic_vector(50 downto 0); -signal fifo_data_out : std_logic_vector(50 downto 0); -signal fifo_write, fifo_read : std_logic; -signal fifo_full, fifo_empty : std_logic; -signal fifo_depth : std_logic_vector(7 downto 0); - -signal next_read_out, reg_read_out : std_logic; - -signal got_ack_internal, reg_ack_internal : std_logic; --should be raised for 1 cycle when ack - --arrived -signal is_locked, got_locked,release_locked : std_logic; -signal got_eob_out, reg_eob_out: std_logic; -signal sbuf_free, comb_next_read: std_logic; -signal tmp_INT_DATAREADY_OUT: std_logic; -signal tmp_INT_DATA_OUT: std_logic_vector(50 downto 0); -signal current_last_header, next_last_header : std_logic_vector(50 downto 0); - -type ERROR_STATE is (IDLE, GOT_OVERFLOW_ERROR, GOT_LOCKED_ERROR, GOT_UNDEFINED_ERROR); -signal current_error_state, next_error_state : ERROR_STATE; - -signal next_rec_buffer_size_out, current_rec_buffer_size_out - : std_logic_vector(3 downto 0); -- buffer size control - - begin - - FIFO: trb_net_fifo - generic map ( - WIDTH => 51, - DEPTH => DEPTH) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - DATA_IN => fifo_data_in, - WRITE_ENABLE_IN => fifo_write, - DATA_OUT => fifo_data_out, - READ_ENABLE_IN => fifo_read, - FULL_OUT => fifo_full, - EMPTY_OUT => fifo_empty, - DEPTH_OUT => fifo_depth - ); - - fifo_data_in <= MED_DATA_IN; - --- this process controls the writing of the media into the fifo - FILTER_DATAREADY_IN : process(MED_DATA_IN, MED_DATAREADY_IN, MED_ERROR_IN, - fifo_full, is_locked, current_rec_buffer_size_out, - current_error_state, reg_read_out) - begin -- process - got_ack_internal <= '0'; - next_read_out <= '0'; - fifo_write <= '0'; - next_rec_buffer_size_out <= current_rec_buffer_size_out; - next_error_state <= current_error_state; - - if MED_DATAREADY_IN = '1' and reg_read_out= '1' then - if MED_DATA_IN(TYPE_POSITION) = TYPE_ACK then - -- BUGBUG: this causes trouble if the IBUF is full -> ack sent even if buffer overflow - got_ack_internal <= '1'; - if MED_DATA_IN(F1_POSITION) = F1_CHECK_ACK then - next_rec_buffer_size_out <= MED_DATA_IN(BUFFER_SIZE_POSITION); - end if; - -- elsif fifo_full = '0' and is_locked = '0' then - elsif fifo_full = '0' then -- still ACKs may come even when locked - fifo_write <= '1'; - next_read_out <= '1'; - elsif fifo_full = '1' then - next_error_state <= GOT_OVERFLOW_ERROR; - elsif is_locked = '1' then - next_error_state <= GOT_LOCKED_ERROR; - end if; -- end TYPE - end if; -- end MED_DATAREADY_IN - if fifo_full = '0' then -- and is_locked = '0' then - next_read_out <= '1'; - end if; - end process; - - MED_READ_OUT <= reg_read_out; - - reg_buffer: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - current_rec_buffer_size_out <= (others => '0'); - reg_ack_internal <= '0'; - reg_read_out <= '0'; - current_error_state <= IDLE; - elsif CLK_EN = '1' then - current_rec_buffer_size_out <= next_rec_buffer_size_out; - reg_ack_internal <= got_ack_internal; - reg_read_out <= next_read_out; - current_error_state <= next_error_state; - else - current_rec_buffer_size_out <= current_rec_buffer_size_out; - reg_ack_internal <= reg_ack_internal; - reg_read_out <= reg_read_out; - current_error_state <= current_error_state; - end if; - end if; - end process; - - - - SBUF: trb_net_sbuf - generic map (DATA_WIDTH => 51, Version => 0) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => tmp_INT_DATAREADY_OUT, - COMB_next_READ_OUT => comb_next_read, - COMB_READ_IN => '1', - COMB_DATA_IN => tmp_INT_DATA_OUT, - SYN_DATAREADY_OUT => INT_DATAREADY_OUT, - SYN_DATA_OUT => INT_DATA_OUT, - SYN_READ_IN => INT_READ_IN - ); - - sbuf_free <= comb_next_read or INT_READ_IN; --sbuf killed - --- this process controls what will be forwarded to the internal point - DATA_OUT : process (INT_HEADER_IN, fifo_data_out, - current_last_header, INT_READ_IN, - release_locked, is_locked, sbuf_free, fifo_empty) - begin - -- tmp_INT_DATA_OUT <= (others => '1'); - tmp_INT_DATA_OUT <= fifo_data_out; - tmp_INT_DATAREADY_OUT <= '0'; - got_eob_out <= '0'; - fifo_read <= '0'; - got_locked <= is_locked; - next_last_header <= current_last_header; - - if fifo_empty = '0' then - if sbuf_free = '1' and fifo_data_out(TYPE_POSITION) = TYPE_DAT then - -- next data word can be registered - tmp_INT_DATAREADY_OUT <= '1'; - fifo_read <= '1'; - elsif sbuf_free = '1' and fifo_data_out(TYPE_POSITION) = TYPE_TRM then - got_eob_out <= '1'; --exactly when buffer is killed - tmp_INT_DATAREADY_OUT <= '1'; - if release_locked = '0' then - got_locked <= '1'; - end if; - fifo_read <= '1'; - elsif sbuf_free = '1' and fifo_data_out(TYPE_POSITION) = TYPE_HDR then - next_last_header <= fifo_data_out; - tmp_INT_DATAREADY_OUT <= '1'; - fifo_read <= '1'; - elsif fifo_data_out(TYPE_POSITION) = TYPE_EOB then - fifo_read <= '1'; - got_eob_out <= '1'; - tmp_INT_DATAREADY_OUT <= '0'; - -- this should happen only one CLK cycle - end if; - else - tmp_INT_DATAREADY_OUT <= '0'; - end if; - end process; - ---BUGBUG HDR retransmit needed - -release_locked <= CTRL_LOCKED(0); -STAT_LOCKED(0) <= is_locked; -STAT_LOCKED(15 downto 1) <= (others => '0'); - -reg_locked: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - is_locked <= '0'; - reg_eob_out <= '0'; - current_last_header <= (others => '0'); - elsif CLK_EN = '1' then - if release_locked = '1' then - is_locked <= '0'; - else - is_locked <= got_locked; - end if; - reg_eob_out <= got_eob_out; - current_last_header <= next_last_header; - else - is_locked <= is_locked; - reg_eob_out <= reg_eob_out; - current_last_header <= current_last_header; - end if; - end if; - end process; - - - --- make STAT_BUFFER - STAT_BUFFER(3 downto 0) <= (fifo_depth(3 downto 0)-1); --divide by 2, since 2 - --buffers have to be stored - STAT_BUFFER(7 downto 4) <= current_rec_buffer_size_out; - STAT_BUFFER(8) <= reg_eob_out; - STAT_BUFFER(9) <= reg_ack_internal; - - MAKE_ERROR_BITS : process(current_error_state) - begin - if current_error_state = IDLE then - STAT_BUFFER(11 downto 10) <= "00"; - elsif current_error_state = GOT_OVERFLOW_ERROR then - STAT_BUFFER(11 downto 10) <= "01"; - elsif current_error_state = GOT_LOCKED_ERROR then - STAT_BUFFER(11 downto 10) <= "10"; - else - STAT_BUFFER(11 downto 10) <= "11"; - end if; - end process; - - STAT_BUFFER(31 downto 12) <= (others => '0'); - -end trb_net_ibuf_arch; - diff --git a/oldfiles/trb_net_io_multiplexer.vhd b/oldfiles/trb_net_io_multiplexer.vhd deleted file mode 100644 index ab0bdcb..0000000 --- a/oldfiles/trb_net_io_multiplexer.vhd +++ /dev/null @@ -1,248 +0,0 @@ --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetIBUF - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - - -entity trb_net_io_multiplexer is - --- generic (BUS_WIDTH : integer := 56; --- MULT_WIDTH : integer := 5); - generic (BUS_WIDTH : integer := 16; - MULT_WIDTH : integer := 1); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - -- highest bits are mult. - MED_READ_OUT: out STD_LOGIC; - - MED_DATAREADY_OUT: out STD_LOGIC; - MED_DATA_OUT: out STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - MED_READ_IN: in STD_LOGIC; - - -- Internal direction port - INT_DATAREADY_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_OUT: out STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - INT_DATAREADY_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_IN: in STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - -- Status and control port - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - STAT: out STD_LOGIC_VECTOR (31 downto 0) - ); -end trb_net_io_multiplexer; - -architecture trb_net_io_multiplexer_arch of trb_net_io_multiplexer is - - component trb_net_pattern_gen is - - generic (MULT_WIDTH : integer := 3); - - port( - INPUT_IN : in STD_LOGIC_VECTOR (MULT_WIDTH-1 downto 0); - RESULT_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0) - ); - end component; - - component trb_net16_sbuf is - generic ( - DATA_WIDTH : integer := 16; - NUM_WIDTH : integer := 2; - VERSION : integer := 0 - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- port to combinatorial logic - COMB_DATAREADY_IN : in STD_LOGIC; --comb logic provides data word - COMB_next_READ_OUT: out STD_LOGIC; --sbuf can read in NEXT cycle - COMB_READ_IN : in STD_LOGIC; --comb logic IS reading - COMB_DATA_IN : in STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - COMB_PACKET_NUM_IN: in STD_LOGIC_VECTOR(NUM_WIDTH-1 downto 0); - -- Port to synchronous output. - SYN_DATAREADY_OUT : out STD_LOGIC; - SYN_DATA_OUT : out STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - SYN_PACKET_NUM_OUT: out STD_LOGIC_VECTOR(NUM_WIDTH-1 downto 0); - SYN_READ_IN : in STD_LOGIC; - -- Status and control port - STAT_BUFFER : out STD_LOGIC - ); - end component; - - component trb_net_priority_arbiter is - - generic (WIDTH : integer := 16); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - INPUT_IN : in STD_LOGIC_VECTOR (WIDTH-1 downto 0); - RESULT_OUT: out STD_LOGIC_VECTOR (WIDTH-1 downto 0); - - ENABLE : in std_logic; - CTRL: in STD_LOGIC_VECTOR (31 downto 0) - ); - end component; - - signal demux_next_READ, current_demux_READ : STD_LOGIC_VECTOR ((2**MULT_WIDTH)-1 downto 0); - signal next_demux_dr, next_demux_dr_tmp: STD_LOGIC_VECTOR ((2**MULT_WIDTH)-1 downto 0); --- signal demux_read: STD_LOGIC; -- buffer is read out and killed - signal current_MED_READ_OUT, next_MED_READ_OUT: STD_LOGIC; --- signal sbuf_stat: STD_LOGIC_VECTOR (2*(2**MULT_WIDTH)-1 downto 0); - - signal tmp_INT_READ_OUT: STD_LOGIC_VECTOR ((2**MULT_WIDTH)-1 downto 0); - signal tmp_tmp_INT_READ_OUT: STD_LOGIC_VECTOR ((2**MULT_WIDTH)-1 downto 0); - signal mux_read, mux_enable, mux_next_READ: STD_LOGIC; - signal current_mux_buffer: STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - - - - begin - - -------------------------------------------------------------------------------- --- DEMUX ------------------------------------------------------------------------------- - -- the simpler part is the demux - - G1: for i in 0 to 2**MULT_WIDTH-1 generate - DEMUX_SBUF: trb_net16_sbuf - generic map (DATA_WIDTH => BUS_WIDTH-MULT_WIDTH, VERSION => 0) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => next_demux_dr(i), - COMB_next_READ_OUT => demux_next_READ(i), - COMB_READ_IN => current_demux_READ(i), - COMB_DATA_IN => MED_DATA_IN (BUS_WIDTH-MULT_WIDTH-1 downto 0), - SYN_DATAREADY_OUT => INT_DATAREADY_OUT(i), - SYN_DATA_OUT => INT_DATA_OUT ((BUS_WIDTH-MULT_WIDTH)*(i+1)-1 downto (BUS_WIDTH-MULT_WIDTH)*(i)), - SYN_READ_IN => INT_READ_IN(i) - ); - end generate; - - STAT(2 downto 0) <= MED_DATA_IN(50 downto 48); - - MED_READ_OUT <= current_MED_READ_OUT; - - comb_demux : process (next_demux_dr_tmp, demux_next_READ, INT_READ_IN, - MED_DATAREADY_IN, current_MED_READ_OUT) - begin -- process - next_demux_dr <= (others => '0'); - current_demux_READ <= (others => '0'); - -- generate the READ_OUT - next_MED_READ_OUT <= and_all(demux_next_READ or INT_READ_IN); - -- (follow instruction on sbuf) - - current_demux_READ <= (others => '0'); - if current_MED_READ_OUT = '1' then - current_demux_READ <= (others => '1'); - end if; - if current_MED_READ_OUT = '1' and MED_DATAREADY_IN = '1' then - next_demux_dr <= next_demux_dr_tmp; --enable DR on the sbufs - end if; - end process; - --- define next DRx - DEFDR: trb_net_pattern_gen - generic map (MULT_WIDTH => MULT_WIDTH) - port map ( - INPUT_IN => MED_DATA_IN(BUS_WIDTH-1 downto (BUS_WIDTH-MULT_WIDTH)), - RESULT_OUT => next_demux_dr_tmp -- this will have a 1 in ANY case - ); - - sync_demux : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - current_MED_READ_OUT <= '0'; - elsif CLK_EN = '1' then - current_MED_READ_OUT <= next_MED_READ_OUT; - else - current_MED_READ_OUT <= current_MED_READ_OUT; - end if; - end if; - end process; - - -------------------------------------------------------------------------------- --- MUX part with arbitration scheme -------------------------------------------------------------------------------- -ARBITER: trb_net_priority_arbiter - generic map (WIDTH => 2**MULT_WIDTH) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - INPUT_IN => INT_DATAREADY_IN, - RESULT_OUT => tmp_INT_READ_OUT, - ENABLE => mux_enable, - CTRL => CTRL - ); - --- process (tmp_tmp_INT_READ_OUT, mux_enable) --- begin --- if mux_enable = '1' then --- tmp_INT_READ_OUT <= tmp_tmp_INT_READ_OUT; --- else --- tmp_INT_READ_OUT <= (others => '0'); --- end if; --- end process; - --- <= so I have to gate it once more -INT_READ_OUT <= tmp_INT_READ_OUT; - - - - MUX_SBUF: trb_net_sbuf - generic map (DATA_WIDTH => BUS_WIDTH, VERSION => 0) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => mux_read, - COMB_next_READ_OUT => mux_next_READ, - COMB_READ_IN => '1', - COMB_DATA_IN => current_mux_buffer, - SYN_DATAREADY_OUT => MED_DATAREADY_OUT, - SYN_DATA_OUT => MED_DATA_OUT, - SYN_READ_IN => MED_READ_IN - ); - -process (tmp_INT_READ_OUT, INT_DATA_IN) - begin - current_mux_buffer <= (others => '0'); - for i in 0 to 2**MULT_WIDTH-1 loop - if tmp_INT_READ_OUT(i) = '1' then - current_mux_buffer(BUS_WIDTH-MULT_WIDTH-1 downto 0) - <= INT_DATA_IN((BUS_WIDTH-MULT_WIDTH)*(i+1)-1 downto (BUS_WIDTH-MULT_WIDTH)*(i)); - current_mux_buffer(BUS_WIDTH-1 downto BUS_WIDTH-MULT_WIDTH) <= conv_std_logic_vector(i, MULT_WIDTH); - end if; - end loop; - end process; - - mux_enable <= (mux_next_READ); -- or MED_READ_IN - mux_read <= or_all(tmp_INT_READ_OUT and INT_DATAREADY_IN); - -end trb_net_io_multiplexer_arch; - diff --git a/oldfiles/trb_net_iobuf.vhd b/oldfiles/trb_net_iobuf.vhd deleted file mode 100644 index bf2f95c..0000000 --- a/oldfiles/trb_net_iobuf.vhd +++ /dev/null @@ -1,419 +0,0 @@ --- main working horse for the trbnet --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetIOBUF - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_iobuf is - - generic ( - SWITCH_OFF_BUFFER_CHECK : integer := 0; - --switching off erroneous output buffer counter. MUST ONLY be - --used for short transfers!!!! - INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3); -- or the replyibuf - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_INIT_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_INIT_READ_IN: in STD_LOGIC; -- Media is reading - - MED_INIT_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_INIT_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_INIT_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - MED_REPLY_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_REPLY_READ_IN: in STD_LOGIC; -- Media is reading - - MED_REPLY_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_REPLY_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_REPLY_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - -- Internal direction port - - INT_INIT_DATAREADY_OUT: out STD_LOGIC; - INT_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_IN: in STD_LOGIC; - - INT_INIT_DATAREADY_IN: in STD_LOGIC; - INT_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_OUT: out STD_LOGIC; - - - INT_REPLY_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out STD_LOGIC; - INT_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_IN: in STD_LOGIC; - - INT_REPLY_DATAREADY_IN: in STD_LOGIC; - INT_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_OUT: out STD_LOGIC; - - -- Status and control port - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0) - ); -END trb_net_iobuf; - -architecture trb_net_iobuf_arch of trb_net_iobuf is - - component trb_net_ibuf is - - generic (DEPTH : integer := 3); -- Depth of the FIFO, 2^(n+1) - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- Internal direction port - INT_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last header - INT_DATAREADY_OUT: out STD_LOGIC; - INT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - INT_ERROR_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- Status and control port - STAT_LOCKED: out STD_LOGIC_VECTOR (15 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (15 downto 0); - STAT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0) - ); - END component; - - component trb_net_term_ibuf is - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- Internal direction port - INT_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last header - INT_DATAREADY_OUT: out STD_LOGIC; - INT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - INT_ERROR_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- Status and control port - STAT_LOCKED: out STD_LOGIC_VECTOR (15 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (15 downto 0); - STAT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0) - ); - END component; - - component trb_net_obuf is - generic ( - DATA_COUNT_WIDTH : integer := 4; - SWITCH_OFF_BUFFER_CHECK : integer := 0 - --switching off erroneous output buffer counter. MUST ONLY be - --used for short transfers!!!! - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; - MED_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; - -- Internal direction port - INT_DATAREADY_IN: in STD_LOGIC; - INT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_OUT: out STD_LOGIC; - -- Status and control port - STAT_LOCKED: out STD_LOGIC_VECTOR (15 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (15 downto 0); - STAT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); - CTRL_BUFFER: in STD_LOGIC_VECTOR (31 downto 0) - ); - END component; - - -- internal signals for the INITIBUF - signal INITIBUF_error: STD_LOGIC_VECTOR (2 downto 0); -- error watch needed! - signal INITIBUF_stat_locked, INITIBUF_ctrl_locked: STD_LOGIC_VECTOR (15 downto 0); - signal INITIBUF_stat_buffer : STD_LOGIC_VECTOR (31 downto 0); - - -- internal signals for the REPLYIBUF - signal REPLYIBUF_error: STD_LOGIC_VECTOR (2 downto 0); -- error watch needed! - signal REPLYIBUF_stat_locked, REPLYIBUF_ctrl_locked: STD_LOGIC_VECTOR (15 downto 0); - signal REPLYIBUF_stat_buffer : STD_LOGIC_VECTOR (31 downto 0); - - -- internal signals for the INITOBUF - signal INITOBUF_stat_locked, INITOBUF_ctrl_locked: STD_LOGIC_VECTOR (15 downto 0); - signal INITOBUF_stat_buffer, INITOBUF_ctrl_buffer: STD_LOGIC_VECTOR (31 downto 0); - - -- internal signals for the REPLYOBUF - signal REPLYOBUF_stat_locked, REPLYOBUF_ctrl_locked: STD_LOGIC_VECTOR (15 downto 0); - signal REPLYOBUF_stat_buffer, REPLYOBUF_ctrl_buffer: STD_LOGIC_VECTOR (31 downto 0); - --- locking control - signal INIT_IS_LOCKED, REPLY_IS_LOCKED: STD_LOGIC; - signal next_INIT_IS_LOCKED, next_REPLY_IS_LOCKED: STD_LOGIC; - - begin - - GEN_IBUF: if INIT_DEPTH>0 generate - - INITIBUF : trb_net_ibuf - generic map ( - DEPTH => INIT_DEPTH) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_INIT_DATAREADY_IN, - MED_DATA_IN => MED_INIT_DATA_IN, - MED_READ_OUT => MED_INIT_READ_OUT, - MED_ERROR_IN => MED_INIT_ERROR_IN, - INT_HEADER_IN => '0', - INT_DATAREADY_OUT => INT_INIT_DATAREADY_OUT, - INT_DATA_OUT => INT_INIT_DATA_OUT, - INT_READ_IN => INT_INIT_READ_IN, - INT_ERROR_OUT => INITIBUF_error, - STAT_LOCKED(15 downto 0) => INITIBUF_stat_locked, - CTRL_LOCKED(15 downto 0) => INITIBUF_ctrl_locked, - STAT_BUFFER(31 downto 0) => INITIBUF_stat_buffer - ); - - REPLYIBUF : trb_net_ibuf - generic map ( - DEPTH => REPLY_DEPTH) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_REPLY_DATAREADY_IN, - MED_DATA_IN => MED_REPLY_DATA_IN, - MED_READ_OUT => MED_REPLY_READ_OUT, - MED_ERROR_IN => MED_REPLY_ERROR_IN, - INT_HEADER_IN => INT_REPLY_HEADER_IN, - INT_DATAREADY_OUT => INT_REPLY_DATAREADY_OUT, - INT_DATA_OUT => INT_REPLY_DATA_OUT, - INT_READ_IN => INT_REPLY_READ_IN, - INT_ERROR_OUT => REPLYIBUF_error, - STAT_LOCKED(15 downto 0) => REPLYIBUF_stat_locked, - CTRL_LOCKED(15 downto 0) => REPLYIBUF_ctrl_locked, - STAT_BUFFER(31 downto 0) => REPLYIBUF_stat_buffer - ); - - end generate; - - GEN_TERM_IBUF: if INIT_DEPTH=0 generate - - INITIBUF : trb_net_term_ibuf - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_INIT_DATAREADY_IN, - MED_DATA_IN => MED_INIT_DATA_IN, - MED_READ_OUT => MED_INIT_READ_OUT, - MED_ERROR_IN => MED_INIT_ERROR_IN, - INT_HEADER_IN => '0', - INT_DATAREADY_OUT => INT_INIT_DATAREADY_OUT, - INT_DATA_OUT => INT_INIT_DATA_OUT, - INT_READ_IN => INT_INIT_READ_IN, - INT_ERROR_OUT => INITIBUF_error, - STAT_LOCKED(15 downto 0) => INITIBUF_stat_locked, - CTRL_LOCKED(15 downto 0) => INITIBUF_ctrl_locked, - STAT_BUFFER(31 downto 0) => INITIBUF_stat_buffer - ); - - REPLYIBUF : trb_net_term_ibuf - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_IN => MED_REPLY_DATAREADY_IN, - MED_DATA_IN => MED_REPLY_DATA_IN, - MED_READ_OUT => MED_REPLY_READ_OUT, - MED_ERROR_IN => MED_REPLY_ERROR_IN, - INT_HEADER_IN => INT_REPLY_HEADER_IN, - INT_DATAREADY_OUT => INT_REPLY_DATAREADY_OUT, - INT_DATA_OUT => INT_REPLY_DATA_OUT, - INT_READ_IN => INT_REPLY_READ_IN, - INT_ERROR_OUT => REPLYIBUF_error, - STAT_LOCKED(15 downto 0) => REPLYIBUF_stat_locked, - CTRL_LOCKED(15 downto 0) => REPLYIBUF_ctrl_locked, - STAT_BUFFER(31 downto 0) => REPLYIBUF_stat_buffer - ); - - end generate; - - INITOBUF : trb_net_obuf - generic map ( - DATA_COUNT_WIDTH => 16, - SWITCH_OFF_BUFFER_CHECK => SWITCH_OFF_BUFFER_CHECK - --switching off erroneous output buffer counter. MUST ONLY be - --used for short transfers!!!! - ) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_OUT => MED_INIT_DATAREADY_OUT, - MED_DATA_OUT => MED_INIT_DATA_OUT, - MED_READ_IN => MED_INIT_READ_IN, - INT_DATAREADY_IN => INT_INIT_DATAREADY_IN, - INT_DATA_IN => INT_INIT_DATA_IN, - INT_READ_OUT => INT_INIT_READ_OUT, - STAT_LOCKED(15 downto 0) => INITOBUF_stat_locked, - CTRL_LOCKED(15 downto 0) => INITOBUF_ctrl_locked, - STAT_BUFFER(31 downto 0) => INITOBUF_stat_buffer, - CTRL_BUFFER(31 downto 0) => INITOBUF_ctrl_buffer - ); - - REPLYOBUF : trb_net_obuf - generic map ( - DATA_COUNT_WIDTH => 16, - SWITCH_OFF_BUFFER_CHECK => SWITCH_OFF_BUFFER_CHECK - --switching off erroneous output buffer counter. MUST ONLY be - --used for short transfers!!!! - ) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - MED_DATAREADY_OUT => MED_REPLY_DATAREADY_OUT, - MED_DATA_OUT => MED_REPLY_DATA_OUT, - MED_READ_IN => MED_REPLY_READ_IN, - INT_DATAREADY_IN => INT_REPLY_DATAREADY_IN, - INT_DATA_IN => INT_REPLY_DATA_IN, - INT_READ_OUT => INT_REPLY_READ_OUT, - STAT_LOCKED(15 downto 0) => REPLYOBUF_stat_locked, - CTRL_LOCKED(15 downto 0) => REPLYOBUF_ctrl_locked, - STAT_BUFFER(31 downto 0) => REPLYOBUF_stat_buffer, - CTRL_BUFFER(31 downto 0) => REPLYOBUF_ctrl_buffer - ); - --- build the registers according to the wiki page - STAT_INIT_BUFFER(11 downto 0) <= INITIBUF_stat_buffer(11 downto 0); - STAT_INIT_BUFFER(15 downto 14) <= INITOBUF_stat_buffer(1 downto 0); - STAT_INIT_BUFFER(31 downto 16) <= INITOBUF_stat_buffer(31 downto 16); - STAT_REPLY_BUFFER(11 downto 0) <= REPLYIBUF_stat_buffer(11 downto 0); - STAT_REPLY_BUFFER(15 downto 14) <= REPLYOBUF_stat_buffer(1 downto 0); - STAT_REPLY_BUFFER(31 downto 16) <= REPLYOBUF_stat_buffer(31 downto 16); - --- build the CTRL register of the OBUFs - INITOBUF_ctrl_buffer(9 downto 0) <= INITIBUF_stat_buffer(9 downto 0); - INITOBUF_ctrl_buffer(31 downto 10) <= (others => '0'); - REPLYOBUF_ctrl_buffer(9 downto 0) <= REPLYIBUF_stat_buffer(9 downto 0); - REPLYOBUF_ctrl_buffer(31 downto 10) <= (others => '0'); - - STAT_LOCKED(0) <= INIT_IS_LOCKED; - STAT_LOCKED(1) <= REPLY_IS_LOCKED; - STAT_LOCKED(31 downto 2) <= (others => '0'); - - REPLYOBUF_ctrl_locked(15 downto 2) <= (others => '0'); - REPLYIBUF_ctrl_locked(15 downto 2) <= (others => '0'); - INITOBUF_ctrl_locked(15 downto 2) <= (others => '0'); - INITIBUF_ctrl_locked(15 downto 2) <= (others => '0'); - - -- comb part of the locking control -comb_locked : process (INIT_IS_LOCKED, REPLY_IS_LOCKED, INITIBUF_stat_locked, - REPLYOBUF_stat_locked, REPLYIBUF_stat_locked, - INITOBUF_stat_locked, CTRL_LOCKED) - - begin -- process - next_INIT_IS_LOCKED <= INIT_IS_LOCKED; - next_REPLY_IS_LOCKED <= REPLY_IS_LOCKED; - REPLYOBUF_ctrl_locked(1 downto 0) <= (others => '0'); - REPLYIBUF_ctrl_locked(1 downto 0) <= (others => '0'); - INITOBUF_ctrl_locked(1 downto 0) <= (others => '0'); - INITIBUF_ctrl_locked(1 downto 0) <= (others => '0'); - - if REPLY_IS_LOCKED = '1' then - -- listen to INITOBUF - if INITOBUF_stat_locked(0) = '1' or CTRL_LOCKED(1) = '1' then - next_REPLY_IS_LOCKED <= '0'; - REPLYIBUF_ctrl_locked(0) <= '1'; - else - next_REPLY_IS_LOCKED <= '1'; - end if; - else - -- listen to REPLYIBUF itself - if REPLYIBUF_stat_locked(0) = '1' then - next_REPLY_IS_LOCKED <= '1'; - INITOBUF_ctrl_locked(0) <= '1'; - else - next_REPLY_IS_LOCKED <= '0'; - end if; - end if; - - if INIT_IS_LOCKED = '1' then - -- listen to REPLYOBUF - if REPLYOBUF_stat_locked(0) = '1' or CTRL_LOCKED(0) = '1' then - next_INIT_IS_LOCKED <= '0'; - INITIBUF_ctrl_locked(0) <= '1'; - else - next_INIT_IS_LOCKED <= '1'; - end if; - else - -- listen to INITIBUF itself - if INITIBUF_stat_locked(0) = '1' then - next_INIT_IS_LOCKED <= '1'; - REPLYOBUF_ctrl_locked(0) <= '1'; - else - next_INIT_IS_LOCKED <= '0'; - - end if; - end if; - - end process; - - reg_locked: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - INIT_IS_LOCKED <= '0'; - REPLY_IS_LOCKED <= '1'; - elsif CLK_EN = '1' then - INIT_IS_LOCKED <= next_INIT_IS_LOCKED; - REPLY_IS_LOCKED <= next_REPLY_IS_LOCKED; - else - INIT_IS_LOCKED <= INIT_IS_LOCKED; - REPLY_IS_LOCKED <= REPLY_IS_LOCKED; - end if; - end if; - end process; - - - - -end trb_net_iobuf_arch; - diff --git a/oldfiles/trb_net_med_13bit_slow.vhd b/oldfiles/trb_net_med_13bit_slow.vhd deleted file mode 100755 index 23a09e0..0000000 --- a/oldfiles/trb_net_med_13bit_slow.vhd +++ /dev/null @@ -1,563 +0,0 @@ ---This entity provides data transfer (64bit) via a smaller (16bit) Bus ---with three bits for debugging (13bit data + 3bit control) ---first 56bit via Bus are for dataword, transmitted Bits 64 downto 56 Bits ---are for debugging - - -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -use IEEE.NUMERIC_STD.ALL; - -use work.trb_net_std.all; - -entity trb_net_med_13bit_slow is -generic( - TRANSMISSION_CLOCK_DIVIDER: integer range 2 to 62 := 2 --even values only! - ); - - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Internal direction port (MII) - -- do not change this interface!!! - -- 1st part: from the medium to the internal logic (trbnet) - INT_DATAREADY_OUT: out STD_LOGIC; --Data word is reconstructed from media - --and ready to be read out (the IOBUF MUST read) - INT_DATA_OUT: out STD_LOGIC_VECTOR (55 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - INT_ERROR_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- 2nd part: from the internal logic (trbnet) to the medium - INT_DATAREADY_IN: in STD_LOGIC; -- Data word is offered for the Media - INT_DATA_IN: in STD_LOGIC_VECTOR (55 downto 0); -- Data word - INT_READ_OUT: out STD_LOGIC; -- offered word is read - INT_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- (end do not change this interface!!!) - - - -- Media direction port - -- in this case for the cable => 32 lines in total - MED_DATA_OUT: out STD_LOGIC_VECTOR (12 downto 0); -- Data word - --(incl. debugging errorbits) - MED_TRANSMISSION_CLK_OUT: out STD_LOGIC; - MED_CARRIER_OUT: out STD_LOGIC; - MED_PARITY_OUT: out STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (12 downto 0); -- Data word - MED_TRANSMISSION_CLK_IN: in STD_LOGIC; - MED_CARRIER_IN: in STD_LOGIC; - MED_PARITY_IN: in STD_LOGIC; - - -- Status and control port => this never can hurt - STAT: out STD_LOGIC_VECTOR (31 downto 0); - --STAT(0): Busy reading from media - --STAT(1): Busy writing to media - --STAT(31 downto 28): packets_in (mod 16) - --STAT(27 downto 24): packets_out (mod 16) - --STAT(11 downto 8): INT2MED state - --STAT(15 downto 12): MED2INT state - - CTRL: in STD_LOGIC_VECTOR (31 downto 0) - --CTRL(24..31) -> lvds-data(63 downto 56) via lvds - --once for each packet - - ); -end trb_net_med_13bit_slow; - -architecture trb_net_med_13bit_slow_arch of trb_net_med_13bit_slow is - signal INT2MED_state, next_INT2MED_state : std_logic_vector (3 downto 0); - - type MED2INT_STATE_t is (IDLE, RECV2, RECV3, RECV4, RECV5); - signal MED2INT_state, next_MED2INT_state: MED2INT_STATE_t; - - signal DAT_MED2INT, next_DAT_MED2INT :std_logic_vector(51 downto 0); - signal buf_INT_DATA_IN, next_buf_INT_DATA_IN :std_logic_vector(55 downto 0); - - signal next_INT_DATA_OUT, buf_INT_DATA_OUT: std_logic_vector(55 downto 0); - signal next_buf_MED_DATA_OUT, buf_MED_DATA_OUT: std_logic_vector(12 downto 0); - signal next_INT_DATAREADY_OUT, buf_INT_DATAREADY_OUT: std_logic; - signal next_buf_INT_READ_OUT, buf_INT_READ_OUT: std_logic; - - signal buf_MED_TRANSMISSION_CLK_OUT: std_logic; - signal buf_MED_CARRIER_OUT, next_MED_CARRIER_OUT: STD_LOGIC; - signal buf_MED_PARITY_OUT, next_MED_PARITY_OUT: STD_LOGIC; - signal my_error,next_my_error : std_logic_vector(2 downto 0); - signal fatal_error, media_not_connected : std_logic; - signal next_media_not_connected : std_logic; - signal transmission_clk_Counter : std_logic_vector(4 downto 0); - signal next_transmission_clk_Counter : std_logic_vector(4 downto 0); - signal next_TRANSMISSION_CLK: std_logic; - signal buf_CTRL, next_STAT, buf_STAT : std_logic_vector(31 downto 0); - signal next_RECV_STAT, RECV_STAT : std_logic_vector(8 downto 0); - - signal last_TRCLK, this_TRCLK: std_logic; - signal CLK_counter,next_CLK_counter: std_logic_vector(7 downto 0); - - signal packets_in_counter, next_packets_in_counter: std_logic_vector(7 downto 0); - signal packets_in_compl_counter, next_packets_in_compl_counter: std_logic_vector(3 downto 0); - signal packets_out_counter, next_packets_out_counter: std_logic_vector(3 downto 0); - - signal last_MED_TRANSMISSION_CLK_IN : std_logic; - signal reg_MED_DATA_IN : std_logic_vector(12 downto 0); - signal reg_MED_TRANSMISSION_CLK_IN, reg_MED_CARRIER_IN : std_logic; - signal reg_MED_PARITY_IN : std_logic; - signal med2int_state_sig :std_logic_vector(2 downto 0); - -begin -INT_DATAREADY_OUT <= buf_INT_DATAREADY_OUT; -INT_DATA_OUT <= buf_INT_DATA_OUT(55 downto 0); -INT_ERROR_OUT <= my_error; -INT_READ_OUT <= buf_INT_READ_OUT; -STAT <= buf_STAT; - -MED_DATA_OUT(12 downto 0) <= buf_MED_DATA_OUT; -MED_TRANSMISSION_CLK_OUT <= buf_MED_TRANSMISSION_CLK_OUT; -MED_CARRIER_OUT <= buf_MED_CARRIER_OUT; -MED_PARITY_OUT <= buf_MED_PARITY_OUT; - - ---TODO: --------------------------------- -fatal_error <= '0'; - - - ---Status word --------------------------------- -gen_STAT_WORD: process(MED2INT_state,INT2MED_state,buf_INT_DATAREADY_OUT,RECV_STAT,buf_STAT) - begin - next_STAT <= (others => '0'); - if MED2INT_state = IDLE then - next_STAT(0) <= '0'; - else - next_STAT(0) <= '1'; - end if; - if INT2MED_state = 0 then - next_STAT(1) <= '0'; - else - next_STAT(1) <= '1'; - end if; - next_STAT(11 downto 8) <= INT2MED_state; - --next_STAT(15 downto 12) <= MED2INT_state; - next_STAT(16) <= media_not_connected; - next_STAT(31 downto 24) <= packets_in_counter; - --next_STAT(27 downto 24) <= packets_in_compl_counter; - if buf_INT_DATAREADY_OUT = '1' then - next_STAT(24 downto 16) <= RECV_STAT(8 downto 0); - else - next_STAT(24 downto 16) <= buf_STAT(24 downto 16); - end if; - end process; - -STAT_reg: process (CLK,RESET) - begin - if RESET = '1' then - buf_STAT <= (others => '0'); - elsif rising_edge(CLK) then - buf_STAT <= next_STAT; - else - buf_STAT <= buf_STAT; - end if; - end process; - - ---CTRL register --------------------------------- -CTRL_reg: process (CLK,RESET) - begin - if RESET = '1' then - buf_CTRL <= (others => '0'); - elsif rising_edge(CLK) then - buf_CTRL <= CTRL; - --buf_CTRL(31 downto 24) <= packets_in_counter; - --buf_CTRL(27 downto 24) <= packets_in_compl_counter; - else - buf_CTRL <= buf_CTRL; - end if; - end process; - - - ---My error bits --------------------------------- -gen_my_error: process(media_not_connected,fatal_error) - begin - if media_not_connected = '1' then - next_my_error <= "100"; - elsif fatal_error = '1' then - next_my_error <= "011"; - else - next_my_error <= "000"; - end if; - end process; - - -reg_my_error: process(CLK,RESET) - begin - if RESET = '1' then - my_error <= "000"; - elsif rising_edge(CLK) then - my_error <= next_my_error; - else - my_error <= my_error; - end if; - end process; - - ---Transmission clock generator --------------------------------- -trans_clk_counter: process (transmission_clk_Counter, buf_MED_TRANSMISSION_CLK_OUT) - begin - if transmission_clk_Counter = (TRANSMISSION_CLOCK_DIVIDER/2) - 1 then - next_transmission_clk_Counter <= (others => '0'); - next_TRANSMISSION_CLK <= not buf_MED_TRANSMISSION_CLK_OUT; - else - next_transmission_clk_Counter <= transmission_clk_Counter + 1; - next_TRANSMISSION_CLK <= buf_MED_TRANSMISSION_CLK_OUT; - end if; - end process; - - -trans_clk_counter_reg: process (CLK,RESET) - begin - if RESET = '1' then - transmission_clk_Counter <= (others => '0'); - buf_MED_TRANSMISSION_CLK_OUT <= '0'; - elsif rising_edge(CLK) then - transmission_clk_Counter <= next_transmission_clk_Counter; - buf_MED_TRANSMISSION_CLK_OUT <= next_TRANSMISSION_CLK; - else - transmission_clk_Counter <= transmission_clk_Counter; - buf_MED_TRANSMISSION_CLK_OUT <= buf_MED_TRANSMISSION_CLK_OUT; - end if; - end process; - - - ---Transmission Clock detection --------------------------------- -trans_clk_reg: process (RESET,CLK) - begin - if RESET = '1' then - last_TRCLK <= '0'; - this_TRCLK <= '0'; - CLK_counter <= (others => '0'); - media_not_connected <= '0'; - elsif rising_edge(CLK) then - last_TRCLK <= this_TRCLK; - this_TRCLK <= MED_TRANSMISSION_CLK_IN; - CLK_counter <= next_CLK_counter; - media_not_connected <= next_media_not_connected; - else - last_TRCLK <= last_TRCLK; - this_TRCLK <= this_TRCLK; - CLK_counter <= CLK_counter; - media_not_connected <= media_not_connected; - end if; - end process; - - - -transCLK_counter: process (this_TRCLK, last_TRCLK, CLK_counter, - buf_MED_DATA_OUT, buf_MED_CARRIER_OUT, - buf_MED_PARITY_OUT, buf_CTRL) - begin - next_media_not_connected <= '0'; - if last_TRCLK = '0' and this_TRCLK = '1' then - next_CLK_counter <= (others => '0'); - elsif CLK_counter = 255 then - next_media_not_connected <= '1'; - next_CLK_counter <= CLK_counter; - else - next_CLK_counter <= CLK_counter + 1; - end if; - end process; - - - - ---INT to MED direction --------------------------------- -INT2MED_fsm: process(buf_INT_DATA_IN,INT2MED_state, - INT_DATAREADY_IN, INT_DATA_IN, buf_INT_READ_OUT, - next_TRANSMISSION_CLK, buf_MED_TRANSMISSION_CLK_OUT, buf_MED_DATA_OUT, - buf_MED_CARRIER_OUT, buf_MED_PARITY_OUT, buf_CTRL) - variable tmp: std_logic_vector(12 downto 0); -begin - next_INT2MED_state <= "0000"; - next_buf_MED_DATA_OUT <= buf_MED_DATA_OUT; - next_MED_CARRIER_OUT <= buf_MED_CARRIER_OUT; - next_MED_PARITY_OUT <= buf_MED_PARITY_OUT; - next_buf_INT_DATA_IN <= buf_INT_DATA_IN; - next_buf_INT_READ_OUT <= buf_INT_READ_OUT; - - next_packets_out_counter <= packets_out_counter; - case INT2MED_state is - when "0000" => - if INT_DATAREADY_IN = '1' and buf_INT_READ_OUT = '1' then - --generate data word to transmit - next_buf_INT_DATA_IN(55 downto 0) <= INT_DATA_IN(55 downto 0); - next_INT2MED_state <= "0001"; - next_buf_INT_READ_OUT <= '0'; - next_packets_out_counter <= packets_out_counter + 1; - else - next_buf_INT_READ_OUT <= '1'; - next_MED_CARRIER_OUT <= '0'; - next_MED_PARITY_OUT <= '0'; - end if; - when "0001" => - if next_TRANSMISSION_CLK = '0' and buf_MED_TRANSMISSION_CLK_OUT = '1' then - next_buf_MED_DATA_OUT(12 downto 0) <= buf_INT_DATA_IN(12 downto 0); - next_MED_CARRIER_OUT <= '1'; - next_MED_PARITY_OUT <= xor_all(buf_INT_DATA_IN(12 downto 0)); - next_INT2MED_state <= "0010"; - else - next_INT2MED_state <= "0001"; - end if; - when "0010" => - if next_TRANSMISSION_CLK = '0' and buf_MED_TRANSMISSION_CLK_OUT = '1' then - next_buf_MED_DATA_OUT(12 downto 0) <= buf_INT_DATA_IN(25 downto 13); - next_MED_PARITY_OUT <= xor_all(buf_INT_DATA_IN(25 downto 13)); - next_INT2MED_state <= "0100"; - else - next_INT2MED_state <= "0010"; - end if; - when "0100" => - if next_TRANSMISSION_CLK = '0' and buf_MED_TRANSMISSION_CLK_OUT = '1' then - next_buf_MED_DATA_OUT(12 downto 0) <= buf_INT_DATA_IN(38 downto 26); - next_MED_PARITY_OUT <= xor_all(buf_INT_DATA_IN(38 downto 26)); - next_INT2MED_state <= "0110"; - else - next_INT2MED_state <= "0100"; - end if; - when "0110" => - if next_TRANSMISSION_CLK = '0' and buf_MED_TRANSMISSION_CLK_OUT = '1' then - next_buf_MED_DATA_OUT(12 downto 0) <= buf_INT_DATA_IN(51 downto 39); - next_MED_PARITY_OUT <= xor_all(buf_INT_DATA_IN(51 downto 39)); - next_INT2MED_state <= "1000"; - else - next_INT2MED_state <= "0110"; - end if; - when "1000" => - if next_TRANSMISSION_CLK = '0' and buf_MED_TRANSMISSION_CLK_OUT = '1' then - - tmp(3 downto 0) := buf_INT_DATA_IN(55 downto 52); - tmp(11 downto 4) := buf_CTRL(31 downto 24); - tmp(12) := buf_CTRL(0); - - next_buf_MED_DATA_OUT <= tmp; - next_MED_PARITY_OUT <= xor_all(tmp); - next_INT2MED_state <= "1110"; - else - next_INT2MED_state <= "1000"; - end if; - when "1110" => - if next_TRANSMISSION_CLK = '0' and buf_MED_TRANSMISSION_CLK_OUT = '1' then - next_INT2MED_state <= "0000"; - next_MED_CARRIER_OUT <= '0'; - next_buf_MED_DATA_OUT <= (others => '0'); - else - next_INT2MED_state <= "1110"; - end if; - when others => - next_INT2MED_state <= "0000"; - end case; -end process; - - -INT2MED_fsm_reg: process(CLK,RESET) - begin - if RESET='1' then - buf_MED_DATA_OUT <= (others => '0'); - INT2MED_state <= "0000"; - buf_INT_DATA_IN <= (others => '0'); - buf_INT_READ_OUT <= '0'; - buf_MED_CARRIER_OUT <= '0'; - buf_MED_PARITY_OUT <= '0'; - packets_out_counter <= (others => '0'); - elsif rising_edge(CLK) then - INT2MED_state <= next_INT2MED_state; - buf_INT_DATA_IN <= next_buf_INT_DATA_IN; - buf_INT_READ_OUT <= next_buf_INT_READ_OUT; - buf_MED_DATA_OUT(12 downto 0) <= next_buf_MED_DATA_OUT(12 downto 0); - buf_MED_CARRIER_OUT <= next_MED_CARRIER_OUT; - buf_MED_PARITY_OUT <= next_MED_PARITY_OUT; - packets_out_counter <= next_packets_out_counter; - else - buf_MED_DATA_OUT <= buf_MED_DATA_OUT; - buf_MED_CARRIER_OUT <= buf_MED_CARRIER_OUT; - buf_MED_PARITY_OUT <= buf_MED_PARITY_OUT; - INT2MED_state <= INT2MED_state; - buf_INT_READ_OUT <= buf_INT_READ_OUT; - buf_INT_DATA_IN <= buf_INT_DATA_IN; - packets_out_counter <= packets_out_counter; - end if; - end process; - - - - - - - - - - - - - - - ---MED to INT direction --------------------------------- - -MED2INT_fsm: process(reg_MED_PARITY_IN,MED2INT_state,CLK,reg_MED_DATA_IN,DAT_MED2INT, - reg_MED_TRANSMISSION_CLK_IN,reg_MED_CARRIER_IN,INT_READ_IN, RECV_STAT, - media_not_connected,buf_INT_DATAREADY_OUT, buf_INT_DATA_OUT, last_MED_TRANSMISSION_CLK_IN - ) - begin - next_DAT_MED2INT <= DAT_MED2INT; - next_INT_DATA_OUT <= buf_INT_DATA_OUT; - next_INT_DATAREADY_OUT <= buf_INT_DATAREADY_OUT; - next_MED2INT_state <= IDLE; - next_RECV_STAT <= RECV_STAT; - next_packets_in_counter <= packets_in_counter; - next_packets_in_compl_counter <= packets_in_compl_counter; - - case MED2INT_state is - when IDLE => - if reg_MED_TRANSMISSION_CLK_IN = '1' and last_MED_TRANSMISSION_CLK_IN = '0' and reg_MED_CARRIER_IN = '1' then - next_MED2INT_state <= RECV2; - next_DAT_MED2INT(12 downto 0) <= reg_MED_DATA_IN(12 downto 0); - end if; - when RECV2 => - if reg_MED_TRANSMISSION_CLK_IN = '1' and last_MED_TRANSMISSION_CLK_IN = '0' and reg_MED_CARRIER_IN = '1' then - next_MED2INT_state <= RECV3; - next_DAT_MED2INT(25 downto 13) <= reg_MED_DATA_IN(12 downto 0); - else - next_MED2INT_state <= RECV2; - end if; - when RECV3 => - if reg_MED_TRANSMISSION_CLK_IN = '1' and last_MED_TRANSMISSION_CLK_IN = '0' and reg_MED_CARRIER_IN = '1' then - next_MED2INT_state <= RECV4; - next_DAT_MED2INT(38 downto 26) <= reg_MED_DATA_IN(12 downto 0); - else - next_MED2INT_state <= RECV3; - end if; - when RECV4 => - if reg_MED_TRANSMISSION_CLK_IN = '1' and last_MED_TRANSMISSION_CLK_IN = '0' and reg_MED_CARRIER_IN = '1' then - next_MED2INT_state <= RECV5; - next_DAT_MED2INT(51 downto 39) <= reg_MED_DATA_IN(12 downto 0); - else - next_MED2INT_state <= RECV4; - end if; - when RECV5 => - if reg_MED_TRANSMISSION_CLK_IN = '1' and last_MED_TRANSMISSION_CLK_IN = '0' and reg_MED_CARRIER_IN = '1' then - next_INT_DATA_OUT(51 downto 0) <= DAT_MED2INT(51 downto 0); - next_INT_DATA_OUT(55 downto 52) <= reg_MED_DATA_IN(3 downto 0); - next_RECV_STAT <= reg_MED_DATA_IN(12 downto 4); - next_INT_DATAREADY_OUT <= '1'; - next_MED2INT_state <= IDLE; - next_packets_in_counter <= packets_in_counter + 1; - else - next_MED2INT_state <= RECV5; - end if; - when others => - next_MED2INT_state <= IDLE; - end case; - - --clear dataready when read - if buf_INT_DATAREADY_OUT = '1' and INT_READ_IN = '1' then - next_INT_DATAREADY_OUT <= '0'; - next_INT_DATA_OUT <= (others => '0'); - end if; - - --check parity - if reg_MED_TRANSMISSION_CLK_IN = '1' and last_MED_TRANSMISSION_CLK_IN = '0' then - if(xor_all(reg_MED_DATA_IN(12 downto 0)) /= reg_MED_PARITY_IN) then - next_MED2INT_state <= IDLE; - end if; - end if; - - --reset on Carrier low --- if reg_MED_TRANSMISSION_CLK_IN = '1' and last_MED_TRANSMISSION_CLK_IN = '0' and reg_MED_CARRIER_IN = '0' then --- next_MED2INT_state <= IDLE; --- end if; - - --reset on not connected - if media_not_connected = '1' then - next_MED2INT_state <= IDLE; - end if; - end process; - - -process(MED2INT_state) -begin - case MED2INT_state is - when IDLE => med2int_state_sig <= "000"; - when RECV2 => med2int_state_sig <= "001"; - when RECV3 => med2int_state_sig <= "010"; - when RECV4 => med2int_state_sig <= "011"; - when RECV5 => med2int_state_sig <= "100"; - end case; -end process; - - -MED2INT_fsm_reg: process(CLK,RESET) - begin - if RESET='1' then - MED2INT_state <= IDLE; - buf_INT_DATAREADY_OUT <= '0'; - DAT_MED2INT <= (others => '0'); - buf_INT_DATA_OUT <= (others => '0'); - RECV_STAT <= (others => '0'); - packets_in_counter <= (others => '0'); - packets_in_compl_counter <= (others => '0'); - last_MED_TRANSMISSION_CLK_IN <= '1'; - elsif rising_edge(CLK) then - DAT_MED2INT <= next_DAT_MED2INT; - MED2INT_state <= next_MED2INT_state; - buf_INT_DATA_OUT <= next_INT_DATA_OUT; - buf_INT_DATAREADY_OUT <= next_INT_DATAREADY_OUT; - RECV_STAT <= next_RECV_STAT; - packets_in_counter <= next_packets_in_counter; - packets_in_compl_counter <= next_packets_in_compl_counter; - last_MED_TRANSMISSION_CLK_IN <= reg_MED_TRANSMISSION_CLK_IN; - else - buf_INT_DATA_OUT <= buf_INT_DATA_OUT; - MED2INT_state <= MED2INT_state; - buf_INT_DATAREADY_OUT <= buf_INT_DATAREADY_OUT; - DAT_MED2INT <= DAT_MED2INT; - RECV_STAT <= RECV_STAT; - packets_in_counter <= packets_in_counter; - packets_in_compl_counter <= packets_in_compl_counter; - last_MED_TRANSMISSION_CLK_IN <= last_MED_TRANSMISSION_CLK_IN; - end if; - end process; - -LVDS_IN_reg: process(CLK, RESET) - begin - if RESET='1' then - reg_MED_TRANSMISSION_CLK_IN <= '0'; - reg_MED_CARRIER_IN <= '0'; - reg_MED_PARITY_IN <= '0'; - reg_MED_DATA_IN <= (others => '0'); - elsif rising_edge(CLK) then - reg_MED_TRANSMISSION_CLK_IN <= MED_TRANSMISSION_CLK_IN; - reg_MED_CARRIER_IN <= MED_CARRIER_IN; - reg_MED_PARITY_IN <= MED_PARITY_IN; - reg_MED_DATA_IN <= MED_DATA_IN; - else - reg_MED_TRANSMISSION_CLK_IN <= reg_MED_TRANSMISSION_CLK_IN; - reg_MED_CARRIER_IN <= reg_MED_CARRIER_IN; - reg_MED_PARITY_IN <= reg_MED_PARITY_IN; - reg_MED_DATA_IN <= reg_MED_DATA_IN; - end if; - end process; - - -end trb_net_med_13bit_slow_arch; - diff --git a/oldfiles/trb_net_med_32lvds.vhd b/oldfiles/trb_net_med_32lvds.vhd deleted file mode 100644 index ca1bc9e..0000000 --- a/oldfiles/trb_net_med_32lvds.vhd +++ /dev/null @@ -1,51 +0,0 @@ --- media interface for the 32 lvds lines (16 in each direction) --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/NewTriggerBusMedia - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - - -entity trb_net_med_32lvds is - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Internal direction port (MII) - -- do not change this interface!!! - -- 1st part: from the medium to the internal logic (trbnet) - INT_DATAREADY_OUT: out STD_LOGIC; --Data word is reconstructed from media - --and ready to be read out - INT_DATA_OUT: out STD_LOGIC_VECTOR (55 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - INT_ERROR_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- 2nd part: from the internal logic (trbnet) to the medium - INT_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media (the IOBUF MUST read) - INT_DATA_IN: in STD_LOGIC_VECTOR (55 downto 0); -- Data word - INT_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - INT_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- (end do not change this interface!!!) - - - -- Media direction port - -- in this case for the cable => 32 lines in total - MED_DATA_OUT: out STD_LOGIC_VECTOR (12 downto 0); -- Data word - MED_TRANSMISSION_CLK_OUT: out STD_LOGIC; - MED_CARRIER_OUT: out STD_LOGIC; - MED_PARITY_OUT: out STD_LOGIC; - MED_DATA_IN: out STD_LOGIC_VECTOR (12 downto 0); -- Data word - MED_TRANSMISSION_CLK_IN: out STD_LOGIC; - MED_CARRIER_IN: out STD_LOGIC; - MED_PARITY_IN: out STD_LOGIC; - - -- Status and control port => this never can hurt - STAT: out STD_LOGIC_VECTOR (31 downto 0); - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - ); -END trb_net_med_32lvds; diff --git a/oldfiles/trb_net_med_8bit_fast.vhd b/oldfiles/trb_net_med_8bit_fast.vhd deleted file mode 100644 index 7f73599..0000000 --- a/oldfiles/trb_net_med_8bit_fast.vhd +++ /dev/null @@ -1,567 +0,0 @@ ---This entity provides data transfer of 55Bit in 4 16Bit packets via a 16Bit Bus ---with 8Bit data width plus 4 control Bits. ---data is repacked to have 8 spare Bits in the end of each word instead on the ---beginning. These Bits may be used for data integrity check later. ---The remaining four Bits on the LVDS cable are free to use at moment but should ---be reserved. - -------------------------------------------------- ---format on LVDS: 0-7 Data --- 8-10 free --- 11 "handshake" --- 12 first packet indicator --- 13 transmission clock --- 14 carrier --- 15 parity(0-7) -------------------------------------------------- - --- "handshake": if this is low, you can not send, if it goes down during a transfer, --- then probably some data is lost - ---Please check the timing report for setup/hold-errors on the receiving ports ---In case of an error, adjust the PHASE_SHIFT of the DCM. A change of one unit ---results in a shift of (CLK_PERIOD/256) ---If the timing seems to be correct but the trbnet trb_net doesn't react, try ---shifting the clock by 180 degrees. - ---Version with spare bits at end, using 18_to16 was 1.8 --- --- Constraints for timing on hadcom dev board: --- NET "LVDS_IN<13>" TNM_NET = LVDS_IN_CLK_GRP; --- TIMESPEC "TS_LVDS_IN" = PERIOD LVDS_IN_CLK_GRP 10 ns HIGH 50 %; --- INST "LVDS_IN<*>" TNM = "IN_DDR"; --- INST "LVDS_OUT<*>" TNM = "OUT_DDR"; --- INST lvds1/buf_MED_IN_fal* TNM = "falling_reg"; --- TIMEGRP "OUT_DDR" OFFSET = OUT 8 ns AFTER "CLK_IN"; --- TIMEGRP "IN_DDR" OFFSET = IN -2 ns VALID 1 BEFORE "LVDS_IN<13>"; --- TIMEGRP "IN_DDR" OFFSET = IN -7 ns VALID 1 BEFORE "LVDS_IN<13>" TIMEGRP "falling_reg"; - - ---Constraints for timing on acromag: --- #Constraints for LVDS --- NET "IO59_29P" TNM_NET = LVDS_IN_CLK_GRP; --- TIMESPEC "TS_LVDS_IN" = PERIOD LVDS_IN_CLK_GRP 10 ns HIGH 50 %; --- --- INST "io*_*p" TNM = "IN_DDR"; --- INST "io*_*n" TNM = "OUT_DDR"; --- INST trbnetendpoint1/lvds1/buf_MED_IN_fal* TNM = "falling_reg"; --- --- TIMEGRP "IN_DDR" OFFSET = IN -2 ns VALID 1 ns BEFORE "IO59_29P"; --- TIMEGRP "IN_DDR" OFFSET = IN -7 ns VALID 1 ns BEFORE "IO59_29P" TIMEGRP "falling_reg"; --- TIMEGRP "OUT_DDR" OFFSET = OUT 6.7 ns AFTER "FPGA_CLK"; - - - - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; -library unisim; -use UNISIM.VComponents.all; -library work; -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_med_8bit_fast is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- 1st part: from the medium to the internal logic (trbnet) - INT_DATAREADY_OUT: out STD_LOGIC; - INT_DATA_OUT: out STD_LOGIC_VECTOR (15 downto 0); -- Data word - INT_PACKET_NR_OUT: out STD_LOGIC_VECTOR (1 downto 0); - INT_READ_IN: in STD_LOGIC; - INT_ERROR_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - -- 2nd part: from the internal logic (trbnet) to the medium - INT_DATAREADY_IN: in STD_LOGIC; -- Data word is offered for the Media - INT_DATA_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Data word - INT_PACKET_NR_IN: in STD_LOGIC_VECTOR (1 downto 0); - INT_READ_OUT: out STD_LOGIC; -- offered word is read - INT_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - -- Media direction port - -- in this case for the cable => 32 lines in total - MED_DATA_OUT: out STD_LOGIC_VECTOR (12 downto 0); -- Data word - MED_TRANSMISSION_CLK_OUT: out STD_LOGIC; - MED_CARRIER_OUT: out STD_LOGIC; - MED_PARITY_OUT: out STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (12 downto 0); -- Data word - MED_TRANSMISSION_CLK_IN: in STD_LOGIC; - MED_CARRIER_IN: in STD_LOGIC; - MED_PARITY_IN: in STD_LOGIC; - - -- Status and control port => this never can hurt - - STAT: out STD_LOGIC_VECTOR(31 downto 0); - --31-16 show the current lvds data output (two times eight bit) - CTRL: in STD_LOGIC_VECTOR (31 downto 0) - ); -end entity; - -architecture trb_net_med_8bit_fast_arch of trb_net_med_8bit_fast is - -component dualdatarate_flipflop - generic( - WIDTH : integer := 1 - ); - port( - C0 : in std_logic; - C1 : in std_logic; - CE : in std_logic; - CLR : in std_logic; - D0 : in std_logic_vector(WIDTH-1 downto 0); - D1 : in std_logic_vector(WIDTH-1 downto 0); - PRE : in std_logic; - Q : out std_logic_vector(WIDTH-1 downto 0) - ); -end component; - - -component trb_net_fifo_16bit_bram_dualport - port (read_clock_in: IN std_logic; - write_clock_in: IN std_logic; - read_enable_in: IN std_logic; - write_enable_in: IN std_logic; - fifo_gsr_in: IN std_logic; --reset - write_data_in: IN std_logic_vector(17 downto 0); - read_data_out: OUT std_logic_vector(17 downto 0); - full_out: OUT std_logic; - empty_out: OUT std_logic; - fifostatus_out: OUT std_logic_vector(3 downto 0) - ); -end component trb_net_fifo_16bit_bram_dualport; - - - component trb_net_sbuf - generic (DATA_WIDTH : integer := 16; - VERSION: integer := 0); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- port to combinatorial logic - COMB_DATAREADY_IN: in STD_LOGIC; --comb logic provides data word - COMB_next_READ_OUT: out STD_LOGIC; --sbuf can read in NEXT cycle - COMB_READ_IN: in STD_LOGIC; --comb logic IS reading - COMB_DATA_IN: in STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - -- Port to synchronous output. - SYN_DATAREADY_OUT: out STD_LOGIC; - SYN_DATA_OUT: out STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - SYN_READ_IN: in STD_LOGIC; - -- Status and control port - STAT_BUFFER: out STD_LOGIC - ); - end component; - - component FDDRCPE - port ( - Q : out STD_ULOGIC; - C0 : in STD_ULOGIC; - C1 : in STD_ULOGIC; - CE : in STD_ULOGIC; - CLR : in STD_ULOGIC; - D0 : in STD_ULOGIC; - D1 : in STD_ULOGIC; - PRE : in STD_ULOGIC); - end component; - -signal CLK_TRANS : std_logic; -signal fifo_data_in, next_fifo_data_in : std_logic_vector(17 downto 0); -signal fifo_data_out : std_logic_vector(17 downto 0); -signal fifo_full_out, fifo_empty_out : std_logic; -signal fifo_status_out : std_logic_vector(3 downto 0); -signal fifo_write_enable, next_fifo_write_enable : std_logic; -signal fifo_read_enable, last_fifo_read_enable : std_logic; - -signal buf_MED_PARITY_OUT : std_logic; -signal buf_MED_CARRIER_OUT : std_logic; -signal buf_MED_TRANSMISSION_CLK_OUT : std_logic; -signal buf_MED_TRANSMISSION_CLK_IN : std_logic; -signal buf_MED_DATA_OUT : std_logic_vector(12 downto 0); -signal buf_MED_IN_fal : std_logic_vector(15 downto 0); -signal buf_MED_IN : std_logic_vector(31 downto 0); - -signal buf_INT_DATA_OUT : std_logic_vector(17 downto 0); -signal buf_INT_DATAREADY_OUT : std_logic; -signal next_int_packet_nr_out, buf_int_packet_nr_out : std_logic_vector(1 downto 0); -signal next_send_data_byte1, send_data_byte1 : std_logic_vector(7 downto 0); -signal next_send_data_byte2, send_data_byte2 : std_logic_vector(7 downto 0); -signal next_send_data_byte1_parity, send_data_byte1_parity : std_logic; -signal next_send_data_byte2_parity, send_data_byte2_parity : std_logic; -signal next_send_dataready, send_dataready : std_logic; -signal next_send_packet1, send_packet1 : std_logic; -signal fifo_data_ready : std_logic; - -signal buf_int_error_out, next_INT_ERROR_OUT : std_logic_vector(2 downto 0); -signal buf_INT_READ_OUT : std_logic; -signal FB_CLK, CLK_FB_Out, CLK_RECV_Out : std_logic; -signal sbuff_status : std_logic; -signal sbuff_next_read_out : std_logic; -signal buf_comb_data_in : std_logic_vector(17 downto 0); - -signal DCM_LOCKED, RESET_RECV, next_RESET_RECV : std_logic; -begin - ------------------------------------------------------------------------ --- Fifo for incoming data ------------------------------------------------------------------------ - LVDS_FIFO1 : trb_net_fifo_16bit_bram_dualport - port map( - read_clock_in => CLK, - write_clock_in => CLK_TRANS, - read_enable_in => fifo_read_enable, - write_enable_in => fifo_write_enable, - fifo_gsr_in => RESET_RECV, - write_data_in => fifo_data_in, - read_data_out => fifo_data_out, - full_out => fifo_full_out, - empty_out => fifo_empty_out, - fifostatus_out => fifo_status_out - ); - - - - ------------------------------------------------------------------------ --- Getting clock from LVDS ------------------------------------------------------------------------ - - -U_DCM_RECV: DCM - generic map( - CLKIN_PERIOD => 10.00, -- 30.30ns - STARTUP_WAIT => FALSE, - DESKEW_ADJUST => "SOURCE_SYNCHRONOUS", - PHASE_SHIFT => 70, - CLKOUT_PHASE_SHIFT => "FIXED" - ) - port map ( - CLKIN => MED_TRANSMISSION_CLK_IN, - CLKFB => FB_CLK, - DSSEN => '0', - PSINCDEC => '0', - PSEN => '0', - PSCLK => '0', - RST => RESET, - CLK0 => CLK_FB_Out, -- for feedback - CLK180=> CLK_RECV_Out, - LOCKED => DCM_LOCKED - ); --- -U3_BUFG: BUFG port map (I => CLK_FB_Out, O => FB_CLK); ---U4_BUFG: BUFG port map (I => CLK_RECV_Out, O => CLK_TRANS); -CLK_TRANS <= FB_CLK; - ------------------------------------------------------------------------ --- Preparing incoming data for fifo ------------------------------------------------------------------------ - - recv : process(buf_MED_IN) - begin - next_fifo_data_in(7 downto 0) <= buf_MED_IN(7 downto 0); - next_fifo_data_in(15 downto 8) <= buf_MED_IN(23 downto 16); - next_fifo_data_in(17) <= ((buf_MED_IN(15) xnor xor_all(buf_MED_IN(7 downto 0))) or not buf_MED_IN(14)) and - ((buf_MED_IN(31) xnor xor_all(buf_MED_IN(23 downto 16))) or not buf_MED_IN(30)); - --parity check - next_fifo_data_in(16) <= buf_MED_IN(12); --first packet - next_fifo_write_enable <= buf_MED_IN(14); --carrier - end process; - - - recv_reg : process(CLK_TRANS, RESET_RECV) - begin - if RESET_RECV = '1' then - fifo_write_enable <= '0'; - fifo_data_in(15 downto 0) <= (others => '0'); - fifo_data_in(17) <= '0'; - elsif rising_edge(CLK_TRANS) then - fifo_write_enable <= next_fifo_write_enable; - fifo_data_in <= next_fifo_data_in; - else - fifo_write_enable <= fifo_write_enable; - fifo_data_in <= fifo_data_in; - end if; - end process; - ------------------------------------------------------------------------ --- Reading data from LVDS ------------------------------------------------------------------------ - - - lvds_reg_rising : process(CLK_TRANS, RESET_RECV) - begin - if RESET_RECV = '1' then - buf_MED_IN(31 downto 0) <= (others => '0'); - elsif rising_edge(CLK_TRANS) then - buf_MED_IN(14) <= MED_CARRIER_IN; - buf_MED_IN(15) <= MED_PARITY_IN; - buf_MED_IN(13) <= '0'; - buf_MED_IN(12 downto 0) <= MED_DATA_IN; - buf_MED_IN(31 downto 16) <= buf_MED_IN_fal; - else - buf_MED_IN <= buf_MED_IN; - end if; - end process; - - lvds_reg_falling : process(CLK_TRANS, RESET_RECV) - begin - if RESET_RECV = '1' then - buf_MED_IN_fal(15 downto 0) <= (others => '0'); - elsif falling_edge(CLK_TRANS) and MED_CARRIER_IN = '1' then - buf_MED_IN_fal(14) <= MED_CARRIER_IN; - buf_MED_IN_fal(15) <= MED_PARITY_IN; - buf_MED_IN_fal(13) <= '1'; - buf_MED_IN_fal(12 downto 0) <= MED_DATA_IN; - else - buf_MED_IN_fal <= buf_MED_IN_fal; - end if; - end process; - ------------------------------------------------------------------------ --- Reading data from fifo, offering to INT ------------------------------------------------------------------------ - - process(sbuff_next_read_out, fifo_empty_out, last_fifo_read_enable, - fifo_data_out, buf_int_packet_nr_out, DCM_LOCKED) - begin - fifo_read_enable <= sbuff_next_read_out and not fifo_empty_out; - next_int_error_out <= ERROR_OK; - - if last_fifo_read_enable = '1' and fifo_data_out(16) = '1' then - next_int_packet_nr_out <= "00"; - elsif last_fifo_read_enable = '1' then - next_int_packet_nr_out <= buf_int_packet_nr_out + 1; - else - next_int_packet_nr_out <= buf_int_packet_nr_out; - end if; - - if last_fifo_read_enable = '1' then - --next_int_data_out <= fifo_data_out(15 downto 0); - --next_int_dataready_out <= '1'; - - if fifo_data_out(17) = '0' then - next_int_error_out <= ERROR_FATAL; - else - next_int_error_out <= ERROR_OK; - end if; - if fifo_data_out(16) = '1' and buf_int_packet_nr_out /= "11" then - next_int_error_out <= ERROR_ENCOD; - end if; - end if; - if DCM_LOCKED = '0' then --without a locked clock -> no transmission possible - next_int_error_out <= ERROR_NC; - end if; - end process; - - process(CLK,RESET_RECV) - begin - if rising_edge(CLK) then - if RESET_RECV = '1' then - last_fifo_read_enable <= '0'; - buf_int_error_out <= ERROR_NC; - buf_int_packet_nr_out <= "00"; - else - last_fifo_read_enable <= fifo_read_enable; - buf_int_error_out <= next_int_error_out; - buf_int_packet_nr_out <= next_int_packet_nr_out; - end if; - end if; - end process; - -buf_comb_data_in(15 downto 0) <= fifo_data_out(15 downto 0); -buf_comb_data_in(17 downto 16) <= next_int_packet_nr_out; - - - SBUF_fifo_to_int : trb_net_sbuf - generic map(DATA_WIDTH => 18, VERSION => 0) - port map ( - CLK => CLK, - RESET => RESET_RECV, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => last_fifo_read_enable, - COMB_next_READ_OUT => sbuff_next_read_out, - COMB_READ_IN => '1', - COMB_DATA_IN => buf_comb_data_in, - -- Port to synchronous output. - SYN_DATAREADY_OUT => buf_INT_DATAREADY_OUT, - SYN_DATA_OUT => buf_INT_DATA_OUT, - SYN_READ_IN => INT_READ_IN, - -- Status and control port - STAT_BUFFER => sbuff_status - ); - - -INT_DATA_OUT <= buf_int_data_out(15 downto 0); -INT_DATAREADY_OUT <= buf_INT_DATAREADY_OUT; -INT_PACKET_NR_OUT <= buf_int_data_out(17 downto 16); -INT_ERROR_OUT <= buf_int_error_out; - - ------------------------------------------------------------------------ --- Sending data ------------------------------------------------------------------------ - -buf_INT_READ_OUT <= not RESET_RECV; -INT_READ_OUT <= buf_INT_READ_OUT; ---RESET_RECV <= RESET or not DCM_LOCKED or not MED_DATA_IN(11); - - process(RESET,DCM_LOCKED,MED_DATA_IN(11)) - begin - if DCM_LOCKED = '0' or not MED_DATA_IN(11) = '1' then - next_RESET_RECV <= '1'; - else - next_RESET_RECV <= '0'; - end if; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - RESET_RECV <= '1'; - else - RESET_RECV <= next_RESET_RECV; - end if; - end if; - end process; - - - process(INT_DATAREADY_IN, INT_DATA_IN, INT_PACKET_NR_IN, buf_INT_READ_OUT, - send_data_byte1, send_data_byte2, send_packet1) - begin - - next_send_dataready <= '0'; - next_send_data_byte1 <= (others => '0'); --send_data_byte1; - next_send_data_byte2 <= (others => '0'); --send_data_byte2; - next_send_data_byte1_parity <= '0'; --send_data_byte1_parity; - next_send_data_byte2_parity <= '0'; --send_data_byte2_parity; - next_send_packet1 <= '0'; - if INT_DATAREADY_IN = '1' and buf_INT_READ_OUT = '1' then - if INT_PACKET_NR_IN = "00" and send_packet1 = '0' then - next_send_packet1 <= '1'; - else - next_send_packet1 <= '0'; - end if; - next_send_data_byte1 <= INT_DATA_IN(15 downto 8); - next_send_data_byte2 <= INT_DATA_IN(7 downto 0); - next_send_dataready <= '1'; - next_send_data_byte2_parity <= xor_all(INT_DATA_IN(7 downto 0)); - next_send_data_byte1_parity <= xor_all(INT_DATA_IN(15 downto 8)); - end if; - end process; - - process(CLK, RESET_RECV) - begin - if rising_edge(CLK) then - if RESET_RECV = '1' then - send_data_byte1 <= (others => '0'); - send_data_byte2 <= (others => '0'); - send_data_byte1_parity <= '0'; - send_data_byte2_parity <= '0'; - send_dataready <= '0'; - send_packet1 <= '0'; - else - send_data_byte1 <= next_send_data_byte1 after 1 ns; - send_data_byte2 <= next_send_data_byte2 after 1 ns; - send_data_byte1_parity <= next_send_data_byte1_parity after 1 ns; - send_data_byte2_parity <= next_send_data_byte2_parity after 1 ns; - send_dataready <= next_send_dataready after 1 ns; - send_packet1 <= next_send_packet1 after 1 ns; - end if; - end if; - end process; - -ddr_ff_dat : dualdatarate_flipflop - generic map( - WIDTH => 8 - ) - port map( - Q => buf_MED_DATA_OUT(7 downto 0), - C0 => CLK, - C1 => not CLK, - CE => '1', - CLR => '0', - D0 => send_data_byte2, - D1 => send_data_byte1, - PRE => '0' - ); - -ddr_ff_parity : dualdatarate_flipflop - generic map( - WIDTH => 1 - ) - port map( - Q(0) => buf_MED_PARITY_OUT, - C0 => CLK, - C1 => not CLK, - CE => '1', - CLR => '0', - D0(0) => send_data_byte2_parity, - D1(0) => send_data_byte1_parity, - PRE => '0' - ); - -ddr_ff_clk : dualdatarate_flipflop - generic map( - WIDTH => 1 - ) - port map( - Q(0) => buf_MED_TRANSMISSION_CLK_OUT, - C0 => CLK, - C1 => not CLK, - CE => '1', - CLR => '0', - D0(0) => '1', - D1(0) => '0', - PRE => '0' - ); - - process(CLK, RESET_RECV) - begin - if RESET_RECV = '1' then - buf_MED_DATA_OUT(12) <= '0'; - buf_MED_CARRIER_OUT <= '0'; - elsif falling_edge(CLK) then - buf_MED_DATA_OUT(12) <= send_packet1; - buf_MED_CARRIER_OUT <= send_dataready; - else - buf_MED_DATA_OUT(12) <= buf_MED_DATA_OUT(12); - buf_MED_CARRIER_OUT <= buf_MED_CARRIER_OUT; - end if; - end process; - -buf_MED_DATA_OUT(11 downto 8) <= "0000"; - ------------------------------------------------------------------------ --- Output generation ------------------------------------------------------------------------ -STAT(23 downto 16) <= send_data_byte1; -STAT(31 downto 24) <= send_data_byte2; -STAT(15 downto 0) <= (others => '0'); - -MED_PARITY_OUT <= buf_MED_PARITY_OUT; -MED_CARRIER_OUT <= buf_MED_CARRIER_OUT; -MED_TRANSMISSION_CLK_OUT <= buf_MED_TRANSMISSION_CLK_OUT; -MED_DATA_OUT(8 downto 0) <= buf_MED_DATA_OUT(8 downto 0); -MED_DATA_OUT(9) <= RESET_RECV; -MED_DATA_OUT(12) <= buf_MED_DATA_OUT(12); - ---MED_DATA_OUT(8) <= '0'; ---MED_DATA_OUT(12) <= buf_MED_DATA_OUT(12); ---MED_DATA_OUT(9 downto 8) <= buf_int_packet_nr_out; ---MED_DATA_OUT(11 downto 10) <= CONV_PACKET_NR_OUT; ---MED_DATA_OUT(9) <= CLK_TRANS; ---MED_DATA_OUT(8) <= buf_MED_TRANSMISSION_CLK_IN; -MED_DATA_OUT(10) <= fifo_data_in(0); -MED_DATA_OUT(11) <= (DCM_LOCKED);-- or (fifo_data_in(17) and not RESET_RECV); --- MED_DATA_OUT(10) <= CLK_TRANS; --- MED_DATA_OUT(11) <= fifo_write_enable; - -end architecture; - diff --git a/oldfiles/trb_net_med_8bit_slow.vhd b/oldfiles/trb_net_med_8bit_slow.vhd deleted file mode 100644 index 5e39da8..0000000 --- a/oldfiles/trb_net_med_8bit_slow.vhd +++ /dev/null @@ -1,411 +0,0 @@ -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.std_logic_ARITH.ALL; -USE IEEE.std_logic_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - -entity trb_net_med_8bit_slow is - generic( - TRANSMISSION_CLOCK_DIVIDER: integer range 2 to 62 := 2 --even values only! - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Internal direction port (MII) - INT_DATAREADY_OUT : out STD_LOGIC; - INT_DATA_OUT : out STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_OUT: out STD_LOGIC_VECTOR (c_NUM_WIDTH-1 downto 0); - INT_READ_IN : in STD_LOGIC; - INT_DATAREADY_IN : in STD_LOGIC; - INT_DATA_IN : in STD_LOGIC_VECTOR (c_DATA_WIDTH-1 downto 0); - INT_PACKET_NUM_IN : in STD_LOGIC_VECTOR (c_NUM_WIDTH-1 downto 0); - INT_READ_OUT : out STD_LOGIC; - -- Media direction port - MED_DATA_OUT : out STD_LOGIC_VECTOR (15 downto 0); - MED_DATA_IN : in STD_LOGIC_VECTOR (15 downto 0); - -- Status and control port - STAT: out STD_LOGIC_VECTOR (31 downto 0); - --STAT(5 downto 2): Debug bits in - - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - STAT_OP : out std_logic_vector(15 downto 0); - CTRL_OP : in std_logic_vector(15 downto 0) - ); -end entity trb_net_med_8bit_slow; - -architecture trb_net_med_8bit_slow_arch of trb_net_med_8bit_slow is - - signal buf_INT_DATA_IN, next_buf_INT_DATA_IN :std_logic_vector(7 downto 0); - - signal next_INT_DATA_OUT, buf_INT_DATA_OUT: std_logic_vector(c_DATA_WIDTH-1 downto 0); - signal next_INT_PACKET_NUM_OUT, buf_INT_PACKET_NUM_OUT: std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal next_INT_DATAREADY_OUT, buf_INT_DATAREADY_OUT: std_logic; - signal buf_INT_READ_OUT: std_logic; - signal reg_MED_FIRST_PACKET_IN : std_logic; - signal next_buf_MED_DATA_OUT, buf_MED_DATA_OUT: std_logic_vector(7 downto 0); - signal buf_MED_TRANSMISSION_CLK_OUT: std_logic; - signal buf_MED_CARRIER_OUT, next_MED_CARRIER_OUT: STD_LOGIC; - signal buf_MED_PARITY_OUT, next_MED_PARITY_OUT: STD_LOGIC; - signal buf_MED_FIRST_PACKET_OUT, next_MED_FIRST_PACKET_OUT : std_logic; - signal my_error : std_logic_vector(2 downto 0); - signal fatal_error, media_not_connected : std_logic; - signal next_media_not_connected : std_logic; - signal transmission_clk_Counter : std_logic_vector(4 downto 0); - signal next_transmission_clk_Counter : std_logic_vector(4 downto 0); - signal next_TRANSMISSION_CLK: std_logic; - signal buf_STAT : std_logic_vector(31 downto 0); - - signal last_TRCLK, this_TRCLK: std_logic; - signal CLK_counter,next_CLK_counter: std_logic_vector(7 downto 0); - - signal last_MED_TRANSMISSION_CLK_IN : std_logic; - signal last_MED_FIRST_PACKET_IN : std_logic; - signal reg_MED_DATA_IN : std_logic_vector(11 downto 0); - signal reg_MED_TRANSMISSION_CLK_IN, reg_MED_CARRIER_IN : std_logic; - signal reg_MED_PARITY_IN : std_logic; - signal recv_counter : std_logic_vector(3 downto 0); - signal transmission_running, next_transmission_running : std_logic; - signal buf_MED_DATA_IN, next_buf_MED_DATA_IN : std_logic_vector(7 downto 0); - - signal led_counter : std_logic_vector(18 downto 0); - signal send_resync_counter : std_logic_vector(11 downto 0); - signal send_resync : std_logic; - signal rx_led, tx_led, link_led : std_logic; - signal trbnet_reset : std_logic; - - -begin - INT_DATAREADY_OUT <= buf_INT_DATAREADY_OUT; - INT_DATA_OUT <= buf_INT_DATA_OUT; - INT_PACKET_NUM_OUT <= buf_INT_PACKET_NUM_OUT; - INT_READ_OUT <= buf_INT_READ_OUT; - STAT <= buf_STAT; - - buf_STAT(1 downto 0) <= (others => '0'); - buf_STAT(5 downto 2) <= MED_DATA_IN(11 downto 8); - buf_STAT(18 downto 6)<= (others => '0'); - buf_STAT(31 downto 19) <= reg_MED_PARITY_IN & reg_MED_CARRIER_IN & reg_MED_TRANSMISSION_CLK_IN & reg_MED_FIRST_PACKET_IN & reg_MED_DATA_IN(11) & reg_MED_DATA_IN(7 downto 0); - - - MED_DATA_OUT(7 downto 0) <= buf_MED_DATA_OUT; - MED_DATA_OUT(10 downto 8) <= (others => '0'); - MED_DATA_OUT(11) <= (not reset or send_resync); - MED_DATA_OUT(12) <= buf_MED_FIRST_PACKET_OUT; - MED_DATA_OUT(13) <= buf_MED_TRANSMISSION_CLK_OUT; - MED_DATA_OUT(14) <= buf_MED_CARRIER_OUT; - MED_DATA_OUT(15) <= buf_MED_PARITY_OUT; - - ---LED & Stat_OP - STAT_OP(2 downto 0) <= my_error; - STAT_OP(8 downto 3) <= (others => '0'); - STAT_OP(9) <= link_led; - STAT_OP(10) <= rx_led; - STAT_OP(11) <= tx_led; - STAT_OP(12) <= '0'; - STAT_OP(13) <= not reg_MED_DATA_IN(11) and not last_MED_TRANSMISSION_CLK_IN and reg_MED_TRANSMISSION_CLK_IN and reg_MED_CARRIER_IN; - STAT_OP(14) <= (not reg_MED_DATA_IN(11) and reg_MED_CARRIER_IN) or media_not_connected; - STAT_OP(15) <= (not reg_MED_DATA_IN(11) and not last_MED_TRANSMISSION_CLK_IN and reg_MED_TRANSMISSION_CLK_IN and reg_MED_CARRIER_IN) or media_not_connected; - - link_led <= reg_MED_DATA_IN(11); - - process(CLK) - begin - if rising_edge(CLK) then - if reset = '1' then - led_counter <= (others => '0'); - rx_led <= '0'; - tx_led <= '0'; - else - if led_counter(18) = '1' then - led_counter <= (others => '0'); - else - led_counter <= led_counter + 1; - end if; - if reg_MED_CARRIER_IN = '1' then - rx_led <= '1'; - elsif led_counter(18) = '1' then - rx_led <= '0'; - end if; - if next_MED_CARRIER_OUT = '1' then - tx_led <= '1'; - elsif led_counter(18) = '1' then - tx_led <= '0'; - end if; - end if; - end if; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - send_resync <= '0'; - send_resync_counter <= (others => '0'); - else - if not (send_resync_counter = 0) then - send_resync_counter <= send_resync_counter + 1; - end if; - if CTRL_OP(15) = '1' and send_resync_counter(11 downto 4) = 0 then - send_resync <= '1'; - send_resync_counter <= send_resync_counter + 1; - end if; - if send_resync_counter = x"00F" then - send_resync <= '0'; - end if; - end if; - end if; - end process; - - --TODO: - -------------------------------- - fatal_error <= '0'; - - --My error bits - -------------------------------- - reg_my_error: process(CLK,RESET) - begin - if rising_edge(CLK) then - if RESET = '1' or media_not_connected = '1' or MED_DATA_IN(11) = '0' then - my_error <= ERROR_NC; - elsif fatal_error = '1' or (INT_READ_IN = '0' and buf_INT_DATAREADY_OUT = '1') then - my_error <= ERROR_FATAL; - else - my_error <= ERROR_OK; - end if; - end if; - end process; - - - --Transmission clock generator - -------------------------------- - trans_clk_counter: process (transmission_clk_Counter, buf_MED_TRANSMISSION_CLK_OUT) - begin - if transmission_clk_Counter = (TRANSMISSION_CLOCK_DIVIDER/2) - 1 then - next_transmission_clk_Counter <= (others => '0'); - next_TRANSMISSION_CLK <= not buf_MED_TRANSMISSION_CLK_OUT; - else - next_transmission_clk_Counter <= transmission_clk_Counter + 1; - next_TRANSMISSION_CLK <= buf_MED_TRANSMISSION_CLK_OUT; - end if; - end process; - - - trans_clk_counter_reg: process (CLK,RESET) - begin - if RESET = '1' then - transmission_clk_Counter <= (others => '0'); - buf_MED_TRANSMISSION_CLK_OUT <= '0'; - elsif rising_edge(CLK) then - transmission_clk_Counter <= next_transmission_clk_Counter; - buf_MED_TRANSMISSION_CLK_OUT <= next_TRANSMISSION_CLK; - else - transmission_clk_Counter <= transmission_clk_Counter; - buf_MED_TRANSMISSION_CLK_OUT <= buf_MED_TRANSMISSION_CLK_OUT; - end if; - end process; - - - - --Transmission Clock detection - -------------------------------- - trans_clk_reg: process (RESET,CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - last_TRCLK <= '0'; - this_TRCLK <= '0'; - CLK_counter <= (others => '0'); - media_not_connected <= '0'; - else - last_TRCLK <= this_TRCLK; - this_TRCLK <= reg_MED_TRANSMISSION_CLK_IN; - CLK_counter <= next_CLK_counter; - media_not_connected <= next_media_not_connected; - end if; - end if; - end process; - - - - transCLK_counter: process (this_TRCLK, last_TRCLK, CLK_counter, - buf_MED_DATA_OUT, buf_MED_CARRIER_OUT, - buf_MED_PARITY_OUT) - begin - next_media_not_connected <= '0'; - if RESET = '1' then - next_CLK_counter <= x"1F"; - elsif last_TRCLK = '0' and this_TRCLK = '1' then - next_CLK_counter <= (others => '0'); - elsif CLK_counter = 31 then - next_media_not_connected <= '1'; - next_CLK_counter <= CLK_counter; - else - next_CLK_counter <= CLK_counter + 1; - end if; - end process; - - - - - --INT to MED direction - -------------------------------- - INT2MED_fsm: process(buf_MED_DATA_OUT, buf_MED_CARRIER_OUT, buf_MED_PARITY_OUT, buf_INT_DATA_IN, - transmission_running, buf_MED_FIRST_PACKET_OUT, next_TRANSMISSION_CLK, - buf_MED_TRANSMISSION_CLK_OUT, INT_DATAREADY_IN, INT_DATA_IN, - buf_INT_READ_OUT, INT_PACKET_NUM_IN) - begin - next_buf_MED_DATA_OUT <= buf_MED_DATA_OUT; - next_MED_CARRIER_OUT <= buf_MED_CARRIER_OUT; - next_MED_PARITY_OUT <= buf_MED_PARITY_OUT; - next_buf_INT_DATA_IN <= buf_INT_DATA_IN; - next_transmission_running <= transmission_running; - next_MED_FIRST_PACKET_OUT <= buf_MED_FIRST_PACKET_OUT; - buf_INT_READ_OUT <= '0'; - if next_TRANSMISSION_CLK = '0' and buf_MED_TRANSMISSION_CLK_OUT = '1' and transmission_running = '0' then - next_MED_CARRIER_OUT <= '0'; - end if; - if(INT_DATAREADY_IN = '1' and transmission_running = '0') then - if next_TRANSMISSION_CLK = '0' and buf_MED_TRANSMISSION_CLK_OUT = '1' then - next_buf_MED_DATA_OUT <= INT_DATA_IN(15 downto 8); - next_buf_INT_DATA_IN <= INT_DATA_IN(7 downto 0); - next_MED_CARRIER_OUT <= '1'; - next_MED_PARITY_OUT <= xor_all(INT_DATA_IN(15 downto 8)); - next_transmission_running <= '1'; - buf_INT_READ_OUT <= '1'; - if INT_PACKET_NUM_IN = c_H0 then - next_MED_FIRST_PACKET_OUT <= '1'; - else - next_MED_FIRST_PACKET_OUT <= '0'; - end if; - end if; - elsif transmission_running = '1' then - if next_TRANSMISSION_CLK = '0' and buf_MED_TRANSMISSION_CLK_OUT = '1' then - next_buf_MED_DATA_OUT <= buf_INT_DATA_IN; - next_MED_PARITY_OUT <= xor_all(buf_INT_DATA_IN); - next_transmission_running <= '0'; - end if; - end if; - if send_resync = '1' then - next_MED_CARRIER_OUT <= '1'; - end if; - end process; - - - INT2MED_fsm_reg: process(CLK,RESET) - begin - if rising_edge(CLK) then - if RESET='1' then - buf_MED_DATA_OUT <= (others => '0'); - buf_INT_DATA_IN <= (others => '0'); - buf_MED_CARRIER_OUT <= '0'; - buf_MED_PARITY_OUT <= '0'; - buf_MED_FIRST_PACKET_OUT <= '0'; - transmission_running <= '0'; - else - buf_INT_DATA_IN <= next_buf_INT_DATA_IN; - buf_MED_DATA_OUT <= next_buf_MED_DATA_OUT; - buf_MED_FIRST_PACKET_OUT <= next_MED_FIRST_PACKET_OUT; - buf_MED_CARRIER_OUT <= next_MED_CARRIER_OUT; - buf_MED_PARITY_OUT <= next_MED_PARITY_OUT; - transmission_running <= next_transmission_running; - end if; - end if; - end process; - - - - - - - - - - - - - - - - --MED to INT direction - -------------------------------- - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - recv_counter <= "0111"; - elsif reg_MED_CARRIER_IN = '1' and last_MED_TRANSMISSION_CLK_IN = '0' and reg_MED_TRANSMISSION_CLK_IN = '1' then - if recv_counter = "1001" then - recv_counter <= "0000"; - else - recv_counter <= recv_counter + 1; - end if; - last_MED_FIRST_PACKET_IN <= reg_MED_FIRST_PACKET_IN; - if reg_MED_FIRST_PACKET_IN = '1' and last_MED_FIRST_PACKET_IN = '0' then - recv_counter <= "1000"; - end if; - end if; - end if; - end process; - - - - MED2INT_fsm: process(buf_INT_DATA_OUT, buf_INT_DATAREADY_OUT, buf_MED_DATA_IN, last_MED_TRANSMISSION_CLK_IN, - reg_MED_TRANSMISSION_CLK_IN, reg_MED_DATA_IN, recv_counter, INT_READ_IN, reg_MED_CARRIER_IN, - buf_INT_PACKET_NUM_OUT, reg_MED_FIRST_PACKET_IN, last_MED_FIRST_PACKET_IN) - begin - next_INT_DATA_OUT <= buf_INT_DATA_OUT; - next_INT_DATAREADY_OUT <= '0'; --buf_INT_DATAREADY_OUT; - next_buf_MED_DATA_IN <= buf_MED_DATA_IN; - next_INT_PACKET_NUM_OUT <= buf_INT_PACKET_NUM_OUT; - --- if buf_INT_DATAREADY_OUT = '1' and INT_READ_IN = '1' then --- next_INT_DATAREADY_OUT <= '0'; --- end if; - - if reg_MED_CARRIER_IN = '1' and last_MED_TRANSMISSION_CLK_IN = '0' and reg_MED_TRANSMISSION_CLK_IN = '1' then - if recv_counter(0) = '1' or (reg_MED_FIRST_PACKET_IN = '1' and last_MED_FIRST_PACKET_IN = '0') then - next_buf_MED_DATA_IN <= reg_MED_DATA_IN(7 downto 0); - else - next_INT_DATA_OUT(7 downto 0) <= reg_MED_DATA_IN(7 downto 0); - next_INT_DATA_OUT(15 downto 8) <= buf_MED_DATA_IN; - next_INT_PACKET_NUM_OUT <= recv_counter(3 downto 1); - next_INT_DATAREADY_OUT <= '1'; - end if; - end if; - end process; - - - MED2INT_fsm_reg: process(CLK) - begin - if rising_edge(CLK) then - if RESET='1' then - buf_INT_DATAREADY_OUT <= '0'; - last_MED_TRANSMISSION_CLK_IN <= '1'; - else - buf_INT_DATA_OUT <= next_INT_DATA_OUT; - buf_INT_DATAREADY_OUT <= next_INT_DATAREADY_OUT; - last_MED_TRANSMISSION_CLK_IN <= reg_MED_TRANSMISSION_CLK_IN; - buf_MED_DATA_IN <= next_buf_MED_DATA_IN; - buf_INT_PACKET_NUM_OUT <= next_INT_PACKET_NUM_OUT; - end if; - end if; - end process; - - LVDS_IN_reg: process(CLK) - begin - if rising_edge(CLK) then - reg_MED_TRANSMISSION_CLK_IN <= MED_DATA_IN(13); - reg_MED_CARRIER_IN <= MED_DATA_IN(14); - reg_MED_PARITY_IN <= MED_DATA_IN(15); - reg_MED_DATA_IN <= MED_DATA_IN(11 downto 0); - reg_MED_FIRST_PACKET_IN <= MED_DATA_IN(12); - end if; - end process; - -end architecture; - diff --git a/oldfiles/trb_net_med_tlkx501.vhd b/oldfiles/trb_net_med_tlkx501.vhd deleted file mode 100644 index 55a1640..0000000 --- a/oldfiles/trb_net_med_tlkx501.vhd +++ /dev/null @@ -1,47 +0,0 @@ --- media interface for the 32 lvds lines (16 in each direction) --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/NewTriggerBusMedia - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - - -entity trb_net_med_tlkx501 is - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Internal direction port (MII) - -- do not change this interface!!! - -- 1st part: from the medium to the internal logic (trbnet) - INT_DATAREADY_OUT: out STD_LOGIC; --Data word is reconstructed from media - --and ready to be read out - INT_DATA_OUT: out STD_LOGIC_VECTOR (55 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - INT_ERROR_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- 2nd part: from the internal logic (trbnet) to the medium - INT_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media (the IOBUF MUST read) - INT_DATA_IN: in STD_LOGIC_VECTOR (55 downto 0); -- Data word - INT_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - INT_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- (end do not change this interface!!!) - - - -- Media direction port - -- marek, please add the lines you need here (the real output pins) - -- subcomponents like counters, egde detect etc - -- should be renamed to trb_net_XXX to avoid naming conflics - -- - -- - - -- Status and control port => this never can hurt - STAT: out STD_LOGIC_VECTOR (31 downto 0); - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - ); -END trb_net_med_tlkx501; diff --git a/oldfiles/trb_net_obuf.vhd b/oldfiles/trb_net_obuf.vhd deleted file mode 100644 index 2c3ca51..0000000 --- a/oldfiles/trb_net_obuf.vhd +++ /dev/null @@ -1,330 +0,0 @@ --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetOBUF - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_obuf is - generic ( - DATA_COUNT_WIDTH : integer := 4; - SWITCH_OFF_BUFFER_CHECK : integer := 0 - --switching off erroneous output buffer counter. MUST ONLY be - --used for short transfers!!!! - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; - MED_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; - -- Internal direction port - INT_DATAREADY_IN: in STD_LOGIC; - INT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_OUT: out STD_LOGIC; - -- Status and control port - STAT_LOCKED: out STD_LOGIC_VECTOR (15 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (15 downto 0); - STAT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); - CTRL_BUFFER: in STD_LOGIC_VECTOR (31 downto 0) - ); -end trb_net_obuf; - -architecture trb_net_obuf_arch of trb_net_obuf is - - component trb_net_sbuf is - generic (DATA_WIDTH : integer := 56; - VERSION : integer := 0); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- port to combinatorial logic - COMB_DATAREADY_IN: in STD_LOGIC; --comb logic provides data word - COMB_next_READ_OUT: out STD_LOGIC; --sbuf can read in NEXT cycle - COMB_READ_IN: in STD_LOGIC; --comb logic IS reading - COMB_DATA_IN: in STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - -- Port to synchronous output. - SYN_DATAREADY_OUT: out STD_LOGIC; - SYN_DATA_OUT: out STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - SYN_READ_IN: in STD_LOGIC; - -- Status and control port - STAT_BUFFER: out STD_LOGIC - ); - end component; - - signal current_output_buffer : STD_LOGIC_VECTOR (50 downto 0); - signal current_ACK_word, current_EOB_word, current_DATA_word, current_NOP_word : - STD_LOGIC_VECTOR (50 downto 0); - signal comb_dataready, comb_next_read, comb_read ,sbuf_free: STD_LOGIC; - signal reg_INT_READ_OUT , next_INT_READ_OUT:STD_LOGIC; - - signal next_SEND_ACK_IN, reg_SEND_ACK_IN : STD_LOGIC; - signal sent_ACK, sent_EOB, sent_DATA : STD_LOGIC; - - signal CURRENT_DATA_COUNT, next_DATA_COUNT : STD_LOGIC_VECTOR (DATA_COUNT_WIDTH-1 downto 0); --- signal max_DATA_COUNT, next_max_DATA_COUNT : STD_LOGIC_VECTOR (15 downto 0); - signal max_DATA_COUNT_minus_one, next_max_DATA_COUNT_minus_one : STD_LOGIC_VECTOR (DATA_COUNT_WIDTH-1 downto 0); - signal max_DATA_COUNT_minus_two, next_max_DATA_COUNT_minus_two : STD_LOGIC_VECTOR (DATA_COUNT_WIDTH-1 downto 0); - signal tmp_next_max_DATA_COUNT_minus_one : STD_LOGIC_VECTOR (15 downto 0); - signal tmp_next_max_DATA_COUNT_minus_two : STD_LOGIC_VECTOR (15 downto 0); - signal TRANSMITTED_BUFFERS, next_TRANSMITTED_BUFFERS : STD_LOGIC_VECTOR (1 downto 0); - signal increase_TRANSMITTED_BUFFERS, decrease_TRANSMITTED_BUFFERS : STD_LOGIC; - - signal SEND_BUFFER_SIZE_IN : STD_LOGIC_VECTOR (3 downto 0); - signal REC_BUFFER_SIZE_IN : STD_LOGIC_VECTOR (3 downto 0); - signal SEND_ACK_IN : STD_LOGIC; - signal GOT_ACK_IN : STD_LOGIC; - - signal is_locked, got_locked,release_locked : std_logic; - - -- type BUFFER_STATE is (BUFFER_IDLE, BUFFER_SEND_ACK, BUFFER_SEND_EOB, BUFFER_SEND_DATA, BUFFER_BLOCKED); - - - begin - - SBUF: trb_net_sbuf - generic map (DATA_WIDTH => 51, VERSION => 0) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => comb_dataready, - COMB_next_READ_OUT => comb_next_read, - COMB_READ_IN => comb_read, - COMB_DATA_IN => current_output_buffer, - SYN_DATAREADY_OUT => MED_DATAREADY_OUT, - SYN_DATA_OUT => MED_DATA_OUT, - SYN_READ_IN => MED_READ_IN - ); - - decrease_TRANSMITTED_BUFFERS <= GOT_ACK_IN; - comb_read <= '1'; - INT_READ_OUT <= reg_INT_READ_OUT; --- sbuf_free <= comb_next_read or MED_READ_IN; --sbuf killed - sbuf_free <= comb_next_read; - - COMB_NEXT_TRANSFER : process(current_NOP_word, MED_READ_IN, comb_next_read, - CURRENT_DATA_COUNT,reg_SEND_ACK_IN,reg_INT_READ_OUT, - INT_DATAREADY_IN, INT_DATA_IN, sent_ACK, sent_EOB, - current_ACK_word,current_EOB_word, sbuf_free, sent_data, - max_DATA_COUNT_minus_two,next_DATA_COUNT, - next_TRANSMITTED_BUFFERS) - begin - current_output_buffer <= current_NOP_word; - next_INT_READ_OUT <= '1'; - increase_TRANSMITTED_BUFFERS <= '0'; - next_DATA_COUNT <= CURRENT_DATA_COUNT; - next_SEND_ACK_IN <= reg_SEND_ACK_IN; - comb_dataready <= '0'; --- The read of data words have highest priority if this was prepared - if (reg_INT_READ_OUT = '1' and INT_DATAREADY_IN = '1') then - current_output_buffer <= INT_DATA_IN; - comb_dataready <= '1'; --I hope sbuf can store - if INT_DATA_IN(TYPE_POSITION) = TYPE_TRM then --TRM means EOB - next_DATA_COUNT <= (others => '0'); - increase_TRANSMITTED_BUFFERS <= '1'; - else - next_DATA_COUNT <= CURRENT_DATA_COUNT +1; - end if; --- If we are not able to fill ACK or EOB now, we have to stop activity - if (sent_ACK = '1' or sent_EOB = '1' ) then - next_INT_READ_OUT <= '0'; - if sent_ACK = '1' then --BUGBUG: next_SEND_ACK_IN should be a - --counter (2 may arrive) - next_SEND_ACK_IN <= '1'; - end if; - end if; --- Otherwise we fill the gap - elsif sent_ACK = '1' and sbuf_free = '1' then - current_output_buffer <= current_ACK_word; - next_SEND_ACK_IN <= '0'; - comb_dataready <= '1'; - next_INT_READ_OUT <= '0'; --stop activity to be on the safe side - elsif sent_ACK = '1' and sbuf_free = '0' then - next_SEND_ACK_IN <= '1'; - elsif sent_EOB = '1' and sbuf_free = '1' then - current_output_buffer <= current_EOB_word; - next_DATA_COUNT <= (others => '0'); - increase_TRANSMITTED_BUFFERS <= '1'; - comb_dataready <= '1'; - next_INT_READ_OUT <= '0'; --stop activity to be on the safe side - end if; - ---finally, block data read if the rec buffer is full - if sent_data = '0' or - ((current_DATA_COUNT(DATA_COUNT_WIDTH-1 downto 0) = (max_DATA_COUNT_minus_two(DATA_COUNT_WIDTH-1 downto 0))) - and reg_INT_READ_OUT = '1' and INT_DATAREADY_IN = '1' ) --and INT_DATA_IN(TYPE_POSITION) = TYPE_TRM - --long version of (next_count = max_count-1) - or (next_TRANSMITTED_BUFFERS(1) = '1' and SWITCH_OFF_BUFFER_CHECK = 0) - then - next_INT_READ_OUT <= '0'; - end if; ---In any case: if sbuf not free, then we stop data taking - if sbuf_free = '0' then - next_INT_READ_OUT <= '0'; - end if; - - end process; - - - REG : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - reg_SEND_ACK_IN <= '0'; - CURRENT_DATA_COUNT <= (others => '0'); - reg_INT_READ_OUT <= '0'; - elsif CLK_EN = '1' then - reg_SEND_ACK_IN <= next_SEND_ACK_IN; - CURRENT_DATA_COUNT <= next_DATA_COUNT; - reg_INT_READ_OUT <= next_INT_READ_OUT; - else - reg_SEND_ACK_IN <= reg_SEND_ACK_IN; - CURRENT_DATA_COUNT <= CURRENT_DATA_COUNT; - reg_INT_READ_OUT <= reg_INT_READ_OUT; - end if; - end if; - end process; - - -- buffer registers - STAT_BUFFER(1 downto 0) <= TRANSMITTED_BUFFERS; - STAT_BUFFER(15 downto 2) <= (others => '0'); - STAT_BUFFER(31 downto 16) <= CURRENT_DATA_COUNT; - SEND_BUFFER_SIZE_IN <= CTRL_BUFFER(3 downto 0); - REC_BUFFER_SIZE_IN <= CTRL_BUFFER(7 downto 4); - SEND_ACK_IN <= CTRL_BUFFER(8); - GOT_ACK_IN <= CTRL_BUFFER(9); - - -- build the words and the internal data readys - current_ACK_word(TYPE_POSITION) <= TYPE_ACK; - current_ACK_word(47 downto 20) <= (others => '0'); - current_ACK_word(BUFFER_SIZE_POSITION) <= SEND_BUFFER_SIZE_IN; - current_ACK_word(15 downto 0) <= (others => '0'); - sent_ACK <= SEND_ACK_IN or reg_SEND_ACK_IN; - - current_EOB_word(TYPE_POSITION) <= TYPE_EOB; - current_EOB_word(47 downto 0) <= (others => '0'); - gen_sent_EOB : process (CURRENT_DATA_COUNT, max_DATA_COUNT_minus_one) - begin - if (CURRENT_DATA_COUNT = max_DATA_COUNT_minus_one) then - sent_EOB <= '1'; - else - sent_EOB <= '0'; - end if; - end process; - - current_NOP_word(TYPE_POSITION) <= TYPE_ILLEGAL; - current_NOP_word(47 downto 0) <= (others => '0'); - - current_DATA_word(50 downto 0) <= INT_DATA_IN; - sent_DATA <= '1' when (TRANSMITTED_BUFFERS(1) = '0' or SWITCH_OFF_BUFFER_CHECK = 1) else '0'; - --- generate max_DATA_COUNT, comb. operation which should be registered --- next_max_DATA_COUNT <= "0000000000000100" when REC_BUFFER_SIZE_IN="0001" else --- "0000000000001000" when REC_BUFFER_SIZE_IN="0010" else --- "0000000000010000" when REC_BUFFER_SIZE_IN="0011" else --- "0000000000100000" when REC_BUFFER_SIZE_IN="0100" else --- "0000000000000010"; - tmp_next_max_DATA_COUNT_minus_one <= "0000000000000011" when REC_BUFFER_SIZE_IN="0001" else - "0000000000000111" when REC_BUFFER_SIZE_IN="0010" else - "0000000000001111" when REC_BUFFER_SIZE_IN="0011" else - "0000000000011111" when REC_BUFFER_SIZE_IN="0100" else - "0000000000000001"; - tmp_next_max_DATA_COUNT_minus_two <= "0000000000000010" when REC_BUFFER_SIZE_IN="0001" else - "0000000000000110" when REC_BUFFER_SIZE_IN="0010" else - "0000000000001110" when REC_BUFFER_SIZE_IN="0011" else - "0000000000011110" when REC_BUFFER_SIZE_IN="0100" else - "0000000000000000"; - next_max_DATA_COUNT_minus_one(DATA_COUNT_WIDTH-1 downto 0) <= tmp_next_max_DATA_COUNT_minus_one(DATA_COUNT_WIDTH-1 downto 0); - next_max_DATA_COUNT_minus_two(DATA_COUNT_WIDTH-1 downto 0) <= tmp_next_max_DATA_COUNT_minus_two(DATA_COUNT_WIDTH-1 downto 0); --- next_max_DATA_COUNT <= 2 ** (REC_BUFFER_SIZE_IN + 1); - -- BUGBUG via pattern_gen - - reg_max_DATA_COUNT : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - max_DATA_COUNT_minus_one(0) <= '1'; - max_DATA_COUNT_minus_one(DATA_COUNT_WIDTH-1 downto 1) <= (others => '0'); - max_DATA_COUNT_minus_two(DATA_COUNT_WIDTH-1 downto 0) <= (others => '0'); - else - max_DATA_COUNT_minus_one <= next_max_DATA_COUNT_minus_one; - max_DATA_COUNT_minus_two <= next_max_DATA_COUNT_minus_two; - end if; - end if; - end process; - - --- increase and decrease transmitted buffers - comb_TRANSMITTED_BUFFERS : process (increase_TRANSMITTED_BUFFERS, decrease_TRANSMITTED_BUFFERS, TRANSMITTED_BUFFERS) - begin - if (increase_TRANSMITTED_BUFFERS = '1' and decrease_TRANSMITTED_BUFFERS = '0') then - next_TRANSMITTED_BUFFERS <= TRANSMITTED_BUFFERS +1; - elsif (increase_TRANSMITTED_BUFFERS = '0' and decrease_TRANSMITTED_BUFFERS = '1') then - next_TRANSMITTED_BUFFERS <= TRANSMITTED_BUFFERS -1; - else - next_TRANSMITTED_BUFFERS <= TRANSMITTED_BUFFERS; - end if; - end process; - - reg_TRANSMITTED_BUFFERS : process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - TRANSMITTED_BUFFERS <= "00"; - elsif CLK_EN = '1' then - TRANSMITTED_BUFFERS <= next_TRANSMITTED_BUFFERS; - else - TRANSMITTED_BUFFERS <= TRANSMITTED_BUFFERS; - end if; - end if; - end process; - - - --locking control - comb_locked : process (MED_READ_IN, current_output_buffer, release_locked, is_locked) - - begin -- process - got_locked <= is_locked; - - if MED_READ_IN = '1' then - if current_output_buffer(TYPE_POSITION) = TYPE_TRM and release_locked = '0' then - got_locked <= '1'; - elsif release_locked = '1' then - got_locked <= '0'; - end if; - elsif release_locked = '1' then - got_locked <= '0'; - end if; -- MED_READ_IN - end process; - - release_locked <= CTRL_LOCKED(0); - STAT_LOCKED(0) <= is_locked; - STAT_LOCKED(15 downto 1) <= (others => '0'); - - reg_locked: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - is_locked <= '0'; - elsif CLK_EN = '1' then - is_locked <= got_locked; - else - is_locked <= is_locked; - end if; - end if; - end process; - - -end trb_net_obuf_arch; - diff --git a/oldfiles/trb_net_old_to_new.vhd b/oldfiles/trb_net_old_to_new.vhd deleted file mode 100644 index f59a7ba..0000000 --- a/oldfiles/trb_net_old_to_new.vhd +++ /dev/null @@ -1,284 +0,0 @@ --- this is an apl, connecting the old trigger bus to the new system -------------------------------------------------------------------------------- --- Title : trb_net_old_to_new --- Project : HADES trigger new net -------------------------------------------------------------------------------- --- File : trb_net_old_to_new.vhd --- Author : Tiago Perez (tiago.perez@uni-giessen.de) --- Created : 2007/01/12 --- Last modified : 2007/02/26 T. Perez -------------------------------------------------------------------------------- --- Description : Interace between "old" and "new" trigger nets --- -------------------------------------------------------------------------------- --- Modification history : --- 2007/01/12 : created --- L12TrigBusInterface is driven only with the main clock. This --- used to be 40MHz in "OLD" DTU but now is around 10 times faster. --- I am not sure how "sharp" are the edges of T and TS in the --- trigger bus, but now, samplig at ca. 400MHz we may sample T and --- TS sereval times while falling and still not set. We should --- chek the quality and "sharpness" of the Triggerbus with a scope --- and eventually downscale the main clock to sample slower. --- 2007/02/26: T. Perez (tiago.perez@uni-giessen.de) --- Change FSM so that all outouts are registered. OUTPUTS are --- decoded from the next_state to avoid losing CLK cycles. There --- is an external counter to do the sendig procedure. -------------------------------------------------------------------------------- - -library IEEE; -use IEEE.STD_LOGIC_1164.all; -use IEEE.STD_LOGIC_ARITH.all; -use IEEE.STD_LOGIC_UNSIGNED.all; - -entity trb_net_old_to_new is - generic (TRIGGER_LEVEL : integer := 1); -- either 1 or 2 - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_OUT : out std_logic_vector (47 downto 0); -- Data word "application to network" - APL_WRITE_OUT : out std_logic; -- Data word is valid and should be transmitted - APL_FIFO_FULL_IN : in std_logic; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_OUT : out std_logic; -- - APL_DTYPE_OUT : out std_logic_vector (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT : out std_logic_vector (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_OUT : out std_logic; -- Release sending of the data - APL_TARGET_ADDRESS_OUT : out std_logic_vector (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_IN : in std_logic_vector (47 downto 0); -- Data word "network to application" - APL_TYP_IN : in std_logic_vector (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_IN : in std_logic; -- Data word is valid and might be read out - APL_READ_OUT : out std_logic; -- Read data word - - -- APL Control port - APL_RUN_IN : in std_logic; -- Data transfer is running - APL_SEQNR_IN : in std_logic_vector (7 downto 0); - - -- the OLD trigger bus - OLD_T : in std_logic; -- trigger signal - -- used to strobe the trigger code - OLD_TS : in std_logic; -- trigger strobe --- used to strobe the trigger tag and further --- trigger data nibbles (e.g. trigger priority) - - OLD_TD : in std_logic_vector (3 downto 0); -- trigger data lines --- transmit the trigger data nibbles - OLD_TB : out std_logic; -- trigger busy --- wired-or signal, that indicates busy state of one or more DTUs - OLD_TE : out std_logic -- trigger error --- wired-or signal, that indicates error state of one or more DTUs ---Ts0..1 trigger spare lines ---free for future purposes ---not connected because useless - - - ); -end trb_net_old_to_new; - -architecture behavioral of trb_net_old_to_new is - - -- reconstruct the LVL1 or LVL2 trigger - -- for LVL1: Ignore the BEGRUN and ENDRUN triggers - -- (please use the generic to check if we have LVL1 or 2) - - -- compare to the SEQNR, do not forget the offset by one for LVL1 - -- if a tigger tag mismatch occures, raise the error line - - -- feel free to add debug registers - - -- COMPONENTS - -- OLD TRIGGER INTERFACE - component L12TrigBusInterface - port ( - TSTR : in std_logic; - DSTR : in std_logic; - DIN : in std_logic_vector(3 downto 0); - BSY : out std_logic; - ERR : out std_logic; - RES : in std_logic; - CLK : in std_logic; - DVAL : out std_logic; - TRIGTAG : out std_logic_vector(7 downto 0); - TRIGCODE : out std_logic_vector(3 downto 0); - TRIGTAG_MISMATCH : in std_logic; - BUSY : in std_logic); - end component; - - -- SIGNALS - signal TRIGTAG_i, TRIGTAG_ii : std_logic_vector(7 downto 0); - signal TRIGCODE_i : std_logic_vector(3 downto 0); - signal DVAL_i : std_logic; - signal TRIGTAG_MISMATCH_reg : std_logic; - - type State_Type is (idle, check_code, compare, send, error_1); - signal present_state, next_state : State_Type; - signal do_send_cnt : unsigned(2 downto 0); - - -begin - APL_DATA_OUT(7 downto 0) <= TRIGTAG_ii; - ----------------------------------------------------------------------------- - -- FIX NON USED OUTPUTS - ----------------------------------------------------------------------------- - APL_DATA_OUT(47 downto 8) <= (others => '0'); - APL_WRITE_OUT <= '0'; - - APL_SHORT_TRANSFER_OUT <= '1'; -- short transfer TRUE - APL_ERROR_PATTERN_OUT <= (others => '0'); - APL_TARGET_ADDRESS_OUT <= (others => '0'); - - ----------------------------------------------------------------------------- - -- COMPONENTS - ----------------------------------------------------------------------------- - BusInterfaceOld : L12TrigBusInterface - port map ( - TSTR => OLD_T, - DSTR => OLD_TS, - DIN => OLD_TD, - BSY => OLD_TB, - ERR => OLD_TE, - RES => RESET, - CLK => CLK, - DVAL => DVAL_i, - TRIGTAG => TRIGTAG_i, - TRIGCODE => TRIGCODE_i, - TRIGTAG_MISMATCH => TRIGTAG_MISMATCH_reg, - BUSY => APL_RUN_IN); - - ----------------------------------------------------------------------------- - -- DIFF LVL1/LVL2 - ----------------------------------------------------------------------------- - -- filter BEGRUN out - -- CHANGE: TRIGTAG=TRIGTAG-1 - GEN_L1 : if TRIGGER_LEVEL = 1 generate - process (CLK, RESET, CLK_EN, TRIGTAG_i) - begin -- process S - if RESET = '1' then - TRIGTAG_ii <= (others => '0'); - elsif CLK'event and CLK = '1' and CLK_EN = '1' then - TRIGTAG_ii <= TRIGTAG_i - 1; - end if; - end process; - end generate GEN_L1; - - -- Register TRIGTAG - GEN_L2 : if TRIGGER_LEVEL = 2 generate - process (CLK, RESET, CLK_EN, TRIGTAG_i) - begin -- process S - if RESET = '1' then - TRIGTAG_ii <= (others => '0'); - elsif CLK'event and CLK = '1' and CLK_EN = '1' then - TRIGTAG_ii <= TRIGTAG_i; - end if; - end process; - end generate GEN_L2; - - ----------------------------------------------------------------------------- - -- FSM - ----------------------------------------------------------------------------- - -- purpose: Register the STATE of the FSM - -- type : Sequential - -- inputs : CLK, RESET, next_state - -- output : next_state - state_clocked : process (CLK, RESET, CLK_EN) - begin -- process state_clocked - if RESET = '1' then -- asynchronous reset (active high) - present_state <= idle; - elsif CLK'event and CLK = '1' and CLK_EN = '1' then -- rising clock edge - present_state <= next_state; - end if; - end process state_clocked; - - -- purpose: Calculates the next_state of the FSM. - -- type : combinational - -- inputs : present_state, DVAL_i, TRIGTAG_ii, APL_SEQNR_IN, APL_RUN_IN - -- outputs: next_state - FSM : process (present_state, DVAL_i, TRIGTAG_ii, APL_SEQNR_IN, TRIGCODE_i, do_send_cnt) - begin -- process FSM - next_state <= present_state; - case present_state is - when idle => - if DVAL_i = '1' then - next_state <= check_code; - end if; - when check_code => - -- Check for BEGIN_RUN - if TRIGCODE_i = x"d" then - next_state <= idle; - else - next_state <= compare; - end if; - when compare => - if TRIGTAG_ii = APL_SEQNR_IN then - next_state <= send; - else - next_state <= error_1; - end if; - when send => - if do_send_cnt = 5 then - --if APL_RUN_IN = '1' then - next_state <= idle; - end if; - when others => null; - end case; - end process FSM; - - -- purpose: decode and register the output signals of FSM - -- type : sequentia - -- inputs : next_state - -- outputs: TRIGTAG - decode_output : process (CLK, RESET, CLK_EN, next_state, do_send_cnt) - begin -- process decode_output - if RESET = '1' then - TRIGTAG_MISMATCH_reg <= '0'; - APL_SEND_OUT <= '0'; - APL_READ_OUT <= '0'; - - APL_DTYPE_OUT <= (others => '0'); - elsif CLK'event and CLK = '1' and CLK_EN = '1' then - TRIGTAG_MISMATCH_reg <= '0'; - APL_SEND_OUT <= '0'; - APL_READ_OUT <= '0'; - - APL_DTYPE_OUT <= (others => '0'); - - case next_state is - when idle => - --when check_code => - - when compare => - APL_DTYPE_OUT <= TRIGCODE_i; - - when send => - APL_DTYPE_OUT <= TRIGCODE_i; - if do_send_cnt = 1 then - APL_SEND_OUT <= '1'; - end if; - if (do_send_cnt = 3) or (do_send_cnt = 4) then - APL_READ_OUT <= '1'; - end if; - when error_1 => - TRIGTAG_MISMATCH_reg <= '1'; - when others => null; - end case; - end if; - end process decode_output; - - send_counter : process (CLK, RESET, present_state) - begin -- process send - if RESET = '1' or present_state = idle then -- asynchronous reset (active low) - do_send_cnt <= (others => '0'); - elsif CLK'event and CLK = '1' and present_state = send then -- rising clock edge - do_send_cnt <= do_send_cnt+1; - end if; - end process send_counter; - -end behavioral; - diff --git a/oldfiles/trb_net_passive_api.vhd b/oldfiles/trb_net_passive_api.vhd deleted file mode 100644 index da5a119..0000000 --- a/oldfiles/trb_net_passive_api.vhd +++ /dev/null @@ -1,203 +0,0 @@ --- connection between the TRBNET and any application --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetAPI - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - - -entity trb_net_passive_api is - - generic (FIFO_TO_INT_DEPTH : integer := 0; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 0; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Internal direction port - -- This is just a clone from trb_net_iobuf - - INT_INIT_DATAREADY_OUT: out STD_LOGIC; - INT_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_IN: in STD_LOGIC; - - INT_INIT_DATAREADY_IN: in STD_LOGIC; - INT_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_OUT: out STD_LOGIC; - - - INT_REPLY_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out STD_LOGIC; - INT_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_IN: in STD_LOGIC; - - INT_REPLY_DATAREADY_IN: in STD_LOGIC; - INT_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_OUT: out STD_LOGIC; - - -- Status and control port - STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - -- not needed now, but later - ); -end trb_net_passive_api; - -architecture trb_net_passive_api_arch of trb_net_passive_api is - - component trb_net_base_api is - generic (API_TYPE : integer := 0; -- type of api: 0 passive, 1 active - FIFO_TO_INT_DEPTH : integer := 0; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 0; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Internal direction port - -- the ports with active or passive in their name are to be mapped by the active api - -- to the init respectivly the reply path and vice versa in the passive api. - INT_MASTER_DATAREADY_OUT: out STD_LOGIC; - INT_MASTER_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_MASTER_READ_IN: in STD_LOGIC; - - INT_MASTER_DATAREADY_IN: in STD_LOGIC; - INT_MASTER_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_MASTER_READ_OUT: out STD_LOGIC; - - INT_SLAVE_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_SLAVE_DATAREADY_OUT: out STD_LOGIC; - INT_SLAVE_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_SLAVE_READ_IN: in STD_LOGIC; - - INT_SLAVE_DATAREADY_IN: in STD_LOGIC; - INT_SLAVE_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_SLAVE_READ_OUT: out STD_LOGIC; - -- Status and control port - STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - -- not needed now, but later - ); - end component; - -begin - - PASSIVE_API: trb_net_base_api - generic map ( - API_TYPE => 0, - FIFO_TO_INT_DEPTH => FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => 0 - ) - port map ( - CLK => CLK, - CLK_EN => CLK_EN, - RESET => RESET, - - APL_DATA_IN => APL_DATA_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_SEND_IN => APL_SEND_IN, - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN, - APL_DATA_OUT => APL_DATA_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL_SEQNR_OUT, - - -- Internal direction port - INT_MASTER_DATAREADY_OUT => INT_REPLY_DATAREADY_OUT, - INT_MASTER_DATA_OUT => INT_REPLY_DATA_OUT, - INT_MASTER_READ_IN => INT_REPLY_READ_IN, - - INT_MASTER_DATAREADY_IN => INT_REPLY_DATAREADY_IN, - INT_MASTER_DATA_IN => INT_REPLY_DATA_IN, - INT_MASTER_READ_OUT => INT_REPLY_READ_OUT, - - INT_SLAVE_HEADER_IN => INT_REPLY_HEADER_IN, - - INT_SLAVE_DATAREADY_OUT => INT_INIT_DATAREADY_OUT, - INT_SLAVE_DATA_OUT => INT_INIT_DATA_OUT, - INT_SLAVE_READ_IN => INT_INIT_READ_IN, - - INT_SLAVE_DATAREADY_IN => INT_INIT_DATAREADY_IN, - INT_SLAVE_DATA_IN => INT_INIT_DATA_IN, - INT_SLAVE_READ_OUT => INT_INIT_READ_OUT, - -- Status and control port - STAT_FIFO_TO_INT => STAT_FIFO_TO_INT, - STAT_FIFO_TO_APL => STAT_FIFO_TO_APL - -- not needed now, but later - ); - -end trb_net_passive_api_arch; diff --git a/oldfiles/trb_net_passive_apimbuf.vhd b/oldfiles/trb_net_passive_apimbuf.vhd deleted file mode 100644 index 7372352..0000000 --- a/oldfiles/trb_net_passive_apimbuf.vhd +++ /dev/null @@ -1,479 +0,0 @@ --- an active api together with an iobuf - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_passive_apimbuf is - - generic (INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3; -- or the replyibuf - FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 3; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 1 -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_Send_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Status and control port => just coming from the iobuf for debugging - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_api_control_signals: out std_logic_vector(31 downto 0); - STAT_MPLEX: out STD_LOGIC_VECTOR(31 downto 0); - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0); - API_STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - API_STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); -end trb_net_passive_apimbuf; - -architecture trb_net_passive_apimbuf_arch of trb_net_passive_apimbuf is - -component trb_net_iobuf is - - generic (SWITCH_OFF_BUFFER_CHECK : integer := 0; - --switching off erroneous output buffer counter. MUST ONLY be - --used for short transfers!!!! - INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3); -- or the replyibuf - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_INIT_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_INIT_READ_IN: in STD_LOGIC; -- Media is reading - - MED_INIT_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_INIT_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_INIT_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - MED_REPLY_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_REPLY_READ_IN: in STD_LOGIC; -- Media is reading - - MED_REPLY_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_REPLY_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_REPLY_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - -- Internal direction port - - INT_INIT_DATAREADY_OUT: out STD_LOGIC; - INT_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_IN: in STD_LOGIC; - - INT_INIT_DATAREADY_IN: in STD_LOGIC; - INT_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_OUT: out STD_LOGIC; - - INT_REPLY_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out STD_LOGIC; - INT_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_IN: in STD_LOGIC; - - INT_REPLY_DATAREADY_IN: in STD_LOGIC; - INT_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_OUT: out STD_LOGIC; - - -- Status and control port - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0) - ); -end component; - -component trb_net_passive_api is - - generic (FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), - -- for the direction to - -- internal world - FIFO_TO_APL_DEPTH : integer := 3; -- direction to application - FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_Send_IN: in STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out - APL_READ_IN: in STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - - -- Internal direction port - -- This is just a clone from trb_net_iobuf - - INT_INIT_DATAREADY_OUT: out STD_LOGIC; - INT_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_IN: in STD_LOGIC; - - INT_INIT_DATAREADY_IN: in STD_LOGIC; - INT_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_OUT: out STD_LOGIC; - - - INT_REPLY_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out STD_LOGIC; - INT_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_IN: in STD_LOGIC; - - INT_REPLY_DATAREADY_IN: in STD_LOGIC; - INT_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_OUT: out STD_LOGIC; - - -- Status and control port - STAT_FIFO_TO_INT: out std_logic_vector(31 downto 0); - STAT_FIFO_TO_APL: out std_logic_vector(31 downto 0) - ); -end component; - -component trb_net_io_multiplexer is - - generic (BUS_WIDTH : integer := 56; - MULT_WIDTH : integer := 5); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - -- highest bits are mult. - MED_READ_OUT: out STD_LOGIC; - - MED_DATAREADY_OUT: out STD_LOGIC; - MED_DATA_OUT: out STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - MED_READ_IN: in STD_LOGIC; - - -- Internal direction port - INT_DATAREADY_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_OUT: out STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - INT_DATAREADY_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_IN: in STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - -- Status and control port - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - STAT: out STD_LOGIC_VECTOR (31 downto 0) - ); -end component; - -signal apl_to_buf_INIT_DATAREADY: STD_LOGIC; -signal apl_to_buf_INIT_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal apl_to_buf_INIT_READ : STD_LOGIC; - -signal buf_to_apl_INIT_DATAREADY: STD_LOGIC; -signal buf_to_apl_INIT_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal buf_to_apl_INIT_READ : STD_LOGIC; - -signal apl_to_buf_REPLY_DATAREADY: STD_LOGIC; -signal apl_to_buf_REPLY_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal apl_to_buf_REPLY_READ : STD_LOGIC; - -signal buf_to_apl_REPLY_DATAREADY: STD_LOGIC; -signal buf_to_apl_REPLY_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal buf_to_apl_REPLY_READ : STD_LOGIC; - --- for the connection to the multiplexer -signal MED_INIT_DATAREADY_OUT : STD_LOGIC; -signal MED_INIT_DATA_OUT : STD_LOGIC_VECTOR (50 downto 0); -signal MED_INIT_READ_IN : STD_LOGIC; - -signal MED_INIT_DATAREADY_IN : STD_LOGIC; -signal MED_INIT_DATA_IN : STD_LOGIC_VECTOR (50 downto 0); -signal MED_INIT_READ_OUT : STD_LOGIC; - -signal MED_REPLY_DATAREADY_OUT : STD_LOGIC; -signal MED_REPLY_DATA_OUT : STD_LOGIC_VECTOR (50 downto 0); -signal MED_REPLY_READ_IN : STD_LOGIC; - -signal MED_REPLY_DATAREADY_IN : STD_LOGIC; -signal MED_REPLY_DATA_IN : STD_LOGIC_VECTOR (50 downto 0); -signal MED_REPLY_READ_OUT : STD_LOGIC; - -signal m_DATAREADY_OUT : STD_LOGIC_VECTOR (1 downto 0); -signal m_DATA_OUT : STD_LOGIC_VECTOR (101 downto 0); -signal m_READ_IN : STD_LOGIC_VECTOR (1 downto 0); - -signal m_DATAREADY_IN : STD_LOGIC_VECTOR (1 downto 0); -signal m_DATA_IN : STD_LOGIC_VECTOR (101 downto 0); -signal m_READ_OUT : STD_LOGIC_VECTOR (1 downto 0); - -begin - - m_DATAREADY_OUT(0) <= MED_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(1) <= MED_REPLY_DATAREADY_OUT; - m_DATA_OUT(50 downto 0) <= MED_INIT_DATA_OUT; - m_DATA_OUT(101 downto 51) <= MED_REPLY_DATA_OUT; - MED_INIT_READ_IN <= m_READ_IN(0); - MED_REPLY_READ_IN <= m_READ_IN(1); - - MED_INIT_DATAREADY_IN <= m_DATAREADY_IN(0); - MED_REPLY_DATAREADY_IN <= m_DATAREADY_IN(1); - MED_INIT_DATA_IN <= m_DATA_IN(50 downto 0); - MED_REPLY_DATA_IN <= m_DATA_IN(101 downto 51); - m_READ_OUT(0) <= MED_INIT_READ_OUT; - m_READ_OUT(1) <= MED_REPLY_READ_OUT; - - - PASSIVE_API: trb_net_passive_api - - generic map (FIFO_TO_INT_DEPTH => FIFO_TO_INT_DEPTH, - FIFO_TO_APL_DEPTH => FIFO_TO_APL_DEPTH, - FIFO_TERM_BUFFER_DEPTH => FIFO_TERM_BUFFER_DEPTH) - - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - - -- APL Transmitter port - APL_DATA_IN => APL_DATA_IN, - APL_WRITE_IN => APL_WRITE_IN, - APL_FIFO_FULL_OUT => APL_FIFO_FULL_OUT, - APL_SHORT_TRANSFER_IN => APL_SHORT_TRANSFER_IN, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - APL_Send_IN => APL_Send_IN, - APL_TARGET_ADDRESS_IN => APL_TARGET_ADDRESS_IN, - - -- Receiver port - APL_DATA_OUT => APL_DATA_OUT, - APL_TYP_OUT => APL_TYP_OUT, - APL_DATAREADY_OUT => APL_DATAREADY_OUT, - APL_READ_IN => APL_READ_IN, - - -- APL Control port - APL_RUN_OUT => APL_RUN_OUT, - APL_MY_ADDRESS_IN => APL_MY_ADDRESS_IN, - APL_SEQNR_OUT => APL_SEQNR_OUT, - - -- Internal direction port - -- connect via private signals - - INT_INIT_DATAREADY_OUT => apl_to_buf_INIT_DATAREADY, - INT_INIT_DATA_OUT => apl_to_buf_INIT_DATA, - INT_INIT_READ_IN => apl_to_buf_INIT_READ, - - INT_INIT_DATAREADY_IN => buf_to_apl_INIT_DATAREADY, - INT_INIT_DATA_IN => buf_to_apl_INIT_DATA, - INT_INIT_READ_OUT => buf_to_apl_INIT_READ, - - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT =>apl_to_buf_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => apl_to_buf_REPLY_DATA, - INT_REPLY_READ_IN => apl_to_buf_REPLY_READ, - - INT_REPLY_DATAREADY_IN => buf_to_apl_REPLY_DATAREADY, - INT_REPLY_DATA_IN => buf_to_apl_REPLY_DATA, - INT_REPLY_READ_OUT => buf_to_apl_REPLY_READ, - - -- Status and control port - STAT_FIFO_TO_INT => api_stat_fifo_to_int, - STAT_FIFO_TO_APL => api_stat_fifo_to_apl - ); - -STAT_api_control_signals(2 downto 0) <= APL_DATA_IN(2 downto 0); -STAT_api_control_signals(3) <= APL_WRITE_IN; -STAT_api_control_signals(4) <= APL_Send_IN; -STAT_api_control_signals(7 downto 5) <= (others => '0'); -STAT_api_control_signals(10 downto 8) <= apl_to_buf_INIT_DATA(2 downto 0); -STAT_api_control_signals(11) <= apl_to_buf_INIT_DATAREADY; -STAT_api_control_signals(12) <= apl_to_buf_INIT_READ; -STAT_api_control_signals(13) <= MED_INIT_DATAREADY_IN; -STAT_api_control_signals(14) <= MED_REPLY_DATAREADY_IN; -STAT_api_control_signals(15) <= MED_REPLY_DATA_IN(48); -STAT_api_control_signals(16) <= MED_REPLY_DATA_IN(50); - -STAT_api_control_signals(31 downto 17) <= (others => '0'); - - - -IOBUF: trb_net_iobuf - - generic map (SWITCH_OFF_BUFFER_CHECK => 0, - --switching off erroneous output buffer counter. MUST ONLY be - --used for short transfers!!!! - INIT_DEPTH => INIT_DEPTH, - REPLY_DEPTH => REPLY_DEPTH) - - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_INIT_DATA_OUT, - MED_INIT_READ_IN => MED_INIT_READ_IN, - - MED_INIT_DATAREADY_IN => MED_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_INIT_DATA_IN, - MED_INIT_READ_OUT => MED_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - - MED_REPLY_DATAREADY_OUT => MED_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_REPLY_DATA_OUT, - MED_REPLY_READ_IN => MED_REPLY_READ_IN, - - MED_REPLY_DATAREADY_IN => MED_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_REPLY_DATA_IN, - MED_REPLY_READ_OUT => MED_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - - -- Internal direction port - - INT_INIT_DATAREADY_OUT => buf_to_apl_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_INIT_DATA, - INT_INIT_READ_IN => buf_to_apl_INIT_READ, - - INT_INIT_DATAREADY_IN => apl_to_buf_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_INIT_DATA, - INT_INIT_READ_OUT => apl_to_buf_INIT_READ, - - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_REPLY_DATA, - INT_REPLY_READ_IN => buf_to_apl_REPLY_READ, - - INT_REPLY_DATAREADY_IN => apl_to_buf_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_REPLY_DATA, - INT_REPLY_READ_OUT => apl_to_buf_REPLY_READ, - - -- Status and control port - STAT_GEN => STAT_GEN, - STAT_LOCKED => STAT_LOCKED, - STAT_INIT_BUFFER => STAT_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_REPLY_BUFFER, - CTRL_GEN => CTRL_GEN, - CTRL_LOCKED => CTRL_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_CTRL_REPLY_BUFFER - ); - - MPLEX: trb_net_io_multiplexer - generic map (BUS_WIDTH => 52, - MULT_WIDTH => 1) - port map ( - CLK => CLK, - RESET => RESET , - CLK_EN => CLK_EN, - - MED_DATAREADY_IN => MED_DATAREADY_IN, - MED_DATA_IN => MED_DATA_IN, - MED_READ_OUT => MED_READ_OUT, - - MED_DATAREADY_OUT => MED_DATAREADY_OUT, - MED_DATA_OUT => MED_DATA_OUT, - MED_READ_IN => MED_READ_IN, - - INT_DATAREADY_OUT => m_DATAREADY_IN, - INT_DATA_OUT =>m_DATA_IN, - INT_READ_IN =>m_READ_OUT, - - INT_DATAREADY_IN =>m_DATAREADY_OUT, - INT_DATA_IN =>m_DATA_OUT, - INT_READ_OUT =>m_READ_IN, - - CTRL => MPLEX_CTRL, - STAT => STAT_MPLEX - - ); - -end trb_net_passive_apimbuf_arch; - diff --git a/oldfiles/trb_net_priority_encoder_simple.vhd b/oldfiles/trb_net_priority_encoder_simple.vhd deleted file mode 100644 index 687dc85..0000000 --- a/oldfiles/trb_net_priority_encoder_simple.vhd +++ /dev/null @@ -1,40 +0,0 @@ -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -library work; -use work.trb_net_std.all; - -entity trb_net_priority_encoder_simple is - generic ( - WIDTH : integer := 8 - ); - port ( - INPUT_IN : in STD_LOGIC_VECTOR (WIDTH-1 downto 0); - RESULT_OUT : out STD_LOGIC_VECTOR (WIDTH-1 downto 0) - ); -end entity; - -architecture trb_net_priority_encoder_simple_arch of trb_net_priority_encoder_simple is - - signal fixed_pattern: STD_LOGIC_VECTOR (WIDTH-1 downto 0); - - begin - fixed_pattern(0) <= INPUT_IN(0); - F1: for i in 1 to WIDTH-1 generate - process(INPUT_IN) - begin - if INPUT_IN(i) = '1' and INPUT_IN(i-1 downto 0) = 0 then - fixed_pattern(i) <= '1'; - else - fixed_pattern(i) <= '0'; - end if; - end process; - end generate; - - RESULT_OUT <= fixed_pattern; - - -end architecture; - diff --git a/oldfiles/trb_net_term.vhd b/oldfiles/trb_net_term.vhd deleted file mode 100644 index 0e5d4e3..0000000 --- a/oldfiles/trb_net_term.vhd +++ /dev/null @@ -1,257 +0,0 @@ --- this is just a terminator, which auto-answers requests --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetTerm - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - - -entity trb_net_term is - - generic (FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- Internal direction port - -- This is just a clone from trb_net_iobuf - - INT_DATAREADY_OUT: out STD_LOGIC; - INT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - - INT_DATAREADY_IN: in STD_LOGIC; - INT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_OUT: out STD_LOGIC; - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - APL_GOT_TRM: out STD_LOGIC; - - APL_HOLD_TRM: in STD_LOGIC; - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - - APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0) -- My own address (temporary solution!!!) - -- Status and control port - - -- not needed now, but later - - ); -END trb_net_term; - -architecture trb_net_term_arch of trb_net_term is - -component trb_net_fifo is - generic (WIDTH : integer := 8; -- FIFO word width - DEPTH : integer := 4); -- Depth of the FIFO, 2^(n+1) - - port (CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - DATA_IN : in std_logic_vector(WIDTH - 1 downto 0); -- Input data - WRITE_ENABLE_IN : in std_logic; - DATA_OUT : out std_logic_vector(WIDTH - 1 downto 0); -- Output data - READ_ENABLE_IN : in std_logic; - FULL_OUT : out std_logic; -- Full Flag - EMPTY_OUT : out std_logic; - DEPTH_OUT : out std_logic_vector(7 downto 0) - ); - - end component; - --- signals for the test buffer -signal next_APL_DTYPE_OUT, reg_APL_DTYPE_OUT: std_logic_vector(3 downto 0); -signal next_APL_ERROR_PATTERN_OUT, reg_APL_ERROR_PATTERN_OUT: std_logic_vector(31 downto 0); -signal next_APL_SEQNR_OUT, reg_APL_SEQNR_OUT: std_logic_vector(7 downto 0); -signal next_APL_GOT_TRM, reg_APL_GOT_TRM: std_logic; - -signal fifo_term_buffer_data_in : std_logic_vector(50 downto 0); -signal fifo_term_buffer_write : std_logic; -signal fifo_term_buffer_data_out : std_logic_vector(50 downto 0); -signal fifo_term_buffer_read : std_logic; -signal fifo_term_buffer_full : std_logic; -signal fifo_term_buffer_empty : std_logic; - -type TERM_BUFFER_STATE is (IDLE, RUNNING, SEND_TRAILER, MY_ERROR); -signal tb_current_state, tb_next_state : TERM_BUFFER_STATE; - --- signal combined_header, registered_header, next_registered_header: std_logic_vector(47 downto 0); --- signal combined_trailer, registered_trailer, next_registered_trailer: std_logic_vector(47 downto 0); - signal tb_registered_trailer, tb_next_registered_trailer: std_logic_vector(47 downto 0); - signal tb_registered_target, tb_next_registered_target: std_logic_vector(15 downto 0); - --- signal sequence_counter,next_sequence_counter : std_logic_vector(7 downto 0); --- signal next_INT_INIT_DATA_OUT: std_logic_vector(50 downto 0); --- signal next_INT_INIT_DATAREADY_OUT: std_logic; --- signal sbuf_free, sbuf_next_READ: std_logic; - signal next_INT_REPLY_READ_OUT, reg_INT_REPLY_READ_OUT: std_logic; --- signal next_APL_DATAREADY_OUT, reg_APL_DATAREADY_OUT: std_logic; --- signal next_APL_DATA_OUT, reg_APL_DATA_OUT: std_logic_vector(47 downto 0); --- signal next_APL_TYP_OUT, reg_APL_TYP_OUT: std_logic_vector(2 downto 0); - -begin - - -CHECK_BUFFER1: if FIFO_TERM_BUFFER_DEPTH >0 generate - FIFO_TERM_BUFFER: trb_net_fifo - generic map ( - WIDTH => 51, - DEPTH => FIFO_TERM_BUFFER_DEPTH) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - DATA_IN => fifo_term_buffer_data_in, - WRITE_ENABLE_IN => fifo_term_buffer_write, - DATA_OUT => fifo_term_buffer_data_out, - READ_ENABLE_IN => fifo_term_buffer_read, - FULL_OUT => fifo_term_buffer_full, - EMPTY_OUT => fifo_term_buffer_empty - ); -end generate CHECK_BUFFER1; -CHECK_BUFFER2: if FIFO_TERM_BUFFER_DEPTH =0 generate - fifo_term_buffer_empty <= '1'; - fifo_term_buffer_full <= '0'; - fifo_term_buffer_data_out <= (others => '0'); - -end generate CHECK_BUFFER2; - - APL_DTYPE_OUT <= reg_APL_DTYPE_OUT; - APL_ERROR_PATTERN_OUT <= reg_APL_ERROR_PATTERN_OUT; - APL_SEQNR_OUT <= reg_APL_SEQNR_OUT; - APL_GOT_TRM <= reg_APL_GOT_TRM; - - - FIFO_TERM_BUFFER_CTRL: process (tb_current_state, INT_DATA_IN, - INT_DATAREADY_IN, tb_next_registered_trailer, - tb_registered_trailer, - fifo_term_buffer_empty, fifo_term_buffer_data_out, - INT_READ_IN, tb_registered_target, - reg_APL_DTYPE_OUT, reg_APL_ERROR_PATTERN_OUT, - reg_APL_SEQNR_OUT, reg_APL_GOT_TRM,APL_MY_ADDRESS_IN, - APL_HOLD_TRM, APL_DTYPE_IN, APL_ERROR_PATTERN_IN) - begin -- process - INT_READ_OUT <= '0'; - fifo_term_buffer_data_in(TYPE_POSITION) <= TYPE_ILLEGAL; - fifo_term_buffer_data_in(DWORD_POSITION) <= (others => '0'); - fifo_term_buffer_write <= '0'; - tb_next_state <= MY_ERROR; - tb_next_registered_trailer <= tb_registered_trailer; - tb_next_registered_target <= tb_registered_target; - fifo_term_buffer_read<= '0'; - INT_DATAREADY_OUT <= '0'; - INT_DATA_OUT(DWORD_POSITION) <= (others => '0'); - INT_DATA_OUT(TYPE_POSITION) <= TYPE_ILLEGAL; - next_APL_DTYPE_OUT <= reg_APL_DTYPE_OUT; - next_APL_ERROR_PATTERN_OUT <= reg_APL_ERROR_PATTERN_OUT; - next_APL_SEQNR_OUT <= reg_APL_SEQNR_OUT; - next_APL_GOT_TRM <= reg_APL_GOT_TRM; ------------------------------------------------------------------------ --- IDLE ------------------------------------------------------------------------ - if tb_current_state = IDLE then - INT_READ_OUT <= '1'; -- I always can read - tb_next_state <= IDLE; - if INT_DATA_IN(TYPE_POSITION) = TYPE_HDR and INT_DATAREADY_IN = '1' then - -- switch source and target adress - fifo_term_buffer_data_in(SOURCE_POSITION) <= INT_DATA_IN(TARGET_POSITION); - fifo_term_buffer_data_in(TARGET_POSITION) <= INT_DATA_IN(SOURCE_POSITION); - fifo_term_buffer_data_in(F3_POSITION) <= INT_DATA_IN(F3_POSITION); - fifo_term_buffer_data_in(TYPE_POSITION) <= TYPE_HDR; - tb_next_registered_target <= INT_DATA_IN(TARGET_POSITION); - if fifo_term_buffer_full = '0' and (INT_DATA_IN(TARGET_POSITION) = APL_MY_ADDRESS_IN - or INT_DATA_IN(TARGET_POSITION) = BROADCAST_ADRESS) then - fifo_term_buffer_write <= '1'; - else - fifo_term_buffer_write <= '0'; - end if; - elsif INT_DATA_IN(TYPE_POSITION) = TYPE_DAT and INT_DATAREADY_IN = '1' then - fifo_term_buffer_data_in <= INT_DATA_IN; - if fifo_term_buffer_full = '0' and (tb_registered_target = APL_MY_ADDRESS_IN - or tb_registered_target = BROADCAST_ADRESS) then - fifo_term_buffer_write <= '1'; - else - fifo_term_buffer_write <= '0'; - end if; - elsif INT_DATA_IN(TYPE_POSITION) = TYPE_TRM and INT_DATAREADY_IN = '1' then - --tb_next_registered_trailer <= INT_INIT_DATA_IN(DWORD_POSITION); - --keep trailer for later use - -- in addition, write out some debug info - next_APL_DTYPE_OUT <= INT_DATA_IN(DTYPE_POSITION); - next_APL_ERROR_PATTERN_OUT <= INT_DATA_IN(ERRORPATTERN_POSITION); - next_APL_SEQNR_OUT <= INT_DATA_IN(SEQNR_POSITION); - next_APL_GOT_TRM <= '1'; - tb_next_state <= RUNNING; - end if; ------------------------------------------------------------------------ --- RUNNING ------------------------------------------------------------------------ - elsif tb_current_state = RUNNING then - tb_next_state <= RUNNING; - if fifo_term_buffer_empty = '0' then -- Have buffered stuff - INT_DATAREADY_OUT <= '1'; - INT_DATA_OUT <= fifo_term_buffer_data_out; - if (INT_READ_IN = '1') then - fifo_term_buffer_read <= '1'; - end if; - elsif APL_HOLD_TRM = '1' then - tb_next_state <= RUNNING; --hold the line - else - tb_next_state <= SEND_TRAILER; - tb_next_registered_trailer(DTYPE_POSITION) <= APL_DTYPE_IN; - tb_next_registered_trailer(ERRORPATTERN_POSITION) <= APL_ERROR_PATTERN_IN; - tb_next_registered_trailer(SEQNR_POSITION) <= reg_APL_SEQNR_OUT; - tb_next_registered_trailer(15 downto 12) <= (others => '0'); - end if; -- Have buffered stuff ------------------------------------------------------------------------ --- TRAILER ------------------------------------------------------------------------ - elsif tb_current_state = SEND_TRAILER then - tb_next_state <= SEND_TRAILER ; - INT_DATAREADY_OUT <= '1'; - INT_DATA_OUT(DWORD_POSITION) <= tb_registered_trailer; - INT_DATA_OUT(TYPE_POSITION) <= TYPE_TRM; - if (INT_READ_IN = '1') then - tb_next_state <= IDLE; - tb_next_registered_target <= ILLEGAL_ADRESS; - next_APL_GOT_TRM <= '0'; - end if; - end if; -- tb_current_state switch - end process; - -CLK_REG: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - tb_current_state <= IDLE; - tb_registered_trailer <= (others => '0'); - tb_registered_target <= ILLEGAL_ADRESS; - reg_APL_DTYPE_OUT <= (others => '0'); - reg_APL_ERROR_PATTERN_OUT <= (others => '0'); - reg_APL_SEQNR_OUT <= (others => '0'); - reg_APL_GOT_TRM <= '0'; - else - tb_current_state <= tb_next_state; - tb_registered_trailer <= tb_next_registered_trailer; - tb_registered_target <= tb_next_registered_target; - reg_APL_DTYPE_OUT <= next_APL_DTYPE_OUT; - reg_APL_ERROR_PATTERN_OUT <= next_APL_ERROR_PATTERN_OUT; - reg_APL_SEQNR_OUT <= next_APL_SEQNR_OUT; - reg_APL_GOT_TRM <= next_APL_GOT_TRM; - end if; - end if; - end process; - -end trb_net_term_arch; diff --git a/oldfiles/trb_net_term_ibuf.vhd b/oldfiles/trb_net_term_ibuf.vhd deleted file mode 100644 index 6aee069..0000000 --- a/oldfiles/trb_net_term_ibuf.vhd +++ /dev/null @@ -1,216 +0,0 @@ --- for a description see HADES wiki --- http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/TrbNetIBUF --- This has in principle the same output ports, but internally --- it keeps only the TRM words --- EOB are killed --- ACK are regognized --- all other words (HDR, DAT) are not stored - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_term_ibuf is - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- Internal direction port - INT_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last header - INT_DATAREADY_OUT: out STD_LOGIC; - INT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - INT_ERROR_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Status bits - -- Status and control port - STAT_LOCKED: out STD_LOGIC_VECTOR (15 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (15 downto 0); - STAT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0) - ); -end trb_net_term_ibuf; - -architecture trb_net_term_ibuf_arch of trb_net_term_ibuf is - - component trb_net_sbuf is - - generic (DATA_WIDTH : integer := 56; - VERSION : integer := 1); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- port to combinatorial logic - COMB_DATAREADY_IN: in STD_LOGIC; --comb logic provides data word - COMB_next_READ_OUT: out STD_LOGIC; --sbuf can read in NEXT cycle - COMB_READ_IN: in STD_LOGIC; --comb logic IS reading - COMB_DATA_IN: in STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - -- Port to synchronous output. - SYN_DATAREADY_OUT: out STD_LOGIC; - SYN_DATA_OUT: out STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0); -- Data word - SYN_READ_IN: in STD_LOGIC; - -- Status and control port - STAT_BUFFER: out STD_LOGIC - ); - end component; - - -signal got_ack_internal, reg_ack_internal : std_logic; --should be raised for 1 cycle when ack - --arrived -signal is_locked, got_locked,release_locked : std_logic; -signal got_eob_out, reg_eob_out: std_logic; -signal sbuf_free, comb_next_read: std_logic; -signal tmp_INT_DATAREADY_OUT: std_logic; -signal tmp_INT_DATA_OUT: std_logic_vector(50 downto 0); - -type ERROR_STATE is (IDLE, GOT_OVERFLOW_ERROR, GOT_LOCKED_ERROR, GOT_UNDEFINED_ERROR); -signal current_error_state, next_error_state : ERROR_STATE; - -signal next_rec_buffer_size_out, current_rec_buffer_size_out : std_logic_vector(3 downto 0); - -- buffer size control - - begin - - --- this process controls the writing of the media into the fifo - FILTER_DATAREADY_IN : process(MED_DATA_IN, MED_DATAREADY_IN, MED_ERROR_IN, - is_locked, current_rec_buffer_size_out, - current_error_state, release_locked, - sbuf_free) - begin -- process - got_ack_internal <= '0'; - next_rec_buffer_size_out <= current_rec_buffer_size_out; - next_error_state <= current_error_state; - tmp_INT_DATA_OUT <= (others => '1'); - tmp_INT_DATAREADY_OUT <= '0'; - got_eob_out <= '0'; - got_locked <= is_locked; - - if MED_DATAREADY_IN = '1' then -- data word offered - if MED_DATA_IN(TYPE_POSITION) = TYPE_ACK then - got_ack_internal <= '1'; - if MED_DATA_IN(F1_POSITION) = F1_CHECK_ACK then - next_rec_buffer_size_out <= MED_DATA_IN(BUFFER_SIZE_POSITION); - end if; - elsif MED_DATA_IN(TYPE_POSITION) = TYPE_TRM then - got_eob_out <= '1'; --exactly when buffer is killed - tmp_INT_DATA_OUT <= MED_DATA_IN; - tmp_INT_DATAREADY_OUT <= '1'; - if release_locked = '0' then - got_locked <= '1'; - end if; - elsif MED_DATA_IN(TYPE_POSITION) = TYPE_EOB then - got_eob_out <= '1'; - tmp_INT_DATAREADY_OUT <= '0'; - -- this should happen only one CLK cycle - elsif sbuf_free = '0' then - next_error_state <= GOT_OVERFLOW_ERROR; - elsif is_locked = '1' then - next_error_state <= GOT_LOCKED_ERROR; - end if; -- end TYPE - end if; -- end MED_DATAREADY_IN - end process; - - MED_READ_OUT <= '1'; -- I always can read - -reg_buffer: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - current_rec_buffer_size_out <= (others => '0'); - reg_ack_internal <= '0'; - current_error_state <= IDLE; - elsif CLK_EN = '1' then - current_rec_buffer_size_out <= next_rec_buffer_size_out; - reg_ack_internal <= got_ack_internal; - current_error_state <= next_error_state; - else - current_rec_buffer_size_out <= current_rec_buffer_size_out; - reg_ack_internal <= reg_ack_internal; - current_error_state <= current_error_state; - end if; - end if; - end process; - - - - SBUF: trb_net_sbuf - generic map (DATA_WIDTH => 51, VERSION => 0) - port map ( - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - COMB_DATAREADY_IN => tmp_INT_DATAREADY_OUT, - COMB_next_READ_OUT => comb_next_read, - COMB_READ_IN => '1', - COMB_DATA_IN => tmp_INT_DATA_OUT, - SYN_DATAREADY_OUT => INT_DATAREADY_OUT, - SYN_DATA_OUT => INT_DATA_OUT, - SYN_READ_IN => INT_READ_IN - ); - - sbuf_free <= comb_next_read or INT_READ_IN; --sbuf killed - - release_locked <= CTRL_LOCKED(0); - STAT_LOCKED(0) <= is_locked; - STAT_LOCKED(15 downto 1) <= (others => '0'); - - reg_locked: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - is_locked <= '0'; - reg_eob_out <= '0'; - elsif CLK_EN = '1' then - if release_locked = '1' then - is_locked <= '0'; - else - is_locked <= got_locked; - end if; - reg_eob_out <= got_eob_out; - else - is_locked <= is_locked; - reg_eob_out <= reg_eob_out; - end if; - end if; - end process; - - - --- make STAT_BUFFER --- STAT_BUFFER(3 downto 0) <= (fifo_depth(3 downto 0)-1); --divide by 2, since 2 - --buffers have to be stored - STAT_BUFFER(3 downto 0) <= "0111"; --always "biggest fifo" - STAT_BUFFER(7 downto 4) <= current_rec_buffer_size_out; - - STAT_BUFFER(8) <= reg_eob_out; - STAT_BUFFER(9) <= reg_ack_internal; - - MAKE_ERROR_BITS : process(current_error_state) - begin - if current_error_state = IDLE then - STAT_BUFFER(11 downto 10) <= "00"; - elsif current_error_state = GOT_OVERFLOW_ERROR then - STAT_BUFFER(11 downto 10) <= "01"; - elsif current_error_state = GOT_LOCKED_ERROR then - STAT_BUFFER(11 downto 10) <= "10"; - else - STAT_BUFFER(11 downto 10) <= "11"; - end if; - end process; - - STAT_BUFFER(31 downto 12) <= (others => '0'); - -end trb_net_term_ibuf_arch; - diff --git a/oldfiles/trb_net_term_mbuf.vhd b/oldfiles/trb_net_term_mbuf.vhd deleted file mode 100644 index a327f1d..0000000 --- a/oldfiles/trb_net_term_mbuf.vhd +++ /dev/null @@ -1,412 +0,0 @@ --- an active api together with an iobuf - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - ---Entity decalaration for clock generator -entity trb_net_term_mbuf is - - generic (FIFO_TERM_BUFFER_DEPTH : integer := 0 -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - ); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_IN: in STD_LOGIC; -- Media is reading - - MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word - MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - APL_GOT_TRM: out STD_LOGIC; - - APL_HOLD_TRM: in STD_LOGIC; - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - - -- Status and control port => just coming from the iobuf for debugging - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0) - ); -END trb_net_term_mbuf; - -architecture trb_net_term_mbuf_arch of trb_net_term_mbuf is - -component trb_net_iobuf is - - generic (INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if - -- the initibuf - REPLY_DEPTH : integer := 3); -- or the replyibuf - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_INIT_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_INIT_READ_IN: in STD_LOGIC; -- Media is reading - - MED_INIT_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_INIT_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_INIT_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - MED_REPLY_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out - --by the media (via the TrbNetIOMultiplexer) - MED_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_REPLY_READ_IN: in STD_LOGIC; -- Media is reading - - MED_REPLY_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media - -- (the IOBUF MUST read) - MED_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - MED_REPLY_READ_OUT: out STD_LOGIC; -- buffer reads a word from media - MED_REPLY_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits - - -- Internal direction port - - INT_INIT_DATAREADY_OUT: out STD_LOGIC; - INT_INIT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_IN: in STD_LOGIC; - - INT_INIT_DATAREADY_IN: in STD_LOGIC; - INT_INIT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_INIT_READ_OUT: out STD_LOGIC; - - INT_REPLY_HEADER_IN: in STD_LOGIC; -- Concentrator kindly asks to resend the last - -- header (only for the reply path) - INT_REPLY_DATAREADY_OUT: out STD_LOGIC; - INT_REPLY_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_IN: in STD_LOGIC; - - INT_REPLY_DATAREADY_IN: in STD_LOGIC; - INT_REPLY_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_REPLY_READ_OUT: out STD_LOGIC; - - -- Status and control port - STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control - STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status - CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); - CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); - STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0) - ); -END component; - -component trb_net_term is - - generic (FIFO_TERM_BUFFER_DEPTH : integer := 0); -- fifo for auto-answering of - -- the master path, if set to 0 - -- no buffer is used at all - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- Internal direction port - -- This is just a clone from trb_net_iobuf - - INT_DATAREADY_OUT: out STD_LOGIC; - INT_DATA_OUT: out STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_IN: in STD_LOGIC; - - INT_DATAREADY_IN: in STD_LOGIC; - INT_DATA_IN: in STD_LOGIC_VECTOR (50 downto 0); -- Data word - INT_READ_OUT: out STD_LOGIC; - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT: out STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); - APL_GOT_TRM: out STD_LOGIC; - - APL_HOLD_TRM: in STD_LOGIC; - APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0) -- see NewTriggerBusNetworkDescr - - - -- Status and control port - - -- not needed now, but later - - ); -END component; - -component trb_net_io_multiplexer is - - generic (BUS_WIDTH : integer := 56; - MULT_WIDTH : integer := 5); - - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - -- Media direction port - MED_DATAREADY_IN: in STD_LOGIC; - MED_DATA_IN: in STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - -- highest bits are mult. - MED_READ_OUT: out STD_LOGIC; - - MED_DATAREADY_OUT: out STD_LOGIC; - MED_DATA_OUT: out STD_LOGIC_VECTOR (BUS_WIDTH-1 downto 0); - MED_READ_IN: in STD_LOGIC; - - -- Internal direction port - INT_DATAREADY_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_OUT: out STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - INT_DATAREADY_IN: in STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - INT_DATA_IN: in STD_LOGIC_VECTOR ((BUS_WIDTH-MULT_WIDTH)*(2**MULT_WIDTH)-1 downto 0); - INT_READ_OUT: out STD_LOGIC_VECTOR (2**MULT_WIDTH-1 downto 0); - - -- Status and control port - CTRL: in STD_LOGIC_VECTOR (31 downto 0); - STAT: out STD_LOGIC_VECTOR (31 downto 0) - ); -END component; - -signal apl_to_buf_INIT_DATAREADY: STD_LOGIC; -signal apl_to_buf_INIT_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal apl_to_buf_INIT_READ : STD_LOGIC; - -signal buf_to_apl_INIT_DATAREADY: STD_LOGIC; -signal buf_to_apl_INIT_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal buf_to_apl_INIT_READ : STD_LOGIC; - -signal apl_to_buf_REPLY_DATAREADY: STD_LOGIC; -signal apl_to_buf_REPLY_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal apl_to_buf_REPLY_READ : STD_LOGIC; - -signal buf_to_apl_REPLY_DATAREADY: STD_LOGIC; -signal buf_to_apl_REPLY_DATA : STD_LOGIC_VECTOR (50 downto 0); -signal buf_to_apl_REPLY_READ : STD_LOGIC; - --- for the connection to the multiplexer -signal MED_INIT_DATAREADY_OUT : STD_LOGIC; -signal MED_INIT_DATA_OUT : STD_LOGIC_VECTOR (50 downto 0); -signal MED_INIT_READ_IN : STD_LOGIC; - -signal MED_INIT_DATAREADY_IN : STD_LOGIC; -signal MED_INIT_DATA_IN : STD_LOGIC_VECTOR (50 downto 0); -signal MED_INIT_READ_OUT : STD_LOGIC; - -signal MED_REPLY_DATAREADY_OUT : STD_LOGIC; -signal MED_REPLY_DATA_OUT : STD_LOGIC_VECTOR (50 downto 0); -signal MED_REPLY_READ_IN : STD_LOGIC; - -signal MED_REPLY_DATAREADY_IN : STD_LOGIC; -signal MED_REPLY_DATA_IN : STD_LOGIC_VECTOR (50 downto 0); -signal MED_REPLY_READ_OUT : STD_LOGIC; - -signal m_DATAREADY_OUT : STD_LOGIC_VECTOR (1 downto 0); -signal m_DATA_OUT : STD_LOGIC_VECTOR (101 downto 0); -signal m_READ_IN : STD_LOGIC_VECTOR (1 downto 0); - -signal m_DATAREADY_IN : STD_LOGIC_VECTOR (1 downto 0); -signal m_DATA_IN : STD_LOGIC_VECTOR (101 downto 0); -signal m_READ_OUT : STD_LOGIC_VECTOR (1 downto 0); - -begin - - m_DATAREADY_OUT(0) <= MED_INIT_DATAREADY_OUT; - m_DATAREADY_OUT(1) <= MED_REPLY_DATAREADY_OUT; - m_DATA_OUT(50 downto 0) <= MED_INIT_DATA_OUT; - m_DATA_OUT(101 downto 51) <= MED_REPLY_DATA_OUT; - MED_INIT_READ_IN <= m_READ_IN(0); - MED_REPLY_READ_IN <= m_READ_IN(1); - - MED_INIT_DATAREADY_IN <= m_DATAREADY_IN(0); - MED_REPLY_DATAREADY_IN <= m_DATAREADY_IN(1); - MED_INIT_DATA_IN <= m_DATA_IN(50 downto 0); - MED_REPLY_DATA_IN <= m_DATA_IN(101 downto 51); - m_READ_OUT(0) <= MED_INIT_READ_OUT; - m_READ_OUT(1) <= MED_REPLY_READ_OUT; - - - TERM_INIT: trb_net_term - - generic map (FIFO_TERM_BUFFER_DEPTH => 0) - - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - - -- "mini" APL, just to see the triggers coming in - APL_DTYPE_OUT => APL_DTYPE_OUT, - APL_ERROR_PATTERN_OUT => APL_ERROR_PATTERN_OUT, - APL_SEQNR_OUT => APL_SEQNR_OUT, - APL_GOT_TRM => APL_GOT_TRM, - - APL_HOLD_TRM => APL_HOLD_TRM, - APL_DTYPE_IN => APL_DTYPE_IN, - APL_ERROR_PATTERN_IN => APL_ERROR_PATTERN_IN, - - -- Internal direction port - -- connect via private signals - - INT_DATAREADY_OUT => apl_to_buf_INIT_DATAREADY, - INT_DATA_OUT => apl_to_buf_INIT_DATA, - INT_READ_IN => apl_to_buf_INIT_READ, - - INT_DATAREADY_IN => buf_to_apl_INIT_DATAREADY, - INT_DATA_IN => buf_to_apl_INIT_DATA, - INT_READ_OUT => buf_to_apl_INIT_READ - - -- Status and control port - -- not needed now, but later - ); - -TERM_REPLY: trb_net_term - - generic map (FIFO_TERM_BUFFER_DEPTH => 0) - - port map ( - -- Misc - CLK => CLK, - RESET => RESET, - CLK_EN => CLK_EN, - - -- "mini" APL, just to see the triggers coming in - - APL_HOLD_TRM => '0', - APL_DTYPE_IN => (others => '0'), - APL_ERROR_PATTERN_IN => (others => '0'), - - -- Internal direction port - -- connect via private signals - - INT_DATAREADY_OUT => apl_to_buf_REPLY_DATAREADY, - INT_DATA_OUT => apl_to_buf_REPLY_DATA, - INT_READ_IN => apl_to_buf_REPLY_READ, - - INT_DATAREADY_IN => buf_to_apl_REPLY_DATAREADY, - INT_DATA_IN => buf_to_apl_REPLY_DATA, - INT_READ_OUT => buf_to_apl_REPLY_READ - -- Status and control port - -- not needed now, but later - ); - -IOBUF: trb_net_iobuf - - generic map (INIT_DEPTH => 0, - REPLY_DEPTH => 0) - - port map ( - -- Misc - CLK => CLK , - RESET => RESET, - CLK_EN => CLK_EN, - -- Media direction port - MED_INIT_DATAREADY_OUT => MED_INIT_DATAREADY_OUT, - MED_INIT_DATA_OUT => MED_INIT_DATA_OUT, - MED_INIT_READ_IN => MED_INIT_READ_IN, - - MED_INIT_DATAREADY_IN => MED_INIT_DATAREADY_IN, - MED_INIT_DATA_IN => MED_INIT_DATA_IN, - MED_INIT_READ_OUT => MED_INIT_READ_OUT, - MED_INIT_ERROR_IN => (others => '0'), - - MED_REPLY_DATAREADY_OUT => MED_REPLY_DATAREADY_OUT, - MED_REPLY_DATA_OUT => MED_REPLY_DATA_OUT, - MED_REPLY_READ_IN => MED_REPLY_READ_IN, - - MED_REPLY_DATAREADY_IN => MED_REPLY_DATAREADY_IN, - MED_REPLY_DATA_IN => MED_REPLY_DATA_IN, - MED_REPLY_READ_OUT => MED_REPLY_READ_OUT, - MED_REPLY_ERROR_IN => (others => '0'), - - -- Internal direction port - - INT_INIT_DATAREADY_OUT => buf_to_apl_INIT_DATAREADY, - INT_INIT_DATA_OUT => buf_to_apl_INIT_DATA, - INT_INIT_READ_IN => buf_to_apl_INIT_READ, - - INT_INIT_DATAREADY_IN => apl_to_buf_INIT_DATAREADY, - INT_INIT_DATA_IN => apl_to_buf_INIT_DATA, - INT_INIT_READ_OUT => apl_to_buf_INIT_READ, - - INT_REPLY_HEADER_IN => '0', - INT_REPLY_DATAREADY_OUT => buf_to_apl_REPLY_DATAREADY, - INT_REPLY_DATA_OUT => buf_to_apl_REPLY_DATA, - INT_REPLY_READ_IN => buf_to_apl_REPLY_READ, - - INT_REPLY_DATAREADY_IN => apl_to_buf_REPLY_DATAREADY, - INT_REPLY_DATA_IN => apl_to_buf_REPLY_DATA, - INT_REPLY_READ_OUT => apl_to_buf_REPLY_READ, - - -- Status and control port - STAT_GEN => STAT_GEN, - STAT_LOCKED => STAT_LOCKED, - STAT_INIT_BUFFER => STAT_INIT_BUFFER, - STAT_REPLY_BUFFER => STAT_REPLY_BUFFER, - CTRL_GEN => CTRL_GEN, - CTRL_LOCKED => CTRL_LOCKED, - STAT_CTRL_INIT_BUFFER => STAT_CTRL_INIT_BUFFER, - STAT_CTRL_REPLY_BUFFER => STAT_CTRL_REPLY_BUFFER - ); - - MPLEX: trb_net_io_multiplexer - generic map (BUS_WIDTH => 52, - MULT_WIDTH => 1) - port map ( - CLK => CLK, - RESET => RESET , - CLK_EN => CLK_EN, - - MED_DATAREADY_IN => MED_DATAREADY_IN, - MED_DATA_IN => MED_DATA_IN, - MED_READ_OUT => MED_READ_OUT, - - MED_DATAREADY_OUT => MED_DATAREADY_OUT, - MED_DATA_OUT => MED_DATA_OUT, - MED_READ_IN => MED_READ_IN, - - INT_DATAREADY_OUT => m_DATAREADY_IN, - INT_DATA_OUT =>m_DATA_IN, - INT_READ_IN =>m_READ_OUT, - - INT_DATAREADY_IN =>m_DATAREADY_OUT, - INT_DATA_IN =>m_DATA_OUT, - INT_READ_OUT =>m_READ_IN, - - CTRL => MPLEX_CTRL - - ); - -end trb_net_term_mbuf_arch; - diff --git a/oldfiles/trb_net_trigger_reader.vhd b/oldfiles/trb_net_trigger_reader.vhd deleted file mode 100644 index df697a4..0000000 --- a/oldfiles/trb_net_trigger_reader.vhd +++ /dev/null @@ -1,291 +0,0 @@ ------------------------------------------------------------------------------- --- --- This is a trigger reading application with interrupt signal generation --- --- ------------------------------------------------------------------------------- - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; -use work.trb_net_std.all; - - -entity trb_net_trigger_reader is - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_OUT: out STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_IN: in STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_OUT: out STD_LOGIC; -- - APL_DTYPE_OUT: out STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_OUT: out STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_OUT: out STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - -- Receiver port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_IN: in STD_LOGIC; -- Data word is valid and might be read out - APL_READ_OUT: out STD_LOGIC; -- Read data word - -- APL Control port - APL_RUN_IN: in STD_LOGIC; -- Data transfer is running - --APL_MY_ADDRESS_OUT: out STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_IN: in STD_LOGIC_VECTOR (7 downto 0); - - INTERNAL_TIME_OUT: out std_logic_vector(31 downto 0); - - TRB_INTERRUPT_OUT: out std_logic_vector(7 downto 0); - TRB_TRIGGER_NUM_OUT: out std_logic_vector(7 downto 0); - TRB_TRIGGER_TIME_OUT: out std_logic_vector(31 downto 0); - TRB_TRIGGER_DATAREADY: out std_logic; - TRB_TRIGGER_NUM_READ: in std_logic; - TRB_TRIGGER_TIME_READ: in std_logic; - TRB_TRIGGER_READ_ERROR: out std_logic; - - STAT_TRIGGER_READER: out std_logic_vector(31 downto 0) - ); -end entity; - - - -architecture trb_net_trigger_reader_arch of trb_net_trigger_reader is - - - component trb_net_fifo is - generic ( - WIDTH : integer := 48; -- FIFO word width - DEPTH : integer := 3); -- Depth of the FIFO, 2^(n+1) - port ( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - DATA_IN : in std_logic_vector(WIDTH - 1 downto 0); -- Input data - WRITE_ENABLE_IN : in std_logic; - DATA_OUT : out std_logic_vector(WIDTH - 1 downto 0); -- Output data - READ_ENABLE_IN : in std_logic; - FULL_OUT : out std_logic; -- Full Flag - EMPTY_OUT : out std_logic; - DEPTH_OUT : out std_logic_vector(7 downto 0) - ); - end component; - - signal buf_APL_READ_OUT : std_logic; - signal buf_APL_DATA_OUT : std_logic_vector(47 downto 0); - signal buf_APL_WRITE_OUT: std_logic; - signal buf_APL_SEND_OUT, next_APL_SEND_OUT: std_logic; - signal buf_APL_ERROR_PATTERN_OUT, next_APL_ERROR_PATTERN_OUT: std_logic_vector(31 downto 0); - signal count_fifo: std_logic; - - signal fifo_data_in, next_fifo_data_in, fifo_data_out : std_logic_vector(39 downto 0); - signal fifo_write_enable_in, next_fifo_write_enable_in : std_logic; - signal fifo_read, next_fifo_read : std_logic; - signal fifo_empty_out : std_logic; - - signal buf_TRB_TRIGGER_NUM_OUT : std_logic_vector(7 downto 0); - signal buf_TRB_TRIGGER_TIME_OUT: std_logic_vector(31 downto 0); - - signal last_TRB_TRIGGER_NUM_READ, last_TRB_TRIGGER_TIME_READ : std_logic; - signal trigger_num_is_read, next_trigger_num_is_read: std_logic; - signal trigger_time_is_read, next_trigger_time_is_read: std_logic; - signal buf_TRB_TRIGGER_READ_ERROR, next_TRB_TRIGGER_READ_ERROR: std_logic; - - signal next_STAT_TRIGGER_READER, buf_STAT_TRIGGER_READER : std_logic_vector(31 downto 0); - signal timecounter, next_timecounter : std_logic_vector(31 downto 0); - signal clkcounter, next_clkcounter : std_logic_vector(6 downto 0); - --counter for us-timer - begin - - - ------------------------------------------ --- fifo for trigger data ------------------------------------------ - TRB_TRIGGER_DATAREADY <= not fifo_empty_out; - - trigger_fifo : trb_net_fifo - generic map( - WIDTH => 40, - DEPTH => 3 - ) - port map( - CLK => CLK, - CLK_EN => CLK_EN, - RESET => RESET, - DATA_IN => fifo_data_in, - WRITE_ENABLE_IN => fifo_write_enable_in, - DATA_OUT => fifo_data_out, - READ_ENABLE_IN => fifo_read, - FULL_OUT => open, - EMPTY_OUT => fifo_empty_out, - DEPTH_OUT => open - ); - - ------------------------------------------ --- detect and answer triggers ------------------------------------------ - process(APL_DATA_IN, APL_TYP_IN, APL_DATAREADY_IN, buf_APL_READ_OUT, timecounter, APL_SEQNR_IN) - begin - next_fifo_write_enable_in <= '0'; - next_fifo_data_in <= (others => '0'); - next_APL_SEND_OUT <= '0'; - if APL_TYP_IN = TYPE_TRM and APL_DATAREADY_IN = '1' and buf_APL_READ_OUT = '1' then - next_fifo_data_in(7 downto 0) <= APL_SEQNR_IN; - next_fifo_data_in(39 downto 8)<= timecounter; - next_fifo_write_enable_in <= '1'; - next_APL_SEND_OUT <= '1'; - next_APL_ERROR_PATTERN_OUT <= x"00000000"; - end if; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - fifo_data_in <= (others => '0'); - fifo_write_enable_in <= '0'; - buf_APL_SEND_OUT <= next_APL_SEND_OUT; - buf_APL_ERROR_PATTERN_OUT <= (others => '0'); - --buf_STAT_TRIGGER_READER <= (others => '0'); - else - fifo_data_in <= next_fifo_data_in; - fifo_write_enable_in <= next_fifo_write_enable_in; - buf_APL_SEND_OUT <= next_APL_SEND_OUT; - buf_APL_ERROR_PATTERN_OUT <= next_APL_ERROR_PATTERN_OUT; - --buf_STAT_TRIGGER_READER <= next_STAT_TRIGGER_READER; - end if; - end if; - end process; - -buf_STAT_TRIGGER_READER(1) <= fifo_write_enable_in; -buf_STAT_TRIGGER_READER(2) <= fifo_read; - -STAT_TRIGGER_READER <= buf_STAT_TRIGGER_READER; - ---------------------------------------- --- prepare trigger fifodata for readout ---------------------------------------- - - buf_TRB_TRIGGER_NUM_OUT <= fifo_data_out(7 downto 0); - buf_TRB_TRIGGER_TIME_OUT <= fifo_data_out(39 downto 8); - - - process(TRB_TRIGGER_NUM_READ, TRB_TRIGGER_TIME_READ, trigger_num_is_read, - trigger_time_is_read, buf_TRB_TRIGGER_READ_ERROR, last_TRB_TRIGGER_NUM_READ, - last_TRB_TRIGGER_TIME_READ, fifo_empty_out) - begin - next_trigger_num_is_read <= trigger_num_is_read; - next_trigger_time_is_read <= trigger_time_is_read; - fifo_read <= '0'; - next_TRB_TRIGGER_READ_ERROR <= '0'; - - if trigger_num_is_read = '1' and trigger_time_is_read = '1' then - next_trigger_num_is_read <= '0'; - next_trigger_time_is_read <= '0'; - fifo_read <= '1'; - next_TRB_TRIGGER_READ_ERROR <= buf_TRB_TRIGGER_READ_ERROR; - end if; - - if TRB_TRIGGER_NUM_READ = '1' then - next_TRB_TRIGGER_READ_ERROR <= '0'; - if trigger_num_is_read = '1' then - next_TRB_TRIGGER_READ_ERROR <= '1'; - end if; - next_trigger_num_is_read <= '1'; - end if; - - if TRB_TRIGGER_TIME_READ = '1' then - next_TRB_TRIGGER_READ_ERROR <= '0'; - if trigger_time_is_read = '1' then - next_TRB_TRIGGER_READ_ERROR <= '1'; - end if; - next_trigger_time_is_read <= '1'; - end if; - - if fifo_empty_out = '1' then - next_TRB_TRIGGER_READ_ERROR <= '1'; - end if; - end process; - - - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then --- last_TRB_TRIGGER_NUM_READ <= '0'; --- last_TRB_TRIGGER_TIME_READ <= '0'; - buf_TRB_TRIGGER_READ_ERROR <= '0'; - trigger_num_is_read <= '0'; - trigger_time_is_read <= '0'; --- fifo_read <= '0'; - else --- last_TRB_TRIGGER_NUM_READ <= TRB_TRIGGER_NUM_READ; --- last_TRB_TRIGGER_TIME_READ <= TRB_TRIGGER_TIME_READ; - buf_TRB_TRIGGER_READ_ERROR <= next_TRB_TRIGGER_READ_ERROR; - trigger_num_is_read <= next_trigger_num_is_read; - trigger_time_is_read <= next_trigger_time_is_read; --- fifo_read <= next_fifo_read; - end if; - end if; - end process; - - ------------------------------------------ --- Generate internal 32Bit timer @ 1 MHz ------------------------------------------ - - process(clkcounter, timecounter) - begin - next_clkcounter <= clkcounter + 1; - next_timecounter <= timecounter; - if(clkcounter = 98) then - next_clkcounter <= (others => '0'); - next_timecounter <= timecounter + 1; - end if; - end process; - - process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - clkcounter <= (others => '0'); - timecounter <= (others => '0'); - else - clkcounter <= next_clkcounter; - timecounter <= next_timecounter; - end if; - end if; - end process; - - - - ------------------------------------------ --- Output generation ------------------------------------------ - APL_DATA_OUT <= (others => '0'); - APL_READ_OUT <= buf_APL_READ_OUT; - APL_WRITE_OUT <= '0'; - APL_SEND_OUT <= buf_APL_SEND_OUT; - APL_ERROR_PATTERN_OUT <= buf_APL_ERROR_PATTERN_OUT; - APL_TARGET_ADDRESS_OUT <= x"0001"; - APL_DTYPE_OUT <= "0000"; - APL_SHORT_TRANSFER_OUT <= '1'; - buf_APL_READ_OUT <= '1'; - - TRB_TRIGGER_NUM_OUT <= buf_TRB_TRIGGER_NUM_OUT; - TRB_TRIGGER_TIME_OUT <= buf_TRB_TRIGGER_TIME_OUT; - TRB_TRIGGER_READ_ERROR <= buf_TRB_TRIGGER_READ_ERROR; - - INTERNAL_TIME_OUT <= timecounter; - -end architecture; diff --git a/oldfiles/trb_net_trigger_sender.vhd b/oldfiles/trb_net_trigger_sender.vhd deleted file mode 100644 index a0ce4d1..0000000 --- a/oldfiles/trb_net_trigger_sender.vhd +++ /dev/null @@ -1,115 +0,0 @@ --- this is a dummy apl, just sending short transfers / triggers - - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - -use work.trb_net_std.all; - - -entity trb_net_trigger_sender is - generic (TARGET_ADDRESS : STD_LOGIC_VECTOR (15 downto 0) := x"0002" - ); - port( - -- Misc - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - -- APL Transmitter port - APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" - APL_WRITE_OUT: out STD_LOGIC; -- Data word is valid and should be transmitted - APL_FIFO_FULL_IN: in STD_LOGIC; -- Stop transfer, the fifo is full - APL_SHORT_TRANSFER_OUT: out STD_LOGIC; -- - APL_DTYPE_OUT: out STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr - APL_ERROR_PATTERN_OUT: out STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr - APL_SEND_OUT: out STD_LOGIC; -- Release sending of the data - APL_TARGET_ADDRESS_OUT: out STD_LOGIC_VECTOR (15 downto 0); -- Address of - -- the target (only for active APIs) - - -- Receiver port - APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" - APL_TYP_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM - APL_DATAREADY_IN: in STD_LOGIC; -- Data word is valid and might be read out - APL_READ_OUT: out STD_LOGIC; -- Read data word - - -- APL Control port - APL_RUN_IN: in STD_LOGIC; -- Data transfer is running --- APL_MY_ADDRESS_OUT: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) - APL_SEQNR_IN: in STD_LOGIC_VECTOR (7 downto 0) - - ); -end trb_net_trigger_sender; - -architecture trb_net_trigger_sender_arch of trb_net_trigger_sender is - - type SENDER_STATE is (IDLE, RUNNING, MY_ERROR); - signal current_state, next_state : SENDER_STATE; - signal next_counter, counter : std_logic_vector(23 downto 0); - signal buf_APL_DATA_OUT, next_APL_DATA_OUT : std_logic_vector(23 downto 0); - signal buf_APL_WRITE_OUT, next_APL_WRITE_OUT : std_logic; - signal buf_APL_SEND_OUT, next_APL_SEND_OUT : std_logic; - - begin - - APL_READ_OUT <= '1'; --just read, do not check - APL_DTYPE_OUT <= x"1"; - APL_ERROR_PATTERN_OUT <= x"00000100"; - APL_TARGET_ADDRESS_OUT <= x"0000"; - --APL_DATA_OUT <= reg_counter; - APL_SHORT_TRANSFER_OUT <= '1'; - APL_WRITE_OUT <= '0'; - APL_DATA_OUT <= (others => '0'); - - SENDER_CTRL: process (current_state, APL_FIFO_FULL_IN, counter, APL_RUN_IN, RESET) - begin -- process - next_APL_SEND_OUT <= '0'; - next_state <= MY_ERROR; - next_counter <= counter + 1; -------------------------------------------------------------------------- --- IDLE -------------------------------------------------------------------------- - if current_state = IDLE then - if APL_RUN_IN = '0' and counter(7 downto 0) = 0 then - next_state <= RUNNING; - next_APL_SEND_OUT <= '1'; - else - next_state <= IDLE; - end if; ------------------------------------------------------------------------ --- RUNNING ------------------------------------------------------------------------ - elsif current_state = RUNNING then - next_state <= RUNNING; - if APL_RUN_IN = '1' then - next_state <= IDLE; - --else - -- next_state <= RUNNING; - end if; - end if; -- end state switch - end process; - -APL_SEND_OUT <= buf_APL_SEND_OUT; - - CLK_REG: process(CLK) - begin - if rising_edge(CLK) then - if RESET = '1' then - current_state <= IDLE; - buf_APL_SEND_OUT <= '0'; - counter <= (others => '0'); - elsif CLK_EN = '1' then - current_state <= next_state; - buf_APL_SEND_OUT <= next_APL_SEND_OUT; - counter <= next_counter; - else - current_state <= current_state; - buf_APL_SEND_OUT <= buf_APL_SEND_OUT; - counter <= counter; - end if; - end if; - end process; - -end trb_net_trigger_sender_arch; diff --git a/oldfiles/trbnetendpoint.vhd b/oldfiles/trbnetendpoint.vhd deleted file mode 100644 index 70b49c1..0000000 --- a/oldfiles/trbnetendpoint.vhd +++ /dev/null @@ -1,117 +0,0 @@ --------------------------------------------------------------------------------- --- The standard endpoint for all devices, like DTU, MU etc. --- The idea is to be independent from the "user" --- --- The endpoint works like a RAM --- Memory Map: --- --- 0x000 - 0x0FF global registers --- --- 0x100 - 0x1FF 16 sender ENDOBUFs (each 16 addresses) --- --- 0x200 - 0x2FF 16 receiver ENDIBUFs (each 16 addresses) --- --- for each ENDBUF, Adress 0x0 is the FIFO itself --- 0x1 is the status register --- 0x2 is the control register ---------------------------------------------------------------------------------- - -LIBRARY IEEE; -USE IEEE.STD_LOGIC_1164.ALL; -USE IEEE.STD_LOGIC_ARITH.ALL; -USE IEEE.STD_LOGIC_UNSIGNED.ALL; - ---Entity decalaration for clock generator -entity TRBNETENDPOINT is port( - RESET : in std_logic; - clk: in std_logic; ---pin connections ------------------------------------------------------- - RD: in STD_LOGIC; -- Read strobe - WR: in STD_LOGIC; -- Write strobe - -- for a single transfer, the strobes MUST NOT be longer - -- then one cycle (already sync signals) - DATA_OUT: out STD_LOGIC_VECTOR (31 downto 0) ; -- I/O Bus - DATA_IN : in STD_LOGIC_VECTOR (31 downto 0) ; -- I/O Bus - ADDRESS: in STD_LOGIC_VECTOR (11 downto 0) -- Adress lines for the - -- given space - ); -END TRBNETENDPOINT; - -architecture arch_TRBNETENDPOINT of TRBNETENDPOINT is - - component FIFO is - generic (WIDTH : integer := 8; -- FIFO word width - DEPTH : integer := 8); -- Depth of the FIFO - - port (DATA_IN : in std_logic_vector(WIDTH - 1 downto 0); -- Input data - DATA_OUT : out std_logic_vector(WIDTH - 1 downto 0); -- Out put data - CLK : in std_logic; -- System Clock - RESET : in std_logic; -- System global Reset - RE : in std_logic; -- Read Enable - WE : in std_logic; -- Write Enable - FULL : buffer std_logic; -- Full Flag - EMPTY : buffer std_logic); -- Empty Flag - end component; - - signal DATA_FIFO1 : STD_LOGIC_VECTOR(31 downto 0); - signal DATA_FIFO2 : STD_LOGIC_VECTOR(31 downto 0); - - signal WE1 : STD_LOGIC; - signal WE2 : STD_LOGIC; - -begin -- arch_TRBNETENRPOINT - - FIFO1: FIFO - generic map ( - WIDTH => 32, - DEPTH => 8 - ) - port map ( - Data_in => DATA_IN, - Data_out => DATA_FIFO1, - clk => clk, - Reset => RESET, - WE => WE1, - RE => '0' - ); - - FIFO2: FIFO - generic map ( - WIDTH => 32, - DEPTH => 8 - ) - port map ( - Data_in => DATA_IN, - Data_out => DATA_FIFO2, - clk => clk, - Reset => RESET, - WE => WE2, - RE => '0' - ); - - -process (CLK) -begin -- process - if CLK'event and CLK = '1' then -- rising clock edge - if RD = '1' and ADDRESS(2) = '1' then - DATA_OUT <= DATA_FIFO1; - --DATA_OUT <= x"affeaffe"; - end if; - if RD = '1' and ADDRESS(2) = '0' then - --DATA_OUT <= x"deadface"; - DATA_OUT <= DATA_FIFO2; - end if; - if WR = '1' and ADDRESS(2) = '1' then - WE1 <= '1'; - else - WE1 <= '0'; - end if; - if WR = '1' and ADDRESS(2) = '0' then - WE2 <= '1'; - else - WE2 <= '0'; - end if; - end if; -end process; - -end arch_TRBNETENDPOINT; diff --git a/oldfiles/vulom3/beam_ramp.vhd b/oldfiles/vulom3/beam_ramp.vhd deleted file mode 100644 index c28fcd4..0000000 --- a/oldfiles/vulom3/beam_ramp.vhd +++ /dev/null @@ -1,259 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 26/6/07 --- Design Name: vulom3 --- Module Name: beam_ramp - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: Programmable delayer and shaper for beam signal --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - ----- Uncomment the following library declaration if instantiating ----- any Xilinx primitives in this code. ---library UNISIM; ---use UNISIM.VComponents.all; - -entity beam_ramp is - port ( clk_300MHz : in std_logic; - clk_50MHz : in std_logic; - input : in std_logic; - output_inhibit : out std_logic; - output_external : out std_logic; - delay_value : in std_logic_vector(7 downto 0); - width_value_inhibit : in std_logic_vector(7 downto 0); - width_value_external : in std_logic_vector(7 downto 0) - ); -end beam_ramp; - -architecture Behavioral of beam_ramp is - -signal count_ck : std_logic_vector(23 downto 0); -signal clk_10Hz : std_logic; -signal input_r, input_q, output_s_inhibit, output_s_external : std_logic; -signal count_delay, count_width_inhibit, count_width_external : std_logic_vector(7 downto 0); -type state_type is (reset, del, wid); -signal state : state_type; - - - -begin - - ck: process(clk_50MHz) - begin - if rising_edge(clk_50MHz) then - if count_ck = x"2625a0" then --2,5e6 - count_ck <= x"000000"; - clk_10Hz <= not clk_10Hz; - else - count_ck <= count_ck + 1; - end if; - - output_inhibit <= output_s_inhibit; - output_external <= output_s_external; - - end if; - end process; - - latch: process(clk_300MHz) - begin - if rising_edge(clk_300MHz) then - if input_r = '1' then - input_q <= '0'; - elsif input = '1' then - input_q <= '1'; - end if; - - end if; - end process; - - fsm : process(clk_10Hz) - begin - if rising_edge(clk_10Hz) then - case (state) is - - when reset => - input_r <= '0'; - count_delay <=delay_value; - count_width_inhibit <= width_value_inhibit; - count_width_external <= width_value_external + width_value_inhibit; - if input_q = '0' then - state <= reset; - else - state <= del; - end if; - --- when reset => --- input_r <= '0'; --- count_delay <=delay_value; --- count_width_inhibit <= width_value_inhibit + 1; --- count_width_external <= width_value_external + 1; --- if input_q = '0' then --- state <= reset; --- else --- state <= del; --- end if; - - when del => - if count_delay = x"00" then - state <= wid; - else - count_delay <= count_delay - 1; - state <= del; - end if; - - when wid => - input_r <= '1'; - if (count_width_inhibit = x"00" and count_width_external = x"00") then - output_s_inhibit <= '0'; - output_s_external <= '0'; - state <= reset; - elsif count_width_external = x"00" then - output_s_inhibit <= '1'; - output_s_external <= '0'; - count_width_inhibit <= count_width_inhibit - 1; - state <= wid; - elsif count_width_inhibit = x"00" then - output_s_inhibit <= '0'; - output_s_external <= '1'; - count_width_external <= count_width_external - 1; - state <= wid; - else - output_s_inhibit <= '1'; - output_s_external <= '1'; - count_width_inhibit <= count_width_inhibit - 1; - count_width_external <= count_width_external - 1; - state <= wid; - end if; - - when others => - state <= reset; - - end case; - end if; - end process; - - - -end Behavioral; - - - - - - - ---entity beam_ramp is --- port ( clk_300MHz : in std_logic; --- clk_50MHz : in std_logic; --- input : in std_logic; --- output_inhibit : out std_logic; --- output_external : out std_logic; --- delay_value : in std_logic_vector(7 downto 0); --- width_value_inhibit : in std_logic_vector(7 downto 0); --- width_value_external : in std_logic_vector(7 downto 0) --- ); ---end beam_ramp; --- ---architecture Behavioral of beam_ramp is --- ---signal count_ck : std_logic_vector(24 downto 0); ---signal clk_10Hz : std_logic; ---signal input_r, input_q, output_s_inhibit, output_s_external : std_logic; ---signal count_delay, count_width_inhibit, count_width_external : std_logic_vector(7 downto 0); ---type state_type is (reset, del, wid); ---signal state : state_type; --- --- --- ---begin --- --- ck: process(clk_50MHz) --- begin --- if rising_edge(clk_50MHz) then --- count_ck <= count_ck + 1; --- clk_10Hz <= count_ck(22); --- --- output_inhibit <= output_s_inhibit; --- output_external <= output_s_external; --- --- end if; --- end process; --- --- latch: process(clk_300MHz) --- begin --- if rising_edge(clk_300MHz) then --- if input_r = '1' then --- input_q <= '0'; --- elsif input = '1' then --- input_q <= '1'; --- end if; --- --- end if; --- end process; --- --- fsm : process(clk_10Hz) --- begin --- if rising_edge(clk_10Hz) then --- case (state) is --- --- when reset => --- input_r <= '0'; --- count_delay <=delay_value; --- count_width_inhibit <= width_value_inhibit + 1; --- count_width_external <= width_value_external + 1; --- if input_q = '0' then --- state <= reset; --- else --- state <= del; --- end if; --- --- when del => --- if count_delay = x"00" then --- state <= wid; --- else --- count_delay <= count_delay - 1; --- state <= del; --- end if; --- --- when wid => --- input_r <= '1'; --- if (count_width_inhibit = x"00" and count_width_external = x"00") then --- output_s_inhibit <= '0'; --- output_s_external <= '0'; --- state <= reset; --- elsif count_width_external = x"00" then --- output_s_inhibit <= '1'; --- output_s_external <= '0'; --- count_width_inhibit <= count_width_inhibit - 1; --- state <= wid; --- elsif count_width_inhibit = x"00" then --- output_s_inhibit <= '0'; --- output_s_external <= '1'; --- count_width_external <= count_width_external - 1; --- state <= wid; --- else --- output_s_inhibit <= '1'; --- output_s_external <= '1'; --- count_width_inhibit <= count_width_inhibit - 1; --- count_width_external <= count_width_external - 1; --- state <= wid; --- end if; --- --- when others => --- state <= reset; --- --- end case; --- end if; --- end process; --- --- --- ---end Behavioral; \ No newline at end of file diff --git a/oldfiles/vulom3/bus_data_com5.vhd b/oldfiles/vulom3/bus_data_com5.vhd deleted file mode 100644 index e1f18a5..0000000 --- a/oldfiles/vulom3/bus_data_com5.vhd +++ /dev/null @@ -1,766 +0,0 @@ ----------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 09:54:15 07/11/2007 --- Design Name: vulom3 --- Module Name: bus_data_com4 - Behavioral --- Project Name: triggerbox --- Target Devices: XC4VLX25-10SF363 --- Tool versions: --- Description: Data communication to TRB --- --- Dependencies: --- --- Revision: --- Revision 0.01 - File Created --- Additional Comments: Whole datastream with 16 bit summer usead as error check --- ----------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - ----- Uncomment the following library declaration if instantiating ----- any Xilinx primitives in this code. ---library UNISIM; ---use UNISIM.VComponents.all; - -entity bus_data_com5 is - PORT( - clk_300MHz : in std_logic; - clk_100MHz : in std_logic; - gts_pulse : in std_logic; - cal_trigger : in std_logic; - bus_busy : in std_logic; -- not used - bus_ack : in std_logic; - bus_retx : in std_logic; - latch : in std_logic_vector(6 downto 0); - latch_dsc : in std_logic_vector(6 downto 0); - scaler_pti1 : in std_logic_vector(31 downto 0); - scaler_pti2 : in std_logic_vector(31 downto 0); - scaler_pti3 : in std_logic_vector(31 downto 0); - scaler_pti4 : in std_logic_vector(31 downto 0); - scaler_pti5 : in std_logic_vector(31 downto 0); - scaler_ts : in std_logic_vector(31 downto 0); - scaler_vs : in std_logic_vector(31 downto 0); - scaler_dead : in std_logic_vector(31 downto 0); - bus_inhibit : out std_logic; - dtu_inhibit : out std_logic; - ecl_bus_data : out std_logic_vector(1 downto 0); - ecl_bus_clk : out std_logic; - com_run : in std_logic; - dtu_bus_t : out std_logic; - dtu_bus_ts : out std_logic; - dtu_bus_td : out std_logic_vector (3 downto 0); - DTU_CODE_SELECT : in std_logic_vector(4 downto 0); - out_inhibit : in std_logic; - cal_inhibit : in std_logic; - DEBUG_REG_01 : out std_logic_vector(15 downto 0); - TRB_BUSY_ENABLE : in std_logic - ); - -end bus_data_com5; - -architecture Behavioral of bus_data_com5 is -signal count : integer range 0 to 300 := 0; -signal tag_counter_trb, tag_counter_dtu : std_logic_vector(15 downto 0):=x"0000"; -signal cal_trigger_s, cal_trigger_d1, cal_trigger_pulse, cal_trigger_pulse_d, bus_busy_s, bus_busy_d1 : std_logic := '0'; -type state_type_a is (ready, start_sequence_0, start_sequence_1, start_sequence_2, start_sequence_3, - start_sequence_4, start_sequence_5, start_sequence_6, start_sequence_7, - normal_code_0, normal_code_1, calib_code_0, calib_code_1, - xfer_0, xfer_0alter, xfer_1, xfer_2, xfer_3, xfer_4, xfer_5, xfer_6, - xfer_7, xfer_8, xfer_9, xfer_10, xfer_11, xfer_12, xfer_13, xfer_14, xfer_15, - wait_for_busy, hold_busy); -signal state_a : state_type_a; -type state_type_b is (tag, latches, scalers_0, scalers_1, scalers_2, scalers_3, scalers_4, scalers_5, - scalers_6, scalers_7, scalers_8, scalers_9, scalers_10, scalers_11, scalers_12, - scalers_13, scalers_14, scalers_15, checksum_0, checksum_1, finished); -signal state_b : state_type_b; -type state_type_c is (idle, begin_run_0, begin_run_1, end_run_0, end_run_1, norm_event_0, norm_event_1, - calib_event_0, calib_event_1, tag_low_0, tag_low_1, tag_high_0, tag_high_1, - tag_prio_0, tag_prio_1, wait_last, count_incr, wait_for_trb); -signal state_c : state_type_c; - -signal xfer_buffer : std_logic_vector(15 downto 0):=x"0000"; -signal latch_s, latch_dsc_s : std_logic_vector(6 downto 0):="0000000"; -signal gts_trb_r, gts_trb_q, gts_q_d, gts_dtu_r, gts_dtu_q : std_logic := '0'; -signal checksum : std_logic_vector(31 downto 0):=x"00000000"; -signal scaler_pti1_s, scaler_pti2_s, scaler_pti3_s, scaler_pti4_s, scaler_pti5_s, scaler_ts_s, - scaler_vs_s, scaler_dead_s : std_logic_vector(31 downto 0); -signal com_run_s, trb_run, trb_run_s, bus_ack_s, bus_retx_s : std_logic:='0'; -signal ack_accu, retx_accu : std_logic_vector(3 downto 0); -signal gts_from_trb, cal_trigger_from_trb : std_logic:='0'; -signal trb_go_norm, trb_go_norm_s, trb_go_calib, trb_go_calib_s, trb_finished : std_logic; -signal dtu_start : std_logic; -signal dtu_code : std_logic_vector(3 downto 0); -signal prepared_code : std_logic_vector(3 downto 0); -begin - delay : process(clk_100MHz) - begin - if rising_edge(clk_100MHz) then - scaler_pti1_s <= scaler_pti1; - scaler_pti2_s <= scaler_pti2; - scaler_pti3_s <= scaler_pti3; - scaler_pti4_s <= scaler_pti4; - scaler_pti5_s <= scaler_pti5; - scaler_ts_s <= scaler_ts; - scaler_vs_s <= scaler_vs; - scaler_dead_s <= scaler_dead; - latch_s <= latch; - latch_dsc_s <= latch_dsc; - bus_busy_s <= bus_busy; - bus_ack_s <= bus_ack; - bus_retx_s <= bus_retx; - end if; - end process; - input_gts : process(clk_300MHz) - begin - if rising_edge(clk_300MHz) then - if gts_dtu_r = '1' then --gts latch for trb bus - gts_dtu_q <= '0'; - elsif gts_pulse = '1' then - gts_dtu_q <= '1'; - end if; - dtu_inhibit <= (not com_run) or dtu_start; --- dtu_inhibit <= dtu_start; - end if; - end process; - input_cal : process(clk_100MHz) - begin - if rising_edge(clk_100MHz) then - cal_trigger_s <= cal_trigger; - cal_trigger_d1 <= cal_trigger_s; - cal_trigger_pulse <= cal_trigger_s and not cal_trigger_d1 and not out_inhibit; - end if; - end process; ----------------------------------------------------------------------- TRB comm - fsm : process(clk_100MHz) --TX lenght: 3.1-3.2 µs - begin - if rising_edge(clk_100MHz) then - if com_run = '0' then - state_a <= ready; - else - case state_a is - when ready => - DEBUG_REG_01(4 downto 0) <= "00001"; - ecl_bus_data <= "00"; - ecl_bus_clk <= '0'; - bus_inhibit <= '0'; - trb_finished <= '1'; - trb_go_norm_s <= trb_go_norm; - trb_go_calib_s <= trb_go_calib; - if (trb_go_norm or trb_go_calib) = '1' then - state_a <= start_sequence_0; - else state_a <= ready; - end if; ----------------------------- - when start_sequence_0 => - DEBUG_REG_01(4 downto 0) <= "00010"; - trb_finished <= '0'; - bus_inhibit <= '1'; - ecl_bus_data <= "01"; - ecl_bus_clk <= '0'; - ack_accu <= "0000"; - retx_accu <= "0000"; - state_a <= start_sequence_1; - when start_sequence_1 => - DEBUG_REG_01(4 downto 0) <= "00011"; - gts_trb_r <= '1'; - ecl_bus_clk <= '1'; - state_a <= start_sequence_2; - when start_sequence_2 => - DEBUG_REG_01(4 downto 0) <= "00100"; - ecl_bus_data <= "10"; - ecl_bus_clk <= '0'; - state_a <= start_sequence_3; - when start_sequence_3 => - DEBUG_REG_01(4 downto 0) <= "00101"; - ecl_bus_clk <= '1'; - state_a <= start_sequence_4; - when start_sequence_4 => - DEBUG_REG_01(4 downto 0) <= "00110"; - ecl_bus_data <= "01"; - ecl_bus_clk <= '0'; - state_a <= start_sequence_5; - when start_sequence_5 => - DEBUG_REG_01(4 downto 0) <= "00111"; - ecl_bus_clk <= '1'; - state_a <= start_sequence_6; - when start_sequence_6 => - DEBUG_REG_01(4 downto 0) <= "01000"; - ecl_bus_data <= "10"; - ecl_bus_clk <= '0'; - state_a <= start_sequence_7; - when start_sequence_7 => - DEBUG_REG_01(4 downto 0) <= "01001"; - ecl_bus_clk <= '1'; - if trb_go_norm_s = '1' then - state_a <= normal_code_0; - elsif trb_go_calib_s = '1' then - state_a <= calib_code_0; - else state_a <= ready; - end if; ----------------------------------------------- - when normal_code_0 => - DEBUG_REG_01(4 downto 0) <= "01010"; - ecl_bus_data <= "01"; - ecl_bus_clk <= '0'; - state_a <= normal_code_1; - when normal_code_1 => - DEBUG_REG_01(4 downto 0) <= "01011"; - checksum <= x"00000001"; - ecl_bus_clk <= '1'; - state_a <= xfer_0; - when calib_code_0 => - DEBUG_REG_01(4 downto 0) <= "01100"; - ecl_bus_data <= "11"; - ecl_bus_clk <= '0'; - state_a <= calib_code_1; - when calib_code_1 => - DEBUG_REG_01(4 downto 0) <= "01101"; - checksum <= x"00000003"; - ecl_bus_clk <= '1'; - state_a <= xfer_0; ---------------------------------------------------- - when xfer_0 => - DEBUG_REG_01(4 downto 0) <= "01110"; - checksum <= checksum + xfer_buffer; - ecl_bus_data <= xfer_buffer(1 downto 0); - ecl_bus_clk <= '0'; - state_a <= xfer_1; - when xfer_0alter => - DEBUG_REG_01(4 downto 0) <= "01111"; - ecl_bus_data <= xfer_buffer(1 downto 0); - ecl_bus_clk <= '0'; - state_a <= xfer_1; - when xfer_1 => - DEBUG_REG_01(4 downto 0) <= "10000"; - ecl_bus_clk <= '1'; - state_a <= xfer_2; - when xfer_2 => - DEBUG_REG_01(4 downto 0) <= "10001"; - ecl_bus_data <= xfer_buffer(3 downto 2); - ecl_bus_clk <= '0'; - state_a <= xfer_3; - when xfer_3 => - DEBUG_REG_01(4 downto 0) <= "10010"; - ecl_bus_clk <= '1'; - state_a <= xfer_4; - when xfer_4 => - DEBUG_REG_01(4 downto 0) <= "10011"; - ecl_bus_data <= xfer_buffer(5 downto 4); - ecl_bus_clk <= '0'; - state_a <= xfer_5; - when xfer_5 => - DEBUG_REG_01(4 downto 0) <= "10100"; - ecl_bus_clk <= '1'; - state_a <= xfer_6; - when xfer_6 => - DEBUG_REG_01(4 downto 0) <= "10101"; - ecl_bus_data <= xfer_buffer(7 downto 6); - ecl_bus_clk <= '0'; - state_a <= xfer_7; - when xfer_7 => - DEBUG_REG_01(4 downto 0) <= "10110"; - ecl_bus_clk <= '1'; - state_a <= xfer_8; - when xfer_8 => - DEBUG_REG_01(4 downto 0) <= "10111"; - ecl_bus_data <= xfer_buffer(9 downto 8); - ecl_bus_clk <= '0'; - state_a <= xfer_9; - when xfer_9 => - DEBUG_REG_01(4 downto 0) <= "11000"; - ecl_bus_clk <= '1'; - state_a <= xfer_10; - when xfer_10 => - DEBUG_REG_01(4 downto 0) <= "11001"; - ecl_bus_data <= xfer_buffer(11 downto 10); - ecl_bus_clk <= '0'; - state_a <= xfer_11; - - when xfer_11 => - DEBUG_REG_01(4 downto 0) <= "11010"; - ecl_bus_clk <= '1'; - state_a <= xfer_12; - when xfer_12 => - DEBUG_REG_01(4 downto 0) <= "11011"; - ecl_bus_data <= xfer_buffer(13 downto 12); - ecl_bus_clk <= '0'; - state_a <= xfer_13; - when xfer_13 => - DEBUG_REG_01(4 downto 0) <= "11100"; - ecl_bus_clk <= '1'; - state_a <= xfer_14; - when xfer_14 => - DEBUG_REG_01(4 downto 0) <= "11101"; - ecl_bus_data <= xfer_buffer(15 downto 14); - ecl_bus_clk <= '0'; - state_a <= xfer_15; - when xfer_15 => - DEBUG_REG_01(4 downto 0) <= "11110"; - ecl_bus_clk <= '1'; - state_a <= xfer_6; - if state_b = checksum_0 then - state_a <= xfer_0alter; - elsif state_b = checksum_1 then - state_a <= xfer_0alter; - elsif state_b = finished then - state_a <= wait_for_busy; - else state_a <= xfer_0; - end if; ------------------------------------------------------ - when wait_for_busy => - DEBUG_REG_01(4 downto 0) <= "11110"; - ecl_bus_clk <= '0'; - ecl_bus_data <= "00"; - state_a <= hold_busy; - when hold_busy => - DEBUG_REG_01(4 downto 0) <= "11111"; - if bus_ack_s = '0' and ack_accu /= "0000" then --ack accumulator - ack_accu <= ack_accu - 1; - elsif bus_ack_s = '1' and ack_accu /= "1111" then - ack_accu <= ack_accu + 1; - end if; - if bus_retx_s = '0' and retx_accu /= "0000" then --retransmit accumulator - retx_accu <= retx_accu - 1; - elsif bus_retx_s = '1' and retx_accu /= "1111" then - retx_accu <= retx_accu + 1; - end if; - if retx_accu = 10 then - state_a <= start_sequence_0; - elsif (ack_accu = 10 or com_run = '0') or TRB_BUSY_ENABLE = '0' then - state_a <= ready; - else state_a <= hold_busy; - end if; ---------------------------------------------------------------------- - when others => - DEBUG_REG_01(4 downto 0) <= "00000"; - state_a <= ready; - end case; - end if; - end if; - end process; - fsm2 : process(clk_100MHz) - begin - if rising_edge(clk_100MHz) then - if com_run = '0' then - state_b <= tag; - else - case state_b is - when tag => - DEBUG_REG_01(9 downto 5) <= "00001"; - xfer_buffer <= tag_counter_dtu - 1; - if state_a = xfer_13 then - state_b <= latches; - else state_b <= tag; - end if; - when latches => - DEBUG_REG_01(9 downto 5) <= "00010"; - xfer_buffer <= '0' & latch_dsc_s & '0' & latch_s; - if state_a = xfer_13 then - state_b <= scalers_0; - else state_b <= latches; - end if; - when scalers_0 => - DEBUG_REG_01(9 downto 5) <= "00011"; - xfer_buffer <= scaler_pti1_s(15 downto 0); - if state_a = xfer_13 then - state_b <= scalers_1; - else state_b <= scalers_0; - end if; - when scalers_1 => - DEBUG_REG_01(9 downto 5) <= "00100"; - xfer_buffer <= scaler_pti1_s(31 downto 16); - if state_a = xfer_13 then - state_b <= scalers_2; - else state_b <= scalers_1; - end if; - when scalers_2 => - DEBUG_REG_01(9 downto 5) <= "00101"; - xfer_buffer <= scaler_pti2_s(15 downto 0); - if state_a = xfer_13 then - state_b <= scalers_3; - else state_b <= scalers_2; - end if; - when scalers_3 => - DEBUG_REG_01(9 downto 5) <= "00110"; - xfer_buffer <= scaler_pti2_s(31 downto 16); - if state_a = xfer_13 then - state_b <= scalers_4; - else state_b <= scalers_3; - end if; - when scalers_4 => - DEBUG_REG_01(9 downto 5) <= "00111"; - xfer_buffer <= scaler_pti3_s(15 downto 0); - if state_a = xfer_13 then - state_b <= scalers_5; - else state_b <= scalers_4; - end if; - when scalers_5 => - DEBUG_REG_01(9 downto 5) <= "01000"; - xfer_buffer <= scaler_pti3_s(31 downto 16); - if state_a = xfer_13 then - state_b <= scalers_6; - else state_b <= scalers_5; - end if; - when scalers_6 => - DEBUG_REG_01(9 downto 5) <= "01001"; - xfer_buffer <= scaler_pti4_s(15 downto 0); - if state_a = xfer_13 then - state_b <= scalers_7; - else state_b <= scalers_6; - end if; - when scalers_7 => - DEBUG_REG_01(9 downto 5) <= "01010"; - xfer_buffer <= scaler_pti4_s(31 downto 16); - if state_a = xfer_13 then - state_b <= scalers_8; - else state_b <= scalers_7; - end if; - when scalers_8 => - DEBUG_REG_01(9 downto 5) <= "01011"; - xfer_buffer <= scaler_pti5_s(15 downto 0); - if state_a = xfer_13 then - state_b <= scalers_9; - else state_b <= scalers_8; - end if; - when scalers_9 => - DEBUG_REG_01(9 downto 5) <= "01100"; - xfer_buffer <= scaler_pti5_s(31 downto 16); - if state_a = xfer_13 then - state_b <= scalers_10; - else state_b <= scalers_9; - end if; - when scalers_10 => - DEBUG_REG_01(9 downto 5) <= "01110"; - xfer_buffer <= scaler_ts_s(15 downto 0); - if state_a = xfer_13 then - state_b <= scalers_11; - else state_b <= scalers_10; - end if; - when scalers_11 => - DEBUG_REG_01(9 downto 5) <= "01111"; - xfer_buffer <= scaler_ts_s(31 downto 16); - if state_a = xfer_13 then - state_b <= scalers_12; - else state_b <= scalers_11; - end if; - when scalers_12 => - DEBUG_REG_01(9 downto 5) <= "10000"; - xfer_buffer <= scaler_vs_s(15 downto 0); - if state_a = xfer_13 then - state_b <= scalers_13; - else state_b <= scalers_12; - end if; - when scalers_13 => - DEBUG_REG_01(9 downto 5) <= "10001"; - xfer_buffer <= scaler_vs_s(31 downto 16); - if state_a = xfer_13 then - state_b <= scalers_14; - else state_b <= scalers_13; - end if; - when scalers_14 => - DEBUG_REG_01(9 downto 5) <= "10010"; - xfer_buffer <= scaler_dead_s(15 downto 0); - if state_a = xfer_13 then - state_b <= scalers_15; - else state_b <= scalers_14; - end if; - when scalers_15 => - DEBUG_REG_01(9 downto 5) <= "10011"; - xfer_buffer <= scaler_dead_s(31 downto 16); - if state_a = xfer_13 then - state_b <= checksum_0; - else state_b <= scalers_15; - end if; - when checksum_0 => - DEBUG_REG_01(9 downto 5) <= "10101"; - xfer_buffer <= checksum(15 downto 0); - if state_a = xfer_13 then - state_b <= checksum_1; - else state_b <= checksum_0; - end if; - when checksum_1 => - DEBUG_REG_01(9 downto 5) <= "10110"; - xfer_buffer <= checksum(31 downto 16); - if state_a = xfer_13 then - state_b <= finished; - else state_b <= checksum_1; - end if; - when finished => - DEBUG_REG_01(9 downto 5) <= "10111"; - xfer_buffer <= x"0000"; - if state_a = wait_for_busy then - state_b <= tag; - else state_b <= finished; - end if; - when others => - DEBUG_REG_01(9 downto 5) <= "00000"; - state_b <= tag; - end case; - end if; - end if; - end process; ----------------------------------------------------------------------- DTU comm - PREPARE_CODE_FOR_DTU: process (clk_100MHz) - begin -- process PREPARE_CODE_FOR_DTU - if rising_edge(clk_100MHz) then - if com_run_s = '0' then - prepared_code <= x"d"; - elsif com_run_s = '1' and cal_inhibit = '0' then - prepared_code <= dtu_code; - elsif com_run_s = '1' and cal_inhibit = '1' then - prepared_code <= x"9"; - else - prepared_code <= dtu_code; - end if; - end if; - end process PREPARE_CODE_FOR_DTU; - DTU_CODE_CHANGE : process (clk_100MHz) - begin -- process DTU_CODE_CHANGE - if rising_edge (clk_100MHz) then - if DTU_CODE_SELECT(4) = '0' then - dtu_code <= x"1"; - else - dtu_code <= DTU_CODE_SELECT(3 downto 0); - end if; - end if; - end process DTU_CODE_CHANGE; - fsm3 : process(clk_100MHz) --TX lenght: 470 ns + wait time (currently 2.5 µs total) - begin - if rising_edge(clk_100MHz) then - if com_run = '0' then - state_c <= idle; - com_run_s <= '0'; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; - dtu_bus_td <= x"d"; - count <= 0; - trb_go_norm <= '0'; - trb_go_calib <= '0'; - gts_dtu_r <= '0'; - dtu_start <= '0'; - else - -- implemented default value - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; --- dtu_bus_td <= x"d"; - dtu_bus_td <= prepared_code; - case state_c is - when idle => - DEBUG_REG_01(14 downto 10)<= "00001"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; --- dtu_bus_td <= x"d"; - count <= 0; - trb_go_norm <= '0'; - trb_go_calib <= '0'; - gts_dtu_r <= '0'; - dtu_start <= '0'; --- com_run_s <= com_run; --- if com_run = '1' and com_run_s = '0' then - if com_run = '1' and com_run_s = '0' then - state_c <= begin_run_0; --- elsif com_run = '0' and com_run_s = '1' then --- state_c <= end_run_0; - elsif gts_dtu_q = '1' and com_run = '1' then - state_c <= norm_event_0; - elsif cal_trigger_pulse = '1' and com_run = '1' then - state_c <= calib_event_0; - else state_c <= idle; - end if; ------------------------------------- - when begin_run_0 => - DEBUG_REG_01(14 downto 10)<= "00010"; - dtu_bus_t <= '1'; - dtu_bus_ts <= '0'; - dtu_bus_td <= x"d"; - -- trb_go_norm <= '1'; - tag_counter_dtu <= x"0000"; - com_run_s <= '1'; - dtu_start <= '1'; - count <= count + 1; - if count = 4+5 then - state_c <= begin_run_1; - else state_c <= begin_run_0; - end if; - when begin_run_1 => - DEBUG_REG_01(14 downto 10)<= "00011"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; - dtu_bus_td <= x"d"; - count <= count + 1; - if count = 9+10 then - state_c <= tag_low_0; - else state_c <= begin_run_1; - end if; -------------------------------------- - when end_run_0 => - DEBUG_REG_01(14 downto 10)<= "00100"; - trb_run_s <= '0'; - dtu_bus_t <= '1'; - dtu_bus_ts <= '0'; - dtu_bus_td <= x"e"; - count <= count + 1; - if count = 4+5 then - state_c <= end_run_1; - else state_c <= end_run_0; - end if; - when end_run_1 => - DEBUG_REG_01(14 downto 10)<= "00101"; - trb_run <= '0'; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; - count <= count + 1; - if count = 9+10 then - state_c <= tag_low_0; - else state_c <= end_run_1; - end if; --------------------------------------- - when norm_event_0 => - DEBUG_REG_01(14 downto 10)<= "00110"; - trb_go_norm <= '1'; - dtu_bus_t <= '1'; - dtu_bus_ts <= '0'; - dtu_bus_td <= dtu_code;-- "1"; - count <= count + 1; - if count = 4+5 then - state_c <= norm_event_1; - else state_c <= norm_event_0; - end if; - when norm_event_1 => - DEBUG_REG_01(14 downto 10)<= "00111"; - trb_go_norm <= '0'; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; - dtu_bus_td <= dtu_code; - count <= count + 1; - if count = 9+10 then - state_c <= tag_low_0; - else state_c <= norm_event_1; - end if; ---------------------------------------- - when calib_event_0 => - DEBUG_REG_01(14 downto 10)<= "01000"; - trb_go_calib <= '1'; - dtu_bus_t <= '1'; - dtu_bus_ts <= '0'; - dtu_bus_td <= x"9"; - count <= count + 1; - if count = 4+5 then - state_c <= calib_event_1; - else state_c <= calib_event_0; - end if; - when calib_event_1 => - DEBUG_REG_01(14 downto 10)<= "01001"; - trb_go_calib <= '0'; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; - dtu_bus_td <= x"9"; - count <= count + 1; - if count = 9+10 then - state_c <= tag_low_0; - else state_c <= calib_event_1; - end if; ---------------------------------------------------------- - when tag_low_0 => - DEBUG_REG_01(14 downto 10)<= "01010"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '1'; - dtu_bus_td <= tag_counter_dtu(3 downto 0); - count <= count + 1; - if count = 14+15 then - state_c <= tag_low_1; - else state_c <= tag_low_0; - end if; - when tag_low_1 => - DEBUG_REG_01(14 downto 10)<= "01011"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; - dtu_bus_td <= tag_counter_dtu(3 downto 0); - count <= count + 1; - if count = 19+20 then - state_c <= tag_high_0; - else state_c <= tag_low_1; - end if; - when tag_high_0 => - DEBUG_REG_01(14 downto 10)<= "01100"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '1'; - dtu_bus_td <= tag_counter_dtu(7 downto 4); - count <= count + 1; - if count = 24+25 then - state_c <= tag_high_1; - else state_c <= tag_high_0; - end if; - when tag_high_1 => - DEBUG_REG_01(14 downto 10)<= "01101"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; - dtu_bus_td <= tag_counter_dtu(7 downto 4); - count <= count + 1; - if count = 29+30 then - state_c <= tag_prio_0; - else state_c <= tag_high_1; - end if; - when tag_prio_0 => - DEBUG_REG_01(14 downto 10)<= "01110"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '1'; - dtu_bus_td <= tag_counter_dtu(7 downto 4); - count <= count + 1; - if count = 34+35 then - state_c <= tag_prio_1; - else state_c <= tag_prio_0; - end if; - when tag_prio_1 => - DEBUG_REG_01(14 downto 10)<= "01111"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; - count <= count + 1; - dtu_bus_td <= tag_counter_dtu(7 downto 4); - if count = 39+40 then - state_c <= wait_last; - else state_c <= tag_prio_1; - end if; - when wait_last => - DEBUG_REG_01(14 downto 10)<= "10000"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; --- dtu_bus_td <= "0000"; - count <= count + 1; - if count = 244 then --change this to increase wait time (44 default) - state_c <= wait_for_trb; - else state_c <= wait_last; - end if; - when wait_for_trb => - DEBUG_REG_01(14 downto 10)<= "10001"; - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; --- dtu_bus_td <= "0000"; - if trb_finished = '1' or dtu_start = '1' then - state_c <= count_incr; - else state_c <= wait_for_trb; - end if; - when count_incr => - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; --- dtu_bus_td <= "0000"; - DEBUG_REG_01(14 downto 10)<= "10010"; - gts_dtu_r <= '1'; - tag_counter_dtu <= tag_counter_dtu + 1; - state_c <= idle; - when others => - dtu_bus_t <= '0'; - dtu_bus_ts <= '0'; --- dtu_bus_td <= "0000"; - DEBUG_REG_01(14 downto 10)<= "00000"; - state_c <= idle; - end case; - end if; - end if; - end process; -end Behavioral; diff --git a/oldfiles/vulom3/clocking.vhd b/oldfiles/vulom3/clocking.vhd deleted file mode 100644 index 7c22363..0000000 --- a/oldfiles/vulom3/clocking.vhd +++ /dev/null @@ -1,168 +0,0 @@ --------------------------------------------------------------------------------- --- Copyright (c) 1995-2007 Xilinx, Inc. All rights reserved. --------------------------------------------------------------------------------- --- ____ ____ --- / /\/ / --- /___/ \ / Vendor: Xilinx --- \ \ \/ Version : 9.1.03i --- \ \ Application : xaw2vhdl --- / / Filename : clocking.vhd --- /___/ /\ Timestamp : 02/25/2008 15:07:58 --- \ \ / \ --- \___\/\___\ --- ---Command: xaw2vhdl-intstyle /home/davide/Fpga_projects/vulom3/clocking.xaw -st clocking.vhd ---Design Name: clocking ---Device: xc4vlx25-10sf363 --- --- Module clocking --- Generated by Xilinx Architecture Wizard --- Written for synthesis tool: XST - -library ieee; -use ieee.std_logic_1164.ALL; -use ieee.numeric_std.ALL; -library UNISIM; -use UNISIM.Vcomponents.ALL; - -entity clocking is - port ( CLKIN_IN : in std_logic; - CLKDV_OUT : out std_logic; - CLKFX_OUT : out std_logic; - CLKIN_IBUFG_OUT : out std_logic; - CLK0_OUT : out std_logic; - LOCKED_OUT : out std_logic); -end clocking; - -architecture BEHAVIORAL of clocking is - signal CLKDV_BUF : std_logic; - signal CLKFB_IN : std_logic; - signal CLKFX_BUF : std_logic; - signal CLKIN_IBUFG : std_logic; - signal CLK0_BUF : std_logic; - signal GND_BIT : std_logic; - signal GND_BUS_7 : std_logic_vector (6 downto 0); - signal GND_BUS_16 : std_logic_vector (15 downto 0); - component BUFG - port ( I : in std_logic; - O : out std_logic); - end component; - - component IBUFG - port ( I : in std_logic; - O : out std_logic); - end component; - - -- Period Jitter (unit interval) for block DCM_ADV_INST = 0.044 UI - -- Period Jitter (Peak-to-Peak) for block DCM_ADV_INST = 0.146 ns - component DCM_ADV - generic( CLK_FEEDBACK : string := "1X"; - CLKDV_DIVIDE : real := 2.0; - CLKFX_DIVIDE : integer := 1; - CLKFX_MULTIPLY : integer := 4; - CLKIN_DIVIDE_BY_2 : boolean := FALSE; - CLKIN_PERIOD : real := 10.0; - CLKOUT_PHASE_SHIFT : string := "NONE"; - DCM_AUTOCALIBRATION : boolean := TRUE; - DCM_PERFORMANCE_MODE : string := "MAX_SPEED"; - DESKEW_ADJUST : string := "SYSTEM_SYNCHRONOUS"; - DFS_FREQUENCY_MODE : string := "LOW"; - DLL_FREQUENCY_MODE : string := "LOW"; - DUTY_CYCLE_CORRECTION : boolean := TRUE; - FACTORY_JF : bit_vector := x"F0F0"; - PHASE_SHIFT : integer := 0; - STARTUP_WAIT : boolean := FALSE; - SIM_DEVICE : string := "VIRTEX4"); - port ( CLKIN : in std_logic; - CLKFB : in std_logic; - DADDR : in std_logic_vector (6 downto 0); - DI : in std_logic_vector (15 downto 0); - DWE : in std_logic; - DEN : in std_logic; - DCLK : in std_logic; - RST : in std_logic; - PSEN : in std_logic; - PSINCDEC : in std_logic; - PSCLK : in std_logic; - CLK0 : out std_logic; - CLK90 : out std_logic; - CLK180 : out std_logic; - CLK270 : out std_logic; - CLKDV : out std_logic; - CLK2X : out std_logic; - CLK2X180 : out std_logic; - CLKFX : out std_logic; - CLKFX180 : out std_logic; - DRDY : out std_logic; - DO : out std_logic_vector (15 downto 0); - LOCKED : out std_logic; - PSDONE : out std_logic); - end component; - -begin - GND_BIT <= '0'; - GND_BUS_7(6 downto 0) <= "0000000"; - GND_BUS_16(15 downto 0) <= "0000000000000000"; - CLKIN_IBUFG_OUT <= CLKIN_IBUFG; - CLK0_OUT <= CLKFB_IN; - CLKDV_BUFG_INST : BUFG - port map (I=>CLKDV_BUF, - O=>CLKDV_OUT); - - CLKFX_BUFG_INST : BUFG - port map (I=>CLKFX_BUF, - O=>CLKFX_OUT); - - CLKIN_IBUFG_INST : IBUFG - port map (I=>CLKIN_IN, - O=>CLKIN_IBUFG); - - CLK0_BUFG_INST : BUFG - port map (I=>CLK0_BUF, - O=>CLKFB_IN); - - DCM_ADV_INST : DCM_ADV - generic map( CLK_FEEDBACK => "1X", - CLKDV_DIVIDE => 2.0, - CLKFX_DIVIDE => 1, - CLKFX_MULTIPLY => 3, - CLKIN_DIVIDE_BY_2 => FALSE, - CLKIN_PERIOD => 10.000, - CLKOUT_PHASE_SHIFT => "NONE", - DCM_AUTOCALIBRATION => TRUE, - DCM_PERFORMANCE_MODE => "MAX_SPEED", - DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", - DFS_FREQUENCY_MODE => "HIGH", - DLL_FREQUENCY_MODE => "LOW", - DUTY_CYCLE_CORRECTION => TRUE, - FACTORY_JF => x"F0F0", - PHASE_SHIFT => 0, - STARTUP_WAIT => FALSE) - port map (CLKFB=>CLKFB_IN, - CLKIN=>CLKIN_IBUFG, - DADDR(6 downto 0)=>GND_BUS_7(6 downto 0), - DCLK=>GND_BIT, - DEN=>GND_BIT, - DI(15 downto 0)=>GND_BUS_16(15 downto 0), - DWE=>GND_BIT, - PSCLK=>GND_BIT, - PSEN=>GND_BIT, - PSINCDEC=>GND_BIT, - RST=>GND_BIT, - CLKDV=>CLKDV_BUF, - CLKFX=>CLKFX_BUF, - CLKFX180=>open, - CLK0=>CLK0_BUF, - CLK2X=>open, - CLK2X180=>open, - CLK90=>open, - CLK180=>open, - CLK270=>open, - DO=>open, - DRDY=>open, - LOCKED=>LOCKED_OUT, - PSDONE=>open); - -end BEHAVIORAL; - - diff --git a/oldfiles/vulom3/compile_vulom3.pl b/oldfiles/vulom3/compile_vulom3.pl deleted file mode 100755 index 2e70115..0000000 --- a/oldfiles/vulom3/compile_vulom3.pl +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/perl -########################################### -# Script file to run the flow -# -########################################### -# -# Command line for synplify_pro -# - - -use FileHandle; - - -$ENV{LM_LICENSE_FILE}="1709\@hadeb05"; - - - -$PLD_DEVICE="xc4vlx25-10-sf363"; -$TOPNAME="vlogic_1"; - - - -#set -e -#set -o errexit - -system("env| grep LM_"); - -#$c="/opt/Synplicity/fpga_861/bin/synplify_pro -batch $TOPNAME"."_syn.prj"; -#$c="/opt/Synplicity/fpga_8804/bin/synplify_pro -batch $TOPNAME"."_syn.prj"; -#$c="/opt/Synplicity/fpga_89/bin/synplify_pro -disable_rainbow_dongle -batch $TOPNAME"."_syn.prj"; -$c="/opt/Synplicity/fpga_901/bin/synplify_pro -disable_rainbow_dongle -batch $TOPNAME"."_syn.prj"; -#$c=("( netcat -w2 -l -u -p 6001 < data_for_synbatch_6001.raw >/dev/null 2>&1)& /opt/Synplicity/fpga_89/bin/synplify_pro -batch $TOPNAME"."_syn.prj"); -$r=execute($c, "do_not_exit" ); - - -chdir "workdir"; -my $fh = new FileHandle("; -$fh -> close; - -#if ($r) { -#$c="cat $TOPNAME.srr"; -#system($c); -#exit 129; -#} - -foreach (@a) -{ - if(/\@E:/) - { - $c="cat $TOPNAME.srr"; - system($c); - print "bdabdhsadbhjasdhasldhbas"; - exit 129; - } -} -# -# Command line to synthesize -# - -#chdir ".."; -#$c="xst -intstyle xflow -ifn $TOPNAME.xst -ofn $TOPNAME.syr"; -#execute($c); -#chdir "workdir"; - -# -# Command line for ngdbuild -# -#$c="ngdbuild -p $PLD_DEVICE -nt timestamp -intstyle xflow -uc ../$TOPNAME.ucf ../$TOPNAME.ngc $TOPNAME.ngd"; -$c="ngdbuild -p $PLD_DEVICE -nt timestamp -intstyle xflow -uc ../$TOPNAME.ucf -sd ../ $TOPNAME.edf $TOPNAME.ngd"; -execute($c); -# -# Command line for fpgafit -# -$c="map -xe n -logic_opt on -retiming on -timing -power off -equivalent_register_removal on -detail -u -p $PLD_DEVICE -cm speed -pr b -k 4 -c 100 -tx off -intstyle xflow -o $TOPNAME"."_map.ncd $TOPNAME.ngd $TOPNAME.pcf"; -execute($c); - -# -# Command line for Place & Route -# - -$c="par -w -intstyle xflow -pl high -rl high -xe n -t 1 $TOPNAME"."_map.ncd $TOPNAME.ncd $TOPNAME.pcf"; -execute($c); - -# -# Command line for genarate programming file (.bit) -# - - -foreach (<$TOPNAME"."_pad.txt>) { - @a=split (/\s*\|\s*/,$_); - if( ($a[2] ne "" && - $a[2] ne "Signal Name") && - $a[13] ne "LOCATED" - ) - { - print "error, pins were assigned automatically:\n$_\n"; - exit; - } -} - -print "_pad.txt tested for automatically assigned pins\n"; - -#$c="bitgen -w -intstyle ise -g DebugBitstream:No -g Binary:no -g Gclkdel0:11111 -g Gclkdel1:11111 -g Gclkdel2:11111 -g Gclkdel3:11111 -g ConfigRate:4 -g CclkPin:PullUp -g M0Pin:PullUp -g M1Pin:PullUp -g M2Pin:PullUp -g ProgPin:PullUp -g DonePin:PullUp -g TckPin:PullUp -g TdiPin:PullUp -g TdoPin:PullUp -g TmsPin:PullUp -g UnusedPin:PullDown -g UserID:0xFFFFFFFF -g StartUpClk:CClk -g DONE_cycle:4 -g GTS_cycle:5 -g GSR_cycle:6 -g GWE_cycle:6 -g LCK_cycle:NoWait -g Security:None -g DonePipe:No -g DriveDone:No $TOPNAME"; -$c="bitgen -intstyle ise -w -g DebugBitstream:No -g Binary:no -g CRC:Enable -g ConfigRate:4 -g CclkPin:PullUp -g M0Pin:PullUp -g M1Pin:PullUp -g M2Pin:PullUp -g ProgPin:PullUp -g DonePin:PullUp -g InitPin:Pullup -g CsPin:Pullup -g DinPin:Pullup -g BusyPin:Pullup -g RdWrPin:Pullup -g TckPin:PullUp -g TdiPin:PullUp -g TdoPin:PullUp -g TmsPin:PullUp -g UnusedPin:PullDown -g UserID:0xFFFFFFFF -g DCMShutdown:Disable -g DisableBandgap:No -g DCIUpdateMode:AsRequired -g StartUpClk:CClk -g DONE_cycle:4 -g GTS_cycle:5 -g GWE_cycle:6 -g LCK_cycle:NoWait -g Security:None -g DonePipe:No -g DriveDone:No -g Encrypt:No $TOPNAME.ncd"; - -execute($c); -# -# Command line for generate .stapl file -# - -$c="XIL_IMPACT_ENV_LPT_COMPATIBILITY_MODE=true impact -batch ../impact_batch_vulom3.txt"; - -execute($c); - - -#ssh depc152 'cd ~/files/vhdl/xilinx; . ~/bin/xilinx_setup; XIL_IMPACT_ENV_LPT_COMPATIBILITY_MODE=true impact -batch conf_xilinx_impact.txt ' - -# -#to download file on ETRAX chip -# - -#$c="lftp root:pass@hades18;put RPCBoardContrller;exit"; -#execute($c) - -chdir ".."; - -sub execute { - my ($c, $op) = @_; - #print "option: $op \n"; - - print "\n\ncommand to execute: $c \n"; - $r=system($c); - if($r) { - print "$!"; - if($op ne "do_not_exit") { - exit; - } - } - - return $r; - -} diff --git a/oldfiles/vulom3/delay.vhd b/oldfiles/vulom3/delay.vhd deleted file mode 100644 index dda2a8a..0000000 --- a/oldfiles/vulom3/delay.vhd +++ /dev/null @@ -1,60 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 7/3/07 --- Design Name: vulom3 --- Module Name: delay - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: 16 clock cycle programmable delayer --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; ---library UNISIM; ---use UNISIM.VComponents.all; - -entity delay is port ( - clk : in std_logic; - to_be_delayed : in std_logic; - delay_value : in std_logic_vector(3 downto 0); - delayed_pulse : out std_logic); -end delay; - -architecture Behavioral of delay is -signal shift : std_logic_vector (15 downto 0) := x"0000"; - -begin - - process (clk) - begin - if rising_edge(clk) then - shift <= shift (14 downto 0) & to_be_delayed; - - case delay_value is - when "0000" => delayed_pulse <= shift(0); - when "0001" => delayed_pulse <= shift(1); - when "0010" => delayed_pulse <= shift(2); - when "0011" => delayed_pulse <= shift(3); - when "0100" => delayed_pulse <= shift(4); - when "0101" => delayed_pulse <= shift(5); - when "0110" => delayed_pulse <= shift(6); - when "0111" => delayed_pulse <= shift(7); - when "1000" => delayed_pulse <= shift(8); - when "1001" => delayed_pulse <= shift(9); - when "1010" => delayed_pulse <= shift(10); - when "1011" => delayed_pulse <= shift(11); - when "1100" => delayed_pulse <= shift(12); - when "1101" => delayed_pulse <= shift(13); - when "1110" => delayed_pulse <= shift(14); - when "1111" => delayed_pulse <= shift(15); - when others => delayed_pulse <= 'X'; - end case; - end if; - end process; - -end Behavioral; diff --git a/oldfiles/vulom3/downscale.vhd b/oldfiles/vulom3/downscale.vhd deleted file mode 100644 index 43aea9e..0000000 --- a/oldfiles/vulom3/downscale.vhd +++ /dev/null @@ -1,74 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 7/3/07 --- Design Name: vulom3 --- Module Name: downscale - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: 2^16 programmable divider with output shaper --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -library UNISIM; -use UNISIM.vcomponents.all; ---library UNISIM; ---use UNISIM.VComponents.all; - -entity downscale is port ( - disable : in std_logic; - to_be_downscaled : in std_logic; - downscale_value : in std_logic_vector(3 downto 0); - clk : in std_logic; - downscaled : out std_logic); -end downscale; - -architecture Behavioral of downscale is -signal reset, internal, to_be_downscaled_d : std_logic := '0'; -signal accu : std_logic_vector (15 downto 0) := x"0000"; - -begin - - process(clk) - begin - if rising_edge(clk) then - if disable = '0' then - to_be_downscaled_d <= to_be_downscaled; - else to_be_downscaled_d <= '0'; - end if; - - if to_be_downscaled_d = '1' then - accu <= accu + 1; - end if; - - case downscale_value is - when "0000" => reset <= to_be_downscaled_d; --bypass - when "0001" => reset <= accu(0); - when "0010" => reset <= accu(1); - when "0011" => reset <= accu(2); - when "0100" => reset <= accu(3); - when "0101" => reset <= accu(4); - when "0110" => reset <= accu(5); - when "0111" => reset <= accu(6); - when "1000" => reset <= accu(7); - when "1001" => reset <= accu(8); - when "1010" => reset <= accu(9); - when "1011" => reset <= accu(10); - when "1100" => reset <= accu(11); - when "1101" => reset <= accu(12); - when "1110" => reset <= accu(13); - when "1111" => reset <= accu(14); - when others => reset <= 'X'; - end case; - - internal <= reset; - downscaled <= (not internal) and reset; - end if; - end process; - -end Behavioral; diff --git a/oldfiles/vulom3/eco_delay.vhd b/oldfiles/vulom3/eco_delay.vhd deleted file mode 100644 index 5cae31e..0000000 --- a/oldfiles/vulom3/eco_delay.vhd +++ /dev/null @@ -1,51 +0,0 @@ ----------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 17:03:24 03/27/2007 --- Design Name: vulom3 --- Module Name: eco_delay - Behavioral --- Project Name: triggerbox --- Target Devices: XC4VLX25-10SF363 --- Tool versions: --- Description: Fixed delayer with fixed output pulse shaper --- ----------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; ---library UNISIM; ---use UNISIM.VComponents.all; - -entity eco_delay is port ( - clk : in std_logic; - signal_in : in std_logic; - signal_out : out std_logic); -end eco_delay; - -architecture Behavioral of eco_delay is -signal chain : std_logic_vector(31 downto 0); -signal internal : std_logic; -signal signal_out_s : std_logic:='0'; - -begin - - signal_out <= signal_out_s; - - process (clk) - begin - if rising_edge(clk) then - internal <= signal_in; - chain <= (chain (30 downto 0) & (not internal and signal_in)); - - if (chain(15) = '1') then - signal_out_s <= '1'; - elsif (chain(15) = '0' and chain(27) ='1') then - signal_out_s <= '0'; - end if; - end if; - end process; - -end Behavioral; - diff --git a/oldfiles/vulom3/impact_batch_vulom3.txt b/oldfiles/vulom3/impact_batch_vulom3.txt deleted file mode 100644 index 5e3fdc1..0000000 --- a/oldfiles/vulom3/impact_batch_vulom3.txt +++ /dev/null @@ -1,6 +0,0 @@ -setMode -bs -setMode -bs -setCable -port stapl -file "../trigger_box1.stapl" -addDevice -p 1 -file "vlogic_1.bit" -Program -p 1 -defaultVersion 0 -quit \ No newline at end of file diff --git a/oldfiles/vulom3/new_downscale_ck.vhd b/oldfiles/vulom3/new_downscale_ck.vhd deleted file mode 100644 index 1165d24..0000000 --- a/oldfiles/vulom3/new_downscale_ck.vhd +++ /dev/null @@ -1,128 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 7/3/07 --- Design Name: vulom3 --- Module Name: new_downscale_ck - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: Provides clock downscale, plus calibration and inhibit signals --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; ---library UNISIM; ---use UNISIM.VComponents.all; - -entity new_downscale_ck is port ( - downscale_value : in std_logic_vector(3 downto 0); - clk : in std_logic; - downscaled : out std_logic; - output_disable : in std_logic; - global_inhibit : in std_logic; - scaler_reset : out std_logic; - cal_inhibit : out std_logic; - cal_trigger : out std_logic); -end new_downscale_ck; - -architecture Behavioral of new_downscale_ck is -signal accu_1 : std_logic_vector(21 downto 0); -signal accu_3 : std_logic_vector(15 downto 0); -signal accu_4 : std_logic_vector(15 downto 0); -signal count, count_d, clk_10kHz : std_logic; -signal accu_2 : std_logic_vector(15 downto 0); -signal delay_1, delay_2 : std_logic; - - -begin - - process(clk) --pulser - begin - if rising_edge(clk) then - accu_1 <= accu_1 + 1; - case downscale_value is - when "0000" => count <= accu_1(6); - when "0001" => count <= accu_1(7); - when "0010" => count <= accu_1(8); - when "0011" => count <= accu_1(9); - when "0100" => count <= accu_1(10); - when "0101" => count <= accu_1(11); - when "0110" => count <= accu_1(12); - when "0111" => count <= accu_1(13); - when "1000" => count <= accu_1(14); - when "1001" => count <= accu_1(15); - when "1010" => count <= accu_1(16); - when "1011" => count <= accu_1(17); - when "1100" => count <= accu_1(18); - when "1101" => count <= accu_1(19); - when "1110" => count <= accu_1(20); - when "1111" => count <= accu_1(21); - when others => count <= 'X'; - end case; - count_d <= count; - downscaled <= (not count_d) and count; - end if; - end process; - process(clk) --10 kHz clock generator - begin - if rising_edge(clk) then - if accu_2 = x"3a97" then - accu_2 <= x"0000"; - clk_10kHz <= not clk_10kHz; - else - accu_2 <= accu_2 + 1; - end if; - end if; - end process; - process(clk_10kHz) --calibration pulse - begin - if rising_edge(clk_10kHz) then - if accu_3 = x"0000" then - scaler_reset <= '1'; - accu_3 <= accu_3 + 1; - elsif accu_3 = x"0001" then - scaler_reset <= '0'; - accu_3 <= accu_3 + 1; - elsif accu_3 = x"0002" then - scaler_reset <= '0'; - accu_3 <= accu_3 + 1; - elsif accu_3 = x"270f" then --10e3 - scaler_reset <= '0'; - accu_3 <= x"0000"; - else accu_3 <= accu_3 + 1; - end if; - end if; - end process; - process(clk_10kHz) --calibration pulse - begin - if rising_edge(clk_10kHz) then - if accu_4 = x"0000" and global_inhibit = '0' then - cal_inhibit <= not output_disable; - cal_trigger <= '0'; - accu_4 <= accu_4 + 1; - elsif accu_4 = x"0000" and global_inhibit = '1' then - cal_inhibit <= not output_disable; - cal_trigger <= '0'; - accu_4 <= accu_4; - elsif accu_4 = x"0001" then - cal_inhibit <= not output_disable; - cal_trigger <= not output_disable; - accu_4 <= accu_4 + 1; - elsif accu_4 = x"0002" then - cal_inhibit <= '0'; - cal_trigger <= '0'; - accu_4 <= accu_4 + 1; - elsif accu_4 = x"270f" then --10e3 - cal_inhibit <= '0'; - cal_trigger <= '0'; - accu_4 <= x"0000"; - else accu_4 <= accu_4 + 1; - end if; - end if; - end process; - -end Behavioral; diff --git a/oldfiles/vulom3/one_clock_long.vhd b/oldfiles/vulom3/one_clock_long.vhd deleted file mode 100644 index bf79b3e..0000000 --- a/oldfiles/vulom3/one_clock_long.vhd +++ /dev/null @@ -1,48 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 7/3/07 --- Design Name: vulom3 --- Module Name: one_clock_long - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: One clock cycle pulse shaper --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -library UNISIM; -use UNISIM.vcomponents.all; - -entity one_clock_long is port ( - clk : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); -end one_clock_long; - -architecture Behavioral of one_clock_long is -signal internal, signal_in_s : std_logic; - -begin - - process (clk) - begin - if rising_edge(clk) then - signal_in_s <= signal_in; - - if en_clk = '0' then - pulse <= '0'; - else - internal <= signal_in_s; - pulse <= (not internal) and signal_in_s; - end if; - end if; - end process; - -end Behavioral; - diff --git a/oldfiles/vulom3/one_clock_long_test.vhd b/oldfiles/vulom3/one_clock_long_test.vhd deleted file mode 100644 index 2c7ed35..0000000 --- a/oldfiles/vulom3/one_clock_long_test.vhd +++ /dev/null @@ -1,96 +0,0 @@ - --------------------------------------------------------------------------------- --- Company: --- Engineer: --- --- Create Date: 09:54:36 03/13/2007 --- Design Name: one_clock_long --- Module Name: /home/davide/fuffa/one_clock_long_test.vhd --- Project Name: fuffa --- Target Device: --- Tool versions: --- Description: --- --- VHDL Test Bench Created by ISE for module: one_clock_long --- --- Dependencies: --- --- Revision: --- Revision 0.01 - File Created --- Additional Comments: --- --- Notes: --- This testbench has been automatically generated using types std_logic and --- std_logic_vector for the ports of the unit under test. Xilinx recommends --- that these types always be used for the top-level I/O of a design in order --- to guarantee that the testbench will bind correctly to the post-implementation --- simulation model. --------------------------------------------------------------------------------- -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.std_logic_unsigned.all; -USE ieee.numeric_std.ALL; - -ENTITY one_clock_long_test_vhd IS -END one_clock_long_test_vhd; - -ARCHITECTURE behavior OF one_clock_long_test_vhd IS - - -- Component Declaration for the Unit Under Test (UUT) - COMPONENT one_clock_long - PORT( - clk : IN std_logic; - en_clk : IN std_logic; - signal_in : IN std_logic; - pulse : OUT std_logic - ); - END COMPONENT; - - --Inputs - SIGNAL clk : std_logic := '0'; - SIGNAL en_clk : std_logic := '0'; - SIGNAL signal_in : std_logic := '0'; - - --Outputs - SIGNAL pulse : std_logic; - -BEGIN - - -- Instantiate the Unit Under Test (UUT) - uut: one_clock_long PORT MAP( - clk => clk, - en_clk => en_clk, - signal_in => signal_in, - pulse => pulse - ); - - tb : PROCESS - BEGIN - - clk <= '1'; - wait for 1.42 ns; - clk <= '0'; - wait for 1.42 ns; - - END PROCESS; - - stim : process - begin - en_clk <= '1'; - signal_in <= '0'; - wait for 12.78 ns; - signal_in <= '1'; - wait for 14.2 ns; - signal_in <= '0'; - wait for 14.2 ns; - signal_in <= '1'; - wait for 1.42 ns; - signal_in <= '0'; - wait for 14.2 ns; - signal_in <= '1'; - wait for 14.2 ns; - signal_in <= '0'; - wait; - end process; - -END; \ No newline at end of file diff --git a/oldfiles/vulom3/scaler.vhd b/oldfiles/vulom3/scaler.vhd deleted file mode 100644 index f709a22..0000000 --- a/oldfiles/vulom3/scaler.vhd +++ /dev/null @@ -1,59 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 8/3/07 --- Design Name: vulom3 --- Module Name: scaler - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: 20 bit counter with reset --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - ----- Uncomment the following library declaration if instantiating ----- any Xilinx primitives in this code. ---library UNISIM; ---use UNISIM.VComponents.all; - -entity scaler is - Port ( clk : in std_logic; - input_pulse : in std_logic; - scaler_reset : in std_logic; - scaler_value : out std_logic_vector(19 downto 0)); -end scaler; - -architecture Behavioral of scaler is -signal scaled : std_logic_vector(19 downto 0) := x"00000"; - -begin -process(clk) -begin - if rising_edge(clk) then - if scaler_reset = '1' then - scaled <= x"00000"; - elsif (input_pulse = '1' and scaler_reset = '0') then - scaled <= scaled + 1; - end if; - end if; - - --- if rising_edge(clk) then --- if (input_pulse = '1' and scaler_reset = '0') then --- scaled <= scaled + 1; --- elsif scaler_reset = '1' then --- scaled <= x"00000"; --- end if; --- end if; - -scaler_value <= scaled; - -end process; - - -end Behavioral; diff --git a/oldfiles/vulom3/scaler_s.vhd b/oldfiles/vulom3/scaler_s.vhd deleted file mode 100644 index dfefdad..0000000 --- a/oldfiles/vulom3/scaler_s.vhd +++ /dev/null @@ -1,68 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 8/3/07 --- Design Name: vulom3 --- Module Name: scaler_s - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: 32 bit counter with reset --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; ---library UNISIM; ---use UNISIM.VComponents.all; - -entity scaler_s is port ( - clk_300MHz : in std_logic; - clk_100MHz : in std_logic; - input_pulse : in std_logic; - scaler_reset : in std_logic; - scaler_value : out std_logic_vector(31 downto 0)); -end scaler_s; - -architecture Behavioral of scaler_s is -signal scaled : std_logic_vector(31 downto 0) := x"00000000"; -signal r, q : std_logic; -signal input_pulse_d, shaped_input, scaler_reset_d, shaped_reset : std_logic; - -begin - - process(clk_300MHz) - begin - if rising_edge(clk_300MHz) then - input_pulse_d <= input_pulse; - shaped_input <= input_pulse and not input_pulse_d; -- 1 ck shaper - - if r = '1' then -- flip-flop - q <= '0'; - elsif shaped_input = '1' then - q <= '1'; - end if; - end if; - end process; - - process(clk_100MHz) - begin - if rising_edge(clk_100MHz) then - scaler_reset_d <= scaler_reset; -- 1 ck shaper - shaped_reset <= scaler_reset and not scaler_reset_d; - - if shaped_reset = '1' then - scaled <= x"00000000"; - scaler_value <= scaled; - elsif r = '1' then - r <= '0'; - elsif q = '1' then - scaled <= scaled + 1; - r <= '1'; - end if; - end if; - end process; - -end Behavioral; diff --git a/oldfiles/vulom3/set_width.vhd b/oldfiles/vulom3/set_width.vhd deleted file mode 100644 index 070698e..0000000 --- a/oldfiles/vulom3/set_width.vhd +++ /dev/null @@ -1,69 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 8/3/07 --- Design Name: vulom3 --- Module Name: set_width - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: 16 clock cycle programmable pulse shaper --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -library UNISIM; -use UNISIM.vcomponents.all; - -entity set_width is port ( - clk : in std_logic; - to_be_set : in std_logic; - width_value : in std_logic_vector(3 downto 0); - width_adjusted_pulse : out std_logic); -end set_width; - -architecture Behavioral of set_width is -signal reset, to_be_set_delayed, q : std_logic; -signal shift :std_logic_vector (15 downto 0); - -begin - - process (clk) - begin - - if rising_edge(clk) then - shift <= shift (14 downto 0) & to_be_set; - to_be_set_delayed <= to_be_set; - - case width_value is - when "0000" => reset <= shift(0); - when "0001" => reset <= shift(1); - when "0010" => reset <= shift(2); - when "0011" => reset <= shift(3); - when "0100" => reset <= shift(4); - when "0101" => reset <= shift(5); - when "0110" => reset <= shift(6); - when "0111" => reset <= shift(7); - when "1000" => reset <= shift(8); - when "1001" => reset <= shift(9); - when "1010" => reset <= shift(10); - when "1011" => reset <= shift(11); - when "1100" => reset <= shift(12); - when "1101" => reset <= shift(13); - when "1110" => reset <= shift(14); - when "1111" => reset <= shift(15); - when others => reset <= 'X'; - end case; - - if (to_be_set_delayed = '0' and reset ='1') then - width_adjusted_pulse <= '0'; - elsif (to_be_set_delayed = '1' and reset ='0') then - width_adjusted_pulse <= '1'; - end if; - end if; - end process; - -end Behavioral; diff --git a/oldfiles/vulom3/set_width_special.vhd b/oldfiles/vulom3/set_width_special.vhd deleted file mode 100644 index adebea9..0000000 --- a/oldfiles/vulom3/set_width_special.vhd +++ /dev/null @@ -1,83 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 8/3/07 --- Design Name: vulom3 --- Module Name: set_width_special - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: 16 clock cycle programmable pulse shaper specific for output --- (it can handle pulses wider than 1 ck cycle) --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -library UNISIM; -use UNISIM.vcomponents.all; - -entity set_width_special is port ( - clk : in std_logic; - to_be_set : in std_logic; - width_value : in std_logic_vector(3 downto 0); - width_adjusted_pulse : out std_logic); -end set_width_special; - -architecture Behavioral of set_width_special is -signal reset_timing_signal, clocked_timing_signal : std_logic; -signal timing_signal_counter : std_logic_vector(5 downto 0); -signal start_pulse, end_pulse : std_logic; -signal during_pulse, to_be_set_synch, to_be_set_synch_delayed : std_logic; - -begin - - SYNCH_TO_BE_SET: process (CLK) - begin - if rising_edge(CLK) then - to_be_set_synch <= to_be_set; - to_be_set_synch_delayed <= to_be_set_synch; - end if; - end process SYNCH_TO_BE_SET; - MAKE_START: process (CLK) - begin - if rising_edge(CLK) then - if to_be_set_synch_delayed = '0' and to_be_set_synch = '1' then - start_pulse <= '1'; - end_pulse <= '0'; - elsif to_be_set_synch_delayed = '1' and to_be_set_synch = '0' then - start_pulse <= '0'; - end_pulse <= '1'; - else - start_pulse <= '0'; - end_pulse <= '0'; - end if; - end if; - end process MAKE_START; - DURING_PULSE_PROC: process (CLK) - begin - if rising_edge(CLK) then - if start_pulse = '1' then - during_pulse <= '1'; - elsif timing_signal_counter(5) = '1' then - during_pulse <= '0'; - end if; - end if; - end process DURING_PULSE_PROC; - - - PULSER_LENGHT_COUNTER: process (CLK) - begin - if rising_edge(CLK) then - if during_pulse = '1' then - timing_signal_counter <= timing_signal_counter + 1; - elsif start_pulse = '1' then - timing_signal_counter <= (others => '0'); - else - timing_signal_counter <= timing_signal_counter; - end if; - end if; - end process PULSER_LENGHT_COUNTER; - width_adjusted_pulse <= during_pulse;--to_be_set or during_pulse; -end Behavioral; diff --git a/oldfiles/vulom3/trig_box1.vhd b/oldfiles/vulom3/trig_box1.vhd deleted file mode 100644 index 194ef61..0000000 --- a/oldfiles/vulom3/trig_box1.vhd +++ /dev/null @@ -1,960 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 9/3/07 --- Design Name: vulom3 --- Module Name: trig_box1 - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: Triggerbox --- NOTE (1): To enable TOF/MDC part comment lines (a) and (b) and uncomment (c) --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -library UNISIM; -use UNISIM.Vcomponents.ALL; - -entity trig_box1 is - port (clk_50MHz : in std_logic; - clk_300MHz : in std_logic; - clk_100MHz : in std_logic; - ECL : in std_logic_vector(16 downto 1); - ECO : out std_logic_vector(16 downto 1); - IOO : in std_logic_vector(16 downto 1); - TIN : out std_logic_vector(16 downto 1); - LEMIN : in std_logic_vector(2 downto 1); - LEMOU : out std_logic_vector(2 downto 1); - INPUT_ENABLE : in std_logic_vector(7 downto 1); - DOWNSCALE_REGISTER_1 : in std_logic_vector(3 downto 0); - DELAY_REGISTER_1 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_1 : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_2 : in std_logic_vector(3 downto 0); - DELAY_REGISTER_2 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_2 : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_3 : in std_logic_vector(3 downto 0); - DELAY_REGISTER_3 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_3 : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_4 : in std_logic_vector(3 downto 0); - DELAY_REGISTER_4 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_4 : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_5 : in std_logic_vector(3 downto 0); - DELAY_REGISTER_5 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_5 : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_TS : in std_logic_vector(3 downto 0); - DELAY_REGISTER_TS : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_TS : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_VS : in std_logic_vector(3 downto 0); - DELAY_REGISTER_VS : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_VS : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_CLOCK : in std_logic_vector(3 downto 0); - BRANCH_EN_with_MDC_TOF_WIDTH : in std_logic_vector(4 downto 0); --(4) enables branch, (3 downto 0) is the width value - WIDTH_OUTPUT : in std_logic_vector(3 downto 0); - MUX_SELECTOR_1 : in std_logic_vector(3 downto 0); - MUX_SELECTOR_2 : in std_logic_vector(3 downto 0); - OR_ON_OFF : in std_logic_vector(7 downto 0); - SCALER_PTI1 : out std_logic_vector(31 downto 0); - SCALER_PTI2 : out std_logic_vector(31 downto 0); - SCALER_PTI3 : out std_logic_vector(31 downto 0); - SCALER_PTI4 : out std_logic_vector(31 downto 0); - SCALER_PTI5 : out std_logic_vector(31 downto 0); - SCALER_TS : out std_logic_vector(31 downto 0); - SCALER_VS : out std_logic_vector(31 downto 0); - SCALER_MDC_TOF_SELECT : in std_logic_vector(7 downto 0); -- x"yz" y= mdc channel select, z= tof channel select - SCALER_MDC : out std_logic_vector(31 downto 0); - SCALER_TOF : out std_logic_vector(31 downto 0); - SCALER_RESET : in std_logic_vector(7 downto 0); - PTI5_TS_ALTERNATIVE : in std_logic_vector(7 downto 0); - DELAY_REGISTER_BEAM : in std_logic_vector(7 downto 0); - WIDTH_INHIBIT_REGISTER_BEAM : in std_logic_vector(7 downto 0); - WIDTH_EXTERNAL_REGISTER_BEAM : in std_logic_vector(7 downto 0); - SCALER_DEAD : out std_logic_vector(31 downto 0); - TS_GATING_DISABLE : in std_logic_vector(7 downto 1); - SCALER_PTI1_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_PTI2_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_PTI3_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_PTI4_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_PTI5_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_TS_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_VS_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_MUX1 : out std_logic_vector(31 downto 0); - SCALER_MUX2 : out std_logic_vector(31 downto 0); - DTU_CODE_SELECT : in std_logic_vector(4 downto 0); - CAL_TRIGGER_DISABLE : in std_logic; - COM_RUN : in std_logic; - DTU_ERROR : inout std_logic; - hpv : inout std_logic_vector(15 downto 0); - hpw : inout std_logic_vector(15 downto 0); - DEBUG_REG_00 : out std_logic_vector(31 downto 0); - TRB_BUSY_ENABLE : in std_logic - ); -end trig_box1; - - -architecture RTL of trig_box1 is - -component ONE_CLOCK_LONG port ( - clk : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); -end component; - -component DELAY port ( - clk : in std_logic; - to_be_delayed : in std_logic; - delay_value : in std_logic_vector(3 downto 0); - delayed_pulse : out std_logic); -end component; - -component DOWNSCALE port ( - clk : in std_logic; - disable : in std_logic; - to_be_downscaled : in std_logic; - downscale_value : in std_logic_vector(3 downto 0); - downscaled : out std_logic); -end component; - -component SET_WIDTH port ( - clk : in std_logic; - to_be_set : in std_logic; - width_value : in std_logic_vector(3 downto 0); - width_adjusted_pulse : out std_logic); -end component; - -component SET_WIDTH_special port ( - clk : in std_logic; - to_be_set : in std_logic; - width_value : in std_logic_vector(3 downto 0); - width_adjusted_pulse : out std_logic); -end component; - -component SCALER port ( - clk : in std_logic; - input_pulse : in std_logic; - scaler_reset : in std_logic; - scaler_value : out std_logic_vector(19 downto 0)); -end component; - -component SCALER_S port ( - clk_300MHz : in std_logic; - clk_100MHz : in std_logic; - input_pulse : in std_logic; - scaler_reset : in std_logic; - scaler_value : out std_logic_vector(31 downto 0)); -end component; - -component ECO_DELAY port ( - clk : in std_logic; - signal_in : in std_logic; - signal_out : out std_logic); -end component; - -COMPONENT new_downscale_ck -PORT( - downscale_value : IN std_logic_vector(3 downto 0); - clk : IN std_logic; - downscaled : OUT std_logic; - output_disable : IN std_logic; - global_inhibit : in std_logic; - scaler_reset : OUT std_logic; - cal_inhibit : OUT std_logic; - cal_trigger : OUT std_logic - ); -END COMPONENT; - -COMPONENT beam_ramp -PORT( - clk_300MHz : IN std_logic; - clk_50MHz : IN std_logic; - input : IN std_logic; - delay_value : IN std_logic_vector(7 downto 0); - width_value_inhibit : IN std_logic_vector(7 downto 0); - width_value_external : IN std_logic_vector(7 downto 0); - output_inhibit : OUT std_logic; - output_external : OUT std_logic - ); -END COMPONENT; - -COMPONENT bus_data_com5 -PORT( - clk_300MHz : IN std_logic; - clk_100MHz : IN std_logic; - gts_pulse : IN std_logic; - cal_trigger : IN std_logic; - bus_busy : IN std_logic; --not used - bus_ack : in std_logic; - bus_retx : in std_logic; - latch : IN std_logic_vector(6 downto 0); - latch_dsc : IN std_logic_vector(6 downto 0); - scaler_pti1 : IN std_logic_vector(31 downto 0); - scaler_pti2 : IN std_logic_vector(31 downto 0); - scaler_pti3 : IN std_logic_vector(31 downto 0); - scaler_pti4 : IN std_logic_vector(31 downto 0); - scaler_pti5 : IN std_logic_vector(31 downto 0); - scaler_ts : IN std_logic_vector(31 downto 0); - scaler_vs : IN std_logic_vector(31 downto 0); - scaler_dead : IN std_logic_vector(31 downto 0); - bus_inhibit : OUT std_logic; - dtu_inhibit : out std_logic; - ecl_bus_data : OUT std_logic_vector(1 downto 0); - ecl_bus_clk : OUT std_logic; - com_run : IN std_logic; - dtu_bus_t : out std_logic; - dtu_bus_ts : out std_logic; - dtu_bus_td : out std_logic_vector (3 downto 0); - DTU_CODE_SELECT : in std_logic_vector(4 downto 0); - DEBUG_REG_01 : out std_logic_vector(15 downto 0); - cal_inhibit : in std_logic; - out_inhibit : in std_logic; - TRB_BUSY_ENABLE : in std_logic - ); -END COMPONENT; - - -signal PTI1_ONE_CLOCK, PTI1_DELAYED, PTI1_READY, PTI1_DOWNSCALED, PTI1_SELF_COIN : std_logic; -signal PTI2_ONE_CLOCK, PTI2_DELAYED, PTI2_READY, PTI2_DOWNSCALED, PTI2_SELF_COIN : std_logic; -signal PTI3_ONE_CLOCK, PTI3_DELAYED, PTI3_READY, PTI3_DOWNSCALED, PTI3_SELF_COIN : std_logic; -signal PTI4_ONE_CLOCK, PTI4_DELAYED, PTI4_READY, PTI4_DOWNSCALED, PTI4_SELF_COIN : std_logic; -signal PTI5_ONE_CLOCK, PTI5_DELAYED, PTI5_READY, PTI5_DOWNSCALED, PTI5_SELF_COIN : std_logic; -signal TS_ONE_CLOCK, TS_DELAYED, TS_READY, dead, TS_SELF_COIN : std_logic; -signal VS_ONE_CLOCKS, VS_DELAYED, VS_READY, VS_WIDTH_SET, VS_SELF_COIN : std_logic; -signal CLOCK_DOWNSCALED, CLOCK_READY : std_logic; -signal cal_inhibit, cal_trigger, out_inhibit, beam_inhibit, bus_inhibit : std_logic; -signal GLOBAL_TIMING_SIGNAL_OUT, OR_out : std_logic; -signal PTI1_and_GTS, PTI2_and_GTS, PTI3_and_GTS, PTI4_and_GTS, PTI5_and_GTS : std_logic; -signal lemin_s, lemin_s1, mux_out : std_logic_vector(1 downto 0); -signal mdc_tof_or, mdc_tof_or_width_set, tof_or, tof_or_delayed, tof_mult_2, tof_mult_2_one, mdc_tof_trigger, mdc_tof_trigger_width_set : std_logic; -signal eco_s, eco_out : std_logic_vector(16 downto 1); -signal tof_one_clock, tof_del, tof_s, tof_s1, mdc_s, mdc_s1 : std_logic_vector(5 downto 0); -signal tof_mux, mdc_mux, pti5_mux, ts_mux, mdc_one_clock : std_logic; -signal scaler_pti1_count, scaler_pti2_count, scaler_pti3_count, scaler_pti4_count, scaler_pti5_count, - scaler_ts_count, scaler_vs_count, scaler_dead_count : std_logic_vector(31 downto 0); -signal self_coin_delay_1, self_coin_delay_2, self_coin_delay_3, self_coin_delay_4, self_coin_delay_5 : std_logic_vector(3 downto 0); -signal scaler_reset_internal : std_logic; -signal dtu_bus_t, dtu_bus_ts, dtu_bus_tb_s, dtu_inhibit : std_logic; -signal dtu_bus_td : std_logic_vector(3 downto 0); -signal GTS_to_databus, CAL_to_databus : std_logic; - -begin - --------------------------------------------------------------ONE CLOCK LONG -one1: ONE_CLOCK_LONG port map ( - clk => clk_300MHz, - en_clk => INPUT_ENABLE(1), - signal_in => IOO(1), - pulse => PTI1_ONE_CLOCK); - -one2: ONE_CLOCK_LONG port map ( - clk => clk_300MHz, - en_clk => INPUT_ENABLE(2), - signal_in => IOO(2), - pulse => PTI2_ONE_CLOCK); - -one3: ONE_CLOCK_LONG port map ( - clk => clk_300MHz, - en_clk => INPUT_ENABLE(3), - signal_in => IOO(3), - pulse => PTI3_ONE_CLOCK); - -one4: ONE_CLOCK_LONG port map ( --Directly connected to the OR of TOF, so ECL input n°4 is unused - clk => clk_300MHz, - en_clk => INPUT_ENABLE(4), - signal_in => tof_or, - pulse => PTI4_ONE_CLOCK); - -one5: ONE_CLOCK_LONG port map ( - clk => clk_300MHz, - en_clk => INPUT_ENABLE(5), - signal_in => IOO(5), - pulse => PTI5_ONE_CLOCK); - -one6: ONE_CLOCK_LONG port map ( - clk => clk_300MHz, - en_clk => INPUT_ENABLE(6), - signal_in => IOO(6), - pulse => TS_ONE_CLOCK); - -one7: ONE_CLOCK_LONG port map ( - clk => clk_300MHz, - en_clk => INPUT_ENABLE(7), - signal_in => IOO(7), - pulse => VS_ONE_CLOCKS); - -one_mdc: ONE_CLOCK_LONG port map ( --used only for scaler - clk => clk_300MHz, - en_clk => '1', - signal_in => mdc_mux, - pulse => mdc_one_clock); - -tof_generate_oneclock : for i in 9 to 14 generate - one_tof: ONE_CLOCK_LONG port map ( - clk => clk_300MHz, - en_clk => '1', --tof always enabled - signal_in => ECL(i), - pulse => tof_one_clock(i-9)); -end generate; ---------------------------------------------- -multiplicity: ONE_CLOCK_LONG port map ( - clk => clk_300MHz, - en_clk => '1', - signal_in => tof_mult_2, - pulse => tof_mult_2_one); ---------------------------------------------- -one_ck: ONE_CLOCK_LONG port map ( - clk => clk_300MHz, - en_clk => '1', - signal_in => CLOCK_DOWNSCALED, - pulse => CLOCK_READY); - --------------------------------------------------------------------------DELAY -del1: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => PTI1_ONE_CLOCK, - delay_value => DELAY_REGISTER_1(3 downto 0), - delayed_pulse => PTI1_DELAYED); - -del2: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => PTI2_ONE_CLOCK, - delay_value => DELAY_REGISTER_2(3 downto 0), - delayed_pulse => PTI2_DELAYED); - -del3: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => PTI3_ONE_CLOCK, - delay_value => DELAY_REGISTER_3(3 downto 0), - delayed_pulse => PTI3_DELAYED); - -del4: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => PTI4_ONE_CLOCK, - delay_value => DELAY_REGISTER_4(3 downto 0), - delayed_pulse => PTI4_DELAYED); - -del5: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => pti5_mux, - delay_value => DELAY_REGISTER_5(3 downto 0), - delayed_pulse => PTI5_DELAYED); - -del6: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => ts_mux, - delay_value => DELAY_REGISTER_TS(3 downto 0), - delayed_pulse => TS_DELAYED); - -del7: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => VS_ONE_CLOCKS, - delay_value => DELAY_REGISTER_VS(3 downto 0), - delayed_pulse => VS_DELAYED); - -self_coin_delay_1 <= '0' & WIDTH_REGISTER_1(3 downto 1); --automatic delay = width / 2 -self_coin_delay_2 <= '0' & WIDTH_REGISTER_2(3 downto 1); -self_coin_delay_3 <= '0' & WIDTH_REGISTER_3(3 downto 1); -self_coin_delay_4 <= '0' & WIDTH_REGISTER_4(3 downto 1); -self_coin_delay_5 <= '0' & WIDTH_REGISTER_5(3 downto 1); - -del1_self: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => PTI1_DOWNSCALED, - delay_value => self_coin_delay_1, - delayed_pulse => PTI1_SELF_COIN); - -del2_self: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => PTI2_DOWNSCALED, - delay_value => self_coin_delay_2, - delayed_pulse => PTI2_SELF_COIN); - -del3_self: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => PTI3_DOWNSCALED, - delay_value => self_coin_delay_3, - delayed_pulse => PTI3_SELF_COIN); - -del4_self: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => PTI4_DOWNSCALED, - delay_value => self_coin_delay_4, - delayed_pulse => PTI4_SELF_COIN); - -del5_self: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => PTI5_DOWNSCALED, - delay_value => self_coin_delay_5, - delayed_pulse => PTI5_SELF_COIN); - -tof_generate_delay : for t in 0 to 5 generate - del_tof: DELAY port map ( - clk => clk_300MHz, - to_be_delayed => tof_one_clock(t), - delay_value => DELAY_REGISTER_4(3 downto 0), - delayed_pulse => tof_del(t)); -end generate; - --------------------------------------------------------------------------SCALER -scal1: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, --PTI1÷5 before inhibit - input_pulse => PTI1_DELAYED, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI1_count); - -scal2: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => PTI2_DELAYED, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI2_count); - -scal3: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => PTI3_DELAYED, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI3_count); - -scal4: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => PTI4_DELAYED, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI4_count); - -scal5: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => PTI5_DELAYED, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI5_count); - -scal1a: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, --PTI1÷5 after inhibit - input_pulse => eco_s(9), - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI1_ACCEPTED); - -scal2a: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => eco_s(10), - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI2_ACCEPTED); - -scal3a: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => eco_s(11), - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI3_ACCEPTED); - -scal4a: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => eco_s(12), - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI4_ACCEPTED); - -scal5a: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => eco_s(13), - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_PTI5_ACCEPTED); - -scalts: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, --TS, VS and dead - input_pulse => TS_DELAYED, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_TS_count); - -scalvs: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => VS_DELAYED, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_VS_count); - -scaldead: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => dead, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_DEAD_count); - -scalmdc: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, --MDC and TOF - input_pulse => mdc_one_clock, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_MDC); - -scaltof: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => tof_mux, - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_TOF); - -scalmux1: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => mux_out(0), - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_MUX1); - -scalmux2: SCALER_S port map ( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - input_pulse => mux_out(1), - scaler_reset => scaler_reset_internal, - scaler_value => SCALER_MUX2); - ----------------------------------------------------------------------------DOWNSCALE -dwsc1: DOWNSCALE port map ( - clk => clk_300MHz, - disable => out_inhibit, - to_be_downscaled => PTI1_DELAYED, - downscale_value => DOWNSCALE_REGISTER_1(3 downto 0), - downscaled => PTI1_DOWNSCALED); - -dwsc2: DOWNSCALE port map ( - clk => clk_300MHz, - disable => out_inhibit, - to_be_downscaled => PTI2_DELAYED, - downscale_value => DOWNSCALE_REGISTER_2(3 downto 0), - downscaled => PTI2_DOWNSCALED); - -dwsc3: DOWNSCALE port map ( - clk => clk_300MHz, - disable => out_inhibit, - to_be_downscaled => PTI3_DELAYED, - downscale_value => DOWNSCALE_REGISTER_3(3 downto 0), - downscaled => PTI3_DOWNSCALED); - -dwsc4: DOWNSCALE port map ( - clk => clk_300MHz, - disable => out_inhibit, - to_be_downscaled => PTI4_DELAYED, - downscale_value => DOWNSCALE_REGISTER_4(3 downto 0), - downscaled => PTI4_DOWNSCALED); - -dwsc5: DOWNSCALE port map ( - clk => clk_300MHz, - disable => out_inhibit, - to_be_downscaled => PTI5_DELAYED, - downscale_value => DOWNSCALE_REGISTER_5(3 downto 0), - downscaled => PTI5_DOWNSCALED); - -dwscts: DOWNSCALE port map ( - clk => clk_300MHz, - disable => out_inhibit, - to_be_downscaled => TS_DELAYED, - downscale_value => DOWNSCALE_REGISTER_TS(3 downto 0), - downscaled => TS_READY); - -dwscvs: DOWNSCALE port map ( - clk => clk_300MHz, - disable => out_inhibit, - to_be_downscaled => VS_DELAYED, - downscale_value => DOWNSCALE_REGISTER_VS(3 downto 0), - downscaled => VS_READY); - --------------------------------------------------------------------------------WIDTH -setw1: SET_WIDTH port map ( - clk => clk_300MHz, - to_be_set => PTI1_DOWNSCALED, - width_value => WIDTH_REGISTER_1(3 downto 0), - width_adjusted_pulse => PTI1_READY); - -setw2: SET_WIDTH port map ( - clk => clk_300MHz, - to_be_set => PTI2_DOWNSCALED, - width_value => WIDTH_REGISTER_2(3 downto 0), - width_adjusted_pulse => PTI2_READY); - -setw3: SET_WIDTH port map ( - clk => clk_300MHz, - to_be_set => PTI3_DOWNSCALED, - width_value => WIDTH_REGISTER_3(3 downto 0), - width_adjusted_pulse => PTI3_READY); - -setw4: SET_WIDTH port map ( - clk => clk_300MHz, - to_be_set => PTI4_DOWNSCALED, - width_value => WIDTH_REGISTER_4(3 downto 0), - width_adjusted_pulse => PTI4_READY); - -setw5: SET_WIDTH port map ( - clk => clk_300MHz, - to_be_set => PTI5_DOWNSCALED, - width_value => WIDTH_REGISTER_5(3 downto 0), - width_adjusted_pulse => PTI5_READY); - -setw7: SET_WIDTH port map ( - clk => clk_300MHz, - to_be_set => VS_DELAYED, - width_value => WIDTH_REGISTER_VS(3 downto 0), - width_adjusted_pulse => VS_WIDTH_SET); - ---*/*/*///*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ --READ NOTE 1) -mdc_tof_trigger_width_set <= '1'; --(a) ---*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/* - -setw_mdc_tof_trigger: SET_WIDTH port map ( - clk => clk_300MHz, - to_be_set => mdc_tof_or, - width_value => BRANCH_EN_with_MDC_TOF_WIDTH(3 downto 0), --- width_adjusted_pulse => mdc_tof_trigger_width_set); --(c) - width_adjusted_pulse => open); --(b) - -setwout: SET_WIDTH_special port map ( - clk => clk_300MHz, - to_be_set => GLOBAL_TIMING_SIGNAL_OUT, - width_value => x"6", -- fixed to 20 ns - width_adjusted_pulse => LEMOU(1)); - -------------------------------------------------------------------------------------------OUTPUT -delaygen1 : for i in 1 to 7 generate - delay_out : ECO_DELAY port map ( - clk => clk_300MHz, - signal_in => eco_s(i), - signal_out => eco_out(i)); -end generate; - -ECO(7 downto 1) <= eco_out(7 downto 1); - -setmux1: SET_WIDTH port map ( - clk => clk_300MHz, - to_be_set => mux_out(0), - width_value => "0010", - width_adjusted_pulse => ECO(8)); - -delaygen2 : for i in 9 to 15 generate - delay_out : ECO_DELAY port map ( - clk => clk_300MHz, - signal_in => eco_s(i), - signal_out => eco_out(i)); -end generate; - -ECO(15 downto 9) <= eco_out(15 downto 9); - -setmux2: SET_WIDTH port map ( - clk => clk_300MHz, - to_be_set => mux_out(1), - width_value => "0010", - width_adjusted_pulse => ECO(16)); - -Inst_new_downscale_ck: new_downscale_ck PORT MAP( - downscale_value => DOWNSCALE_REGISTER_CLOCK(3 downto 0), - clk => clk_300MHz, - output_disable => CAL_TRIGGER_DISABLE, - scaler_reset => scaler_reset_internal, - downscaled => CLOCK_DOWNSCALED, - global_inhibit => out_inhibit, - cal_inhibit => cal_inhibit, - cal_trigger => cal_trigger); - - -LEMOU(2) <= out_inhibit;--OR_out;-- GLOBAL_TIMING_SIGNAL_OUT; --Now calib pulse is coming out from lemo n°1, this output is unused - -Inst_beam_ramp: beam_ramp PORT MAP( - clk_300MHz => clk_300MHz, - clk_50MHz => clk_50MHz, - input => lemin_s(1), - output_inhibit => beam_inhibit, - output_external => TIN(12), - delay_value => DELAY_REGISTER_BEAM, - width_value_inhibit => WIDTH_INHIBIT_REGISTER_BEAM, - width_value_external => WIDTH_EXTERNAL_REGISTER_BEAM); - ---------------BUS COMMUNICATION - -Inst_bus_data_com5: bus_data_com5 PORT MAP( - clk_300MHz => clk_300MHz, - clk_100MHz => clk_100MHz, - gts_pulse => GTS_to_databus, - cal_trigger => cal_trigger, - bus_busy => IOO(16), --not used - bus_ack => IOO(15), - bus_retx => IOO(14), - latch => eco_out(7 downto 1), - latch_dsc => eco_out(15 downto 9), - scaler_pti1 => scaler_pti1_count, - scaler_pti2 => scaler_pti2_count, - scaler_pti3 => scaler_pti3_count, - scaler_pti4 => scaler_pti4_count, - scaler_pti5 => scaler_pti5_count, - scaler_ts => scaler_ts_count, - scaler_vs => scaler_vs_count, - scaler_dead => scaler_dead_count, - bus_inhibit => bus_inhibit, - dtu_inhibit => dtu_inhibit, - ecl_bus_data => TIN(11 downto 10), - ecl_bus_clk => open,--TIN(9), - com_run => com_run, - dtu_bus_t => dtu_bus_t, - dtu_bus_ts => dtu_bus_ts, - dtu_bus_td => dtu_bus_td, - DTU_CODE_SELECT => DTU_CODE_SELECT, - DEBUG_REG_01 => DEBUG_REG_00(15 downto 0), - cal_inhibit => cal_inhibit, - out_inhibit => out_inhibit, - TRB_BUSY_ENABLE => TRB_BUSY_ENABLE - ); - - --/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ - hpv(14) <= not dtu_bus_t; --This is a "firmware patch": the VME connector - hpw(14) <= not dtu_bus_ts; --for DTU is reversed (mistake in pcb layout) so - hpw(10) <= not dtu_bus_td(3); --all the I/Os must be inverted - hpv(10) <= not dtu_bus_td(2); - hpw(12) <= not dtu_bus_td(1); - hpv(12) <= not dtu_bus_td(0); - hpw(8) <= 'Z'; - ---------------------- - hpv(15) <= dtu_bus_ts; --With this connections all the DTU signals are - hpv(11) <= dtu_bus_td(3); --on one debug socket (hplv or hplw) that can conveniently - hpv(13) <= dtu_bus_td(1); --plugged to a logic analyzer. Be aware though, some signals - hpv(9) <= '0'; --are inverted - hpv(7 downto 0) <= x"00"; --unused - - hpw(15) <= dtu_bus_t; - hpw(11) <= dtu_bus_td(2); - hpw(13) <= dtu_bus_td(0); - hpw(9) <= '0'; - hpw(7 downto 0) <= x"00"; --unused - --/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ - - SCALER_PTI1 <= SCALER_PTI1_count; - SCALER_PTI2 <= SCALER_PTI2_count; - SCALER_PTI3 <= SCALER_PTI3_count; - SCALER_PTI4 <= SCALER_PTI4_count; - SCALER_PTI5 <= SCALER_PTI5_count; - SCALER_TS <= SCALER_TS_count; - SCALER_VS <= SCALER_VS_count; - SCALER_dead <= SCALER_dead_count; - -TIN(16 downto 13) <= "0000"; - ---------------PTI5 & TS mux - -mdc_tof_mux: process(clk_300MHz) -begin - if rising_edge(clk_300MHz) then - --- case tof_one_clock is --multiplicity 2 detector - case ecl(14 downto 9) is --multiplicity 2 detector - when "000011" => tof_mult_2 <= '1'; - when "000101" => tof_mult_2 <= '1'; - when "001001" => tof_mult_2 <= '1'; - when "010001" => tof_mult_2 <= '1'; - when "100001" => tof_mult_2 <= '1'; - when "000110" => tof_mult_2 <= '1'; - when "001010" => tof_mult_2 <= '1'; - when "010010" => tof_mult_2 <= '1'; - when "100010" => tof_mult_2 <= '1'; - when "001100" => tof_mult_2 <= '1'; - when "010100" => tof_mult_2 <= '1'; - when "100100" => tof_mult_2 <= '1'; - when "011000" => tof_mult_2 <= '1'; - when "101000" => tof_mult_2 <= '1'; - when "110000" => tof_mult_2 <= '1'; - when others => tof_mult_2 <= '0'; - end case; - - case PTI5_TS_ALTERNATIVE(4) is - when '0' => pti5_mux <= PTI5_ONE_CLOCK; - when '1' => pti5_mux <= tof_mult_2_one; - when others => pti5_mux <= 'X'; - end case; - - case PTI5_TS_ALTERNATIVE(0) is - when '0' => ts_mux <= TS_ONE_CLOCK; - when '1' => ts_mux <= tof_or; - when others => ts_mux <= 'X'; - end case; - end if; -end process mdc_tof_mux; - ---------------MDC & TOF scaler mux - -pti5_ts_mux: process(clk_300MHz) -begin - if rising_edge(clk_300MHz) then - case SCALER_MDC_TOF_SELECT(7 downto 4) is - when x"0" => mdc_mux <= mdc_s1(0); - when x"1" => mdc_mux <= mdc_s1(1); - when x"2" => mdc_mux <= mdc_s1(2); - when x"3" => mdc_mux <= mdc_s1(3); - when x"4" => mdc_mux <= mdc_s1(4); - when x"5" => mdc_mux <= mdc_s1(5); - when others => mdc_mux <= '0'; - end case; - - case SCALER_MDC_TOF_SELECT(3 downto 0) is - when x"0" => tof_mux <= tof_one_clock(0); - when x"1" => tof_mux <= tof_one_clock(1); - when x"2" => tof_mux <= tof_one_clock(2); - when x"3" => tof_mux <= tof_one_clock(3); - when x"4" => tof_mux <= tof_one_clock(4); - when x"5" => tof_mux <= tof_one_clock(5); - when others => tof_mux <= '0'; - end case; - end if; -end process pti5_ts_mux; - --------------- TOF & MDC logic - -tof_mdc_logic: process(clk_300Mhz) -begin - if rising_edge(clk_300MHz) then - - mdc_s <= ECL(6 downto 1); - tof_s <= ECL(14 downto 9); - mdc_s1 <= mdc_s; - tof_s1 <= tof_s; - - mdc_tof_or <= (((tof_del(0) and not mdc_s1(0)) or (tof_del(1) and not mdc_s1(1)) or - (tof_del(2) and not mdc_s1(2)) or (tof_del(3) and not mdc_s1(3)) or - (tof_del(4) and not mdc_s1(4)) or (tof_del(5) and not mdc_s1(5))) - and BRANCH_EN_with_MDC_TOF_WIDTH(4)); - - tof_or <= (ecl(9) or ecl(10) or ecl(11) or ecl(12) or ecl(13) or ecl(14)); - - end if; -end process tof_mdc_logic; - --------------- Final AND-OR logic function - -logic: process(clk_300MHz) -begin - if rising_edge(clk_300MHz) then - - -------------------------------------- GATE SELECT SINGLE - - PTI1_and_GTS <= ((PTI1_READY and (TS_DELAYED and not VS_WIDTH_SET) and mdc_tof_trigger_width_set and not TS_GATING_DISABLE(1)) - or (PTI1_SELF_COIN and TS_GATING_DISABLE(1))); - PTI2_and_GTS <= ((PTI2_READY and (TS_DELAYED and not VS_WIDTH_SET) and mdc_tof_trigger_width_set and not TS_GATING_DISABLE(2)) - or (PTI2_SELF_COIN and TS_GATING_DISABLE(2))); - PTI3_and_GTS <= ((PTI3_READY and (TS_DELAYED and not VS_WIDTH_SET) and mdc_tof_trigger_width_set and not TS_GATING_DISABLE(3)) - or (PTI3_SELF_COIN and TS_GATING_DISABLE(3))); - PTI4_and_GTS <= ((PTI4_READY and (TS_DELAYED and not VS_WIDTH_SET) and mdc_tof_trigger_width_set and not TS_GATING_DISABLE(4)) - or (PTI4_SELF_COIN and TS_GATING_DISABLE(4))); - PTI5_and_GTS <= ((PTI5_READY and (TS_DELAYED and not VS_WIDTH_SET) and mdc_tof_trigger_width_set and not TS_GATING_DISABLE(5)) - or (PTI5_SELF_COIN and TS_GATING_DISABLE(5))); - - OR_out <= (PTI1_and_GTS and OR_ON_OFF(0)) or - (PTI2_and_GTS and OR_ON_OFF(1)) or - (PTI3_and_GTS and OR_ON_OFF(2)) or - (PTI4_and_GTS and OR_ON_OFF(3)) or - (PTI5_and_GTS and OR_ON_OFF(4)) or - (TS_READY and OR_ON_OFF(5)) or - (VS_READY and OR_ON_OFF(6)) or - (CLOCK_READY and OR_ON_OFF(7)); - - lemin_s <= LEMIN; - lemin_s1 <= lemin_s; - dtu_bus_tb_s <= not hpv(8); --dtu trigger busy - - dead <= TS_DELAYED and (not out_inhibit); - - out_inhibit <= lemin_s1(0) or beam_inhibit or bus_inhibit or dtu_inhibit;-- - --or dtu_bus_tb_s;-- - --or (not com_run); - TIN(9) <= cal_trigger; - GLOBAL_TIMING_SIGNAL_OUT <= (OR_out and (not out_inhibit) and (not cal_inhibit)); --- and not out_inhibit) or (OR_out and (not out_inhibit) and (not cal_inhibit)); - GTS_to_databus <= OR_out and not out_inhibit and not cal_inhibit; - - - end if; -end process logic; -DEBUG_REG_00(31 downto 29) <= OR_out & out_inhibit & cal_inhibit; -DEBUG_REG_00(28 downto 24) <= lemin_s1(0) & beam_inhibit & bus_inhibit & dtu_inhibit & dtu_bus_tb_s; ----------------- Outputs - -assign: process(clk_300MHz) -begin - if rising_edge(clk_300MHz) then - - eco_s(1) <= PTI1_DELAYED; -- Latches before downscale - eco_s(2) <= PTI2_DELAYED; - eco_s(3) <= PTI3_DELAYED; - eco_s(4) <= PTI4_DELAYED; - eco_s(5) <= PTI5_DELAYED; - eco_s(6) <= TS_DELAYED; - eco_s(7) <= VS_DELAYED; --- ECO(8) is mux 0 - eco_s(9) <= (OR_ON_OFF(0) and ((PTI1_DOWNSCALED and TS_GATING_DISABLE(1)) - or (PTI1_and_GTS and not TS_GATING_DISABLE(1)))); - eco_s(10) <= (OR_ON_OFF(1) and ((PTI2_DOWNSCALED and TS_GATING_DISABLE(2)) - or (PTI2_and_GTS and not TS_GATING_DISABLE(2)))); - eco_s(11) <= (OR_ON_OFF(2) and ((PTI3_DOWNSCALED and TS_GATING_DISABLE(3)) - or (PTI3_and_GTS and not TS_GATING_DISABLE(3)))); - eco_s(12) <= (OR_ON_OFF(3) and ((PTI4_DOWNSCALED and TS_GATING_DISABLE(4)) - or (PTI4_and_GTS and not TS_GATING_DISABLE(4)))); - eco_s(13) <= (OR_ON_OFF(4) and ((PTI5_DOWNSCALED and TS_GATING_DISABLE(5)) - or (PTI5_and_GTS and not TS_GATING_DISABLE(5)))); - - eco_s(14) <= TS_READY and OR_ON_OFF(5); - eco_s(15) <= VS_READY and OR_ON_OFF(6); --- ECO(16) is mux 1 - ------------------ Multiplexers - - case MUX_SELECTOR_1 is --0x5c - - when "0000" => mux_out(0) <= PTI1_DELAYED; --0 - when "0001" => mux_out(0) <= PTI2_DELAYED; - when "0010" => mux_out(0) <= PTI3_DELAYED; --2 - when "0011" => mux_out(0) <= PTI4_DELAYED; - when "0100" => mux_out(0) <= PTI5_DELAYED; --4 - when "0101" => mux_out(0) <= TS_DELAYED; - when "0110" => mux_out(0) <= VS_DELAYED; --6 - when "0111" => mux_out(0) <= PTI1_and_GTS; - when "1000" => mux_out(0) <= PTI2_and_GTS; --8 - when "1001" => mux_out(0) <= PTI3_and_GTS; - when "1010" => mux_out(0) <= PTI4_and_GTS; --a - when "1011" => mux_out(0) <= PTI5_and_GTS; - when "1100" => mux_out(0) <= TS_READY; --c - when "1101" => mux_out(0) <= VS_READY; - when "1110" => mux_out(0) <= OR_out; --e - when "1111" => mux_out(0) <= GLOBAL_TIMING_SIGNAL_OUT; - when others => mux_out(0) <= 'X'; - - end case; - - - case MUX_SELECTOR_2 is --0x60 - - when "0000" => mux_out(1) <= PTI1_DELAYED; --0 - when "0001" => mux_out(1) <= PTI2_DELAYED; - when "0010" => mux_out(1) <= PTI3_DELAYED; --2 - when "0011" => mux_out(1) <= PTI4_DELAYED; - when "0100" => mux_out(1) <= PTI5_DELAYED; --4 - when "0101" => mux_out(1) <= TS_DELAYED; - when "0110" => mux_out(1) <= VS_DELAYED; --6 - when "0111" => mux_out(1) <=tof_mux; --PTI1_READY; - when "1000" => mux_out(1) <='0'; --PTI2_READY; --8 - when "1001" => mux_out(1) <='0'; --PTI3_READY; - when "1010" => mux_out(1) <='0'; --PTI4_READY; --a - when "1011" => mux_out(1) <=mdc_tof_trigger_width_set;--PTI5_READY; - when "1100" => mux_out(1) <= TS_READY; --c - when "1101" => mux_out(1) <= VS_READY; - when "1110" => mux_out(1) <= CLOCK_READY; --e - when "1111" => mux_out(1) <=mdc_mux; --VS_WIDTH_SET; - when others => mux_out(1) <= 'X'; - - end case; - - end if; -end process assign; - -end RTL; diff --git a/oldfiles/vulom3/trigger_box1.stapl b/oldfiles/vulom3/trigger_box1.stapl deleted file mode 100644 index 0bf6624..0000000 --- a/oldfiles/vulom3/trigger_box1.stapl +++ /dev/null @@ -1,3106 +0,0 @@ -NOTE "CREATOR" "Xilinx iMPACT Software"; -NOTE "DATE" "2008/04/28"; -NOTE "STAPL_VERSION" "JESD71"; -NOTE "ALG_VERSION" "1"; -NOTE "DEVICE" "UNSPECIFIED"; -NOTE "CHECKSUM" "UNSPECIFIED"; -NOTE "IDCODE" "UNSPECIFIED"; -NOTE "USERCODE" "UNSPECIFIED"; -NOTE "TARGET" "UNSPECIFIED"; -NOTE "STACK_DEPTH" "4"; -NOTE "MAX_FREQ" "1000000"; -ACTION RUN_XILINX_PROC "Run Xilinx Procedure" = XILINX_PROC; -DATA MAINDATA; -INTEGER I = 0; -INTEGER D = 0; -ENDDATA; -PROCEDURE XILINX_PROC USES ADJUST_DELAY, MAINDATA; -BOOLEAN X = 0; -IRSTOP IDLE; -DRSTOP IDLE; -STATE RESET IDLE; -POSTIR 0 ; -PREIR 0 ; -POSTDR 0 ; -PREDR 0 ; -POSTIR 0 ; -PREIR 0 ; -PREDR 0 ; -POSTDR 0 ; -' //Loading device with 'idcode' instruction. -IRSCAN 10, $03c9 - ; -DRSCAN 32, $00000000 -, COMPARE $f167c093 -, $0fffffff -, X; -IF (!X) THEN GOTO F; -POSTIR 0 ; -PREIR 0 ; -POSTDR 0 ; -PREDR 0 ; -POSTIR 0 ; -PREIR 0 ; -POSTDR 0 ; -PREDR 0 ; -POSTIR 0 ; -PREIR 0 ; -PREDR 0 ; -POSTDR 0 ; -' //Loading device with 'idcode' instruction. -IRSCAN 10, $03c9 - ; -DRSCAN 32, $00000000 -, COMPARE $f167c093 -, $0fffffff -, X; -IF (!X) THEN GOTO F; -' //Loading device with 'bypass' instruction. -IRSCAN 10, $03ff - ; -' // Loading device with a `jprogram` instruction. -IRSCAN 10, $03cb - ; -D = 1; -WAIT D CYCLES; -' // Loading device with a `bypass` instruction. -IRSCAN 10, $03ff - ; -D = 21000; -WAIT D CYCLES; -' // Loading device with a `cfg_in` instruction. -IRSCAN 10, $03c5 - ; -D = 100000; -WAIT D CYCLES; -' // Check init_complete in ircapture. -' //Loading device with 'Bypass' instruction. -IRSCAN 10, $03ff -, COMPARE $0010 -, $0010 -, X; -IF (!X) THEN GOTO F; -' STATE RESET; -' // Loading device with a `cfg_in` instruction. -IRSCAN 10, $03c5 -, COMPARE $0000 -, $0000 -, X; -IF (!X) THEN GOTO F; -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -' WARNING: This STAPL file describes a data shift of more than 16K bits -' which might exceed the capacity of your run-time environment. -DRSCAN 7819936, @Kfk30000000@@l@@lAPggP8000003080010000E20000G000006081020GPqfC0e004GcFGo -1D00GI00000C0m00400060C0W2040006080WqC82421YW09G05G03m@3W@dV@F@x@yp@pV@F -__@uV@7Vy@ud@dUz@ql@dU_@qt@7U@@m@_Fym@3VCX88P0000GYa6a3G280G0YbC10081000 -0m0020050MhM00000W408820421u1001051uHW0I0wj18D0O638cY1_10G_Gr12baGB0080c -K06GH90D28KT0wiuGcfeQmB5g0uV1OaY0Rqm3000Ci600YKmF0008NWu10ywZ39IUoWaBPu@ -HA_FaZ@@8v@EM_VZc@puv@BY_lYf@dew@8k_@Xi@ROx@5wm60mTTxaHjxf7Z@vnCeL0mc0u2 -W4Q_yd218fPWP000mJJ008f0LgvqZc34A3L21002qtW1J0OGfhd0u60OoLv006001008TsJ0 -00WX400emM30001yERQW100QnL5001WzeA700G008W0tzg2OJ5Wi8U8xpy10W00000f103I1 -WYnat0008Ax00WcK@VKQ3Qy8XyHC0208GA0FKDX70160MaUC20080000020W00000808GA0I -ydZ7Y300QFMkyZP850Awx_XLKI300140000900GfXRmtr608W0000W8002000G47OZ100_Zm -mJ34G0000WG001000WmkDtWK0C00600800000A0VdZHI1cP00W00000H102040145m100040 -20E00O00000410100W0G4000iVD6000ej200aPjPA0G0824004W0W000000202288W000080 -GG2000GG110010010WnoN100cZkjD310G8HG4040G000H001010005140G000KaK0I000000 -51Wzxh0u51mWzZfg50m@B2Fuf20@ZPcWdggi8cPQHuhoY0yVA0C00004y00GgvLm8008Qzn0 -G1C1W2O2m5m4W9W90J000c00K010a2038000@O73002rXX@@Nw@t5@@Rvdv3E648e192QmcV -6as43L@l10WFd@@r2010GCX904008fm4IXBXt1D0002m@WU0_A1OJFmYKWXD4V8IXJu800CP -6OJDcmMa60020OkH36QAX_3z00mB_@@l1W000WG0KEbj0wv1u@@t0O210808CsFL000ofL00 -u@@q0WP61000400G0220Wm7L10G8y@@izkf1hD238S3W@@J30082H000WE006c8044404IXA -E200_@FD0W8600020OW00WIa0I00m@@d00e@y@@w0G62y@lAW0E0cIjk1IR1H00m@@o104Gu -KrM_@@@@@nWDW00MI0WmbLPTXM_@@70mig00Ww1UL10er30e00m@@d0080Phtt0060A000r0 -00m@@g02S0u@@q000mZP00WuWdf0GaR18E07@ULRhINyQB@@l10q6W6m99py42tsuCgR9yQI -004QrfE9PcdGFxjG0200100mCuI00004088GYxg0WN08xTO0W00C9F9Lrd0010WVmDOTj402 -6046E3G000QjV3000Cq700wlFXvtPG0000008000085qb00G008WG001000G80SBE3nvpm2_ -C0G08Odt7cbt0000W0600gltZD@P00muq@@9yS73pUR084000010B0p004020000e002khbX -8RP8uU6YWt04020Lmp0G00000W00O01I0N50i505@V200G00801D5xH692DFj4000mu100Ka -2O010023lbcwV00somVsRieD30100Y97Z@@t000WIY@21U70eBnYgusZmmjfxU3000GfM00O -hRF002000009cyAw8dXqyJeck74800G5048CyP0020aXk1006O3bSZtzDeiV30Y004Jk4TqR -GrtIiyF3@LpGOuda_v306K0QxZaAlP8cy40004i_U2Fb@Gux600f00W000001emmV00G2GOu -Xa5V2000uID73000G0W8000K0082000I1G2v9W800WK00KA0C0AX82008GEw9iLl10100000 -X010W00Y0GEuC46k1f0mGOuO46V200SC@pUZQsDOvI3I8F10008f0mm1L600G0P1d700G000 -00H1aW38e0GWC00W0020We0220001W3e10004000XXp0G04WiOO8qU3000Grpl1WrK0_@l2m -0W000O0030000WHW0000GK0WOoD0u00100W0W4m1NqRmYi6000000K0GveFG2g00000001G0 -000W00080010201W0000KOu60411CCS30H40a2W1XXB10040W000000ObF00KXN80004Y6m0 -00800G2082G004WA9XS38100y@@38G001004000060000X0W2I008Gt4823VcG_D0040000V -w@@n02YWG2vR4Jk1eG0210Wc46EO0DQ0_@l200m20uV0mCpKfg@1NuBIbgM4W4oVmYOcf5X7 -002m@@@R0m00WiwJ00G0000040e900W9mT000Z0008CSOA4mWFTJme00m@@L000A0J0KG2vR -0O20G13002u200W0e000Wc62cR@310KLVKf6000GArSH1jp044aA9G@m0RO0W00ypBIs7_Xf -aDe7v700W0000WDRMF01004JC67njHq0ICaS83qY1010000UDdVLnejUyNT236NH7IdiecA0 -CV0YJpZPnO8IXJ6ks000WW4000000810G000m0000102002lCBHaF646k7vrnGnVE14000e0 -00000G000WzbR0P00mC0CeME30000E5k7dOR00WeZe7g00008000apdC8YE60080C2C31Wdm -dnFy1d10a00c3nWdrD0020qwn6iVy3LSlnCx604r0eUFCQUeY5jL100AGa2608W00GWG0002 -0041001400204a5U20280MvOZCkJ8wQ3QdGYKtD0400HtTCqJX4jaRGMSCagN20088UdnWcz -C0W0000Y8Y@@D00X0m@@g00OTu@VI001000020004mHr6SZV80001W400088000001000400 -G000X00020W8Y0008dW08004040@@h2BF1W@@b000mm3YF0000404W1W8214200N4x10022H -4H00040_ht00010Xy9X88201880x_V2000IS100ZYI2008YDOCG4000W81W@@t004H4Y8E44 -000VKoGXT900100002400W0W0047xdGmvU00Otx@@G0208040000412000aGdb8G59WC00Wv -W001000i40Wn9D000emcO6WPc100m8W0Oc02o8Gphinx@F0GD1uYrD0200000020A001000C -h2WWGG042p00WW2ONpD00G4OcP001A282000e2000GK0003400W0eaB30004WW01200500G4 -00001BsRmEZU0000pa00GkVUyub100400e80056400000885W@@z00095000000904200040 -002X00040004IeGkV0000IoCX000000Gzv@@O001400G0000Gg@@DWK00000GWQyh0K00mc8 -FG040OHR6W100080006O0GOuF4Y63N@l1O95W@@h00X00G010X100NdQGFf6S3x9ZbRW0100 -CGn040Y280bWW6C2vG930W06Cgh100m10100dpN5PX9XU10W@@h00802000K020200010004 -10O0eN79YarW4rV000800044000502001488g0400126001000482000082W04Fg4h2v100P -jHQz000W0400mGXRXD000sM1000E00141005sWGGOsBKP2G1WKl040000233F1G00000KHoS -X40nA0@@B108m00200Q00008040000056G000y50O30LaRmqj9KYi1050W_@d104U0OMr0Ga -xO2000ow000p00WkXJ000eAcfmVa3UL20er50v0y@V2eA00c_V3000SXli100m@stC00U000 -0uJ10wh20uv18000Cy1e_OFW1000301WtWV0@0x000_100W3000S100q1u0W1mE2ZmmD0040 -00G000W0mXj520WqpnCg0000n103000W083W1G720WC40v3a0000qIoJ8Q03ol81000000WC -5WgmB0Gh7L000WM7Wmmb00w3kC30HS70KXXJbA3G1w70YsbI000WdtcUBB_@3000uCk39bBa -Yms6000000WU@@d10084jEQm@@BrmaAT@Z1er4Wbz7h2T6UZRc85U0G00Ikw5DRk1P2PGmAF -KK1C00O8xUNY2wheJT340014hk7LjPmazI800000G0Gmv6G004uiN3gz33W000VZRGXx608S -1uIjMwMaa6pJ0100K1_6auj1BdpmjuFKc@6000mNELY2wh8I1Ls9VZPgJ0200mozaSYk100E -zE_tWW@TgKS9wspWj1j1Cn0mvusCcS8Tbn0000XjvD8_V3G800KrlA0002nE00a1ZGR8kHgE -6CdEF00OHJILhMupfW@70DF0i3lJpk@010202040NZyW000W6VK1000le10X2xZQhP38000W -000Oa@44e00a_l1000IMwl500MqXKGLLR60W00000W0W020I100000405K0a8k100100902a -xlA0H80w7t04100jlLn25s00G0000e0G000A004W00GY0@108Y8@Rg2000Kt000F@RGwtCat -FF40Qm00009W00008O10Y00G8W0006001C000O010W500000D80CTqs20WqC0018@@R002GW -3NM2620mjoC8000eTJ32@O60Q400C00AxZXCe@10K80010qyEJ004G0G0Q5G00000OH04002 -0001G0G13800Ws00HSf2PeGWK1O8FgkIB@XQiF100hIYsE100EuGH30E00afe10@00IWB10W -1m802mT00WqsM2f20JBtY67UQLn130W3amso9hwGUztWSnJ0200GSO6C7B9d_Rm@@60aW1OJ -kJ2zcXUlDeXkP0000M57C000GL200KJr6HAi4030W7jF1004mcwC00m9AXyJcA@Xa_DOlyD0 -0W00800ysV300W0izL83np0044WrdP0mR1GsyOKxF3fr6I0z600100001mEu6G0G40210G4x -CaCa100000Y020000P3U6EVF10042XERGJD604400000XF10mGyt00001020agSUW000G7dR -Krl1000C2i910W0W1_R0104WD@J000Am3@FSyV2040A67t04004000000irrdU8402000000 -022OQy4Agl24000HfRmf@9082euoU980000002eSKCG000kVF3a00100000kO0uMV600K0CG -n6NTHLnOR00028243K000KF6INPx10H0WY2DukzDAztWgvDOgV3002000R_0000HrX6iXZP0 -002sotW3kzefy400000Ao1uN@4_KtWI50xBmD2y@Xu_D0000g1X0WsLTQr@A_poWUzDW00WG -6R94DF608000010yyl100ax7fFXWRo9CVI000Y43N2vHRm3_I0000iZU3YXC12000440000X -02G010W0WG4GFKGhJ00010G00GA20erU3000Xail1lmNnut60H100000W80G0000yS000000 -WG0f0000WGC09aaRKG040000W08000000IftCixj40004W000000C02000000K0W0000A8Z1 -8108W1n0amalE100W2800O0_60W00W00000408K000R_B1K040104X02400054G2Z0e@R308 -D4X40000GPeY0008O10020uM6qWGSr2080mnG64GT5W082Ykt000W000G2W00C200W4a1GmN -q6qdI2R87LMS60G208aV3001200000140Gl_IW084G00q000G010G40002000H0W6000GQ3A -0G41GQ30201Y1m000G00e10kzugDaR9t_40yi0i8zO6200W10000G00600mbt60004u4T3wb -c10CGa4Go89WCWG0D1n0o0g1Y4434f00008at1HI0lZa0o0E1a44383868I0MjmW@h1hxQ32 -fx1L500_F8cnCLCZPm3t@0ulWmCJ110000kILLG0u@WO6pK1W@1FSCJLL220004p0CPN_Jzp -m1qC4Vj70008P900CNNEzaRmPIW10m3gLTdU3@azrPOsuG0tr04jLEzax1000n5eD0200041 -0WVpP0000OizL4rI29f_m2wXyak1NvRmyq6yFj1zfdm@xO4Hf1xrpW841WHxJ0020Gbz600G -00GW0000203020hyRGMhF00uGw@V3knnWG@TIW40020000404@@dW010WsrD0WG00C00WGiP -OUR308000GW0uz@70d50i@79t18HhXdaLl1zhQGemL000040G0800020W04V9K1000MS000V -zRGO@ayJO5N@BK3@FaJl1G48088000141000CsG65DhV2BxaGs@XG00GW002mMvL00We0008 -Y0GG40GWa4100Oem0akDItR7IVwO0020000GmxaCaNl1RJR0000K5300Tgho6zC4PVBbuN10 -00Zqtt0000OL@6000svCpMYktZPet0200mzn9y@l1088100m4q7V2P@p00W0G000p220XH10 -YWP000eV1mhdjCSQ2xoPmHzC000A8Y@MG002akL2raaGr@6Oa0000000XH00bW100008O200 -4dcA5Qx100W80828FnZ100GW5MPu3Q38bG0000002G1000GaVkb88S3000h_UJBh_Rmiu6iJ -@3pZRGMsO0W0020W8skzF000G0CA0008AW3yz0Wf3GnNaW800P0Q30200000G08Y00408W0C -UuKV3Ur73000Gf0@0u010O000I0004012200800WWmZ2I4lk12100oNY4W020W2000082KF1 -3lvdGW_600O08LELkut0200840080A00aQ@600cjw5lbE@POPx4k@tWgjt8GL6_@F1KO0W00 -uN000W00201G0010000a200@@p000m6W00BI0000ET0CfE900W4G00020088Wk4c8cXJmD00 -KO0200mioFf3w4W900ymk40UU000@Guk0m0_1m0000crfL10C3@@@OW8Y0000GL2rO0000Pt -Q9Y5t00W1O0W9mT0007ly3m000W1W1S8d100aKhpc4WC000O00gdpWH0Iu@V6G50002mE8hS -F0006a@@90G4t100i2Cy305q70M1000WE0r9srZj21000KA00mfvobJ_3xvx1009@Qh3fVst -s_N2W9F055RpGIUqcy6dcRm@tCi5l7000WRDPZquv9XS32esWcKJ01020010W8OC8aUCwZdX -fcD000F@_yO0201uYU30010iO530040_ftWJdhubE3080000K2W000GNw6yLE300W00208G0 -00yhL3QA@1W000pZdmg_90mQ0u@VC80G0zET201008W00aFk10808EdcX8TV00010002800W -04K04000CSgV2208000102080000GOxv6SHF6m0002@tWc0C00005H10Whfh040WHd@60020 -OC83W000yGd14060knkbMzDOo@4G200G0000G20Gys9qkV2JMN100Wyn_t040000W0WVxV00 -W0m7@Cqwl1v_pmjx9KWU20100AtFXHjVG00WGj@X0o_080zAgdtWbvPuiR34000CRV2Y000A -_ebiPJe6@420dXXyn000O1r10WL_nu5M3MXt004004W0802X40000CSVFcZdXUzJ8hU6wztW -41F10000006lcJy0004GUyC80002000K0wUasl10020gCKYUmJOwzM0Ku0CC@68W0G004008 -80m0000W0000W00zidm9q6Cql400WWW000iGl100W8wed10008G0002toWTXD000GGcz9qJF -6Vq_m@@90014PaQ3W1100001400C00000a0038GX2040WOW002000q3zO0080004W0000miy -DunJ3W000qyT24004cmZaw@J00mVt5@O4Qb1020150202000GWK00404801e07vR00800091 -0@qNHdA6K1d1@@p00a2WSsC0800mUz90A00O9uG0nt0qI864G80Y6m0000H000e0008000WY -G00mw76030Wu2E3_@@10043080WI@pWfsCuxr7W102ya@30104cys3F200NyZ1C00020W8bD -a0O200000CK0000880aql1PkOm@@L0W22OcC6W00000W202e0mg_9080WCB_4Yst02008@_N -10W1nAth8aX400H0000W10000O60WldDGC00mP@64_76Pv62006082001hO0W00WwhDed_4M -_N2WK70r@Bn1j9im83lq_GX@O002582S6G80010080520800b0010WzXR010000s0400000A -00L7t61IbWb10Wv@b0560OnR60020000G800000O2D00040e904ql10000G088P500ua@M00 -y000000W16GsrC0000Swn46_l200v9p@B100mV1820J1c00000U00008v0GEv1000G600Gjg -V5WnVDey@AESt0w00000000G80a0N2000m10L00080r0002100WodC02030804WKfO8uV90R -L0i_l40O00w4m0088860304200f000WG000g000O0A000e2m50000mFu@VFyl@0000KW200G -r@I004Hy@@7YlR3000KU700Arp3Y3Uc20Hk5Wu_B000G0aJEH000WIF0ZYtxLTdK7E3bI@mO -yF00000q31m2pRaGU200G0AOBd5tdS7TIkE_1G000Nxd0002WbqV000FSALXqwk1pxV200W0 -00G04400MiEXlKO8zV3m000iHj40W20Uf63GXA0D5xnAwCKa_3ZflHOgIqDh100W0800GqNl -10GG0oyF10W203r@GNzCuVG0usT9wUtWvOD000CGkz9S9W1Pi7I@06yEQ2nWdm5II4yz6txd -00WXbFZheSV36wtWRmnOUUCI_tWpWPuxV60G00G50001000008eMwJ000G10e0WWwn0Ox2u6 -_R80000200GW490044StZadC8vI6_VaY@3vu@FI_lZb@tev@CUQ@3JFsvtWZ_DegRI00akan -DLW020wKJ2004W0008sHE1W010W00000W0aYF3Dm@mAy60oT1ORQ9U1j21000bKZnYvFKJQ2 -0000t0dXE0C000I0002WpzJexfD_Qs0000Cq500c5@XxIFPJxDkzgY64U0002Kcv6SRF3zcN -100vrTjRfAJIG4028414W000008G0a8I10G001W0000G0WG080010021G000G000X820K100 -000G4GWDfDuKw400G08000G000Ony90wk0uNT30AG0y@l104102_s000020010W000qtR2G0 -W06Dd410C2004002o024G01G032W300G50A0P2G02C80641H0W8e000K008020005eW00K00 -000208244G8280C000001000050008008G00K80144000WG40028042G000000IzuR000HK0 -000040GIGrWayb0W0G0400WjqPOET60W020W080X00021YGGGeG60208004100W02418Y00O -00W0048000428200200G000060001000W80W21G80u5K30Gm00WG00W0100000GG0000ki00 -10aOh1@@d00G4000G000G001010W00uu2300008W00G0000000404017wl1W0GKY000802G0 -002048W202310WW0I0290400910aGK0G02K00GW040m1001aG0412000010004000XEoDeS@ -4G10GW201000008D50G010W02001G0WG00080008G0GW000004WggpZMXPeOO60W8400W00W -0W0G04aLhD0C000W06Wm9OW000800012mW0lvQGYz60800OcR6I@r00060000815000400OE -N3000a4@F65ch21W1020W00H43G80O020G08G4014001W8809000404_@l1G140W20000001 -0WCmHr600048rV9W000010000Mz1000000240002ojtWrvDW400GU09804GOP@M0G02A0W20 -80001003G2400000032000100101000a0H0C1a0000092acj1lnRGq@U0eE0uUV30G810002 -40e0sRx9iCQEW1WWEan0W8W1H@R0000280480m000081iZk1V@RGOy9a@V2rrRGSxC0000KB -0WGe@900G0101000020042008106UdXh3y8gV6m0J4GnW02HHX1I01828092ImW88n100G4X -WW00EO0H2H0W204402m2Y0WGm005002Y000G1010W0000Dul10840knF11000460000mV301 -W0080000G2a000eIg8C2H49840OCZ7UzEX65814034194G4GGW2a2i4324002100WKC5H045 -W2800a0W2841H0O0004Y08008052080X_@t0a800GW00Yxd180W0F_R08t10000005200828 -Shl1G4HA040A200euo_48W00Kjk7@@p00WC00002WIA00008G41000000P1H00W20800f808 -00403WK000m00WDXC08285Y00WwHC0a0W0f0000002WI000000H0fW4008W00GA0004a6000 -00GGAW0Ot@40W12100000W84f0000W00aY000WGIjzj1Rpg2GK000K400100W00080G0G000 -4GG0410G0W0140004810000G000204WWW2000HG44046l1tTR0G00000120H10W0Pa10G000 -mLQdy6yaa1x@RW9m0000000034820080001GY00CG0WKh9ft@404O080G0K1W1860A4G0K80 -X8c00W81k10G000441gWz@D038Wc0G080G0002080C0B4Ql1004000G14sZ1221C060G0E00 -0Ke80E0008040o8606Cm000030u1O02eH803B0G12000823012404GInN5G8ae001e9W0002 -14444H08400004340800a4C009X0A842Y000008G06000004GO00grq42wt00008400G0W2G -200840040000O_200400GwfmWQLJ0G488180mbKJupwMGX0W20oD1G00810040001CXG00G3 -4u0010Gl0mLH600A5000082eq0000eQ080odr0GG0101uLGW0020WCP_A3040KW0201ul000 -WFRGG080WyL0400002010000Rq34ij25i1O0W_B210000XW040e00400eU100Ixz40yJ5000 -018CmmNJE01000tT00tf200u00St1_XTsfI0JuBJ00000mN0000000VP2GXdg0000Gax5ft0 -uf3m@@600o9700eAWMF0WNL0W700E_d100W1yF00o1@40S000WB0006W30C0M1w0g100K300 -06000W10003G10LjR0CqL000O00003I1m0w30H0T0C08000y30003000W000W08003WH06Wx -000t1000000EfK000WB0006030C0t1O0e000S7000E000e900mFm106WV0C0t000s1zbhYW2 -uE70mNc0exS0Y82000N0kx0005000m3v@R000e20000W8Y0y3004bS2JSNH7v90088000mFc -100000eg7000F4xA0goK0C3mm@Cm03086kPkiEXoctebiJ0sy0i@jMXGpmts9CcT2008023M -YckPeiR30000fV00OYxA00W04pV2Bpeoezm4O39004fJKFgJoD8CB3000008088zP6w_FX3k -VexyAgEt0Gm90rQLHa2CKAN5@@Z10402e0022020104G0GWGWWG840O40e008002C0020000 -304000G44mRrD0C00KcR6000W8r03000GjtE30010000GhV0Gejx4cTlYnw8PNl700G86yk1 -0100000Y00I11GWW8214KW4e04000fA080G824A02CG1C000G900GWW08A0H084G822404KW -20W20000800GK0040W00G10000xlG000WG8000G4000100X0WxiD00W0G1w60400uaU36LtZ -0wJ000G80340884W0400110G1120400C8SG4G000WG4a0900821034001804I200040GG00W -W00e0G002G20008011X00001C02000GOM13000120000iu0W000WRuCulE3ImFXF6Dey_4cN -@400000208400002000400080W8H000010OG2I01G0022000W8204G4C004W058W0400I000 -08802800WG22200001OG0u6130G80000W00010000QwA000W08000G010W8J93EeNYgwse9E -9002201080WW000C40020W04W1A5q00028000200080002480000H2Ge0005lRmpx60W10Oo -V3_T@100amrAOmByCSpv6LqdmYX6yAV502GW10O0010u100004044020404IXG8W08000004 -04GG020000o0000000060X0000W0W022002HpNHv_6mqq1uXT66wt010G0V_@Gfz94zl1rAi -1001040000090G400m2W0220G08000001009000W000404480W80W000W40W0W0400HKqk10 -G0G0020koV23wR008000800000mWE00Cy@30W10Est00W01BKeIr@90G0WOfV300WGaqG200 -02G00W0280G0000010aj@I01K0nQ_C4AP500kGJfl20400nuRmF_9000W8_@4YoV3000DY84 -b0aKWG8W806GK51841Y40G023k458I8Oe220H4ZO04K0M0Ee024DQ8H0G00yA130000eG02G -m00W020WMyDG000000GWYLD0a03W000WT_J000C200eK10G8G0040001451300G0_@8X6xz0 -XG080O4244CHO10W44D0W4880G0004H10008W8000e0080A0G0101090G8a6Gem004016C0W -100008GJBI0W000000jpH0WG@P00GWmm@60180enV908000040eoE3400HCkF6005e2Rp0I1 -9a00GcWaK0G0000AI95Y0W0P8eK8300W02WG80O00002fa200GWCOIA00908G40a20W00G0G -Wh1C0K00G@@600W5lrK380100004WG00001008840W0000Y021000Oym4Iar0014000W00WG -0000IOCLC4000Syc1C20Ge00eeX0018Y400002W0Y8008Wm0810044G00W10G1000080H400 -4G1045K0261Gy9600GGuCr4YYp0mJE0G000002W080000WWHql643d1G030000WyeB3RyQ00 -01WvuCu@VC0mW0881n0032000K04X1W4Y10H4HGH0A0200082Fm2K8WWme1Z0006W1mC4004 -0GW0O0101oW1e8W5G00YWw@V30WW5W8000044GWK68T0WgrL3040500W32Ju102W0802PObj -_00110C000XyQ008000G1W@@Z100WH00C4GGG9102100011WC010X80211A88020aW000002 -5e000000028e200W880C0I485000WW8GY0Vb01G00G40000xjJKm04W80000GJ4PmTLU43t6 -00010k90bxc10W23G08Wx5AC0e0mkN42003050180GnD000GV1560800@5010u0W0G040Ku2 -001vlG830000q000040G0001080000GA0000WG9160G00G3000W0000040eW6422uUX2GYbp -WuUO0400000LaAZD0G0G10000WI00@@B10S000CH000Gt10W000018WN3000tv00kp10WBS1 -0000000W2wZasWtGD0n53mWA6y@F6o100_@t300WPL98n@@Re000WY000C060O0S1vkPGMS6 -000u2u0e9mFG5XV00Up000m1000C000O0E0y6S7W1uE0WsP000CBf1WG70m48300W9u@V300 -aX56d1W040e98YG7mD00WVGiS6000a1u0W0G4000H00v4R00G000W0m003WG00W7n66000L1 -0ea3WxE000000K0mieD0Wg0WVg80VDXVO200010G8Y0000000C0u7L0mNc000Aum30000Wi0 -0_@F18Y80G4H000000050u@@4UYqWr9au@@Ps1FXAb896E60700iFk7hcx4004WUhJO@S3Aq -qWBqh8oR300CvFikM@@Z4m45Wje8P7_Y0002yYa1nddmYy6aVb1PxX1000U4300zu55001W5 -gC000000G80G00000H800802040m000m_MC0100u6_4wgu10008080G000000WTT203ontWo -xJ86S6ohhbWnO0e000001000010050012008100000800W000GW2000002000G0ya@40010S -pF60c70M0FXK_Pu1z4YGE10080f8ZHy@FKhj1G0Wec_t0048000000800300GOrD3MSt0500 -008006kFXynIetj40401080000008610Wb0I82R6ALWXdyDe2R3gj7600G0000900E4SLa1n -qP0c00W1kJeX@4k64300et3@R0002000W4D4CJhzLa8@3ntdWG00WkdtOWEC0h1048oOb_dW -0000000GW410sK_X1Gt000OZF10W4zUuzaVAzFXH_b000020004W901G450cJlYFuIuoV600 -Ca3W04OOL3c8aXEFlI000GIy6ySv6RbB1mT5WbKZY000mFZ94cA3000CoTt03CH0pP@m8z60 -010uiH90000nS00OBE30008amV2NPsIHDa4Fl10W4400082LCW1GG0nI_LiPa1tD_00WeM0G -005lzmhf9qCxFBz@0e00000010GA0080YaaZ40001000m21e00029001000840L@d0OE4G00 -02010XoscXs@DenU3Yc5c@pD81TC00W0010q8vo7000W00H00080mym606GWOMQ32nF1h110 -08000061K5d1ltdmYy6SRKE@fzmwi6Sbl10W00Xe1Oa@@300A0000WG082w@V3MspWh@D00m -@4A00eZSVuQq4guUckEs008004W100G0002820601ScS5L3bmm@C0y408Oq7k9udQLJ8b@70 -0GY000001002W0W2o0000b20UCd10GW00000G0H40G00mB00mvfC0000dUK20000K4040je_ -0008X3fifhC3Y_j200wh000000L1CsV8003CMzF1000NTka0O00WGf5wgL3o8k20W00003WH -04Wx000emS6010000G6eoL3000G000m08000mE2WL@J0KuOIUY60S0G87x7s3WXDiB200u0@ -100mZ8u20k840H0aslAmq@0gUZd2q630mY@AzdSjDLpVbmj@60I00uq@A0Tx0avz99m1sdsO -00002E00G0FpSYJEXV@misCC5F600cs_rwazrL9gy4Q@E100101nQ00G0000I0G0W02GdXGj -D82T3wsl2mJ60@6BnAJyykk1040000W02001OqO3__t0008WG00OIutWroDusM3whJYahU8Q -w4sQKb@hn0400800000044zmR000900100rkPGv@600GK000044G088001@@R000Wa7_D0G0 -1mttO00GNRRxJAvMYbsV0000KQtCqOl1Rrd0008Wv@D0m00mrzFiOF3nfN1uE4Wi7GgH_D_z -_XkYQ1000Xm00WQuOB5qP0W10dKWeW@U0gVBgAJzug@DQel2000qW600w6He_z3Pqv4sntWM -6n8ryA0086aKWJRjzpc@L0yn0OMFd2wV320209@dmwyRqfl11wd0000C8300r4WKdS9qzu6v -zdmJrR01008wI600WBSQxF5fzG0eL000W2W000W20WwNJuS_4A_NYe0Ce_V600j0CqZG4082 -M1yahviny00mEmW1008W403mF@F8100uhV9GW00_ul4000EVyyd0vO0140G_0LSPZeXlP091 -0WL_D0400000HWe0me9E3o2xXzjDezlV000WO080eHEL00u1ivjA002SkgMh8b4AwV30DC04 -gjMttRm9@L0001OLy4IotWIgn00005g00WJonuFh4_CtcJBzuzy4Yyt0W000NLZ1006qZjtu -iyP_v_X4eD8VlPg@d1GH80B_nJkXcHF00uTzDIitWAxFfZuM6ttWay910mMVsEX0W00uRVI0 -002qgQBrph2mW0WzdG2010OCapaaV8000Wy100azW700020001aN5LTl9wcsgGyk1ulieENm -_40t30G0HR@a0iz1uElVYd5C000GM3002f0F0008HM_Gu@L00ewOzFgAyL5G040Z_72Gi2W0 -uQ95Aa00000GG08QcJC2004F2UploGr@R00usONhwMdt000A0NF420000G860d@VIiSLKaZt -0e000060aFx3X_NHQk64Gt9no9Hmzy000O_Dhzg7t9000KfKAKqG@VJ_RPdpZ510W_Z@40Wt -z_ygqtk1J9SInw6aGk4G0000G004NV23sdm8x6aMU5WV00gr@a7t3vu@7A@tWLvV8_S38000 -iDV2jp@GPuI000WH_00mWsdaOF3fJ4rzyR00GEfVPLoUmZiCYQ@@40Xd0SIu3DyLngur5Yl1 -00WPXD00qhD9pF_M0_6y@l100WtoUdaRhMgcDg000G20000001IwForSl1000G3aoWqxhu6V -300m000WH8UCIMWDgpfD00G@xCxR000G8aYwIYt0XG20000280000Eq1OP7F0WG00I00uHnt -Qns011000004000GJN00O_LFm000qcnU200000Ss4JR80W80Yz0lGyD0S93maiRaBN2RhL70 -A0000G2000me740KSy6G000000K00000WD0GTbxjnj100H0_@N20G015bZ700G40000U8000 -0000C398mV3sek20OC00020500WiZwU000uO900y@@6a100000000AyVspekzN500Vw@WKqs -rR4HDCjXpGXu60MR0uGR9AJVZ1j9fny7MOhbzwPe3T3000mBC008k6Xo@lB00g@@QAnzsRSf -uIjpg2eb2W36QPAiD0G004TTB7y72400000G0000eBxh550007_YKOud001000WFJ@Wg000G -OxXhkilYa_J0uX0mLwsyc_3PFCpW@guJ00erVFYougy_L10mnvLUibFlD0Z3GUSaXZVJeXQ9 -Y2GYK0euGUx100WBQ00u3pA2es0W000nUdGK0Ri3HN00Ib30IY_xDeSy7Y2gYyWuv@VLc5_X -dXt8A09o3GbR_@f8E3w0mXe0E9F0L_@@@vjF4O43mcLyixy@vM@@jt@ddFdW40050000m00u -@V3w0m010O0f0G10G0G1000001800000m0W850Ag48Xa2SIW402Y09G00088I420001Y0H80 -816OA0K45m9pvJ5892019I200004aW0000W4H220HI0oK0e8AWJ2n@@@@dl6U302W0000000 -00500000W20N0amiyd00060000000XWX4h0KF1m@@CeU2085W72vCawvD0m30Guu90600uUS -600080O00u@V6W0m0a2m3_0Q200000G017z5q40000V100df1PI16000e01WJVI1cH020eWI -IE@N200zmZp9Amz3WXv5ARMm28rWdPHgvrP_xF400zaJfzVDrRisV2J0amZ@O0000sr00GV3 -dqQEI0002YeFXHwJOszD00SWbphYD_Z1Ol5W928SU_wETT908cZN58Ae97WZy1Bf0XmA00ay -VNbjB400ci5KqAi4a0050ie0Ol_84F00WHPwg@5XIAGhatD0000oGD21QN0usCpIpW7A100x -Zq528000q00b_o30WEY5Rv70G000W042008tmPGqCymU00uiSj00u1S9lG002SMLlkEoJef_ -4o_V3GZE0@RnMjxp000WB6k765sC000mt_h20W3ZywJRRiS0SC0iT4Xpgdm9PI000WnY00m4 -U8zg0IjnPm@j6004000GQr4XjaEN2PpLHAW94O899kX1100W40881H36ap0f3007IeIVYCy4 -tIttx100bcEWMwtkh01o04_F38001Me7I00W0Q200U8qffz@@@@C100mQU008yq40004S_m@ -@@d3807W@@J0008KI1Y20C0u@@910S4MJD33tQG39G2C01u@V60100cDdGpDv40004D200rE -p0A40000811ltOePFaaMHBx75Ol0WnCO0O70mun@@@lD00wS_@NKG1A0ft9HHSRKWy3FoPsR -zfzxSE00migr3ZLEhuCR9gxibGpPOIJ3wqaX6tDeyS90QZ00010wCqG0500CokGbhp0002eV -5huhK9000WmQ00eUr4o6tWd_Jutq7W0G0CVg40140QUS6000004G0dVjY23b00GGMmu90001 -000G0000eeOJeH360004yc33fIQ0000YfDUOVVFohNYwKPOaSC0v@0iUV2l_l1O00Wgu1RUz -A000100004c00mMuGcPF302000WLcy8gG1vp02G0Wvpdv3RF0UE0CjzFnCcGzwvG000Ot@A4 -0008W008RM3MzkeCFjX000002G00400Nopmou90902G80000WuG0400pZd3021WM_Duh_4Mw -tWemX100WmuzI0040000011000GCC0PRBqkw9KdPBFucmEx600H0u@V60WG0008000884000 -0y2007k@3140WrTbOSzJgbsWBih0600040000W1000_qMSd70W0000046WtW8hVG100GUha0 -000w7v4caF1042000011m0Gy4Y1W8N00500yCVE004000W02000200Auy@miwp3nYB1004Ww -eCmh00G@uvyiS20080wqt00G0080006Kb40010DDRGLp6W010u2t42WB120080_50004RY01 -0SbrSGW80200Q00002004WsoDuhl4_@F48200F0Sm@@L000mC0keI5812000W000AXF40G00 -001000005Bk16000Uxc1O000m0i300u6000000Wzi100WK18v@@Ao3m0o020O24100G44a09 -fJr20C3000000fT0_@leE1C8yHm_@F10900huA4020Xhen0400mpfOKAE3hQO0800000FEDX -pGM@jyEi11@@GtuK1Uk1OLvVMTdXZtJ000GGTzIifi100800G00a7U5FenGNy602G000001I -10WBcJuCpb8000sIl1vXdmsp6GG00O4S36b8XBxD0W00uauO00mWVWy4cH@XGZU8MQ90800i -CT2xqd00080012000000G400000G00W00110002001406QB110G0010008012040100220G8 -WogD0014nTr600G00A0044004e02000000HL0CQj10840A@sWjfge@Q9ApdX3oD86R3YJtW_ -qD0008000W40200viP0004200800W020W0G000000a00000000140W0000W00G8001a0m@@6 -020400020004YDzD0c00GAD901008rZ42UdXhtPOm@4G000irD3O000ECrWhuC000Gpt@6G0 -008tK3g@tWwtJW00H000G00208@CM10W0008000W00080000mwRCU3UG7ZE@au5o4IdFXlw9 -fJI9kyN5G3A07e7oP_mq5e10400MHF1040W0001I18XWRDW802GrF60000fP@4Y28Xl_J000 -CED1000202fQnGuwOqoY1lYRpz46yN@6DMmmmzF00eZVyV6sF_XTuDe8UFUuNYlQJ00W000G -002000n8y044GW9@bG020GleFaDQ20wV0M@@110007i@pR76040000W0Gd@604a1PeX40202 -ypl18040Y6nWfyJe303cS81W000000100003B020800KpT90006100GqnVL0110u@V9YzoWb -1t8zg4MMsWFGC0100GNd9Kpl140H2UYyXr8J00WBTg9CK@V5LjE300I90G20TZQWI0000184 -G400eaI0820W4Y010000H00WID0O0W0820410K20000a100W00082000280410G40WYWn001 -00WAR0002000WK20000cGGe9Ib0020mu5CKAk4dVom@@6WG000140WW0mKYG000000100402 -0C000G0200K08Y180000W10002K85W40A040050W8W0GA090K0C00400500K0001000WT808 -G0000140000G02W10PdA1408eInzuDt7026m00700W0010000W4m0ZRP0fW00OK442020001 -W9YHG0W4410811G0S000a80100W0GmW1G112G004004003W000G0000100G002048W4000Me -10NG0020WW10I8l9irh4d1Q0G00X@@D0500m@@CqQA3TwO000G00110001e010000W00W9G0 -8000GG4OW00H0AG000040G48e01020G0W008800001A104020600CG00100G0g0440G4080G -120GG440000Wn000040KHX1008000Y02041OKO90010000381NI00L20G0Gb981020800W80 -W3W000WYWER8600_241W00K80G40uGIX00mLW394000N1H0GC0A40410TI8000a9m10200GY -W80v1m0000M1HZ0840WP2W0Slk1e00000a4KlE300029000002eW002GbuI0000A1H3gGd10 -i00_700yFLL1UggoYOcf5XFJB2m@MaPcX90@30@XF5030VLB2W@N4ymJ50_7JP2FLH1yW@nC -JCZPcM4pCj8p00000JL92W@1000Gb@y70000t@F6E6lnR0000y@@z000S000030K0J0l0c0C -HC1OY00m41W2E205uD0AmFmL0JWx8@06H00kZ0e041G1O2W2u7m5mRmF2JWV400ceK0C005m -4WBWfy0IG1000mLw80K0N00040E0K1O200e20m@@C0011000uHqv6u00006000003WNth0m4 -0GywQDgF3000rjU00y@lGJpR0400XNALfdsD00qF4RxFTSlHct6C2f100000081M2d1zDR04 -00gqyD00G20G00W0zDOnA3oZp00W04HFR0Wm3W_dVe9y4o1FXZ_DeXQ32axaDY89OFLIIrZ2 -pJ8tzDwu6ZVAD8IX4000GGG00G004mws64fG2008GpenW7rD8HU302008002enB300uqD@@3 -8040Ed@XPjP8GEL0040CJg1hZzmOS6CuE301G80808sJk450Q00000m41000000W40C3l100 -0Gk1@aynb8BS6W08000G20W8W00G04W200001G0080040010a0e0G80W008000G10A8_gX10 -8200G48G00020100KG10040000a00080040G08040000SA508G000008000G002442000080 -G0haBHRQ9KpU8@fR0010G08G0000000Wq4YV20W204094000040G00084WmyJWm00m@@6W00 -Wu8@4000G00110000000jh7mJ000G0484001C0NpBHKy6S3k4HgX108000004G0818004y_k -1W008YxtWtQC00000W0W0YG0080000440020u11e000100080X@_R0200YC3C01000uC600G -000GG8M4mWLgO8x1UYXxaFuDewz40009q6X4000uq100C4kJJqRGjh6Crl10G00W0a004100 -G02mAG6000GeqV3oYBXXzJ02200408WA@JW000006SB00100W306mv1G000XuHoQw9alh7jl -@GYO9y@V20001YvN2000GvcR0ul5WZr_fy@70024iOF30480YrpWxwJ8Bk4kpA1W000nmPG1 -_IG0000000Bx10aEtPOi0X8WYW4_M2x_R0040441200IG008800200fRD300812000a0020G -200022020G000000W21ODE3Iwt0Z400001000e@20WG0081mVCgSOeA8000000y002000200 -800m@@J003I00400I000roRmn@6G1288A_40020K3Y1d8R00p00K000a000Ujt00001000I2 -fGb8Ga0002W8000Af40W0001aI0004C120e40W0n4uC00c09b00I84G20G90004000WK20H0 -W40G9000W4AG0e4000100WIA1010000f4W00G4000A000W5g0W00001294000W400G4100a0 -G0e40000002GDpPGP@XK5_3a10G1004W00230Q01241080KH9mn0W0WWjED01A0Wm0W04G00 -05021010G10m090G0H0800001WG1G0G8G02P0OcK300mmLpf1O00500X0W00410W1ntx6a5d -1C000cyF4G820x@d000u8K09WG0GG4G400020G001X3815WH0GW0W004mH820100W0W10G26 -011800G001mHG8Y08000GX83GG01m0mHW0E03101G4W000800W82W0W2G0A000KP51Mm0080 -002020YW00We0m4Fr33Wx1011WzhbW40000122G0000ZAma0008GG4GW0110800404440041 -500041020H680100400142IX00Y0GW48W0W10110amuJ0O0fmD_6000WbI0000Wg020W8400 -0ADrWpyJ8BE3_@76qP1n00mNW8043W200Y0G7BA000_2S9mbWY10H0GdDA400z2TIWOW0a98 -20Y18We0I0DM0C0Gz5210G0W00040qW6210eD000WbFKG080WzN84000020XG0032804el24 -00000k805TU8W100osz100GLXlbGkR600@N4pPkOuR9a0N2oSHLfwYCd2G2M40@b8y0qqV20 -Q900000Wg0000000Gs0WUzp100u@x@6aOP200000mH0e0l1G1S1k2y6S7n5uE20mT405e80A -0N0KG2S6mFmF20WVKMS645W10k8kI1810e900WBm1WcWv0T0dH00g10000000ep0000N000k -07080k3u2O410uE00027t080C0Xlv1082WPFau@@A0mFLiuV5Uk80YOFX2sV00GCJ@_600uv -Y700mrtKDWB33@RGdl9aX53V0520000WgD0bv9HSyy0080yUV3W080Cll100G00008908009 -00mcn60G80PPV3A0t0808022000G000020CFS9000WuL10000Wa000004002010WG02y@F30 -G20ATVckfVuqU3000020G0ekR66f@400ISvdlnHlp00009s930G00_cl1RRRW08040W0GrxR -00W0402000W80cws00W0W0W20_PoWLrJOWV36Wt0WIC20000WX0000040024002WWQXQ9dvD -A8r008WWxzN100GmGVD0W000005G00WW400100W8qdC30408001G0000aB00000G02002t8R -GwRLK7c7FL@010040200G104400004K0500000005002G0GW0000W00XG100004W8aN0C00W -W0G008AW00000010G0204808W00Gu11W00000G800W8048000m4D4W00e010000800M80000 -G03404W0WEyD0204G204CYl1pjdGpzU4yk10W00G1002008u6S30800Eel100W0180000201 -W00H5y6020000L110002010002000000200W100240000W20e0G2G100WWF0010I00008000 -e0PyR0140acuJOsT3kTAXQf8PTU30100W00004G0LRm6yYh1xuQmlz60010004A000K0G00W -0W000012009004C4001000M01VAPmiy600872100008H0000800K2G000W0208o_4G000KYO -2ZYZHxGXaKV2HhP00W000G140W4000G00WKW00W010024W008W400dasWYqCWG02000WWjxD -0Gd2mTz6ysl1W000110GiJj1xMHoUvLK5U2tfd0YI0W4zP00002G01001200420g2q0e4000 -1W80200WWW0HW000200W98C00W0100OA50W0o8W08000K1i10GG20m00aoS83yHICbC0004X -100000080W000081_yFX_@DuvV30G010WWW0010OX66izP200sMNgXXE@DeDQFI4t30002vu -nGozCShU2joR0040YVsD0G01000004WG004W8010002002aG0G3z6iwe1WwT0YztWGZVOR_S -0W0YK0U2XzRm6y6020002004W0000020054088800501G8000e01G031W803aH02LXa025g0 -GA0W06800424001W0H002H00005q0W4A2W0K004020G0000200620e0ewNt0002mFtUiCV2Z -mPWf0200002g004KC0020000080200Y1002A00G904442601W01000G040G080400G1100n0 -A631080KI00W000100024000mo600004G1G8G80f3Q0I0008X009Xx100020e00WG00_@l20 -W800G9b0000024L210014b0W4tC8yR30WI00I00000e4080We0C00c14b000800GPlP0WLI9 -0008400X02000040WI0008L2000W02G9X8200000K2a0000004A10000000W204cF64e4IW0 -00W010uNnAo1t0P1GOCW0We0060K088nj40W0AW0000090008G480009WR00oW008208420G -W8020020140004010mG00W004004000WMkA000G084m0000004210SVJ800WW00080mW0000 -GGqzLO08YWY800OA80G0W30eW203W0WdW005000600G1G0G0WW00m8800c04O0GYG00EWOO0 -20W0GXX100800J0020a00G00y0K00008K0G000K10W9040005EE0OG0G089e8Y10000O2000 -K02G000oVAXkzt0G10G6@L008100K240W088042088080Y00208W5G100402G0Y802AH000Y -SDe1Wg00tPr00020AG4088WH0WA0Y00W0H00WpRD088GW0000GI3G0100G200jYl1W0HGkrt -WrwJ87SCsdaXtzP00qP2210GlW80HWRG2S6W21050iR2X00S0008420AO3XWWzNeW5W30sVH -800E0804X005MW0GOtBKO3m1WLl84004031WG0WIJ848e@2000UrIfB050czY000C0O48210 -AeXGWm_B8G2WVIr30Gu10000q000aol4HWR0ufILgYPc_7ymj8uXBH00uyV300ei300gUhz4 -IEp00hE0000@e20000000Y0W8y3000W8000CCx_F100N60F00000000CG4_00Ges2100EA1E -30U1Ud0N2Au00YTp00uDmAmFmT00Wx000m1000l100S1E0y6y3m5u7a2G2000@0E0O0i3y3u -d00mF000000WvuJ000S100y3O0uDmFmFWR000@000m00009181UC8800G4F200F4GHuj0000 -2G0000yra7@J00Wo_NS6000O70000tT00W6V00bz0u@@Gm@@XGy00eg30WWyDm8L7WxE0000 -0W000G1A0WaJTH7SPmmlL4Rc1b@Ani@Cay@300e@R2_XXzDeLn4gtcaI_V00W02AH00m0400 -4G001W00G0WwbV30800zTk10080100020e0us63oxc100201HRGog6CUk1W6A0clpWjaJeuO -6gttWk2W10048000uiaVuEv4_u@XuTz00W00000UZ200R9CpCyU0KGGwzN3008G0080e5I3k -6s0W004DxP0010AW080ldRmk260001000080W100040VHm000ZapkDOBz4oMmWRvP0W01G0j -g0000400A40100W0284400G000040G40002800aD_D020G20008W4W0nrR00008XA0200020 -0K0002e200W00900000040G06SF10C708100YWt00200000100WG00100W0G01000W000000 -0H004I028u903YjN2080090d000W00C80204050010WG442W0W0020WW00c1a000A00aeqmG -021e00G1m2G0HeW8W8W0K98HC300e201084920010304IKO4001WAP01000eC214G10G0000 -03T024OK19u00C0200G20ZI5e654C000m01G00m0C440428kAd105G00081O200G0X0XG140 -0480050GcHq00044080018000W02H0000W0G0K101008WG2E2Clc1K00W0iW002004We0002 -122101O0O45W4022004018C10481G00801W1002GO4WH0080182LG000005201K00O00000K -408465G8X0W40100G00144042C610020004W40G00G4jl1400H8480002O000G020Y800024 -000kNt000010a0080001020W0G8010WZ2AC01008100G200401001WY00008200m21644002 -0020e000I0W0G0WWW201091H1100W8081080G10G10g80000200802GUlt000000J8G0200U -dj1W800WQ0o0500002029010022W8201040mG00XX0G00100YQpD00G0200040030tvRmqT6 -a_l1800000G8_zk1vUb01W00000Y00100W000G01fEU3G000G4000000Ioy6001920008G00 -10802nypGux60H00yti4s_t010000W4008Y000000Q00000W4W80OG8G044W0aH9900WW00C -00W80G2100Y0W012007OO00004G0C0000000Ge10W8W00000G00W40020300114000200040 -W48G00900B80cjtWY_D00J24000O04W000821840000G2940004m8W0G0010000X00W40H81 -A2010m__DuI03kMV3G400ttp0000aCxCuz@4A@pWjnJOhU308W0z2P2lxR0040W6@J0Gd3GO -_9000W080580W0WCZD00200280006000010W0W0igV2HsBntrC004000Y0m7@C04000G00Gt -e60W108iV3000411000400000800420G0000040shl1Zid002000W00000e89W9CgT2TZQ00 -G4WBnC0O00nOS600W4OdV304104Dy65iR0285WKaDWW004418GO002240010g4218W12W0W0 -140G02K00G28022001008000a600H0X0GGK8W8C0012G100Z1G10024W000400C000210000 -TCG66404W0000OG4W0G641Gn802eaGA8300200K10eK00g21AW004XGP810AW0001100200m -00G0mKuF4qG2000W40YY8A440Y0404900000800OGwft0100WW02200W0GG50401010Z0082 -802K00110090CW128000242808Y20W0W800Wm0100Wemu@60KR0000I00X00G40W00000We0 -0229G08G00GcA00006840WWWGe2c12B0G104010002TrdmVcCSOV20808400G000WWI01000 -8G0e410WWe40401G0W000e4WW4H084WK2000G0000b08MS302Y08XGKgo23I1m00f40G4049 -WI000CZG00e4000Ch0049aR0400H0e4a00W0009A1000002e4b000000WK20210W080b0080 -000KGXnyDG900GCSC00200025Ihx900W801Y050W1040400044001o0Wm00m4G00C00OG010 -G11W900Y0500e0002880600X8Y00e0WX1418W802A00X040W10m04G00A00GH0040000xK00 -0e00G2G002003841Ae000100G00nob008W0A0W0W000I1mW6@DODV3YXZ10100m00W0000G0 -4W04m2e8W0000ZW0W0000GO90GK12600e00GW0o4W408G001W0CW0H1046G8M0800440O0K1 -009C4W08e4i0m200L0006GW0C0802004Xe5He0211000w40mH4001Y008G0W862011G04G88 -067e000WG0220008008O06G20GK0XK0i10e000048_rx3L_R04404H006002040048I40000 -000HG4e008G048180G0BG440081W80840Le0W00GY011400200Y0n0080W0G40X2gar0G000 -040H000W08g4G208mZg6uv410400088G8G000GX08X4100X2500001X0W20GY50044H088e0 -H00f02G8_9G080eWMC020102I010al2W00S0HC8G20g8H00WLJW3140GOu6e00GCCS3y2TMW -OW0CMy4GdD5300V1T2GOYu60W408MS30uB000Ot3TsGS2v6GW21WW0G3R8648@25y0S8YbBX -ivCmB4O00100D0001@R00A0000G2@@p0W0W250000j1000000WVK10000lEwV0000egg5I4F -10yFLgYPCbvYOAp5PMuBoCcN40@3E0_dggmCuXRHggoYCNLsu6WAuX70_pCCpSHKLrYO6000 -ziP6EU2egA0XPc920J0ecU3yJ50uk300c020C30Z3aL105000u200e3mXlPW300O51G1XXR0 -k0kWmmh8HS6K0N0a8k1AoFmp6t00000ix80KWt0aD73nozGsS600060008Osj60a141000GC -SC00C000G0E30e5200063Ww530000r10000W90000udA0uBL0mT7004ndV0hE00eYs_DmF00 -mOt6m@@zZAu3eg308P70Y65WTj00JuBp18GE600KW000kp100000mV@300O7ei500000G100 -00W0kx00yr4W8U0vk300CG000c0W@@3000WlfxZ10mCWbtUuRx4omrW_jDOJU6oytWeYJ000 -2nS09KOC301U0628XAvgOspAYtt3G000G0280W4000W0000XGHu602W0000440000010W002 -004W0SBU2000802406Uc10000ZZA100400160000GnH80uMS3008004G00801PNQ6000020G -0q7U9CYc1NPdmj_C4sS2BtToqj9qtF3X_Rmf@I080000Wpr_y9iWk1p@Rm@@LyCd7Rcp0022 -4010A000O000G110000001H01A000Ge00WAooWorD0GG0oOS608800W00OTq60G0Xe4V3000 -G088040000055WYqD00W0200420014W00Godt0G00G9kRmDWCKrT2zqdmmw9ajl10G2000W0 -W103080488008000f042G4A0WW10028O1q_36008240G4GdT60A80G00H0K08WGHD0W00020 -6WJXDe0V3000GvT00O4S34280S5k1@WR0200G0e019PQ004W0008Y610000W00G0WWW00Y00 -0G0AA0400102G0W0006WG00010200040WG08OX00HG15W002034WR1J0W00CGH14800020K0 -W1W0200bI018CG01K18W00GGG9201GO80M9080G050e42000400WeWGG402002AG85000roA -1840iK000a00Gm0aH0b40WaeG0K6W28m032044Wgee002Z08C8KOG810096W0X4WC80B0000 -0825200G8Yq1j1000001C02m0040O0800bO00Wm02B800eWGG0108W00W140WW000XA002e1 -34040C0W0W0000XAX00A000CG0WG0000W42O0K10iE14R014080210G0Y0880000G00I000O -YK1020GYW008GGW02840WO0082G0I001004X0801W00400000H00181880C0100003021110 -2000a4W0000W00G00022100m000W010200004010023100WW0W4000880020000100W00OW0 -02m88080001000Y4004WH000A02G0C048002O8Y2G0022W0000G010588020010000e00800 -G802WG080004r31040GG0000200110H0200Y0G10860G0980104I0r8m00Gg02WAYW0034G3 -C02Y0WG80W820041014WG6A480004W00W0008052G02W010H044WY010G400W0400000139Q -00W02G2100100G4000G80G0Wan9U6aml120000001004W00242001WsxD8DF3W0WGW300000 -mbm0G00W008m0G00240020GG0Y0310G4I0000000801001001m000002040a00010C196ie1 -20G00aW00500ugC3UEo0G000W0G00I0000009oV300022G0e4041mc_6G00000H0e0WG000X -0vIRmty908100808mz@6C@I2vMRWXm10cXW8004W00W1000101K00000001010002804200W -21000202HaW_DWGI0000000W84040040080004000W0H000000600010WW2GC00u2c404400 -0880G040008000090100X0W0C533DpRG5X64EN20084A_FXeFC00008w1000184G00800WK0 -G00Qyy40202020eOzJ308009G20H0e00000iTwDexg40200ySd1WK080000821286_7kmt02 -0G8GG0m0001K2b10800oaZXjkD0000809002000400000002G80vZF300O2DjW1010200G00 -2W00G00102a00G9W4060Mst000W000800G81GGG0000000GWYBoD0080qx@6W20G3W04GB@6 -0008I800000081G4G0G40848304G01GW622GK4020G02HXW2040G001208000100G80HTQ00 -4104G506WAGm00We60400004002002KG24eX18000qdb2IY8WGb26AW16WG04GOW4XA0HG08 -0aW0E0Y21W00eW000406e0Ym200OG09XGGLaG0002E2I8G5HKWI4k0G010O18200001C1W06 -1WK80e00821W4GG82x_t0002000K2007280116GG8aG9K00084Y0a0C31GW6W00300WW00W3 -@D04048000O080Wv@P0010040200G200008000WNl0GX01508G0C010M0CWX00CG02q0C0dG -G0GA20H5XGeWO0OW0W2400W9H1aI8XG60WWAm4W0G0uSU305Y000W000331G140Y2080142K -J4G004100Xe0X0000004K20810c880b8400002KI9Y000G805O200020OWI4000002Af4000 -0WeXI0WG08Y0We40G0000YIK2I00004H900000120K2000Wx0000000AH98100020b820000 -0GG901000W5bK2W00001Gf1@DWI0000009A9aP0000100Y00C0408g4I00WzyCe8d4Ibp000 -06d1Q0000128008004000GW02000085O108004GQ4220820000801Y00080G40W80004Y5d1 -00010G400X00W0000qx1010000I01haO00K010e0880Y20000W02q00001580200W8003200 -000WW80300m1@680800044440801002d@R0H0G000X08m8012200004000K001M04W10Q051 -G00Y3GM4XWO4A0E00108Wu82W0WS1OEG06WWWi2G3028000W2G_et003840004W1m0m9Y140 -8C001e8000yYQ0O02441M00W0WM02Y00C1O08000O0G0908W5W50202Y4W320W40mWH8N004 -07AYe00000GC2m2O0E41W0iGR28010WGW1W800014WOnz60002420W0008K00GG012W0A08q -he1080080202e40109G000eWiED000W8001200Y5I400G01M000W008000404W0H2011000y -700040G210W41H200G2H40G2801060480001441840009808C00G2404W0KA810404Y84002 -092Wafl1W400001041W120200000Y40e09000GR0800E0840W005sWGG8tBKO3W10Sl04006 -021Y00W0R8488z2AC1K0m_B420G10XWG80eW140IYuF4Bk1U1000LxKm6m10vl04007042YG -0W2Rm98ix5AC1e0GUg06aGk101zNG19W21sVXG000884400008XIG0qA4MUZ1FiR00W00002 -uM1000000udA0G5@u7LOITZ10000Wli10lQ40KWpwEXl0000uk3vIBHOu6C203KHT0Y5t000 -0WGm4000W00Ksz5mgxE700815000000KT0@e2005e0wl@100u3Or200g40YW0000K0g@FG1b -TSt@1FaRWx00000000uB0u@@_oa@fIt1ml@3WT6000m000e3u0mRG7WEWVGEu6000q400e3m -1GJWVWV0T0023t00m500mFm10NW76_3Pln0000000AIvYR0T07W4uI8G03I58XK0O00_1E0m -0S7e3W200mT0008000WW000Cy00K1O0C3u200u6SES20700gwd1tT00EuE0000k3yO0000uE -m1e_F@D000yb900WK@V008YF0000G4H0d@R0Oc9R1W@@0uk304mg300y7WL70yxF0y30000m -0yr4W30000cL0GhV6u200cw1Sd3i3Hu3H4@@p00W7600Axyr4p0000Wgw3m@0000W0WFeDeq -iGYXxXOKD8tV9CF0042t6PXJoWvF0G9000G008W0Wc_D00G080X01G080LkQ080020050fIR -GhN6ivl1W10e008G0G00O5R30X40aWk10C0000ur5_V2l2O0004aMpD0WG0GMs6yeU2n@Rmm -P9K8f1bgp0011G000W020GkcbXImb8Ik7oCdX9EPuu@40sc049U5dh3Jnk9Kkj1018GQMt00 -008W00WW0G0saa10040020010G04800uCJ6Czj1fnR0GW0808A000001081y8l10021000Gg -J008TU3oht0010W@oR0804awsD0000ngx6CmT2txR0GW0W5_DeRS3_Rt0G000XrP042000m0 -0000000I8W440uTS3000We80083G3Ekt04101bBR0WeGXPaD02800210WzQCuyU300eJ1400 -008801201008008GKoUs00WG0K11KK0M00GO0G4W2W0GW008000AaY000000aKG80m400001 -040080WICsWFbD00WW000G14WW026a000382KQ004W28025410090G48828500H0X00K04H0 -446W00040028W0GO20AW449KK84000213XGC8W2010m8W02I2804Y29802H00000UP011WGA -K41G815e004GW88012AG18g058W14000mG0H0000020WW28000I014X02feX6410WW04G010 -W010W04020e00GG188406001WW2000000GC080mH1n00012Y0o0020084CJ030010W1CG105 -00oeY00K0840028000typ0a800WO2GCK4S00W8091000YA008m408Y8C010024G008000006 -r052W05600G80O00000W5G1018G0000uGW47088L24000500400WGW800200GGG101220441 -0003000W08W04WW00000G0220G800000W10WsQm0810000120Y8000005G000e0000200001 -8sPt00G00m280Ets021240G200G00080O040200n220002tbO00GI00218040000SK000004 -GC82e01m014WW04018W0G1r00008WG000A49W00044CG0K00001218A2A151e810K4C4G120 -0G00000208W200011800C0K1k1X@d010000202@DBH306SjT2m000ImE10180JfR0W000014 -0HYR00000G0c0mW00805002000100140WH00050021006J01W4481W0W00480140m2008W0z -kl10G24002002050000G9s6001010820cn00200080W0004020002404GN@Fqro3nwQGYo90 -W0600W4000GeaYC00080000aZzDmx09Gz560111K020040080G0000c0044080021000100G -001190004480G04W4001200W8001G00000G0400000G81H040GG0a0000086NtWIFC8_V3ku -rWlkJeLT3W1000Wm2evV30008ClX1FzRG70C0W400001000EZVtDW00090G0G001002080W4 -0KGk1080a000412W1G040040004040G00G00WWa_k1010WX014C1k10040080aqzj10W200G -G04eG51lR0880WqnJOnM6MqnWrBJ08G0000G080000uR0MoqWhmD0600010002140W010014 -000W0W10000000G00Y0018GW002Y0W0020080a280203aR08G0WGvD0000Mvm60100i7P3E8 -qWnpD8US30G0000W00211010G02000DwRmpy6800240WW0001A000402WG02G2100AP6V382 -Y4108K2008015Q088018OG1G0452q8208A18WmW3050eKGmH1a4G84250900800G0O00WWf8 -005000240GG0M1YY08C012002141G8I0G6422820Y0G0o2000H010Y0aud1060010W0090Gu -8V300WG000G68G1005110m40XCR00000882W240G003018W8ioB30000XL20000U10mW8808 -HG4OG008024K128G12b01121O504X010GQ0Y206A08XWAH28XQ48UeIXAYW0d0A0W1Y04B98 -020WG0W010W0B0Oq02m0W2996S00400H0000G04bK200We02I900002qi4e4800W8IXIA190 -G422f4000G0PM8A1000G4Ge0b00086G9K200003c14b0000410KI9000Y0e4b08001G4GWI0 -000W4002G0IG9b000002HK2H0400824A1Y00000eaI00WG0W8A100H00Y0YI0O0000CAH908 -000005010000a0G92120000WKgtV342088102W2Y0000204G000m0G031A0008PMS30A04W0 -00W10X12K000G000W05000W2008000O0G0a000004200GW2000GH014000C000IWCK002K40 -4000W0h00000104GW25zd002W02000noP000004e04e000GA100000084G05020YG8020000 -9000204ALE3c_t0AW800G10O014Z0u00286422m84445091B01GKWb0G00OHWW0043OXX028 -_0u5G8AHH1G100e8G05106iW00887Hu2200JW82WH00024006WQ00mC150w0401000mQ0098 -GW040m41000kG0040E0W0GKC509G2W188e002G0808W011H040WIG00rWI8G4JWO4F05G830 -4Y4V_R00O02000W0K00Y_t04G0G802W00a0G08W2A000G204W000280G09KW02001a001000 -090W00008W08IiZi18G000528000009M60I0000Gn10G200G0OHW001b0GW000006U00GGeG -20000A49UZ4W00W0IW0aWG1001028g00I20001GI0XHa004G90W00002200G08YW8qlk1ZxR -002W00Z080002055paxc148004ZG0Wo00GCe@2A3G41m_B420HI181i@2b2Ga0GQ3010H200 -H8KA09Ga8OFAW7000mHPA99G03YXp0KO150XzNGXDW30sVXG0080864010bCXHG0_BKm4G50 -vl04000142200W8Im880v5A00081SUt60400044G00GCXskt000h_3wFuk30O5E6000@e20G -4_00Cr100m3KspkR000HNg00mK7000WV_xV00m@G4l0ukV1uF0000040mg3W@V40KzF00800 -MT0yNL00Ax0G4c10mgxtqS9ex0yt@0000e2O0300u1ei50UuH9UE000uj85mFWBWc0@4@0_9 -H2yJYa0d491yEI2u7u4mRmJ1u1w0k0y6qHY2O320000YvJ0f0U300y3u0uTYSF00@070K1k3 -q1Sd00u9YR0d100s1E0K4y3e3W100mF2004000mO0006040g0S1g0m000e32W0C100eI0KLL -V1m@0mVcfIL11km3YPL540_F8cnCL0uVm3F5W7G5pC3ymL5LL540yF8gMLGW7_WmCpK1W@nK -cCJbg22JP64p00008NL11Uu3W@@J5WL7GL30W2C000000ew0yt@1Wl@14Og3@@m7mg50WLB0 -4hM0_@F000GK@rt0G5@1Hy10x@30@v70@@F0WoEukx0Waz@G8_0ut@1mUbQCqrU5T8zGO@6K -5U2zzdGju90089PnQF0G004Sz99yR0000I0020l@O0O00e5pPepS3020W0000fs830840aag -1zzR0W000020WW00W6TBXK@D0yC3Gau6aQU25tn0800WcED8vx7_8tWKxh00m0m4uFS3_3Bp -oGZwISnc1Fqo0000Sk200LWl100WW8wOeQVI008024G024002006W_sVe8T308000G00zRT3 -ID8XbRD8B_402W008W08u0300W6MTl1W00OEFtWCTPeaN3oG8XnuPOXF3oil28W000510W04 -0Wu000GG000020H000000W00450WWA00000W20WS_J005G440402488W2W00540aFb1phaGg -o60EnH8NS3UPt00YG0000050GW0042001084mW40WG0000012014ci12010W008ark108000 -0800842G0020000880040840WW002K000W50200500030040X0280G6W0WGW0A0W00012GA4 -0H00D208G000W020X08010e0G4G51020G4001HG0G11KW88X40eQ001W21W04WY82000I010 -8044I48e4G4085W408400Ka0808Y80002034204WaK8GW00GC880404014G06G14W028I004 -a0204G00QwtWe1D00W0000W00008G0XG0048GX004m020W006048K003410014_d1G0Ga00o -0aEj1000W4CWC0800062Y0WG44300Y000W1G80A0KG002004W2000K0GCG0004s11011G1GC -0G0G0W40G0W00008244G2I00050A0O0KWOcb0W40WG0e002000GG00GWI00800W041aZF3G0 -0000400m00001W40240011002800100G840y0D3008G000X200g002c20G0000XO004Gqne1 -00G1WA4008Q008000W1W4800We00G0040270000K0nz_60Sg00000880060W0GW0800b080A -0W000210G000280G08000W0000Y200101010W03G008G0K40088W0014mrt60A40K0G0mW79 -008G040810220G00002080W10008W0040m3_C0PG0WG00mQN60G800WW81G8GG00W0004004 -WO00G0unM3cEq0000Kc343A_t000c004080001W8800110GS_900G0W022mddCKn26jxR010 -qeKoD008100000W100800001W0G001eF13Ufp00040W02W020000c1evV3G2W000Y08m@4G0 -G418002W000022000OG00W0k@t000GGG008c9m0aW021tPG9eIyEW1@YY100W01010W400wr -BXqpD8mV30020CmP20020l_t0100W002040400200G0G0mXR600000W800G000mKD0010088 -000a0G000O4020XpsD0011mUy6qul100G1VELYhRm0002a400XuqDeWz4kYB100G0000YW10 -0Cpk10120000G00011080nDW9a3X100G000H00000oq000002XAsD00G81010210400a4004 -40048084x4_IF10G10TcR000WXG4IOJT68W0rW0YB0G00004100020G400W200G0G0GG0000 -041000204W101Y030070e000014406Ae0aA8m2W0W5610W0208u00G02WG048014H08004Y0 -200W1R060W088C014aWH40WAIL258aP080LK2OG18n4Ym0000G10010G020nb8o0000G040Y -HaYXG00880g0O540W8900008280G1W00B00W4010G004W008006G100O0G000004KW00WWG0 -00G0W08a022W020O180028000004004000eG0Y0G000003i0GK40450004008G08W0020gGt -0280A004G080IX00200C40000nntP001000100C410f2L10000Afa800001WI0000GK0We4G -W0W4tCOrR30001axj10G9bG000G01K2008mxE646U2WG9Y0000G00K20001r1000002HYRmA -u6000K2001Gq0600H0WI000G80WmmDusV3000Aqah7fVR00CH140000m0G001241E30000e0 -80Epk18W0n000W0424Pps423t0000WBlP0080000Ye0W000014W05000A002000000X0W000 -9004_M2RvRG_4F0040OEuA000Y010006G000G200n044W0441GG040O0G113000008e8400W -G142m0e0W1W0odX600081180001W0G13HO00801eW8A010400C002BW04422000TP020G44A -80CW2P0H0210m8Q08880E88002Y801C8X0W0e900G0aG1090PtV6000014002A10mlnL0Gi0 -W4GX00G0011402340W0W2000e0G04HiY601H2000080e4800W00010W0200H0X20100H0200 -600008058G00Ga80Y400K0GndNC0N8080H048Y0W08441008001800W4W88H00002@4RW00A -G08820K00Y_t0001GpyQ04H1aPah82S3840030A19ox4ISp000A2844X005cWGGOtBKO0010 -Sl040070A0YG0W29008iRIsR640d1PZR0oV1000knvYRG2S6080eW1402mVXYmmJ0nW840em -2402wU1006yE100008G202WG20000000J00eW0WdBYltT0xk0WehPupw7000@e200e103E3F -10S7SjNB1WP3WmgJ000C1tT00_Q20_o1000W1udAS7000Xu10WbhQ92y4Yy_XOtC0NWVGut9 -000m000WHsR90u208xj40WtWx0T0FRS3000Gug3082y4S06W76k4XZRmLw9000a40000G60W -gjnW30yZA0000uE0FWB10_f200m4FhRWl000tT00_f2000y00W60000uE70exZqDm400Cr10 -0J00000mg5mN000Og9UT3mklW2K00W@0000W8U1eF000Hy1mT700GPVA03sSd1i@F0000krV -00a86CZ14pXy90T00Q1jAE8udDjJO0z4cgt0H000WC000800SlM23eRGDn64YU25tp000MH0 -810BflHCACaqT27AOp1Ud4sk4Wt30MRWgQuJ000HIx@C00I000WIm9y6SZj1XmP0008WoqDO -219000mWI0GA1_DwsxXYp9PPG3k2tWezJ001WoKJ6G01100000L0000008VyR000HG00W2nl -P0000eBwC8gV30W0100G0000ZMT@90051OBS3UVcXBVD00800400ai7E102G0G8G0a800890 -1C000G0100001800044008404G08W1X00000090H00400014041820102W0YI0800O840800 -00010202W0W4G0WI480004000Wt90Y_t0e000000G4WW00O101908000GedOD0004000WW7q -DuSVI0001014W0W041008G3101VjR08000141000200044202H00C0G@@9020W2W20261K00 -W804WG00000ayi1040205W000001000cm100100000090001000K000GIXM900C0G002Gq06 -GW000GW0Gdzdymd1JlRGfy60e0020100020O4028NWPW0G04GW0020104024000000u00000 -100GG02004000qPk1GW440G0000eEeOB608011080uB4348000000G100GrpCSxn94110Yky -1W003HIm0004mhkPuEw44004Czl40MN0sRqZuGQf_V30G0WqmX4N4PmYuCyef1JWQm0_6028 -04W0W0001WYzD00200010000GuE600Etq00200Ffdm60600W0S8z4oHPc6@DOvECMqy10900 -X8y00W0WZnD00GATN66Clv3f0aGb9CqGA95hRGVd9qcm39nd0I000008040000002rTk1tsR -GGD9KWk1HeR0WS7WbvJuM138W0I45e1P1ymldjK1F3202000002021umX4olt00120000GQ_ -q00201W00808050421uOT30800001008000000A9006fIc0100WrvD08e00040WHsD8I1O08 -0001EGu_V308204MV22210UtF1004Y0401g9n0400X000002Y0W0G004W00080002000W000 -0G0K_X100SsR3C10G0001008C12G200W402Ghj6WA0000008200ulPL100850KI941WG882b -08800X40X2X000420Af40WIg01hI4000O0YGe400GA20WIKY8b00a5G9080W8200K2008500 -G9bGaG0824K20W0W0W00A1000QfG0WG000bK21A1W4aG94G0cAHA0e408a5W140080WI4000 -HW800qr3jW02000O04G90220W0BgR0C0W040000161G0G0001D004e000140G010W0082e40 -051W10002001W0008W0HW10WA020W00W901W0000ae100W100W020210G8G908020WXnP000 -a0400808CeG0G0001086iA_Yk2402801Zu40m200W0320O0G2W800m1WYG001H18YY2q44O8 -G61310W4YW26W118W0GY04001I8M0We0W801WO10G0OG00C1Wl0ZW0400080GIW1G000mgWI -O112G06W0G44C0IGW0M8W0A02CG6400140K0002Y441000A0G040mBkd0002ixV38040Ga40 -02012800002K1W4f281000210GG080410C900a0048108I200a002040081W80e000000a80 -04126000W220000940808000068G00G25G44080100180000a0am01a100A1W4200GW48G44 -100000PkNL00b1a3k1480043G0Wo00G4WsGOuC090eM0141MVXUaOG00y5410n0eG0G40qPX -Y00GlGd98400z2Y0WG0A40820wCe000uB0008aBTUWO00qB820Y1e00W80epc2p28X01C0W0 -G3900aMmD88CX000@30000cPk00gQH0y@YW7Ug0m@KfAc1W@B20@NavK0C0yK1FufgA@JLLM -aggi80000eOBBW4yF0_3UggoY0ul5XlABgggMaPcH50@30@10LLbOYqg000E97S30k0Q2yJa -1ud49G69ommbmPHUWpWy0U3G1y3y2uDu7XBmF20WV40Au80K0N0e0@0U1Sb2G2A0000sk71W -2y605m5mBmRWVaVP1yW2y6S7X0uE20WBpu4000008pWegg1XPcn40@JbgW7SX740yF8ubPG0 -u@WKbgOoCc1mVg2W@220@5agXB8LL50000m@fYgsV0Yu3GNxFmI00epT9IxhY9ukgrL3sl_X -nnP00W_H2THTMk11yRmit60X80upy4ojAXLosOly70pH0al39RwbMRVcbYk1zmRGWv60W04Q -zz4AmBX7oVOFq7clqWB@D00GULsIayKWD4020EMlYKYV0080082AW_gU80V60GA0KBQ2hsRm -rV6K4V2p@9HrzIycF3toR01000008004400Y0080G0OFF302e00W0818102W000W0O0000H0 -0000410OLV30G000000X0020520X0ZVGs00Gw2RyqHElzR0000200010402g@F1201440200 -80GiqS2000400029000m00000040W0004W00kVd100UFb6zGa2XK5e7d@R04200000840888 -001iYT200Ges5FXtvDGW0000W0100000C006_F10C00lt@0uR4WC_VO6iGAgebmas0001001 -0W3@Deb46__@1000Kg304QwyA9000Vzd00G0Xw_J000WIHo6ifl1P@RGTA60008OyV300O0K -zV20OylZ45iosQfmx4AJd1Wv10Rd2M6@60WG0egR3ATF12200pdA1800001G0Xu_Wj00WttV -00Y0GE18X0000104GZu68410Ooq40001iSk1Pkm00W000m0000280040izE300cBUv3Za7Gg -2U3Mic10e0000A000101021vC_4m0000800u0T3W0000K00uG@40190ib@35zW4400WE@DuD -S3WGG0H80000400b000000YWG100000005K200000WG90000CZ00e4080000X2AHKm2FWV00 -e0y7oqHYtUo14A0004XWYFD004m05000062100040W10Sml1VxR0W80WEFDuDy4Eyd1002qf -cqoMpg00O0000002E200m020G010c00060G008W020G0UW00e00W8800X001020060Gm8000 -3GG01m0G6zLW1Hy_0Wo0WFUVOrOa0WG0a7i10200WGX0090000008008840000G40E@t00W8 -0G004000400W0y929IS91B2005gp0000ah@DuVvY040mW0200ehG910408RY000K0008010A -C1X0Gg6em4020eQ080080420W0076G0G0@5KO0W00q60400yyE300ClGW00M@U24000000W0 -9H0O8wb0qI10WP2u3T3000KbrU2XXRGJ@F004HCkV90pS04CZM003WH40Wv000m9000C000C -160u2O283u700G68CS3000o0S0m083WHYuC0080VxR6000G1_108Ye400J00000kCZYAvF10 -0WgjehYg3WT@300xz@00WWqloaE68LY5Ya8QV8LaA000meN00eGTUUZxs85o9rMCYKudfnt8 -XS3IX9aEt310002w00Wkylg3N3W002Kql1LgPG3x6yCl1nvRGwy6G0020088ma_L00uXCDvA -6QgeAzPu@V3000Oinl4LnRmq@R0cG1Om_hYXsWX@J0014mt_FaMD300100004S403f@d0000 -S5200frNnjG8DSXG00clJyCgjyDeOy72@EXf@J8506YvcX1ZbG4U1mdeKT_C3px1Jb@F000W -px00GZ2Kzck10004400WCJA3lPRGktCKzT800k73RrfMlDuw_40W00EVV2XVR0001W6xD850 -6sUp30y60VwHLkt600040080GHs9G000uGV3001045m3r9oGoyICax357B481G9000G02WI0 -WC0G90040800002oK0C0080W800eYwC85W7spF1000GlV@000IYSUT200e008000G0100G00 -404G4D0GHX00200WK0CGH00A08G400W10002Y2m040G0f0OGwz90028W8000Y00Wn@J0GI3m -JmH12000K00080007400E0010W80900W00G22G00A000101W1000400OA00G000GGK00XWrl -d0W8000100zf@0000SN200D7xa010200048088000010H0200a00W8000100GG0004400W00 -082000200680W00GQKrWWzC0Y00GjQ6yb@300_EYOs9000S0W000e8820Y1G00W80eJ2100W -C1E0I1m040G000H0070100059506080m00000W0010000WB2GV6@0Ga5WjeTA2S3mCpK1W@n -Kc@3kmN4JPk80vWdW@1FSmJLLM4pCj8yL56U2mCJ0WPc96eq6w100Ajs941G1O2W2m4m5mRW -92JWV400c80K0Hf0O0WBW90J4J0c80I1u1410m9POmq3601W1e@R600eIcksyd7CVp3@FBet -7nRGLyC000d8JVmEMFXcvJ8SU6gdN2Y008l@@0eZ5W6dU8FihQHlYMt91000Yh10000045mF -JM12rxV5G8200800CvE300iQsv7owvb04g3mkd7svF600WmD300aomChThrf@I00OgB9LH17 -C0CbEF@4kqWu6KhH5y500gX@G0880@_N100cqt@b8WJ32OhecNK1WH00402WBmh0KV1mCCOK -iFII0002Oa4W2005jpGafCuL008CSgo@tWpiD8u2I4W000061hKzA00iO6fGNNpVos260410 -uKzA0tQ0yYl4XXNqIv6W0108oTF0080000420G0000XTY010000Glf@1000qC400YzzXmmTw -eQERotWtlPOkVCm400W9W9000Jm0W90O00uyV60D80y503XXJryS@7lt@l3_VxY@FzFm0mNx -Zpy@tG@lDr@NZz@qS@@Cu@BJ_@ne@FCx@@2@@kq@VB_@po@@@@@@@@@@@@@_J@FVTj00G8Kt -_FvyxqVrLaKWAhDxKwk@tlVT0lR0gkugy_H200uaL10WJm7hjVU0Wes5ljeW720IANbzICOX -4U6NO6000m2500U@t600W0RyZna@9C3V2x_pG9x6avV8hod00WGoar55y61GX_HbqV5z_R0G -00WoQW1000H__6CLZAVrOGiE9qyl75wi10W0Wy0E100yItFv0010eMY4_@FXr@Veb43I1uXf -0geqaD0I30i_lDDtZHBGF80008xdSo3m0000yA000Ir@@KXKNg00m@@@aVH8@@@VWKAoC00u -@VU0W00y@FO00yW_ZwJ0000WFK0_@NeRPO0006G204q1030C00J1WYe0O8FWD000G07008Gg -Jo7G2108002A0Z6u11I0882a0100WW8H80004824X0W4OWf0GHK060000W840GU0R0000KI0 -0m@@aaFG52462000W4Dm3Wa804a890000GG220000I49804918J1WYe0C00000110Wy0su@V -Lo7mZe1Ou@@@@@@@@@DUBhA_@F1WV70lnuHW0UaKmO000uT3004db4hUAte3DMyZ1F@q2e70 -W00jPJeM2M3Zg8h88d7000W4vw9lNyJkigKfa400Sq@@t64001vPg2000XiRJep93sxg5GC2 -0@YKtM8g000WW300mOml1000yF49_@V30G6d@@FsYgC0100124Wm@@j0Y71u@@q0GG0y@lD0 -300ok9DG0000800002W8W00u@VL00mAz@lP00G0xzm000040G006sf50480d1P600G0I1000 -00085100018AKEL000GpT00e1Sp008WaGi10I100200SHiA00Qd_@VC0u00800404000C080 -J180X008K08O@@h28W6W@@73G40100004W00880000084aIB00084F00y@FO000A0X010m60 -202400Y080G198400pPL500Cf@@@@@@9uW85WcHA0P0N0Q2o0a1y30983y@lA000e9B00y@F -O00Wm50ymB8LL5um3F0y70KLLG0mC0AxN500H0tv@Vsy210800000hj10WLrQ@@VaoIFXVqD -0eR2GnpsK@0R5@f2420W_fPOfC3c08XXXfwxU3008oTXV5RuBnF_9ioF3ZxdmBkT1_T0OWnJ -0H08qd03hW@mX9Kr8l1000eb800S4PBtanmVzFSCSHzsB10WvxKp55fs2myw@7F@@9pSuZs9 -uJ00u@@6100Gz@@3002W_@@@@@p9zM6000m2U008o@9lSd100BK@@39W41WmvV0a@3Grt@@@ -lDG00000m4a@V200oB6J@@atMj3S3IzUcsID00GJzss9K3UBFaRG01a08008fWS00WG00000 -mK2G3R9qNUB002028udcW_y@@M00Ck@5kD00000W02y@lP0m00ICncyra8BV3wkFA000yq50 -0_@V64G008001wKN2W00GPF4500Mo2zpiK_40Af0yy@d00024100qXF9bq_VQcOiSV20S70M -xjnexPecV3000mW300eiV9Ipu@PuEfYp480000sG0eLoeUvV90008000OZldXfnLPcVj00WW -KkA300C000m4bnJ55Qq8eL1WrCK40G00000K00405yR02CW000G3000eDD00KtA38G00YSv@ -hY2P2O30C0G000W0830Giu600F0OhV6s6lbos@V_V6004idmbDpJBK1ug0gX18J7RQdSfQk3 -nG00GI1rTIlbnKdm@tU00608@R600000id0eY2OYa4ZBTcfux4QuP3000mK600AprZ6VUufR -6oEqWmAufJ@4QrFXrqJ0014m@@600uweRZGQvFXPrDuxS60080z@F3024029ebk6E1qO2GWj -HLpLKg300U2PclkO30oM@yTs082001G0mh6jKmVELVamAQmKbPQ0008O100aVlDRseo@_@00 -uLyZVIQyc1008008004100aEQQW720Imp612G0xn_000GWsse2000Fx00W@@91201m@@9000 -4wHkA0020SB7L00CGkKQ60W10X1YHYWK1ov1uwfP0G008E00eWy7QquA000WS600M4gb6YD0 -40Gm@@f10uz@@VI0080LDk100000C0000W005Q0000jXUNb0090m8_p300Wde00Gnuj000q4 -0082mF0W7XUuLEj00y2y@@C0uV00006000UFM_@Vr@@Eyj7000Cf10W@n39FLp6kFX8uJO_U -300WWNY@3Fl@plpyqBh1RypGRz608P0u@V604G0Kvk4zkhI_QTTalblLQ00Wej_jp400WG@i -6GW01008000H0Wdm@FupV008Q5O_X5Qk18t0058000H00UMmI0010000OjE00amzUbrkHiR9 -008n3000002GWgtCeN4y_@N20006vmR04000mWC0G000002O4KGZ0100000Hywh1000OWC0G -K2W1@@BNpxOyaQ2VxR00W1E00O0@@Z700Ialth0002000080GX1800Gr00002PeW10200R0W -dmp40001E2000000000C@k1lItUO2n401u746k100qAS000030004W1mMu@t5Dd5UFJU0I00 -uYe9SgQR_dZ@V0yS0GJuDcmW40000ZbyXpjyRu@A004_a1T5pj7IjxgKAl1lo@Gpy90000CB -13Ie@XK0C8ZU30u60yIF35rNHRz@ynl700800400Kzs6000G1C00yTF3@_RGp@C48W7dwRJU -wIqtF3n5OGnw900GABPRv0000z0B6RRL18W0WS@J300WuvlCKF_90009V3mWew8CDTC00aH4 -OhSrdN10G0WWvn0qt2Gpxf1008v@V3K8G0yIS2dwd020010004v@RG8_C000WIj00G5moDdi -408G0gItWHtb00GNPMnl5vT542000800Svl1010XU@@1Wp80ZA@MuR9axj4T0um_@900o1OB -@q000W2G000W100000ea_VG100pz46CPg4000uK100K1tRW00GxGdXHwgOCV600SvbdDR060 -00000W2B88Sf4I181I0000a0A00000K20wz@701n0iJUQ000LR0mW@@b0L10mX5UKeUQ000h -100G0i308jR60Wc00000p100GUs6030000W3my@C008OFAT5BMeYll@lVPCgL_1G004fGnGY -SL00mqhFWAYa_aSfPeQwYs_i2maD073Rm5eR4fWMZRbGipR0000o800mdfvSSw3VARGEPRKC -6C@@R00W2po2PhKGR0m30qRSWnh72g00WIZ7Bwj4AbR600v0@@@@@@51004bT00mQ6l5sFCH -lAnT6J2Qd0e5@n00A0alFF0300ET5iaK@10GOHiwWL0V2jad3W@5WFm7xwI3cyt6000q6600 -QBVimtIu@@P00q4_@@LL6jHh@m0Oy18w@k010000G10120urtv000WmP00GlrvV1E30O0000 -40CrLE0O30M2@@mmBjRtY0uq04l_@BhPJt@F008dCM@@@@@@zA@Flp@lBz@wM@Vks@Zxz@tY -@ljv@Nh_@qk@@iSi100WhU00eWo6F@N200VT@@NK0gvCM@@Xz@Vys@@E_@jh@@wy@dk@@@0@ -VFo@l3z@vO@@Du@tnD6@@Vo9x9K7W4000OOC00y@lAlLhoKuvqRW400EaJsdmzpz0GE3GX3Q -TZ@@@@@@ox@dS@@7@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@vm@@D_@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ps8y6y2l1000HQY@X@@J0Cr1m@@o18W0ePU60C0 -00001gUUC000Wp100OJz@@@l20084T@RmP@608O00000280WeUzD8oV90zU0iilSLFO0080W -0AgOz@700007IXSG0001000G000G000G30600048H33000100001000Hd@C00f2us@w08000 -00WO1W200000HY0000004000000GRQOG706y@l100A2_@NE04W08000gI810020004010001 -010imW46CmW@@D0SL0m@@l10200805104040G800G0000W00a00W0W000g00a0200400QJnW -W7I00008T10WIAaZ0000W0008100020Gm0040AY0w@V30008140000018002m@@J00m1u@@l -10X00000GJ660014A5W40400S3W131mm@@60C00u@@tW1000000048000100GW10f0a00080 -O00W31amQ690000DD3s008000024020WG042H00440I0GI0005001P80410W0410S8400004 -28I000a0GKeF9000jx@@t0W0800010200510W2080GL0O0081487000H010a5000W007G0m@ -@C0Gr1u5bt000K040Y0WD0000000i200G008G4000A000G0eN00WK0C00100800040000002 -000meG00u@@q00H41000Wxl7000000iR00G00mC0OY16000COk@300U00300W0M2mW@@P00G -4s@@i10g000o0g100434f028I1WHa2mE050LWE0g0T0H2s1f0OW85WA0AWa0T00EI910z60@ -@@c@10000W@200@540@B80_700yF0y@V0uVG70CGA0CmV00OPA3000W8G00u@@@@@@@@@9d0 -20000WG2000000G2io000Y0t7nGCSCKnL8WWF0YsAA80008800W200bPb10012_@F11W8W9N -b0000a6fOu@VC000GhN00u8Ag0000WG00OD16G0000004eoC6_@@400vIJFG506W00G80a00 -0020W0004G000meU600088_F6050004008MFC_@F10f00pgfrAPCy@VE000eC100y@lJ00G2 -080000W0uaC60G02C0s3@@d0020Y0sCuoE3M2G2089Nzlr5180WIzI0H00HI6OK0Y1@@Z10S -4WE7Z240000G00280000100108qGN2001000A0qbW4Bmnm@@I000W3_00m@@E10O00800000 -400W84PfO000G000Y00W008000G600eq16YsB1G00024000008C2X400c8@@FA0W8000G500 -X400YKG042m@@6e0000800IY6L80000Y0Wm@@R0mW184Cg0a000000W8010008140WG00800 -000H8000018IuCCSIn3400GAXZXBGJ0m00m@@H1W0X020000W40G0W20WG010600400O1E3W -908Sgu3LGomZYFy@l100aN@@dACH60EG6850562C2W01411Xa81n04100OW02000800000KG -jd9yHf1G080@dvXD5O08T0m@@E1W00050010m20000800014621000111W00W80Wi9JOQK30 -40Yy@V2081G00000I00uKX7YuwA4020000JMyq0000400W80uAK00020Wc0GxHCaXf400W4g -1e200qd@@J50g2000000F000Wg0G0308oJ30002i_c4@@J2Wx1W@@T2020004CI2G58403WK -WE0fW81p1HAW0WK0M300G0G001G4K9b100W02yCXJXDuCL30040SBy30000FUnZ@@dXg0400 -200@300_7ymnCuXB8m3NGCxlWKLr@@J0cd1GtU9KBS2nfQmOh600C1u@V600CzVEgPfC@m@@ -j0Yz1OKskgsYa@@39Ggh_@7rJRDOy2XYK8glWD000Guxk948i100400010K4k1000GUfG500 -0W8600AYcA0000420G0Gm8100060010010000GWfDPGJN64sZ4FIX100YXbHlgtO3G400ylR -2hSbm@@m0Qg1O8wh00Y0020W0500080020020008004W0040020010000uurDeQz7Uv6ZGpk -AOD900080W0WuCcP00miKMEL8002000G0W0W08G00004a2PC000WWG00000220119WG40y@l -A4P00_@dA20080p000W0WWY10c80GGW_6W800G00080W00004ap@5IEyCuM00ORxe0000L@k -1GO0000020W0G0001m2y60005OrVO00mlCMUK0020m20102O20080XQW00G4082H00000008 -Y00G0G088000004W8GH_@N5GID0nPI541003G820W10mo8gWK08000W5000088W2414W0a80 -X0I89LeMSF00C8LK081X8010800oYGW029G8Wt@D002142000I1bG0WG0GYI0z6k13@J20Wa -e@@Z220000m010102000C4G00e8408ZU3W140100010O0000884006v_h2ec5W@@T2040rf@ -600G00200004e0080A0W1uW0G0X00GH019802WG00aWWG002aIbdDW9SRI00W8000e4C000S -00230C206G5100G1204420988G00G00ehVs20Wadd@ZY0020WU100080G040005YG100a9GW -0000Gx000400141G0W200G0W_Ik@g0A80u@@h00G00WP00G0800000K0G40000y050YPCmm@ -0100ywV1yB0PXfYF00W@@To00008000O020e2S3G5WX0003GW0KW85WAHAWT0I0C0s1s1y3Y -4W10mbBg000QgDpe00pFNbf100C010G0000287y4eggWBy@1W@11m5Eg00000qL1mOu@t4NH -00yyxYwg85Q7000lS10WA2Twuu4U0VZk2R100HUSYNjNj4vWBnNuLS8k4W650AkEg8KDuOxD -gvEXEk810007910W@@DB5bJkYN200lt@@FsSu6qgOE0uV0ohJhDzDu9S3YVC700Weo000A8j -h7pDuyV6E856000h9fEsNvF4AKB00000HF04LeM00W0001000020G80Ohj6a1P2fzs2510W6 -5CR@V3ogtWLIR10GhSWzQ10040a00002012H0000400WGb002000042I0000GW0v_h2e15Wp -H0320W1W0001080m0G004000002Q5S9Ixr3y200r2hb00W80000O0C20000W0018A9R008N6 -o4OluO000GWkHPuDZM0Ie0KQDF3z7228W0W0qBeK0000e40800uTz40G204vgAXc5re@O00O -Wv_u9100O04100u7000A000e80001l100020H0000ymRNj0u81uTvPo1x400W@oF00YUM883 -00LNRsGkI0004eOT3cckYMsJ00GnzKFiD7s6Zm@mFyC0iB0OCSpQw1cWcPGg00mgUW5qU800 -0W2Q@XK0Cu@V300yIa7LNnxL40e0WTuVxg76UxPZ5gJ0000RQ62DUQBTv3Ps3OSRE3FdlH1w -90M40Oi3y6xy@mIb3Op2Gyaj000CO1W2_@tWE0C006OGA0CqhgzW6002yi50m00dRdW0000C -0002000m002ibgM00UsB_V600m000W0oyp000W0T0OGA0C4tlJ4HD0QGj5042000000G9a00 -000G0G2000001WPA101W020a2W1dz7LqrgqLy30C8000001WW0u38300818000C503cyQf@@ -D00GTKmelbKmCWwS0o2Ygg4QPhjGKD00adlARvR0400000WDK00s005s000O7100000G1000 -00q6400P0qnC3d87IRp60003850Aw@t000GeDjV200uCW008010080eiGyImW0002DNk4XW7 -80p0HGaHw1GAqYee881AHG7U20Zz_GKzR45m31TRGA0I000u@@@J008X000010590m@J000W -000410080S0m000400W0fw110mV204G500WU000000G8I0004H04H000a8am@t8A06424HWG -a0850A00Z3z@l18W00MmC40S801eGrOv3300mbD00Gzw@FFlb087200EWWJ0000um10000vG -07004EJ1WYe0E1d000820Wbz@Vwi@JzlE0WS11tBX1000000qw400wm7300maFaR0810WAzJ -00J2aSA0WK0Iejzk0m7GZ00000mABmfl0D1000uB0w6Soa2C05q00uBef5@_Fnm@FSy@2B@V -mp@3Cz@@M@lls@txz@yY@@kv@hh_@vk@Fky@VR@@sw@Vj@@@@tfPAJ0eK1m@@l5YD3vOJ200 -0y8NbB2V3o0WX6rz000LPuo@@Djw08MxprknVvh08h0m0u@7WUrPFWA0K0Wu@P0000nP@94J -@@lyt2000ml@V08N0mi@G20108Ne7S700y@lY8G00FyH2000R@@@@@@m0W1000G0GWvF000W -O7fDwt@@@@3Si13M1eYCIiX500m@@HLeL2@@N400wp3rUxc@P0SI0iN@y0800sjnZ@08fV46 -00WKrcp9d3eobDFy@lG0960_ZmfAA_fsE3c1X1000eA300sl8j@@j10m_p@@98200eGG300Y -0y@VZ2MP0_@t004SGBBcGf4Hz@FF000uWB00y@V2000Y00080900u@@610m7z@F3W8W01X02 -CEnR@@720e6W@@D00W8200W803AGg82W8400y@lY000m0700y@l1G4H000YAW121091Wu@@D -20e@z@V3000G20000GX006000S240@@t8OV3W@@D00Y0000W00eW80004YlgH000iXFc0800 -0088W8000G000z@VZ00CsZfY148KG50ro@@c1sh1u@@4000820u0GG0G8H00WqCQqD00m@@6 -0uV000CJbgQX0wdin@@t80WWo@@J0L000k0k800SHJwkn@@r12m1u@V300p9300wY0000008 -0@100rmTUUn6y1t61onmCMR00WifmktgikYXnau@V60zU04fTNXU94000GD000zMpMjrUy@V -500s4wRpcAzWvyR6E2aXnjDuly4w0WXm3J0KB0GDfL4Y83@h9400GWwJJW000mKhCisg1tjo -m5ZF0000YY00m@@60101OhERgTSff8Ve7U300i8SVOKb@jHBy9y286lnd0W00W4vJ0CV1mXy -ayVfGbvd0080Wu2t0400nQAF000c6s20G8dFiLY731YKdXRqsR20004800000OzAot70W000 -G018yHdIWy100G0xDinzn9K7P2WmV0wvFXg6BgXXG00200400W010GywO08000200400008G -002000000WB620OaT600010003C0rGo4TZ5NhW2000H00WxtD00080400m0fnen16WG00820 -000WPPQy60002401GGW6m41z900040001G010000000K200W00hWBn@@900042000200G8XG -00000G80000_f80000200I0X0009nkqM_I000GOGV3G000KKm6000000600W0000O00W0000 -002000G87G00W000480Gsk64SLHdVR00A0W@@D000On@@6u0H0000Ge0e0G00000600I@N20 -W880000800W000eWWD80G0W2000000Yg_@t00NW8000AINjbWRtejtD000GKZB6xHRmbZ649 -D3WCN0_@F100W8d0V2000gnMn00481W10WqlV0160800eX2KD0G0G1I840Wc00@@B10eG002 -0e8080o9s0KA0200q6000G362500000J00WoFC04000005Wuzn300G4Y00Ws@VeU6600c1y@ -F9W@V0I@s300WafV@G4u6008010O0Y1a1S60086000ozN200m1000C00000S0m00001zD00W -80000000TG2000W000W0T0030H000k00ExWae0v10_@zCORWP00u@@4QJm0000O8400w18XM -bufQ6L2yj5010000gb@MxD0010VD23e51WHh_9i59I4q3W000hIt20008d300vWhu@@L00eD -zmTXM_1fDln0Ct3mswZ1100000Wmau60440vRCI020004G0u@V3mE200000020W0048000G8 -r8GLP_FijV8he@00Wvu@@JG0200044WG5fwvS38010aU_900800040KRM2WWJ1_lZXC1pvDE -OsP@XLBs0000Yc00W@@Z200WGHyF01400080mjz90200A6u4sjFXswJ8vE600200WPDgAck2 -dlYybUu@@G0Q7040FR3yRW000W9_9vhV3000mPJ00uZ_n8W00qvE3W0WGQqFXC@D0010GMb9 -C@_300egEU4ZWXu1040G4rCCZV2m00200W0224000K4mAQaW00001000Wt1Wo7buLr4_bCd7 -gb000emLw6G90000000402Wr2t08000042WCkJ0O00G8jIW000080001A1WePH22X0mVL600 -0W00A8mLgFSEv3rpQ0C00WmCD000qwcb6yd93000W00010G0GeyQR0880y@l4010400000a0 -Y0300X1a60K40Gfu_mEkC4O9300000XZ0iug7j0MKmt98000YA4W000AW8XV0000OkmI0001 -0G000000YCkD8VO9caEd4ha000G330400s0000G0G00210A400WWEJ00WZRP0120mPk9SMk1 -000Q80000GA000mAF240m9TV000GOP49SPFC000mU0uW@@PGL10000000mD05c5o@@9000eI -410G9y6u0008GuewlqW@@J000S400030004030C0o0S1y30usD600600000TAk7W10000G6w -@V300CZ6Bd1FAp0008W2aCW700GVLH1W1mK000000OW8@L1mb3mw@ibSAC4000000Wv100em -yF10iJ6999HiJUQ@y0000rq00mzp2D6S580000002Kyj10W0000100010gAU3eG00yulA00W -f607cFd3vAw44000SPU200G000W00G000WW0Glv600G00W001010WgoJ0800mMy60400StO6 -0ik0i_l1014OgHtWCtV8dw4kAFaWrVOQT3EstWsrJOiU3UdrW1xJOZV3MLFXUrDus_40000A -D008776MsEaNiPulVCMzt00G000001w8810G080W4008GG0040uA83cJ8XN_be60600K0tsV -20410wxNYuvD8AVX008GqFF3Lhz0410WoWh8iU30Al0iCF3JpR0008XwzH20G2GOz600W0Ao -U300101W0W02G0GPsd000cJo01W00080X0G00WWEwd10400fsdm0sy8040ysT30W0WSaV204 -0agKVZb_V00mnRJR600100800OlS9ajO275a30e02000022000000A0WGuKP3G14000808HL -O0z0C008W0010HKlH11800000880D0G40Y040401080W0G041018G0004006220Q@FXGAC00 -H0mg@CCxl100080000H8D800G08800G00OW1_d00G0G0204ZIdmiqpSjl10410G0W0GO0001 -000eW0mEKC0WGW00X0mS@bePR94040200000WW1000H04028C00000A000WW000100024000 -l6O08W0WWRp100e400W00aG8K00000044373lVN12K0WH_J0008WI80W_@D0yw300W200eaI -W402800084I0000G018108G294GeI0G0900500800Gsvsa3k15XR0210WOuC8XU3I@MYtzP0 -01000G0G01000WG0000WZN500000088000042BNO0000111W022G4m0W0040000A4GLmpS4l -100CmWG0490002WW00O210001m01X0Gm4G8004uFz440400000fK_AUCt000MW622804B000 -0000W0q@@680080000W004W@@J0W0WmjmsGW40040G21W0WmrDG40G000W0GK04dvp0W00WU -@nuxG306Y80W80A6V3YhnWKlDesR3_Et000019yE3G0000040eW4Y10fDWY2000ms0W00qOu -I0xc0ma@Ia8_38K0W00440000GdK10G0WKl040v@R00A0000G2ez0000eD08004001GJSCC9 -UT000xdfE10W1c@@N1g_FWxzd100uC00G60N000P000G10005100G0C0u20Xm5unmzGux6a3 -k19@R000GG0004y800Aps0WHK1000d100g0O00001920000F4000e900WY000Hy60OyW000m -9VD8VVOy@l0000Sd300000800003O00ani000800m@01000000uF0@@@000FWntP00F0GIg9 -mB@0m@2004VK500WPBBhLtyy00GTFpHaY3FaoqpPOC3ENFdgsHgr@wYDtWumVeHSR00u_@G_ -F010GkLNYwrVea@4oEF10100xtcmybX0ew10000qFcLCklAXq@04G0002W00GG0WC01840GG -0088040W3vD08008G2G0000001G0_ut02400ZnR0020WS_buIU34310ibT2DPNHZR9i_U502 -00olz100W0810IQEnW3kD00G1mg@6000060018100W85I00440100WAvD8Rx7_qF100MNxh6 -omtCCy@3b_Rmw@L800G10W00284000002004Iv@XHQVOsVF0J6800002081mUx9aTvCftp00 -08ayoD0G00mjz90081e6jS000GBF00O2TCwpFXyUt8yx400208200OSV300220008ufG30W1 -00HK0eXVU0mGyy@l10W80IZ9700GW200002G0100081H300G0202010W0081Ge5kJuNkS06B -0CrV2N7Bnyy6akV801G0Ndt0eW60lzc080040010020GQbMYeKR10001v000G0000200QhVZ -0a310Y000W8110f040000nW40204gMB3W0408WYW0Hb00000XYwJ8pLO000eEBl10800YesW -wxb0008oLyR000140G020000a8a80fW0c@t0400W0GP40440ga05Q@O3000G000G8c33sA66 -0eD01cRGXvLaYl10030c3ZX@@b00Oe3000H8Y8XWWc0e210G100exR30WIG2040004802G00 -40W0KA40M8F10e00jth2X1000000d1W120002521W000AeYX0pb0Y00000AK0W0000QWkjqW -4uI04X00mG08000G4212cxt600Tx@fx1000ZLqC8bRC00W0020C000002W0000000aW00000 -W40800W000eW0000K001K0W2G0021480C11G0WG2DuJnM0kV0q_V2ZkB1200000824000g9P -300WW2031100W81180040002000001G40H6@t0828000040011I000OiL6g_M5000yI400Ug -FXAxVuPV36LEaD3D000020810020WeH2W10W4qak1000AO0100m6eG5010GR0ex@D000G221 -0W_GL10Gv0200W1pt000040ee4020eQ000Qgl200A0XwR0410E04008K4p00qG300000VzD0 -0000uA0njB48m7Wzt5200@3000UKLLB8G@a9zG0009100G0A0e20101e600GC000m000Wc00 -080700qY0a1000083aVSBAA00IKoWq@h06000P0t00qY0@@N10A000W10000W10L000k0MH0 -0iY0eWDrD01000u1000uh90G0100GH6lk1r2bGU@j00WALu0mCd10000E0h@Z10K5W@@n000 -CW1000000pI600qb000000G0@1GQRBD@l1Ww700a00azF64020MiFXe0sOAECMYtW5yP0600 -G0@9iMD3@Ll1000ME00097NnxrjiXG8pf3Pgt9ijl17uQm@@600a0eyR6Ipt0W000xAx1mT6 -Wv_mO_I3c0ScweJ0W00OOz900400100Imm60G008vT302G0MPh70000100G3S0090nGcnl50 -0H404aO00gY2K00001800X000210040841WW000014103010G02A2ltb0000mymDeyGC00aL -G10000040G00YxZJu@@404084qW1D_r204040G5000K0cSt0010GdeR0W80001104040_@F1 -00C05@J2WUbWHKDeiS90000EsZ1tOq20004W005G00Y50e0000e0241mV@604M0OLM308901 -AG0cG0000W0WB7DW800GNv6ick4VMO0jH0WhpJG000u8zLaVSB02W0sMs0040Y000G00GIqn -_3JCpW4GGWwyV8VU600G0W00000GULJTR4Nl1XuNnZz9000HuB_701120000W0X0020001G0 -0C2000020qdX1GO0000W0yml128W000YWSMe1000G0G00Saa10001cbpWk_Jmef2G2yIqqV2 -h_d040GWj@bO0H3Qt@100200018060OqoP204390800W000W0002000pfkDeL_401008100O -f430008G400u6V600801000MV00G@5Ry@l1W004cgFXqwP8RP3QFM2G001W00W44W00000H0 -00GIZ6010G8hc401GaiHv67IRGG_900uSV1wG04204gl4j5mGt_C000WH01C8G05080S8212 -G00K8WA82Y0G0004W02400aG00GWG4W0280085W0204088808000I100W001010400008e80 -000200G4G00000440W0GG0000WEL0AYT3800000109020OW04OFy4W0000020W2000G00040 -02Dg@0020G42W0AWBHW0WK0X06H0040K805YWW0vRP0490L000A00HH@ot0We020100Uxq00 -0080000100OW0000004128000000800G000mP500O4x7kgB10004600000100a00u@V9GG00 -00100200Ozv6K5C3088be080KxV20G904G200054200000WG140W00G00t3t0Af40blbW000 -840O001CW8K80KBN2008000WmzUE300WGW0008050u@V300KW1004ANS369tWglD0025IA06 -W04W21084X25WNCV0840W00004g010008000WW00G8Bk408001080080mmKr6ywV2000G004 -010G200GWH5p6qKk180000DO0CyD3K000gVa10410003We42000GmOR96oYp02WXI000W806 -OiVF30W26W20120W1K4000B06C04180C00W0200240I4HW320W4W280GW0W001801S029W5W -000G0G4W0000000C00404800W00600000e0W20040W0600000WD10W3vPucI66cq013m1W10 -YW0G00Y00ujT30004A01040410WC06W0000Y00Ekd100A00W040WYG0040G2220240140000 -0Wa00001001000D062182Wm0W0HG00G4000W0028Ivw94UZ1Rqdms_60080EouD0W40aVl14 -140_@d1080A@@RmhH6SPb1Dqd010400y2000080400008000W0iLeH0020Wjjb020G1W0qBe -00000wlG8008pE3000W08Jeb40000D100080G20W00520000b90000i6WI_P000K0200WSnJ -uoS3Gz28002V10C00008X5VC000GX30040@2LA0000wB0z@F30m4007S10OWzb@@3aWcWQL7 -0000WlGL000000mT4100St1@J@@20Yu50mY0WggxXR3000i@@l10rk0wyt04X8u20000000Q -r000000de00Wc@z00W160mCY1xV0eW2merC000mKW00m@@6O00006000p050K1K1K1m000u6 -0006200W100G5W0WY0L0L0g000u20006000e200m5u002mP02WG00061000X000g200Gm70W -1G401mFuH2300KejYF3W0W0008Z4JE3000Ced1000m0eE@4006WO0C0p10qE30006000m000 -W1u00WM4AIX4000t9W@Val0eA0hUN_f20Stz0eA00000200C300K50WN54Y80H82000z0000 -1000G4000OW00eWQyV3WP507@p0ypFWo@POMy4uL00i2_6XjNn@mFScl1vwwHitL0000ChMI -Ywt001W0F3dGypXail1NYdGg76iBk1W000Mto0010WXYRGwu90000iHK3Y6d100Yj00G0U9t -0G080V@RGJQ60G808d33UfsW@YJeew4UltWIuEv_S36G@XxFC86z7cFN2WU90rpTrGPCq1t3 -jERm3xI00001W20GquF000Wbw00H@@600GWuoT3008000W0evP30240Syk1nzomux9aer3x8 -a004800W00m0G00G400f00OsS3050000002W00WG0400Y0GZXRW004XsqC0G08Kds64V_3G0 -0000qi02000004m8eUSOhA0000H08S00011Wa01015K0200W0GIG080200100WW8G01G8208 -0480100a02G0i_U30400yCX106a05000040G0A00Iol6q0d10690kRd14000FPpGYs6yRQ2X -wRGVu90G01G000Go_9W000u@V3002400020Y104G08O044208m008G008W10020O61600W00 -G02mSy60000CpS3000W0G180000uDi6S@l10018000G2E01O5y4cOkYnqD0801GZxU4lT202 -He82011GG00eG01G10WSfDenV304001A10Gm0018G00102K0040404800W000W02GWW88080 -DJOmmL6aLN200GgBwuXGvCeAyDwHF100480W00Yq@140W8000004A108000020mMvI4IJ2rQ -RG3@6C7l1nKOGPrI0sQZunLFwf4c2zD021W0801WMvD0008W0080H00284004040010000G4 -00Y0000240100400G0W00G4GW0010080007sRmaz6SUl100WvXB00A001uuw7000W0002eh_ -7QktW9yP8gzA6Km001041mR0040G2W40028000Y0S@l1821000G0001GukN6G000kia18002 -008010G0y6R3040000GW20000202010000008G000SzM2huRGZ_64NV2VwpGOrL000GubP30 -G001002G0C00020W5_D00G8000001GH000300XG0240001001A00W2vJ0004Pd@6aKV2TgR0 -ua7WGzJ0120mGnC00040004Gzb6azD3lHbGF@L00D800O04G11410O4G4X081000X0K01002 -010H0G0000Y8W08G0A8W0040820100110W0000X0082800C0000Y100H005ER0800010G020 -00000W0C001000a008Wr@J0820000040042000G0G0WK0e1jSQGDbFaoV501000G0CWH20LG -000f8018W0W00uW04210022580W008WGCWW00882XAI89m800116G_86G120GG0m00801000 -1G00Kw5t00G00020000GiY82G09400H00004095_RG8Z6CYc1000WU3rWS@D0G0G04000000 -37_j140000eW200000W8Ay@l1K0W000000050100004K000G10G085009045W1xXd00K0G00 -000G15G40800f4e_V384000Sd0020040KIXavDG8000408anvPO6V3_dt00W0GHmRmM_R005 -0OwM60020G460eoE30G000002u313Q3G20a50pgd00200WWW20W00000O0000rbAG00W0Wxw -D0X40mM@9yPV2G000Q@pWK0OOx_D84200W100004040Y04Ce00CG0400K4VW1GWO24800e0H -0002150O2G0G0080m05AY0000G050022480C108GK0000Gu00880028280W2G10000uA8W0W -0Sf00020011002001000GW0002240600800030120WAW41gst0090000G0Yzt00W50ZyZX00 -Y04041G0K00G000000100GX050440000Y0001G000202080440080G0e0004010420082108 -0G400W0K08WG100G482008pj400000OFH0W0200e0000000010h6910H0000G00020008000 -86ncz60H00040000Y0004101cbmdyI0000G300mWB6q1W180100044CEV28XG00G34W00000 -D0meV6aSk1QW00o3mW@@D0X000G0w5000qEbW20000v500000G0G020G00000L0000000W4f -gM30004G0001Kc0040000920FjR0084Xcnn0U8p3UGc7yW7pc1Fye5Uu1PymZoQX7aX@18p3 -FmZ7UWvP@3FyG6uXl80oSH0y@YOcPCfgg0m@@nKcBYfCN4WK0C0pO2W@fgA0GLLXhR00WHk@ -rDmz00000G600000m3FWm@U0n@10Y@30F_70Uun3ym34vV08w1FGqCpWe@1m3pCZgK50Fu1Y -0K5F60W05101g0K2K4W1g20340WA80AGG0KWY0W0C051A2e0r1K220e60W24005GH0A060M0 -51T0g0g000K10G120W2K405e2GB03WA0604400k10000000wB00002000L01040_980O200W -00002004W108010H060Z040r000C20W00001G002I1mW0dOOt@70G410H43W__310OcV@VFG -oE0@uN0t1p0G4Y00Fe00H8wh9u7m050GPB0u1N0i@F0W3E00AeSt141OW100C30YW70G1D00 -mC00000580K9e00WP000000SQ@H0TOBXk30000000WR0s@730uP0pMFsU_60081EXvDAF2cx -qyuLw4AOZ102000002wYpWbpbugS30Cy0SG93JepGtS9SZU200080800KDT2DOpGpqgaC06J -iN10040000O8300oxBaVp3PmB9Qy6ZE2g8rI6E@N200JXRapGo1X0801e0y4ATNYboDG0801 -00001W0000140080CTh1n@d0e0008000000K_TJ5W620plLny@6SBc1XXRmpe6q7U24G01go -@XSZDOKT3UAt00221Pa@mSXCaAT2@Ru1000Sw00G3zymE@904G08R63_@F1e020pzN101001 -040HAa0014XNSD0400qVpFS4U22600UutWoq31008yR@600W0uTT60090Cwl1xmpGih6a3W1 -NsoGFxL8040000WW000WXvDO0U3AhtWzvguolD0Lc0ab@60G020004KCl10I00gcdXluP00W -000e020000W100cad18W005uho@@60102ue_40m00iWZ1M300kD8aCER1000WW00WTHDOKkG -6eyXU_JOkV60mOoY002uOV9guCXV6OOc93A@dXC2CO7V3kzt00202PQgY0W00H0005_@0080 -W2QDu_@40Yg000000808mIpC4vz3BNnG0dLiVW1fjR04W0WktVeerDMdVZ2uJ0000Ap00W82 -n008G000GWyoCOGU981W0SIU5W000oP911202voZHev602008qU60000G0040000GhI6qNi1 -00kgBQ8XfwPuaV380800000X200W040WFxD0800mM@64Zl100042apWW1J080YW010300GWn -tR0004eV_tW0W4mg3C0000W030020GWIoD000810Y0G000006f0ABpWyCPOdE6gRXXB@J080 -00080edJJG080GbZ90900i0y400000030u3S3gQpWd@PG000000IXwnDek@40500G8bW4048 -010A440800W41000Go70000800142WkhP000G20008010W080084000W40000100A10004G0 -000K200bo83baRGB19as@30002@aFXIua0100mceCG420OUT304280200Aw33000M1000G00 -W0CKWm2qD0042008G104400W020W6X0J0OeMC3GW200G0001400500G0G00z@RGC1Cqdk1W4 -0WgmnWHvIOEV62zd10050070W0W00SvV2000HW0S00Gm200W0008Y0280W200084000_bj0W -W0040AWp@D0008008W109W0W0000aW8020001WW0B080NG10C00WMBr0000100110004Src1 -PyRW20G00G18W0040040spx3jVRmptF0002OSr4cscXH0O000010010000C0700_@F1WW50G -00W4800010W42500400I88MWztR0224G0G1200G400400eWGupO600008I0000W0000I0W00 -08G2Wt2z10a0X40G0wizXp_DW900mZoCWA20000_ok_6080WG9000OJ0000qKe40000eDKnl -1G00WWG0001HW30400051H0G00200410z08000a9m1GA0900010C00Gl_6Kkk1NpRGEWRK_T -5080W1C0000W2AwV3000OcVj10000GLG0i@V2VDa00000000p00000W@BWvmN40@l8cP6S0y -F0y7Um5_Y0m@5XNLBoCcNKLgI50_7pCz0LL5Bd1x@R00c1Wg_J003000a4000180000g5n01 -00061000100KQC3000100022008QN_4M0n00W10003m002WO8H2610y21000000CsY400060 -0080600021O20000m82W2G405W90A0J0N0k0c8C1CPf0y0W9210N4004000W00aFW10GH000 -0WsGV2080yXF0000Wo6m0000W8_ryD8GE9W8Y0KQz3ThRGpwF008rwKT300c000Cm8XzAG1L -14zF38Y80U@F1q500000000O03O0000WHNMSc5UTKRw2JLzI000Wpb00GTQRSVh4XGront51 -0O@9f0I_4ddI3nueSL0DA0C6eA@dVrdzU000Wok00m2LR4WE3fuQ00GWao_J00081002a@@D -W004GlYN10mnje1FcqsWm@D8BT3cJBXeqP8OXk01_0KY@6G0007PqWGLDuDL3G040aOU2040 -WQut00G20DL6Lu_6000WDxXDEX@XFnO8lU30002ypl4tFgoi@d00On@@@DMjtWQpJ0H41W02 -000G0020W000GGirM2Pj9HydEP_d0uiJI4002i@l1010W1W002020000100W4WjsCeoB6W00 -0qDYGvZyWz00WvThOrH3Qjt0W000020WAOtW8xD0000IszF0200001GmSgKLEh1zeSo4@68X -00OaV30WW4q4931zdW004W1S4AxV60Tt0qw@6dRR0001010a0000G004W040Yn0004200083 -10Y140sYpWI_Peb@4cA09000qg100ovR380G000004O100000204G464W00H008G00KW0008 -58GX402080XP8C090Gmp76yAd14e406p5900v3HGNH95684101008aG80WSnD00003W02G00 -G40G90180800O0200GGYu64MX1ZiQ000800202fvi4W82WC@h00090400084000030e40000 -0muhV3G04000G101G01K4810GW801G0W0100050040G0H00WjuPOb2a000GnP008C@A00410 -000JmH0000Y9000OG081sKt0123a00004Y4S802GOOT60081ivoL00goZMs300010802x5t0 -10G10a0W40000I0022002G10WcuPG0G0mUx6G0008oT3kc29WsD0R_B100eWT2J00000Qb1H -W0yBW00000XYG80040000W0W2G0008q4WY5tWK_D00m00000qRfZ2000cR00Wogz00O6X000 -000Gc2W@@50vmZg800eq30mpC0O7K0@@RW700000W0000_zV00Cfl144000W70CXDI00ezoc -T300WcQH0TeZG00S30004000G000m4m0030106Wx000I100G3@901WO200nqFtN5sX1vVx10 -0WgUmJeBK300uPA0L1e1kRdEdA00v6P@IIts9ypk10008MHDXE5_Fgm4iD00y@R8RQdGri90 -8088TNFAOJeujJ000Cq0X5rn63xx758d4WJ@cv2U60001Snl172ZH7Z2PG008vwV0W00qQd1 -x8PmvX85tV200m9FcScydhe7rMM4l5GeE0hZtItyCygeP00WWGA00qD9UbiV20WN_OJpPmbq -0lU0KQnFvj26000SQ100vrR310GaRPDBOlJMR@Xi@DuYqq01704xnCXXRGyic10007s00G7m -j00C1000G00002O200beSrm@F00u1CusP00800001OVV9kF_AWpF0jZaPGA9GC00eEmP00S0 -00G0Us3p0040bJzCZwlHrrK10I0OGROW00001W92002qwQ@7oF300qlRaagqVh8WACUns302 -00WS10QiAa0tD00G2mqrCKUz3vbFJPsaaKW1i200gEua6kVebx7Y1lYwkdvfT900e26GU8Ph -RGvw9C6_OXpz0ek3WqdPe0wPQi8giPbGM00G_5jCOl40010oagB00uDHAGI9yCi3l40404ct -tfGlV0GP3mU4ErqVK000um600aToCTKMH0@N1We2lkVgk9z@QMj40WFQV@d000GPA5y0E90y -htIv7J5000Sq200xM1Je_9KT530080000G00G0wm_e00SeaRbAVs@0e00WhsV00X1GVcK1kX -18f0O6rtWWHV0000C00000022HNJbj00WcCRyyV9kNbXs_z00480010WaUJ004G0008Xf@P0 -G0010004WB20vIFF000YuQF100CmQ_60400eFV30o00a5t3800WxLqi6mnhksD0dt043tCr1 -n6000UF200VzV2WW0Wumg300ImMU5b409Nyb30g2WgWFvwO6UKy@zTa00GTng0HjiNKWwQ0w -Sxg_z@VLq@JLz@JP@lKt@75_@Gb@@Jw@xq_@DnR7000@Hup4AxR00EJN3slU0JcT00m@@RaS -S5xw@600@@MFF9tJF_QkY@@H2OS3mjysanE3LwRmGfN100S6O00mV@U4fG5nxRG@_6Kwl1hn -h500lcRzcStz70hW0ae@3RQhuj@6000051G0GO_2LdQ2nvQGM594kH2f0GHK0R4l_3q200In -mZK1WPryIpZeYG9g8A0Ckz_1mvDW3emmu@9aAmChXNn@7Ca205H1KnqoF0210ugyJI58aJpD -00a0m@@CyHk1f0GHK0Xi@V2WZB0c4AaK1Q1011G70Ea205H1GI_@900uulLsGI50c@@@@us@ -Zt@7m910LHVOo_RGJ00eQPdIsFA00dz@@Z12H200000W820oO_@t_n3W10000CWE0O0W10OA -0K45m900000FW1aAG5j3yGq0g8G201HW480004492100W0HW840a03C50AY2u4000Ww9G2I5 -e24100000GG4004D0CWa804a890000GG220000I49804918J1WYe0E10000cXaeK1gGGWm90 -0001n10f2CJvv@F__@Xt@V0f7MW8FXLomQ@6C@u6nu9ntzd000iUIVUUrtWTzF9SpS0Sa0it -FU1CU20006d100rEc3200We7D0200GmS64@ACp8AHD3I00mG_qkAI1WY@@n300OyLd94lLT3 -JAn0l6ymB3S5D0QJ0oOXb0K00Gei6azWVXsQ0GG0W@@b00W4o@@@@@Vu9BR0800000XH@@h8 -000280087Gd0004WRWD0Wz3m@@4cG_6000G2qx@@@L7000SYB6CM_3NcRGCy9KtiV00OKY0V -Za2aRvtA0u20ielVZj720004Y300PDoGTZFa2m3H1WoeNpy@@60dD0M6x1000GD0OGA0F450 -A@@V20a848Y00TzJ200lW@@D000W8400000W421Y8G8II844H0X8100G41G410f0O0a00We0 -GPRu@lXFm0In00m3mRz76Gw6s100Eyt9vG00m14E100007E0000a32u00WmPEf0GHK0F4Gw6 -KE72I5mcy1mudx@x9@@PuK9J@A0081zh5Uloh2eP0W62PBf0RmC00Cb@@@@l1104W@@P0Y00 -GRg9qaj1lhc0Gn7Wat03002GqyFqEl1f08HC0C000W0002OIz6GR000000OMz60000ij_4wh -FdMvb0800GryF08000040npjC00C020000I00Ws7J00040G020000000I@IpCpgUJ0iS1Ge_ -C08008NV3Is7l9WD0008oel90000ql00GZ_AA000040008Y0WXVP00naRq@Ds1c1@@@0G60W -@@LimP3G4104xy3O200wSNH040YPKRGe2C00OHlwX61100I04H4Y00mAsC0ox0uqi61000G1 -00eWv7i400KtlYtNN100Pb@@R40c0m@@I0a91u@V51G0WC9k4000OS900qyWY00200009y@@ -3002L_@@@CSi10Y0GW@C485LXup3M08000WoO5Q000B2a@V200clpu_@SsA2000Ya10WMp@@ -NCRo_@1ma80rwxNBkISzl4Q100_@VovUO00m2Jo__5LT2DM@GqLC0qE1u@@@JT@@Jx@lq@@@ -@@@Wn@@Nz@xb@@Tz@@@@@@x795000LRlK@s6y4_90100o2JY2dV00G0000mj1oP8uRI6IdXl -qDODT9U2NbEFhOQy4010008000mf3m0vCyqCRZdV2000wi5guIzJ02004UG2HqZ100WWvhP0 -010mXP60000P4S3gK0Z@@J00mWJZifz@VEWs00Y_7l9jF1000Fb10W5u1BxX7U@BXi7E100G -No_@@Mk7@@V2008EL000Tp_@U2vCyF3WEV0Mxz@@@PG400G0EUawF600w1__tC0008lvRm7u -IiyV800H0UySlmUEHi00GAll100WAs@M00qEswnd00000jz0SRiP00K00400Utg14000cVe5 -b100bX@@wj900400000C0W000008NY030y0Wvr@FU_IFzFX9ku9HQBlY2lHpo100qUOvuzad -7jXp0Wi4W3uewgm70000kNu6l6w10006D000JlJLVw9y1G2Xg@m7yCK3l4Tnp000Rxaz@@BT -r1Gisd3lzhYYHd@s000WoV00GnVHbKWJ002A@@F@_tcvqsDAsyahZcv@Va00Ghy@VKjlrIa2 -rz@Vf8G00@_Bd@@h000ms@@p3W10e@D3IIUfM6Sw@@@7QcJ000aw4006UcddbLPHwS00S4iG -zF@@F6up0Wbjnx@@@Zn_@Nm@l5z@NX@@Ky@@@@@hy@@1_@F1y@FG@@2u@@2wJoyF700CL9x@ -F0000G000@@@3000QK300Dx@@@@@7l@@7g@VXy@Fe@@@@@@Zm@tey@BI@VYs@V8_@5g@@Wy@ -7e@@@@@@ax@7P@@F_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Pv@@nz@Ny@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@ND800W@@P00004a10W@@R1W00m@@@300000W0Ga2@00W0u@ -VZhCudIAU00WXq@@Y2W2000000008W68Ue6YA000080008f0y0W0Gq0290001QhOiyGU00WX -u@@@@@@@@@@@@@@@@FC0WG0gtfYYUEv@@70sX000000048Ig0a00088VWM6VvaPOy0000d30 -0WobIOHcGY2ua@@@@@@bIXmWe0Gv@VF004_Y0008LWb000d34003800010b5Y726400Gevob -04y01O682Y4IF0IXM45519G92wmJ08AWJ00000m0EFL0d000W000010490m@J000W0004161 -m000200GWKzW00uF102e200GF0We0E1000e000aK1S20a5p@@60000_ohD000a9M518A0I00 -W420oY10G2Gg0RSDW1000oo7ua@@@@@@@@@@@@@@@@@@JViE00nMFwLn@@j000Ge8mk0R400 -_0Qw@VE100ao20WN1D1m@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Lw@@_t@dV_@t -l@Vzz@F@@@@@@@@@@@@@@3r@VG@@7M_@Vj@VNz@lr@@@@@@@@@@@@@@@@@nx@NS@@3@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F0WGu -@@bW00000000000195a9008W@@D0080m@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@NS@@3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@d0000EY000@@Z10G0W@@340G00002s@@ -p1020m@@c1Ie0u@VC0004y@l72000_@7C0008000O9400y@FO0080sOW700Eu@@39004W@@V -08F0m@@_5AX70000000mGK008xXzAeeY@@V00Wty@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@yF46300G0MXwX@@R1eW2GuRu5idAW7002VZA00047bnmIPIy@lA00OeFJ3i@@D0800I2O -6a1630040k1B1008001400080a5c40R00_@FA02800440W000KJc13bP00100020W0500100 -00GW04eG00004G008W080010W00000L002000CmPuIumY4000mx200e21II1WY07a000010W -000100bwPmt3CCjd1060W2tp0G100004000G0qTe1brPGxWCaON2000GINJYp_g850Akz330 -02000G0gMC10010000W0280D_c1008000W0zyW1020G008W4NW1e08G02G01400O523Y3C10 -00io600E9yA4G00G00000W0000800080080000200400YBa142G0JMu1000000no@@7rtc6C -MP20104180G800000X0000C0902000W401200000Ga0000080G2049NcGZ56SLu3YcQ0_@dA -1000BFQ0W000020001000208200020G0X0e00008400019W40800G0OWW04H00YG20041000 -O0q0O20402oU81U000pXU5G000m090000H010a009H10081AP09000400400Y0084000I200 -0XX0W0000920ELvXvGD8jG300OB_NO5@@p304000800002G000e0aG00m3I10f20i4A0GY5G -0XGHe0PW0G0m0198816G4O20G020G15QWH01W1W00G22140G0000e000G0u0660MZ0Co8C3g -U2WOW0008WdUOW004G400X0CGc088W20I80G0320804GG4W4WH6D3202140442000H0WwFC0 -0001000G40W0jWQ0000G1300dZs51000004W0000GWIAjHQ2000W04012000a2A1m4h60098 -00W0400e4000G020f00Y008Y000H00002000htrMEpPdj000441G0000024G00xmQ0041000 -01K00000G0W0502000000G10080WW0500W00G2800W0030W00e000500G0000IP1e1qJ_hL5 -W004Ndo0G400020402000Y80St930W080G080A440001008800000000B1YW0Crh18000G00 -000100000Af80WvHYwAN3020000W200IW01081b81GA0G08W0G1000008E29Gi00cu8Y04G0 -G02W2G00200005100000IW01000021Wa000080008b002000000ikqc4FfCX1010WwaPW8K0 -0000Gl000V6d000K4K00000m600000090020040200002S0W0000882020GG0W80W3WqUD0K -l00000009207aW40_8WObDG00000U4000Wg0004P604XU0WoS0e0d180820W000W00_000yH -K00082O6005ag0000WPcBGL@N4pCl8cP600yF0y@Vm5_Y0000100003910WXRZ220000020O -000e2m000W10002000OC00mC020L0C0gI1W10e2W003050N0A000MH0KWY0e0S1G1u2u2m4m -5X9W920024080000B6dMd000cW@@N20_@@mo90_000_8605S600e005BO0000A02W8aF05uC -0080000GU0G9r6000140p0m@@F0680u@@@@@@@@@3@K_4sK2900vUzQdM2RIy@@9WKD0k2Bg -quDOy9a000G7O@6PqJLf@p00e3ACy@@I@@ku@VB@@@@@@@@@@@@@@@@@@@@@@VH10eZFSTKB -Sv400000dD09dBt@@j0000ZE00G5PXy@@@@@RC0002P0005vXn90JaKWYDxBny_GEfv@HY_@ -Zg@t8x@Bw_VYm@Vey@5I@@Ws@78_vBxRG80Gq4G8R@Z1OB0Wa26hFwAIAG55300zm@Vet51K -K1OP@07IyXk4V0000h@18W@@dSzD600eeTx0anjB1G@5W25@FCz@@Y@@ky@@@@@@@@@@@@@@ -@@@@@@@@@FBy7wYZX_mbeKSC000mqDt3vZpJMuXKQN2zXN1001Wa2yu5z4o7Fd0x@7u02muw -9Kl_3Vk@m_r9ypk1FjZ10G0WukT20GQpq0OakV2LX7oX5KrzF3WtE0EIGYomDuDS3s3FXS0U -8mlDYmt9000m0320_@7ZfDmua@7Y28aw_@@@@@pm@@@@@@@@@@@@@@@@@@@@@@@@Wuez@VO0 -0aX52dJ3OvHeRs0CZ1OggF100Wx400u@@bcGpWZ_S20mMxeuLK189@pxHWOjS283b1cm9W90 -EA18Dm4s3KYgoEvd_700W04e@9fyNnG@6aUV20007WE00yee4J_dGr0jKX@L00k@tZtZj@9P -6khUYC1Wk60HJeoZya0080ONI3QoqWYB@fSJ3a940Kj935NQ0W00W5BJezo4cja100085Rg2 -000aP1I88p4I1WYe0I88b7S500ikIKhzx40Wul@@@1880m1fgyEw3f0Gna39SgQ200w024eY -tIbOeq708G0aF13XK8nvf6Kug1jj_GA0K45W4XIa000aIG000BmcGBi6020WOQL6YXD100Y0 -9k8n0ba00I0e307I1WYe0auSK3000GhS00u@@Jo9bXpIDufaJ0001r1W3f0GHK0Iy@V200C0 -_@@@DiK7KA0m_6LKBBU1ILXD00W@@BwV8j00yNs5DL@@x4m@7W@@N24HG8a00W@@@Fc2a400 -00m00e30640W143W1zcRGA0F45G5L2m0Wh6mi0E9LWG_@t004810X8G480004Y41100W09G4 -40IWf0GHK0d8G000W74Og021000W840m@@600892019Y400004aW000009H220HI850AY2u4 -90000m08J5G8000E44000GE4W3001d00m@@@7N@@lz@@dw@t9@@Rw@@@@@@@@OyrU0_@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@Vjs@Jxz@pY@liv@7h_@mk@@hy@xQ@@jw@Fh@a50004Vk1vd72 -021W@@D0000ia00W@@J300YHX_6ael1lJdm@@F8G00u@V600yb_@FR0P00Q2Wa85U0ug0mh@ -i180000004W004W000pFOm@@I4im3000ePC00KE@@8000_I8X1ACG00GGA0I4zl72bU0cxd@ -VHO000040W0WpHOe3030100y@V800wXpU0iZHI0G0G0000040010000G000b203Xox1OC4Wn -vlwG4365vXK0aux_G000Wx000e5@hW80000140000000G000G400008009a20300I00002ao -V800Y0Yx@A00G100000280qoY100C0000W00Y085064200af0995e5G00004010000W02000 -001000E090400060u00000800WH0CW00006051000010YKm3A200@@JrY360802000W80080 -080088040W000040001H00G0K0a00FFaGI1U008_z@@k41H100G002450004080G400G0020 -Ha2W18A40I1mWyC21u61m@@Q10LUm31yF0YMLF4Tco8QLfo3PAZ@1WAFyWe@7WK0C0qggY70 -00@300vZuXQ10Wieqo0o020a1K002e00a10083G6G6WCWE0P05WK0O00083G10W@@t00GVo@ -@@@@@@@@@VFSk_@V20090I2B10G000Y000000880000044G800412000O_A8IbOw89sc7000 -40W000014GgKLqN6304000000G205001000800001G0001004080000aG3m@@RCf36d2Om60 -DS809rMPm@@F8040eZj46TA110000404020000G000WTSbJRiFr69_nmsS64fG5pCPmHJ6az -06HJb02000310I8G000G0010G00005010X420000PT0_@@D8200m0W0W4W0Sjt9000WA5Zay -fmu@VO00OW0004n4004K0G0Z000JKa040WWlzO000100G000G00BLO00coX4vKv@VX0W80is -X17POGvQC000W0040000030040000C61a1mPD0hx9NgL90040eD13IAaXphC0G80GVb60000 -qu00GYSdy@lG000G1004X11cHW0CAW00WTGIudI3G800aGY1008008000020u_H300uAd8dA -1ain@@dWO1000H0Y800081m4PVQ00002W0G0rFQ00G000GW000m0000280G200000O000800 -00OA0ASfe@@L10005W000200K082000000ApG40000fa2000000GA00H40000a2490008IgK -0C0000fL40WIvCeFXMEEDa@@91O00GWSC000W2808Am00A41Ye1ob00W2000vF0100G400qX -ZAW000U7Pc@@V0W80W00050u00C00GW8008822001W0C2O00YI0mmaW40A0O0G0M14GeW8W6 -10000N46028000W38HkGMeHb@@L1002414000W0G48000LY0WIW81001001220000G41W449 -0000W4000cS30acvC8f0O_KPcVPD00GI300WD00B0040002000H004G041w30GW10AeF0418 -0e0W8G4W02MA0601K0000EIYSg42x3208G_@76d7000GW7C3WJPA0rFGE94jg08w3FGq@1W@ -LL5LL50UuXeLLLHxF000iL_GYSdy@lG000WL00080C000O0000480080I4O2m4m589WEWVWb -ez0FHW3UY0@W41_1_1y3s3u7u7mJSFWd8u0000PEe0a8t9br_040000300@@t20sH400GAwe -30D@00ArP400088LLP6@1m@00WPCZWFu11@JL2cfC4KLgKbgKvX7eoCpGm7U0Wg200Wji@@@ -@@@Y000mJ300u@VRgm1c@@z6uQ2m9l5DdIE0001wacXD0I8CS300080000Xm000G04WYP89I -vDk@s001019WdG7uO0000gdE360pWcpD0004W020100102800000G80020I80m@@9000kC0x -4knc10002@gc0008W4vCG080mWsFW00000o0GKv600W004001800WOMDeQRC0040A000OME6 -YKmWYpDeHL3000KW002fgz40MK000GWukR96vpW1lV0300mVpHjwh14G01000WSyh10X00AP -d1000K8200_UrWcat00002040WCtDOqT60020000mwvT3020G08W40841mtqy0W050W00128 -010W8Y0000W820042000W@PNwaaY@30004002000W0v@@74100yGr91tZ1G000001aW0808Y -80oO041o9220100ZBD0@@3J3m98300WX00mAm9qAbG08000W00Y0008yH3Ait00004p7C300 -8209C4G4H004000004iHaAMns6440008H200W008008oU3a00000u4w@@J00G4C7f160000G -0200a4X8000002Wj7V0a00mQ@p0G0W0200000G0o800G1GWX80G8cP40J2L3080B02000@B0 -69a400100HG0_hs08000m820m800WKW10500mcsC000K_iVU0G4100XaGH102Y2H0008420W -f4b08000WAyHIYeE1G000000G0082G4X11pC70000500GC@@d00A5W@@j10Y8KFx6GA00eaV -3a000000agQS300ezVwO812O0000100W0p1O00000I500f2O0008WK0C8WE3Axt60W10000e -cZXX@hDubK30GJ0KXd7vBoGvx68400uuR3_Vt00W00DmRGWv6y@FC0050_@t00GG00O00000 -00O03uLU38000WH400000MeuRSGl1riR050Y0X000W0G000C00020m00010O0000WEG1H212 -G70041018W26HG0G08OfzB42W8WGLP00WjQCvU44R2000G0005WG00G0000W0004400NMR00 -8HG00G4000W0b01001G1920mQ@p0010H00000GXQsG01O3000014000000KR300WD00000cS -06KF4WK00208K0I8000WG100G0Y0eW01C0R0GlR884iX204YWG0m10G8wl107msT39at@C0W -80Dv40Ir3kZ_2CZgGuBG1uCU0mk@@760O600en6000guB50qCF0eC10WY_B20700000300WO -000mT000A0C0t1O0GWS6000100mDQW0d0S0000000mD00WVWE1qb0000S700uEmFmTmU0u0@ -000x1GK06ywnC0000006d0m9d0WPUWJcS2pym1sO30DJL0IL0004W0m@@j000cq400WCUj00 -_GL0yG06HVuK8j9Mv4MRs000QPdyknyoLaZQB5xM4WP7W1xXSTx4Uns0000SI000kD6ZZknO -kxVYtsWZXDu@w40810yqg100G0_4tWTkDG00000WjL0002f77oaLFixj1pQRmGu641h1tTZH -ZuC00W0urB6040H00W000C000m000400000840GG08082000028G0200K00000q10y1T8020 -0QvE11G000000kysWLnJ8IT30000ko690408010GiRB3W0088000W004uKS308206BU200H0 -000WIC00eLS32jUZEtP0002GVN6CKk100W0o0t020000842Y_RZonh00020H00000G00K0WI -vr00900020040000m0GG0100W000005oh3wH1xF001G8UT9kFFXfivH600000000600@1dGq -z90870uIHUcEmW@@JOYC3w6@aCsDefU3ktt0000800J0000G000oCQ7300A0000cWU00mmz6 -aIF3NudmSvRyvl1FCQ0000G0011a800H000c7fDpsR0W0000004HzdGz@6SnQ2bBJI8L9CF@ -300WW4100Ccl1CW00scN505005@p080083040oX04IA8XNcD0qm1G_xs4tl1nwR008Y80000 -W00100805rNBW000000100W04008302W800JCGI1CG11HKAW100O00W800000qc04GrBRKQD -60000100CcyU2G4H001000XGG008ZOEeg00GAOu@4w_o00800WI4040H00W8me0R3480000G -aUdk4Ip@X7nbO4R3U8B100400O0001200004X8G00e8H4K8JXPAs202040850000e0WKI1G0 -00008rMdCGAfWu@V30_NGrjk1hk9HYu6izV2W200Y@F1085K8000400IjwY1a2W0000000fG -CfVO0H004sM200W000244zV2001GkMt0000CK100Mu130020zb@mK19040000001eGW00W00 -00AG002Y00000280mXxj05020E000800048Q86010e14a008W0000C00GAK0030000en04W1 -0000G_Z0WW000W8FbcGrsFaQF302804000G0W0X00110K004WGG0060003m10G01Y3OGHfpK -S430124GWW4CPl1002W00020Y00eRV30OF0K@jA0008ATqWjQCG0G400000W404080002W0a -5d1TUhY00008n200WWG0m00G8wl104G2Kes64m0R0000GG800004AnD30000YHOB00004K0G -WboP0010GRhF000W40042I00WDTDW0mM006WDeG@18004X202W020W0000gjH10m607ntY@4 -1WW@Pm60UD10KLPi100eg7Y@F100Xm@@Z10@pW@@F100eg3000JKr30St80ua0yllA000nP0 -0WxWi0m1_100c300060nmb0C0uW4tI0Ke3000Y000_1G000MJa100004H00sqd1000m80000 -0J0Z000m1C100o2000E00Wi300O703mFGM04GsS9yzeDK500WH10gn60agPyA00e_xKI0000 -0h0005K00X_d3LV10L100w6100G1peA0lZ80_oHMU4p@C00OVIDVlK@b8isA00p0ipl1hAfo -CkICbG8L_o3000OA200fE@G@U_5@h4000St@FdeZP8xlGUsqW4mDeSy4MVE1080K0010grEX -JtV0KE9W00G10000zmb0008000a00W8000G0D@F3BcNnBP9aJe4rXd000WWOlJOkh4003000 -00POr400000W2000000W08eAnD0100000580020000G5508Dmi4xiQGWw6C5T2ndRGgw9yZE -3jhBHN5Laa536000000200140400000G0G1G0A0004000002108G0GUx6aKj100CLBPrWHtP -03000180000088100_@F10009VgN1Q00W_e9vO030004apV2000GIdMYZeO0000nYT60mw5m -000GKVI00IW8yV6EsMYl93PuU3AdpZgoI8oU300G00001SvQ3Qps00004000mb600SOP8zsR -GnMIy3E9pMMnuz6Sgh1HsR0000Y@fDW0000W00mvhD0O02000000CkLzgG20W0Wlo@vuwDW0 -800304uZy72ztWN@D0Km0mj@O080004G0n3gTjOl1Psd0008WQ@JuB_4000W4aI500801080 -CDk101G0RRtW1PM200810000W00W020G001010O0W0004W000W200GW00A8F100102400008 -kS4E6PbR08002028000800104ccg4VfkHLy6000meCUC0G0000c0eST3G000000e00040100 -4110I00G000M00G0GDSU30_w0y@l400WG000A1G0W04m0mw1600808I59MOtWv@t0008LtiI -4yG2806Y00004@k14I00U0m09a00000X04G0a0U20008i200y@l4W200G864a3k10GA1Qrt0 -8G4Wf2aGu_90021O@@DMMzXSvC04000000Y87C00GXHOu6Ctl1m800000000CW0400G2u602 -e000mcxxeRK_l1HWd00W0Y_mVu7AF000W2000G044GA0FSak1A82uG001WY00O4030308000 -E444e040c01G4e0H0W0I0G000W03000m23Wqxh0AWG8Xe88000080WWG040Y10040WW20WW0 -0440P@p0G00000A02200_N2ZtGh80U30W0G9081gWU600050GW0000110W0001W02000000G -200WNX00GQnL08GW0G0G88000410020W000W0040000H000000G500hdp0110WwSn0020Y20 -0WBBV00W000208W0R1084ooUB1a500000KG@0484IG9Hy4K00309K000GWv@@I000WL1042s -G102G000O0000PZ0W202AWKIWS9yqO20e4000080010eYvPkft000WAB@R00@lB0W70X9N1G -Q7Wz_z8HW4Y0F7000OlI@00G0000C000u200u7WBG4060K08000g00002000_100C3u2W045 -0E0XOtC00002g00Wuch0100k3O2K3a50C0300WE046k100y30000G700eyV60o00000a9u0X -00W74_l1m004sdc100d_VOlHdT90000CJCvs@F1mdE0pz@JusmSkO200G00000A100eyR600 -00220Xe8n7u400yxD37V@Gmu90040O@x7k0@XRmLH010mzUj00uODhlVoLtcOmJ0840myoF0 -880fqw70no0aAu61ZdGSQCaFO57hJ2W00000W000WG000WCvj10008008000208oy4EbrWOp -P0000gO00W4tD0050mhu64Vk10200EILYa@9vOO3khFXrkPeg73_@t002400800MXnWEpD00 -008001O0400W008Ylt00480002000SNZ000OJS3wBF104e0ridW0WW00G000002EOdXar2vk -_4g8dXqtJuxL681000004uv_4000GW000400XmysC0oaGODT30088Ktl1000GYJEX46Ou@@J -cHwX@@PW001000G0W00G000000mG0008eXT3ggF1W0040500MPF10009000W000G5Tf1G000 -0010S8l1b@b0e0000G0GG004UVNY3x@PfjM008IFH_3200W800020009P_4kAdd28dfOV3ot -Z1JJ90Ne810000900020G0000PAI00uf0sw_N2000OQ600_@d100300000G010O000P0U6k@ -ScrLj1000uUrF00W6iTJCaC04qZV2@RLnkgK1080W4G00800WIzP0G13mV_6C4V200G00G4I -W1K62W20GNv6000000C1GuhZ5cb10080Efd1000CG600_@d10K400O4002AGG0071W01Gku6 -8000uGLp8020G0008sj7008eKb832GA10100020a2Y0aGFz9GAe0O8tq00K802e8AFn70OC0 -y_l1G000Y4F10WWGNw@mfvF4zhMG205WCe11002AWz4000GAD22OaT380000082000C00GG8 -1008JeR040W122YHY002AfygO@beC33_Ic100LDj@d0Y00G00L0000K1A40iZY10W0W0008K -hY1FXRmKoT1008p8400WG1WwPJe@V30yv0e00000800180000004YiR0W1805gj114mMEuF4 -vSQlcPGpzC0700ukV941WJQ20paAx2GkuCiDzO000GD00Wtyc1f@d00WCv8_Dm000Y1W0078 -300OF0o5F1O0C1m0W3o1FXIi7hRwA0FJ0afd40C20rD20wmCs500StUxCyszIdvh2000qC7a -ev8XIbUZYcDuNO6swMYxsV00mdJTnUSzE3BDfrCxU08h1uIFgsWV3100400W000H0ici77X_ -G8xFKDE3Vi@pQgX40k10002gPt00G080824008000809_y400eT2004OlT323tWoSPOsT9Y_ -NbLrh87S3Uu81000W1ypmGz6SOV2Nsd0Of0WLuC8mU3Ikt0G0400040USoWrE9f6V3w_tWXb -Vu@VF0GG0qdl14G00wsB10008tsPGWy6000W64080200WnDDua@Gg1tZXu310020W00Wmis0 -04000m8WAsDuz@400qP@Bk19xd0G04000440008sWt0G002B_JIKSdaVU8vwM1WE70W000hs -dGmz6y1C3fUIL_TU0400O_T3w@t000mCQ200UL@XQmlglDI000Gqlh1V_p000wM0000rxR00 -00ezICuZdk0W00G000eBvAU@q000010400sQd10h60L7qI_w2zam3F_p008W08000G000100 -GavV2000uf8000002gdV301010000000ZmswNDXf1xQoGKvIG00We6C3A@F100VGW040sTb1 -u000200WQqEXz@IBIoD0lk04xj1WoC0G00008W88EH@ocj222W0000G80000000i4S3Upehg -V3va7900uH6CV2G4000K010YG401e0HMcW5X_640008400qUF30HT0AktWfvJ0G80001GWYH -xAx1Om0800000I800Gsy60M00m0e1IM6lzyl400Stp@F100AoL_Z1004Xq4rAWSC00W00002 -0200mZqC0A900000000YB00C1G002W00089000m00mpy64e1LG100MQ730mFW0000000e6@F -3000eD300y@V200W1C000KFIZ000000K9dVcATX@3040WKij10Y00G00G0020pyEsnEs000W -3i00msjfLKiD00cDEQtWZtDempPI@4ZgpPu5D3sFt000200802001G8000w6S3IDtWnoC0G0 -3IcQ90018G00GW0000mUZ200880W00ijj10080I27Zxh29Gz4MXXXogCOvU3YWt0018G00W0 -000880200W06nCJC00010100mtv9W01G00221000Q51000GG2M1t0000G4080kpE1G00000W -0sV@100020001UdFXXLD0080Gs_64Nk11hRG__6yLk1BQR02000000e00Y08W020G680200I -aT90010G0300G08G000001800040000Km000WHG0000wfO0004002qGl1Pbp0020awfPOg_4 -oesWrwD8hZ4QUD14000nv@Gjt641R2Vpd0000eAMC8mU604G0rPV20100C00008000mL0000 -268W00LdR0021mmep1101GbuOa@k1O0000008W2088JV3El@1000WhBP06W0WqmP0000cq00 -WC@D0W40000200009402SE9yaH_J0W0200040000YG40062i200G2jvpGU@6iN_30G004002 -8000102100GGay@J0034000019000x@R0380WIyWf@@40G4H8800ORKFExdXWxD0G00Gn@60 -080000404G8000Y1G000YUd1mIH0buR02G2010002020W00WC26O20042KdXDuJ00W08000o -2JV0000by80WLJJW0001320mizDOnyMw@8Xzph080400001G0W0HvRm6z6004H00O000G4WA -sC00000022G1082u0KcC89000Gquv@400uGG00G030WW120984G0G006G04408Y08SUL00W0 -0000XG000X0002G4H3jNHDd6004000G006m000A002420Ard1001000G00002Y0Y10002041 -00C200j_d0m6BWY@D0042004W2Z010A9G0180000G0OPV3A@tZ8_DeeT3G4H0rCh4foZ1200 -0400GLgP00WaG00500100sqs00G80Hbo0000Mm300Bc_mcj90010O3JF6zm0000G00H00002 -G0W08@y72KdXc_b00G00Y20Xm@D0049000000GC013B10W6sX7t0800muwU000W00G000W00 -50000014_@dXh9COiV3oyL20080L@nmYY6000004H0Ge@6yiF3WsV0s_t00G0H0000IDt080 -0001W0M5b40W20K000cxt000104WW0I0zaqRPOUU6MrnWCwP0000DP00W@@D00X00000GGA4 -00008kp4610000W80QjDXmsJeI43QcFXZeP88P3m0024_l1W40000e0q0W11j_GUOFKyC3tr -OmDgX00W0100000180041H200GQCsZmtOOj@A00Pzbwl1GMV0s@F1mq70lid0Kv70WxE0lwO -0000Gwh20x@V20iE500m3ORi98j7JbhZ100000C10KyE3000050004Dh1nmb004C0004jm00 -0wgF10LB00C0C2fb1000uW10008000m0G0W1W102030006JJR000G42000VaI2W900WC020O -0P020o0K02v@VF2Im0WxE0HNRmR26yxu3kZ00000KryV200YhNLm00WS400L_10e000Kv706 -0GKO76xl10ET0AfVijlbOOzAI1l2000aQ500wAsZoqbOjB3oJt01000zad00G0mepL9YLL00 -02s5hJ@@N1GW0Wg_99HRC0aX0q0CC9fd00G000W007ad000GWdcFffPFI5t00400zYR0000S -V300vWRmhD60080yMU3A8mW9tLPaOLcsEXRmPuXT6YN@100vNFbx1200W8ph0100mJ_6aeb1 -W2004101Cdy900O8czVZFzb0u62G__60000CdV36wdXzxDO8_GouMbhunei262at00W00LoR -0000I6000fopGtK6azG8080026CXLCC00q00200esDdyaW9RIu@b8_F9Z@F2v@YK_V8c@3ov -@@@pve@P0040CHA3Pp_0OR6WqxP8PB60008Kj@6L_pG9@U0W000480my@6qGS2X4Rma@U000 -80000100041300xVQ080WWJHPu2w7_b_Xwlte_U94000G000OMy4w0mWK0O8UO6s8@100100 -0Sb100020002020Oc0900W0eyQ3g5WX@7GgIxDM9cXVYP0S60GrsdKk@32001AvkYSwJ0800 -W008000K00010G00004008xE30m000000OKQ30000W0080940Q3l9i2j1jWd08800000utfQ -mf_6CXe1008eYskY_dD81w4s5t00G000W001G000Y00gEV3G811I22088S3_ps00G0088020 -0H10G000W08Lt@60284000288210028040W0s7mW1CCW8G0000W850121cR00WeQ0004KW00 -W80025000A00nKy6e00GG00W1000120G09rR000W01KG0n@P002A004K0RWR0028004080PW -002000aG0G000a042WT0D0210W020awwD0110W080a3HDevS3040000W0X00021080080000 -8A_mt0000601000GX404200018000000PE00044400W000W000030010010C0006000400G0 -000WGD_6Cej14X0000100420W0400200WpACW040080802002heR006000440ZpR00200000 -208W00G00080W008000G10Ge00004000140100100082004aG0C0e00sQtWjiDOjP6000mQC -00uzN30a20S5X1DURm5m6a5F3GW04cPZ14000ZlR008W0G0H08420G0WKiBl1VzRGqpXW004 -8ZU3a000ilj1800Y018GG2Y0u5p4010000eIjER9MilYVyPuGm4000000H0etR30002zyT2O -021_sdamODuwU600414nl1TypW910WkyQvxoA000n0000100GC0010G400pzAHtrL004GOwt -70W01010820180000Y5zJ0000Zt00W0HjvDJ3Au@10002000Y00W100W0GG0Wmh9U0410080 -WGU@FG00m8fy7EorW1DJ0082Gt@Ry7X1Lxd00W000410R@R0000820000804m00000G2WWW0 -0G0G804009wdmtyIG00e0944004000K01RsR00101844400440100W590OK@40Ww0aYz3000 -2g7mW6xV0030Gj@6K_l1K100CA0084000e000000G002G0I2GG00AW042W00W2120WZiz000 -W202800GH17cOmj@600900534gAeeaj@P00007@00W0tJ0004mD294yU5rZ_m4u600W0W841 -006400C80264W841W008000I1GzDXCoV2BSR0000001G2000I10KG2020uw@400y9FCv90G0 -80G2000040a82000G821100010840G020001218400008aGA000010m0W08gV@4Ucl5G004D -1PGm@6KdV2W_B0Mq@480008200002Xe00000OW10000G0060GKH11002ZICA503UJr0eW80f -NKnbfO00018pV30G0005000084GP0C0000YJ00Gr@aCSk10040C08WA80WKW3100001Y10W0 -Z88OI01G647a5020108enyP000WIejR000011080800WfsV00208O00WTqP000Bsw@j8000P -ZT3gTt000Y00Q0002G0000002GW2G000000zA00G06A0G000um232wbacaC0GW0B0004W520 -ncd00208W00001U06@@44T0100040W048400002Gl3080aX2zEWWGG6A0G02010100Xe@200 -08GP60GMV0aGJ2000YG40Yasl4000z10000G4H0o000GW1WnzP0004GQtC0000VngV0000w0 -00G_1000400x2u9E1mh1000h000t1g000m0020000G40Yw730600nRR008000002000W1000 -h000INO0GA0C00GrVeT6A9t3WC000T080_1O0W3u200W1000S000uE00mT0NWx0C0m0w000Y -2WWCOOoxGO60000108mS6IDFXHxDu@V30yB0q_l10WA@2p_ayqhe6V3ym@0KmT5NzRGkzI4q -D900003IHY4gRf8SIMNpWidbeK@4E57Ze@D00mI48GGW@iF1840000001400LfdmK_6aMl12 -010QGnZWkhObRFAPt0WH104010YD@A1000tYRmLA6W200OsSFkPl2000Ko420IH7ZQvVO9V3 -QVoWntPehS30024y@l1200WMlt0001402G0AMt01100@mdG6I6800X24000W01000WARvb00 -080iG00XSRG4u9008s4000040012W0H0000kbYXPqb0m00mIzaW028000G018001G008080H -010W0200Z50W14G008O008008004W221W05GmYP60000n00WW00W0000XA2A00404XW03OKU -604u1Czk1G0W0gW@1000120020004SDV2dbR0080000G0W000K010i_l100WOggmWCzDG802 -00G008004Y0400181800G0200a200000020H0000011W0G0G00XG3CWpqDGGGC4080024000 -0e150000003uHU6000mvO020080040WWsxDeET600020040uga4EmdXDwVeAB3_lnWDsD008 -0008000480TwR0KA000m02G00400040010000X04GWW1cCuRV3Itt0100CKYG0400WW0W008 -01o@@600GuDCV3oUmWfvPe2C6_@tWe9C8Hy40W28qw@3v_R0400XQ@V000Y1OW1WmrD00W00 -0G000W04tsb0044WNVI00WG00D8eT@JucU30@f0K_V20001kbtWz@bO229E@7Za4DedF3408 -0ycl1n5Q00000012W004000X1G000080100XG2010Y0W2Kk_AXryJ0W00mRY60006YK20004 -0WOxD080G00090a000djpmGcCSAv61VYne_600428KG3800800G000020000m@GDump40000 -0IWH00000430004W0200A_@t000Z_L@Rml@CSh@3p@dGW@Li9H2@@7YG01aX_JO6V3UkJ208 -0DG000G0084843WZB0ocC10W0A0Y100120Kwl7hvbG1@6aa23HbQmiM9W000SwV302W01B00 -00aG1080000W04001015400X40WWm00001W0400020004000e010eW42GT40W8I02300X40a -5c1C320Yep0W0000G3Wm1XW0004Q6L66@mW2OPeiE30000EbA34001kNr00840PGQGf@6000 -1000A8YeG0098X040Y0HWa02G0WWWK0000O0400804H00W2e0C0G000W0810348B44GaG000 -001u00040408G000000gdpIr0000104W80W00002AiLM90018000020G0GzgCyxQ2@4OGsh9 -0G01epr40500000020018H0020000W400k3b100800GA4sVD1G000FzR0100ojDDO@V30wJ0 -4SB30G08wxuXi0IOZN300G45AR5@@p0200YwUVej132wbX_6C00000G40WfVP00GK1e00XSU -P0000jp10WsUPehr70100K_h1DJO0800gsWD0400mWmX0408u@V300AW00H0WW020051WAUD -8W23G2000104Og438000skh18844c8q00001b1R00WAfmTVuKM66KW1000W0m08WW000000a -00000W0WutIupM94000000Xw@@40G40XW18209100G1aRLD000GW00G004028H400081qWL2 -00XO8221CA4300000CfG4SC38080A3mWmWhG80mW00WW@@nOas4_CoWUaD8U53090004G0eO -P3000m20020GW0Y00000X20000G0G0000810000200eaNMD00GW420G00K00nIQWD00WcZP0 -H20GSlIe000ufL3o7WXOvCOmhDoTB1000400@@0G4H0000W02u70820E000eoT000G00m307 -00SKZl600000@04000WA_XA00WW2_@F100Fo@@p00GbV0E00@@B1Kv7W@@z008hF0_8Y@@J0 -00N00040O001PJP0W0000N000C0C0K1O0W2m000WHMi68000d1G0C2K1W9YC0002000C000w -0m000e303000006000G100Gv20BOR000P080G0W000W100CXD30O00scsW6QDePE3ocBX8IJ -eoZ7Igs00W100000000O49j100WK5GL042a40GXx0000WA000Sy300000Kv7g00004GV0000 -a100G6000KS200hmP000820u70000_100Kz@F60K500000u100u@VLsps000027WpG70Ey@l -7000Gr400atgA@@BK6F6Kne1xVRGthICIz300iGBBJYApn8XSI_@lN2008TjR0080000m000 -60ofEX2Zz0000n3uC00W2e8_7sM@X1CzOOU3MNsWRVCefy4_AF1000W001200100W041W000 -0040401W3HRGOx680014W00mcu900W000mUq7z90W0K0000402S4W000ndpGzz9G0W0u1PCW -00Wack105W0_@t0001Wpod00G0A2000aW02GX00W088000W106WYpmD8_N308X120O2040W0 -002402m0880008G2jHV2Wx400020W0E0OqU3kut00500V_RGAS64iZ1zjdmNs9K@F31tRm9@ -6K8b10190W000qzk140Y00400Dsl105X00W800002W800IC_6000418010O4280800W82W_f -tWV@J00005510040G04000402100000801mvf6Sbl1G010wdF10808X5Pm7cI0W00uGd46Ic -XPwP0080W0G11040000010W0A09000C0W00W20083400W06oB10014u001800022408LU300 -Wgr2R200W10400004700GGmc@CSlD3vsNnD_6i9Y1H1o0000IG040HCPGvsCq8Q2t@810G00 -802001G400202001e7U30kA00002Oxy4WI000400A@@Y0a00000000O2mUw6CJb14100shA1 -0100vU@mVL6WG000001200020804W810000J1O008v@7AqUZUEbOnEC0009G000G08C2100m -pdJek13MfAX6vmOHS3W4244xl1000NQYt01002XpdGKDgi@_600G00004090000000Y41W4l -Pu@G3kZFXvvOOXT302080000004020I400000Wa60oct00010BfRGNC8XY21003M3G440W4m -CWW00W8G000000C00mrv600200C000010XYRP00W000002a0010O010G0aW4A4WC584000Kj -20000G0006004000400240GWkoyufzJM6q001m4G10085088000uYC30G0000OG0118GCa6q -m@3080P801020e818GG2Y18210K0000000SH32000282000W080G02G000081WG108a2Xc0F -100G200828240Sre17udmRs6CGB3BZR01000I10e00008W0Gy@l103J0Yut001905jRmbZOS -Ts3Tjpm48X02000G00GGJ60A40u2U3MppWiwP8x13000W0030000W04400004K0008mB0208 -00OAU300HGKE_6rsNnGSOqxU2W0000004A384444820880W8400428080GW400000enm@F00 -8m1041000W8G201401G010C01G000GHulRFKEN29_N1HG4Wn9bOnOI0G220WG000W00060G0 -80Wx@RmMuI000M21800500100K0802000W0G0000KM20W80Wx@J0H00qiLjKIU2n6BnHl60J -Q000i108B00m022DbcGYRIi_l10W_0oYp040022001Gq10000G0000ff11WxSD0020GuRO4l -f11qPGI_F4DW4x@R000u36000Cu760uKJ1mF08hV6ixk0qLD640m000WP0WheYVg200a100y -o30400000mFoy31kKqDS6000281E308000O200e3W002030C04XlPGYRC4zV200e200m5G5G -6WA0CGK090C708yD300010108OHJ364kYH1au5WBk@t00SU000W9yy00gcQ0qa000000Gxk3 -0fpO0000mJsDe6F90OZ8a_F3W82050004DZ1VkRm5n6q1U5xidphtg8000eyU3QwtWGqJ000 -0x4tIKR_6pLMHZvLShd1zzAnNjOiQR2TczGPU9aAG29bVIPwU4UNKWYT0EeJbUxDu5C6E5QZ -LkU8p_4Iol204008800IEtWpiIegU3000mX8000000000GY3wEPe9O840G4eD300W0010022 -00OWV36XqWCCC000G021W0G008W108000080G0u@V300mO200GG00W000W000500100wREXP -YguGVC04G0qJF3G0004G808000100GW08000G00FmRW0B04040109W20008G00A114000000 -8G0GeX00gzs0aG018W01K5000e020080WW2002000W3N8800000W209W04200amjPOdv42yF -10480vARGlzFqsi40001G004008W00XGW010082000800000a0080G00201L40000W0WZ0WW -000006000Yo7@6G022W2160G0C2G0008W108002W00G0000iS1008400G0W0000130800G00 -miv6040GuBB3gsd1a000V_@mr@680W0fvV6wkZX1@P010e000G01080XfRGz@6000200GW02 -0W1800004G0000805I0eA93IMt000Ms0210000GG08eOG93AytZzBVum@D00E00000020Cmb -z6KYU2reR0000100120Y0050020100G0808000H01W02800BlD10W21x@R0mbJ00WW00054Y -XFXmuC8CuA00G0zwfA4010YmtWjyJ823340040022a000mL@6800GG4001041100e0JPOmiw -6W080O@V3000Jm7000000010GYgrbOAO9oZ1cAnVOxV36_tWgvD000020W400W404001Yqt0 -2089t7@000F3080800G80048i4o3xoXHwnX4rF3G1100600aCF3bpd0040800410100ozEX_ -WJ0400qepC0W_10A20GkEgCmZAm21000000X245004oW69GG00040G810000804840C0a0O0 -0281106808I00K2W4GW040GW000Yf3S3GG0004000000bl1W0A208u10I020AG004P0_DsGF -XdO9PiU30mW0KXh1rMRGjz6G00mW02Y00201Y002020I006090Y40Y8G08G10080K80WeG20 -000K80900qu@600ueW012410002411xURGHzR0G0WG004n0jj0Af0e2_400021010009851e -00000042Y4410000104200004I8G000080f000GkeU2jpd08NJWsRF10008001WD8Xf5V300 -04XG0000O00c00WmtC004XX000C0000GG63100413C000000401qijD0041me_90000sD805 -0GGWZWLPC3L000001C00C0000000GG0eK000xto00OG2@_R0H0O2a00001n0K00000O00180 -22Y1Wl@D8qV6004Vlvl12202UcC40020VyRmDld0000Y010mN79iwl100080800igf18HW0Q -4E10mAG2G00Iwt02000NYPG8S6y0j180WW6_cXe3CedP90L004@fA1yR0w50100080f0000G -e00180004004WC7000005gT01W0440W040200002G@1080mW2r546k1nvd00001000yIW80g -xSZ4uEfpU9000HSqj1JtBX62008hF00WV0GbV0000G5000000wRV100G50000We200wJV00G -T_60W_x7W0000WnG_38000000m@0w0Kv@7AOgsV300w03RRWW00WRwD0u700G6030S04000C -000W1000t100g1m0S7W10E030006000m100WA000P0K100W0W0ELr000000cK000W10002WA -04mXCUSGd1hKbG8tXe@@0000ydl08YhpJulV60OA0azM2a10@QHt0KL0W2000EAtW6yO0Sk3 -00100000uh_xHSx6apW15JJrmNR00mj9A93Y1VcuUs00800400WlnP0080GQH9qGk1004000 -00AW000G00GErIy5l1z@R0uz00002XPgLnevgyES5NY7olm6KmE92300ky7Zrrp100GGAy6S -gE3HAym2mCq6Q5HfO0000000Hm0000D200D3rCXTpmhqI00010000Iz_9SPd1Rbo0W00Yw@D -eqV3Yzd10084ZzR00WW00000WS00080H0001e4T3Q0@XnhJeXJ32ydX3oD00W2mYu9SUU800 -8YA7d114W000020W0000002401W0a0000402010044051d1vgP0000Eo63020106Bm0241W0 -201010080188CS3Ist00010200201000802v7T3cg@XrMJegz7MGFXDID0080HzuCGY00000 -0W80400080W0204200isk1002eM1m0000K400000SO3008m400G8@608G04010200G01400r -ya0G0000109000W004GasG2jldm4t9qSR2TjpGujC0000iQS6kFtWL@D00W0GTw90001Ayz7 -0OwK120000G0240000CW0brpmx@CSRV2XiRm3_944E3LF2JIH9qgX4@@p0000QU100dkd000 -440208G08GcbrZf_JeMnG0000A000CsRLczl20C1hBoRm2O6SSz6FYNHq_9qb9FjSNHAxC00 -U0eyV3G020Csk1G0G0YNlbOYV8jTL_T@40008S700QNt00110pv1p1J94CJB9kdGQx9ibV2D -NPmyxF00GY4W040C080020G800000H000Y4e@KLILnWmxt00G040W0efvn0G00GVZOyLF3WP -10A@t08G0808GY008000GWOP@AIkt01000Vtd000WWsGIO1xA000G1A018DGCott02100zco -Gi7LuR00uzV304a000G4w@VO00H0CdACr@d0W002000C@_@GEqI000PfiQ68060ySnCx1x10 -8mXIOn0010000400401f_d0006WZ@b04520200W_wIWW20m@@j0220OaVX_oFXo7D8v@7000 -GY78000000420WlR9vld4AoLY7xb08000000M00007U@mw@600G287S36HtWlzD0H2Gml@I0 -00HEtT6000W8002eE03_@daUoDegjS00W94eE90nN0M@tWhhDW_000z@7mpmR1W2A00000@z -30rTBnRm6am@600S3kX_1WC000408I4d1000We00008000G0G001W00A0200WAXXZnx@9S6_ -30P00I953P000JRgorsO00mNVaH380000Wg0OkUIA5tfMnJ0001G_pO0Cu0eGdP6Btce8z8I -S60008C@V2000Gv301yP_9XzR000AWmvD8aV3UxEXYr99BTCwps300Dv9aho6_6K1A31cVIq -vaKZ@3@DRm@@60qW0ODzMcbd10A00d1@mgcg4KV2000800K0020000G8010400040u020W10 -0z8j100W00000h50004G0W00W100000W0LQAo0000G0G10sldXDpz8VU30G00rtE9Lrd0040 -0400080G8s9oW@@DW800098000C0180000G01080000WMn2@604WWX0000200040G0020001 -0HCcT2bxd0028WZyJ00H0G56C000e0400msb6KSF9H@RGnC60A0040H000002000W000G006 -H8W01ebV3G21000000OZ1000020C0W40A00004O4020G2000008WGm0j@R000GX__JeZ_4gc -oWLpP0000200090H003ggI8_9qdj1W001G0000W01W0W0000WbUUC000Y00002R300W00000 -01_Sj1ZkOGTv9qjl47vBHy@64Rn3Vh6oNrF0G0G000G020000080W400ULtWkxC0008J0_98 -00000820000aqtJe3830280q_F38200QZoWxyJO_QF6hKYNzDe_x4000400C0W00018W0Wpy -JOfU6CFJ0U1E300204180a@l74000UtmWp@V0402GymUKXF3ruR000010m10lyR0Y00W7yJ0 -0W8mWUCON00Ox@4gWqWDk31080000W00G0HzNmmcbsqUk4PLy0W000009LTLo0400410021v -dW80014142rrdW80400GG402000020G0098MGCs6da8yJuqV30010GW00Y440GsV900W1gx_ -40SM0qyl1000418080080W80YGy@904G8AHn4080Y02000104300000WS00Ge00082ivl1W0 -00Y@FXkKbOpT9WJ000W081008000W00m000G40W4G8G2002I80002080440pER0W000W0400 -00WfAe0yxV2W12Y4Y0084008Kb4400000GGPUV682110022000WHln60010OKq4cbNYwkVOb -I38404yPF30040000IH0000084GPv6qSF30000008YSxl1TiRmjc6ClU2buRGA0C00002H00 -000G80100noaGT_6aNj1dvw1202WJhC81V6400000GG000008G0W1_DO@M3UoF1W@F4t@RG9 -S60142ew@4I4AX70Eu@V3010G200006G0mde6qFU273OmilU00q08cU3E3Y1a0000000m043 -W08O00GGmAF60008000Q080K20W2000eD100000600e00000WWQwDe9Z400000060400000O -GWorD00W200100CG0W400008BW20002400mZ@6aVX1BAwH9wF050000040a00W@@DG0G0G_z -9KBh1NwR0WN7W_@J000I0000K00P01fRmv@6C@l10G00000Gill120001400000G0G22mhGI -yWk4208GIxd10808A0W0YTBXC_D00aD0020Ae0P0004GIXFXy0C0000lZXD00004G100cwt0 -45000004Q0mWB2JG00000GWiaZPW0mM20E09e0P19apGH0Cym@9C300udV0GWC0W0000000G -k3000000TWx0CxF300gQ0000000p00005e00000Ae00000O6W20eW200O6G10lj4D00000YW -700W700000y@F30000GL02GvOC0i8YeyUCW000izQ204000m18a3k1n_RW000K3010C03023 -t000S100K1W100030AeCE30C000_21000H008p088Y0m001820003000e000H400Y8W84H08 -0W0G000m0008A00G4200HAG4YK060u0g000x1000700G4100a1WW820208eSE3USFXY8teqV -6kUp0_@F0xvdW300WRtP0000iW00G8Y000mC0QmF1W006P@@00Gb@_@D004HKd2600u1m@@1 -00000W160@@R0003W70EuLjJoZE10800PNx1uY7WxlDuJT6410020G08XT30020yLF9bQ@G8 -rgCp13du_GK_60000Jn00mS_6ydl1plRGA0CW004exR9EvoWFxu9SSL00qjsglDZd7I9NjKU -_3nY@0uO700080008000W24aU2820GI1m002000O00m000Sm_3fiBHFvRy9l4L_@0000YT@D -8ZT3gpAXQvD0000lb10W5tV8oT3_JMYQmJ00W00004WSwJ0001HvzySdl18000Iq@XMxJ00G -AGIxCG0022800qX_Iibl12000QlpWFwD0000XG00YSDCe7BIsQQZcPJ8I16YjF1mW40jn@01 -W0WEmCe8@7w@n00040ReP00G00000X008800001G00PRPI000Wa8l40040oU8XK@VeN83000 -axE00eF_40G00yEU2RPl1800W0_De8V3gi4cw_X10W@MZ4a0108e3_7I_tWCmb8qZJsyl50c -B0zBpGkT9Kc@6dc@0G00Xp7dfezJG200000Wr301mx@Cqdl1JtbmxqC0400Ow@42E2Z4NivK -UF00igbqk4njlHL2H5U_600G00G8000000uY3400000WW21@R00W1WLFI0030000G00C0005 -01QtFXYuDW2000G8000400020001220000010Cm9v6CfGHVEo0000Ua1187wd006000400Hb -PGJfC000003100G00040W0prWnP6HXK00W0000001000avZQQGGZRyzl7pRrIjmjKul14000 -0fx0Kqz3xtRm0oFyXi1f0GHltFycC6vslHmOX02M08Il4_@FXCxDW000Ghx9SrD3teRmzuC0 -000AXvPorFXS@3nX84G5ICy@l1WG004108y@f1d5OGmy9000YelV3Eht000WGpFQmKHCacy9 -hWknOX6izl100_RduNYggcvJhAgc69G7080000001GA1000000f401000008040I1GYy@D0W -10G306aWF3f08n4sB10006019000082I08x4OG706a2W40IG0kAqWZyJ0000K306a2m35355 -0W20I42YGWGa0008218Y0008XGW824Ya4f0GHK0dKHZPD3OMwzg0w04OR43Ufm0W800DTcGA -0F4a0U000e00W10040i0d40O0G0003850AY2uawCY2000902a0WG48240002HYW000GW4822 -09mK0e8AWJ4800acHK00IY0GUY810000vv90000GIad0Ga4I1WYe0EH200GR6s7V0_LnX42G -0000000GM06AEXJtYQrkV000o2m700000Bf1047eF0xmC9z10008BeUv00001@30GM0_00GX -DS2Av08RmbkFYA000GU700UjSZ7sF9FAj000000u@jhnbQtuAGz60HAm300WWFqaeFEd000m -GL000008Gs@CyqP5@xRGse6KM_3GO00gpadQ@bOP06000000WR9T@40800awl10008014G00 -000140Glx940_34800G0040G010W80mT@608W0G000uPlpSrz37uRm3_C0EC00000020WW_J -JuD03I_sWb@J8NM3six10010000WG0220W000000u6kRK58F0000z500Sa_3L_d00G0W5@Je -uX700020W00ehS3gatWl@DOjmYEbEXi@D00WPzP@CqTh1dGpmjVUqxG22000G004KhuLAYK0 -2g6ZowD8DOI000WK_l1T5EJ4NaG800emw7Qa5ZE4te4tk00Sc6EE3DVpGxCsCfGHxG@08n3W -WdVG0080800000400100000WiQC9Xyd0000qFNZ20003N10W1mJ0004H526Shj1f_72000Zu -@D00020GG001000LxNnpvs000KetV300a@4wV28400U1m001W2B1mmQ_UWG00002a1000000 -5GJDV5uV1W53y8lUIQksWRcfAdS38F00q_F3C80000204LU2ZOdmI_R0004uXY4GW10SERK0 -0IRok@XaJWPVO3ATFX7fN2041mx@60ie0eKU6800500000245mf@de4000080010040G0000 -M00G0WTuRHK1002QF1000O0700_@N200e@_3GLcU@ae0EPXYM8000KnV200KvNbd13W00002 -0008000G400W80800W@y31000Y100O483080100020CBSBtyV2em5Wn@Pm@V1Orxy0W00iVX -J_zTZ2_bGw00GbI8LC_L00eI3D7ZTuh8JZ4oatW_rDOHU6_hxXFxc9tV90vi0qyl4xgFsrzg -000Ws@00m4yg0040ewV3kGEX9yJOmUOU6FaUFC000000WpjkyV8cT3E4@XLkJ0040GywCaTC -CnMBHut9iUz60HF0o4ua_mD0004000a0000004O800G000W0I00180Y1000G00082G030aTu -69jNHwx9CuE6000mOA0WK0I8xcR0001WlsJ8h@4000400W0WK00maz6e0008x1a_Ds000000 -06vIuNYkgz0100a0000004m0008000m020We_V3G0002W00OwQg0lF0qCeGVKg50000000r2 -600ozF704400W0W0WO0SMIN00YtFeI80000001WY2NB0C60fpp3810YqRGQjoDSF00aPO5Xf -I2001G080m090W0002LwXA1_3300tcx_vX0W04O000q800000eIXNBWrA0D4c300GXy@D8bz -k000G6In6ZDJ200GmPd1300WNS@U0G10O0NFcdUCGW00@@d3000100e8vx36000Gm1005xM1 -800aw@310a1m7l6CePN00UrZxd7500Ly30guN1000KvFkUj0MX0CtF60Y00gXE400G000m08 -200yqd1PuSL3tO000HikQI0000Im30000ym@@Q10uHu1Edk4dA0y80NalHsvRCOk100W0Y2F -Xoml2000gd00WlqRvLx7kM@appv10GXylVvyjk1HXdGfvFym_3lilHCzC00080040oquF0oz -000WWmjxLSLc1HQ7Ify6KWl7lpNntzC4Jl1NUd0016WmmPGY000220W@@P020010WGYCxDeV -V60001ieV55ePWG02040W0nhFJm@6qyl1020000020000vfz400800080600WmhxF00W008X -020000200Gzyunvx9000e100WGraCaz09VtBHH16qz@3WIE0YUpW7@JOY_7gKt30040jvOmF -S94Xl1XrVIzz6iR@3J8oGEy68800uR06ch6ZwNJel23sCC18W00tHR0040m7qD80@4gv690O -3VJS_mLdX00100804mbG90002K40000W1WCF5gcOC0ic0qu@CNHRGPq9KhV2Y000E4Nbknhe -XN90000bQ_30000_RmWoVz02000001WvVDe2O6G400amk1RdJogxLCyg400Sdpp@1000WHmM -10G4Wc@D0G50008g00100W00Y0202X00aW8080WW0040200W8YG040znU2no72G80W_sPOrV -3MObXy@D0e12mx@900024012GzgU80000000e800000800820020000W00G00GD@68200G00 -10000200WG@@VIK0X0000K500m5y94IF9brR0bK2000000G90s7F100W2K20000G0iol1003 -029bae0810mU@w@C00208mMFM1t00001vWR020400G00XKRGOuCW100TGyG000ei_w91mNne -sO000G1G00KWv680H80XWG0280WykDueV3G0GG0U00eQAOw@s30004q100USzaewD0000nGu -6GW00HW00205000200DjPW00001GW0WD00028ey@V800a0000055W1v3x1006oBTb8N@Ag1u -1q700000KGT004BU2000gR6F10W16@@J200egK_91uI0mT@j000o0000W06O00MG10CG000L -_1m03mC2AW2A00L10WU000f2000O200O6WmR6a00mDuN39o2rWePs0004KFyR00W800WPWW0 -m0c100630006000e20082e2mCG408WP000HwbtWfp520pSJ_@9000Qy@V6O2000W@@10c1Go -wO83000Y8CW10O030O1A0m3sZp0000YG0000G4HKVl7Rp@GszXaAU20M90kSxdK_VOce7W00 -0qZl1Bcl10G0WTRC81024002SUU2PuR00WIC00202040IWVZ0kIe103wuo0000Wt@RmWwC0X -80O8U3_@ddS@J8hw40_704FU80800_DtWHtDe303oFt000G0jQd000GWotJuQx4wUA180007 -iZ1040WejIui76QYt0000G6608QqwX@HFvyR9000G00108iz7oPt008G0FnR000040001000 -2000gyDJ2hZdmrx6K_k1Fad000uG00W8000WM6F11010fpR000184000028W6Zt008000080 -0a0008000001800400W00000He00W0200W800qvr6W00800001G8008080bvR04000000XnG -O001004W000WG0000G8G00erR34000WW00W000X0000008000W0400400200002W000G1000 -0vD201008W0000000060000004e00004080804000001801000800040010W0WW002mq06W0 -20uoC3_5p00400ViRG@z6010W82@40080080000e844000080G00W08200G500W0WG000000 -500@@R020OagcC0800008W01400G001020400W800005P104200181000200igl1A0010204 -00001020008X400G0000H0W0400G008WG0081agrC8aV380G00880W0W00W00008000I2040 -000402Oe_4ggFXqwV000no@@600M0Oc@4AwdXj@J00WfX000evtP02H0Gn@60400v7A3UXF1 -0440z@R0028m67C0000a100YKxDOy@70080zH932000QfaaPyJeXV60iy0qrR8LwRGLzL4TV -2FTbGf_XiDT500WW0G0W00100002Gk@F000EJA00m4_ISgl1pwd00W4WX@P8W@40GW0q_V2n -uYHe294hh7luRG5WCSbk1040000eCsVV2h_d0W00XVAC8k@70G00K2d1PYcGD1FabS80G04o -XLYH@DOSf4gut00W80Xkd08722004G0400_@xX3zDOZUIkX7Z3_DuYV3QSnWAYDO463I@@10 -8K90W8100600W01e6F30X00W040W0W000004b380xM_0W040050000800200s6S200001008 -4mJ2n@R00e00002G7jQGy19Sbv32008kunWX2Ce@V9009000I000G0GgkCaM6300S5120W0K -800GW0mlL900080000400WW8xD0000480000X00FrdGSi9q@M2XK8Hfz6GA18O2GI82K0H00 -00600GzRL0Ga520Y0000XK2100A00084020081Oxz409000000Y000HgvO000014000b00mU -ub0001mId9is@6ZVR00W0X4ZDe_D3Uqa1000yw7310000Gg0m0000QvSL0A801002mTuL00G -00020G9t6aGx3000G0A000m00040004G1WyPtONm4w9tWAyJeKz400yV300410PWUsF60000 -001Gm@@900G010G0Ilv60O00u6O900S0008O9EO6kzE10K000004ct0Zvdb00W2mYx600800 -0AWIfwC0y@1eOT3I3o0000002W00000Fxl1208G13G000042010GeqLSnV2a8002lg2aL00r -6PGZlO4Va100M00G0Wztg19W@00002JJV0006mhS91W400208MQ1@100G00A40c_N20Gs480 -00W200Dkl1t9OGPx9SQMB00WFy0W0qeR5002S0000w00Da10000000x00000000eg0S5j108 -3HCm00q6j7@gP00c1W@@V00W8000uWj4D0O00msRCi3c1byc020005W00003000m0aKT222W -0g_D10yC00WS300OU1300060OmKZ6GS00u2S30g0G002m000W000WuOvg00WC000p0o00063 -W1Mc5Z6zIONu40m6Ry@@68hF0000_dGX11DR0N10Wa4yu@V6U@q05410PnzGOuCCfy3ZhP00 -04WW3DOXO3Qw_atlD000FuVrF4bS25cYnheX800W008W0C0a1800W81000W00G8028CS3Ucc -XT@b080WmAvI80000yU0Gtu6CMT2hbd0G0WX9mVuVP92ZZXzYJucu7QKZXeX99nx7000mZF0 -2uaSCUsEXljDOpU9wKtWbxV0010080W04G18AW000I4000W000OGW0010004000W0_6FXwkJ -umx46TdX2aO00WHSPvI4mb100GW2TN24000Rix100G00400000H008Y00020000nqF6y3Z1X -KOmIx604100G40002W0A00000W100G40000401B000G00080G24A80100840160000B190WW -G8800o9tWPoD008G42G002100RFOGAi6aNk1001G0000GW82uWT3kmn010A0pmRmBT6KSU20 -0X0Mhp0GK00000040W20028W04G000005W0080000003A02X01GG8000G00G1240000WHG50 -0G500Ihs680200000Yv0e000W00W00104000GA0WG0024X080W0W00008100Y8G0040X0002 -0004W8Y11W0W00K0105000G0000G00081GSK00000G0WI8W010W00G0G00GG010000010W02 -000300004W0MJo000W0GI004G00Szd12002Uxr0gCG00880W00W0040100W1Y8AY4qD0W20W -00X0808000KC0001000G00W800000G80G00W041040a121041446040G00@lR0I000204000 -24G340W11W82U3000IH200W080203AGG004zgd00008004GpFO0Y0008001nnR040000WO00 -0000W0208400G2006G00010800010202W0104001008G00eA0228140100W00I00000SC8C0 -W8O0W0opt0800900004G04KmT2L1R0W000Y02G6004ISc1400m201W00000011f2t4_@d104 -H0nmRmXC6W0000a040940WqwDehV3W0W0yll100W4AytWtrIG000W00m0000G0700shcXhvD -8CU300040e008e_70010KMl1tHP00W0WSzJ00040004e@EC00000K0800G0W00m0oHC1H0W0 -200W0060820000G0GtD60410002G00100020C0800Udo000020W008030WG00007yzRJCG0W -04004001a4G000004H02000401010000040200000420W84CHX1000050080GG08rS3W0010 -0004006mR_6SrO23mR0000G8001b@p0G0000010rMPGlp60G0182436Kt0000700G000a422 -000q32G8yC80000G08W10010005VoR02a0WyzJ0000ou@90W00GG0000G0WF5C00001W00X@ -@D0100880000240v@R04G0Y23C002G4044WI4D8TV3ktsWMyJ00W0Hyz6W180000W2014G40 -00000W9800000220G00002800284W00W040G000300808G0W@6D002200WGWo_J0080G8m90 -0WW8pV3W202008022060W0000K0G000058048061000K001204fH0GKY0C500Yh0020030Y8 -500040408W9W00G808umT3Axt0e2C001088800809W0YL0ZWK0000H1pTO0W08G0200Y8e08 -004GO490100e82480Y104000H10082000m0G00Ga004811PQ000004WG1HLR0C00GO0052CG -080040AE000200O00WF@D00H0W01C0GWG0BHQ0H21008e0G00040W0KXj10I00X80282IWGG -00eHe82a00000041m081W09L01100OGGG000WxG0ISo0000A010008W00n8001H0YOGG80WO -000q0X111CSX1G00002801002480480Y00048005G40e0WG4W000102020000882DG20WK08 -1b0G0W850850H8Y0a200W0H0qBg1l@RW00G80e00081eGGW0G2000K0G40000I1L100081WK -000H800080800000WKd_R0000Gz95000H0000I1Z800a084f00002G0a208X06100f0040W8 -0aI800G4000f0G2C1200W002PA0C0G0H000840W4080W0a20041900408210W01010100O00 -4GK006_9l180000Y80000O20m0Gd@6qOJ2TRd0G0840070004W0900iul1G800004A340AL1 -G0500H8W1G80W4G040P00i010XO80G00W4Ye0e0Y029010m00KW000400G108Y940K00WW40 -00O005G2G3P00K0WaG420620G01G006W0G40110G2O4508601400101WWK00130080m4G000 -i2f1W00W0100008W0000GZE60P0A0300844Y0182000405400006GGK00mNw60it002e00w0 -2280640W044m002W402m0Y0O04801120900G407WWGW0100C0W14000O8o0G0008100606GW -000H6G03000aW00Sm4ul1001P822W02000400611I08Ia22W08W00GCTZ1FuR0b000280A40 -G00000GW40030040W5WF0CuSV38020820000018000q0ID0r12A0820G0W44000008G08I40 -200X00908C258I210400qDX128Y00W00GW00X06000GG0I08008104824G008GW012101089 -04I180W010Y_00Geiv20Y0002m8082g520W0070G10800G002008020000r8000050m20001 -iIrDG0080OB00000AeU020288y@l10G0GK20709K000GB4w300XIcB08204A0X0W8uN0202I -SXU10GiH3aW8eF00020SXw00WeWm10Y00020G082q700619NGV008KIS10H00O10aG2C08E0 -WepC3HdP6_FpCyF0guX7Ys@00DLv704000000KL500000AL10y00001T300000400qm1W70e -vM3g@t00W2A@@R0ex60500W000007Hp8ILLHq7UWPEy0pCZAcPcezF0HJrgYsV04j3FeAPcn -CcHb7yGqFuXeLr3HdfCYMLgymXEuV0Y2m0HhA0f0OW@LLbK0Cm@00DL150YV004@0@8w0x1q -1i3e0e3G1GK000W200GD064h0C0G0g000m00008000u200m503WA060C0C000H10005000_1 -00K1m0W1W10E0300mU000m100GXRG18L038_1w0q1y3e0C7G1Gqe1Om1s1A0q1K086e0Gy30 -We3G7H7WEWU0x050x1A047K08_10Gq1yZu7C7G7GdG2Cu@V30007uE0000G1500tT020000k -xkBq0A_i1t0Pm8@9C@j1000e050G0000000Kip0GKdeup2uh@0mV@0mL100WUVy@6000k3S0 -000SmT0u@@040_101000qT3g000Otj0_@FWBbR0000G@h70000zXC0_xV01OI@4000mvk_@t -ToeF0AuV0070JkhISzRSQl13_R0Wt6Wr@b0214G_zI0100iIRLkzt000042014Ubc10W00G0 -10m000qRc1R_A1000XBgD86i4000G8Q00G010mWG6ybV2574202001W00fURmZ@R4eb1ThNH -Gt6qBE900OO6hoW9uUW200GnxUSoA3BcBnPw902080100m2SC00080050mQvCa6@34000080 -8W00GuUT3400000z08uA6cbdXnmVW000oduI48l4hqdGgG6KVk1W00GkEFX1@D0008080014 -00020G28020iPl108800W02Kyl1GW00018I0A100000kA00WQaIO_U3000G0080nG0000GW8 -aG00040004H00W0800K00100808W880086Nt00800G010A0o0GW00t@R080W8I000W0W00G0 -K80400001W82000L4HW00000020e2200G0W8e00m014g8080540008W04H5W0040G00400Y8 -004G820gG1000OY1WRyD000w4000218040W02HGK082201400020402000WG800W0YW08601 -0E0Y2c008208WG0003C000801H00G69G84o0WG0Wwqm04A00002O2Zt00W887AdmiO600014 -FO0Ggi9Sqk140a140802000400401100000800W00092G00100C800202I00G020100000Iq -18UU300I80204uiV308002810HW0000OL1088000011H00SPj14W0100210400mWW0002G41 -4O00009008080010002Gcv60040enE30Y40080000Y8Guz90908WW00208190028W081G0GW -0108X801224G80000018G000018X00G8000818G0W4W200000WR60008000W011004H00440 -W80aIk1G1000G0Z00002210YX2H40WmW0W0K800e0104210810040CGWKhvR010000W20080 -Gww_XI@DOAy4As7ZyDUeQ@4g@t00W8000YPX8020004umV30G000H010400W000WmVC02000 -034000800030W00Wayl104000H00000002200HW03W0000001Z@F1G00004006wt040G0hgd -mK990800G002Go@600201004mX9600G0uZE3G01000400501my@6uyC0W8040W020G004001 -040400040G0108082WYdC0m040000100110O80wzE11000hrR0G20WNFVu_JCUGEXXuPutv4 -AmpWl2CO4V3000000Y020400000OW3W0HuR04a00W020G000009010G640000K003W0W0040 -002W800000G082W0MaHzD8hF3040008004080Hh_6KEV202082edXpzJua_4000M8000uXV3 -00G0zBd1@kRmYg98I0000004G00000ibvzR083020GH02020000G008000080084040089@R -0000GG010W004G024C_l10800_pt0000200100W00Cbl14800080002W08dD3G000002K5G0 -0mMW9Sej18W62Iut00GG01FR00WW004008G10W010G0WG0008010O8KHI0410006CWG92000 -280001OY0WG0H80G20HX4244AAW310I0228G4W400Y8a00C0X0i200GH84120OW0GAvt00WW -G0K010K1W02100100000W2400C000K0083bMV25Ha0G41e4yPG00000004Y20000GG020082 -00G00G1W1800000W0G0GW0280O2XG0200450000m_a001YGW0OO61140WH0e00C50A1001K8 -4040W21012W8060GI0080I0a0G10I8240601000XGW00WYY000W0G040YW0109O000G44202 -0G000W14WK4084p0008L4Y0041WKI1G0Y060850G4H0000f0O0fa2W4tCG8C1100GA0090G0 -4f8000G9G0WK4414000485YW4200WKI1I400610000xAI1O4W0000WK82p0000I956Y0004W -Ka8Y05G29GAJG2Y000fa22HGG00Gg009a0000a2W0W800HAI1G400008a808000010W04000 -08bKe000000W002A00000G03C0K00014000OG00G0G1501e00aK0I0O000G0W8200K004252 -06I0G0100G00W2400cK00A01I1XGK0W28WW031G0800006SG00O910eW28540i000W020030 -1W5800CO000002Wae00002010m08041402H82050093QM00404GW0O000e814XW0000G0OOa -1cR000020G00W1Hz0C160441G04G00e05A01x0G1G006a0n3W0W1W842G8GCY60076X08WI7 -Wm41W0A0G0050002I100B0Qe04O0Q0D130000WW4W022m0WY100WKL0H2G0W0Y5GKGP00000 -HXGG8004OE6188110G0FAHW004WYG2WE00200I0e0I00K4a1e100mH02W2Y10u0GYW000000 -020GSuk14000O010BWG400001W4m0080002WaGW0800020020002K00411021X060400481W -1001000H0004K00W000900W0205e000YWDCmA0W8e4864m8W8100004KA1I20I200e00G010 -Y00W0K2W8080201G0a2I00000GW8GW0GA000400001210I40200W051gIt00G2WY000wid10 -020000wZXp0H0GeXjP006XDkGV000KmYTBXK0U0W0420YWCX0G80o5wT0Z00mK0W0C204120 -2H@DGc80b2000seftDC200J102n800a8084zt0HY0KAqVJA06WH006H084wl0H01OBH1a00G -a8084zk0GWWOAKVel10W0GW000G0wF00106KU8wSsC86k40Gqg6sc1KvX@0m@08ZPcHq@3We -py1HhgAH1mGWS60000000G5Ly300u7Lu70zXCW@100W3Op30gy30zHceoeF7uEL1000Kqp0u -7m1G5_18cqpTirL00mDgu700y00GdV00800G5@WA000wk100000Kv700qD000005vLG30020 -0083z10000009kbW3s3K7u7evib004@0w8_1q1q3I1u1YEWE0z0T0A0w0K047G9Gk3IaS7m5 -vE8BWSWV09nz0IYa300Wb20b8vE8HoTWVaxWz0A603a8v0b2m3o2e4PEG9c2m30AHo100WQ0 -00G0K1k3W007W10003000u0yjUB000gu7000070u_V38OcPGm3Fm@ggY@1u0FyWWggA1T800 -0ynU8603oPm0FyWW_701fA02ApC4qV0yl@0eALfILgImPCZWggA1pK62cfCgAJPym3oOcP8O -LL1mC@FiU3uF00Kzl4l3P000000280DxNnrtC47i1201060@10002000uy300CHE3R@dmNuF -ifV20400Ey@XKoVG400W4000G001vjRGnt6G108OOI30W0CG0008GS36Rp004000W110G280 -040200402G0WfZD8xy400aqCDU204W0EAB110G03aR0008WJsIOak46ynWpqPuvk7Y@dXshC -u1DCw_n04000GG00_JZ12000Tzd0uC2W_lbueU60004SPE31rNnmxC00C0uUO3W0840000G0 -800G00WeSC00A00000X6wC00800G08WVuJ024G00400K80028416od100W00008r400Cnj10 -G40sJ8X41CO@1600804eV2e000YmrWxvDeZz7QOr0000100G0001300080240WGH50202W40 -2000054Ji10W000a000G00050G00W102800fCR018IWZYCelE3W04000Gl3080010000gI00 -080wzsWXZD0010408O00G02A8Gc0802P44004CY020H1G0W000400W00000A008404W00020 -00804oot00403WG11000GG00BGWG8100e050040b80W00021010W5Ie0080GWH02GG88003W -0020220e10000480880A0040WY88g3I3800K0006X00WWA000myJ82e094I0G00WG4854100 -820GY00W02CG008840W0GG0024080m0G00002020000200C0000480G10W21W00a00G22200 -02a0Wa@D018000K081W0000a0G23o04a8G0A4010XG80S80G4W0W0G90W001202X0G411Y00 -WW1001080XBW0002W4000K00010GK20YW0P8000W006101CH00eWY100G8J88030H12W981G -4C8G404W800244010C010W000m0G1018a21Ia050841102G008082O0000W00W08G8100124 -0G48W00G44200ite140000W0KKkF30W004080A0210040C00W41G020004ces0e0003CR00W -W00e01PWRGOq64b8300meHG00O0000020nzF6000K0005W00000W89000140010022010804 -200G4O0W001010200Y00100008010W02TbR00G8Wm@J000GW0G1002400C00000WW0080400 -GYU909014002Iri600G041W08GG9000W808000WW8G000a0800080WsvD0I042c000mq2008 -000008000400440000100GG0200G0G800000X80mrR60008000W810WfRrD0000eW00YXmI0 -G00408WW3kJ0G00OYr9002010010I8G4a002bzQ00000W4G021216pt00401j@RW86400000 -0Z04012004280I20W4000800000WB130000018pn4cGs00Y00000KW000020n44G040088W0 -10820001000200YG1020008000Al_PG@k6SfY11NcmFz64bk10200080000800080W000Xzy -IOBU3GK0000400401mIz6W0002Y08GGuC00Ova00X0300W8@D0A00021WX4wJ0081W00000W -0WhgR020X00000G08WA1m0YW000W0W00000808OoO3wHn006005zPmcz9G040100080205GG -00VtOmd39yWl1024180W082Ga0G00G2_600200A0WnI_60qR414000WCG028Y40W008Y504U -W10100000eaeh100XW000X82G0000012G023G00@GOmbu68040W0000000G20200010002G0 -W00W808000W8100W0W1000I180XXGW4200104410X0W020W0Y80I202210080041a802WWn1 -10W0L9X6Y8418W200290410GW2I8WW402W28000OK80G8WG0D0W08YI40005WH020a80WY00 -40W0G8002W0064W2W0084900710aW014H90D0C0H8900fGW8Xa10G000W880414100428280 -0O400W41004410e2W002ZdyD0G12001KG840102Z241108m081GW03W0GO000W001W0I00Om -080240YOY0B008GG0GOW2AIX10AW0YW402W044e02e0000Wg3HC2G0W0W2O0004W6O0G0mGW -8864002GW10G061I3G20G28C8X8G00a0WC8K40H10K082g800n20KG0GWG848G8G0WI0W004 -0G00804Y00148K00A482000W485a0000IWK2G0000048514f800002040000005e0000010W -2000800001840000GW201000400fa00C1008WM90000G4G144@@R0GX6A4010800Y054C200 -8WMI1000070840YG000002fCI1G00e5b0000000K20WWW0004j04C000GKI10000084W00a0 -0000WG06800002900000A00010081eHV36KqWk1D0800GzY94fl1W4020004140000080000 -6000K00480b0G00010a00GF@600900000hf000Y20400008Q0000018@U3m00W11482Ka0W0 -00XA@D0W0G0eAnGO0W0naQ020O1000I0W0142K0100814C0000Waz7D01804W200822m0C80 -0G800005002008W00086aG070W000110H0000WW20Y9OD0004K7a6W018WZe82G1080124px -o00WA24Y048000000G0K000000840W1000122880G03O0K000T0GHw6qrl102002Jt00008d -xRGCS6Cdk1804A4081A8208Pn40K0W200004e0mWI600040A080001oSmD004amVo6000W0G -00WI00001000820wur001e89YR0ex401108Bjd0500aZdD02080821WpvD0008WO08280000 -0W80100001Y10G40008WXFD0022nWm90G08G0mM0001De0W08000C002XiB0m08X2glW0XG2 -20G804240000W500C0s01I50080110EEs00020080W02zJW0002A00404001000W501C0IW0 -000dym2Gku6W0GKG0004wd003W6Ae@02800gaYl1000w5W0108KeN0000aG1000000O0000P -109000AmM0000WG2C00084ok00000A000oq70000g08liA0kxzH60001500oS700800000m1 -tT00W_0dx0GW20WCw3Wnk2G000o000@@70WxE00tT000000OZ2Zp00WA000Pz1000SOT200F -0Imt0_@FWy@V01m@02000400uF00mV@3W@f0OGgrL00WB00WV0C0T0P1m1q100a5000S000u -700G7mF0N060e0k000P10006000i200K3W1W2030K06000C00003000x000S1q1m0e205WA0 -08A030gH0aBk1m0y3W105G700mQ000W100YE000T0g0O0H1W2C300e2000O000W200WLWP08 -Wr0G0Y000630008000G000e3W8G7GK0C0T00WOoDutV3WTNeYV00dx0000000300Ly30gud0 -0yhW400TtWi_d1L_10Zl2e@10W_mD8yR3yFWw3P000000WnT700000WxEmHbV8JV0G5@0WCz -10Wq4U0W00GA06a073vAyW@1mTW30@FYdm_s9C7i1FX@mKuIi7E6001000O@tC_9NbV20001 -1001jsQ00O0WrlD0304W00001aW0080080200W02W080GivCq1W3G0004001CQR200cNl8F1 -10G00004004000420200mBwIW00GuKSF0G0848S55hR0440WWyIu6_4oNtWfuJ0200GAi6az -B3WeF0g6t000G0fnQ000002401tjN1080WJnJOsTC_EtWyPDm00W00000W0G1lmP04G00000 -280020038K8l4pVpGmy900440000as10W4mPu5OCoB7ZLvV0100010YW8hD0000008G2I800 -NzP00G00WY0200004G00MZc1LYP0001008W0fzP06G02000W00W804000G00C9P300mWG010 -02000040G0WW000G08048G001OxD30001r@W140000J0Z0W0000H000X00348000840O00q6 -b1v5RmTz60008600402W021IG128009110000G0I00082W0GC00VqRG836W140OkB3000000 -I0G01000W0008000001YQs0W00Gm000W0000GV1004000K20400G0G0W00G21000100G0280 -0001A0800GG8W0W88vwT302G04SS278dm4y6KPl1009G0G9WG0220G08Z14G04023G0G00G0 -000101080a0W9WwfD041000GP00000W001cqt02010Zjd00102820100G018WW80040000fH -1008400K0000801800144H0G1s6010000G0WG0011210023010W004004400nm@60000H0G0 -mJo6qe03e0G0EasWmhC00W8814004G100002gQq08000G100YWmW18D00010000H0800000W -DG0Ha4G2H2c000kF280000001m000G04000001W80I08000101000X004000800WG0200002 -15gto00210K0H0Y4qWKhJOge4Uct08W10084WhBp012000880000020200G401G0O8080800 -063qy10W00I0404080S4d100000W48Swl1WkE0G008i2k1PVRm@@C0G00000WGH36Ko93XRZ -nx7F0G83000G2240G10004050010G00404A0001O1Wn_JOiQ300003001K0G0008200400G8 -02W00100014080000eAF50G028000004Dk12000W080jrl1VaOmFs6808086p7U_GYr@D008 -04W080G00640200001I0020WW00000G0040HyRmMS6Cl_3hPcmYy6CAl10011000000O06W0 -W080008002W00100W0W8H000000108000403vR0000ua@D8H1FIqt000W8pSQ041012W00G9 -0000C180Wm08a0008110080tYRGxl6a3V20W80Eut00I00HaR0800XgvJ0iS2mUM6W00000G -0W0002000GO00W_6bXRyCeMK96Jf200XW080401Y2A88m06580G008uG0IKI904aM1WA8GH4 -081031280840GH0wkt0004Y0008G40bI84G09410W000W00900000410001401000000IT9I -G0WK0G00008011100202G840290GH0W00000082W000080008208000IIrWgKJuCV9008000 -01021G809f00405AH000SKQG8E8GG2280mG200H02W20WO81G244G910GLy9G0000080W800 -0G85008G1G414Ic0A01aKW08G2H0102W0000SA30082000aY6Y028188G210C010Y000800G -Lh90a026400YY00WXwDe103_B23Y000zSQ01000000800W0100W00fW120W2000A0G000001 -YMb1000242000W0I1200040050G428000aA2WW800GAe8Q2530FxQj3X1qA24X000GAj00Y0 -0W4aY0G410080f012H002aYM0W80W40G1WP000000Kc1W8000G1LBkC00a00008IAT6y9D3t -bO00020W0WX0G00G4000G00e2s70W0O000008WC000844106A0G405HW0C8A00002000C000 -H000e0700e0D900000mCmG0G4800m20WW004045O005c0HK616004400G10yzF303000000m -G00Oy@4O000CwV2pCPmjhF080040e0WG000000a9WmmM@600WG0000022080e2OGY0n004WX -0000G2A000X0400000Ie000eX8Y00GGm2W4q020Y2W020G5422H1140Y100Gb000Y00XW500 -1410300A0G01404e8G02G0G801WG02GPT46Q@t0082G36L14D0Wu@DulO3WG00i_l118O008 -00010000W00a00100W0020Lli60W00WY000eM90000G00I0Ucn00W00081009AW0I2000G02 -012WBYD000090200000ax7RmsZ6qdH2PBp000e400009GQmKm9WU9808W12002WVpDG100mW -o90020100001e_00108G0s2W800A5040Y008W0G0mM2W82mK000Wu2w30Y00eK000820m020 -1GV9066U20G8410W4b2W10C5O10Y00mG000820012000B004845200qDC3W50040OWicb10W -HuS700mFP0004KGIS600uk30mTN7094TD3000mZFp0y30Ly30oq7g000ar70WxE0eYV00000 -0qu2Vx10YA@TQ@m0SOikD600m02Vp0w0G01TR00100WV000k0T0O0O0W1m000WHER90000t1 -00GA0600G1I24NW49@0SHS1o2e3m5G966k10R7Wa8n58HYBWR4NWr0w0k1KYXXp0YBOlK0I0 -G9IC2IaO4m4n889WG0J09na0IY43mIy600W98iN3W0000O200St10owZ0Kvd3S@E7000E000 -WJ10Gc_0WA_H0PwJ60S71500P000m1mfy9000y30000ar70KzWWnWR0LLvV0an@0Gm7yWWP2 -00WXSF88LLHGggo3EyW7yWApO61@702ggg4CJP8uXEeALfILLHbPcXWpC31LT62Uu14KLLCp -X7uV0KnCp8e@10Gg200HWN1008W2ibOyR3wVhY3DOu4T900WzK1dGrR@W420XnoD002WGPu6 -80W0edc46tEXzobuoR6cjsWC@D0u11mnTXKPc4x@dGprIqYE3ncRG9UXiRk1TXdmSs6ahU20 -00mpcAXUzs8aE92OR3G8K08001G100qvk10W14000GKhc10000AU9XRuPOykD0000000Xlzl -VgX@100m400m0ZTs000W0G80100WK00000Y1Iugz60W00yqU3QjdXnoD000088W0mLvD8ZT3 -8800GG000ua18500WstDW000G3f6aWV27wR00G4240mW@EQmiO60G0004000030WsuJ88B3_ -ot0448002024G1X802008a0200002G200G0IG20GG4080G08Gap6G0000140GUK6ihd40020 -W0W0a4b1c100wo@100K0nSO01080W00G0W00AX7ZMPCu@@7WX01O600020K04WW0840WO4G0 -81010Z8Ym086800A206GW08W0RKnWo@D0012mz@90280Coz4G0000400400000Wtpl@J000G -0000Gm0000G008010008G00K01000010G40K20wksWttDuOX40000W3008uC60002000100I -0W00W040W00010gvtWX_JeRJ3wwtWofJO5C3Yyd1000G0W04oUm00c40O000oU8XHraOZU3w -zAX5vCu@V3_9pWTCJu@V3000G801a0G02m6@600WC10024000G100APYRGmbj00C00000Fd1 -0Wt5nu0dMkxF13C0002008002qKc140008I0000100C80mAds0WmgF5M92QbXYryOCiAgus0 -0W000200W10W000001G044020000W00WGs3ba_nD0200G0o606t0OQ6d0000001W8uk40000 -2W00W02000200W000NFqo3_6000WXb00GxEO4cgDO0O0C4800802gKU3C850O40W000008A9 -0W000K110UOzaBtDm00000WgWwMzuOB6oUu4CW10e82548X080L0GK00aG002rWGWA9GY004 -CaST2BzvnBy9W000a0000up1WNQVeeH30080yJ0CxxR00a2G1000I0000GW00W4aY0H0mA@6 -002I00G10000W60C8rMFG40045W100mG000mKPV2n0aGOGRqbB90X0G0GW00A0829000Y014 -0100800002a0Co03NSq20W@fcUteN6Cczr3m000008WG0OGEah10K00IP8XDTC8BaGcptW3L -J0W40mgaCafR2J_dm47m4TS220100W0G91G1utJ3s@tWtYR1201mSu6OB00OFv7sRncpnJ0r -IG0G01WzID002HcR0e00X283nRGx_6a3k19D42000400m0G240004Y73G52000EwDaBdtuqC -3Wi_0G6008AV3I47ZGetOBS3000004m0etDCeI10KAjD0@000O0w0q1m007e300G7000uHUR -02m000W0073R0006WMgy00401008fmmDGp00GJqC43W19_Rml5aqhk4600uS700001WpTk3E -04O0000000Wk10000W3k3q00GDUFygD900W_om9g1mbesK3_1tZNKJO2O323d1WGE07XJojq -ISDD600W0800000Ha0014nBtFCTE3LLRmoT98040e1z40008iWE30008z000SyT53kWHjBXi -ik1RnoGKwRaKG24001Er6300LsBFG5008G8001m010AUDXaAPugx4QWzXfpD8RM3cAc1mBB0 -tnNHwyFKRA33NdGgvO8G4100040H1000080000410010G00ym_4kgzXfsJ0022mMv9aAl1rb -R00008s3045tcG0u9aYl1TZP0004WmtVueIFG00000I0000G0W8W0440001008200000GY00 -94000040W0HxeI1u6008V4100mB@ICtl1Xm9HYFX000202140C000000WG004H000ETi10WZ -00O404_V2@kZH8mCKcU2WZc0080K4fm37udGYmIi3N2Hnl10X000002u100W000000m000WG -Zu6i_R2PFWnCYL000WL300GLzOC2h1PF8n6PX048YuqhYMpt000o9Xc55040W3zD0WG0mAd5 -9KX1Otpe0000204euBpGYXBas_D0000Zk00W2IT2520m7Y9KVU50001_pg5001n9fw400041 -088290W6ZqWvMh0010mRVdKDl10l20cSr90G0X2W00111G000Y8TU32FS62000TnR000W000 -0uU100Q0CA02000GA2G40000f0OjV6MksWK0U8juG00qx5LOK02A2000004W087S9G800Kvs -C1XWqj@900510A000X00000A0G000Gm20qOU2JdR08200000000D0Q0M5Z100r2xKN@602G0 -ea@462EXnuDe_GO00Gx5xHKA104W4A0G0000070010f0040Gvddmg_6a2W4HQx1Wf7Wjme2P -z1000GWDpCO0QRkFB1000Cc000Uz8A000uE0100mU0u00000O00007Wv@J000SGA0IyUS5Vz -d00WGfehTAFT300000L00eGRa01z0C3tLh79KPw9aXJKPPJohfCSVP8004SJAmiqTtO7@G0z -50izGNzJdGnuRy2i7000OiA00yrJK0400o1zXQuDuwIR00q46BSK000202000400100GGMK9 -00002G02GM_s0Iy0uo3g6Ft00W000O006rt00004dXQGFNm000WEPJFcZt682103XpGv@6if -SE00I_7HfhAzPOuiS0ax04CINVm_Gj_6KHUB00WGPD00KFALzj@m0@6K5dD00GGIIbgduD8H -XAoSV6G90055SLjyF0100u1ORYKWAG000TFaW000YsiJe9C3I_O60003vmx4000A04100000 -0L2002041KG10b00WK0C00W0b40Gfnm9vz@70Wx0COVK030000H0W804TAx4I1mWBND0H00G -9f6itlAS200Qst920W00W2H80WYW0K80G0A020H4G0008G8WG8G00Y0000480G4000G01t_h -20WUtNhe2042000082400pIQ02J00G008h6pGutj0g81OePd00i00H00K8000410G0100W50 -014WXa203R5QmbHg000WGr00GpLrzEmTb@R0WIaO4a8n8W9YHGI0X0c0IY91a496eK0IGI01 -0c0Any_R100lP6tE100cXWgg21pC3py70gggCKLL2wX74KcF88LLHG7Um3KLbgK50@dFFC08 -10sUO_jnnOCpP_@t000nZHAy@QxFaWSEU000QNZgSiR9oVF00ajVVSK00000a0GG0G0G000q -5w64Zh10200sgoca2YQ@V3C0880204ucV3IRFXohj1000SkdH1G0080_4w_tWPu_100FTGA@ -@3p@zuy@EG@dZq@tGzVDM@F3s@nez@BS@@4cG@@R0Wf2WXz_F1tSc@d100D5H5Q@Ez6ikz3R -xRmSzC49lAk100MrViT2iv@V3004nFe@RlXF38D6WvCp70400008W60CuHXV0GyY4xH_W000 -Ay810004BL_GcYm0M00O5Ng00100008e10327XXxHc10GdvIFNzsw3tfp3Ww3WehZ20G2000 -G00080W0018000GA0IOtz46dT6000qw600gEAAX0008240a10Y20G01000IA064mF3n_t200 -k@azZ20W20006040200G10G00000400u00Kqxy0oQ0OPVd0G00GG0000000150280002Y00W -002000W0000ud@s000WKG00Gp_EXe000W0u00Y000208082Y400W007824008040WrUj100E -Ko_E100UGqPcXeLL5FaP6_70Lym3HxV0Ycg00DLL1000m@X_R30G2WEAYY8300H6G6YCWC0T -0P0A0o0K041e08Y10000830D0dJ7t@lH_@Pi@@5z@Nn@@3w@Vqu@@i_@Dp@@o_@@@@@@@@@@ -@@@@@@@@@@@@f100WsB00GltFa5AF@@@@@@@@@@@@@h800mNs300Dx@VTe@Fdw@nn_@Rk@t6 -y@h9@VQqn20003q00m@@FSFkDXP@@Nu@tb_@Rn@VM_@@@@@@@@@@@@@@@@@@@@@@@@@@@1a_ -@@@@@@@@@@@@@@@@@@@@@@@@@@7r@@@@@@@@@@@@@@_@@@@@@@@@@@@@@@@@@@@@@@@A_@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Vf@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@yWB40_@F40W00@@l7000CX100@@72100W@@@@@Vv000GClmC0000@@7 -3000m@@N400WW@@r20WN@@@51W00u@@40400iinC0100_@73WKF0@@x4000e@@T20003w00W -k4cvz1s0WLhz@@@@@d90u1W@@T20GGv@@d00048aYJ_@NK080X00000G024xnIBkS200G1G0 -00@@Jo0H60140u@Va00Ghy@lJ0004030020W1y@@b0qh0y@@90060_@d40a00001G102Qy@F -I000eC100y@lJ8w62000800X0On7a00y4@@@90W80Y3Ih@@b38300G6G600WC@@N4000GV00 -0v3eIFK6y@@@@@hOYRj000Wbw00G_NXy@@ypY13GL3W85S200Wo7MgCxr9E400_@dA400180 -020010W0280000G306W0080100mFR94rs900k3_@FA1100BiPG2040W02885Xa700y@FLG0W -0W0000W00eYH3WG080000G00WW000W3vIeZgJ00ivV0OK04W00M4HSInIWS00_@t90G08O48 -0G4HG0000040GmzUCq1W1f0G1080010G0ZdW13W2W9kY2020000G00004LxL40008@000@@x -404020a00P0o00W00000GD0OGA0KK593fCA100041200@@x41gH14WC00G000G010020000G -GTX600W08W43I1W240010W00BECXj3P0000dO00W@@T2W00gG4WPC34001Ge2TyXM7V8506A -OqWhJh000X_@@E1004w@V68W00iiQ2PhQGA0K0004Y002m6hO00GKu@Vd000Oqe93@mPmMj6 -S6t33sQ00G0A00000W140000020Gu@@A0N00y@lJ0W18sPp0W0800002m000010063W02010 -O0G0800040010010G00030K01mK0I010010G00030G@@d0600WScIGM00m@@EbHg10001W00 -00002210W00080W80200000W0410400011A0G00044851O0300080002000W000yyL500qd_ -@t9000riX02m600q7h1YWe0008001Y2000204082008001W8I1G2041P20WG04A41200CaC9 -0YD0y@lJ0O00TU00IV1UMcPKZQKv1F4v@08QLzGqPAZeLbAFafC_70gym3Y_V0I1W2HhA0WM -LL0000uV00u@V60C_0y@VK0@000O0O0a1m00383G1G6W208050GC00WO0P0n0o0QA0IG6GFW -CW20T050W3A00P006bJY8NRv@VIG4WxG40@06t100_2g@@BgDB3_@@@@@@@@@s3gL8000qq7 -00IfCgrgtuSwP00CIkQEL3bpGyqUiP_6@@d0uH1WTw@FdVrHgj0Cj@LJklah10WrPrQm@Y00 -m0DuFLxHPGCj81oh1O7_y10G0yxBI00mhoQLh79G2Wt0m@@H10G18mUdIpugch@40000021W -E_N2Kx3mSrs30082100mLqmizF600mJtKdA0_@1tzlKCS@Fq_@1r@@F@D6Al1r2Rm0o21gg1 -ezehYcP9F200@@VrqL8108qky1m_@N8G3C095y900WEs100Lc55800elrAQ3Ejg2tWb2M2GV -2mo_E10O087u4YNl8000m8600wXFAW00W0200c04900v6teS5b00W__H20S1m8SH10000K0G -GI1S200G10406432004411_N40WypyZf2020nT@B10S1OPVd00i1q_iJ0008MuSfs@J000O6 -J00Wz_H20GTPEyH10W800WP04000O0003_N4ek7WNFZIW10e@H0W4WNQM7ENLqiIfB2Gr2G8 -r8LQD9jNF3000Iz30095SrEqXqx@900O4gmbg6kL9wQI0La0aVSNfclHtvd0000Ls00GDpuX -400eoPI00SbVsxLpuom@@@0oM0u@V_1001z@VH0WKhBsFA02000100_@Nez@J00e3mo_H10A -0SJHdIAWA012W00G000045uVH002wtMFA01e0W80GoUOfuZY20010000C4GgI000GIT79K00 -0@@x42820000G2W00MD3fi7Y200W00G10404G00008e104idb001000H0000O0008mV@5100 -Wqw00GCSH10mPvagY_@t000CW@@J50@@70000_lA0YpqoSlCWm5W100Gbi7Go300Gp_EP000 -u1W3Q__@bp@Fvz@lvk8100030Q0020WXkVu6GF00yJbi@L8002_@t010G02000IdnWwPC8vL -O0PJ0y@FL0004UJC10001HAymeYISOv6000G9900y@VN0W0080004ze1N4am6xj00WPy@Vd0 -00H00M0100GW400WBAb0W800088WmuX1KM3m@@E10Y020400200e17O0G08O4I6000m10004 -000dU7yu@V6000av200u@@e00WWy@t300080G0GSFH20410_@N500T19xJb000G00008YC0_ -@t00a8000800848I4n041G02H42WMDR1mY1mo_E1WP0mG0G4IGO400W8q100_@t0J1GWG4W0 -0L4Hf28a2m0YC40LejKL1000O2WH10G109000f00WqMPG00G20W80000828W24W0W8W828WV -L00auz@lJ000bW00H0008a200m@@900Y0G400000WG2100fpE3eF4WmmZI2WXu@@F0000300 -0G7o600eW22000GW2WWcLnZ00mP@EP00060GGe02000KG39Yp02028Gm20002W010000088t -UL00WtS8DL00GW0200i8S20800QYp00W20G00040G0010a8tVL0fE0iilJ0WwG00eW010Yu@ -V60B082000100W80448000i0GGWW080ashAS300Qst9BDXjYHgqy0U000fzeV@70Wg@fx802 -00081K5WR@L10G@pz8H1WmF00XE0T000g080@@R000210J020k0c0S1P1e2u2G8a5WG0uS@L -10V2mo_E10e00000eFCuB00mpvmbWT5eFc9Wrk2toT6L_BFohd0ouF0Y7WWcL97UgE8lw6nz -0G02m@@UKB9IPRwnEwU8700e7_F10SvNbELZcRm9OO0200OyyM0uJ04SLK004023t00100xh -R0200000400W8W00G0000W0000400W00010BOJ200061300@@x4WW000200fcR0G00attOG0 -000800WmpJuYtJ00C14lEL14OGXzC00004000O7x608000W02W000WP@F9tpe_7@@_r@VV_@ -pt@@FV@lpu@tS_@Ch@@ox@RAJbS@L1iL0mu0i5QcDA300_@daVucvAQOs_7300CibvT5002W -njJ8sw46vsWehX1C50mIV25_F3084I0I508W000140000005000080000901000084G0G004 -0200LczmWl9GK008rR9000GOC00Of1d8GWGO008W20W0401000m0@@R0804WQpD00G0qgmIy -Uz6001000OqVg7I9hdmuR6ShU20001G008Ckk128200G00SV860070_@l2G9D0FY45020W8u -J04W8G6pF0041uBU3wX@4000uK700wuEA458G4080002100WG0004O2sF0011G4O0GhXIy@F -60WW1grBg35IOg_4ArF1O0903yNn@@U0SO18jte00008100G49H04040008WLspm5c9a8z30 -G00Ii73000aq200Qst9000J8Y2200G00H1K02014G1W00G80p@R0004G00G44820G0G4aDR2 -rX720Wzk65Z2804002I918Y8200e0W60GY80eK@4G0G000G01000IxmCiok120W0w_73GvF0 -@@x40I00GGA00WWaWWH0000IGI20mTpCG90008AfGepF0000v4W7o0z1N200zr7b0G400IG0 -G0000004010002G1Gy@60028000802000000IxTpGMiU00WBFPVd000202G0W2G000W140g0 -00G080020a_V201O000802G08uV@4000W1200eqMF0Gf0iiVKC00W0e0GG0G002201000080 -0Yj@R000GG800042W0GA09aiV29TR0G00000H0V@ZHYqHXi000W0X20Y0002G8082g520WSo -x30Wi000000500O6O60G00StB600_OJst9000pYmCy4XSoHLpm3erp5LPE24vE4u200Q@t0P -a1000g@lMYaw@P0qY3GXhH1q100u7e3mEG7WCWE010T020WsyU220008WA00We085W42btWS -xD8506oXd1A100DxxqIu6000kpTVf0W0000KTtx@d00o0WHwDmpF0mxpC0W20000CpsK6S_l -400IYous__bRf9TIy100qQkzB@hIn@a0el0ucvesXEXCkVeWRFgx63000Cu000Ai7lPPUO8U -C008T7fWMTRxH6tg0U008y3ykn@1080895WXW00WEApy@V300G@aile8rM0MD@@KtvyClGcz -l5GzD0Bx7Lze85_O2_500oKCgBCzu_@700a0000KuKrD00SAczmLBk2pwZR0cw0eSje0400y -pqC0008sf53a000Fp6rP6E5qs3nCX4W01WYQR1020W20000m00@@N1G56W@@j7000C200W4f -L10300000200W8@@N100Ll@@@@@Vr10K4zTiGrtuq@@I082089zV_EVltmHQIOIokp300YP@ -@JLksIKkd4jih2Gh3Wdz7xrQ6EkMYbay8ePgIkwaBtL10mDIScpts_Fb@B100WST100rmz@C -U@l2dY000000KhcilJ0005sn9A0D603s7r@tUaKmX000WRxT900rbhK8AWk5WbzT2049GbYE -100W0_00GZqp30G6uEJd0050iaw@JfgEWH6Wa28Tjt@BFl800zKbWtrUlRKxh4L@Y10Y0Wau -nhG_7Ab73000mPXrrtxLyvhA@@R00WuZeh@@l@Y000YoE00eCy@7J@@mu@VfzA0W000008ix -VC0n10y@lV00001004zay695G8WW0W1x39ev@@@Nbmmt0000YK10Wgh@FCyY0IV0C6_@7agE -e_5WbzjlGSd00G@ailS7gAHqrU0Sr1uxcn_@d7000q4400Q3QiBQz8UTF008ea8z@7Q@VXu@ -Fe_@1o@@V_@@@@@@@@VOs@@5_@zzZ4mC1WRo6xDw7MaEX1v81000Timm4JdJxiH20WbshyW9 -zjPAt@X0_X14D0m8ucr9z3jXp0020W9nJeTQ340G0qGT2000Gi400SLeMXXd0008Wz2b0410 -Gqz601W0ehW7_@d100bKpgVb000000087hd0081W02U0000oqUIime4020005f0aCBUNnd00 -O0mUnJOEU3cL810000000Oq300i5yL9dNn0yI00m0u@@400W8S_l400ePcatWB1@9SzD01W0 -0000G40200000000H@@V28W4p@@JmX02GeWOy@lGW080c@lYquVORV3EtFXF8JuMV3000meQ -00uvHy00a0qSF3020000001O00O@_700KSVyeM3xR0GW0001009FO00W0Wy7P0C00G3064oV -20Y08_@t0015G0860_@t0GP20FFGroa6yZI2LpamBl64Fp300O0oe91W0208081gUW1000Gq -400YjCXaQQv@VCe000SAQ20085I1GYjHP000eK306G000W0002X08000000G80g181000000 -4s2l_gJSDO6N6I1W200010G4000H4010008040OW040W0KWY400W80igR2004iF7LB0G0W3_ -c0000XNUC01W2mKFC0K0085030304810000Y0WW02M0G000Y0G100Gq@h1WZU0I5t01000V0 -ZqEF94Ci1d1P0020WvECexrD000W20a80400000GWOLD02000000Ub10080W0MSP9a100pic -G70600G8RhL6QRr0W0I00000W2004bi18R00000gW_0008WYIKu9K4W1002cA3mW@@N204HK -306y@V20GL00GL0y@V5l0OmE06000O00L100F05p0007va0m000G0D0@@75H4004H044H040 -01G000G000GKA06W0H000800200WK0C000000Cp008o0m00301000300WP000YB00aPWA000 -C0W10000Y200O6000e1TC0G40GhoE1F00e103IJ0Z85g8N16060000W160W1Go_6000LH100 -m@@i56MB0_U0_@N50808fUGoYOjabT8000ea300SLUTt_h200Ra7mTAI1FsaEXyh3fiR60V7 -0ylTN000GYfIYnmVeGS3skk2000G000Gj900yyDIt4nGXzX0200uTl4UwAX5yVubF300Sh_E -UHDg@mACmW020gXnD0XX04fGKl_n0000ei7gu3U3_nXXXuV000WGsv60000cj00mTK8z6fDb -yR0000Xm2De6W7001000ezxH@k6rtWLzP0080GF0FKiI80YL0_@FgHGV8AX4Y2WaJHV00800 -000e4NKfHgPkrNY6QsOxVC00qiz@FL00W10000G0060004Gx@98W100008m_3FO0000040GN -06qe9340W1ksp08000WIF0Mpag0CPe303ERD1100020002zqWe0U8DM30m00KoA39f6o@@42 -0uxSRKaopBXnyIuFF6I1uXt6D8AWAsKbXxzC04L2G3S8bu43XPj400008100@eGrGQB100Gv -@VmYH9a@@31W92mmN8jmC300m0_@7ZQ0mu@@YGUu1XKW2255f5K2mB292H0p02u11aQwi800 -0X12FY650400W03001d3010eSLF0002aoQK@@R000l000K1408@10GmhIW00040m10300200 -G400W0000v@10I40G000W00aG88Y02H200000W820_@@18Y0000008H8G822Hw@VL0kz0a5a -Djoym@@6006Dv@@@BST910020C000008020000060800G10O0f0GHK0aKi1L00W0H0841a01 -00WG4H80004814X0G4OW4a205H1G2G24WGiDu@@b000GY80oZ89000088U20000IY880Y818 -92019Y40000adW000009HUc2032IG0Y2uXK0OG200GN9T5en@@Xy@myp000WGY00mjq6SE9U -@@Z1z10008BeUv0000e910GM0_00G7NGcK038uV0IA0iXO@1000AZ10WhJXPUlYYDsWl2b8R -L900KsMmw3hukqlGh_TA3vSp0200WQQP8kx7IhD1000u1jRmrr9KyT2fNdJ1hC0200uHx4wo -DXy9J0410G@_6G10000W0000040100ht@0W00000eXR@Yn4s6iVuCWW20G0000011080400A -0WV@I0G0000044G400e0200GG002204W00000G040040000000K0000008Wq7w600W0Q@@40 -UL00400W40GGMwOy@@CK2W00000040WeR@40023ykl102G06Pt0K008406GYDt00m00000GU -@t02G10z@R00X0W_@D00007c00YzmJ02G0GZnF4yHEBfR090OWy_V02W00021brrD00800W0 -000W00byRW000ei7CeFP60200000_OPl7_k69008000010e010G40uHQC00GGSSF3HRRmq@I -0QC0euwkoWN20G0000W0000010400420mIx6W00000101002YVvVG000000uYKAD8kV3Y18X -@_J8XsSkdtWL5DOYyAoem0W000Z@dGY_6a0l400AA100000A0fysh0000200287y4UstW7VJ -010400G4WszJex@4gud1G0000CL0g38XmnP0100Gal@0420000040O6eqeV0040000W0100G -00104550aRk18000001019W0eyx4G004000001G04000UG300h4aGC06W000AdV304004tSE -1@R028W000018280MDd10008000e04000G10GG04W009Y_jJ00W000a2eq@PW000000i0000 -0090WMH@Xj@mOaVL0G010000W0Q1m3yC0II100085f000H4104200O60000X4100O204G800 -0a000f0G200300WKI200G40I940G82400000Yu4000g400G4I10400HY8W000W80002000W0 -WNnDG200mz_s04c0O3_7000X800000W02000C00590GJ000K0W40q40020G81004200040Ga -c00A0012Q2W2004m0W0032Y0000RKG004400e00408A0A00G02000C0008000H1004120000 -YsttcCND001H0210Wv@J00m00000G5G0100100g30004108844IG004Gm18W20W000p28W10 -0020H0402020iW4018A00W100WkX2Y0400280a0G000800200C0W000c18100RbO00O0W@@j -10H0mh_IG0000040a001080GW0Yq80G01I8G408000W0884e020000KW041W0DW86W00GW00 -a00001G10000Kp200600G2q02800001YeG00004000120882WXk@11X0000G0KV208W44_@F -1W200082w500Z0DNeN000AqS10H0Ge0O4041r100G8X3q7002bCk0G400K0420HW_00G8Wx2 -000QlGM000Gau20H0001m8041Y200W0W38A40080E0W80OGTO_@F1000L00000m0@30mT@@@ -40GcP000Kn3F4f@18QgEJqoCZebP6p8pCgILgyW7Y_@K0OG6@3GA068QL100Wgl7YEJP4jgK -vXCZ1W1HhgAW_m3yF00OcP0OXVR00u700060N000P00W_yJWu7000EG7W2mU050n1A0Yx004 -t1w8k3s3K3u7e0G6G1W8Wc2W1ypy3e3e7G7G1WEW20n100W1De0Ga10Wu7G6H6mUWE0P05Wi -0CW8300H6G600WC0500EPdA00W30eupg@FXA4y0s00G4SG_z@300gHchdgFytOryA_pdXU_J -uKV3W0000aV0uOVsosR6000mA100_@FA200WnBaJ_z9qDK200sSYKWA102W001G1410Swl1W -002UUZX2_De6S3000418000010KYu600WGO4Q90gj0q8U220106tN804010W188G04020000 -m00G00108002G0WKG042088G00000802G40400000H01W20W18200QW020008Y08011000a0 -401G0W0eW00010@CP0000IP220PHbGoy9qDV2RFF30G004040W8W003000m0W0040000G0C0 -818080002aiel1nxR0I4040014000C000100840WW0400063000feR0008WUiC00G1MYs9Sy -O5rI0300W00002G09200800810gCS30100004080E3000824G00800000200W00010M02GW0 -40020W0GOy601409193s@F1Wz8WTuPms3FaxEIf0pmtu60080e@V30900aVP209W00001CX9 -3xad0000O5200HPw40100W000G400AACXKEbuo13kPd100CW00000WH0qrE3hjR0028@WOkA -fz7IIpWvsDOt_4A@BXy@D8hG300G0Cy_306P0gnmc00310000KG0W9xnurU3_keYTLI00200 -0001000Wa104knOcc@z0W120400m@@DGW00mxZ9i@e100W2000W000W8WV3W000000010g20 -02080m80LTmG2_600GCzg7gwut004H00021ssF11W04JzR0002010G00O8000002Y0000040 -01800010f0QG7b68000u10340000Q210Y00GM064CBIW0W0000G1H0000085eG800000W2W8 -000000eGKa8200aIA0410W00fGG4a9000WKa404100I954Y0000WK00Ip0000850X4H00WKW -2W0ocr0P052Wa80000IT0NE7FM100e0G100004000M0000000W100W200K02A00002800C00 -00W00m400G10822h2I1m0000K01WG000G10Gou323o3m000ug00WG000G1AG0u0kSw_@10WY -000040W8022W07W6G20010GC00GH008WYW050101YE210000GG0g84m041Y1K8A0200004X0 -U00580T0028W2GnGKOu0000HHeOG0DIR08JWG90108GC0wPQ904W000800020E8g1G040100 -02W0WieI300000K0G00G60I2000004402W0020GW00000G00I141008zqQ040G00020G0001 -00Gub001041mKg9y@lG010000IW000G400C0040Mb08H0C5O10Y00mG000C2001202H@5048 -0b2ztWH00KA084610G41WGe@60H4Wfa2W10G8410W4101WL10240J1000ZwWj4410Yf00100 -00IKKyo100me0Lm6w730J008cWa0m1C1e4s3G9IEWIaO4a8n8W9oTGI0v0@0IYP1a49789I_ -1Iay3u7v7OFWEWV0bOK06a2W18cWz0q1C55W1000Wr5G9YO2I4v7m400OlkPG2008000uF0y -00oegg8u3FGmCdXW7U01LL5pSu1Uu1LCpC2wV04agF8eCpGG7Um3KLb@1m1@301dnC2Ueg4C -JP8uXEeg3TmCp45W14KL000u2u11pK60Ue3U000yF0ZhrLcDv0GX1OnSggW_XieDeVU6wZs0 -8W00NuOm@@94qK2bJPGlb6OD00OfR2@@V300ZUN2J51W0W9ab00W0mcx9SBj1boQGmsCidG2 -Tpc00000WD50Nz6rhy600X1OYNCols0e0W00000H200K0U2000W4000K6k10410k3F1h200p -YRmTPCCArF04G00G003000GW0H8000G0010001010C0W0020204020W04010800WKW400000 -GX00080WeAVD04W00800040G0402001101044080000W6W9uZAFT300K2100020010012000 -006080018000148mV300080WW40000084Y40088f_d0OG0800200G00000100G0W01080000 -mw00hDdGxwCCsCFG00G000400800020e000WmtD0000Iz@6W040001220000GWm8@@dm@P6y -1Y10010002W0GG2OxG3000mbfOKXVBHpy60004911FUe7300isVmBq3tIaVl1h4aG@b60000 -W001W800Wo7C0080mkqCG4000n00m5tFSll12O00kRsW_HJ3248oZv6yJz90008HE004p2O4 -000000HCoT200001002aTE63@B10WzaVKZ200Wu2_F000G0049Q856W0W0008YmaY60140e3 -Y76zl2Wi203sx40GWWgyJOhG30060W400O9U3040WW04420004C201G000Xwd0000G00WY3J -A10W00000KI7W0MmBXlPZ20G1G1z6GW4006000eo400000a2A0k@t00090000f00H0a2G2fn -R00W2my0I000000W7ZmjD00I1m@@BzYf1Hzpmft600Y0eNV30060000820G00009kOzPedF6 -Y_F106C0dWRGp_Hr@V20G10kSr0WY040002WP00qjl1814000008W00400W8020apyP00W2m -w@9000W3M1eHFAET_J5nrR01Y000000020G00000040X00000008GW00000100800W00egbA -00SoCMFIr7N100100C0I01M00G8i140000W0W10G0mM20E0DK0I9000aG1020WG0uWK0C0Re -020000012099R00010040G01000TzWe0000Ie0010000C0078h5000Et10000L_v7000W160 -0g0GpygO700eRxeE2s00W0080000GI000W1000J000k0C1C1o2W3W000OF000u00mgu60O2s -307mKA0900006100GU060040000300Wmd1oJ00P1GEu810ow3000GvwCKrV2000KnF00CtF3 -08Y8Yyt30H107Nhrbq64Tg130dmlqI0001eOyD00007XBIRAoGun6K4E3NcPGHl9Kiy3rnLH -lu900OAiPkA6XVfU2Oe6OC6Y3Z2qD0KY1GO6Hjhk1G000srt000W0VWPms_60400eJy4MOtW -YkDubTC000WoS00erzJMIj52000m20A000W000L012G008K101W00WKa1Ae0SLk1008WGA00 -1WW0eHS30400CVc10Y04wbF100A2000000WdNR13Tnun@@dG40014G0W00C0G080W8W1080G -00140104228eWRpDW0K4W2WY008W0O00000240a20114000YW02800FJP0240WwsJ01000Gg -6WFH39OVO00m004000GJ02P000480G0081000800I0W0280800600G02205010W000800042 -100G10C0000080218000W811040001000W100oU81v2003txHI6p00W0W0400G000002G20m -1G0038027048W04GEaF1C010G440883Z087eR00G01010GfLO0080WvoJ000700G0000mIVL -iHHuvG0000000800110WG0G000W80004008k_4o1mW1zD08G0000GG04000001000eSil13c -dm@@60Y_1uNVd00H4a@d1IW00W0G44tk12W02_@t04I10222Y_@t06G00088000010048001 -0mZw60080eyV3gjE100mag200AcDAW00Gj_R0004G02I80080080902008mC3000W0212110 -010W1aIIOOx@4W80002WW8J@400CV7D3LtoR0080m9VJW0000G048G04000X0oyFXD0C0010 -mI_900W0Ono4MgF10yA0Vcx4040mimIW00000004e0000W0cWW0020H01GYG0G0103880GG4 -G8a00280001080080000I03@d0W0180084v_d0000UQ200fhx4O6004HGW41W18201H6X4ID -28004M0e201WG89001I0006W0415041880060084CYGG0004H8I401W00Z00W410GG200WW0 -0000C240002010080000uSq2lJ000e00Y42000WKHW8I080I954A500aWK40n0G4000b8CZ4 -00WKaYZI10W0GA1DXJ000Ha2IGI200GAemGX0G00a200240200I19281200bKGmC0000000G -R6WLcZI1008e004WLGG001G0200001W280K0G400000O0880008W000000G128020000K094 -04400040002000e010P010O2A44I01L6X1000e0000HB008OVdC80W0024X01I0200014cW0 -0060WS2941WW6I50m00K0n0m020W043G8Y701QGu01484440000H840K00075J1922WyGS04 -1E04008G410008012000WrbShZ2120000a8041G001e00041000108G48H20G0b0W00H402I -2004HG409092000Aa000402080212210W0G088W880bkQ00G0WExD0a000Gt4WbzT20mM24H -0Gf0W0HWp0wbWH00O8008633tWSmDm5C2GEu60GW08MS3a2z50H00KB080610G0100eN0014 -YX0000oO00GJuH100eYV00dx0tT_XA@00L_10LEaQl100300kx_1Pz10uk30gS7G8Y0W_@7m -100m3000000WCz1mC00Ou20mJ82000W@_Ay@400CtNVSKIWO2a8v7W9oF82y7GS1_Xy3oA7S -9GGM0v0c0ACS3a8v68HpF0NaVWi0Y0S1KYI2e4HC000AI1ORTd0mC2ApC4KcPCZCpuV0Sm@0 -Gm@1WW7201pK62Ue3_NLgKLLKPcP8u3FGGLd9HS3Y2m0FyWW_701Tu32ILL4qV0y0LLvV0eo -CcHm7y0Wg200WbQ00m6tKL9E904082NYa9pDeN@Yo1@XPpDejV6I18XSUPewSI0pf0ChVQph -RJmUK10010008mGy6CMy3TSR0220W3dI00000G80W@@z00mdrzUIKj@F0005001W0120W280 -0a0080000000DE3t0880000000Wg000008zQ30AG0Exl101100004qIS2Dup0mx6WWmb8lGU -000K8200040009e000010020800040806000418G820G10JRPGO66W028erG380040200uvU -3G500W00000G8mVy60000b_00mYvIii7F0090e0040004083400220010000001n000010W0 -580000000WChxR01000800CW0W000080WG200000900WZzJ0m80mw_600Opy@V30240yu@63 -x1300181422000G00W00800020m00000e020010a008043k1bsPWW10WYoV0083m3rF0UV1u -@@e0G0J0100yBV3MhF10410lf@0K0100W80VSdGoz643U5I600Qst91WW0FRRGg_60208Ot_ -700W8KKU200082ut00W00FEY10YPvRcY2080000H00000JAOmjwFqhU2Fh@mw@9qxl4W1B06 -5cgHrJuFS9UPFXktF1000ViY94PFI2GH00015X0a000Y0020G0X0003wRGcs90041000W100 -e44000fJQGNxU00ua@Xhe0G930L02W00804O0WGAU00H0002400400YW00000010082001GV -_60G000E00G1s6y_@30B202st9005641000082W081euR30G00q7E39YRW20GW9_D0041H5u -FqCU2p@dGuL9yiFI0060GOG0G0G0QrV32xmW_mD0042GXy9CRj1jSRm_@60080e806U@F100 -Jkdh75220nJmDuOP3002AKOl1RRR0005WdWP000W200W18440xMRGZiL0EA1OPVd0040X200 -8QT3E@tWk@D0G00m5x6q_T2nbR000WeasP0100GCuF000WtR00Gp_E1oI0G8aW0040008010 -G0GK20508K010000a01000000O00I4t0WGa48000omr000W00f40S0Ie4503v@d00WphVzZQ -vQ34000CQj1GMV0Ayl2k30Pw300IvsWZ@z0480mSzH1u200e3m500G70S00000TY0d10a409 -Yd000PW4aC000S0000WmmP000aKD3CO600eNVd6fo000D00eUYZxN200WV0000u000WA00er -@J00a@t27OPWRGA0Ii_V2PXZHBs90ov18itbMsk2W0021Xp0108WUhCOgN3oXUZt@D0000bw -10WvkVeeYesthYT2sOYs4EFt0002R3epmqU5LKE300100WW0ymU2HYRG_Q6iAi13jRGwRU0S -r0O0A9kMN82A48XyQ08W0001007pam6y6qLl1W800kVm00400000acAt04002TtdG_z6000W -1_8WW000W2fFvjA9g_N200e0W0080000kac17rR02W00GW100000G15GW0000G0000WW0800 -1BgR08WWWBrD00080A000GG000W0A6MF100TA00W0_mtWC_g8YzP0I0090H5100504W0egqJ -0I00200080808lya0GYW104000G00W00e0W00H802000000CG8G80000400WG0uhV3W0000M -bG02A4G@zRakF3HAGIOxFazW1001000041001001W4W20WL@VOtz700G1inF3000ei500ybn -I0000402080G001080C20Ws@D0G200008WZmC000GW4G00048W000C000ICpt3X@N1002xyq -nOR@VcDt008YG08I000204yV24800WC200404W020msPIK4Q56KK0cSDgmHn000GGFE60400 -eGX4gWF10G08B@@00G1WHyDOO1CcuqcXKP0G08W020000W0tvbW008W4HCOXq78000yTk1X@ -N10WDyurZY0800W0000G02G0068000H0Y2ORF300220004000C0X4I0IK402020WG10SNU22 -000ASyX8sJ0i52Gc@LyaL2px330G0G0400280400D00180G41004X0080Y0@4OWP001J1G42 -80a0X20e0008RM3wNt004G5B@@00O0W3bC0N00GZGHH1G0080015000W8b0HvA1ea2Wa@D0W -G0000GA5100000e0500CZB3a1002Ar0000000ONZ9lY@_DeKE66sN5W000000100G0000a28 -800041e4NJWc10Gg_600L0000G001204128VAA1000G000Hr0a0Ou0W@@hG6G1GWBFanlAvp -pW0W00S00WF@R000G2020001GHdFo0G880N@d00A0G0082l@_mAj60000dJ00m@@IW088O0H -3_Uq6400000WA0000009100000X14WdhD00GG0000aVJJ0b00m7@600048@63cazXwuC00mB -L1MRyl@C000Y8010yrR20Wi1Wm08H500evV3GG8000000z2eW1O34WK20409K0W00840E000 -0B00O0i1205sn0X8wYgdD0Ca2m@@I00OB00W06K0GWSS@100Giw1eK50GLJQP008600000Eh -ed1mkm2GH18@OL8600qilJ000GD00020C4n080W2W000i6000O00001000104WV040e0S100 -o2000C0000000u700W9OF0G0JPnPm3r9O000m0o000W00002000o5@@l200C100y3W000qOf -4fyx100Wnr_Dmh00WHULF00006vL0X900Kvl100W6qTUT3Q0YHz0YQk@90WOg700000YQ_k@ -n0W43GerK56k100W0W000K2U5bY@GQu6K8d4FuPGEJ9a8aGZZ9X00GWIuO0040GDlCW00800 -00010GWd@JG08GGnh9S8c1000000ClKlB6jc@pLwB1m@0O7Ug8G0046k1K0000004C0l1DIP -m5y68010O7P3EIsWOnDW01GW08002000pWPmQy6000WSx56_ucX2npH48G808804005NKOGh -v90040010I01G0YeHJ0400000W04101PdR0088W5qPutP3G40000mCg9yAUFY1100G5lq244 -0140016G00G01004080100020X03GH00G01CX420008G940024W0a000O8W0G0H2e81e214G -m@w6G000m00G82Ae020100000G01000000aE3422W00000880400W0avk10002gvp000W0tX -330W0020m00G142jo0080000040102080200CebX08002052010prt02G00aW51DGeWaol1G -000800200GGW0240G20WwNJGzG4mU46G060OVT6IHs004080800MywXk5z0254820010G070 -0W000W8q_l1G01480010000W200W0G000W02280001300W0200800028080G0lLO00G0010G -0dbO00200a00000eU2XdXMuJ8xR32uV6000188100G4000290010000810W1009G0XW0W004 -4008EoTv6qgX1NOR0100WtzCG0880010000W0m00000080082y@V307e0i9K51n@GNydKZl1 -04000WH0000HiCV3W0I280240000qb@6W8020502ms4900800W00028014208W001E0nWhzD -8LH3000ZIP08ePD6oMqWE_JeUjP80800WW0eHD341000G1000800200G6m00280000040008 -00W0mFK9010G0040m6@600W00200mQW6000406040000000St00W00010CpW1xCX100GmszL -P4J340000022G0408W00mNmCuH8300W10009u8c4wdC1G000W010EOtWbPIO8T30_m0aem3V -T6I0@U00H0IW1044HG01ne0OeG080gY0YW41G090GAW5W4Y24X4G020W01102200W2G00000 -00W41G00004040G46000G8280040000004G020W03305000000OM602Q4qWXObu@V6K200y9 -q928018I44Ga8800O020K822WG1W0X2e1A2040a0100044W32GWKWG00GG00W00001GG0000 -20mW040L900e5HW800000W2b0024000008sjt000wU3zR0C0000010W0W0kwtW4GJOkV3A1K -5000K402089000A0G400001a200000IGg00040810a2Yo0800GAI9G40000850H0I0000IL2 -0P0008bKW0I0000I108100000f04H0200aIA0_@t00TWKO0I81G00GA010Y000eW20H00000 -A008a0000aYP00GiS6KbfA000I8A0000Y0G85000004WC000000020PIK100HWK009004128 -00C000KW00m210000G0A31100014042020AG0G8Q20e004P4H6000G020QsIj1c3404I800B -00H60KG5x64Fb10000G48000H0OXRLAf8XsoD0a0GW80W0C0020W00m6G820W8081510O0KG -W8C0W0A858Ge8080G8E2W80048W88CF0G052meG0J00W3a1H4100840G3a204WW8000WtE3G -900IWG00aW040400G80WWG020Y0H41e800001480020020eHTzdqyl12Y004000W10900004 -G2480W08ICHG014000e0040100W009G000008a00G020004001e00WeaC00K20I20AW0809a -O000240008W4000A20A48800G010W00000408WG0G00qIX1njRmf7gCLl100M00W8W140001 -WWW00G8KVZ08044G@D484II102n800a8084zk1GY0OAqx0610Wf001O4002404Y_R0CH0A5w -l1Z00OK0F000WqUqVIM060H004H000O10G01O8Wj0410ne0010G804GiSFqHx6010040GWOU -00000WjkYwFtnFg0GVa1OHF300S70ex60wZCW300eY@yKqp0mTm1GqF30000000GHqJC0000 -ZuL0t5i00mMq60We000KnF00000mFg0000008q66EL00u2W1u70306WE000T000W2000@W4G -_1_Xy3s3G7u7WISF0b8v0AHoTGYax0k8t1P1KA0F450387000@V0b5W1uYO2i7G4W9WIKI0b -8Y1AH4J000@0c0C1O4Bt3TKu140000@A0C_A0000C2004ryvLad1GKp3GqU5000WW7wWHKbA -pCZ3_702_m34yG08eggGm3Fm@ggYPc10pCZWUu11zNL2wm34qX7K5LLv1FanCcHm@1WWP200 -0GB08OM06GLLUm37yF04S6p8uX00GLf2000W@1OW@PYzk210023IRGFuI4hT800Ksh2dA200 -1z@Rmw@6S@l19@RGr@60010008G0000XtBb8H63ojC10200WkE8g0mWFcbesU90000UGREVb -inupXGL00uQze0G00asc1FnR0008040W00GW00002K6d100W0Yor00080x2@G4t6W0000000 -nTp600Wc3W01GLq9KrD3HZN1G00eK_F14G4H6y600200W0008G2000306080Eqc10H000100 -000A0008ehQ3g2t0G0000G0Ws@F1GfB0lnuH1_Iyzj15gwHBv6KGV20G020Y00W02001CHW2 -80WCxD010K018W00K00e0W000840000110G088000G01G00XGG04Sbj10008P300000020K0 -0080YZuDe7E3wqE14040000W_ocXI_91802101003000HAO00Y86100E0O00K122q@l108W0 -089100G00100a140024000100kUp000e000W1g2A100Pf@UdmKN6K4U27zRG8xLW400eYsGo -zdXT2J00e0GDpC012GOb43wWt0G400bTR040001200G0G0_@t0GbE0rKPm9@C45l1ZoR0020 -G00000408QpKbKtD001Gmzx6CVO2Y0002GaXFwJ0H00GEzOiRb1a600wus900e05Bp00G811 -00GjvR001800200000G0120KwV200104W0008G081R3UpCXbxD0000002ieujDuTp4sNNeOz -Cu3@4000G040023018G00W9@D004Amz_6001eOJS60080W000epO90LW0yh2FbflnAz94jl1 -80GG00000100Pj@402W0r@l102004000SZe1008038DXZ@D0000k@00WSxC8WTa0Gm0KLl1R -wP001e0IW0G00W04408004O001W40086A1m4G00848021208008W82000018080O06KbXGHC -0m0000W2iKbJOMJ6kgJbazb00100C2001W0820X0W02001001GO01Da02H1HW00W80808ijl -100000241004100W00480110G0A080000W82W08s_4c@t0W_A0000GYWNY4Mv1005000H005 -100G4f80008280W00044010W854G004HWK2000Y0A1850qaK0408a2281024GAf000G60040 -0GGK0000f0WI001IaYK0008100000uuI000fI000GaAIN68040aDRE0840G0G0G0G80O0000 -014100O02AGC21620e4080Q80A0GW0I800CeW08a0W0W02202H31062880900420G1400K20 -05Y0nC40WX444G000X00000009DG0004000404000066JU2TFm30000004400i80000W00O0 -0800ma06000003218440W080W0G0060280G1u806GW81I3K0G00083800100A1004400OGW0 -YGo08400C0B0GG004000OL402o10003mZM6yFq31yF30W80H000h0P00W00H104I0W0001HI -W0200YG1Y00WrwD00G452C0808e00020002004480080g038020402W8501G001WW0G10000 -0G000a6FW080H0aci4Xuc30A1000020G0008040W88J0042WSXC100W0o5041002WG0G4a50 -1619kGV008Kou20H0WG1G8041w300ZmcB8B0008Ik0W800e0CIA060DN000W1Fo21W01Ce@1 -3Y9dX@zv10Pc100G5FyGa_7WefA0HBpCYMcPyFLLfALTGLgAwgKLq7wXeLbAHhALU8JPyF0o -uX74z@08wCVGqPcXeLL5FSu1_700yF0HxX7YsV000uEx1HdP6WMLLy000yNcDnCL1G701YEW -E0u0T0A0w0K047e08g10GS7eZe6G7GTWEW2Wz050Y3A04@008_1yJy3e3e7mFG185038o00G -y3aXu7iNK090000W4W2GC06000q9Ju4Q5tWQNi1o00000000eF00WnN1WxW30_H500yA0yZA -0aHVO400mFg0m1t1WCw300w60ex60000et@t000m2s5002@l200QC9IJLLSaaulAJKQGK1QT -Kk4XhMHiu6CRx3reR0000MT000Ledmmt8L0hDR_Z100Mli76Rgs7obEXTuVemz7cvE1W920d -tomw12TsV5001011000084ij_401000G01uCS3oqc100805@QG3l90000xX33w_F10WA01vR -GiB64aF9xrZHuPU4TV20080_CtWAPC014008080aG003YR00000002dDXRmmp6y@V2480102 -00yWU2dqRGe@6KiN8n@RmjpFiBj1lvdG8o6i6k10G001024i@l10004100W0G238nQ60LM00 -40GeLT9kXFXEsPuTk42u760W040000000Kiqk4FLd00m0WO_J00G4Gnv6y@l1Q400QlsWr_D -00u0GKy6W580OoV6_NFXkXo9YbnMInfmyb00001000e0zO86k4CSm4yhF3000W0G00igV2bn -9HWS9i8NHJQJ20004F300000GAgd100080004AiFXnpP8h3I2_a70001TxRGqw90W0000mPQ -Px60200eO@429tW4Fa8XV3cpyaTqWX000Ks36Kzl10W00Ycq04000W412618XTWD0040GPb6 -i7l1hpRGWy948N21ynpdpCyb_340W8EKd10010000e9C00G000AXK600G01004W0004000Wo -_I00W0G@e6yzWDdzRG71FaEI20001YTt0200GGC000YK40H0000I90000H000000g6950Y0H -000028Y800008WK00040102002850000X00I42004G000G4000100002mIy6KNY1xsr20040 -0G48hNy0H00041002200008W00084000208e0G0W001e20Wc004G0005010000G_A800W200 -K00400B6030WX00AG00G100e0060420P1O0m000W000o00e0080840CiEkSUJbXK@P00C000 -8800O0I008W0C000e800200030004400000WC5H410000OG00G10000084060W00WG2O008G -GA000400010W024018060H00W1900104020@0opNsF000WeHE3g_t0050a0008008H088IW0 -G0mCf6000rH0401008000XW000K800e000G001202YK814800H00U0t00a000C1080108G10 -GW20mW@60500eIhMW002yuF3nkPG5w60W08o00020OWiOuCG4008061WKvCWB0000PYQ10Ge -8n10410W20G0G4K700014EGM000GWy20HaDd18A00020EWe000W0u00Y000208002YImuXIl -5ILL5f@08w0vCmX7yF00O6p4TLgAw@000GuC0YMcP4j3FuVPcnCcHbPCJq@dDN2ou@CbHLLH -b7UGq@3WeLzXOvCm3@1W@100LL5qHZ3pZRI4xc10P000m0G000a1e08ICS6u0P4n0x1g3a1K -0e3e0GS000y23K04t108Y1yJS783e6G7Gp2m008w00my3eZ83G7G7WCW2GW09Ga1aX8383G1 -Gc3vIOOez8Y80yRKr9hXKg@F00WsBCXjlXlb8@v1000bz10WOjIRjTR000C5rE6J8dJpKH1I -u0OIUF_YQcaxT2000bE10WGvD80mhoUG800TudaxHTpBjvVEWZG0IU0fEKGws@7000pu300e -8bvdSFAGG50TcuHNTKrWLB000Wi900aa66f9U800WwBtyetHsEv43WiD0JviH@alTKV595uH -GcoX020uyV9000yCLY7V4AKV@2rx6600W0EcHE0090@O_mw@6GP00e1lAQ7HkxLH500JmxqI -0E50OyVC0410iADLvzF3a00Wo@h000AzMJZj5q@P9z@LK@Nbr@JXzVKQ@@4t@Dvz@IW@dau@ -7H_VHc@F4w@1f_@Fi@tZx@x0@VEo@V3z@rO@@Cu@7Z_@lm@VB_@@@@@jP@@Qu@dc_@dn@VP_ -@d8@@7w@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VcyrU0_@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B5000n@@C00On_@@F12000MX0u@@@@@t6000 -G@@d0004000Wc@@@V0f@@@@@@@ZD0Wp_@@zG000m@@120f1u@@Y8000y@l18000_@VU00vm@ -@xnB2d4fG2@@J5mF1W@@T2200m@@HnT00ec8XcNOc@@L10GusN68b0K2@@@3200a@@V00e3m -PKJ_S530000jA00KZo6dOzm@@@@5132000Q0mW@@D0SY3moCA20048uA6w0m0000OfPKnt9T -z@@6a844X0X8100G42G4100G2X0H4849000u5a506@@@VA6bMY13zQ8Kg0X45m9@@R0G8200 -0002a0HG081_@lAWu00st3312000X8HG000aAW7H1So@@6880000009Y440Ya00@@B10oX00 -W38u40000ES0000GE4m100XJ0000C000000W43m3oX00WZ890000GG22Gg06Ga4o9G030000 -W300u@@4000Y45m3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@V208Mx@@@@_3B2000wpm9y@@@ -LSFJAZC0oh1u@V8100Gr7_3PF0P9bI00G_QSzC@@F1miC0@@tudkI000Wni00m4yDkzW4000 -A_@@@@_j1G40mhkC0000DVo9X700C@F3002G_@@@qH_Pku4aC00y@@@HAy@@@@@zy@TN@@st -@dT_@Nl@Vrz@Fz@@1p@@l_@@@@@ZlZ70001000i4100A6ehs7520mHPA_TH0008TVX0DR0Cy -WbJQo0D10W@@f2004m@@810Wn@@@@N3Hq@@H200Zp@@@@@@@@@@@@@@@@@@7@@VD@@l3_@ve -@@Dy@NZ@@@@@VM_@VS@@5@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ev@7 -w_@Vs@Vd@@FS@@1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@Fd4000_@V3ma70@@@@@@d0W00u@@D008v@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@Nb@@3t@Vm@@@@@@@@@@@@@@@@@@@@@@@@@@@s000O52000040u@Vjw5G -800iA@@36040W@@@1qg1m@@V2000LO00Gr12z@VN00ELH0000800u@V9U1uY@@J3G00000W0 -000000K1_@F100G0@@R000W02000JImmr2_1Cf0u@VC0080y@@U00G0A7n0000eqZ00s8814 -000@@R0420WN5Oud4m_@lYM7I000pp@@68W00u@@40040aGnU9AO0020040000C0000008UW -0000aGY29W0088603W000afX12002ELuX@@JxC33000G3MW0G0000I0201000020W0000000 -21000009800G00@FaGB1iTAI20200006000uZ10000WW0000000204IXn0G0000W00I1mW08 -OBx160010W20002400W100Wl140016040HW041G0020A0W01G0G2000W00190022004020W0 -0000800WsTmivSCG0W0000800024XeOWu0000030G2W00080800G00001000A04W0pZOm@86 -aeHQ4020000080100000104G0W00K024000q_FaY10G000004001a2000900GA4000080G80 -0000b0W02Wm@@cLoY10004020000W008WGGiC60y61100000W20W00000G0028010000KW00 -000088080000G00WavIQ0G0W00001080080C040W00000I00a100Wg400W8000GWW0W02000 -02m800W020ZWe100004G0090004001G020G0C03m@@Z100W004050WG0000I00W000180080 -00WhZ82Y045GG0001040GG002W00000205W0100G800X041040001GmpCc1008o04000O00G -00W004041H100G003000W3aQ100i0X10010WI0G0G4K701004CGT000KGu00Ia5W18A40020 -84WZP00WebP6@BpC_70gyW7Y_V04jg000mmx3HBpCYcggyWCpeALfo3n0O00Y_G74jgKv@Cp -281GhA0@@F6G00430W02G6GDWCWQ0T050o0A041000UB050mT002A0T0t1w0g1q1K001e0G4 -G1Wu700H6WEWC0P0T0o0A0a1K0MGIE008W@@R0mO1m8aC0000a200W2fC8693_@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BVy@nB@Fyp@@Ez@kN -@Vxs@p_z@hZ@lwv@dk_@el@@vy@RU@@bx@Fv@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VNH000y@VE000evB00y@FO0004_@d700iF@@@ -@@@CG000u@@M000Wy@l1000ue200y@VT00W0g1GZ@@P0000X500W9DWyO33YK8100xHPFav@ -@90Qp0u@@@@@@@@@@@@@@p5wD4000000Yccn0000qY300_@FD0080H1Wo4DC0uu1u@@@@@Nt -HZIO_8I02000uY0u@Vd000aByW85G1HXYq251ubG4X8mO01UW0IdMM400WmWG7HJ10200GW1 -0WWp18AWJ000GKa46@@d3mB000LW00oV004yL2800010002000400G800W0000n@30Y80G00 -0WWe0E1100GI1HLQb760000000000YIZc0m80C45G500W400Zc00000K@1m@@@@@@@@@@@@@ -@@@@@PMQCek5WPeOx@@M000o1q700000n2Hdy@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@tL@@Rz@Vyw@@E@@jx@@@@@@@@@@@@Vfy@Fg@@@@@@xw@tE@@hx@@@@@@@@@@@@@@ -@@@@@@Fu@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F00001000 -WLS0_@@@@@52040000Lq@@@FLY4_@d7000qXKy@@@h200G8xXV8200y@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@Vi@@ru@@ez@7w@@7t@Vn@@@@@@@@@@@@@@@@@@@@@@@21002u@@V0004y@l1000 -01000f9008fW9RE81004000e6@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Xx@Fu -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D001000 -KX@@@A0001@@d3001W@@P0Om3m@@N1040u@@Y000G3500u@V81000_@V20080000Q_@@a9Cy -0OH1W@@@@@@j1001y@F3W5T0_@@@oMcv@V900CB@@lS0001AUnWeNC0020GH0Ly@V2WbE0_@ -@@85s8DXA2g9XS5O00WPLJBx5cZ40200_@N20R80@@N7081W60C8K8965YXxZCeIZA_@VC22 -00D0Om44U000000Wys@@@@@@@9ITOQF900u1uH5Et8n0s300@@39000H80000009424HWGa0 -00G8@@@@tXHl000050W14Z13r0mm@@_14Y00000W09G440IW2a0GG481200000YGm@@60002 -C50900000o20u@Vs4400000W4H220HI0I41GG49106nX1009Hf0O00mHG0000oX0E008S200 -041vG00m14S200007EY18XK0e8AWJm900y@@@@@@@@@@@@@X0t302kieP0ouTG3W000000Y0 -000002041200@@t20WQrxzOOXlAsB0fHrC8s0C_@V30O40ViXHugmy@@64800g@p000019cL -n@@R0000ri00mUSXy@@Cj4OGjhp40h400u43Yb400G0NMQm15LiAB300010W000018G00001 -40WcOVeDH3C000yde4@@l1GD6WmTR10G8m@@a0W12e8Na000GID008SNIYK81GW00RXk1000 -080G000W00010004G00I0mheI00508qtDo_L200V9P0toO58z@@@@@@@@@@@@@@@@@@@@@VR -_@3vdPfNU4_LBWY00_@FA000a0010180020004402GUnC0G01u@V30840aJf104000O00004 -08@@408002200OBD34000000Wc_00mnJsCkM2JG@0001WynKfnS90000cGc11dd000en@@f2 -W0W001500200W0480000rNT20020@@t000AG0000H0000G00000I0008WprPeVz4gFt00EB0 -NPPJax9yKM50GW00108qek4G00031tW5zD0W00u@@6G04G04000400W40882030G08010002 -0000WtuayIu4Y4kBB11000pZro@@6010G00000C00000020410oWt0XW0W00144228000000 -eWW0000040040G00X020414m0Y00GGG100W22G04G0020100W008GxS60H000eIg0G0880W2 -0GGW00X0W0b0G0214002010W2001W00G0004000080mvQ60W020010n@@UKJl10W0L0801yY -M2800200G00008002080000280120000008020W2280W02W154G04K100W04004G000W0008 -014G0vrb0z20008808000401W0G0101080208WsxD04500280mCyDO2V38W00y@F9nic000H -WltD000A000W020e20000W00GKRC30020000G0080000W0408040002W000000000m020004 -41000kR842000002020020W0084040008000G00ICbO2Dnn000WWu@Evk@@RO@@5w@FX@@@@ -@@@@@Vg_@JDJt9NH2Wo0m@@K100W00028000X3pCG0000014XEdh8lU3kUs0800GdFd0000e -0eD0000El040000G00800000cvb1rGRmyP6y@V8Jp_mAoRKpyC@@R0003@@@@ftNC040Gq@b -1W020001000804200m5mI4YS2W00000200G0WOHR6ojs00G94nYb08000W0105RR0000Yfeo -PYP3wxr000002008040000WGG00000W80000W0014ELEXLbD040W00G8WEiJesC60000Yn00 -OqR3E2mWf0CO8O62Ap080000400sAp08000TDRmAqL0000400e0280400m0RDRmnr60001W0 -W0000I0W0000001UlsWLYD00288H00WdlC004000AH0W0W0H1O0040000_9G101000008Y0e -NR30W0000G40028000K0e808G001owMbZeD00W0W020180002G00cHsWVaD0200ma66000Ge -yw4003080000212X000W7iDGG00W200W3bDu@V30x20000000048438WliJ0W000420010G4 -0001MvmW4cJG004mfs9Kpy3PRp010000200G014oU81004GT0OW004YNkD87E3_@t0W40000 -10_Pt0000420300G00kzi1000W1Y60SOG200000128q2j1000G40110240OuW4EPdXFFgu@@ -@dh_@uk@@jy@RR@@rw@Fj@@@@@@@@@@@VfxuM500h29brI6SFqYD3zv1Jikg04k0u@@F100G -oI00u@VIcqZXtgJONl7ovQfxgP00GCOMsC0012ug1LMGEDG7C0zpBnas6iHV2pZRmFzCCteD -r2Q30004w300pKd000W08040h8A1W00WU4VW000q0ygy@@F00SS@@N200W8@@lnD1f5gz@VY -@Vdw@l9@@Pw@@@@@@@@@rX1CGY6W@@lAaMa000mAU00CqRLcZ2i@@bx0RCAO36G220nWdGa2 -KLLGB@@Z1H90Wd1ewsQ38022000G00080440XlhDOBR3_McXpu3100ezMs600408ZD6wctW3 -06ukiSkjsW85A24wFGNSIK9t6ji3Z000040002WW080000002eiS3G004yJ73134IMU9KHl4 -8000E0OWG94w4x@B1@@Hq@F4_@@m@@@@@@@@@@@tU00MR9w2pCpTD@R50PP0IOMYWdLv@ViZ -qrZ8ha00miOcrIaGjA@@R60K6WNYd90B3800000G8u@j7QREA0004C100_@73W0W0000G020 -Yy@V20804_2tWomDG08WmeuC0000SkPg00OHbaDC80010002G00000480080emdP00010202 -W@@Z2Sz1GVxR800004G0Gxr9CGD30001E0OWQlP8eab_@@@2i@V0y@3G@@@t@l@_@t@VF00M -rv4Bq@@@@@@@@@@@@@@@@@@@@@@@@@tUz@hV@Vwv@V__@bt@@u@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@xt@V_@@tT_@Rl@Vsz@Vz@@@@@@@@@@@l1000m9E00y@VE2000_@t60200D0Om@@a00 -mNu@VH1lO0y@VE0G00YK0uB8ov@@700mIcLF60002_@t60002vJ8n@@y0Sg1e7ZhkAuXa_p1 -000hk00Ww9YQW1600G0y@@F00mjoU8g@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@msY20Gtx -@@2b453BUPmbN9y876lIn001401200PpX180000A10zKXX000WWvm020WG1T6q2M2bW13084 -W@@F1000bG00Woyof6ECkphYF_m00W04021W85s00WFPTQUKzL50W00G00000G0e4C900804 -zG5ntvHE4C0200u8G30100_tc1W7204001qEe1p3cm2POG4000001mlWOG000iAEI6Ep0014 -020000800MGd12400088000e20m010W04001848Y00c2m0000uM200002000400W80m@@900 -G000W00000uKAC8DH3sJZ1a0010000000XigM20082wLh540W0000WoOm00W0W000W010000 -1024G00GW00W0G0G0G00100800000GQo@@L06000400000IW_1C8oX400001080000WHsZ64 -un3pyPmZZIKQ83RFQ0004m@@P0021GtV60080u0W100400801e5I301000oU0020C000G000 -q0pVKnDWCade44000E3q00004K020_@@@@@@@@@@@@@@@@@@@@@@@VO00@8@@lqki8z@FO08 -08A6s9000mS600_@t918042000W0004Ib1200000108002000a0008010001PRW008WugI00 -0WGQs601000000OWs60G0W8JR300Gm@Li420100001abz3RgLnjQI8008e_O3gwcX6bD8JPF -W000iIT2v9pW0000Gs60PC@GQn@0W001480m1s6Sxb17jP040008000G010gJ8XvsCeTS3kW -cX3oCOTi4000GOA008luAW0004M63HASo2QF001001W0GRt9iIj1xRPWW000G04GJSP01W20 -W0000500000000GWX000nM1C00Wx30200102WCqJ0400004008080008000W24iU20G00408 -0abE300A0cNpWFzOOZT3010G0G100004n@@9020W0mJ0180100210tin080000HC0vOR00X0 -8401480080040000WG00008002K0000Xv80200208W04020W02003010000G30WG00000W02 -0X200K30000002W01000iSD340000O0YA8Q3G40010W010040002ag4O0000a00000800ndR -000080008AG40080010G0080008010008G014GA1t00001004G020004G02K000W10WBmD00 -0W00006W10W13O0G002G00K0030000G0082000048W04Y000jYP000000448Thp0000K0002 -rdP0010WcnJW000m31600000820Gqr6G00008G04001WoxIG001m3s6008Gk90308000m000 -080mkP6080020010G01000SK8I00800W04G0i@_40mG08001e_13000AbJX1lFO0804aJsCW -K00GD46Ccl18000lMVfWj@@Ny@xL@@Tv@FN@@@@@@@@@@@@LRqT3m4C0R34rGP6q6dATQzmM -nF000W4600mQ3p30408OjAENR3G000JAdmJtI0sC1uM2g00W0C286jEdG1r6Saj7W0G0000W -5BS5F4o3W010004G044W000018W82100400200008TYP0000akYDOAPL00SUSoWA@@J2000G -021004000O400000S_13oEtWlZD0003GwwF4Zz6VbR0uS4Wu3Nw@@408C0CYk1Y000sisWDn -V00G0GtuOyk_3000uOF00SEvpDH@@Is@d4_@7f@VHy@Fa@@@@@@@@@@@@@@@7Loua00G4v@@ -@@@daRo210003H10W@@Z2002GRr6y@VH00el_@tfllD8ox7_@@70m009A4rwQ9S19IO400oU -Wg@@N20GzHDr@Fpz@na@@Bx@tI@@hy@@@@@@@@@XbrB020WpbDO@Q3wNsWuTt83v70000dnD -30804_@VU00W0NAOGrr9K9U216ZHTpI0u008_O6sP_dLbJ0100100000G048100EBF1W0000 -00W4K00yiU20002010000001040qzwFiCT20000HF88qoCI@@R00402015W06000140G2800 -9G10W008000We0220400S0m0D0O000004005WW28oJ814000W000p6dXtnD00Wf70000001G -vOdGJs900WWu@VRW08000X01W00200O4WAK40100020000WG28e00000GW020P4Omh36G8G1 -00000G0G00100040000G04Bl1Xnp0eC2000000204_@N20240@@R30X0K0010jqRmpr6Cel1 -zbR04G4WHxJ02W4Gws90W00OHS9400000005Y05ma06CcsLvO@@Du@NZ_@pm@VC_@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@FV@@n@@@Fw@t3@@xu@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@bP@@Ou@7c_@Vn@VN_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@l4600 -00wojIsF60G0020000K40000WXC0C0m40000WW4088204210YW009G0W280m04QCcX4IQWXO -0C0040800O22m0020G0000WcuW160G00000W10A82030000QqtloCC0W0040000ivEy30_@V - ; -' // Loading device with a `jstart` instruction. -IRSCAN 10, $03cc - ; -D = 12; -WAIT D CYCLES; -' //Loading device with 'bypass' instruction. -IRSCAN 10, $03ff - ; -' //Loading device with 'bypass' instruction. -IRSCAN 10, $03ff - ; -POSTIR 0 ; -PREIR 0 ; -PREDR 0 ; -POSTDR 0 ; -POSTIR 0 ; -PREIR 0 ; -PREDR 0 ; -POSTDR 0 ; -' // Loading device with a `jstart` instruction. -IRSCAN 10, $03cc - ; -D = 12; -WAIT D CYCLES; -' // Loading device with a `cfg_in` instruction. -IRSCAN 10, $03c5 - ; -DRSCAN 224, $0000000000000000200000008001000c0000000466aa9955ffffffff - ; -' //Checking done pin status. -' //Loading device with 'Bypass' instruction. -IRSCAN 10, $03ff -, COMPARE $0021 -, $0020 -, X; -IF (!X) THEN GOTO F; -POSTIR 0 ; -PREIR 0 ; -POSTDR 0 ; -PREDR 0 ; -IRSCAN 10, $03ff - ; -DRSCAN 1, $00 - ; - -SUCCESS: -PRINT "Successful File Execution."; -EXIT 0; - -F: -PRINT "File Execution Failure."; -EXIT 16; - -ENDPROC; - -DATA TMPDATA; -INTEGER TMP_DELAY; -ENDDATA; - -PROCEDURE ADJUST_BIG_DELAY USES TMPDATA, MAINDATA; -TMP_DELAY = D / 100; -TMP_DELAY = TMP_DELAY * 25; -D = D + TMP_DELAY; -ENDPROC; - -PROCEDURE ADJUST_SMALL_DELAY USES TMPDATA, MAINDATA; -TMP_DELAY = D * 25; -TMP_DELAY = TMP_DELAY / 100; -D = D + TMP_DELAY; -ENDPROC; - -PROCEDURE ADJUST_DELAY USES MAINDATA, ADJUST_BIG_DELAY, ADJUST_SMALL_DELAY; -IF D > 2500 THEN CALL ADJUST_BIG_DELAY; -IF D <= 2500 THEN CALL ADJUST_SMALL_DELAY; -ENDPROC; - -CRC 324E; diff --git a/oldfiles/vulom3/ulogic.vhd b/oldfiles/vulom3/ulogic.vhd deleted file mode 100644 index cfb8306..0000000 --- a/oldfiles/vulom3/ulogic.vhd +++ /dev/null @@ -1,333 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Davide Leoni --- --- Create Date: 5/4/07 --- Design Name: vulom3 --- Module Name: ulogic - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: VME address encoder and decoder, I/O ECL configuration --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -entity ulogic is port ( - RESET : in std_logic; - CK50 : in std_logic; - CK300 : in std_logic; - CK100 : in std_logic; - LEMOU : out std_logic_vector(2 downto 1); -- - LEMIN : in std_logic_vector(2 downto 1); -- - TIN : out std_logic_vector(16 downto 1); - EN : out std_logic_vector(4 downto 1); - ECO : out std_logic_vector(16 downto 1); - ECL : in std_logic_vector(16 downto 1); - IOO : in std_logic_vector(16 downto 1); - FLED_T : out std_logic_vector(6 downto 1); ------------------------------- VME interface ------------------------------------- - U_AD_REG : in std_logic_vector(21 downto 2); - U_DAT_IN : in std_logic_vector(31 downto 0); - U_DATA_O : out std_logic_vector(31 downto 0); - OECSR : in std_logic; - CKCSR : in std_logic; - HPV : inout std_logic_vector(15 downto 0); - HPW : inout std_logic_vector(15 downto 0) - ); -end ulogic; -architecture RTL of ulogic is -signal ckcsro : std_logic_vector (35 downto 0); -- write clock for registers -signal oecsro : std_logic_vector (35 downto 0); -- read enable for registers -signal hplx : std_logic_vector (7 downto 0); -- data register for logic analyzer -signal INPUT_ENABLE : std_logic_vector(7 downto 1); -signal downscale_register_1, downscale_register_2, downscale_register_3,downscale_register_4, downscale_register_5, downscale_register_ts, downscale_register_vs, downscale_register_clock : std_logic_vector(3 downto 0); --15 -signal delay_register_1, delay_register_2, delay_register_3, delay_register_4, delay_register_5, delay_register_ts, delay_register_vs : std_logic_vector(3 downto 0); -signal width_register_1, width_register_2, width_register_3, width_register_4, width_register_5, width_register_ts, width_register_vs, width_output : std_logic_vector(3 downto 0); -signal scaler_pti1, scaler_pti2, scaler_pti3, scaler_pti4, scaler_pti5, scaler_ts, scaler_vs, scaler_mdc, scaler_tof, scaler_dead, scaler_pti1_accepted, scaler_pti2_accepted, scaler_pti3_accepted, scaler_pti4_accepted, scaler_pti5_accepted, scaler_ts_accepted, scaler_vs_accepted, scaler_mux1, scaler_mux2 : std_logic_vector(31 downto 0); -signal scaler_reset, scaler_mdc_tof_select : std_logic_vector(7 downto 0); -signal or_on_off : std_logic_vector(7 downto 0); -signal ts_gating_disable : std_logic_vector(7 downto 1); -signal pti5_ts_alternative, delay_register_beam, width_inhibit_register_beam, width_external_register_beam : std_logic_vector(7 downto 0); -signal mux_selector_1, mux_selector_2 : std_logic_vector(3 downto 0); -signal branch_en_with_mdc_tof_width, dtu_code_select_i: std_logic_vector(4 downto 0); ---signal u_data_o_s : std_logic_vector(31 downto 0); -signal cal_trigger_disable, com_run, dtu_error : std_logic; -signal debug_1 : std_logic_vector(31 downto 0); -signal trb_busy_enable : std_logic; -component trig_box1 - port (CLK_50MHZ : in std_logic; - CLK_300MHz : in std_logic; - CLK_100MHz : in std_logic; - ECL : in std_logic_vector(16 downto 1); - ECO : out std_logic_vector(16 downto 1); - IOO : in std_logic_vector(16 downto 1); - TIN : out std_logic_vector(16 downto 1); - LEMIN : in std_logic_vector(2 downto 1); - LEMOU : out std_logic_vector(2 downto 1); - INPUT_ENABLE : in std_logic_vector(7 downto 1); - DOWNSCALE_REGISTER_1 : in std_logic_vector(3 downto 0); --15 - DELAY_REGISTER_1 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_1 : in std_logic_vector(3 downto 0); --4 - DOWNSCALE_REGISTER_2 : in std_logic_vector(3 downto 0); - DELAY_REGISTER_2 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_2 : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_3 : in std_logic_vector(3 downto 0); - DELAY_REGISTER_3 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_3 : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_4 : in std_logic_vector(3 downto 0); - DELAY_REGISTER_4 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_4 : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_5 : in std_logic_vector(3 downto 0); - DELAY_REGISTER_5 : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_5 : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_TS : in std_logic_vector(3 downto 0); - DELAY_REGISTER_TS : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_TS : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_VS : in std_logic_vector(3 downto 0); - DELAY_REGISTER_VS : in std_logic_vector(3 downto 0); - WIDTH_REGISTER_VS : in std_logic_vector(3 downto 0); - DOWNSCALE_REGISTER_CLOCK : in std_logic_vector(3 downto 0); - BRANCH_EN_with_MDC_TOF_WIDTH : in std_logic_vector(4 downto 0); - WIDTH_OUTPUT : in std_logic_vector(3 downto 0); - MUX_SELECTOR_1 : in std_logic_vector(3 downto 0); - MUX_SELECTOR_2 : in std_logic_vector(3 downto 0); - OR_ON_OFF : in std_logic_vector(7 downto 0); - SCALER_PTI1 : out std_logic_vector(31 downto 0); - SCALER_PTI2 : out std_logic_vector(31 downto 0); - SCALER_PTI3 : out std_logic_vector(31 downto 0); - SCALER_PTI4 : out std_logic_vector(31 downto 0); - SCALER_PTI5 : out std_logic_vector(31 downto 0); - SCALER_TS : out std_logic_vector(31 downto 0); - SCALER_VS : out std_logic_vector(31 downto 0); - SCALER_MDC_TOF_SELECT : in std_logic_vector(7 downto 0); - SCALER_MDC : out std_logic_vector(31 downto 0); - SCALER_TOF : out std_logic_vector(31 downto 0); - SCALER_RESET : in std_logic_vector(7 downto 0); - PTI5_TS_ALTERNATIVE : in std_logic_vector(7 downto 0); - DELAY_REGISTER_BEAM : in std_logic_vector(7 downto 0); - WIDTH_INHIBIT_REGISTER_BEAM : in std_logic_vector(7 downto 0); - WIDTH_EXTERNAL_REGISTER_BEAM : in std_logic_vector(7 downto 0); - SCALER_DEAD : out std_logic_vector(31 downto 0); - TS_GATING_DISABLE : in std_logic_vector(7 downto 1); - SCALER_PTI1_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_PTI2_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_PTI3_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_PTI4_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_PTI5_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_TS_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_VS_ACCEPTED : out std_logic_vector(31 downto 0); - SCALER_MUX1 : out std_logic_vector(31 downto 0); - SCALER_MUX2 : out std_logic_vector(31 downto 0); - DTU_CODE_SELECT : in std_logic_vector(4 downto 0); - CAL_TRIGGER_DISABLE : in std_logic; - COM_RUN : in std_logic; - DTU_ERROR : out std_logic; - HPV : inout std_logic_vector(15 downto 0); - HPW : inout std_logic_vector(15 downto 0); - DEBUG_REG_00 : out std_logic_vector(31 downto 0); - TRB_BUSY_ENABLE : in std_logic - ); -end component; -begin - trgb_1 : trig_box1 port map ( - CLK_50MHz => CK50, - CLK_300MHz => CK300, - CLK_100MHz => CK100, - ECL => ECL, - ECO => ECO, - IOO => IOO, - TIN => TIN, - LEMIN => LEMIN, - LEMOU => LEMOU, - INPUT_ENABLE => INPUT_ENABLE, - DOWNSCALE_REGISTER_1 => downscale_register_1, - DELAY_REGISTER_1 => delay_register_1, - WIDTH_REGISTER_1 => width_register_1, - DOWNSCALE_REGISTER_2 => downscale_register_2, - DELAY_REGISTER_2 => delay_register_2, - WIDTH_REGISTER_2 => width_register_2, - DOWNSCALE_REGISTER_3 => downscale_register_3, - DELAY_REGISTER_3 => delay_register_3, - WIDTH_REGISTER_3 => width_register_3, - DOWNSCALE_REGISTER_4 => downscale_register_4, - DELAY_REGISTER_4 => delay_register_4, - WIDTH_REGISTER_4 => width_register_4, - DOWNSCALE_REGISTER_5 => downscale_register_5, - DELAY_REGISTER_5 => delay_register_5, - WIDTH_REGISTER_5 => width_register_5, - DOWNSCALE_REGISTER_TS => downscale_register_ts, - DELAY_REGISTER_TS => delay_register_ts, - WIDTH_REGISTER_TS => width_register_ts, - DOWNSCALE_REGISTER_VS => downscale_register_vs, - DELAY_REGISTER_VS => delay_register_vs, - WIDTH_REGISTER_VS => width_register_vs, - DOWNSCALE_REGISTER_CLOCK => downscale_register_clock, - BRANCH_EN_with_MDC_TOF_WIDTH => branch_en_with_mdc_tof_width, - WIDTH_OUTPUT => width_output, - MUX_SELECTOR_1 => mux_selector_1, - MUX_SELECTOR_2 => mux_selector_2, - OR_ON_OFF => or_on_off, - SCALER_PTI1 => scaler_pti1, - SCALER_PTI2 => scaler_pti2, - SCALER_PTI3 => scaler_pti3, - SCALER_PTI4 => scaler_pti4, - SCALER_PTI5 => scaler_pti5, - SCALER_TS => scaler_ts, - SCALER_VS => scaler_vs, - SCALER_MDC_TOF_SELECT => scaler_mdc_tof_select, - SCALER_MDC => scaler_mdc, - SCALER_TOF => scaler_tof, - SCALER_RESET => scaler_reset, - PTI5_TS_ALTERNATIVE => pti5_ts_alternative, - DELAY_REGISTER_BEAM => delay_register_beam, - WIDTH_INHIBIT_REGISTER_BEAM => width_inhibit_register_beam, - WIDTH_EXTERNAL_REGISTER_BEAM => width_external_register_beam, - SCALER_DEAD => scaler_dead, - TS_GATING_DISABLE => ts_gating_disable, - SCALER_PTI1_ACCEPTED => scaler_pti1_accepted, - SCALER_PTI2_ACCEPTED => scaler_pti2_accepted, - SCALER_PTI3_ACCEPTED => scaler_pti3_accepted, - SCALER_PTI4_ACCEPTED => scaler_pti4_accepted, - SCALER_PTI5_ACCEPTED => scaler_pti5_accepted, - SCALER_TS_ACCEPTED => scaler_ts_accepted, - SCALER_VS_ACCEPTED => scaler_vs_accepted, - SCALER_MUX1 => scaler_mux1, - SCALER_MUX2 => scaler_mux2, - DTU_CODE_SELECT => dtu_code_select_i, - CAL_TRIGGER_DISABLE => cal_trigger_disable, - COM_RUN => com_run, - DTU_ERROR => dtu_error, - HPV => HPV, - HPW => HPW, - DEBUG_REG_00 => debug_1, - TRB_BUSY_ENABLE => trb_busy_enable - ); ----------------------I/O ecl port settings and led configuration --------------------------------- --- tin(16 downto 9) <= (others => '0'); - EN(4 downto 1) <= "1011"; --- en(2) <= '1'; -- I/O channel 9 to 16 is an output if 0 --- tin(8 downto 1) <= (others => '0'); --- en(1) <= '1'; -- I/O channel 1 to 8 is an output if 0 - FLED_T(5 downto 1) <= not INPUT_ENABLE(5 downto 1); -- input LEDs -------------------------------decoder for data registers ----------------------------------------- - process(CK50) - begin - if rising_edge(CK50) then - if CKCSR = '1' then --read from VME bus - case (U_AD_REG(17 downto 2)) is - when x"0000" => delay_register_1 <= U_DAT_IN(3 downto 0); - when x"0001" => delay_register_2 <= U_DAT_IN(3 downto 0); - when x"0002" => delay_register_3 <= U_DAT_IN(3 downto 0); - when x"0003" => delay_register_4 <= U_DAT_IN(3 downto 0); - when x"0004" => delay_register_5 <= U_DAT_IN(3 downto 0); - when x"0005" => delay_register_ts <= U_DAT_IN(3 downto 0); - when x"0006" => delay_register_vs <= U_DAT_IN(3 downto 0); - when x"0007" => downscale_register_1 <= U_DAT_IN(3 downto 0); - when x"0008" => downscale_register_2 <= U_DAT_IN(3 downto 0); - when x"0009" => downscale_register_3 <= U_DAT_IN(3 downto 0); - when x"000a" => downscale_register_4 <= U_DAT_IN(3 downto 0); - when x"000b" => downscale_register_5 <= U_DAT_IN(3 downto 0); - when x"000c" => downscale_register_ts <= U_DAT_IN(3 downto 0); - when x"000d" => downscale_register_vs <= U_DAT_IN(3 downto 0); - when x"000e" => downscale_register_clock <= U_DAT_IN(3 downto 0); - when x"000f" => width_register_1 <= U_DAT_IN(3 downto 0); - when x"0010" => width_register_2 <= U_DAT_IN(3 downto 0); - when x"0011" => width_register_3 <= U_DAT_IN(3 downto 0); - when x"0012" => width_register_4 <= U_DAT_IN(3 downto 0); - when x"0013" => width_register_5 <= U_DAT_IN(3 downto 0); - when x"0014" => width_register_ts <= U_DAT_IN(3 downto 0); - when x"0015" => width_register_vs <= U_DAT_IN(3 downto 0); - when x"0016" => or_on_off <= U_DAT_IN(7 downto 0); - when x"0017" => mux_selector_1 <= U_DAT_IN(3 downto 0); - when x"0018" => mux_selector_2 <= U_DAT_IN(3 downto 0); - -- scalers must not be written by command - when x"0020" => input_enable <= U_DAT_IN(6 downto 0); - when x"0021" => width_output <= U_DAT_IN(3 downto 0); - when x"0022" => com_run <= U_DAT_IN(0); - when x"0023" => scaler_reset <= U_DAT_IN(7 downto 0); - when x"0024" => branch_en_with_mdc_tof_width <= U_DAT_IN(4 downto 0); - when x"0025" => scaler_mdc_tof_select <= U_DAT_IN(7 downto 0); - -- scalers must not be written by command - when x"0028" => pti5_ts_alternative <= U_DAT_IN(7 downto 0); - when x"0029" => delay_register_beam <= U_DAT_IN(7 downto 0); - when x"002a" => width_inhibit_register_beam <= U_DAT_IN(7 downto 0); - when x"002b" => width_external_register_beam <= U_DAT_IN(7 downto 0); - when x"002c" => ts_gating_disable <= U_DAT_IN(6 downto 0); - -- scalers must not be written by command - when x"0037" => cal_trigger_disable <= U_DAT_IN(0); - when x"0038" => dtu_error <= U_DAT_IN(0); - when x"0039" => dtu_code_select_i <= U_DAT_IN(4 downto 0); - when x"0041" => trb_busy_enable <= U_DAT_IN(0); - when others => null; - end case; - elsif OECSR = '1' then --write to VME bus - case (U_AD_REG(17 downto 2)) is - when x"0000" => U_DATA_O <= x"0000000" & delay_register_1; - when x"0001" => U_DATA_O <= x"0000000" & delay_register_2; - when x"0002" => U_DATA_O <= x"0000000" & delay_register_3; - when x"0003" => U_DATA_O <= x"0000000" & delay_register_4; - when x"0004" => U_DATA_O <= x"0000000" & delay_register_5; - when x"0005" => U_DATA_O <= x"0000000" & delay_register_ts; - when x"0006" => U_DATA_O <= x"0000000" & delay_register_vs; - when x"0007" => U_DATA_O <= x"0000000" & downscale_register_1; - when x"0008" => U_DATA_O <= x"0000000" & downscale_register_2; - when x"0009" => U_DATA_O <= x"0000000" & downscale_register_3; - when x"000a" => U_DATA_O <= x"0000000" & downscale_register_4; - when x"000b" => U_DATA_O <= x"0000000" & downscale_register_5; - when x"000c" => U_DATA_O <= x"0000000" & downscale_register_ts; - when x"000d" => U_DATA_O <= x"0000000" & downscale_register_vs; - when x"000e" => U_DATA_O <= x"0000000" & downscale_register_clock; - when x"000f" => U_DATA_O <= x"0000000" & width_register_1; - when x"0010" => U_DATA_O <= x"0000000" & width_register_2; - when x"0011" => U_DATA_O <= x"0000000" & width_register_3; - when x"0012" => U_DATA_O <= x"0000000" & width_register_4; - when x"0013" => U_DATA_O <= x"0000000" & width_register_5; - when x"0014" => U_DATA_O <= x"0000000" & width_register_ts; - when x"0015" => U_DATA_O <= x"0000000" & width_register_vs; - when x"0016" => U_DATA_O <= x"000000" & or_on_off; - when x"0017" => U_DATA_O <= x"0000000" & mux_selector_1; - when x"0018" => U_DATA_O <= x"0000000" & mux_selector_2; - when x"0019" => U_DATA_O <= scaler_pti1; - when x"001a" => U_DATA_O <= scaler_pti2; - when x"001b" => U_DATA_O <= scaler_pti3; - when x"001c" => U_DATA_O <= scaler_pti4; - when x"001d" => U_DATA_O <= scaler_pti5; - when x"001e" => U_DATA_O <= scaler_ts; - when x"001f" => U_DATA_O <= scaler_vs; - when x"0020" => U_DATA_O <= x"000000" & '0' & input_enable; - when x"0021" => U_DATA_O <= x"0000000" & width_output; - when x"0022" => U_DATA_O <= x"0000000" & "000" & com_run; - when x"0023" => U_DATA_O <= x"000000" & scaler_reset; - when x"0024" => U_DATA_O <= x"000000" & "000" & branch_en_with_mdc_tof_width; - when x"0025" => U_DATA_O <= x"000000" & scaler_mdc_tof_select; - when x"0026" => U_DATA_O <= scaler_mdc; - when x"0027" => U_DATA_O <= scaler_tof; - when x"0028" => U_DATA_O <= x"000000" & pti5_ts_alternative; - when x"0029" => U_DATA_O <= x"000000" & delay_register_beam; - when x"002a" => U_DATA_O <= x"000000" & width_inhibit_register_beam; - when x"002b" => U_DATA_O <= x"000000" & width_external_register_beam; - when x"002c" => U_DATA_O <= x"000000" & '0' & ts_gating_disable; --b0 - when x"002d" => U_DATA_O <= scaler_dead; - when x"002e" => U_DATA_O <= scaler_pti1_accepted; - when x"002f" => U_DATA_O <= scaler_pti2_accepted; - when x"0030" => U_DATA_O <= scaler_pti3_accepted; - when x"0031" => U_DATA_O <= scaler_pti4_accepted; - when x"0032" => U_DATA_O <= scaler_pti5_accepted; - when x"0033" => U_DATA_O <= scaler_ts_accepted; - when x"0034" => U_DATA_O <= scaler_vs_accepted; - when x"0035" => U_DATA_O <= scaler_mux1; - when x"0036" => U_DATA_O <= scaler_mux2; - when x"0037" => U_DATA_O <= x"0000000" & "000" & cal_trigger_disable; - when x"0038" => U_DATA_O <= x"0000000" & "000" & dtu_error; - when x"0039" => U_DATA_O <= x"000000" & "000" & dtu_code_select_i; - when x"0040" => U_DATA_O <= debug_1; - when x"0041" => U_DATA_O <= x"0000000" & "000" & trb_busy_enable; - when others => null; - end case; - end if; - end if; - end process; -end rtl; diff --git a/oldfiles/vulom3/vlogic_1.prj b/oldfiles/vulom3/vlogic_1.prj deleted file mode 100644 index c25b735..0000000 --- a/oldfiles/vulom3/vlogic_1.prj +++ /dev/null @@ -1,15 +0,0 @@ -vhdl work "set_width_special.vhd" -vhdl work "set_width.vhd" -vhdl work "scaler_s.vhd" -vhdl work "one_clock_long.vhd" -vhdl work "new_downscale_ck.vhd" -vhdl work "eco_delay.vhd" -vhdl work "downscale.vhd" -vhdl work "delay.vhd" -vhdl work "bus_data_com5.vhd" -vhdl work "beam_ramp.vhd" -vhdl work "trig_box1.vhd" -vhdl work "vmelogic.vhd" -vhdl work "ulogic.vhd" -vhdl work "clocking.vhd" -vhdl work "vlogic_1.vhd" diff --git a/oldfiles/vulom3/vlogic_1.sdc b/oldfiles/vulom3/vlogic_1.sdc deleted file mode 100644 index 95e2f2a..0000000 --- a/oldfiles/vulom3/vlogic_1.sdc +++ /dev/null @@ -1,57 +0,0 @@ -# Synplicity, Inc. constraint file -# /home/marek/vulom3/vlogic_1.sdc -# Written on Mon Apr 28 11:36:24 2008 -# by Synplify Pro, Version 9.0.1 Scope Editor - -# -# Collections -# - -# -# Clocks -# - -define_clock {p:vlogic_1|CKFPL} -name {p:vlogic_1|CKFPL} -freq 110 -clockgroup Autoconstr_clkgroup_1 -rise 0 -fall 5 -route 0 -define_clock {n:beam_ramp|clk_10Hz} -name {n:beam_ramp|clk_10Hz} -period 1000 -clockgroup Autoconstr_clkgroup_3 -rise 0 -fall 0.5 -route 0 -define_clock {n:CLKDV_BUFG_INST|CLKDV_OUT} -name {n:CLKDV_BUFG_INST|CLKDV_OUT} -freq 55 -clockgroup Autoconstr_clkgroup_1 -rise 0 -fall 10 -route 0 -define_clock {n:CLKFX_BUFG_INST|CLKFX_OUT} -name {n:CLKFX_BUFG_INST|CLKFX_OUT} -freq 330 -clockgroup Autoconstr_clkgroup_1 -rise 0 -fall 1.5 -route 0 - -# -# Clock to Clock -# - -# -# Inputs/Outputs -# - -# -# Registers -# - -# -# Multi-Cycle Paths -# - -# -# False Paths -# - -# -# Max Delay Paths -# - -# -# Attributes -# - -# -# I/O Standards -# - -# -# Compile Points -# - -# -# Other -# diff --git a/oldfiles/vulom3/vlogic_1.ucf b/oldfiles/vulom3/vlogic_1.ucf deleted file mode 100644 index 3e37e67..0000000 --- a/oldfiles/vulom3/vlogic_1.ucf +++ /dev/null @@ -1,249 +0,0 @@ -NET "AD<0>" LOC = "V16" | IOSTANDARD = "LVTTL"; -NET "AD<1>" LOC = "V15" | IOSTANDARD = "LVTTL"; -NET "AD<2>" LOC = "V6" | IOSTANDARD = "LVTTL"; -NET "AD<3>" LOC = "V5" | IOSTANDARD = "LVTTL"; -NET "AD<4>" LOC = "T14" | IOSTANDARD = "LVTTL"; -NET "AD<5>" LOC = "U13" | IOSTANDARD = "LVTTL"; -NET "AD<6>" LOC = "U8" | IOSTANDARD = "LVTTL"; -NET "AD<7>" LOC = "T7" | IOSTANDARD = "LVTTL"; -NET "AD<8>" LOC = "V13" | IOSTANDARD = "LVTTL"; -NET "AD<9>" LOC = "V12" | IOSTANDARD = "LVTTL"; -NET "AD<10>" LOC = "V9" | IOSTANDARD = "LVTTL"; -NET "AD<11>" LOC = "V8" | IOSTANDARD = "LVTTL"; -NET "AD<12>" LOC = "U12" | IOSTANDARD = "LVTTL"; -NET "AD<13>" LOC = "V11" | IOSTANDARD = "LVTTL"; -NET "AD<14>" LOC = "V10" | IOSTANDARD = "LVTTL"; -NET "AD<15>" LOC = "U9" | IOSTANDARD = "LVTTL"; -NET "AD<16>" LOC = "W13" | IOSTANDARD = "LVTTL"; -NET "AD<17>" LOC = "W12" | IOSTANDARD = "LVTTL"; -NET "AD<18>" LOC = "Y5" | IOSTANDARD = "LVTTL"; -NET "AD<19>" LOC = "W5" | IOSTANDARD = "LVTTL"; -NET "AD<20>" LOC = "Y12" | IOSTANDARD = "LVTTL"; -NET "AD<21>" LOC = "Y11" | IOSTANDARD = "LVTTL"; -NET "AD<22>" LOC = "Y6" | IOSTANDARD = "LVTTL"; -NET "AD<23>" LOC = "W6" | IOSTANDARD = "LVTTL"; -NET "AD<24>" LOC = "W11" | IOSTANDARD = "LVTTL"; -NET "AD<25>" LOC = "W10" | IOSTANDARD = "LVTTL"; -NET "AD<26>" LOC = "Y7" | IOSTANDARD = "LVTTL"; -NET "AD<27>" LOC = "W7" | IOSTANDARD = "LVTTL"; -NET "AD<28>" LOC = "Y10" | IOSTANDARD = "LVTTL"; -NET "AD<29>" LOC = "Y9" | IOSTANDARD = "LVTTL"; -NET "AD<30>" LOC = "W9" | IOSTANDARD = "LVTTL"; -NET "AD<31>" LOC = "W8" | IOSTANDARD = "LVTTL"; -NET "AI<0>" LOC = "L19" | IOSTANDARD = "LVTTL"; -NET "AI<1>" LOC = "M19" | IOSTANDARD = "LVTTL"; -NET "ASI" LOC = "R17" | IOSTANDARD = "LVTTL"; -NET "BERR" LOC = "U16" | IOSTANDARD = "LVTTL"; -NET "BERRO" LOC = "V20" | IOSTANDARD = "LVTTL"; -NET "BLTACK" LOC = "U17" | IOSTANDARD = "LVTTL"; -NET "CAIV" LOC = "R19" | IOSTANDARD = "LVTTL"; -NET "CKFNL" LOC = "B7" | IOSTANDARD = "LVTTL"; -NET "CKFPL" LOC = "A7" | IOSTANDARD = "LVTTL"; -NET "CON<0>" LOC = "F18" | IOSTANDARD = "LVTTL"; -NET "CON<1>" LOC = "E18" | IOSTANDARD = "LVTTL"; -NET "CON<2>" LOC = "C18" | IOSTANDARD = "LVTTL"; -NET "CON<3>" LOC = "C19" | IOSTANDARD = "LVTTL"; -NET "CON<4>" LOC = "F16" | IOSTANDARD = "LVTTL"; -NET "CON<5>" LOC = "F17" | IOSTANDARD = "LVTTL"; -NET "CON<6>" LOC = "D19" | IOSTANDARD = "LVTTL"; -NET "CON<7>" LOC = "E19" | IOSTANDARD = "LVTTL"; -NET "CON<8>" LOC = "G16" | IOSTANDARD = "LVTTL"; -NET "CON<9>" LOC = "G17" | IOSTANDARD = "LVTTL"; -NET "CON<10>" LOC = "E20" | IOSTANDARD = "LVTTL"; -NET "CON<11>" LOC = "F20" | IOSTANDARD = "LVTTL"; -NET "CON<12>" LOC = "H16" | IOSTANDARD = "LVTTL"; -NET "CON<13>" LOC = "H17" | IOSTANDARD = "LVTTL"; -NET "CON<14>" LOC = "F19" | IOSTANDARD = "LVTTL"; -NET "CON<15>" LOC = "G19" | IOSTANDARD = "LVTTL"; -NET "DI<0>" LOC = "N17" | IOSTANDARD = "LVTTL"; -NET "DI<1>" LOC = "N18" | IOSTANDARD = "LVTTL"; -NET "DI<2>" LOC = "N19" | IOSTANDARD = "LVTTL"; -NET "DI<3>" LOC = "P16" | IOSTANDARD = "LVTTL"; -NET "DI<4>" LOC = "P17" | IOSTANDARD = "LVTTL"; -NET "DI<5>" LOC = "P19" | IOSTANDARD = "LVTTL"; -NET "DI<6>" LOC = "P20" | IOSTANDARD = "LVTTL"; -#NET "DOUT_LCD" LOC = "M16" | IOSTANDARD = "LVTTL"; -NET "DS0I" LOC = "T19" | IOSTANDARD = "LVTTL"; -NET "DS1I" LOC = "T20" | IOSTANDARD = "LVTTL"; -NET "ECL<1>" LOC = "B15" | IOSTANDARD = "LVTTL"; -NET "ECL<2>" LOC = "A15" | IOSTANDARD = "LVTTL"; -NET "ECL<3>" LOC = "A16" | IOSTANDARD = "LVTTL"; -NET "ECL<4>" LOC = "B16" | IOSTANDARD = "LVTTL"; -NET "ECL<5>" LOC = "C15" | IOSTANDARD = "LVTTL"; -NET "ECL<6>" LOC = "C16" | IOSTANDARD = "LVTTL"; -NET "ECL<7>" LOC = "B17" | IOSTANDARD = "LVTTL"; -NET "ECL<8>" LOC = "C17" | IOSTANDARD = "LVTTL"; -NET "ECL<9>" LOC = "D16" | IOSTANDARD = "LVTTL"; -NET "ECL<10>" LOC = "E16" | IOSTANDARD = "LVTTL"; -NET "ECL<11>" LOC = "A18" | IOSTANDARD = "LVTTL"; -NET "ECL<12>" LOC = "B18" | IOSTANDARD = "LVTTL"; -NET "ECL<13>" LOC = "D17" | IOSTANDARD = "LVTTL"; -NET "ECL<14>" LOC = "D18" | IOSTANDARD = "LVTTL"; -NET "ECL<15>" LOC = "B19" | IOSTANDARD = "LVTTL"; -NET "ECL<16>" LOC = "C20" | IOSTANDARD = "LVTTL"; -NET "ECO<1>" LOC = "A5" | IOSTANDARD = "LVTTL"; -NET "ECO<2>" LOC = "B5" | IOSTANDARD = "LVTTL"; -NET "ECO<3>" LOC = "C6" | IOSTANDARD = "LVTTL"; -NET "ECO<4>" LOC = "C5" | IOSTANDARD = "LVTTL"; -NET "ECO<5>" LOC = "B4" | IOSTANDARD = "LVTTL"; -NET "ECO<6>" LOC = "C4" | IOSTANDARD = "LVTTL"; -NET "ECO<7>" LOC = "D5" | IOSTANDARD = "LVTTL"; -NET "ECO<8>" LOC = "E5" | IOSTANDARD = "LVTTL"; -NET "ECO<9>" LOC = "A3" | IOSTANDARD = "LVTTL"; -NET "ECO<10>" LOC = "B3" | IOSTANDARD = "LVTTL"; -NET "ECO<11>" LOC = "D4" | IOSTANDARD = "LVTTL"; -NET "ECO<12>" LOC = "D3" | IOSTANDARD = "LVTTL"; -NET "ECO<13>" LOC = "B2" | IOSTANDARD = "LVTTL"; -NET "ECO<14>" LOC = "C1" | IOSTANDARD = "LVTTL"; -NET "ECO<15>" LOC = "F3" | IOSTANDARD = "LVTTL"; -NET "ECO<16>" LOC = "E3" | IOSTANDARD = "LVTTL"; -NET "EN<1>" LOC = "M20" | IOSTANDARD = "LVTTL"; -NET "EN<2>" LOC = "L20" | IOSTANDARD = "LVTTL"; -NET "EN<3>" LOC = "M17" | IOSTANDARD = "LVTTL"; -NET "EN<4>" LOC = "M18" | IOSTANDARD = "LVTTL"; -NET "FLED<1>" LOC = "H20" | IOSTANDARD = "LVTTL"; -NET "FLED<2>" LOC = "J15" | IOSTANDARD = "LVTTL"; -NET "FLED<3>" LOC = "J16" | IOSTANDARD = "LVTTL"; -NET "FLED<4>" LOC = "H18" | IOSTANDARD = "LVTTL"; -NET "FLED<5>" LOC = "H19" | IOSTANDARD = "LVTTL"; -NET "FLED<6>" LOC = "G20" | IOSTANDARD = "LVTTL"; -NET "HPV<0>" LOC = "H1" | IOSTANDARD = "LVTTL" | SLEW = SLOW ; -NET "HPV<1>" LOC = "G1" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<2>" LOC = "J6" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<3>" LOC = "J5" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<4>" LOC = "H3" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<5>" LOC = "H2" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<6>" LOC = "K5" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<7>" LOC = "K4" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<8>" LOC = "K1" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<9>" LOC = "J2" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<10>" LOC = "L5" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<11>" LOC = "L4" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<12>" LOC = "K3" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<13>" LOC = "K2" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<14>" LOC = "M4" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPV<15>" LOC = "M3" | IOSTANDARD = "LVTTL"| SLEW = SLOW ; -NET "HPW<0>" LOC = "C3" | IOSTANDARD = "LVTTL"; -NET "HPW<1>" LOC = "C2" | IOSTANDARD = "LVTTL"; -NET "HPW<2>" LOC = "F5" | IOSTANDARD = "LVTTL"; -NET "HPW<3>" LOC = "F4" | IOSTANDARD = "LVTTL"; -NET "HPW<4>" LOC = "D2" | IOSTANDARD = "LVTTL"; -NET "HPW<5>" LOC = "E2" | IOSTANDARD = "LVTTL"; -NET "HPW<6>" LOC = "G5" | IOSTANDARD = "LVTTL"; -NET "HPW<7>" LOC = "G4" | IOSTANDARD = "LVTTL"; -NET "HPW<8>" LOC = "E1" | IOSTANDARD = "LVTTL"; -NET "HPW<9>" LOC = "F1" | IOSTANDARD = "LVTTL"; -NET "HPW<10>" LOC = "H5" | IOSTANDARD = "LVTTL"; -NET "HPW<11>" LOC = "H4" | IOSTANDARD = "LVTTL"; -NET "HPW<12>" LOC = "F2" | IOSTANDARD = "LVTTL"; -NET "HPW<13>" LOC = "G2" | IOSTANDARD = "LVTTL"; -NET "HPW<14>" LOC = "J4" | IOSTANDARD = "LVTTL"; -NET "HPW<15>" LOC = "J3" | IOSTANDARD = "LVTTL"; -NET "IACKII" LOC = "T15" | IOSTANDARD = "LVTTL"; -NET "IACKOU" LOC = "U15" | IOSTANDARD = "LVTTL"; -NET "IOO<1>" LOC = "B12" | IOSTANDARD = "LVTTL"; -NET "IOO<2>" LOC = "A11" | IOSTANDARD = "LVTTL"; -NET "IOO<3>" LOC = "A10" | IOSTANDARD = "LVTTL"; -NET "IOO<4>" LOC = "B9" | IOSTANDARD = "LVTTL"; -NET "IOO<5>" LOC = "C11" | IOSTANDARD = "LVTTL"; -NET "IOO<6>" LOC = "B11" | IOSTANDARD = "LVTTL"; -NET "IOO<7>" LOC = "B10" | IOSTANDARD = "LVTTL"; -NET "IOO<8>" LOC = "C10" | IOSTANDARD = "LVTTL"; -NET "IOO<9>" LOC = "B13" | IOSTANDARD = "LVTTL"; -NET "IOO<10>" LOC = "A13" | IOSTANDARD = "LVTTL"; -NET "IOO<11>" LOC = "A8" | IOSTANDARD = "LVTTL"; -NET "IOO<12>" LOC = "B8" | IOSTANDARD = "LVTTL"; -NET "IOO<13>" LOC = "B14" | IOSTANDARD = "LVTTL"; -NET "IOO<14>" LOC = "A14" | IOSTANDARD = "LVTTL"; -NET "IOO<15>" LOC = "B6" | IOSTANDARD = "LVTTL"; -NET "IOO<16>" LOC = "A6" | IOSTANDARD = "LVTTL"; -NET "IRBLO" LOC = "V19" | IOSTANDARD = "LVTTL"; -NET "LEMIN<1>" LOC = "R4" | IOSTANDARD = "LVTTL"; -NET "LEMIN<2>" LOC = "R3" | IOSTANDARD = "LVTTL"; -NET "LEMOU<1>" LOC = "T2" | IOSTANDARD = "LVTTL"; -NET "LEMOU<2>" LOC = "T1" | IOSTANDARD = "LVTTL"; -NET "OAIV" LOC = "R20" | IOSTANDARD = "LVTTL"; -NET "PRES" LOC = "U19" | IOSTANDARD = "LVTTL"; -NET "RES<1>" LOC = "T18" | IOSTANDARD = "LVTTL"; -NET "RES<2>" LOC = "U18" | IOSTANDARD = "LVTTL"; -NET "SAD<0>" LOC = "M1" | IOSTANDARD = "LVTTL"; -NET "SAD<1>" LOC = "L1" | IOSTANDARD = "LVTTL"; -NET "SAD<2>" LOC = "M6" | IOSTANDARD = "LVTTL"; -NET "SAD<3>" LOC = "M5" | IOSTANDARD = "LVTTL"; -NET "SAD<4>" LOC = "M2" | IOSTANDARD = "LVTTL"; -NET "SAD<5>" LOC = "L2" | IOSTANDARD = "LVTTL"; -NET "SAD<6>" LOC = "N5" | IOSTANDARD = "LVTTL"; -NET "SAD<7>" LOC = "N4" | IOSTANDARD = "LVTTL"; -NET "SAD<8>" LOC = "N3" | IOSTANDARD = "LVTTL"; -NET "SAD<9>" LOC = "N2" | IOSTANDARD = "LVTTL"; -NET "SAD<10>" LOC = "P5" | IOSTANDARD = "LVTTL"; -NET "SAD<11>" LOC = "P4" | IOSTANDARD = "LVTTL"; -NET "SAD<12>" LOC = "P2" | IOSTANDARD = "LVTTL"; -NET "SAD<13>" LOC = "P1" | IOSTANDARD = "LVTTL"; -NET "SAD<14>" LOC = "R2" | IOSTANDARD = "LVTTL"; -NET "SAD<15>" LOC = "R1" | IOSTANDARD = "LVTTL"; -NET "SAD<16>" LOC = "R6" | IOSTANDARD = "LVTTL"; -NET "SAD<17>" LOC = "R5" | IOSTANDARD = "LVTTL"; -NET "SCS" LOC = "V18" | IOSTANDARD = "LVTTL"; -NET "SDA<0>" LOC = "U3" | IOSTANDARD = "LVTTL"; -NET "SDA<1>" LOC = "U2" | IOSTANDARD = "LVTTL"; -NET "SDA<2>" LOC = "T4" | IOSTANDARD = "LVTTL"; -NET "SDA<3>" LOC = "T3" | IOSTANDARD = "LVTTL"; -NET "SDA<4>" LOC = "T6" | IOSTANDARD = "LVTTL"; -NET "SDA<5>" LOC = "U6" | IOSTANDARD = "LVTTL"; -NET "SDA<6>" LOC = "V2" | IOSTANDARD = "LVTTL"; -NET "SDA<7>" LOC = "V1" | IOSTANDARD = "LVTTL"; -NET "SDA<8>" LOC = "U5" | IOSTANDARD = "LVTTL"; -NET "SDA<9>" LOC = "U4" | IOSTANDARD = "LVTTL"; -NET "SDA<10>" LOC = "W3" | IOSTANDARD = "LVTTL"; -NET "SDA<11>" LOC = "W2" | IOSTANDARD = "LVTTL"; -NET "SDA<12>" LOC = "Y4" | IOSTANDARD = "LVTTL"; -NET "SDA<13>" LOC = "W4" | IOSTANDARD = "LVTTL"; -NET "SDA<14>" LOC = "V4" | IOSTANDARD = "LVTTL"; -NET "SDA<15>" LOC = "V3" | IOSTANDARD = "LVTTL"; -NET "SOE" LOC = "V17" | IOSTANDARD = "LVTTL"; -NET "SWE" LOC = "W17" | IOSTANDARD = "LVTTL"; -NET "TIN<1>" LOC = "F15" | IOSTANDARD = "LVTTL"; -NET "TIN<2>" LOC = "E15" | IOSTANDARD = "LVTTL"; -NET "TIN<3>" LOC = "E6" | IOSTANDARD = "LVTTL"; -NET "TIN<4>" LOC = "F6" | IOSTANDARD = "LVTTL"; -NET "TIN<5>" LOC = "D15" | IOSTANDARD = "LVTTL"; -NET "TIN<6>" LOC = "E14" | IOSTANDARD = "LVTTL"; -NET "TIN<7>" LOC = "E7" | IOSTANDARD = "LVTTL"; -NET "TIN<8>" LOC = "D6" | IOSTANDARD = "LVTTL"; -NET "TIN<9>" LOC = "D13" | IOSTANDARD = "LVTTL"; -NET "TIN<10>" LOC = "C13" | IOSTANDARD = "LVTTL"; -NET "TIN<11>" LOC = "C8" | IOSTANDARD = "LVTTL"; -NET "TIN<12>" LOC = "D8" | IOSTANDARD = "LVTTL"; -NET "TIN<13>" LOC = "D12" | IOSTANDARD = "LVTTL"; -NET "TIN<14>" LOC = "C12" | IOSTANDARD = "LVTTL"; -NET "TIN<15>" LOC = "C9" | IOSTANDARD = "LVTTL"; -NET "TIN<16>" LOC = "D9" | IOSTANDARD = "LVTTL"; -NET "WRDIS" LOC = "N16" | IOSTANDARD = "LVTTL"; -NET "WRI" LOC = "R18" | IOSTANDARD = "LVTTL"; -#NET "CKFNL" TNM_NET = CKFNL; -#TIMESPEC TS_CKFNL = PERIOD "CKFNL" 100 MHz; -NET "CKFPL" TNM_NET = CKFPL; -TIMESPEC TS_CKFPL = PERIOD "CKFPL" 100 MHz; - - -#NET "ulg_1/trgb_1/Inst_beam_ramp/clk_10Hz" TNM_NET=ulg_1_trgb_1_Inst_beam_ramp_clk_10Hz ; -#TIMESPEC TS_ulg_1_trgb_1_Inst_beam_ramp_clk_10Hz = PERIOD "ulg_1_trgb_1_Inst_beam_ramp_clk_10Hz" 1 MHz;# Generated by Xilinx Architecture Wizard -# --- UCF Template Only --- -# Cut and paste these attributes into the project's UCF file, if desired -#INST DCM_ADV_INST CLK_FEEDBACK = 1X; -#INST DCM_ADV_INST CLKDV_DIVIDE = 2.0; -#INST DCM_ADV_INST CLKFX_DIVIDE = 1; -#INST DCM_ADV_INST CLKFX_MULTIPLY = 3; -#INST DCM_ADV_INST CLKIN_DIVIDE_BY_2 = FALSE; -#INST DCM_ADV_INST CLKIN_PERIOD = 10.000; -#INST DCM_ADV_INST CLKOUT_PHASE_SHIFT = NONE; -#INST DCM_ADV_INST DCM_AUTOCALIBRATION = TRUE; -#INST DCM_ADV_INST DCM_PERFORMANCE_MODE = MAX_SPEED; -#INST DCM_ADV_INST DESKEW_ADJUST = SYSTEM_SYNCHRONOUS; -#INST DCM_ADV_INST DFS_FREQUENCY_MODE = HIGH; -#INST DCM_ADV_INST DLL_FREQUENCY_MODE = LOW; -#INST DCM_ADV_INST DUTY_CYCLE_CORRECTION = TRUE; -#INST DCM_ADV_INST FACTORY_JF = F0F0; -#INST DCM_ADV_INST PHASE_SHIFT = 0; -#INST DCM_ADV_INST STARTUP_WAIT = FALSE; diff --git a/oldfiles/vulom3/vlogic_1.vhd b/oldfiles/vulom3/vlogic_1.vhd deleted file mode 100644 index c21450d..0000000 --- a/oldfiles/vulom3/vlogic_1.vhd +++ /dev/null @@ -1,272 +0,0 @@ --------------------------------------------------------------------------------- --- Company: GSI --- Engineer: Jan Hoffman, Davide Leoni --- --- Create Date: 8/8/07 --- Design Name: vulom3 --- Module Name: vlogic_1 - Behavioral --- Project Name: triggerbox --- Target Device: XC4VLX25-10SF363 --- Tool versions: --- Description: Top module, DCM, display, LEDs, VME signals --- --------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -Library UNISIM; -use UNISIM.vcomponents.all; - -entity vlogic_1 is - port ( ---............................. VME Signals ............................................ - AD : inout std_logic_vector(31 downto 0); -- VME Address-Data bus - AMI : in std_logic_vector(5 downto 0); -- VME Address modifier internal - ASI : in std_logic; -- Address strobe - WRI : in std_logic; -- write - BERR : in std_logic; -- bus error for chain block transfer - BERRO : out std_logic; -- bus error for chain block transfer - DS0I : in std_logic; -- data strobe - DS1I : in std_logic; -- data strobe - IACKII : in std_logic; -- interrupt acknowledge chain - IACKOU : out std_logic; -- interrupt acknowledge chain - IRBLO : out std_logic; -- interrupt 4 output to VME or BLACK output --- MON : in std_logic_vector(7 downto 0); -- VME module number connected to hex. switch VN2 .. VN1 ---............................. Buffer/Register Controll Signals ............................................ - CAIV : out std_logic; -- Address buffer clock signal Int->VME - OAIV : out std_logic; -- Address buffer OE Int->VME ---............................. Front panel Controll Signals ............................................ - ECO : inout std_logic_vector(16 downto 1); --signals to ECL output(1 is the lower connector of ECL OUT) - EN : out std_logic_vector(4 downto 1); -- ECL enable (EN1 for ch. 1-8, EN2 for ch. 9-16) - ECL : in std_logic_vector(16 downto 1); -- signals from ECL input (1 is at the lower connector of ECL IN) - IOO : in std_logic_vector(16 downto 1); -- signals ioo from ECL I/O (1 is at the lower connector) - TIN : inout std_logic_vector(16 downto 1); -- output signals to ECL I/O (1 is at the lower connector) - LEMIN : in std_logic_vector(2 downto 1); -- signals from LEMO upper - LEMOU : out std_logic_vector(2 downto 1); -- signals to LEMO lower ---............................. SRAM Controll Signals ............................................ - SAD : out std_logic_vector(17 downto 0); -- address - SDA : inout std_logic_vector(15 downto 0); -- data - SCS : out std_logic; - SOE : out std_logic; - SWE : out std_logic; ---............................. DISPLAY and LED Controll Signals ............................................ - DI : inout std_logic_vector(6 downto 0); - AI : out std_logic_vector(1 downto 0); -- display address ( use 1 and 2 only, 0 and 3 can't be seen) - WRDIS : out std_logic; -- display write - FLED : out std_logic_vector(6 downto 1); -- Front panel LED ---............................. Euroball Readot Signals ............................................ --- PASSO : over HPV or HPW --- RENI : over HPV or HPW - BLTACK : in std_logic; ---............................. System Signals ............................................ - PRES : in std_logic; -- reset positive from reset IC --- SRESI : in std_logic; -- reset from VME - RES : in std_logic_vector(2 downto 1); -- reset from CPLD - CKFNL : in std_logic; -- Diff 100 MHz ck neg - CKFPL : in std_logic; -- Diff 100 MHz ck pos - CON : inout std_logic_vector(15 downto 0); -- Connection between PROG and vlogic_1 - HPV : inout std_logic_vector(15 downto 0); -- Logic analyzer signals - HPW : inout std_logic_vector(15 downto 0) -- Logic analyzer signals - ); -end vlogic_1; -architecture rtl of vlogic_1 is -component clocking -port( - CLKIN_IN : IN std_logic; - CLKDV_OUT : OUT std_logic; - CLKFX_OUT : OUT std_logic; - CLKIN_IBUFG_OUT : OUT std_logic; - CLK0_OUT : OUT std_logic; - LOCKED_OUT : OUT std_logic - ); -end component; -component ulogic port ( - RESET : in std_logic; - CK50 : in std_logic; - CK300 : in std_logic; - CK100 : in std_logic; - LEMOU : out std_logic_vector(2 downto 1); - LEMIN : in std_logic_vector(2 downto 1); - TIN : out std_logic_vector(16 downto 1); - ECO : out std_logic_vector(16 downto 1); - ECL : in std_logic_vector(16 downto 1); - IOO : in std_logic_vector(16 downto 1); - EN : out std_logic_vector(4 downto 1); - FLED_T: out std_logic_vector(6 downto 1); -- to front panel LEDs ---............................. vme interface .................... - U_AD_REG : in std_logic_vector(21 downto 2); - U_DAT_IN : in std_logic_vector(31 downto 0); - U_DATA_O : out std_logic_vector(31 downto 0); - OECSR, CKCSR : in std_logic; - HPV : inout std_logic_vector(15 downto 0); - HPW : inout std_logic_vector(15 downto 0) - ); -end component; - -component vmelogic port ( - ASIS :in std_logic; -- - DSR :in std_logic; -- - AD :inout std_logic_vector(31 downto 0); - AD_REG :inout std_logic_vector(31 downto 0); - WRI :in std_logic; - AMI :in std_logic_vector(5 downto 0); - CKCSR :out std_logic; -- clock data into csr - OECSR :out std_logic; -- output data from csr to VME - CON :inout std_logic_vector(15 downto 0); - HPLB :out std_logic_vector(15 downto 0); - CK50 :in std_logic - ); -end component; -signal reset : std_logic; -signal count : std_logic_vector (23 downto 0); -signal counth : std_logic_vector (27 downto 0); -signal counf : std_logic_vector (7 downto 0); ------------------------------------------------------------------------------------------------- -signal tri_dat : std_logic_vector (15 downto 0); -- trigger bus level data -signal led_out : std_logic_vector (4 downto 1); -- 4 LEDs, on piggy -signal lemo_dat : std_logic_vector (15 downto 0); -- 4 bit data from LEMO input -signal enable, oecsr, ckcsr, asis, dsr : std_logic; -- enable internal data bus to outside of fpga -signal mres, sta_dis : std_logic; -- internal acknowledge -signal din, dadis : std_logic_vector (31 downto 0); -- internal data bus, CSR --------------------------------------------------------------------------------------------------- -signal en_trcnt : std_logic; -constant tr_cnt_dat : std_logic_vector(7 downto 0) := x"20"; -signal tr_cnt : std_logic_vector(7 downto 0); -signal u_ad_reg : std_logic_vector(21 downto 2); -signal u_dat_in, u_data_o, ad_reg, pdone :std_logic_vector(31 downto 0); -signal dis_out :std_logic_vector (1 downto 0); -signal fled_t : std_logic_vector(6 downto 1); --- -signal hp : std_logic_vector (3 downto 0); -- states of flash machine -signal hplb : std_logic_vector (15 downto 0); -- -signal prova, to_LED6, SOFT_RESET : std_logic; ----------------------------- -signal rst, clk2x, clk0, ck50, ck300, ck100, locked : std_logic; -- internal acknowledge -------------------------------------------------------------------------------- -signal clk : std_logic; -begin - -- CLK ---------------------------------------------------------------------- --- IBUFGDS_CLK : IBUFGDS --- generic map ( --- IOSTANDARD => "LVDS_25_DCI") --- port map ( --- O => clk,--CLK, --- I => CKFPL, --- IB => CKFNL -- Diff_n clock buffer input (connect to top-level port) --- ); - Inst_clocking : clocking port map( - CLKIN_IN => CKFPL, - CLKDV_OUT => ck50, --50MHz clock - CLKFX_OUT => ck300, --300MHz clock - CLKIN_IBUFG_OUT => open, - CLK0_OUT => ck100, --100MHz clock - LOCKED_OUT => to_led6); - ulg_1 : ulogic port map ( - RESET => reset, - CK50 => CK50, - CK300 => CK300, - CK100 => CK100, - LEMIN => LEMIN, - LEMOU => LEMOU, - TIN => TIN, - EN => EN, - ECO => ECO, - ECL => ECL, - IOO => IOO, - FLED_T => fled_t, - U_AD_REG => u_ad_reg, - U_DAT_IN => u_dat_in, - U_DATA_O => u_data_o, - OECSR => oecsr, - CKCSR => ckcsr, - HPV => HPV, - HPW => HPW - ); - vme_1 : vmelogic port map ( - ASIS => asis, - DSR => dsr, - AD => ad, - AD_REG => ad_reg, - WRI => WRI, - AMI => AMI, - CKCSR => ckcsr, - OECSR => oecsr, - CON => CON, - HPLB => hplb, - CK50 => ck50); ---------------------------------------------------------------------------------------------- ---...............................RESET signal............................................ - reset <= PRES or res(1); -- or not SRESI; -- PRES active high from power IC, - -- SRESI active low from VME ----------------------------------PANEL LED--------------------------------------------------- - process (ck50) - begin - if rising_edge(ck50) then - FLED(6) <= not to_led6; --led on if pll is working - FLED(5 downto 1) <= fled_t(5 downto 1); --leds on if inputs enabled - end if; - end process; ---............................... signals to/from CPLD ....................................... - mres <= '1'; ---............................... display ....................................... - process (ck50) - begin - if (ck50'event and ck50 = '1') then - count <= count + 1; - end if; - end process; - process (count(4)) - begin - if rising_edge(count(4)) then - WRDIS <= count(5); - if count(6) = '0' then - AI <= "01"; - DI <= CONV_STD_LOGIC_VECTOR(51, 7); -- 33h "3" ascii - else - AI <= "10"; - DI <= CONV_STD_LOGIC_VECTOR(51, 7); -- 32h "2" ascii - end if; - end if; - end process; ---............................. VME Signals ............................................ - BERRO <= '1'; -- H means inactive - IACKOU <= IACKII; -- interrupt acknowledge chain --- SRESI -- system reset - process(ck50, asi, ds0i, ds1i) - begin - if (ck50'event and ck50 = '1') then - asis <= not asi; - dsr <= not ds0i and not ds1i; -- synchronized DS input from VME - end if; - end process; ---------------------------- VME address buffer control signals ------------------------------- - CAIV <= '1'; -- clock for address register internal<-VME, disabled - OAIV <= '1'; -- OE for address register internal<-VME, disabled - u_ad_reg <= ad_reg(21 downto 2); - u_dat_in <= ad; ------------------------ DATA MULTIPLEXER for OUTPUT to VME ------------------------------------------- - process(ck50) - begin - if (ck50'event and ck50 = '1') then - if (oecsr = '1') then - din <= u_data_o; -- data to VME over AD bus --- elsif (dis_out(1)='1') then din <= dadis; -- display data over AD bus not necessary with vulom3 /*/*/*/*/*/ - else - din <= (others => '0'); - end if; - end if; - end process; - enable <= oecsr; --or dis_out(1); -- address and data bus output not necessary with vulom3 /*/*/*/*/*/ - AD <= din when enable = '1' else (others => 'Z'); ------------------------------------ end of VME ----------------------------------------------- -------------------------------------------------------------------------------- --- * UNUSED @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Unused Signals @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ---------------------------------------------------------------------------------- - IRBLO <= '1'; - SCS <= '1'; - SOE <= '0'; - SWE <= '0'; - SAD <= (others => '0'); --- con(15 downto 7) <= b"000000000"; -end rtl; diff --git a/oldfiles/vulom3/vlogic_1_syn.prj b/oldfiles/vulom3/vlogic_1_syn.prj deleted file mode 100644 index 6f6c43c..0000000 --- a/oldfiles/vulom3/vlogic_1_syn.prj +++ /dev/null @@ -1,76 +0,0 @@ -#-- Synplicity, Inc. -#-- Version 9.0 -#-- Project file /home/marek/vulom3/vlogic_1_syn.prj -#-- Written on Mon Apr 28 11:33:20 2008 - - -#add_file options -add_file -vhdl -lib work "vlogic_1.vhd" -add_file -vhdl -lib work "clocking.vhd" -add_file -vhdl -lib work "ulogic.vhd" -add_file -vhdl -lib work "vmelogic.vhd" -add_file -vhdl -lib work "trig_box1.vhd" -add_file -vhdl -lib work "one_clock_long.vhd" -add_file -vhdl -lib work "delay.vhd" -add_file -vhdl -lib work "downscale.vhd" -add_file -vhdl -lib work "set_width.vhd" -add_file -vhdl -lib work "set_width_special.vhd" -add_file -vhdl -lib work "scaler.vhd" -add_file -vhdl -lib work "scaler_s.vhd" -add_file -vhdl -lib work "eco_delay.vhd" -add_file -vhdl -lib work "new_downscale_ck.vhd" -add_file -vhdl -lib work "beam_ramp.vhd" -add_file -vhdl -lib work "bus_data_com5.vhd" -add_file -constraint "vlogic_1.sdc" - - -#implementation: "workdir" -impl -add workdir -type fpga - -#device options -set_option -technology VIRTEX4 -set_option -part XC4VLX15 -set_option -package SF363 -set_option -speed_grade -10 - -#compilation/mapping options -set_option -default_enum_encoding default -set_option -resource_sharing 1 -set_option -use_fsm_explorer 1 -set_option -top_module "vlogic_1" - -#map options -set_option -frequency 110.000 -set_option -run_prop_extract 0 -set_option -fanout_limit 100 -set_option -disable_io_insertion 0 -set_option -pipe 1 -set_option -update_models_cp 1 -set_option -verification_mode 0 -set_option -retiming 1 -set_option -no_sequential_opt 0 -set_option -fixgatedclocks 3 -set_option -fixgeneratedclocks 3 - - -#sequential_optimizations options -set_option -symbolic_fsm_compiler 1 - -#simulation options -set_option -write_verilog 0 -set_option -write_vhdl 0 - -#VIF options -set_option -write_vif 1 - -#automatic place and route (vendor) options -set_option -write_apr_constraint 1 - -#set result format/file last -project -result_file "workdir/vlogic_1.edf" - -# -#implementation attributes - -set_option -synthesis_onoff_pragma 0 -impl -active "workdir" diff --git a/oldfiles/vulom3/vmelogic.vhd b/oldfiles/vulom3/vmelogic.vhd deleted file mode 100644 index 7e1e9bc..0000000 --- a/oldfiles/vulom3/vmelogic.vhd +++ /dev/null @@ -1,247 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; --- --- vme_1: vmelogic port map (asis=>asis, dsr=>dsr, ad=>ad, wri=>wri, ami=>ami, mon=>mon, con=>con, xxx=>xxx, - - entity vmelogic is - port (asis :in std_logic; -- - dsr :in std_logic; -- - ad :inout std_logic_vector(31 downto 0); - ad_reg :inout std_logic_vector(31 downto 0); - wri :in std_logic; - ami :in std_logic_vector(5 downto 0); --- mon :in std_logic_vector(7 downto 0); - ckcsr :out std_logic; -- clock data into csr - oecsr :out std_logic; -- output data from csr to VME - con :inout std_logic_vector(15 downto 0); - hplb :out std_logic_vector(15 downto 0); - ck50 :in std_logic - ); -end vmelogic; --- -architecture RTL of vmelogic is -------------------------------------------------------------------------------------------- -------------------------------- vme signals ----------------------------------------------- -signal ckad : std_logic; -- clock for internal address register -signal stda : std_logic; -- start data phase state machine -signal wrs : std_logic; -- synchronized VME WRITE -signal ack_csr : std_logic; -- internal acknowledge csr -signal ack_hpi : std_logic; -- internal acknowledge hpi -signal ack_fsh : std_logic; -- internal acknowledge flash -signal ack_vr : std_logic; -- internal acknowledge vram 32 -signal aph_sta, dph_sta : std_logic_vector (3 downto 0); -- states of aph machine -signal enable : std_logic; -- enable internal data bus to outside of fpga ---signal vafsh : std_logic_vector (3 downto 0); -- vme address phase outputs for flash ---signal va64 : std_logic_vector (3 downto 0); -- vme data phase for VRAM64 (dual port ram) -signal vdcsr : std_logic_vector (3 downto 0); -- vme data phase outputs for external vme buffer register -signal amr : std_logic_vector (5 downto 0); -- internal address modifier register for VME address -signal int_res : std_logic_vector (23 downto 22); -- internal address register for VME address -signal sel_rnd : std_logic; -- FLASH, CSR, HPI, DPRAM random access -signal sel_bt32 : std_logic; -- DPRAM BT 32 access ---signal sel_bt64 : std_logic; -- DPRAM BT 64 access -signal selcsr : std_logic; -- CSR selected -signal selflsh : std_logic; -- FLASH selected -signal ad_co : std_logic_vector (1 downto 0); -- vme address phase outputs for: stda = start data phase... -signal csr_o : std_logic_vector (1 downto 0); -- vme data phase outputs for csr -signal pr_ou : std_logic_vector (1 downto 0); -- priority encoder outputs -signal tr_ou : std_logic_vector (15 downto 0); -- priority encoder outputs -signal vram : std_logic; -- vram1 or vram2 32/64 bit selected -signal vulom_sel : std_logic; -signal ckcsro : std_logic_vector (1 downto 0); -- internal CSR -signal oecsro : std_logic_vector (1 downto 0); -- internal CSR -signal din,csrr0,csrr1 : std_logic_vector (31 downto 0); -- internal data bus, CSR ------------------- VME address modifier ------------------------------ -constant am_f :std_logic_vector(5 downto 0) := b"001111";--AM543210=001111 ext. Extended supervisory block transfer -constant am_e :std_logic_vector(5 downto 0) := b"001110";--AM543210=001110 ext. supervisory program access -constant am_d :std_logic_vector(5 downto 0) := b"001101";--AM543210=001101 ext. Extended supervisory data access -constant am_a :std_logic_vector(5 downto 0) := b"001010";--AM543210=001010 ext. Extended non-privileged program access -constant am_b :std_logic_vector(5 downto 0) := b"001011";--AM543210=001011 ext. Extended non-privileged block transfer -constant am_9 :std_logic_vector(5 downto 0) := b"001001";--AM543210=001001 ext. Extended non-privileged data access -constant am_8 :std_logic_vector(5 downto 0) := b"001000";--AM543210=001000 ext. Extended non-privileged 64-bit block transfer -constant am_1b :std_logic_vector(5 downto 0) := b"011011";--AM543210=011011 ext. Eurogram Readout -constant am_29 :std_logic_vector(5 downto 0) := b"101001";--AM543210=101001 ext. Direct Configuration of FPGA ------------------- VME addresses -------------------------------------- -constant csr_ad :std_logic_vector(3 downto 2) := b"00";----vmeaddr=XX00 0000 - XX00 000C ---constant sram_ad :std_logic_vector(3 downto 2) := x"01";----vmeaddr=XX40 0000 - XX40 FFFC --- ............... vme address phase state machine, states declaration ......................... -type vme_adr_typ is (va00,va01,va02,va03,va04,va05,va0b); -- va06,va07,va08,va09,va0a, -signal vme_adr, vme_anx : vme_adr_typ; --- ............... vme data phase state machine for CSR ......................... -signal st_csr_drd : std_logic; -- start state machine for CSR read -signal st_csr_dwr : std_logic; -- start state machine for CSR write -type vmdacs_typ is (vc00,vc01,vc02,vc03,vc04,vc05,vc06,vc07,vc08,vc09,vc0a,vc0b,vc0c,vc0d,vc0e); -signal vmdacs, vmdacs_nx : vmdacs_typ; - ------------------------------------------------------------------------------------------- -begin ---- BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------ ---.......................................................................................... ---...................... VME address phase state machine ....................... - process (vme_adr,asis) -- states are - va00,va01,va02,va03,va04,va05,va06,va07,va08 - begin -- ad_co[]=stda,ckad - case vme_adr is - when va00 => ad_co <= b"00"; aph_sta <= x"0"; - if asis ='1' then vme_anx <= va01; - else vme_anx <= va00; - end if; - when va01 => ad_co <= b"00"; aph_sta <= x"1"; - if asis ='1' then vme_anx <= va02; - else vme_anx <= va00; - end if; - when va02 => vme_anx <= va03; ad_co <= b"00"; aph_sta <= x"2"; - when va03 => vme_anx <= va04; ad_co <= b"00"; aph_sta <= x"3"; - when va04 => vme_anx <= va05; ad_co <= b"01"; aph_sta <= x"4"; - when va05 => vme_anx <= va0b; ad_co <= b"11"; aph_sta <= x"5"; - when va0b => ad_co <= b"10"; aph_sta <= x"6"; - if asis ='1' then vme_anx <= va0b; - else vme_anx <= va00; - end if; - end case; - end process; --- ............................ clock for address phase state machine ................................ - process(ck50) begin -- 50 MHz clock - if (ck50'EVENT AND ck50 = '1') then - vme_adr <= vme_anx; - end if; - end process ; --- .............................. synchronize outputs .................................. - process(ck50) begin - if (ck50'EVENT AND ck50 = '1') then - stda <= ad_co(1); -- start data phase (low=address phase - high =data phase) - ckad <= ad_co(0); -- ckad = clock for internal address register - end if; - end process ; -----................... end of VME address phase state machine ................... --- ----................... save VME address into FPGA internal address register ................... - process(ck50, ckad) - begin - if (ck50'EVENT AND ck50 = '1') then - if ckad = '1' then - ad_reg <= ad; wrs <= wri; amr <= ami; - end if; - end if; - end process; - int_res <= ad_reg(23 downto 22); -- internal resources ---.................. select SAM4 module = compare address register with hex switch ............... - --- process(ck50)--, ad, mon) --- begin --- if (ck50'EVENT AND ck50 = '1') then --- if (ad_reg(31 downto 24) = mon) then -- VN2 31...28, VN1 27...24 --*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ --- vulom_sel <= '1'; --- else vulom_sel <= '0'; --- end if; --- end if; --- end process; ---.................. compare address register and address modifier ............................. - process(ck50, ad_reg, amr) - begin - if (ck50'event and ck50 ='1') then - if ((ad_reg(1 downto 0) = b"00") and (con(7) = '1')) then --(amr = am_9 or amr = am_d) and vulom_sel = '1' then - sel_rnd <= '1'; -- CSR random access - else sel_rnd <= '0'; - end if; - if ((ad_reg(1 downto 0) = b"00") and (con(8) = '1')) then --(amr = am_b) and vulom_sel = '1' then - sel_bt32 <= '1'; -- BT 32 bit access - else sel_bt32 <= '0'; - end if; - end if; - end process; --- * CSR0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ DATA PHASE for CSR @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ---................................ comparator for CSR ....................................... - process(ck50, dsr, stda, wrs, int_res, sel_rnd) - begin - if (ck50'event and ck50 ='1') then - if (dsr='1' and stda='1' and wrs='1' and int_res=csr_ad and sel_rnd='1') then st_csr_drd <= '1'; -- CSR sta-ma - else st_csr_drd <= '0'; - end if; - if (dsr='1' and stda='1' and wrs='0' and int_res=csr_ad and sel_rnd='1') then st_csr_dwr <= '1'; -- CSR sta-ma - else st_csr_dwr <= '0'; - end if; - if (int_res=csr_ad and sel_rnd='1') then selcsr <= '1'; -- CSR selected - else selcsr <= '0'; - end if; - end if; - end process; --- csr_o[]=ckcsr,oecsr, vdcsr[]=odvi,cdvi,odiv,cdiv - process (vmdacs, dsr, st_csr_dwr, st_csr_drd) -- states are - vc00,vc01,vc02,vc03,vc04,vc05,vc06,vc07,vc08 - begin --- csr_o <= b"00"; vdcsr <= b"1011"; ack_csr <='1'; - case vmdacs is - when vc00 => csr_o <= b"00"; vdcsr <= b"1011"; ack_csr <='1'; dph_sta <= x"0"; - if st_csr_drd ='1' then vmdacs_nx <= vc01; - elsif st_csr_dwr ='1' then vmdacs_nx <= vc08; - else - vmdacs_nx <= vc00; - end if; --- ---............................. read csr ................................ - when vc01 => vmdacs_nx <= vc02; csr_o <= b"01"; vdcsr <= b"1010"; ack_csr <='1'; dph_sta <= x"1"; - when vc02 => vmdacs_nx <= vc03; csr_o <= b"01"; vdcsr <= b"1010"; ack_csr <='1'; dph_sta <= x"2"; - when vc03 => vmdacs_nx <= vc04; csr_o <= b"01"; vdcsr <= b"1010"; ack_csr <='1'; dph_sta <= x"3"; - when vc04 => vmdacs_nx <= vc05; csr_o <= b"01"; vdcsr <= b"1001"; ack_csr <='1'; dph_sta <= x"4"; - when vc05 => vmdacs_nx <= vc06; csr_o <= b"01"; vdcsr <= b"1001"; ack_csr <='1'; dph_sta <= x"5"; - when vc06 => csr_o <= b"01"; vdcsr <= b"1001"; ack_csr <='0'; dph_sta <= x"6"; - if dsr ='1' then vmdacs_nx <= vc06; - else vmdacs_nx <= vc07; - end if; - when vc07 => vmdacs_nx <= vc00; csr_o <= b"00"; vdcsr <= b"1011"; ack_csr <='1'; dph_sta <= x"7"; ---............................. write csr ................................ - when vc08 => vmdacs_nx <= vc09; csr_o <= b"10"; vdcsr <= b"0011"; ack_csr <='1'; dph_sta <= x"8"; - when vc09 => vmdacs_nx <= vc0a; csr_o <= b"10"; vdcsr <= b"0011"; ack_csr <='1'; dph_sta <= x"9"; - when vc0a => vmdacs_nx <= vc0b; csr_o <= b"10"; vdcsr <= b"0111"; ack_csr <='1'; dph_sta <= x"a"; - when vc0b => vmdacs_nx <= vc0c; csr_o <= b"10"; vdcsr <= b"0111"; ack_csr <='1'; dph_sta <= x"b"; - when vc0c => vmdacs_nx <= vc0d; csr_o <= b"10"; vdcsr <= b"0111"; ack_csr <='1'; dph_sta <= x"c"; - when vc0d => csr_o <= b"10"; vdcsr <= b"0111"; ack_csr <='0'; dph_sta <= x"d"; - if dsr ='1' then vmdacs_nx <= vc0d; - else vmdacs_nx <= vc0e; - end if; - when vc0e => vmdacs_nx <= vc00; csr_o <= b"00"; vdcsr <= b"1011"; ack_csr <='1'; dph_sta <= x"e"; - end case; - end process; --- ............................ clock for vmedacs state machine ................................ - process(ck50) begin - if (ck50'EVENT AND ck50 = '1') then - vmdacs <= vmdacs_nx; - end if; - end process ; --- .............................. synchronize outputs .................................. - process(ck50) begin - if (ck50'EVENT AND ck50 = '1') then --- csr_o = ckcsr,oecsr, - ckcsr <= csr_o(1); -- clock data into csr - oecsr <= csr_o(0); -- output data from csr to VME - end if; - end process ; ---------------------------- VME control signals ------------------------------- --- vdbuf = odvi,cdvi,odiv,cdiv - process(ck50,vdcsr,ack_csr,ack_hpi) - begin - if (ck50'event and ck50 ='1') then - if (selcsr='1') then - con(4) <= vdcsr(3); -- odvi = OE for data register VME->internal - con(3) <= vdcsr(2); -- cdvi = clock for data register VME->internal - con(2) <= vdcsr(1); -- odiv = OE for data register internal->VME - con(1) <= vdcsr(0); -- cdiv = clock for data register internal->VME - con(0) <= ack_csr; -- acknowledge from csr - else - con(4) <= '1'; con(3) <= '1'; con(2) <= '1'; con(1) <= '1'; con(0) <= '1'; -- inactive - end if; - end if; - end process; ----------------------------------------------------------------------------------- --- hplb <= (others =>'0'); - hplb(0) <= asis; - hplb(1) <= ckad; - hplb(2) <= st_csr_drd; - hplb(3) <= st_csr_dwr; - hplb(6 downto 4) <= aph_sta(2 downto 0); - hplb(7) <= ack_csr; - hplb(11 downto 8) <= vdcsr; - hplb(15 downto 12) <= dph_sta; - -end RTL; \ No newline at end of file diff --git a/optical_link/compile_hub.pl b/optical_link/compile_hub.pl deleted file mode 100755 index d282c54..0000000 --- a/optical_link/compile_hub.pl +++ /dev/null @@ -1,189 +0,0 @@ -#!/usr/bin/perl -########################################### -# Script file to run the flow -# -########################################### -# -# Command line for synplify_pro -# - - -use FileHandle; - - -use Data::Dumper; - -use warnings; -use strict; - - -$ENV{LM_LICENSE_FILE}="1710\@cronos.e12.physik.tu-muenchen.de"; - -my $synplify_path = '/opt/Synplicity/syn_96L2/synplify_linux/bin/'; - -$ENV{'SYNPLIFY'}="/opt/Synplicity/syn_96L2/synplify_linux/"; -$ENV{'SYN_DISABLE_RAINBOW_DONGLE'}=1; - - -my $base = "/opt/lattice/ispLEVER7.2/isptools"; - -my $FAMILYNAME="LatticeSCM"; -my $PLD_DEVICE="LFSCM3GA25EP1"; -my $PACKAGE="FFBGA1020"; - -my $TOPNAME="hub"; - -my $t=time; - -my $fh = new FileHandle(">version.vhd"); - -die "could not open file" if (! defined $fh); - -print $fh <close; - - -#set -e -#set -o errexit - -system("env| grep LM_"); -#$c="/opt/Synplicity/fpga_901/bin/synplify_pro -disable_rainbow_dongle -batch $TOPNAME"."_syn.prj"; -#$c="/opt/Synplicity/syn_96L2/synplify_linux/bin/synpwrap_pro.sh -disable_rainbow_dongle -batch $TOPNAME"."_syn.prj"; -#execute($c); -#$c="/opt/Synplicity/fpga_89/bin/synplify_pro -disable_rainbow_dongle -batch $TOPNAME"."_syn.prj"; -#$c=("( netcat -w2 -l -u -p 6001 < data_for_synbatch_6001.raw >/dev/null 2>&1)& /opt/Synplicity/fpga_89/bin/synplify_pro -batch $TOPNAME"."_syn.prj"); -#$r=execute($c, "do_not_exit" ); - -my $c="$synplify_path/synpwrap -Pro -prj $TOPNAME"."_syn.prj"; -my $r=execute($c, "do_not_exit" ); - - -chdir "workdir"; -$fh = new FileHandle("<$TOPNAME.srr"); -my @a = <$fh>; -$fh -> close; - -#if ($r) { -#$c="cat $TOPNAME.srr"; -#system($c); -#exit 129; -#} - -foreach (@a) -{ - if( /\@E:/ || /\@E\|/ ) - { - $c="cat $TOPNAME.srr"; - system($c); - print "bdabdhsadbhjasdhasldhbas"; - exit 129; - } -} -#if (0){ - -#$c=("/opt/lattice/isplever7.0/isptools/ispcpld/bin/checkini -err=automake.err /opt/lattice/isplever7.0/isptools/ispcpld/config/or5s00.ini"); - - -#$c=("/opt/lattice/isplever7.0/isptools/ispcpld/bin/edfin -i hub.edf -jhd hub.jhd -log hub.log -dev orca -lbp \"/opt/lattice/isplever7.0/isptools/ispfpga/data\""); - -#$c=("/opt/lattice/isplever7.0//ispfpga/bin/lin/lci2prf -oc hub.lct -log hub.log ../hub.lpf"); - -#$c=("export FOUNDRY=\"/opt/lattice/isplever7.0//ispfpga\""); - -#$c=("export LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH:/opt/lattice/isplever7.0//ispfpga/bin/lin\""); - -$c= qq|$base/ispfpga/bin/lin/edif2ngd -l "$FAMILYNAME" -d "$PLD_DEVICE" "$TOPNAME.edf" "$TOPNAME.ngo"|; -execute($c); - -$c=qq|$base/ispfpga/bin/lin/edfupdate -t "$TOPNAME.tcy" -w "$TOPNAME.ngo" -m "$TOPNAME.ngo" "$TOPNAME.ngx"|; -execute($c); - -$c=qq|$base/ispfpga/bin/lin/ngdbuild -a "$FAMILYNAME" -d "$PLD_DEVICE" -p "$base/ispfpga/or5s00/data" -dt "$TOPNAME.ngo" "$TOPNAME.ngd"|; -execute($c); - -my $tpmap = $TOPNAME . "_map" ; - -$c=qq|$base/ispfpga/bin/lin/map -a "$FAMILYNAME" -p "$PLD_DEVICE" -t "$PACKAGE" -s 5 "$TOPNAME.ngd" -o "$tpmap.ncd" -mp "$TOPNAME.mrp" "$TOPNAME.lpf"|; -execute($c); - -system("rm $TOPNAME.ncd"); -#execute($c); - -$c=qq|$base/ispfpga/bin/lin/multipar -pr "$TOPNAME.prf" -o "$TOPNAME| . "_mpar.rpt" . qq|" -log "$TOPNAME| . "_mpar.log" . qq|" -p "$TOPNAME.p2t" -f "$TOPNAME.p3t" "$tpmap.ncd" "$TOPNAME.ncd"|; -execute($c); - - -# TWR Timing Report -#$c=qq|$lattice_path/ispfpga/bin/lin/tg "$TOPNAME.ncd" "$TOPNAME.prf"|; -$c=qq|$base/ispfpga/bin/lin/trce -hld -c -v 5 -o "$TOPNAME.twr.hold" "$TOPNAME.ncd" "$TOPNAME.prf"|; -execute($c); -$c=qq|$base/ispfpga/bin/lin/trce -c -v 5 -o "$TOPNAME.twr.setup" "$TOPNAME.ncd" "$TOPNAME.prf"|; -execute($c); - - - -$c=("$base/ispfpga/bin/lin/bitgen -w \"hub.ncd\" -f \"hub.t2b\" \"hub.prf\""); -execute($c); -#$c=(". ~/bin/ispvm17"); -#execute($c); - -$c=q| perl -ne '$in=1 if(/Report Summary/); print if($in==1); $in=0 if(/All preferences were met./)' | . "$TOPNAME.twr.setup"; -execute($c); - -chdir ".."; - -$c=("cat version.vhd | grep VERSION_NUMBER_TIME"); -execute($c); - -$c=q!cat version.vhd | perl -ne '($r)=grep(/VERSION_NUMBER_TIME/, $_); if($r) {($n)=$r=~/(\d+);/; printf("%x\n",$n);} '!; -execute($c); - - -#$c=(". ~/bin/ispvm17"); - -#$c=("ispvm -infile hub_1.xcf -outfiletype -stp"); -#execute($c); - -#$c=("perl -i -ne 'print unless(/!/)' hub_1.svf"); -#execute($c); -#$c=("impact -batch impact_batch_hub.txt"); -#execute($c); -#$c=("scp hub_chain.stapl hadaq\@hadeb05:/var/diskless/etrax_fs/"); -#execute($c); - -#} -#$c=("impact -batch impact_batch_hub.txt"); - -sub execute { - my ($c, $op) = @_; - #print "option: $op \n"; - - print "\n\ncommand to execute: $c \n"; - $r=system($c); - if($r) { - print "$!"; - if($op ne "do_not_exit") { - exit; - } - } - - return $r; - -} diff --git a/optical_link/f_divider.vhd b/optical_link/f_divider.vhd deleted file mode 100644 index 50133b9..0000000 --- a/optical_link/f_divider.vhd +++ /dev/null @@ -1,174 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.all; -use IEEE.STD_LOGIC_arith.all; -use IEEE.STD_LOGIC_unsigned.all; - - -entity f_divider is - - generic( - cnt : integer := 4000 -- Der Teiler teilt durch "cnt" , wenn Test = 0 ist. -- - ); - - port ( - clk : in std_logic; - ena_cnt : in std_logic; - f_div : out std_logic - ); - -end f_divider; - - - -architecture arch_f_divider of f_divider is - - function How_many_Bits (int : integer) return integer is - variable i, tmp : integer; - begin - tmp := int; - i := 0; - while tmp > 0 loop - tmp := tmp / 2; - i := i + 1; - end loop; - return i; - end How_many_bits; - - - --+ - --| Wie Breit muss der Teiler sein, um durch "cnt" teilen zu können? | - --+ - constant c_counter_width : integer := How_many_Bits(cnt - 2); - - --+ ---------------------------------------------------------------------------------------------+ - --| Des Zähler "s_counter" muss ein Bit breiter definiert werden, als zur Abarbeitung des "cnt" | - --| nötig wäre. Dieses Bit wird beim Zählerunterlauf '1'. Der Zählerablauf wird dadurch ohne | - --| Komparator erkannt, er steht als getaktetes physikalisches Signal zur Verfügung. | - --+ ---------------------------------------------------------------------------------------------+ - signal s_counter : std_logic_vector(c_counter_width downto 0) := conv_std_logic_vector(0, c_counter_width+1); - - --+ ---------------------------------------------------------------------------------------------+ - --| Teiler muss mit einen um -2 geringeren Wert geladen werden. Da das Neuladen erst durch dem | - --| Unterlauf Zählers erfolgt. D.h. die Null und minus Eins werden mitgezählt. | - --+ ---------------------------------------------------------------------------------------------+ - constant c_ld_value : integer := cnt - 2; - -begin - p_f_divider : process (clk) - begin - if clk'event and clk = '1' then - if s_counter(s_counter'high) = '1' then -- Bei underflow wird neu geladen -- - s_counter <= conv_std_logic_vector(c_ld_value, s_counter'length); - elsif ena_cnt = '1' then - if s_counter(s_counter'high) = '0' then -- Kein underflow erreicht weiter -- - s_counter <= s_counter - 1; -- subtrahieren. -- - end if; - end if; - end if; - end process p_f_divider; - - f_div <= s_counter(s_counter'high); - -end arch_f_divider; - - - - -library IEEE; -use IEEE.STD_LOGIC_1164.all; -use IEEE.STD_LOGIC_ARITH.all; -use IEEE.STD_LOGIC_UNSIGNED.all; - - ---library synplify; ---use synplify.attributes.all; - - -entity edge_to_pulse is - - port ( - clock : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); - -end edge_to_pulse; - -architecture arch_edge_to_pulse of edge_to_pulse is - signal signal_sync : std_logic; - signal old_sync : std_logic; - type state is (idle, high, wait_for_low); -- state - signal current_state, next_state : state; - -begin -- arch_edge_to_pulse - - fsm : process (clock) - begin -- process fsm - if rising_edge(clock) then -- rising clock edge - if en_clk = '1' then - current_state <= next_state; - signal_sync <= signal_in; - end if; - end if; - end process fsm; - - - fsm_comb : process (current_state, signal_sync) - begin -- process fsm_comb - pulse <= '0'; - case current_state is - when idle => - pulse <= '0'; - if signal_sync = '1' then - next_state <= high; - else - next_state <= idle; - end if; - when high => - pulse <= '1'; - next_state <= wait_for_low; --- when wait_for_low_1 => --- pulse <= '1'; --- next_state <= wait_for_low; - when wait_for_low => - pulse <= '0'; - if signal_sync = '0' then - next_state <= idle; - else - next_state <= wait_for_low; - end if; - when others => - next_state <= idle; - end case; - end process fsm_comb; - - -end arch_edge_to_pulse; - - - -library IEEE; -use IEEE.STD_LOGIC_1164.all; - -package support is - - component f_divider - generic ( - cnt : integer); - port ( - clk : in std_logic; - ena_cnt : in std_logic; - f_div : out std_logic); - end component; - - component edge_to_pulse - port ( - clock : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); - end component; - - -end support; - diff --git a/optical_link/flexi_PCS_channel_synch.vhd b/optical_link/flexi_PCS_channel_synch.vhd deleted file mode 100644 index 9df7a23..0000000 --- a/optical_link/flexi_PCS_channel_synch.vhd +++ /dev/null @@ -1,876 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -library ieee; -library work; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.all; -use work.trb_net_std.all; -use work.trb_net16_hub_func.all; - -entity flexi_PCS_channel_synch is - generic ( - SYSTEM : positive); - port ( - RESET : in std_logic; - SYSTEM_CLK : in std_logic; - --to and from media - TX_CLK : in std_logic; - RX_CLK : in std_logic; - RXD : in std_logic_vector(15 downto 0); - RX_K : in std_logic_vector(1 downto 0); - RX_RST : out std_logic; - CV : in std_logic_vector(1 downto 0); - TXD : out std_logic_vector(15 downto 0); - TX_K : out std_logic_vector(1 downto 0); - MEDIA_STATUS : in std_logic_vector(15 downto 0); - MEDIA_CONTROL : out std_logic_vector(15 downto 0); - --to and from trbnet - --to media - MED_DATAREADY_IN : in std_logic; - MED_DATA_IN : in std_logic_vector(15 downto 0); - MED_READ_OUT : out std_logic; - --from media - MED_DATA_OUT : out std_logic_vector(15 downto 0); - MED_DATAREADY_OUT : out std_logic; - MED_READ_IN : in std_logic; - --trbnet control and status - MED_PACKET_NUM_IN : in std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_STAT_OP : out std_logic_vector(15 downto 0); - MED_CTRL_OP : in std_logic_vector(15 downto 0); --debug - LINK_DEBUG : out std_logic_vector(31 downto 0) - ); -end flexi_PCS_channel_synch; - -architecture flexi_PCS_channel_synch of flexi_PCS_channel_synch is - - component flexi_PCS_fifo_EBR - port ( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(17 downto 0); - Empty : out std_logic; - Full : out std_logic; - AlmostEmpty : out std_logic; - AlmostFull : out std_logic - ); - end component; - - component ecp2m_link_fifo - port ( - Data : in std_logic_vector(17 downto 0); - WrClock : in std_logic; - RdClock : in std_logic; - WrEn : in std_logic; - RdEn : in std_logic; - Reset : in std_logic; - RPReset : in std_logic; - Q : out std_logic_vector(17 downto 0); - Empty : out std_logic; - Full : out std_logic; - AlmostEmpty : out std_logic; - AlmostFull : out std_logic - ); - end component; - --keep fifos as small as possible, remember but low prioriority - --disable transmition during synch - component up_down_counter - generic ( - NUMBER_OF_BITS : positive); - port ( - CLK : in std_logic; - RESET : in std_logic; - COUNT_OUT : out std_logic_vector(NUMBER_OF_BITS-1 downto 0); - UP_IN : in std_logic; - DOWN_IN : in std_logic); - end component; - - component edge_to_pulse - port ( - CLOCK : in std_logic; - EN_CLK : in std_logic; - SIGNAL_IN : in std_logic; - PULSE : out std_logic); - end component; - - component cross_clk - port ( - WrAddress : in std_logic_vector(2 downto 0); - Data : in std_logic_vector(31 downto 0); - WrClock : in std_logic; - WE : in std_logic; - WrClockEn : in std_logic; - RdAddress : in std_logic_vector(2 downto 0); - RdClock : in std_logic; - RdClockEn : in std_logic; - Reset : in std_logic; - Q : out std_logic_vector(31 downto 0)); - end component; - - component trbv2_cross_clk - port ( - addra : in std_logic_vector(2 downto 0); - addrb : in std_logic_vector(2 downto 0); - clka : in std_logic; - clkb : in std_logic; - dina : in std_logic_vector(31 downto 0); - dinb : in std_logic_vector(31 downto 0); - douta : out std_logic_vector(31 downto 0); - doutb : out std_logic_vector(31 downto 0); - wea : in std_logic; - web : in std_logic); - end component; - - component trbv2_link_fifo - port ( - din : IN std_logic_VECTOR(17 downto 0); - rd_clk : IN std_logic; - rd_en : IN std_logic; - rst : IN std_logic; - wr_clk : IN std_logic; - wr_en : IN std_logic; - almost_empty : OUT std_logic; - almost_full : OUT std_logic; - dout : OUT std_logic_VECTOR(17 downto 0); - empty : OUT std_logic; - full : OUT std_logic); - end component; - - type SYNC_MACHINE is (FIRST_DUMMY_STATE, START_COUNTER, RESYNC0, RESYNC1, RESYNC2, RESYNC3, WAIT_1, WAIT_2, WAIT_3, NORMAL_OPERATION_1, NORMAL_OPERATION_2); - signal SYNC_CURRENT, SYNC_NEXT : SYNC_MACHINE; --- attribute syn_enum_encoding : string; --- attribute syn_enum_encoding of SYNC_MACHINE : type is "safe"; --- attribute syn_enum_encoding of SYNC_MACHINE : type is "sequential"; - - signal fsm_debug_register : std_logic_vector(3 downto 0); - signal resync_counter_up :std_logic; - signal resync_counter_clr :std_logic; - signal resync_counter : std_logic_vector(31 downto 0); - signal cv_i : std_logic_vector(1 downto 0); - signal cv_or : std_logic; - signal cv_counter : std_logic_vector(15 downto 0); - signal rx_rst_i : std_logic; - signal rxd_synch_i : std_logic_vector(15 downto 0); - signal rxd_synch_synch_i : std_logic_vector(15 downto 0); - signal rx_k_synch_i : std_logic_vector(1 downto 0); - signal rx_k_synch_synch_i : std_logic_vector(1 downto 0); - signal fifo_data_in : std_logic_vector(17 downto 0); - signal fifo_data_out : std_logic_vector(17 downto 0); - signal fifo_wr_en : std_logic; - signal fifo_rd_en : std_logic; - signal fifo_rst : std_logic; - signal fifo_full : std_logic; - signal fifo_almost_full : std_logic; - signal fifo_empty : std_logic; - signal fifo_almost_empty : std_logic; - signal packet_number : std_logic_vector(c_NUM_WIDTH-1 downto 0); - signal start_counter_1 : std_logic_vector(31 downto 0); - signal start_counter_2 : std_logic_vector(31 downto 0); - signal fifo_rd_pulse : std_logic; - signal fifo_rd_cnt : std_logic_vector(15 downto 0); - signal fifo_wr_cnt : std_logic_vector(15 downto 0); - signal not_fifo_empty : std_logic; - - ----------------------------------------------------------------------------- - -- fifo to optical link - ----------------------------------------------------------------------------- - signal data_valid_out_i : std_logic; - signal fifo_opt_not_empty : std_logic; - signal fifo_opt_empty : std_logic; - signal fifo_opt_empty_synch : std_logic; - signal data_opt_in : std_logic_vector(17 downto 0); - signal txd_fifo_out : std_logic_vector(17 downto 0); - signal fifo_opt_full : std_logic; - signal fifo_opt_almost_empty : std_logic; - signal fifo_opt_almost_full : std_logic; - signal not_clk : std_logic; - signal txd_synch_i : std_logic_vector(15 downto 0); - signal tx_k_i : std_logic; - signal fifo_opt_empty_synch_synch : std_logic; - signal fifo_rd_en_hub : std_logic; --- constant SYSTEM : Integer := 1; - signal wait_for_write_up : std_logic; - signal wait_for_write_counter : std_logic_vector(28 downto 0); - signal link_reset_counter : std_logic_vector(2 downto 0); - signal link_reset_counter_clr : std_logic; - signal link_reset_counter_up : std_logic; - signal link_reset_out : std_logic; - signal med_error_out_i : std_logic_vector(2 downto 0); - signal fifo_rst_fsm : std_logic; - signal fsm_debug_register_fsm: std_logic_vector(3 downto 0); - signal rx_rst_fsm : std_logic; - signal resync_counter_up_fsm : std_logic; - signal resync_counter_clr_fsm : std_logic; - signal wait_for_write_up_fsm : std_logic; - signal MED_READ_OUT_fsm : std_logic; - signal diod_counter : std_logic_vector(28 downto 0); - signal cv_counter_reset : std_logic; - signal rx_comma : std_logic_vector(1 downto 0); - signal rx_comma_synch : std_logic_vector(1 downto 0); - - --crossing clk memory - signal cross_wraddress_i : std_logic_vector(2 downto 0); - signal cross_data_i : std_logic_vector(31 downto 0); - signal cross_rdaddress_i : std_logic_vector(2 downto 0); - signal cross_q_i : std_logic_vector(31 downto 0); - signal rx_comma_synch_err : std_logic; - signal lost_connection_count : std_logic_vector(15 downto 0); - -begin - - --reset from link - RESET_FROM_LINK: process (RX_CLK, RESET) - begin - if rising_edge(RX_CLK) then - if RESET = '1' then - link_reset_counter_up <= '0'; - elsif rxd_synch_i = x"ffff" and link_reset_counter < 5 then - link_reset_counter_up <= '1'; - else - link_reset_counter_up <= '0'; - end if; - end if; - end process RESET_FROM_LINK; - - SET_RESET: process (SYSTEM_CLK, RESET) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - link_reset_out <= '0'; - elsif link_reset_counter = 5 then - link_reset_out <= '1'; - else - link_reset_out <= '0'; - end if; - end if; - end process SET_RESET; - - RESET_LINK_ERROR_COUNTER: process (RX_CLK, RESET) - begin - if rising_edge(RX_CLK) then - if RESET = '1' then - link_reset_counter_clr <= '0'; - elsif link_reset_counter = 3 then - link_reset_counter_clr <= link_reset_out or RESET; - elsif link_reset_counter < 3 and rxd_synch_i /= x"ffff" then - link_reset_counter_clr <= '1'; - else - link_reset_counter_clr <= '0'; - end if; - end if; - end process RESET_LINK_ERROR_COUNTER; - - LINK_RESET_COUNTER_INST: up_down_counter - generic map ( - NUMBER_OF_BITS => 3) - port map ( - CLK => RX_CLK, - RESET => link_reset_counter_clr, - COUNT_OUT => link_reset_counter, - UP_IN => link_reset_counter_up, - DOWN_IN => '0'); - - -- STAT_OP(15) <= link_reset_out; - --link - - MED_STAT_OP(2 downto 0) <= med_error_out_i; - SEND_ERROR: process (SYSTEM_CLK, RESET,SYNC_CURRENT) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - med_error_out_i <= ERROR_NC; - elsif SYNC_CURRENT = NORMAL_OPERATION_1 or SYNC_CURRENT = NORMAL_OPERATION_2 then - med_error_out_i <= ERROR_OK; - elsif SYNC_CURRENT = WAIT_1 or SYNC_CURRENT = WAIT_2 then - med_error_out_i <= ERROR_WAIT; - else - med_error_out_i <= ERROR_NC; - end if; - end if; - end process SEND_ERROR; - MED_STAT_OP(15 downto 10) <= (others => '0'); - MED_STAT_OP(8 downto 3) <= (others => '0'); - - PACKET_NUM: process (SYSTEM_CLK, RESET,fifo_rd_en) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - packet_number <= "011"; - elsif fifo_rd_en = '1' then - if packet_number = c_max_word_number then - packet_number <= "000"; - else - packet_number <= packet_number + 1; - end if; - end if; - end if; - end process PACKET_NUM; - MED_PACKET_NUM_OUT <= packet_number; - - LINK_STATUS : process (SYSTEM_CLK,RESET) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - RX_RST <= '0'; - LINK_DEBUG(15 downto 0) <= (others => '0'); - else - RX_RST <= rx_rst_i; - LINK_DEBUG(3 downto 0) <= fsm_debug_register_fsm; - LINK_DEBUG(7 downto 4) <= fifo_empty & fifo_full & fifo_opt_empty & fifo_opt_full;--fifo_almost_full & - --'0'; - LINK_DEBUG(15 downto 8) <= fifo_wr_cnt(3 downto 0) & fifo_rd_cnt(3 downto 0);--resync_counter(15 downto 8);--cv_counter(15 downto 12) & cv_counter(3 downto 0); -- LINK_DEBUG(11 downto 8) <= fifo_wr_cnt(4 downto 1);--resync_counter(15 downto 8);--cv_counter(15 downto 12) & cv_counter(3 downto 0); - LINK_DEBUG(31 downto 16) <= fifo_data_out(3 downto 0) & lost_connection_count(7 downto 0) & '0' & rx_comma_synch & MEDIA_STATUS(0) ; - end if; - end if; - end process LINK_STATUS; - -- LINK_DEBUG(31 downto 16) <= fifo_data_in(15 downto 0); - - ----------------------------------------------------------------------------- - -- data from hub to link - ----------------------------------------------------------------------------- - - - CROSS_WR_ADDRESS: process (RX_CLK, RESET) - begin - if rising_edge (RX_CLK) then - if RESET = '1' then - cross_wraddress_i <= "000"; - else - cross_wraddress_i <= cross_wraddress_i + 1; - end if; - end if; - end process CROSS_WR_ADDRESS; - - CROSS_RD_ADDRESS: process (SYSTEM_CLK, RESET) - begin - if rising_edge (SYSTEM_CLK) then - if RESET = '1' then - cross_rdaddress_i <= "000"; - else - cross_rdaddress_i <= cross_rdaddress_i + 1; - end if; - end if; - end process CROSS_RD_ADDRESS; - - cross_data_i <= x"0000000" & "00" & rx_comma; - - data_opt_in <= "00" & MED_DATA_IN; - - SYSTEM_SCM_MEMa: if SYSTEM=1 generate - CHANNEL_FIFO_TO_OPT: flexi_PCS_fifo_EBR - port map ( - Data => data_opt_in, - WrClock => SYSTEM_CLK, - RdClock => TX_CLK, - WrEn => MED_DATAREADY_IN, - RdEn => fifo_opt_not_empty, - Reset => fifo_rst, - RPReset => fifo_rst, - Q => txd_fifo_out, - Empty => fifo_opt_empty, - Full => fifo_opt_full, - AlmostEmpty => fifo_opt_almost_empty, - AlmostFull => fifo_opt_almost_full - ); - - CROSS_CLK_DPMEM: cross_clk - port map ( - WrAddress => cross_wraddress_i, - Data => cross_data_i, - WrClock => RX_CLK, - WE => '1', - WrClockEn => '1', - RdAddress => cross_rdaddress_i, - RdClock => SYSTEM_CLK, - RdClockEn => '1', - Reset => Reset, - Q => cross_q_i); - - end generate SYSTEM_SCM_MEMa; - - SYSTEM_ECP2_MEMa: if SYSTEM=2 generate - CHANNEL_FIFO_TO_OPT: ecp2m_link_fifo - port map ( - Data => data_opt_in, - WrClock => SYSTEM_CLK, - RdClock => TX_CLK, - WrEn => MED_DATAREADY_IN, - RdEn => fifo_opt_not_empty, - Reset => fifo_rst, - RPReset => fifo_rst, - Q => txd_fifo_out, - Empty => fifo_opt_empty, - Full => fifo_opt_full, - AlmostEmpty => fifo_opt_almost_empty, - AlmostFull => fifo_opt_almost_full - ); - end generate SYSTEM_ECP2_MEMa; - - SYSTEMT_TRBv2_MEMa: if SYSTEM=6 generate - - CHANNEL_FIFO_TO_FPGA: trbv2_link_fifo - port map ( - din => data_opt_in, - rd_clk => TX_CLK, - rd_en => fifo_opt_not_empty, - rst => fifo_rst, - wr_clk => SYSTEM_CLK, - wr_en => MED_DATAREADY_IN, - almost_empty => fifo_opt_almost_empty, - almost_full => fifo_opt_almost_full, - dout => txd_fifo_out, - empty => fifo_opt_empty, - full => fifo_opt_full); - - TRBv2_CROSS_CLK_INST: trbv2_cross_clk - port map ( - addra => cross_wraddress_i, - addrb => cross_rdaddress_i, - clka => RX_CLK, - clkb => SYSTEM_CLK, - dina => cross_data_i, - dinb => x"00000000", - douta => open, - doutb => cross_q_i, - wea => '1', - web => '0'); - - end generate SYSTEMT_TRBv2_MEMa; - - DATA_SEND_TO_LINK: process (TX_CLK, RESET, MED_DATAREADY_IN,fifo_opt_empty_synch,fifo_opt_empty_synch_synch) - begin - if rising_edge(TX_CLK) then - if RESET = '1' then - tx_k_i <= '0'; - txd_synch_i <= (others => '0'); - fifo_opt_empty_synch <= fifo_opt_empty; - fifo_opt_empty_synch_synch <= fifo_opt_empty_synch; - fifo_opt_not_empty <= not fifo_opt_empty; - elsif fifo_opt_empty_synch = '0' and fifo_opt_empty_synch_synch ='0' then - tx_k_i <= '0'; - txd_synch_i <= txd_fifo_out(15 downto 0); - fifo_opt_empty_synch <= fifo_opt_empty; - fifo_opt_empty_synch_synch <= fifo_opt_empty_synch; - fifo_opt_not_empty <= not fifo_opt_empty; - else - tx_k_i <= '1'; - txd_synch_i <= x"c5bc"; - fifo_opt_empty_synch <= fifo_opt_empty; - fifo_opt_empty_synch_synch <= fifo_opt_empty_synch; - fifo_opt_not_empty <= not fifo_opt_empty; - end if; - end if; - end process DATA_SEND_TO_LINK; - - SYNC_DATA : process (TX_CLK) - begin - if rising_edge(TX_CLK) then - TXD <= txd_synch_i; - TX_K(0) <= tx_k_i; - TX_K(1) <= '0'; - end if; - end process SYNC_DATA; - - ----------------------------------------------------------------------------- - -- from link to hub - ----------------------------------------------------------------------------- - SYSTEM_SCM_MEMb: if SYSTEM=1 generate - CHANNEL_FIFO_TO_FPGA: flexi_PCS_fifo_EBR - port map ( - Data => fifo_data_in, - WrClock => RX_CLK, - RdClock => SYSTEM_CLK, - WrEn => fifo_wr_en, - RdEn => fifo_rd_en, - Reset => fifo_rst, - RPReset => fifo_rst, - Q => fifo_data_out, - Empty => fifo_empty, - Full => fifo_full, - AlmostEmpty => fifo_almost_empty, - AlmostFull => fifo_almost_full - ); - end generate SYSTEM_SCM_MEMb; - - SYSTEM_ECP2_MEMb: if SYSTEM=2 generate - CHANNEL_FIFO_TO_FPGA: ecp2m_link_fifo - port map ( - Data => fifo_data_in, - WrClock => RX_CLK, - RdClock => SYSTEM_CLK, - WrEn => fifo_wr_en, - RdEn => fifo_rd_en, - Reset => fifo_rst, - RPReset => fifo_rst, - Q => fifo_data_out, - Empty => fifo_empty, - Full => fifo_full, - AlmostEmpty => fifo_almost_empty, - AlmostFull => fifo_almost_full - ); - end generate SYSTEM_ECP2_MEMb; - - SYSTEM_TRBv2: if SYSTEM=6 generate - - CHANNEL_FIFO_TO_FPGA: trbv2_link_fifo - port map ( - din => fifo_data_in, - rd_clk => SYSTEM_CLK, - rd_en => fifo_rd_en, - rst => fifo_rst, - wr_clk => RX_CLK, - wr_en => fifo_wr_en, - almost_empty => fifo_almost_empty, - almost_full => fifo_almost_full, - dout => fifo_data_out, - empty => fifo_empty, - full => fifo_full); - - end generate SYSTEM_TRBv2; - - not_fifo_empty <= not fifo_empty; - RD_FIFO_PULSE: edge_to_pulse - port map ( - clock => SYSTEM_CLK, - en_clk => '1', - signal_in => not_fifo_empty, - pulse => fifo_rd_pulse); - - READING_THE_FIFO: process (SYSTEM_CLK, RESET, fifo_rd_pulse,MED_READ_IN,fifo_empty,data_valid_out_i) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - data_valid_out_i <= '0'; - fifo_rd_en_hub <= '0'; - elsif fifo_rd_pulse = '1' then - data_valid_out_i <= '1'; - fifo_rd_en_hub <= MED_READ_IN; - elsif MED_READ_IN = '1' and fifo_empty = '1' and data_valid_out_i = '1' then - data_valid_out_i <= '0'; - fifo_rd_en_hub <= '0'; - elsif data_valid_out_i = '1' and fifo_empty = '0' then - data_valid_out_i <= '1'; - fifo_rd_en_hub <= MED_READ_IN; - end if; - end if; - end process READING_THE_FIFO; - - MED_DATAREADY_OUT <= data_valid_out_i; - fifo_rd_en <= (fifo_rd_en_hub and (not fifo_empty)) or fifo_rd_pulse; - MED_DATA_OUT <= fifo_data_out(15 downto 0); - - VALID_DATA_SEND_TO_API: process (RX_CLK, RESET) - begin - if rising_edge(RX_CLK) then - if RESET = '1' then - rxd_synch_i <= (others => '0'); - rxd_synch_synch_i <= rxd_synch_i; - rx_k_synch_i <= "00"; - rx_k_synch_synch_i <= rx_k_synch_i; - else - rxd_synch_i <= RXD; - rxd_synch_synch_i <= rxd_synch_i; - rx_k_synch_i <= RX_K; - rx_k_synch_synch_i <= rx_k_synch_i; - end if; - end if; - end process VALID_DATA_SEND_TO_API; - - - - SHIFT_OR_NOT_DATA_IN: process (RX_CLK, RESET, SYNC_CURRENT) - begin - if rising_edge(RX_CLK) then - if RESET = '1' then - fifo_data_in <= (others => '0'); - elsif SYNC_CURRENT = NORMAL_OPERATION_2 and CV="00" then - fifo_data_in <= '0' & (not RX_K(0)) & RXD; - fifo_wr_en <= not RX_K(0); - elsif SYNC_CURRENT = NORMAL_OPERATION_1 and CV="00" then - fifo_data_in <= '0' & (not RX_K(1)) & RXD(7 downto 0) & rxd_synch_i(15 downto 8); - fifo_wr_en <= not rx_k_synch_i(1); - else - fifo_data_in <= (others => '0'); - fifo_wr_en <= '0'; - end if; - end if; - end process SHIFT_OR_NOT_DATA_IN; - - SAVE_COMA: process (RX_CLK, RESET) - begin - if rising_edge(RX_CLK) then - if RESET = '1' then - rx_comma <= "00"; - elsif (rxd_synch_i = x"50bc" or rxd_synch_i = x"c5bc") and rx_k_synch_i(0) = '1' and cv_i = "00" then - rx_comma <= "01"; - elsif (rxd_synch_i = x"bc50" or rxd_synch_i = x"bcc5") and rx_k_synch_i(1) = '1' and cv_i = "00" then - rx_comma <= "10"; - elsif cv_i /= "00" then - rx_comma <= "11"; - else - rx_comma <= "00"; - end if; - end if; - end process SAVE_COMA; - - - SYNC_CLOCK : process (SYSTEM_CLK, RESET) - begin - if rising_edge (SYSTEM_CLK) then - if RESET = '1' then - SYNC_CURRENT <= FIRST_DUMMY_STATE;--no_sim -- ---sim-- SYNC_CURRENT <= NORMAL_OPERATION_2; - cv_i <= (others => '0'); - fifo_rst <= '1'; - fsm_debug_register <= "1111"; - rx_rst_i <= '0'; - resync_counter_up <= '0'; - resync_counter_clr <= '1'; - wait_for_write_up <= '0'; - MED_READ_OUT <= '0'; - rx_comma_synch <= "00"; - else - SYNC_CURRENT <= SYNC_NEXT; - cv_i <= CV; - fifo_rst <= fifo_rst_fsm; - fsm_debug_register <= fsm_debug_register_fsm; - rx_rst_i <= rx_rst_fsm; - resync_counter_up <= resync_counter_up_fsm; - resync_counter_clr <= resync_counter_clr_fsm; - wait_for_write_up <= wait_for_write_up_fsm; - MED_READ_OUT <= MED_READ_OUT_fsm; - rx_comma_synch <= cross_q_i(1 downto 0); - end if; - end if; - end process SYNC_CLOCK; - - SYNC_FSM : process(SYNC_CURRENT) - begin - fifo_rst_fsm <= '0'; - fsm_debug_register_fsm <= "1111"; - rx_rst_fsm <= '0'; - resync_counter_up_fsm <= '1'; - resync_counter_clr_fsm <= '0'; - wait_for_write_up_fsm <= '0'; - MED_READ_OUT_fsm <= '0'; - SYNC_NEXT <= RESYNC0; - - case (SYNC_CURRENT) is - --check the sfp, pll lock and so on - -- all counters are are only reset in state START_COUNTER - - when FIRST_DUMMY_STATE => - resync_counter_up_fsm <= '0'; - fsm_debug_register_fsm <= "0001"; - SYNC_NEXT <= START_COUNTER; - - when START_COUNTER => - fsm_debug_register_fsm <= "0010"; - resync_counter_up_fsm <= '0'; - resync_counter_clr_fsm <= '1'; - fifo_rst_fsm <= '1'; - SYNC_NEXT <= RESYNC0; - - when RESYNC0 => - fsm_debug_register_fsm <= "0011"; - resync_counter_up_fsm <= '0'; - if MEDIA_STATUS(0) = '1' then - SYNC_NEXT <= START_COUNTER; - elsif rx_comma_synch = "01" or rx_comma_synch = "10" then - SYNC_NEXT <= WAIT_1; - else - SYNC_NEXT <= RESYNC1; - end if; - --SYNC_NEXT <= RESYNC1; - - when RESYNC1 => - fsm_debug_register_fsm <= "0100"; - rx_rst_fsm <= '1'; - if resync_counter(9) = '1' then - SYNC_NEXT <= RESYNC2; - else - SYNC_NEXT <= RESYNC1; - end if; - - when RESYNC2 => -- just waiting - fsm_debug_register_fsm <= "0101"; - if resync_counter(18) = '1' then --at least 400us - SYNC_NEXT <= RESYNC3; - else - SYNC_NEXT <= RESYNC2; - end if; - - when RESYNC3 => -- check for comma - fsm_debug_register_fsm <= "0110"; - if rx_comma_synch = "01" or rx_comma_synch = "10" then - SYNC_NEXT <= WAIT_2;--no_sim-- ---sim-- SYNC_NEXT <= NORMAL_OPERATION_2; - else - SYNC_NEXT <= START_COUNTER; - end if; - - when WAIT_1 => -- wait for comma - fsm_debug_register_fsm <= "0111"; - if resync_counter(28) = '1' then - SYNC_NEXT <= WAIT_3; - elsif resync_counter(27) = '1' and (rx_comma_synch = "00" or rx_comma_synch = "11") then - SYNC_NEXT <= START_COUNTER; - else - SYNC_NEXT <= WAIT_1; - end if; - - when WAIT_3 => - fsm_debug_register_fsm <= "1001"; - wait_for_write_up_fsm <= '1'; - if wait_for_write_counter(28)='1' and rx_comma_synch = "01" then - SYNC_NEXT <= NORMAL_OPERATION_2; - elsif wait_for_write_counter(28)='1' and rx_comma_synch = "10" then - SYNC_NEXT <= NORMAL_OPERATION_1; - elsif rx_comma_synch = "11" then - SYNC_NEXT <= START_COUNTER; - else - SYNC_NEXT <= WAIT_3; - end if; - - when NORMAL_OPERATION_1 => ---sim-- fifo_rst <=RESET; - fsm_debug_register_fsm <= "1010"; - resync_counter_up_fsm <= '0'; - MED_READ_OUT_fsm <= '1'; - if rx_comma_synch = "11" then --- if MEDIA_STATUS(0) = '1' then - - SYNC_NEXT <= START_COUNTER; - else - SYNC_NEXT <= NORMAL_OPERATION_1; - end if; - - when NORMAL_OPERATION_2 => ---sim-- fifo_rst <=RESET; - fsm_debug_register_fsm <= "1011"; - resync_counter_up_fsm <= '0'; - MED_READ_OUT_fsm <= '1'; - if rx_comma_synch = "11" then --- if MEDIA_STATUS(0) = '1' then - SYNC_NEXT <= START_COUNTER; - else - SYNC_NEXT <= NORMAL_OPERATION_2; - end if; - - - when others => - fsm_debug_register_fsm <= "0000"; - SYNC_NEXT <= START_COUNTER; - - end case; - end process SYNC_FSM; - - LED_FOR_LINK: process (SYSTEM_CLK) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - MED_STAT_OP(9) <= '1'; - elsif fsm_debug_register < 9 and fsm_debug_register > 3 then - MED_STAT_OP(9) <= diod_counter(23); - elsif fsm_debug_register = 9 then - MED_STAT_OP(9) <= diod_counter(26); - elsif fsm_debug_register > 9 then - MED_STAT_OP(9) <= '0'; - else - MED_STAT_OP(9) <= '1'; - end if; - end if; - end process LED_FOR_LINK; - - DIOD_COUNTER_INST: up_down_counter - generic map ( - NUMBER_OF_BITS => 29) - port map ( - CLK => SYSTEM_CLK, - RESET => '0', - COUNT_OUT => diod_counter, - UP_IN => '1', - DOWN_IN => '0'); - - WAIT_FOR_SENDING: up_down_counter - generic map ( - NUMBER_OF_BITS => 29) - port map ( - CLK => SYSTEM_CLK, - RESET => resync_counter_clr, - COUNT_OUT => wait_for_write_counter, - UP_IN => wait_for_write_up, - DOWN_IN => '0'); - - RESYNC_COUNTER_INST: up_down_counter - generic map ( - NUMBER_OF_BITS => 32) - port map ( - CLK => SYSTEM_CLK, - RESET => resync_counter_clr, - COUNT_OUT => resync_counter, - UP_IN => resync_counter_up, - DOWN_IN => '0'); - - cv_or <= cv_i(0) or cv_i(1); - - CV_COUNTER_INST: up_down_counter - generic map ( - NUMBER_OF_BITS => 16) - port map ( - CLK => RX_CLK, - RESET => RESET, - COUNT_OUT => cv_counter, - UP_IN => cv_or, - DOWN_IN => '0'); - SYNCH_ERR_COUNT : process (SYSTEM_CLK, RESET) - begin - if rising_edge(SYSTEM_CLK) then - if RESET = '1' then - rx_comma_synch_err <= '0'; - elsif SYNC_CURRENT = NORMAL_OPERATION_1 or SYNC_CURRENT = NORMAL_OPERATION_2 then - rx_comma_synch_err <= rx_comma_synch(1) and rx_comma_synch(0); - else - rx_comma_synch_err <= '0'; - end if; - end if; - end process SYNCH_ERR_COUNT; - - LINK_CONECTION_LOST_COUNTER: up_down_counter - generic map ( - NUMBER_OF_BITS => 16) - port map ( - CLK => RX_CLK, - RESET => RESET, - COUNT_OUT => lost_connection_count, - UP_IN => rx_comma_synch_err, - DOWN_IN => '0'); - - WRITE_COUNTER: up_down_counter - generic map ( - NUMBER_OF_BITS => 16) - port map ( - CLK => SYSTEM_CLK, - RESET => RESET, - COUNT_OUT => fifo_wr_cnt, - UP_IN => fifo_wr_en, - DOWN_IN => '0'); - - READ_COUNTER: up_down_counter - generic map ( - NUMBER_OF_BITS => 16) - port map ( - CLK => SYSTEM_CLK, - RESET => RESET, - COUNT_OUT => fifo_rd_cnt, - UP_IN => MED_DATAREADY_IN, - DOWN_IN => '0'); - -end flexi_PCS_channel_synch; - diff --git a/optical_link/flexi_PCS_fifo_EBR.vhd b/optical_link/flexi_PCS_fifo_EBR.vhd deleted file mode 100644 index 5fbed36..0000000 --- a/optical_link/flexi_PCS_fifo_EBR.vhd +++ /dev/null @@ -1,180 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v70_Prod_Build (55) --- Module Version: 4.2 ---/opt/lattice/isplever7.0/isptools/ispfpga/bin/lin/scuba -w -n flexi_PCS_fifo_EBR -lang vhdl -synth synplify -bus_exp 7 -bb -arch or5s00 -type ebfifo -depth 512 -width 18 -rwidth 18 -no_enable -pe 10 -pf 508 -e - --- Tue Nov 27 10:58:36 2007 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library SCM; -use SCM.COMPONENTS.all; --- synopsys translate_on - -entity flexi_PCS_fifo_EBR is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(17 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end flexi_PCS_fifo_EBR; - -architecture Structure of flexi_PCS_fifo_EBR is - - -- internal signal declarations - signal scuba_vhi: std_logic; - signal Empty_int: std_logic; - signal Full_int: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component FIFO16KA - -- synopsys translate_off - generic (FULLPOINTER1 : in std_logic_vector(14 downto 0); - FULLPOINTER : in std_logic_vector(14 downto 0); - AFPOINTER1 : in std_logic_vector(14 downto 0); - AEPOINTER1 : in std_logic_vector(14 downto 0); - AFPOINTER : in std_logic_vector(14 downto 0); - AEPOINTER : in std_logic_vector(14 downto 0); - CSDECODE_R : in std_logic_vector(1 downto 0); - CSDECODE_W : in std_logic_vector(1 downto 0); - RESETMODE : in String; REGMODE : in String; - DATA_WIDTH_R : in Integer; DATA_WIDTH_W : in Integer); - -- synopsys translate_on - port (DI0: in std_logic; DI1: in std_logic; DI2: in std_logic; - DI3: in std_logic; DI4: in std_logic; DI5: in std_logic; - DI6: in std_logic; DI7: in std_logic; DI8: in std_logic; - DI9: in std_logic; DI10: in std_logic; DI11: in std_logic; - DI12: in std_logic; DI13: in std_logic; - DI14: in std_logic; DI15: in std_logic; - DI16: in std_logic; DI17: in std_logic; - DI18: in std_logic; DI19: in std_logic; - DI20: in std_logic; DI21: in std_logic; - DI22: in std_logic; DI23: in std_logic; - DI24: in std_logic; DI25: in std_logic; - DI26: in std_logic; DI27: in std_logic; - DI28: in std_logic; DI29: in std_logic; - DI30: in std_logic; DI31: in std_logic; - DI32: in std_logic; DI33: in std_logic; - DI34: in std_logic; DI35: in std_logic; - FULLI: in std_logic; CSW0: in std_logic; - CSW1: in std_logic; EMPTYI: in std_logic; - CSR0: in std_logic; CSR1: in std_logic; WE: in std_logic; - RE: in std_logic; CLKW: in std_logic; CLKR: in std_logic; - RST: in std_logic; RPRST: in std_logic; - DO0: out std_logic; DO1: out std_logic; - DO2: out std_logic; DO3: out std_logic; - DO4: out std_logic; DO5: out std_logic; - DO6: out std_logic; DO7: out std_logic; - DO8: out std_logic; DO9: out std_logic; - DO10: out std_logic; DO11: out std_logic; - DO12: out std_logic; DO13: out std_logic; - DO14: out std_logic; DO15: out std_logic; - DO16: out std_logic; DO17: out std_logic; - DO18: out std_logic; DO19: out std_logic; - DO20: out std_logic; DO21: out std_logic; - DO22: out std_logic; DO23: out std_logic; - DO24: out std_logic; DO25: out std_logic; - DO26: out std_logic; DO27: out std_logic; - DO28: out std_logic; DO29: out std_logic; - DO30: out std_logic; DO31: out std_logic; - DO32: out std_logic; DO33: out std_logic; - DO34: out std_logic; DO35: out std_logic; - EF: out std_logic; AEF: out std_logic; AFF: out std_logic; - FF: out std_logic); - end component; - attribute FULLPOINTER1 : string; - attribute FULLPOINTER : string; - attribute AFPOINTER1 : string; - attribute AFPOINTER : string; - attribute AEPOINTER1 : string; - attribute AEPOINTER : string; - attribute RESETMODE : string; - attribute REGMODE : string; - attribute CSDECODE_R : string; - attribute CSDECODE_W : string; - attribute DATA_WIDTH_R : string; - attribute DATA_WIDTH_W : string; - attribute FULLPOINTER1 of flexi_PCS_fifo_EBR_0_0 : label is "0b011111111000001"; - attribute FULLPOINTER of flexi_PCS_fifo_EBR_0_0 : label is "0b011111111100001"; - attribute AFPOINTER1 of flexi_PCS_fifo_EBR_0_0 : label is "0b011111101000001"; - attribute AFPOINTER of flexi_PCS_fifo_EBR_0_0 : label is "0b011111101100001"; - attribute AEPOINTER1 of flexi_PCS_fifo_EBR_0_0 : label is "0b000000101111111"; - attribute AEPOINTER of flexi_PCS_fifo_EBR_0_0 : label is "0b000000101011111"; - attribute RESETMODE of flexi_PCS_fifo_EBR_0_0 : label is "ASYNC"; - attribute REGMODE of flexi_PCS_fifo_EBR_0_0 : label is "NOREG"; - attribute CSDECODE_R of flexi_PCS_fifo_EBR_0_0 : label is "0b11"; - attribute CSDECODE_W of flexi_PCS_fifo_EBR_0_0 : label is "0b11"; - attribute DATA_WIDTH_R of flexi_PCS_fifo_EBR_0_0 : label is "36"; - attribute DATA_WIDTH_W of flexi_PCS_fifo_EBR_0_0 : label is "36"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - flexi_PCS_fifo_EBR_0_0: FIFO16KA - -- synopsys translate_off - generic map (FULLPOINTER1=> "011111111000001", FULLPOINTER=> "011111111100001", - AFPOINTER1=> "011111101000001", AFPOINTER=> "011111101100001", - AEPOINTER1=> "000000101111111", AEPOINTER=> "000000101011111", - RESETMODE=> "ASYNC", REGMODE=> "NOREG", CSDECODE_R=> "11", - CSDECODE_W=> "11", DATA_WIDTH_R=> 36, DATA_WIDTH_W=> 36) - -- synopsys translate_on - port map (DI0=>Data(0), DI1=>Data(1), DI2=>Data(2), DI3=>Data(3), - DI4=>Data(4), DI5=>Data(5), DI6=>Data(6), DI7=>Data(7), - DI8=>Data(8), DI9=>Data(9), DI10=>Data(10), DI11=>Data(11), - DI12=>Data(12), DI13=>Data(13), DI14=>Data(14), - DI15=>Data(15), DI16=>Data(16), DI17=>Data(17), - DI18=>scuba_vlo, DI19=>scuba_vlo, DI20=>scuba_vlo, - DI21=>scuba_vlo, DI22=>scuba_vlo, DI23=>scuba_vlo, - DI24=>scuba_vlo, DI25=>scuba_vlo, DI26=>scuba_vlo, - DI27=>scuba_vlo, DI28=>scuba_vlo, DI29=>scuba_vlo, - DI30=>scuba_vlo, DI31=>scuba_vlo, DI32=>scuba_vlo, - DI33=>scuba_vlo, DI34=>scuba_vlo, DI35=>scuba_vlo, - FULLI=>Full_int, CSW0=>scuba_vhi, CSW1=>scuba_vhi, - EMPTYI=>Empty_int, CSR0=>scuba_vhi, CSR1=>scuba_vhi, - WE=>WrEn, RE=>RdEn, CLKW=>WrClock, CLKR=>RdClock, RST=>Reset, - RPRST=>RPReset, DO0=>open, DO1=>open, DO2=>open, DO3=>open, - DO4=>open, DO5=>open, DO6=>open, DO7=>open, DO8=>open, - DO9=>open, DO10=>open, DO11=>open, DO12=>open, DO13=>open, - DO14=>open, DO15=>open, DO16=>open, DO17=>open, DO18=>Q(0), - DO19=>Q(1), DO20=>Q(2), DO21=>Q(3), DO22=>Q(4), DO23=>Q(5), - DO24=>Q(6), DO25=>Q(7), DO26=>Q(8), DO27=>Q(9), DO28=>Q(10), - DO29=>Q(11), DO30=>Q(12), DO31=>Q(13), DO32=>Q(14), - DO33=>Q(15), DO34=>Q(16), DO35=>Q(17), EF=>Empty_int, - AEF=>AlmostEmpty, AFF=>AlmostFull, FF=>Full_int); - - Empty <= Empty_int; - Full <= Full_int; -end Structure; - --- synopsys translate_off -library SCM; -configuration Structure_CON of flexi_PCS_fifo_EBR is - for Structure - for all:VHI use entity SCM.VHI(V); end for; - for all:VLO use entity SCM.VLO(V); end for; - for all:FIFO16KA use entity SCM.FIFO16KA(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/optical_link/flexi_PCS_fifo_LUT.vhd b/optical_link/flexi_PCS_fifo_LUT.vhd deleted file mode 100644 index 8a06336..0000000 --- a/optical_link/flexi_PCS_fifo_LUT.vhd +++ /dev/null @@ -1,1167 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v70_Prod_Build (55) --- Module Version: 4.2 ---/opt/lattice/isplever7.0/isptools/ispfpga/bin/lin/scuba -w -n flexi_PCS_fifo_LUT -lang vhdl -synth synplify -bus_exp 7 -bb -arch or5s00 -type ebfifo -depth 8 -width 18 -rwidth 18 -pfu_fifo -no_enable -pe 3 -pf 6 -e - --- Fri Nov 23 08:28:34 2007 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library SCM; -use SCM.COMPONENTS.all; --- synopsys translate_on - -entity flexi_PCS_fifo_LUT is - port ( - Data: in std_logic_vector(17 downto 0); - WrClock: in std_logic; - RdClock: in std_logic; - WrEn: in std_logic; - RdEn: in std_logic; - Reset: in std_logic; - RPReset: in std_logic; - Q: out std_logic_vector(17 downto 0); - Empty: out std_logic; - Full: out std_logic; - AlmostEmpty: out std_logic; - AlmostFull: out std_logic); -end flexi_PCS_fifo_LUT; - -architecture Structure of flexi_PCS_fifo_LUT is - - -- internal signal declarations - signal invout_1: std_logic; - signal invout_0: std_logic; - signal w_gdata_0: std_logic; - signal w_gdata_1: std_logic; - signal w_gdata_2: std_logic; - signal wptr_3: std_logic; - signal r_gdata_0: std_logic; - signal r_gdata_1: std_logic; - signal r_gdata_2: std_logic; - signal rptr_3: std_logic; - signal w_gcount_0: std_logic; - signal w_gcount_1: std_logic; - signal w_gcount_2: std_logic; - signal w_gcount_3: std_logic; - signal r_gcount_0: std_logic; - signal r_gcount_1: std_logic; - signal r_gcount_2: std_logic; - signal r_gcount_3: std_logic; - signal w_gcount_r20: std_logic; - signal w_gcount_r0: std_logic; - signal w_gcount_r21: std_logic; - signal w_gcount_r1: std_logic; - signal w_gcount_r22: std_logic; - signal w_gcount_r2: std_logic; - signal w_gcount_r23: std_logic; - signal w_gcount_r3: std_logic; - signal r_gcount_w20: std_logic; - signal r_gcount_w0: std_logic; - signal r_gcount_w21: std_logic; - signal r_gcount_w1: std_logic; - signal r_gcount_w22: std_logic; - signal r_gcount_w2: std_logic; - signal r_gcount_w23: std_logic; - signal r_gcount_w3: std_logic; - signal empty_i: std_logic; - signal full_i: std_logic; - signal rRst: std_logic; - signal iwcount_0: std_logic; - signal iwcount_1: std_logic; - signal iwcount_2: std_logic; - signal iwcount_3: std_logic; - signal co1: std_logic; - signal wcount_3: std_logic; - signal co0: std_logic; - signal ircount_0: std_logic; - signal ircount_1: std_logic; - signal ircount_2: std_logic; - signal ircount_3: std_logic; - signal co1_1: std_logic; - signal rcount_3: std_logic; - signal co0_1: std_logic; - signal rcount_0: std_logic; - signal rcount_1: std_logic; - signal co0_2: std_logic; - signal empty_cmp_clr: std_logic; - signal rcount_2: std_logic; - signal empty_cmp_set: std_logic; - signal empty_d: std_logic; - signal empty_d_c: std_logic; - signal wcount_0: std_logic; - signal wcount_1: std_logic; - signal co0_3: std_logic; - signal full_cmp_clr: std_logic; - signal wcount_2: std_logic; - signal full_cmp_set: std_logic; - signal full_d: std_logic; - signal full_d_c: std_logic; - signal iae_setcount_0: std_logic; - signal iae_setcount_1: std_logic; - signal iae_setcount_2: std_logic; - signal iae_setcount_3: std_logic; - signal co1_2: std_logic; - signal ae_setcount_3: std_logic; - signal co0_4: std_logic; - signal rden_i: std_logic; - signal w_g2b_xor_cluster_0: std_logic; - signal wcount_r1: std_logic; - signal ae_setcount_0: std_logic; - signal ae_setcount_1: std_logic; - signal co0_5: std_logic; - signal wcount_r2: std_logic; - signal ae_set_cmp_clr: std_logic; - signal ae_setcount_2: std_logic; - signal ae_set_cmp_set: std_logic; - signal ae_set_d: std_logic; - signal ae_set_d_c: std_logic; - signal iaf_setcount_0: std_logic; - signal iaf_setcount_1: std_logic; - signal iaf_setcount_2: std_logic; - signal iaf_setcount_3: std_logic; - signal co1_3: std_logic; - signal af_setcount_3: std_logic; - signal co0_6: std_logic; - signal r_g2b_xor_cluster_0: std_logic; - signal rcount_w1: std_logic; - signal af_setcount_0: std_logic; - signal af_setcount_1: std_logic; - signal co0_7: std_logic; - signal rcount_w2: std_logic; - signal af_set_cmp_clr: std_logic; - signal af_setcount_2: std_logic; - signal af_set_cmp_set: std_logic; - signal af_set: std_logic; - signal af_set_c: std_logic; - signal rdataout17: std_logic; - signal rdataout16: std_logic; - signal rdataout15: std_logic; - signal rdataout14: std_logic; - signal rdataout13: std_logic; - signal rdataout12: std_logic; - signal rdataout11: std_logic; - signal rdataout10: std_logic; - signal rdataout9: std_logic; - signal rdataout8: std_logic; - signal rdataout7: std_logic; - signal rdataout6: std_logic; - signal rdataout5: std_logic; - signal rdataout4: std_logic; - signal rdataout3: std_logic; - signal rdataout2: std_logic; - signal rdataout1: std_logic; - signal rdataout0: std_logic; - signal rptr_0: std_logic; - signal rptr_1: std_logic; - signal rptr_2: std_logic; - signal wren_i: std_logic; - signal scuba_vhi: std_logic; - signal wptr_0: std_logic; - signal wptr_1: std_logic; - signal wptr_2: std_logic; - signal scuba_vlo: std_logic; - - -- local component declarations - component DPR16X2 - -- synopsys translate_off - generic (INITVAL : in String; GSR : in String); - -- synopsys translate_on - port (DI0: in std_logic; DI1: in std_logic; - WAD3: in std_logic; WAD2: in std_logic; - WAD1: in std_logic; WAD0: in std_logic; WRE: in std_logic; - WPE: in std_logic; WCK: in std_logic; RAD3: in std_logic; - RAD2: in std_logic; RAD1: in std_logic; - RAD0: in std_logic; WDO0: out std_logic; - WDO1: out std_logic; RDO0: out std_logic; - RDO1: out std_logic); - end component; - component ROM16X1 - -- synopsys translate_off - generic (initval : in String); - -- synopsys translate_on - port (AD3: in std_logic; AD2: in std_logic; AD1: in std_logic; - AD0: in std_logic; DO0: out std_logic); - end component; - component AND2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component OR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component XOR2 - port (A: in std_logic; B: in std_logic; Z: out std_logic); - end component; - component INV - port (A: in std_logic; Z: out std_logic); - end component; - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component FADD2 - port (A1: in std_logic; A0: in std_logic; B1: in std_logic; - B0: in std_logic; CI: in std_logic; COUT1: out std_logic; - COUT0: out std_logic; S1: out std_logic; - S0: out std_logic); - end component; - component CU2 - port (CI: in std_logic; PC1: in std_logic; PC0: in std_logic; - CO: out std_logic; NC1: out std_logic; NC0: out std_logic); - end component; - component AGEB2 - port (A1: in std_logic; A0: in std_logic; B1: in std_logic; - B0: in std_logic; CI: in std_logic; GE: out std_logic); - end component; - component FD1P3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - PD: in std_logic; Q: out std_logic); - end component; - component FD1P3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; SP: in std_logic; CK: in std_logic; - CD: in std_logic; Q: out std_logic); - end component; - component FD1S3BX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; PD: in std_logic; - Q: out std_logic); - end component; - component FD1S3DX - -- synopsys translate_off - generic (GSR : in String); - -- synopsys translate_on - port (D: in std_logic; CK: in std_logic; CD: in std_logic; - Q: out std_logic); - end component; - attribute GSR : string; - attribute initval : string; - attribute initval of LUT4_13 : label is "0x6996"; - attribute initval of LUT4_12 : label is "0x6996"; - attribute initval of LUT4_11 : label is "0x6996"; - attribute initval of LUT4_10 : label is "0x6996"; - attribute initval of LUT4_9 : label is "0x6996"; - attribute initval of LUT4_8 : label is "0x6996"; - attribute initval of LUT4_7 : label is "0x0410"; - attribute initval of LUT4_6 : label is "0x1004"; - attribute initval of LUT4_5 : label is "0x0140"; - attribute initval of LUT4_4 : label is "0x4001"; - attribute initval of LUT4_3 : label is "0x13c8"; - attribute initval of LUT4_2 : label is "0x2004"; - attribute initval of LUT4_1 : label is "0x4c32"; - attribute initval of LUT4_0 : label is "0x8001"; - attribute GSR of FF_69 : label is "ENABLED"; - attribute GSR of FF_68 : label is "ENABLED"; - attribute GSR of FF_67 : label is "ENABLED"; - attribute GSR of FF_66 : label is "ENABLED"; - attribute GSR of FF_65 : label is "ENABLED"; - attribute GSR of FF_64 : label is "ENABLED"; - attribute GSR of FF_63 : label is "ENABLED"; - attribute GSR of FF_62 : label is "ENABLED"; - attribute GSR of FF_61 : label is "ENABLED"; - attribute GSR of FF_60 : label is "ENABLED"; - attribute GSR of FF_59 : label is "ENABLED"; - attribute GSR of FF_58 : label is "ENABLED"; - attribute GSR of FF_57 : label is "ENABLED"; - attribute GSR of FF_56 : label is "ENABLED"; - attribute GSR of FF_55 : label is "ENABLED"; - attribute GSR of FF_54 : label is "ENABLED"; - attribute GSR of FF_53 : label is "ENABLED"; - attribute GSR of FF_52 : label is "ENABLED"; - attribute GSR of FF_51 : label is "ENABLED"; - attribute GSR of FF_50 : label is "ENABLED"; - attribute GSR of FF_49 : label is "ENABLED"; - attribute GSR of FF_48 : label is "ENABLED"; - attribute GSR of FF_47 : label is "ENABLED"; - attribute GSR of FF_46 : label is "ENABLED"; - attribute GSR of FF_45 : label is "ENABLED"; - attribute GSR of FF_44 : label is "ENABLED"; - attribute GSR of FF_43 : label is "ENABLED"; - attribute GSR of FF_42 : label is "ENABLED"; - attribute GSR of FF_41 : label is "ENABLED"; - attribute GSR of FF_40 : label is "ENABLED"; - attribute GSR of FF_39 : label is "ENABLED"; - attribute GSR of FF_38 : label is "ENABLED"; - attribute GSR of FF_37 : label is "ENABLED"; - attribute GSR of FF_36 : label is "ENABLED"; - attribute GSR of FF_35 : label is "ENABLED"; - attribute GSR of FF_34 : label is "ENABLED"; - attribute GSR of FF_33 : label is "ENABLED"; - attribute GSR of FF_32 : label is "ENABLED"; - attribute GSR of FF_31 : label is "ENABLED"; - attribute GSR of FF_30 : label is "ENABLED"; - attribute GSR of FF_29 : label is "ENABLED"; - attribute GSR of FF_28 : label is "ENABLED"; - attribute GSR of FF_27 : label is "ENABLED"; - attribute GSR of FF_26 : label is "ENABLED"; - attribute GSR of FF_25 : label is "ENABLED"; - attribute GSR of FF_24 : label is "ENABLED"; - attribute GSR of FF_23 : label is "ENABLED"; - attribute GSR of FF_22 : label is "ENABLED"; - attribute GSR of FF_21 : label is "ENABLED"; - attribute GSR of FF_20 : label is "ENABLED"; - attribute GSR of FF_19 : label is "ENABLED"; - attribute GSR of FF_18 : label is "ENABLED"; - attribute GSR of FF_17 : label is "ENABLED"; - attribute GSR of FF_16 : label is "ENABLED"; - attribute GSR of FF_15 : label is "ENABLED"; - attribute GSR of FF_14 : label is "ENABLED"; - attribute GSR of FF_13 : label is "ENABLED"; - attribute GSR of FF_12 : label is "ENABLED"; - attribute GSR of FF_11 : label is "ENABLED"; - attribute GSR of FF_10 : label is "ENABLED"; - attribute GSR of FF_9 : label is "ENABLED"; - attribute GSR of FF_8 : label is "ENABLED"; - attribute GSR of FF_7 : label is "ENABLED"; - attribute GSR of FF_6 : label is "ENABLED"; - attribute GSR of FF_5 : label is "ENABLED"; - attribute GSR of FF_4 : label is "ENABLED"; - attribute GSR of FF_3 : label is "ENABLED"; - attribute GSR of FF_2 : label is "ENABLED"; - attribute GSR of FF_1 : label is "ENABLED"; - attribute GSR of FF_0 : label is "ENABLED"; - attribute GSR of fifo_pfu_0_0 : label is "ENABLED"; - attribute initval of fifo_pfu_0_0 : label is "0x0000000000000000"; - attribute GSR of fifo_pfu_0_1 : label is "ENABLED"; - attribute initval of fifo_pfu_0_1 : label is "0x0000000000000000"; - attribute GSR of fifo_pfu_0_2 : label is "ENABLED"; - attribute initval of fifo_pfu_0_2 : label is "0x0000000000000000"; - attribute GSR of fifo_pfu_0_3 : label is "ENABLED"; - attribute initval of fifo_pfu_0_3 : label is "0x0000000000000000"; - attribute GSR of fifo_pfu_0_4 : label is "ENABLED"; - attribute initval of fifo_pfu_0_4 : label is "0x0000000000000000"; - attribute GSR of fifo_pfu_0_5 : label is "ENABLED"; - attribute initval of fifo_pfu_0_5 : label is "0x0000000000000000"; - attribute GSR of fifo_pfu_0_6 : label is "ENABLED"; - attribute initval of fifo_pfu_0_6 : label is "0x0000000000000000"; - attribute GSR of fifo_pfu_0_7 : label is "ENABLED"; - attribute initval of fifo_pfu_0_7 : label is "0x0000000000000000"; - attribute GSR of fifo_pfu_0_8 : label is "ENABLED"; - attribute initval of fifo_pfu_0_8 : label is "0x0000000000000000"; - attribute syn_keep : boolean; - -begin - -- component instantiation statements - AND2_t8: AND2 - port map (A=>WrEn, B=>invout_1, Z=>wren_i); - - INV_1: INV - port map (A=>full_i, Z=>invout_1); - - AND2_t7: AND2 - port map (A=>RdEn, B=>invout_0, Z=>rden_i); - - INV_0: INV - port map (A=>empty_i, Z=>invout_0); - - OR2_t6: OR2 - port map (A=>Reset, B=>RPReset, Z=>rRst); - - XOR2_t5: XOR2 - port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0); - - XOR2_t4: XOR2 - port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1); - - XOR2_t3: XOR2 - port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2); - - XOR2_t2: XOR2 - port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0); - - XOR2_t1: XOR2 - port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1); - - XOR2_t0: XOR2 - port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2); - - LUT4_13: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, - AD1=>w_gcount_r22, AD0=>w_gcount_r23, - DO0=>w_g2b_xor_cluster_0); - - LUT4_12: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>wcount_r2); - - LUT4_11: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, - AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r1); - - LUT4_10: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, - AD1=>r_gcount_w22, AD0=>r_gcount_w23, - DO0=>r_g2b_xor_cluster_0); - - LUT4_9: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, AD1=>scuba_vlo, - AD0=>scuba_vlo, DO0=>rcount_w2); - - LUT4_8: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x6996") - -- synopsys translate_on - port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, - AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w1); - - LUT4_7: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0410") - -- synopsys translate_on - port map (AD3=>rptr_3, AD2=>rcount_3, AD1=>w_gcount_r23, - AD0=>scuba_vlo, DO0=>empty_cmp_set); - - LUT4_6: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x1004") - -- synopsys translate_on - port map (AD3=>rptr_3, AD2=>rcount_3, AD1=>w_gcount_r23, - AD0=>scuba_vlo, DO0=>empty_cmp_clr); - - LUT4_5: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x0140") - -- synopsys translate_on - port map (AD3=>wptr_3, AD2=>wcount_3, AD1=>r_gcount_w23, - AD0=>scuba_vlo, DO0=>full_cmp_set); - - LUT4_4: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4001") - -- synopsys translate_on - port map (AD3=>wptr_3, AD2=>wcount_3, AD1=>r_gcount_w23, - AD0=>scuba_vlo, DO0=>full_cmp_clr); - - LUT4_3: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x13c8") - -- synopsys translate_on - port map (AD3=>ae_setcount_3, AD2=>rcount_3, AD1=>w_gcount_r23, - AD0=>rptr_3, DO0=>ae_set_cmp_set); - - LUT4_2: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x2004") - -- synopsys translate_on - port map (AD3=>ae_setcount_3, AD2=>rcount_3, AD1=>w_gcount_r23, - AD0=>rptr_3, DO0=>ae_set_cmp_clr); - - LUT4_1: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x4c32") - -- synopsys translate_on - port map (AD3=>af_setcount_3, AD2=>wcount_3, AD1=>r_gcount_w23, - AD0=>wptr_3, DO0=>af_set_cmp_set); - - LUT4_0: ROM16X1 - -- synopsys translate_off - generic map (initval=> "0x8001") - -- synopsys translate_on - port map (AD3=>af_setcount_3, AD2=>wcount_3, AD1=>r_gcount_w23, - AD0=>wptr_3, DO0=>af_set_cmp_clr); - - FF_69: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>wcount_0); - - FF_68: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_1); - - FF_67: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_2); - - FF_66: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wcount_3); - - FF_65: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_0); - - FF_64: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_1); - - FF_63: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_2); - - FF_62: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>w_gcount_3); - - FF_61: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_0); - - FF_60: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_1); - - FF_59: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_2); - - FF_58: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>wptr_3); - - FF_57: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>rcount_0); - - FF_56: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_1); - - FF_55: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_2); - - FF_54: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rcount_3); - - FF_53: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_0); - - FF_52: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_1); - - FF_51: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_2); - - FF_50: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>r_gcount_3); - - FF_49: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_0); - - FF_48: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_1); - - FF_47: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_2); - - FF_46: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>rptr_3); - - FF_45: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(0)); - - FF_44: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(1)); - - FF_43: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout2, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(2)); - - FF_42: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(3)); - - FF_41: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout4, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(4)); - - FF_40: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout5, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(5)); - - FF_39: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout6, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(6)); - - FF_38: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout7, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(7)); - - FF_37: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout8, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(8)); - - FF_36: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout9, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(9)); - - FF_35: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout10, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(10)); - - FF_34: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout11, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(11)); - - FF_33: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout12, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(12)); - - FF_32: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout13, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(13)); - - FF_31: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout14, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(14)); - - FF_30: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout15, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(15)); - - FF_29: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout16, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(16)); - - FF_28: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>rdataout17, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>Q(17)); - - FF_27: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0); - - FF_26: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1); - - FF_25: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2); - - FF_24: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3); - - FF_23: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0); - - FF_22: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1); - - FF_21: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2); - - FF_20: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3); - - FF_19: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r20); - - FF_18: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r21); - - FF_17: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r22); - - FF_16: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, - Q=>w_gcount_r23); - - FF_15: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20); - - FF_14: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21); - - FF_13: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22); - - FF_12: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23); - - FF_11: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i); - - FF_10: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i); - - FF_9: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_0); - - FF_8: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_1); - - FF_7: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_2, SP=>rden_i, CK=>RdClock, PD=>rRst, - Q=>ae_setcount_2); - - FF_6: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iae_setcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, - Q=>ae_setcount_3); - - FF_5: FD1S3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>ae_set_d, CK=>RdClock, PD=>rRst, Q=>AlmostEmpty); - - FF_4: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_0); - - FF_3: FD1P3BX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_1, SP=>wren_i, CK=>WrClock, PD=>Reset, - Q=>af_setcount_1); - - FF_2: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_2); - - FF_1: FD1P3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>iaf_setcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, - Q=>af_setcount_3); - - FF_0: FD1S3DX - -- synopsys translate_off - generic map (GSR=> "ENABLED") - -- synopsys translate_on - port map (D=>af_set, CK=>WrClock, CD=>Reset, Q=>AlmostFull); - - w_gctr_0: CU2 - port map (CI=>scuba_vhi, PC1=>wcount_1, PC0=>wcount_0, CO=>co0, - NC1=>iwcount_1, NC0=>iwcount_0); - - w_gctr_1: CU2 - port map (CI=>co0, PC1=>wcount_3, PC0=>wcount_2, CO=>co1, - NC1=>iwcount_3, NC0=>iwcount_2); - - r_gctr_0: CU2 - port map (CI=>scuba_vhi, PC1=>rcount_1, PC0=>rcount_0, CO=>co0_1, - NC1=>ircount_1, NC0=>ircount_0); - - r_gctr_1: CU2 - port map (CI=>co0_1, PC1=>rcount_3, PC0=>rcount_2, CO=>co1_1, - NC1=>ircount_3, NC0=>ircount_2); - - empty_cmp_0: AGEB2 - port map (A1=>rcount_1, A0=>rcount_0, B1=>wcount_r1, - B0=>w_g2b_xor_cluster_0, CI=>rden_i, GE=>co0_2); - - empty_cmp_1: AGEB2 - port map (A1=>empty_cmp_set, A0=>rcount_2, B1=>empty_cmp_clr, - B0=>wcount_r2, CI=>co0_2, GE=>empty_d_c); - - a0: FADD2 - port map (A1=>scuba_vlo, A0=>scuba_vlo, B1=>scuba_vlo, - B0=>scuba_vlo, CI=>empty_d_c, COUT1=>open, COUT0=>open, - S1=>open, S0=>empty_d); - - full_cmp_0: AGEB2 - port map (A1=>wcount_1, A0=>wcount_0, B1=>rcount_w1, - B0=>r_g2b_xor_cluster_0, CI=>wren_i, GE=>co0_3); - - full_cmp_1: AGEB2 - port map (A1=>full_cmp_set, A0=>wcount_2, B1=>full_cmp_clr, - B0=>rcount_w2, CI=>co0_3, GE=>full_d_c); - - a1: FADD2 - port map (A1=>scuba_vlo, A0=>scuba_vlo, B1=>scuba_vlo, - B0=>scuba_vlo, CI=>full_d_c, COUT1=>open, COUT0=>open, - S1=>open, S0=>full_d); - - ae_set_ctr_0: CU2 - port map (CI=>scuba_vhi, PC1=>ae_setcount_1, PC0=>ae_setcount_0, - CO=>co0_4, NC1=>iae_setcount_1, NC0=>iae_setcount_0); - - ae_set_ctr_1: CU2 - port map (CI=>co0_4, PC1=>ae_setcount_3, PC0=>ae_setcount_2, - CO=>co1_2, NC1=>iae_setcount_3, NC0=>iae_setcount_2); - - ae_set_cmp_0: AGEB2 - port map (A1=>ae_setcount_1, A0=>ae_setcount_0, B1=>wcount_r1, - B0=>w_g2b_xor_cluster_0, CI=>rden_i, GE=>co0_5); - - ae_set_cmp_1: AGEB2 - port map (A1=>ae_set_cmp_set, A0=>ae_setcount_2, - B1=>ae_set_cmp_clr, B0=>wcount_r2, CI=>co0_5, GE=>ae_set_d_c); - - a2: FADD2 - port map (A1=>scuba_vlo, A0=>scuba_vlo, B1=>scuba_vlo, - B0=>scuba_vlo, CI=>ae_set_d_c, COUT1=>open, COUT0=>open, - S1=>open, S0=>ae_set_d); - - af_set_ctr_0: CU2 - port map (CI=>scuba_vhi, PC1=>af_setcount_1, PC0=>af_setcount_0, - CO=>co0_6, NC1=>iaf_setcount_1, NC0=>iaf_setcount_0); - - af_set_ctr_1: CU2 - port map (CI=>co0_6, PC1=>af_setcount_3, PC0=>af_setcount_2, - CO=>co1_3, NC1=>iaf_setcount_3, NC0=>iaf_setcount_2); - - af_set_cmp_0: AGEB2 - port map (A1=>af_setcount_1, A0=>af_setcount_0, B1=>rcount_w1, - B0=>r_g2b_xor_cluster_0, CI=>wren_i, GE=>co0_7); - - af_set_cmp_1: AGEB2 - port map (A1=>af_set_cmp_set, A0=>af_setcount_2, - B1=>af_set_cmp_clr, B0=>rcount_w2, CI=>co0_7, GE=>af_set_c); - - a3: FADD2 - port map (A1=>scuba_vlo, A0=>scuba_vlo, B1=>scuba_vlo, - B0=>scuba_vlo, CI=>af_set_c, COUT1=>open, COUT0=>open, - S1=>open, S0=>af_set); - - fifo_pfu_0_0: DPR16X2 - -- synopsys translate_off - generic map (GSR=> "ENABLED", initval=> "0x0000000000000000") - -- synopsys translate_on - port map (DI0=>Data(16), DI1=>Data(17), WAD3=>scuba_vlo, - WAD2=>wptr_2, WAD1=>wptr_1, WAD0=>wptr_0, WRE=>scuba_vhi, - WPE=>wren_i, WCK=>WrClock, RAD3=>scuba_vlo, RAD2=>rptr_2, - RAD1=>rptr_1, RAD0=>rptr_0, WDO0=>open, WDO1=>open, - RDO0=>rdataout16, RDO1=>rdataout17); - - fifo_pfu_0_1: DPR16X2 - -- synopsys translate_off - generic map (GSR=> "ENABLED", initval=> "0x0000000000000000") - -- synopsys translate_on - port map (DI0=>Data(14), DI1=>Data(15), WAD3=>scuba_vlo, - WAD2=>wptr_2, WAD1=>wptr_1, WAD0=>wptr_0, WRE=>scuba_vhi, - WPE=>wren_i, WCK=>WrClock, RAD3=>scuba_vlo, RAD2=>rptr_2, - RAD1=>rptr_1, RAD0=>rptr_0, WDO0=>open, WDO1=>open, - RDO0=>rdataout14, RDO1=>rdataout15); - - fifo_pfu_0_2: DPR16X2 - -- synopsys translate_off - generic map (GSR=> "ENABLED", initval=> "0x0000000000000000") - -- synopsys translate_on - port map (DI0=>Data(12), DI1=>Data(13), WAD3=>scuba_vlo, - WAD2=>wptr_2, WAD1=>wptr_1, WAD0=>wptr_0, WRE=>scuba_vhi, - WPE=>wren_i, WCK=>WrClock, RAD3=>scuba_vlo, RAD2=>rptr_2, - RAD1=>rptr_1, RAD0=>rptr_0, WDO0=>open, WDO1=>open, - RDO0=>rdataout12, RDO1=>rdataout13); - - fifo_pfu_0_3: DPR16X2 - -- synopsys translate_off - generic map (GSR=> "ENABLED", initval=> "0x0000000000000000") - -- synopsys translate_on - port map (DI0=>Data(10), DI1=>Data(11), WAD3=>scuba_vlo, - WAD2=>wptr_2, WAD1=>wptr_1, WAD0=>wptr_0, WRE=>scuba_vhi, - WPE=>wren_i, WCK=>WrClock, RAD3=>scuba_vlo, RAD2=>rptr_2, - RAD1=>rptr_1, RAD0=>rptr_0, WDO0=>open, WDO1=>open, - RDO0=>rdataout10, RDO1=>rdataout11); - - fifo_pfu_0_4: DPR16X2 - -- synopsys translate_off - generic map (GSR=> "ENABLED", initval=> "0x0000000000000000") - -- synopsys translate_on - port map (DI0=>Data(8), DI1=>Data(9), WAD3=>scuba_vlo, - WAD2=>wptr_2, WAD1=>wptr_1, WAD0=>wptr_0, WRE=>scuba_vhi, - WPE=>wren_i, WCK=>WrClock, RAD3=>scuba_vlo, RAD2=>rptr_2, - RAD1=>rptr_1, RAD0=>rptr_0, WDO0=>open, WDO1=>open, - RDO0=>rdataout8, RDO1=>rdataout9); - - fifo_pfu_0_5: DPR16X2 - -- synopsys translate_off - generic map (GSR=> "ENABLED", initval=> "0x0000000000000000") - -- synopsys translate_on - port map (DI0=>Data(6), DI1=>Data(7), WAD3=>scuba_vlo, - WAD2=>wptr_2, WAD1=>wptr_1, WAD0=>wptr_0, WRE=>scuba_vhi, - WPE=>wren_i, WCK=>WrClock, RAD3=>scuba_vlo, RAD2=>rptr_2, - RAD1=>rptr_1, RAD0=>rptr_0, WDO0=>open, WDO1=>open, - RDO0=>rdataout6, RDO1=>rdataout7); - - fifo_pfu_0_6: DPR16X2 - -- synopsys translate_off - generic map (GSR=> "ENABLED", initval=> "0x0000000000000000") - -- synopsys translate_on - port map (DI0=>Data(4), DI1=>Data(5), WAD3=>scuba_vlo, - WAD2=>wptr_2, WAD1=>wptr_1, WAD0=>wptr_0, WRE=>scuba_vhi, - WPE=>wren_i, WCK=>WrClock, RAD3=>scuba_vlo, RAD2=>rptr_2, - RAD1=>rptr_1, RAD0=>rptr_0, WDO0=>open, WDO1=>open, - RDO0=>rdataout4, RDO1=>rdataout5); - - fifo_pfu_0_7: DPR16X2 - -- synopsys translate_off - generic map (GSR=> "ENABLED", initval=> "0x0000000000000000") - -- synopsys translate_on - port map (DI0=>Data(2), DI1=>Data(3), WAD3=>scuba_vlo, - WAD2=>wptr_2, WAD1=>wptr_1, WAD0=>wptr_0, WRE=>scuba_vhi, - WPE=>wren_i, WCK=>WrClock, RAD3=>scuba_vlo, RAD2=>rptr_2, - RAD1=>rptr_1, RAD0=>rptr_0, WDO0=>open, WDO1=>open, - RDO0=>rdataout2, RDO1=>rdataout3); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - fifo_pfu_0_8: DPR16X2 - -- synopsys translate_off - generic map (GSR=> "ENABLED", initval=> "0x0000000000000000") - -- synopsys translate_on - port map (DI0=>Data(0), DI1=>Data(1), WAD3=>scuba_vlo, - WAD2=>wptr_2, WAD1=>wptr_1, WAD0=>wptr_0, WRE=>scuba_vhi, - WPE=>wren_i, WCK=>WrClock, RAD3=>scuba_vlo, RAD2=>rptr_2, - RAD1=>rptr_1, RAD0=>rptr_0, WDO0=>open, WDO1=>open, - RDO0=>rdataout0, RDO1=>rdataout1); - - Empty <= empty_i; - Full <= full_i; -end Structure; - --- synopsys translate_off -library SCM; -configuration Structure_CON of flexi_PCS_fifo_LUT is - for Structure - for all:DPR16X2 use entity SCM.DPR16X2(V); end for; - for all:ROM16X1 use entity SCM.ROM16X1(V); end for; - for all:AND2 use entity SCM.AND2(V); end for; - for all:OR2 use entity SCM.OR2(V); end for; - for all:XOR2 use entity SCM.XOR2(V); end for; - for all:INV use entity SCM.INV(V); end for; - for all:VHI use entity SCM.VHI(V); end for; - for all:VLO use entity SCM.VLO(V); end for; - for all:FADD2 use entity SCM.FADD2(V); end for; - for all:CU2 use entity SCM.CU2(V); end for; - for all:AGEB2 use entity SCM.AGEB2(V); end for; - for all:FD1P3BX use entity SCM.FD1P3BX(V); end for; - for all:FD1P3DX use entity SCM.FD1P3DX(V); end for; - for all:FD1S3BX use entity SCM.FD1S3BX(V); end for; - for all:FD1S3DX use entity SCM.FD1S3DX(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/optical_link/flexi_PCS_synch.vhd b/optical_link/flexi_PCS_synch.vhd deleted file mode 100644 index 39c2cc8..0000000 --- a/optical_link/flexi_PCS_synch.vhd +++ /dev/null @@ -1,112 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -library ieee; -library work; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.all; -use work.trb_net_std.all; - -entity flexi_PCS_synch is - generic ( - HOW_MANY_CHANNELS : positive; - SYSTEM : positive - ); - port ( - RESET : in std_logic; - SYSTEM_CLK : in std_logic; - TX_CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)-1 downto 0); - RX_CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - RXD : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - RX_K : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - RX_RST : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - CV : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - TXD : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - TX_K : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - MEDIA_STATUS : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MEDIA_CONTROL : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_DATAREADY_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_DATA_IN : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_READ_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_DATA_OUT : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_DATAREADY_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_READ_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - MED_STAT_OP : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_CTRL_OP : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - LINK_DEBUG : out std_logic_vector(HOW_MANY_CHANNELS*32-1 downto 0) - ); -end flexi_PCS_synch; - -architecture flexi_PCS_synch of flexi_PCS_synch is - - component flexi_PCS_channel_synch - generic ( - SYSTEM : positive - ); - port ( - RESET : in std_logic; - SYSTEM_CLK : in std_logic; - TX_CLK : in std_logic; - RX_CLK : in std_logic; - RXD : in std_logic_vector(15 downto 0); - RX_K : in std_logic_vector(1 downto 0); - RX_RST : out std_logic; - CV : in std_logic_vector(1 downto 0); - TXD : out std_logic_vector(15 downto 0); - TX_K : out std_logic_vector(1 downto 0); - MEDIA_STATUS : in std_logic_vector(15 downto 0); - MEDIA_CONTROL : out std_logic_vector(15 downto 0); - MED_DATAREADY_IN : in std_logic; - MED_DATA_IN : in std_logic_vector(15 downto 0); - MED_READ_OUT : out std_logic; - MED_DATA_OUT : out std_logic_vector(15 downto 0); - MED_DATAREADY_OUT : out std_logic; - MED_READ_IN : in std_logic; - MED_PACKET_NUM_IN : in std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(c_NUM_WIDTH-1 downto 0); - MED_STAT_OP : out std_logic_vector(15 downto 0); - MED_CTRL_OP : in std_logic_vector(15 downto 0); - LINK_DEBUG : out std_logic_vector(31 downto 0) - ); - end component; - -begin - - CHANNEL_GENERATE : for bit_index in 0 to HOW_MANY_CHANNELS-1 generate - begin - - CHANNEL_GENERATE: flexi_PCS_channel_synch - generic map ( - SYSTEM => SYSTEM - ) - port map ( - RESET => RESET, - SYSTEM_CLK => SYSTEM_CLK, - TX_CLK => TX_CLK(bit_index/4), --4 different channles clk, - RX_CLK => RX_CLK(bit_index), - RXD => RXD((bit_index*16+15) downto bit_index*16), - RX_K => RX_K(bit_index*2+1 downto bit_index*2), - RX_RST => RX_RST(bit_index), - CV => CV((bit_index*2+1) downto bit_index*2), - TXD => TXD((bit_index*16+15) downto bit_index*16), - TX_K => TX_K(bit_index*2+1 downto bit_index*2), - MEDIA_STATUS => MEDIA_STATUS((bit_index*16+15) downto bit_index*16), - MEDIA_CONTROL => MEDIA_CONTROL((bit_index*16+15) downto bit_index*16), - MED_DATAREADY_IN => MED_DATAREADY_IN(bit_index), - MED_DATA_IN => MED_DATA_IN((bit_index*16+15) downto bit_index*16), - MED_READ_OUT => MED_READ_OUT(bit_index), - MED_DATA_OUT => MED_DATA_OUT((bit_index*16+15) downto bit_index*16), - MED_DATAREADY_OUT => MED_DATAREADY_OUT(bit_index), - MED_READ_IN => MED_READ_IN(bit_index), - MED_PACKET_NUM_IN => MED_PACKET_NUM_IN(((bit_index+1)*c_NUM_WIDTH-1) downto bit_index*c_NUM_WIDTH), - MED_PACKET_NUM_OUT => MED_PACKET_NUM_OUT(((bit_index+1)*c_NUM_WIDTH-1) downto bit_index*c_NUM_WIDTH), - MED_STAT_OP => MED_STAT_OP((bit_index*16+15) downto bit_index*16), - MED_CTRL_OP => MED_CTRL_OP((bit_index*16+15) downto bit_index*16), - LINK_DEBUG => LINK_DEBUG((bit_index*32+31) downto bit_index*32) - ); - - end generate; - -end flexi_PCS_synch; diff --git a/optical_link/hub.lpf b/optical_link/hub.lpf deleted file mode 100644 index bbc963c..0000000 --- a/optical_link/hub.lpf +++ /dev/null @@ -1,541 +0,0 @@ -COMMERCIAL; -BLOCK RESETPATHS ; -BLOCK ASYNCPATHS ; -#LOCATE COMP "ADDON_RESET" SITE "J21" ; -#LOCATE COMP "ADO_CLKOUTN" SITE "AE4" ; -#LOCATE COMP "ADO_CLKOUTP" SITE "AE3" ; -#LOCATE COMP "ADO_LV_0" SITE "D32" ; -#LOCATE COMP "ADO_LV_1" SITE "D31" ; -#LOCATE COMP "ADO_LV_2" SITE "F32" ; -#LOCATE COMP "ADO_LV_3" SITE "F31" ; -#LOCATE COMP "ADO_LV_4" SITE "J29" ; -#LOCATE COMP "ADO_LV_5" SITE "H29" ; -#LOCATE COMP "ADO_LV_6" SITE "L32" ; -#LOCATE COMP "ADO_LV_7" SITE "M32" ; -#LOCATE COMP "ADO_LV_8" SITE "P30" ; -#LOCATE COMP "ADO_LV_9" SITE "P29" ; -#LOCATE COMP "ADO_LV_10" SITE "R30" ; -#LOCATE COMP "ADO_LV_11" SITE "R29" ; -#LOCATE COMP "ADO_LV_12" SITE "T31" ; -#LOCATE COMP "ADO_LV_13" SITE "T32" ; -#LOCATE COMP "ADO_LV_14" SITE "V32" ; -#LOCATE COMP "ADO_LV_15" SITE "V31" ; -#LOCATE COMP "ADO_LV_16" SITE "W30" ; -#LOCATE COMP "ADO_LV_17" SITE "W29" ; -#LOCATE COMP "ADO_LV_18" SITE "W28" ; -#LOCATE COMP "ADO_LV_19" SITE "Y28" ; -#LOCATE COMP "ADO_LV_20" SITE "AB32" ; -#LOCATE COMP "ADO_LV_21" SITE "AA32" ; -#LOCATE COMP "ADO_LV_22" SITE "AD29" ; -#LOCATE COMP "ADO_LV_23" SITE "AD30" ; -#LOCATE COMP "ADO_LV_24" SITE "AC32" ; -#LOCATE COMP "ADO_LV_25" SITE "AD32" ; -#LOCATE COMP "ADO_LV_26" SITE "AE31" ; -#LOCATE COMP "ADO_LV_27" SITE "AE32" ; -#LOCATE COMP "ADO_LV_28" SITE "E32" ; -#LOCATE COMP "ADO_LV_29" SITE "E31" ; -#LOCATE COMP "ADO_LV_30" SITE "G31" ; -#LOCATE COMP "ADO_LV_31" SITE "G32" ; -#LOCATE COMP "ADO_LV_32" SITE "H31" ; -#LOCATE COMP "ADO_LV_33" SITE "H32" ; -#LOCATE COMP "ADO_LV_34" SITE "N31" ; -#LOCATE COMP "ADO_LV_35" SITE "N32" ; -#LOCATE COMP "ADO_LV_36" SITE "P32" ; -#LOCATE COMP "ADO_LV_37" SITE "P31" ; -#LOCATE COMP "ADO_LV_38" SITE "R31" ; -#LOCATE COMP "ADO_LV_39" SITE "R32" ; -#LOCATE COMP "ADO_LV_40" SITE "U32" ; -#LOCATE COMP "ADO_LV_41" SITE "U31" ; -#LOCATE COMP "ADO_LV_42" SITE "V29" ; -#LOCATE COMP "ADO_LV_43" SITE "V30" ; -#LOCATE COMP "ADO_LV_44" SITE "W31" ; -#LOCATE COMP "ADO_LV_45" SITE "Y31" ; -#LOCATE COMP "ADO_LV_46" SITE "W32" ; -#LOCATE COMP "ADO_LV_47" SITE "Y32" ; -#LOCATE COMP "ADO_LV_48" SITE "AD31" ; -#LOCATE COMP "ADO_LV_49" SITE "AC31" ; -#LOCATE COMP "ADO_LV_50" SITE "AC28" ; -#LOCATE COMP "ADO_LV_51" SITE "AD28" ; -#LOCATE COMP "ADO_LV_52" SITE "AE30" ; -#LOCATE COMP "ADO_LV_53" SITE "AE29" ; -#LOCATE COMP "ADO_LV_54" SITE "AF32" ; -#LOCATE COMP "ADO_LV_55" SITE "AF31" ; -#LOCATE COMP "ADO_LV_56" SITE "AG1" ; -#LOCATE COMP "ADO_LV_57" SITE "AG2" ; -#LOCATE COMP "ADO_LV_58" SITE "AE2" ; -#LOCATE COMP "ADO_LV_59" SITE "AE1" ; -#LOCATE COMP "ADO_LV_60" SITE "AF1" ; -#LOCATE COMP "ADO_LV_61" SITE "AF2" ; -LOCATE COMP "ADO_TTL_0" SITE "AJ32" ; -LOCATE COMP "ADO_TTL_1" SITE "AF27" ; -LOCATE COMP "ADO_TTL_2" SITE "AK31" ; -LOCATE COMP "ADO_TTL_3" SITE "AE25" ; -LOCATE COMP "ADO_TTL_4" SITE "AK30" ; -LOCATE COMP "ADO_TTL_5" SITE "AD23" ; -LOCATE COMP "ADO_TTL_6" SITE "AK29" ; -LOCATE COMP "ADO_TTL_7" SITE "AF26" ; -LOCATE COMP "ADO_TTL_8" SITE "AJ28" ; -LOCATE COMP "ADO_TTL_9" SITE "AJ31" ; -LOCATE COMP "ADO_TTL_10" SITE "AM30" ; -LOCATE COMP "ADO_TTL_11" SITE "AH29" ; -LOCATE COMP "ADO_TTL_12" SITE "AJ27" ; -LOCATE COMP "ADO_TTL_13" SITE "AE22" ; -LOCATE COMP "ADO_TTL_14" SITE "AL28" ; -LOCATE COMP "ADO_TTL_15" SITE "AC21" ; -LOCATE COMP "ADO_TTL_16" SITE "AM28" ; -LOCATE COMP "ADO_TTL_17" SITE "AG23" ; -LOCATE COMP "ADO_TTL_18" SITE "AG26" ; -LOCATE COMP "ADO_TTL_19" SITE "AL26" ; -LOCATE COMP "ADO_TTL_20" SITE "AK32" ; -LOCATE COMP "ADO_TTL_21" SITE "AG28" ; -LOCATE COMP "ADO_TTL_22" SITE "AL31" ; -LOCATE COMP "ADO_TTL_23" SITE "AE24" ; -LOCATE COMP "ADO_TTL_24" SITE "AL30" ; -LOCATE COMP "ADO_TTL_25" SITE "AE23" ; -LOCATE COMP "ADO_TTL_26" SITE "AL29" ; -LOCATE COMP "ADO_TTL_27" SITE "AF25" ; -LOCATE COMP "ADO_TTL_28" SITE "AK28" ; -LOCATE COMP "ADO_TTL_29" SITE "AH30" ; -LOCATE COMP "ADO_TTL_30" SITE "AM29" ; -LOCATE COMP "ADO_TTL_31" SITE "AH28" ; -LOCATE COMP "ADO_TTL_32" SITE "AK27" ; -LOCATE COMP "ADO_TTL_33" SITE "AF23" ; -LOCATE COMP "ADO_TTL_34" SITE "AL27" ; -LOCATE COMP "ADO_TTL_35" SITE "AD21" ; -LOCATE COMP "ADO_TTL_36" SITE "AM27" ; -LOCATE COMP "ADO_TTL_37" SITE "AF22" ; -LOCATE COMP "ADO_TTL_38" SITE "AG25" ; -LOCATE COMP "ADO_TTL_39" SITE "AM26" ; -LOCATE COMP "ADO_TTL_40" SITE "AK24" ; -LOCATE COMP "ADO_TTL_41" SITE "AE20" ; -LOCATE COMP "ADO_TTL_42" SITE "AJ24" ; -LOCATE COMP "ADO_TTL_43" SITE "AE21" ; -LOCATE COMP "ADO_TTL_44" SITE "AJ22" ; -LOCATE COMP "ADO_TTL_45" SITE "AK22" ; -LOCATE COMP "ADO_TTL_46" SITE "AG22" ; -IOBUF PORT "ADO_TTL_0" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_1" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_2" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_3" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_4" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_5" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_6" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_7" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_8" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_9" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_10" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_11" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_12" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_13" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_14" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_15" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_16" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_17" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_18" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_19" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_20" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_21" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_22" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_23" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_24" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_25" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_26" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_27" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_28" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_29" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_30" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_31" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_32" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_33" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_34" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_35" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_36" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_37" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_38" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_39" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_40" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_41" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_42" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_43" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_44" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_45" IO_TYPE=LVTTL33 ; -IOBUF PORT "ADO_TTL_46" IO_TYPE=LVTTL33 ; -LOCATE COMP "DBAD" SITE "AM20" ; -LOCATE COMP "DGOOD" SITE "AH20" ; -LOCATE COMP "DINT" SITE "AJ18" ; -LOCATE COMP "DWAIT" SITE "AH21" ; -IOBUF PORT "DBAD" IO_TYPE=LVTTL33 ; -IOBUF PORT "DGOOD" IO_TYPE=LVTTL33 ; -IOBUF PORT "DINT" IO_TYPE=LVTTL33 ; -IOBUF PORT "DWAIT" IO_TYPE=LVTTL33 ; -#LOCATE COMP "FROM_TRB_TO_ADDON_CLK" SITE "T10" ; -#LOCATE COMP "FROM_TRB_TO_ADDON_CLKB" SITE "T9" ; -#LOCATE COMP "FS_PE_0" SITE "J13" ; -#LOCATE COMP "FS_PE_1" SITE "K9" ; -#LOCATE COMP "FS_PE_2" SITE "J12" ; - -LOCATE COMP "FS_PE_5" SITE "AM16" ; -LOCATE COMP "FS_PE_6" SITE "AL16" ; -LOCATE COMP "FS_PE_7" SITE "AM15" ; -LOCATE COMP "FS_PE_8" SITE "AL15" ; -LOCATE COMP "FS_PE_9" SITE "AM14" ; -LOCATE COMP "FS_PE_10" SITE "AC16" ; -LOCATE COMP "FS_PE_12" SITE "AK15" ; -LOCATE COMP "FS_PE_13" SITE "AH14" ; -LOCATE COMP "FS_PE_14" SITE "AM13" ; -LOCATE COMP "FS_PE_15" SITE "AH12" ; -LOCATE COMP "FS_PE_16" SITE "AK14" ; -LOCATE COMP "FS_PE_17" SITE "AD15" ; - -IOBUF PORT "FS_PE_5" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_6" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_7" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_8" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_9" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_10" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_12" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_13" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_14" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_15" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_16" IO_TYPE=LVTTL33; -IOBUF PORT "FS_PE_17" IO_TYPE=LVTTL33; - -LOCATE COMP "FS_PE_11" SITE "AH16" ; -IOBUF PORT "FS_PE_11" IO_TYPE=LVTTL33 ; - - -LOCATE COMP "OPLL" SITE "AL11" ; -LOCATE COMP "IPLL" SITE "AL10" ; -LOCATE COMP "LOK_1" SITE "AJ1" ; -LOCATE COMP "LOK_2" SITE "AL2" ; -LOCATE COMP "LOK_3" SITE "AK3" ; -LOCATE COMP "LOK_4" SITE "AL4" ; -LOCATE COMP "LOK_5" SITE "AM4" ; -LOCATE COMP "LOK_6" SITE "AH5" ; -LOCATE COMP "LOK_7" SITE "AG5" ; -LOCATE COMP "LOK_8" SITE "AK5" ; -LOCATE COMP "LOK_9" SITE "AK6" ; -LOCATE COMP "LOK_10" SITE "AM5" ; -LOCATE COMP "LOK_11" SITE "AM6" ; -LOCATE COMP "LOK_12" SITE "AF8" ; -LOCATE COMP "LOK_13" SITE "AE9" ; -LOCATE COMP "LOK_14" SITE "AE10" ; -LOCATE COMP "LOK_15" SITE "AF11" ; -LOCATE COMP "LOK_16" SITE "AD12" ; -IOBUF PORT "IPLL" IO_TYPE=LVTTL33 ; -IOBUF PORT "OPLL" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_1" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_2" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_3" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_4" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_5" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_6" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_7" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_8" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_9" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_10" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_11" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_12" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_13" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_14" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_15" IO_TYPE=LVTTL33 ; -IOBUF PORT "LOK_16" IO_TYPE=LVTTL33 ; -LOCATE COMP "LVDS_CLK_200P" SITE "P3" ; -#LOCATE COMP "LVDS_CLK_200N" SITE "P4" ; -IOBUF PORT "LVDS_CLK_200P" IO_TYPE=LVDS ; -#IOBUF PORT "LVDS_CLK_200N" IO_TYPE=LVDS ; -FREQUENCY PORT "LVDS_CLK_200P" 110.000000 MHz ; -#FREQUENCY PORT "LVDS_CLK_200N" 200.000000 MHz ; -IOBUF PORT "LVDS_CLK_200P" DIFFRESISTOR=120 ; - -#LOCATE COMP "RESET" SITE "AL23" ; -LOCATE COMP "RT_1" SITE "AK1" ; -LOCATE COMP "RT_2" SITE "AK2" ; -LOCATE COMP "RT_3" SITE "AJ3" ; -LOCATE COMP "RT_4" SITE "AL3" ; -LOCATE COMP "RT_5" SITE "AM3" ; -LOCATE COMP "RT_6" SITE "AH4" ; -LOCATE COMP "RT_7" SITE "AF6" ; -LOCATE COMP "RT_8" SITE "AJ5" ; -LOCATE COMP "RT_9" SITE "AJ6" ; -LOCATE COMP "RT_10" SITE "AL5" ; -LOCATE COMP "RT_11" SITE "AL6" ; -LOCATE COMP "RT_12" SITE "AF7" ; -LOCATE COMP "RT_13" SITE "AE8" ; -LOCATE COMP "RT_14" SITE "AD10" ; -LOCATE COMP "RT_15" SITE "AE11" ; -LOCATE COMP "RT_16" SITE "AE12" ; -IOBUF PORT "RT_1" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_2" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_3" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_4" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_5" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_6" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_7" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_8" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_9" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_10" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_11" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_12" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_13" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_14" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_15" IO_TYPE=LVTTL33 ; -IOBUF PORT "RT_16" IO_TYPE=LVTTL33 ; - - - - -#LOCATE COMP "GBIT_INP_N" SITE "C2" ; -#LOCATE COMP "GBIT_INP_P" SITE "C1" ; -#LOCATE COMP "GBIT_OUT_N" SITE "B3" ; -#LOCATE COMP "GBIT_OUT_P" SITE "A3" ; - -#LOCATE COMP "GBIT_SFP_MOD_0" SITE "A19" ; -#LOCATE COMP "GBIT_SFP_MOD_1" SITE "H18" ; -#LOCATE COMP "GBIT_SFP_MOD_2" SITE "H17" ; - -#LOCATE COMP "GBIT_TX_FAULT" SITE "K15" ; -#LOCATE COMP "S1_GBIT_SFP_MOD_0" SITE "AG17" ; -#LOCATE COMP "S1_GBIT_TX_FAULT" SITE "AK21" ; -#LOCATE COMP "S2_GBIT_TX_DIS" SITE "AF19" ; - -#LOCATE COMP "S2_GBIT_SFP_MOD_0" SITE "AC17" ; - -#LOCATE COMP "S2_GBIT_TX_FAULT" SITE "AM23" ; -#LOCATE COMP "S3_GBIT_SFP_MOD_0" SITE "AM17" ; -#LOCATE COMP "S3_GBIT_TX_FAULT" SITE "AH26" ; -#LOCATE COMP "S3_GBIT_TX_DIS" SITE "AH25" ; - -#LOCATE COMP "S1_GBIT_TX_DIS" SITE "AJ21" ; -#LOCATE COMP "S1_GBIT_SFP_MOD_1" SITE "AL18" ; -#LOCATE COMP "S3_GBIT_SFP_MOD_1" SITE "AE17" ; -#LOCATE COMP "S2_GBIT_SFP_MOD_1" SITE "AD17" ; -#LOCATE COMP "S2_GBIT_SFP_MOD_2" SITE "AL17" ; -#LOCATE COMP "S3_GBIT_SFP_MOD_2" SITE "AF17" ; -#LOCATE COMP "S1_GBIT_SFP_MOD_2" SITE "AM18" ; -#LOCATE COMP "SERDES_125P" SITE "C5" ; -#LOCATE COMP "SERDES_200N" SITE "D28" ; -#LOCATE COMP "SERDES_200P" SITE "C28" ; -#LOCATE COMP "SERDES_200N" SITE "A_REFCLKN_L" ; -#LOCATE COMP "SERDES_200P" SITE "A_REFCLKP_L" ; - -#LOCATE COMP "SERDES_125N" SITE "D5" ; -#LOCATE COMP "SFP7_MOD_0" SITE "AE14" ; -#LOCATE COMP "SFP2_MOD_0" SITE "J18" ; -#LOCATE COMP "SFP1_MOD_0" SITE "F20" ; -#LOCATE COMP "SFP4_MOD_0" SITE "D20" ; -#LOCATE COMP "SFP3_MOD_0" SITE "G20" ; -#LOCATE COMP "SFP8_MOD_0" SITE "AK12" ; -#LOCATE COMP "SFP12_MOD_0" SITE "J17" ; -#LOCATE COMP "SFP9_MOD_0" SITE "AM10" ; -#LOCATE COMP "SFP5_MOD_0" SITE "C19" ; -#LOCATE COMP "SFP11_MOD_0" SITE "D18" ; -#LOCATE COMP "SFP6_MOD_0" SITE "E17" ; -#LOCATE COMP "SFP10_MOD_0" SITE "AG14" ; -#LOCATE COMP "SFP12_MOD_1" SITE "L20" ; -#LOCATE COMP "SFP11_MOD_1" SITE "C18" ; -#LOCATE COMP "SFP9_MOD_1" SITE "AM11" ; -#LOCATE COMP "SFP6_MOD_1" SITE "B20" ; -#LOCATE COMP "SFP8_MOD_1" SITE "AH10" ; -#LOCATE COMP "SFP4_MOD_1" SITE "G19" ; -#LOCATE COMP "SFP5_MOD_1" SITE "C20" ; -#LOCATE COMP "SFP3_MOD_1" SITE "H20" ; -#LOCATE COMP "SFP7_MOD_1" SITE "AF14" ; -#LOCATE COMP "SFP1_MOD_1" SITE "E20" ; -#LOCATE COMP "SFP2_MOD_1" SITE "F19" ; -#LOCATE COMP "SFP10_MOD_1" SITE "AL12" ; -#LOCATE COMP "SFP10_MOD_2" SITE "AL13" ; -#LOCATE COMP "SFP5_MOD_2" SITE "E18" ; -#LOCATE COMP "SFP4_MOD_2" SITE "H19" ; -#LOCATE COMP "SFP9_MOD_2" SITE "AG13" ; -#LOCATE COMP "SFP6_MOD_2" SITE "B19" ; -#LOCATE COMP "SFP2_MOD_2" SITE "E19" ; -#LOCATE COMP "SFP7_MOD_2" SITE "AJ12" ; -#LOCATE COMP "SFP3_MOD_2" SITE "D19" ; -#LOCATE COMP "SFP1_MOD_2" SITE "K18" ; -#LOCATE COMP "SFP8_MOD_2" SITE "AH11" ; -#LOCATE COMP "SFP12_MOD_2" SITE "A20" ; -#LOCATE COMP "SFP11_MOD_2" SITE "K17" ; -#IOBUF PORT "SFP7_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP2_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP1_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP4_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP3_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP8_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP12_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP9_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP5_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP11_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP6_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP10_MOD_0" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP12_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP11_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP9_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP6_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP8_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP4_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP5_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP3_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP7_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP1_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP2_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP10_MOD_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP10_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP5_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP4_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP9_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP6_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP2_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP7_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP3_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP1_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP8_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP12_MOD_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "SFP11_MOD_2" IO_TYPE=LVTTL33 ; - -#LOCATE COMP "GBIT_SFP_LOS" SITE "J15" ; -#LOCATE COMP "S2_GBIT_SFP_LOS" SITE "AM22" ; -#LOCATE COMP "S3_GBIT_SFP_LOS" SITE "AL21" ; -#LOCATE COMP "S1_GBIT_SFP_LOS" SITE "AE19" ; - - - -LOCATE COMP "SFP_LOS_1" SITE "A18" ; -LOCATE COMP "SFP_LOS_2" SITE "A15" ; -LOCATE COMP "SFP_LOS_3" SITE "B15" ; -LOCATE COMP "SFP_LOS_4" SITE "G16" ; -LOCATE COMP "SFP_LOS_5" SITE "H16" ; -LOCATE COMP "SFP_LOS_6" SITE "J16" ; -LOCATE COMP "SFP_LOS_7" SITE "L13" ; -LOCATE COMP "SFP_LOS_8" SITE "C14" ; -LOCATE COMP "SFP_LOS_9" SITE "E15" ; -LOCATE COMP "SFP_LOS_10" SITE "G14" ; -LOCATE COMP "SFP_LOS_11" SITE "E14" ; -LOCATE COMP "SFP_LOS_12" SITE "F13" ; -LOCATE COMP "SFP_LOS_13" SITE "J15" ; -LOCATE COMP "SFP_LOS_14" SITE "AE19" ; -LOCATE COMP "SFP_LOS_15" SITE "AM22" ; -LOCATE COMP "SFP_LOS_16" SITE "AL21" ; - -IOBUF PORT "SFP_LOS_1" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_2" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_3" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_4" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_5" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_6" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_7" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_8" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_9" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_10" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_11" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_12" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_13" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_14" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_15" IO_TYPE=LVTTL33 ; -IOBUF PORT "SFP_LOS_16" IO_TYPE=LVTTL33 ; - - -#LOCATE COMP "quad_a/PCSA_INST" SITE "PCS36000" ; -LOCATE COMP "QUAD_GENERATE_0_QUAD/PCSA_INST" SITE "PCS36000" ; -LOCATE COMP "QUAD_GENERATE_1_QUAD/PCSA_INST" SITE "PCS36100" ; -LOCATE COMP "QUAD_GENERATE_2_QUAD/PCSA_INST" SITE "PCS3E100" ; -LOCATE COMP "QUAD_GENERATE_3_QUAD/PCSA_INST" SITE "PCS3E000" ; -#LOCATE COMP "TEST/PCSA_INST" SITE "PCS36000" ; -FREQUENCY NET "ref_pclk_0" 100.000000MHz; -FREQUENCY NET "rx_clk_i_0" 100.000000MHz; -FREQUENCY NET "rx_clk_i_1" 100.000000MHz; -FREQUENCY NET "rx_clk_i_2" 100.000000MHz; -FREQUENCY NET "rx_clk_i_3" 100.000000MHz; -FREQUENCY NET "ref_pclk_1" 100.000000MHz; -FREQUENCY NET "rx_clk_i_4" 100.000000MHz; -FREQUENCY NET "rx_clk_i_5" 100.000000MHz; -FREQUENCY NET "rx_clk_i_6" 100.000000MHz; -FREQUENCY NET "rx_clk_i_7" 100.000000MHz; -FREQUENCY NET "ref_pclk_2" 100.000000MHz; -FREQUENCY NET "rx_clk_i_8" 100.000000MHz; -FREQUENCY NET "rx_clk_i_9" 100.000000MHz; -FREQUENCY NET "rx_clk_i_10" 100.000000MHz; -FREQUENCY NET "rx_clk_i_11" 100.000000MHz; -FREQUENCY NET "ref_pclk_3" 100.000000MHz; -FREQUENCY NET "rx_clk_i_12" 100.000000MHz; -FREQUENCY NET "rx_clk_i_13" 100.000000MHz; -FREQUENCY NET "rx_clk_i_14" 100.000000MHz; -FREQUENCY NET "rx_clk_i_15" 100.000000MHz; - - -FREQUENCY PORT "ref_pclk_1/QUAD_GENERATE_1_QUAD" 100.000000MHz; -FREQUENCY PORT "ref_pclk_2/QUAD_GENERATE_2_QUAD" 100.000000MHz; -FREQUENCY PORT "ref_pclk_3/QUAD_GENERATE_3_QUAD" 100.000000MHz; -FREQUENCY PORT "ref_pclk_0/QUAD_GENERATE_0_QUAD" 100.000000MHz; - -#FREQUENCY PORT "rxa_pclk_a/quad_a" 100.000000MHz; -#FREQUENCY PORT "rx_1_sclk_a/quad_a" 100.000000MHz; -#FREQUENCY PORT "rx_2_sclk_a/quad_a" 100.000000MHz; -#FREQUENCY PORT "rx_3_sclk_a/quad_a" 100.000000MHz; -#LOCATE COMP "SUPPL_RESET" SITE "B18" ; - - - - - - -LOCATE COMP "TX_DIS_1" SITE "G17" ; -LOCATE COMP "TX_DIS_2" SITE "A17" ; -LOCATE COMP "TX_DIS_3" SITE "A16" ; -LOCATE COMP "TX_DIS_4" SITE "B16" ; -LOCATE COMP "TX_DIS_5" SITE "A13" ; -LOCATE COMP "TX_DIS_6" SITE "H15" ; -LOCATE COMP "TX_DIS_7" SITE "D15" ; -LOCATE COMP "TX_DIS_8" SITE "B13" ; -LOCATE COMP "TX_DIS_9" SITE "C13" ; -LOCATE COMP "TX_DIS_10" SITE "D14" ; -LOCATE COMP "TX_DIS_11" SITE "H14" ; -LOCATE COMP "TX_DIS_12" SITE "G13" ; -LOCATE COMP "TX_DIS_13" SITE "E13" ; -LOCATE COMP "TX_DIS_14" SITE "AJ21" ; -LOCATE COMP "TX_DIS_15" SITE "AF19" ; -LOCATE COMP "TX_DIS_16" SITE "AH25" ; - -IOBUF PORT "TX_DIS_1" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_2" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_3" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_4" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_5" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_6" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_7" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_8" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_9" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_10" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_11" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_12" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_13" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_14" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_15" IO_TYPE=LVTTL33 ; -IOBUF PORT "TX_DIS_16" IO_TYPE=LVTTL33 ; - -#LOCATE COMP "TX_FAULT_1" SITE "F17" ; -#LOCATE COMP "TX_FAULT_2" SITE "L17" ; -#LOCATE COMP "TX_FAULT_3" SITE "L16" ; -#LOCATE COMP "TX_FAULT_4" SITE "F16" ; -#LOCATE COMP "TX_FAULT_5" SITE "A14" ; -#LOCATE COMP "TX_FAULT_6" SITE "K16" ; -#LOCATE COMP "TX_FAULT_7" SITE "C15" ; -#LOCATE COMP "TX_FAULT_8" SITE "B14" ; -#LOCATE COMP "TX_FAULT_9" SITE "E16" ; -#LOCATE COMP "TX_FAULT_10" SITE "D13" ; -#LOCATE COMP "TX_FAULT_11" SITE "F14" ; -#LOCATE COMP "TX_FAULT_12" SITE "H13" ; -#IOBUF PORT "TX_FAULT_1" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_2" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_3" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_4" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_5" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_6" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_7" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_8" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_9" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_10" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_11" IO_TYPE=LVTTL33 ; -#IOBUF PORT "TX_FAULT_12" IO_TYPE=LVTTL33 ; - - diff --git a/optical_link/hub.vhd b/optical_link/hub.vhd deleted file mode 100644 index 1dd4586..0000000 --- a/optical_link/hub.vhd +++ /dev/null @@ -1,1027 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library work; -use work.all; -use work.version.all; -use work.trb_net_std.all; -use work.trb_net16_hub_func.all; -use ieee.std_logic_arith.all; --- library sc; --- use sc.components.all; -entity hub is - generic ( - HOW_MANY_CHANNELS : integer range 2 to c_MAX_MII_PER_HUB := 4 - ); - port ( - LVDS_CLK_200P : in std_logic; - --addon connector - ADO_TTL : inout std_logic_vector(46 downto 0); - --diodes - DBAD : out std_logic; - DGOOD : out std_logic; - DINT : out std_logic; - DWAIT : out std_logic; - LOK : out std_logic_vector(16 downto 1); - RT : out std_logic_vector(16 downto 1); - --sfp - TX_DIS : out std_logic_vector(16 downto 1); - IPLL : out std_logic; - OPLL : out std_logic; - --data to/from optical tranceivers - SFP_INP_N : in std_logic_vector(15 downto 0); - SFP_INP_P : in std_logic_vector(15 downto 0); - SFP_OUT_N : out std_logic_vector(15 downto 0); - SFP_OUT_P : out std_logic_vector(15 downto 0); - --sfp - SFP_LOS : in std_logic_vector(16 downto 1); - --tempsens - FS_PE_11 : inout std_logic; - --etrax_interface - FS_PE : inout std_logic_vector(9 downto 8)--sim--; ---sim-- OPT_DATA_IN : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); ---sim-- OPT_DATA_OUT : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); ---sim-- OPT_DATA_VALID_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); ---sim-- OPT_DATA_VALID_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0) - ); -end hub; ---add all sfp connections to measure opt. power temp. sens and if there is SFP - -architecture hub of hub is - - component serdes_fpga_ref_clk - port( - rxrefclk : in std_logic; - refclk : in std_logic; - hdinp_0 : in std_logic; - hdinn_0 : in std_logic; - tclk_0 : in std_logic; - rclk_0 : in std_logic; - tx_rst_0 : in std_logic; - rx_rst_0 : in std_logic; - txd_0 : in std_logic_vector(15 downto 0); - tx_k_0 : in std_logic_vector(1 downto 0); - tx_force_disp_0 : in std_logic_vector(1 downto 0); - tx_disp_sel_0 : in std_logic_vector(1 downto 0); - tx_crc_init_0 : in std_logic_vector(1 downto 0); - word_align_en_0 : in std_logic; - mca_align_en_0 : in std_logic; - felb_0 : in std_logic; - lsm_en_0 : in std_logic; - hdinp_1 : in std_logic; - hdinn_1 : in std_logic; - tclk_1 : in std_logic; - rclk_1 : in std_logic; - tx_rst_1 : in std_logic; - rx_rst_1 : in std_logic; - txd_1 : in std_logic_vector(15 downto 0); - tx_k_1 : in std_logic_vector(1 downto 0); - tx_force_disp_1 : in std_logic_vector(1 downto 0); - tx_disp_sel_1 : in std_logic_vector(1 downto 0); - tx_crc_init_1 : in std_logic_vector(1 downto 0); - word_align_en_1 : in std_logic; - mca_align_en_1 : in std_logic; - felb_1 : in std_logic; - lsm_en_1 : in std_logic; - hdinp_2 : in std_logic; - hdinn_2 : in std_logic; - tclk_2 : in std_logic; - rclk_2 : in std_logic; - tx_rst_2 : in std_logic; - rx_rst_2 : in std_logic; - txd_2 : in std_logic_vector(15 downto 0); - tx_k_2 : in std_logic_vector(1 downto 0); - tx_force_disp_2 : in std_logic_vector(1 downto 0); - tx_disp_sel_2 : in std_logic_vector(1 downto 0); - tx_crc_init_2 : in std_logic_vector(1 downto 0); - word_align_en_2 : in std_logic; - mca_align_en_2 : in std_logic; - felb_2 : in std_logic; - lsm_en_2 : in std_logic; - hdinp_3 : in std_logic; - hdinn_3 : in std_logic; - tclk_3 : in std_logic; - rclk_3 : in std_logic; - tx_rst_3 : in std_logic; - rx_rst_3 : in std_logic; - txd_3 : in std_logic_vector(15 downto 0); - tx_k_3 : in std_logic_vector(1 downto 0); - tx_force_disp_3 : in std_logic_vector(1 downto 0); - tx_disp_sel_3 : in std_logic_vector(1 downto 0); - tx_crc_init_3 : in std_logic_vector(1 downto 0); - word_align_en_3 : in std_logic; - mca_align_en_3 : in std_logic; - felb_3 : in std_logic; - lsm_en_3 : in std_logic; - mca_resync_01 : in std_logic; - mca_resync_23 : in std_logic; - quad_rst : in std_logic; - serdes_rst : in std_logic; - rxa_pclk : out std_logic; - rxb_pclk : out std_logic; - hdoutp_0 : out std_logic; - hdoutn_0 : out std_logic; - ref_0_sclk : out std_logic; - rx_0_sclk : out std_logic; - rxd_0 : out std_logic_vector(15 downto 0); - rx_k_0 : out std_logic_vector(1 downto 0); - rx_disp_err_detect_0 : out std_logic_vector(1 downto 0); - rx_cv_detect_0 : out std_logic_vector(1 downto 0); - rx_crc_eop_0 : out std_logic_vector(1 downto 0); - lsm_status_0 : out std_logic; - hdoutp_1 : out std_logic; - hdoutn_1 : out std_logic; - ref_1_sclk : out std_logic; - rx_1_sclk : out std_logic; - rxd_1 : out std_logic_vector(15 downto 0); - rx_k_1 : out std_logic_vector(1 downto 0); - rx_disp_err_detect_1 : out std_logic_vector(1 downto 0); - rx_cv_detect_1 : out std_logic_vector(1 downto 0); - rx_crc_eop_1 : out std_logic_vector(1 downto 0); - lsm_status_1 : out std_logic; - hdoutp_2 : out std_logic; - hdoutn_2 : out std_logic; - ref_2_sclk : out std_logic; - rx_2_sclk : out std_logic; - rxd_2 : out std_logic_vector(15 downto 0); - rx_k_2 : out std_logic_vector(1 downto 0); - rx_disp_err_detect_2 : out std_logic_vector(1 downto 0); - rx_cv_detect_2 : out std_logic_vector(1 downto 0); - rx_crc_eop_2 : out std_logic_vector(1 downto 0); - lsm_status_2 : out std_logic; - hdoutp_3 : out std_logic; - hdoutn_3 : out std_logic; - ref_3_sclk : out std_logic; - rx_3_sclk : out std_logic; - rxd_3 : out std_logic_vector(15 downto 0); - rx_k_3 : out std_logic_vector(1 downto 0); - rx_disp_err_detect_3 : out std_logic_vector(1 downto 0); - rx_cv_detect_3 : out std_logic_vector(1 downto 0); - rx_crc_eop_3 : out std_logic_vector(1 downto 0); - lsm_status_3 : out std_logic; - mca_aligned_01 : out std_logic; - mca_inskew_01 : out std_logic; - mca_outskew_01 : out std_logic; - mca_aligned_23 : out std_logic; - mca_inskew_23 : out std_logic; - mca_outskew_23 : out std_logic; - ref_pclk : out std_logic - ); - end component; - - component up_down_counter - generic ( - NUMBER_OF_BITS : positive); - port ( - CLK : in std_logic; - RESET : in std_logic; - COUNT_OUT : out std_logic_vector(NUMBER_OF_BITS-1 downto 0); - UP_IN : in std_logic; - DOWN_IN : in std_logic); - end component; - - component flexi_PCS_synch - generic ( - HOW_MANY_CHANNELS : positive; - SYSTEM : positive ); - port ( - RESET : in std_logic; - SYSTEM_CLK : in std_logic; - TX_CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)-1 downto 0); - RX_CLK : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - RXD : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - RX_K : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - RX_RST : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - CV : in std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - TXD : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - TX_K : out std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - MEDIA_STATUS : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MEDIA_CONTROL : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_DATAREADY_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_DATA_IN : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_READ_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_DATA_OUT : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_DATAREADY_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_READ_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT : out std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - MED_STAT_OP : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - MED_CTRL_OP : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - LINK_DEBUG : out std_logic_vector(HOW_MANY_CHANNELS*32-1 downto 0) - ); - end component; - - component trb_net16_hub_base is - generic ( - --don't change - --hub control - HUB_CTRL_CHANNELNUM : integer range 0 to 3 := c_SLOW_CTRL_CHANNEL; - HUB_CTRL_DEPTH : integer range 0 to 6 := c_FIFO_BRAM; - HUB_USED_CHANNELS : hub_channel_config_t := (c_YES,c_YES,c_NO,c_YES); - USE_CHECKSUM : hub_channel_config_t := (c_NO,c_YES,c_YES,c_YES); - USE_VENDOR_CORES : integer range 0 to 1 := c_YES; - IBUF_SECURE_MODE : integer range 0 to 1 := c_NO; - INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F004"; - INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := (others => '0'); - COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000"; - COMPILE_VERSION : std_logic_vector(15 downto 0) := x"0001"; - HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678"; - --media interfaces - MII_NUMBER : integer range 2 to c_MAX_MII_PER_HUB := 3; - MII_IBUF_DEPTH : hub_iobuf_config_t := std_HUB_IBUF_DEPTH; - -- settings for external api connections - INT_NUMBER : integer range 0 to c_MAX_API_PER_HUB := 0; - INT_CHANNELS : hub_api_config_t := (3,3,3,3,3,3,3,3); - INT_IBUF_DEPTH : hub_api_config_t := (6,6,6,6,6,6,6,6) - ); - port ( - CLK : in std_logic; - RESET : in std_logic; - CLK_EN : in std_logic; - - --Media interfacces - MED_DATAREADY_OUT : out std_logic_vector (MII_NUMBER-1 downto 0); - MED_DATA_OUT : out std_logic_vector (MII_NUMBER*c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_OUT: out std_logic_vector (MII_NUMBER*c_NUM_WIDTH-1 downto 0); - MED_READ_IN : in std_logic_vector (MII_NUMBER-1 downto 0); - MED_DATAREADY_IN : in std_logic_vector (MII_NUMBER-1 downto 0); - MED_DATA_IN : in std_logic_vector (MII_NUMBER*c_DATA_WIDTH-1 downto 0); - MED_PACKET_NUM_IN : in std_logic_vector (MII_NUMBER*c_NUM_WIDTH-1 downto 0); - MED_READ_OUT : out std_logic_vector (MII_NUMBER-1 downto 0); - MED_STAT_OP : in std_logic_vector (MII_NUMBER*16-1 downto 0); - MED_CTRL_OP : out std_logic_vector (MII_NUMBER*16-1 downto 0); - --INT: interfaces to connect APIs - INT_INIT_DATAREADY_OUT : out std_logic_vector (INT_NUMBER downto 0); - INT_INIT_DATA_OUT : out std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0); - INT_INIT_PACKET_NUM_OUT : out std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0); - INT_INIT_READ_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0'); - INT_INIT_DATAREADY_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0'); - INT_INIT_DATA_IN : in std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0) := (others => '0'); - INT_INIT_PACKET_NUM_IN : in std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0) := (others => '0'); - INT_INIT_READ_OUT : out std_logic_vector (INT_NUMBER downto 0); - INT_REPLY_DATAREADY_OUT : out std_logic_vector (INT_NUMBER downto 0); - INT_REPLY_DATA_OUT : out std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0); - INT_REPLY_PACKET_NUM_OUT : out std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0); - INT_REPLY_READ_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0'); - INT_REPLY_DATAREADY_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0'); - INT_REPLY_DATA_IN : in std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0) := (others => '0'); - INT_REPLY_PACKET_NUM_IN : in std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0) := (others => '0'); - INT_REPLY_READ_OUT : out std_logic_vector (INT_NUMBER downto 0); - ONEWIRE : inout std_logic; - --Fixed status and control ports - HUB_STAT_CHANNEL : out std_logic_vector (2**(c_MUX_WIDTH-1)*16-1 downto 0); - HUB_STAT_GEN : out std_logic_vector (31 downto 0); - MPLEX_CTRL : in std_logic_vector (MII_NUMBER*32-1 downto 0); - MPLEX_STAT : out std_logic_vector (MII_NUMBER*32-1 downto 0); - STAT_COMMON_STAT_REGS : out std_logic_vector (std_COMSTATREG*32-1 downto 0); --Status of common STAT regs - STAT_COMMON_CTRL_REGS : out std_logic_vector (std_COMCTRLREG*32-1 downto 0); --Status of common STAT regs - STAT_REGS : out std_logic_vector (8*32-1 downto 0); --Status of custom STAT regs - STAT_CTRL_REGS : out std_logic_vector (8*32-1 downto 0); --Status of custom CTRL regs - --Additional access to registers - REGIO_EXT_REG_DATA_IN : in std_logic_vector(31 downto 0); - REGIO_EXT_REG_DATA_OUT: out std_logic_vector(31 downto 0); - REGIO_EXT_REG_WRITE_IN: in std_logic; - REGIO_EXT_REG_ADDR_IN : in std_logic_vector(7 downto 0); - - --Debugging registers - STAT_DEBUG : out std_logic_vector (31 downto 0); --free status regs for debugging - CTRL_DEBUG : in std_logic_vector (31 downto 0) --free control regs for debugging - ); - end component; - - component edge_to_pulse - port ( - clock : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); - end component; - - component etrax_interfacev2 - generic ( - RW_SYSTEM : positive); - port ( - CLK : in std_logic; - RESET : in std_logic; - DATA_BUS : in std_logic_vector(31 downto 0); - ETRAX_DATA_BUS_B : inout std_logic_vector(16 downto 0); - ETRAX_DATA_BUS_B_17 : in std_logic; - ETRAX_DATA_BUS_C : inout std_logic_vector(17 downto 0); - ETRAX_DATA_BUS_E : inout std_logic_vector(10 downto 9); - DATA_VALID : in std_logic; - ETRAX_BUS_BUSY : in std_logic; - ETRAX_IS_READY_TO_READ : out std_logic; - TDC_TCK : out std_logic; - TDC_TDI : out std_logic; - TDC_TMS : out std_logic; - TDC_TRST : out std_logic; - TDC_TDO : in std_logic; - TDC_RESET : out std_logic; - EXTERNAL_ADDRESS : out std_logic_vector(31 downto 0); - EXTERNAL_DATA_OUT : out std_logic_vector(31 downto 0); - EXTERNAL_DATA_IN : in std_logic_vector(31 downto 0); - EXTERNAL_ACK : out std_logic; - EXTERNAL_VALID : in std_logic; - EXTERNAL_MODE : out std_logic_vector(15 downto 0); - FPGA_REGISTER_00 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_01 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_02 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_03 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_04 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_05 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_06 : out std_logic_vector(31 downto 0); - FPGA_REGISTER_07 : out std_logic_vector(31 downto 0); - FPGA_REGISTER_08 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_09 : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0A : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0B : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0C : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0D : in std_logic_vector(31 downto 0); - FPGA_REGISTER_0E : out std_logic_vector(31 downto 0); --- EXTERNAL_RESET : out std_logic; - LVL2_VALID : in std_logic); - end component; - - component simple_hub - generic ( - HOW_MANY_CHANNELS : positive); - port ( - CLK : in std_logic; - RESET : in std_logic; - DATA_IN : in std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - DATA_OUT : out std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - DATA_IN_VALID : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - SEND_DATA : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - ENABLE_CHANNELS : in std_logic_vector(15 downto 0); - READ_DATA : out std_logic_vector(HOW_MANY_CHANNELS -1 downto 0); - HUB_DEBUG : out std_logic_vector(31 downto 0) - ); - end component; - - --- constant HOW_MANY_CHANNELS : integer := 16; - ----------------------------------------------------------------------------- - -- FLEXI_PCS - ----------------------------------------------------------------------------- - signal ref_pclk : std_logic_vector((HOW_MANY_CHANNELS+3)/4 -1 downto 0); - signal rxd_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - signal rxd_synch_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - signal rx_k_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal rx_rst_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - signal cv_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal txd_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - signal txd_synch_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*64-1 downto 0); - signal tx_k_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal rxb_pclk_a : std_logic_vector((HOW_MANY_CHANNELS+3)/4 -1 downto 0); - signal rx_clk_i : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - signal link_debug_i : std_logic_vector(HOW_MANY_CHANNELS*32-1 downto 0); - signal word_align_en : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - ----------------------------------------------------------------------------- - -- hub trb interface - ----------------------------------------------------------------------------- - signal hub_register_00_i : std_logic_vector(31 downto 0); - signal hub_register_01_i : std_logic_vector(31 downto 0); - signal hub_register_02_i : std_logic_vector(31 downto 0); - signal hub_register_03_i : std_logic_vector(31 downto 0); - signal hub_register_04_i : std_logic_vector(31 downto 0); - signal hub_register_05_i : std_logic_vector(31 downto 0); - signal hub_register_06_i : std_logic_vector(31 downto 0); - signal hub_register_07_i : std_logic_vector(31 downto 0); - signal hub_register_08_i : std_logic_vector(31 downto 0); - signal hub_register_09_i : std_logic_vector(31 downto 0); - signal hub_register_0a_i : std_logic_vector(31 downto 0); - signal hub_register_0b_i : std_logic_vector(31 downto 0); - signal hub_register_0c_i : std_logic_vector(31 downto 0); - signal hub_register_0d_i : std_logic_vector(31 downto 0); - signal hub_register_0e_i : std_logic_vector(31 downto 0); - signal hub_register_0f_i : std_logic_vector(31 downto 0); - signal hub_register_10_i : std_logic_vector(31 downto 0); - signal hub_register_11_i : std_logic_vector(31 downto 0); - signal hub_register_12_i : std_logic_vector(31 downto 0); - signal hub_register_13_i : std_logic_vector(31 downto 0); - signal hub_register_14_i : std_logic_vector(31 downto 0); - signal hub_register_15_i : std_logic_vector(31 downto 0); - signal hub_register_16_i : std_logic_vector(31 downto 0); - signal ADO_TTL_12 : std_logic; - ----------------------------------------------------------------------------- - -- flexi_PCS to hub interface - ----------------------------------------------------------------------------- - signal med_dataready_in_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal med_dataready_in_i_test : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - --test - signal data_valid_in_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal med_dataready_out_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal med_read_in_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal med_read_out_i : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal med_data_out_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - signal med_data_out_i_test : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - - signal med_data_in_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - signal med_packet_num_out_i : std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - signal med_packet_num_in_i : std_logic_vector(HOW_MANY_CHANNELS*c_NUM_WIDTH-1 downto 0); - signal med_error_out_i : std_logic_vector(HOW_MANY_CHANNELS*3-1 downto 0); - signal med_stat_op_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - signal med_ctrl_op_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - signal hub_stat_channel_i : std_logic_vector(2**(c_MUX_WIDTH-1)*16-1 downto 0); - signal hub_stat_gen_i : std_logic_vector(31 downto 0); - - ----------------------------------------------------------------------------- - -- other - ----------------------------------------------------------------------------- - signal hub_register_0e_and_0d : std_logic_vector(15 downto 0) := x"0006"; - signal cv_counter : std_logic_vector(31 downto 0); - signal cv_countera : std_logic_vector(31 downto 0); - signal serdes_ref_clk : std_logic; - signal serdes_ref_lock : std_logic; - signal serdes_ref_clks : std_logic; - signal med_packet_num_in_s : std_logic_vector(HOW_MANY_CHANNELS*2 -1 downto 0); - signal mplex_ctrl_i : std_logic_vector (HOW_MANY_CHANNELS*32-1 downto 0); - signal word_counter_for_api_00 : std_logic_vector(1 downto 0); - signal word_counter_for_api_01 : std_logic_vector(1 downto 0); - signal global_reset_i : std_logic; - signal global_reset_cnt : std_logic_vector(3 downto 0):=x"0"; - signal registered_signals : std_logic_vector(7 downto 0); - signal hub_register_0a_i_synch : std_logic_vector(7 downto 0); - signal hub_register_0e_and_0d_synch : std_logic_vector(15 downto 0); - signal test_signal : std_logic_vector(1 downto 0); - signal pulse_test : std_logic; - signal saved_lvl1_ready : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0):=(others => '0'); - signal saved_lvl2_ready : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0):=(others => '0'); - signal all_lvl1_ready : std_logic; - signal all_lvl2_ready : std_logic; - signal flexi_pcs_ref_clk : std_logic; - signal lok_i : std_logic_vector(16 downto 1); - signal not_used_lok : std_logic_vector(15 downto 0); - signal used_channels_locked : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal channels_locked : std_logic_vector(16 downto 1); - signal switch_rx_clk : std_logic; - signal lock_pattern : std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - signal all_lvl1_ready_delay1 : std_logic; - signal all_lvl1_ready_delay2 : std_logic; - signal all_lvl2_ready_delay1 : std_logic; - signal all_lvl2_ready_delay2 : std_logic; - signal media_status_i : std_logic_vector(HOW_MANY_CHANNELS*16-1 downto 0); - -- etrax interface --- signal external_address_i : std_logic_vector(31 downto 0); --- signal external_data_out_i : std_logic_vector(31 downto 0); --- signal external_data_in_i : std_logic_vector(31 downto 0); --- signal external_ack_i : std_logic; --- signal external_valid_i : std_logic; --- signal external_mode_i : std_logic_vector(7 downto 0); --- signal data_valid_i : std_logic; - signal debug_register_00_i : std_logic_vector(7 downto 0); - signal test2 : std_logic_vector(1 downto 0); - signal med_read_counter : std_logic_vector(3 downto 0); - -- simulation - signal rx_k_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal tx_k_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal cv_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*8-1 downto 0); - signal rx_clk_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)*4-1 downto 0); - signal ref_pclk_sim : std_logic_vector(((HOW_MANY_CHANNELS+3)/4)-1 downto 0); - constant trb_net_enable : integer := 1; - --etrax interface - signal external_address_i : std_logic_vector(31 downto 0); - signal external_data_out_i : std_logic_vector(31 downto 0); - signal external_data_in_i : std_logic_vector(31 downto 0); - signal external_ack_i : std_logic; - signal external_valid_i : std_logic; - signal external_mode_i : std_logic_vector(15 downto 0); - signal fpga_register_00_i : std_logic_vector(31 downto 0); - signal fpga_register_01_i : std_logic_vector(31 downto 0); - signal fpga_register_02_i : std_logic_vector(31 downto 0); - signal fpga_register_03_i : std_logic_vector(31 downto 0); - signal fpga_register_04_i : std_logic_vector(31 downto 0); - signal fpga_register_05_i : std_logic_vector(31 downto 0); - signal fpga_register_06_i : std_logic_vector(31 downto 0):=x"00000003"; - signal fpga_register_07_i : std_logic_vector(31 downto 0); - signal fpga_register_08_i : std_logic_vector(31 downto 0); - signal fpga_register_09_i : std_logic_vector(31 downto 0); - signal fpga_register_0a_i : std_logic_vector(31 downto 0); - signal fpga_register_0b_i : std_logic_vector(31 downto 0); - signal fpga_register_0c_i : std_logic_vector(31 downto 0); - signal fpga_register_0d_i : std_logic_vector(31 downto 0); - signal fpga_register_0e_i : std_logic_vector(31 downto 0); - signal free_counter : std_logic_vector(16 downto 0); - --simple hub - signal hub_debug_i : std_logic_vector(31 downto 0); - - --test - constant OPT_TEST_MODE : integer := 0; - - --trbnet - signal hub_stat_debug_i : std_logic_vector(63 downto 0); - signal hub_ctrl_debug_i : std_logic_vector(63 downto 0); - signal sfp_los_synch : std_logic_vector(16 downto 1); - signal wait_counter : std_logic_vector(31 downto 0); - signal wait_counter_up : std_logic; -begin - - GLOBAL_RESET: process(LVDS_CLK_200P,global_reset_cnt) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_cnt < x"e" then - global_reset_cnt <= global_reset_cnt + 1; - global_reset_i <= '1'; - elsif global_reset_cnt = x"e" then - global_reset_i <= '0'; - global_reset_cnt <= x"e"; - else - global_reset_i <= '0'; - global_reset_cnt <= global_reset_cnt; - end if; - end if; - end process GLOBAL_RESET; - - QUAD_GENERATE : for bit_index in 0 to ((HOW_MANY_CHANNELS+3)/4-1) generate - begin - QUAD : serdes_fpga_ref_clk - port map ( - rxrefclk => LVDS_CLK_200P,--flexi_pcs_ref_clk,--LVDS_CLK_200P,--serdes_ref_clk,--LVDS_CLK_200P, - refclk => LVDS_CLK_200P,--serdes_ref_clk,--LVDS_CLK_200P, - hdinp_0 => SFP_INP_P(bit_index*4+0), - hdinn_0 => SFP_INP_N(bit_index*4+0), - tclk_0 => ref_pclk(bit_index), - rclk_0 => rx_clk_i(0+bit_index*4), - tx_rst_0 => '0', - rx_rst_0 => rx_rst_i(0+bit_index*4),--hub_register_0a_i(0), - txd_0 => txd_synch_i(15+bit_index*64 downto 0+bit_index*64),--hub_register_0e_and_0d,--txd_synch_i(15+bit_index*64 downto 0+bit_index*64),--hub_register_0e_and_0d_synch,--txd_synch_i(15+bit_index*64 downto 0+bit_index*64),--hub_register_0e_and_0d_synch,--txd_synch_i(15+bit_index*64 downto 0+bit_index*64),--hub_register_0e_and_0d_synch,-- - tx_k_0 => tx_k_i(1+bit_index*8 downto 0+bit_index*8),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--"10",--"10",--hub_register_0a_i_synch(1 downto 0),--"10", - tx_force_disp_0 => "00",--hub_register_0a_i(3 downto 2),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--hub_register_0a_i_synch(3 downto 2),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--hub_register_0a_i_synch(3 downto 2),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--hub_register_0a_i_synch(3 downto 2),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8), - tx_disp_sel_0 => "00",--hub_register_0a_i(5 downto 4), --"00",--hub_register_0a_i_synch(5 downto 4),--"00", - tx_crc_init_0 => "00", - word_align_en_0 => '1',--word_align_en(0+bit_index*4),--'1', - mca_align_en_0 => '0', - felb_0 => '0', - lsm_en_0 => '0', - hdinp_1 => SFP_INP_P(bit_index*4+1), - hdinn_1 => SFP_INP_N(bit_index*4+1), - tclk_1 => ref_pclk(bit_index), - rclk_1 => rx_clk_i(1+bit_index*4), - tx_rst_1 => '0', - rx_rst_1 => rx_rst_i(1+bit_index*4), - txd_1 => txd_synch_i(31+bit_index*64 downto 16+bit_index*64), - tx_k_1 => tx_k_i(3+bit_index*8 downto 2+bit_index*8),--tx_force_disp_i(bit_index*8+1 downto 0+bit_index*8),--"10",--"10",--hub_register_0a_i_synch(1 downto 0),--"10", - tx_force_disp_1 => "00",--tx_k_i(3+bit_index*8 downto 2+bit_index*8), - tx_disp_sel_1 => "00", - tx_crc_init_1 => "00", - word_align_en_1 => '1',--word_align_en(1+bit_index*4),--'1',-- - mca_align_en_1 => '0', - felb_1 => '0', - lsm_en_1 => '0', - hdinp_2 => SFP_INP_P(bit_index*4+2), - hdinn_2 => SFP_INP_N(bit_index*4+2), - tclk_2 => ref_pclk(bit_index), - rclk_2 => rx_clk_i(2+bit_index*4), - tx_rst_2 => '0', - rx_rst_2 => rx_rst_i(2+bit_index*4), - txd_2 => txd_synch_i(47+bit_index*64 downto 32+bit_index*64), - tx_k_2 => tx_k_i(5+bit_index*8 downto 4+bit_index*8),--"10", - tx_force_disp_2 => "00",-- - tx_disp_sel_2 => "00", - tx_crc_init_2 => "00", - word_align_en_2 => '1',--word_align_en(2+bit_index*4),--'1', - mca_align_en_2 => '0', - felb_2 => '0', - lsm_en_2 => '0', - hdinp_3 => SFP_INP_P(bit_index*4+3), - hdinn_3 => SFP_INP_N(bit_index*4+3), - tclk_3 => ref_pclk(bit_index), - rclk_3 => rx_clk_i(3+bit_index*4), - tx_rst_3 => '0', - rx_rst_3 => rx_rst_i(3+bit_index*4), - txd_3 => txd_synch_i(63+bit_index*64 downto 48+bit_index*64), - tx_k_3 => tx_k_i(7+bit_index*8 downto 6+bit_index*8),--"10", - tx_force_disp_3 => "00", - tx_disp_sel_3 => "00", - tx_crc_init_3 => "00", - word_align_en_3 => '1',--word_align_en(3+bit_index*4),--'1', - mca_align_en_3 => '0', - felb_3 => '0', - lsm_en_3 => '0', - mca_resync_01 => '0', - mca_resync_23 => '0', - quad_rst => '0', - serdes_rst => '0', - rxa_pclk => rx_clk_i(0+bit_index*4), - rxb_pclk => rxb_pclk_a(bit_index), - hdoutp_0 => SFP_OUT_P(bit_index*4+0), - hdoutn_0 => SFP_OUT_N(bit_index*4+0), - ref_0_sclk => open, - rx_0_sclk => open, - rxd_0 => rxd_i(15+bit_index*64 downto 0+bit_index*64), - rx_k_0 => rx_k_i(1+bit_index*8 downto 0+bit_index*8), - rx_disp_err_detect_0 => open, --rx_disp_err_detect_0_a, - rx_cv_detect_0 => cv_i(1+bit_index*8 downto 0+bit_index*8), - rx_crc_eop_0 => open, - lsm_status_0 => open, - hdoutp_1 => SFP_OUT_P(bit_index*4+1), - hdoutn_1 => SFP_OUT_N(bit_index*4+1), - ref_1_sclk => open, - rx_1_sclk => rx_clk_i(1+bit_index*4), - rxd_1 => rxd_i(31+bit_index*64 downto 16+bit_index*64), - rx_k_1 => rx_k_i(3+bit_index*8 downto 2+bit_index*8), - rx_disp_err_detect_1 => open, --rx_disp_err_detect_1_a, - rx_cv_detect_1 => cv_i(3+bit_index*8 downto 2+bit_index*8), - rx_crc_eop_1 => open, - lsm_status_1 => open, - hdoutp_2 => SFP_OUT_P(bit_index*4+2), - hdoutn_2 => SFP_OUT_N(bit_index*4+2), - ref_2_sclk => open, - rx_2_sclk => rx_clk_i(2+bit_index*4), - rxd_2 => rxd_i(47+bit_index*64 downto 32+bit_index*64), - rx_k_2 => rx_k_i(5+bit_index*8 downto 4+bit_index*8), - rx_disp_err_detect_2 => open, --rx_disp_err_detect_2_a, - rx_cv_detect_2 => cv_i(5+bit_index*8 downto 4+bit_index*8), - rx_crc_eop_2 => open, - lsm_status_2 => open, - hdoutp_3 => SFP_OUT_P(bit_index*4+3), - hdoutn_3 => SFP_OUT_N(bit_index*4+3), - ref_3_sclk => open, - rx_3_sclk => rx_clk_i(3+bit_index*4), - rxd_3 => rxd_i(63+bit_index*64 downto 48+bit_index*64), - rx_k_3 => rx_k_i(7+bit_index*8 downto 6+bit_index*8), - rx_disp_err_detect_3 => open, --rx_disp_err_detect_3_a, - rx_cv_detect_3 => cv_i(7+bit_index*8 downto 6+bit_index*8), - rx_crc_eop_3 => open, - lsm_status_3 => open, - mca_aligned_01 => open, --mca_aligned_01_i, - mca_inskew_01 => open, --mca_inskew_01_i, - mca_outskew_01 => open, --mca_outskew_01_i, - mca_aligned_23 => open, --mca_aligned_23_i, - mca_inskew_23 => open, --mca_inskew_23_i, - mca_outskew_23 => open, --mca_outskew_23_i, - ref_pclk => ref_pclk(bit_index) - ); - end generate QUAD_GENERATE; - -- word_align_en <= not rx_rst_i; ---sim-- SIMULATION_CONNECTION: for i in 0 to HOW_MANY_CHANNELS-1 generate ---sim-- rx_k_sim(i*2) <= not OPT_DATA_VALID_IN(i); ---sim-- rx_k_sim(i*2+1) <= '0'; ---sim-- OPT_DATA_VALID_OUT(i) <= not tx_k_sim(i*2); ---sim-- rx_clk_sim <= (others => LVDS_CLK_200P); ---sim-- ref_pclk_sim <= (others => LVDS_CLK_200P); ---sim-- cv_sim <= (others => '0'); ---sim-- end generate SIMULATION_CONNECTION; - FLEXI_PCS_INT : flexi_PCS_synch - generic map ( - HOW_MANY_CHANNELS => HOW_MANY_CHANNELS, - SYSTEM => 1) - port map ( - RESET => global_reset_i, - SYSTEM_CLK => LVDS_CLK_200P, - TX_CLK => ref_pclk, --no_sim-- ---sim-- TX_CLK => ref_pclk_sim, - RX_CLK => rx_clk_i, --no_sim-- ---sim-- RX_CLK => rx_clk_sim, - RXD => rxd_i, --no_sim-- ---sim-- RXD => OPT_DATA_IN, - RX_K => rx_k_i, --no_sim-- ---sim-- RX_K => rx_k_sim, - RX_RST => rx_rst_i, - CV => cv_i, --no_sim-- ---sim-- CV => cv_sim, - TXD => txd_synch_i, --no_sim-- ---sim-- TXD => OPT_DATA_OUT, - TX_K => tx_k_i, --no_sim-- ---sim-- TX_K => tx_k_sim, - MEDIA_STATUS => media_status_i, - MEDIA_CONTROL => open, - MED_DATAREADY_IN => med_dataready_in_i, - MED_DATA_IN => med_data_in_i, - MED_READ_OUT => med_read_out_i, - MED_DATA_OUT => med_data_out_i, - MED_DATAREADY_OUT => med_dataready_out_i, - MED_READ_IN => med_read_in_i, - MED_PACKET_NUM_IN => med_packet_num_in_i, - MED_PACKET_NUM_OUT => med_packet_num_out_i, - MED_STAT_OP => med_stat_op_i, - MED_CTRL_OP => med_ctrl_op_i, - LINK_DEBUG => link_debug_i - ); - - ADO_TTL(15 downto 0) <= link_debug_i(7 downto 4) & med_dataready_out_i(0) & med_packet_num_out_i(2 downto 0) & med_data_out_i(7 downto 0);--link_debug_i(15 downto 0); - ADO_TTL(34 downto 19) <= link_debug_i(23 downto 22) & LVDS_CLK_200P & med_read_out_i(0) & med_dataready_in_i(0) & med_packet_num_in_i(2 downto 0) & med_data_in_i(7 downto 0);--link_debug_i(31 downto 16); - - - SIMPLE_HUB_GEN : if trb_net_enable = 0 and OPT_TEST_MODE = 0 generate - - SIMPLE_HUB_INST : simple_hub - generic map ( - HOW_MANY_CHANNELS => HOW_MANY_CHANNELS) - port map ( - CLK => LVDS_CLK_200P, - RESET => global_reset_i, - DATA_IN => med_data_out_i, --- DATA_IN => med_data_out_i_test, - DATA_OUT => med_data_in_i, - DATA_IN_VALID => med_dataready_out_i, - SEND_DATA => med_dataready_in_i, --- SEND_DATA => med_dataready_in_i_test, - ENABLE_CHANNELS => fpga_register_06_i(15 downto 0), - READ_DATA => med_read_in_i, - HUB_DEBUG => hub_debug_i - ); - - end generate SIMPLE_HUB_GEN; - - FREE_COUNTER_INST: up_down_counter - generic map ( - NUMBER_OF_BITS => 17) - port map ( - CLK => LVDS_CLK_200P, - RESET => '0', - COUNT_OUT => free_counter, - UP_IN => '1', - DOWN_IN => '0'); - - WAIT_COUNTER_INST: up_down_counter - generic map ( - NUMBER_OF_BITS => 32) - port map ( - CLK => LVDS_CLK_200P, - RESET => '0', - COUNT_OUT => wait_counter, - UP_IN => wait_counter_up, - DOWN_IN => '0'); - - wait_counter_up <= '1' when wait_counter(31) = '0' else '0'; - - ENABLE_OPT_TEST : if OPT_TEST_MODE = 1 generate - - SEND_COUNTER: process (LVDS_CLK_200P, global_reset_i) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' then - med_dataready_in_i <= (others => '0'); - med_data_in_i <= (others => '0'); --- elsif med_stat_op_i(9)='1' or med_stat_op_i(24)='1' or med_stat_op_i(40)='1' or med_stat_op_i(56)='1' then - -- elsif link_debug_i(3 downto 0) = x"a" and link_debug_i(35 downto 32) > 10 then - elsif wait_counter(31) = '1' then - - med_dataready_in_i <= free_counter(16) & free_counter(16) &free_counter(16) &free_counter(16); - med_data_in_i <= free_counter(15 downto 0) & free_counter(15 downto 0) & free_counter(15 downto 0) & free_counter(15 downto 0); - else - med_dataready_in_i <= (others => '0'); - med_data_in_i <= (others => '0'); - end if; - end if; - end process SEND_COUNTER; - med_read_in_i <= (others => '1'); --- med_data_in_i <= med_data_out_i; --- med_dataready_in_i <= med_dataready_out_i; - end generate ENABLE_OPT_TEST; - - ENABLE_TRB_NET: if trb_net_enable = 1 generate - - HUB_API: trb_net16_hub_base - generic map( - MII_NUMBER => HOW_MANY_CHANNELS - ) - port map ( - CLK => LVDS_CLK_200P, - RESET => global_reset_i, - CLK_EN => '1', - MED_DATAREADY_OUT => med_dataready_in_i, - MED_DATA_OUT => med_data_in_i, - MED_PACKET_NUM_OUT => med_packet_num_in_i, - MED_READ_IN => med_read_out_i, - MED_DATAREADY_IN => med_dataready_out_i, - MED_DATA_IN => med_data_out_i, - MED_PACKET_NUM_IN => med_packet_num_out_i, - MED_READ_OUT => med_read_in_i, - MED_STAT_OP => med_stat_op_i, - MED_CTRL_OP => med_ctrl_op_i, - INT_INIT_DATAREADY_OUT => open, - INT_INIT_DATA_OUT => open, - INT_INIT_PACKET_NUM_OUT => open, - INT_INIT_READ_IN => (others => '1'), - INT_INIT_DATAREADY_IN => (others => '0'), - INT_INIT_DATA_IN => (others => '0'), - INT_INIT_PACKET_NUM_IN => (others => '0'), - INT_INIT_READ_OUT => open, - INT_REPLY_DATAREADY_OUT => open, - INT_REPLY_DATA_OUT => open, - INT_REPLY_PACKET_NUM_OUT => open, - INT_REPLY_READ_IN => (others => '1'), - INT_REPLY_DATAREADY_IN => (others => '0'), - INT_REPLY_DATA_IN => (others => '0'), - INT_REPLY_PACKET_NUM_IN => (others => '0'), - INT_REPLY_READ_OUT => open, - ONEWIRE => FS_PE_11, - HUB_STAT_CHANNEL => hub_stat_channel_i, - HUB_STAT_GEN => hub_stat_gen_i, - MPLEX_CTRL => mplex_ctrl_i, - MPLEX_STAT => open, - REGIO_EXT_REG_DATA_IN => (others => '0'), - REGIO_EXT_REG_DATA_OUT => open, - REGIO_EXT_REG_WRITE_IN => '0', - REGIO_EXT_REG_ADDR_IN => (others => '0'), - STAT_DEBUG => open, - CTRL_DEBUG => (others => '0') - ); - - end generate ENABLE_TRB_NET; - - ETRAX_RW_DATA_INTERFACE : etrax_interfacev2 - generic map ( - RW_SYSTEM => 2) - port map ( - CLK => LVDS_CLK_200P, - RESET => global_reset_i, - DATA_BUS => (others => '0'), - ETRAX_DATA_BUS_B => open,--(others => '0'), - ETRAX_DATA_BUS_B_17 => '0', - ETRAX_DATA_BUS_C => open,--(others => '0'), - ETRAX_DATA_BUS_E => FS_PE(9 downto 8), - DATA_VALID => '0', - ETRAX_BUS_BUSY => '0', - ETRAX_IS_READY_TO_READ => open, - TDC_TCK => open, - TDC_TDI => open, - TDC_TMS => open, - TDC_TRST => open, - TDC_TDO => '0', - TDC_RESET => open, - EXTERNAL_ADDRESS => open, - EXTERNAL_DATA_OUT => open, - EXTERNAL_DATA_IN => x"ddbbccaa",--external_data_in_i, - EXTERNAL_ACK => external_ack_i, - EXTERNAL_VALID => '0',--external_valid_i, - EXTERNAL_MODE => external_mode_i, - FPGA_REGISTER_00 => fpga_register_00_i, - FPGA_REGISTER_01 => fpga_register_01_i, - FPGA_REGISTER_02 => fpga_register_02_i, - FPGA_REGISTER_03 => fpga_register_03_i, - FPGA_REGISTER_04 => fpga_register_04_i, - FPGA_REGISTER_05 => fpga_register_05_i, - FPGA_REGISTER_06 => fpga_register_06_i, - FPGA_REGISTER_07 => fpga_register_07_i, - FPGA_REGISTER_08 => fpga_register_08_i, - FPGA_REGISTER_09 => fpga_register_09_i, - FPGA_REGISTER_0A => fpga_register_0A_i, - FPGA_REGISTER_0B => fpga_register_0B_i, - FPGA_REGISTER_0C => fpga_register_0C_i, - FPGA_REGISTER_0D => fpga_register_0D_i, - FPGA_REGISTER_0E => fpga_register_0E_i, - -- EXTERNAL_RESET => open, - LVL2_VALID => '0'); - fpga_register_00_i <= x"0000"& lok_i; - fpga_register_01_i <= hub_debug_i; - fpga_register_02_i <= link_debug_i(31 downto 0); - fpga_register_03_i <= link_debug_i(63 downto 32); - fpga_register_04_i <= rxd_i(31 downto 0); - fpga_register_0A_i <= rxd_i(63 downto 32); --- fpga_register_02_i <= link_debug_i(95 downto 64); --- fpga_register_03_i <= link_debug_i(127 downto 96); --- fpga_register_04_i <= rxd_i(95 downto 64); --- fpga_register_0A_i <= rxd_i(127 downto 96); - fpga_register_0B_i <= conv_std_logic_vector(VERSION_NUMBER_TIME,32); - fpga_register_0C_i <= link_debug_i(95 downto 64); - fpga_register_0D_i <= link_debug_i(127 downto 96); --- -- fpga_register_08_i <= rxd_i(63 downto 32); --- fpga_register_0a_i(15 downto 0) <= cv_i(7 downto 0) & rx_k_i(3 downto 0) & "0000"; - - - - COUNT_LVL1_START: process (LVDS_CLK_200P, global_reset_i ) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' then - fpga_register_05_i <= (others => '0'); - elsif med_dataready_out_i(0) = '1' and med_data_out_i(15 downto 12) = x"1" then - fpga_register_05_i <= fpga_register_05_i + 1; - end if; - end if; - end process COUNT_LVL1_START; - --- COUNT_LVL1_SEND: process (LVDS_CLK_200P, global_reset_i ) --- begin --- if rising_edge(LVDS_CLK_200P) then --- if global_reset_i = '1' then --- fpga_register_08_i <= (others => '0'); --- elsif med_data_ready_in_i(1) = '1' and med_data_in_i(31 downto 28) = x"1" then --- fpga_register_08_i <= fpga_register_08_i + 1; --- end if; --- end if; --- end process COUNT_LVL1_SEND; - - COUNT_LVL1_SEND_a: process (LVDS_CLK_200P, global_reset_i ) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' then - fpga_register_09_i <= (others => '0'); - elsif med_dataready_in_i(1) = '1' then - fpga_register_09_i <= fpga_register_08_i + 1; - end if; - end if; - end process COUNT_LVL1_SEND_a; - - COUNT_LVL1_END: process (LVDS_CLK_200P, global_reset_i ) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' then - fpga_register_07_i <= (others => '0'); - elsif med_dataready_out_i(1) = '1' and med_data_out_i(31 downto 28) = x"1" then - fpga_register_07_i <= fpga_register_07_i + 1; - end if; - end if; - end process COUNT_LVL1_END; - - TX_DIS_g : for synch_fsm_state in 0 to HOW_MANY_CHANNELS-1 generate - begin - TX_DIS(synch_fsm_state+1) <= '0'; - end generate; - - TX_DIS_g1 : for not_connected in 0 to 16-HOW_MANY_CHANNELS-1 generate - begin - WHEN_NOT_ALL_EN : if HOW_MANY_CHANNELS < 16 generate - TX_DIS(16-not_connected) <= '1'; - end generate WHEN_NOT_ALL_EN; - end generate; - ---------------------------------------------------------------------------- --- setting LED ---------------------------------------------------------------------------- - - --correct this for channels 11-8 - mirrored due to schematics -- also - --adressing of sfps !!! - SYNCH_EXT_SIGNAL: process (LVDS_CLK_200P) - begin - if rising_edge(LVDS_CLK_200P) then - if global_reset_i = '1' then - sfp_los_synch <= (others => '0'); - else - sfp_los_synch <= SFP_LOS; - end if; - end if; - end process SYNCH_EXT_SIGNAL; - LOK_STATUS_DIOD_EN : for synch_fsm_state in 0 to HOW_MANY_CHANNELS-1 generate - begin - -- lok_i(synch_fsm_state+1) <= not link_debug_i(2+synch_fsm_state*31); - lok_i(synch_fsm_state+1) <= med_stat_op_i(9 + synch_fsm_state*16); - media_status_i(synch_fsm_state*16) <= SFP_LOS(synch_fsm_state+1); - end generate LOK_STATUS_DIOD_EN; - --- LOK_STATUS_REGISTER_0 : for synch_fsm_state in 0 to (HOW_MANY_CHANNELS-1 mod 8) generate --- begin --- hub_register_00_i(synch_fsm_state) <= link_debug_i(2+synch_fsm_state*31); --- end generate LOK_STATUS_REGISTER_0; - --- LOK_STATUS_REGISTER_1 : for synch_fsm_state in 0 to (HOW_MANY_CHANNELS-1 - 8) generate --- begin --- hub_register_01_i(synch_fsm_state) <= link_debug_i(2+synch_fsm_state*31+8*16); --- end generate LOK_STATUS_REGISTER_1; - - LOK_STATUS_DIOD_DIS : for not_connected in 0 to 16-HOW_MANY_CHANNELS-1 generate - begin - WHEN_NOT_ALL_EN : if HOW_MANY_CHANNELS < 16 generate - lok_i(16-not_connected) <= '1'; - end generate WHEN_NOT_ALL_EN; - end generate LOK_STATUS_DIOD_DIS; - - LOK <= lok_i; - IPLL <= '0'; - OPLL <= '0'; - DBAD <= '1'; - DGOOD <= '1'; - DINT <= '0'; - DWAIT <= global_reset_i; - - CV_COUNTERaaa: process (LVDS_CLK_200P, global_reset_i) - begin - if rising_edge(LVDS_CLK_200P) then -- rising clock edge - if global_reset_i = '1' then -- asynchronous reset (active low) - cv_counter <= (others => '0'); - else - cv_counter <= cv_counter + 1; - end if; - end if; - end process CV_COUNTERaaa; - CV_COUNTERaab: process (ref_pclk(0), global_reset_i) - begin - if rising_edge(ref_pclk(0)) then -- rising clock edge - if global_reset_i = '1' then -- asynchronous reset (active low) - cv_countera <= (others => '0'); - else - cv_countera <= cv_countera + 1; - end if; - end if; - end process CV_COUNTERaab; --- RT(8) <= cv_counter(23); --- RT(9) <= med_read_in_i(0); --- RT(16 downto 10) <= link_debug_i(7 downto 1); --- RT(2) <= flexi_pcs_ref_clk;--cv_counter(0); --- RT(1) <= not switch_rx_clk;--ref_pclk(0); - --- RT(3) <= LVDS_CLK_200P; - --- RT(4) <= rx_k_i(0); - --- RT(5) <= med_dataready_out_i(0);--serdes_ref_clk; --- RT(6) <= med_data_out_i(0);--serdes_ref_clks; --- RT(7) <= med_data_out_i(1);--serdes_ref_lock; - RT <= (others => '1'); -end hub; - diff --git a/optical_link/hub_1.xcf b/optical_link/hub_1.xcf deleted file mode 100644 index 350e53a..0000000 --- a/optical_link/hub_1.xcf +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - JTAG - - 1 - NA - Generic JTAG Device - JTAG-NOP - All - JTAG-NOP - - 10 - 1111111111 - 1 - 0 - - Bypass - - - - 2 - hub - Lattice - LatticeSCM - LFSCM3GA25E - 0x0a812157 - 1020-ball FFBGA - LFSCM3GA25EP1-XXFF1020 - - 8 - 11111111 - 1 - 0 - - /home/marek/trbnet/optical_link/workdir/hub.bit - /home/marek/.isplever_lin1/ispvmsystem/Database/xpga/sc/lfsc3ga25e.msk - 3/31/2009 22:28:11 - Fast Program - - - - 3 - power - NA - Generic JTAG Device - JTAG-NOP - All - JTAG-NOP - - 4 - 1111 - 1 - 0 - - Bypass - - - - - SEQUENTIAL - ENTIRED CHAIN - No Override - TLR - TLR - - - - TMS LOW; - TCK LOW; - TDI LOW; - TDO LOW; - CableEN HIGH; - - - diff --git a/optical_link/hub_syn.prj b/optical_link/hub_syn.prj deleted file mode 100644 index 10f1458..0000000 --- a/optical_link/hub_syn.prj +++ /dev/null @@ -1,112 +0,0 @@ -#-- Synopsys, Inc. -#-- Version 9.6L2 -#-- Project file /home/marek/trbnet/optical_link/hub_syn.prj -#-- Written on Thu Apr 2 10:51:38 2009 - - -#add_file options -add_file -vhdl -lib work "./version.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net_onewire.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_addresses.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_hub_func.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/lattice/scm/lattice_scm_fifo_18x1k.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/lattice/scm/lattice_scm_fifo_18x16.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/lattice/scm/lattice_scm_fifo_18x32.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/lattice/scm/lattice_scm_fifo_18x64.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/lattice/scm/trb_net16_fifo_arch.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_io_multiplexer.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_regIO.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_api_base.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_obuf.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_ibuf.vhd" -add_file -vhdl -lib work "./simple_hub.vhd" -add_file -vhdl -lib work "./cross_clk.vhd" -add_file -vhdl -lib work "/home/marek/trbv2/etrax_interfacev2.vhd" -add_file -vhdl -lib work "./simpleupcounter_32bit.vhd" -add_file -vhdl -lib work "./hub_etrax_interface.vhd" -add_file -vhdl -lib work "./hub.vhd" -add_file -vhdl -lib work "./f_divider.vhd" -add_file -vhdl -lib work "./simpleupcounter_16bit.vhd" -add_file -vhdl -lib work "./simpleupcounter_8bit.vhd" -add_file -vhdl -lib work "./flexi_PCS_synch.vhd" -add_file -vhdl -lib work "./flexi_PCS_channel_synch.vhd" -add_file -vhdl -lib work "./flexi_PCS_fifo_LUT.vhd" -add_file -vhdl -lib work "./flexi_PCS_fifo_EBR.vhd" -add_file -vhdl -lib work "./serdes_fpga_ref_clk.vhd" -add_file -vhdl -lib work "./pll_ref.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net_std.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_iobuf.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net_CRC.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net_dummy_fifo.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net_pattern_gen.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net_priority_arbiter.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net_priority_encoder.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net_sbuf.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_sbuf.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_hub_base.vhd" -add_file -vhdl -lib work "/home/marek/trbnet/trb_net16_hub_logic.vhd" -add_file -vhdl -lib work "../basics/ram_16x8_dp.vhd" -add_file -vhdl -lib work "../basics/ram_16x16_dp.vhd" -add_file -vhdl -lib work "../basics/ram_dp_rw.vhd" -add_file -vhdl -lib work "../basics/ram_dp.vhd" -add_file -vhdl -lib work "../basics/ram_true_dp.vhd" -add_file -vhdl -lib work "../basics/ram.vhd" -add_file -vhdl -lib work "../basics/rom_16x8.vhd" -add_file -vhdl -lib work "../basics/rom_16x16.vhd" -add_file -vhdl -lib work "../basics/rom_18x128.vhd" -add_file -vhdl -lib work "../basics/signal_sync.vhd" -add_file -vhdl -lib work "../basics/wide_adder_17x16.vhd" -add_file -vhdl -lib work "../basics/wide_adder.vhd" -add_file -vhdl -lib work "../trb_net16_term_buf.vhd" -add_file -vhdl -lib work "../../trbv2/up_down_counter.vhd" -add_file -vhdl -lib work "../trb_net16_hub_ipu_logic.vhd" - - -#implementation: "workdir" -impl -add workdir -type fpga - -#device options -set_option -technology LATTICE-SCM -set_option -part LFSCM3GA25EP1 -set_option -package FF1020C -set_option -speed_grade -5 -set_option -part_companion "" - -#compilation/mapping options -set_option -default_enum_encoding onehot -set_option -resource_sharing 1 -set_option -top_module "hub" - -#map options -set_option -frequency 110.000 -set_option -vendor_xcompatible_mode 0 -set_option -vendor_xcompatible_mode 0 -set_option -fanout_limit 100 -set_option -disable_io_insertion 0 -set_option -retiming 0 -set_option -pipe 0 -set_option -fixgatedclocks 0 -set_option -fixgeneratedclocks 3 -set_option -force_gsr no - - -#sequential_optimizations options -set_option -symbolic_fsm_compiler 1 - -#simulation options -set_option -write_verilog 0 -set_option -write_vhdl 0 - -#automatic place and route (vendor) options -set_option -write_apr_constraint 0 - -#set result format/file last -project -result_file "./workdir/hub.edf" - -# -#implementation attributes - -set_option -vlog_std v2001 -set_option -synthesis_onoff_pragma 0 -set_option -project_relative_includes 1 -impl -active "workdir" diff --git a/optical_link/hub_tb.vhd b/optical_link/hub_tb.vhd deleted file mode 100644 index 3933fdd..0000000 --- a/optical_link/hub_tb.vhd +++ /dev/null @@ -1,122 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - -library ieee; -library work; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.all; - -entity hub_tb is - - port ( - LVDS_CLK_200P : in std_logic; - LVDS_CLK_200N : in std_logic; - SERDES_200N : in std_logic; - SERDES_200P : in std_logic; - ADO_TTL : inout std_logic_vector(46 downto 0); - DBAD : out std_logic; - DGOOD : out std_logic; - DINT : out std_logic; - DWAIT : out std_logic; - LOK : out std_logic_vector(16 downto 1); - RT : out std_logic_vector(16 downto 1); - TX_DIS : out std_logic_vector(16 downto 1); - IPLL : out std_logic; - OPLL : out std_logic; - SFP_INP_N : in std_logic_vector(15 downto 0); - SFP_INP_P : in std_logic_vector(15 downto 0); - SFP_OUT_N : out std_logic_vector(15 downto 0); - SFP_OUT_P : out std_logic_vector(15 downto 0); - AAAAAAAA : in std_logic); -end hub_tb; - -architecture hub_tb of hub_tb is - -signal LVDS_CLK_200P_i : std_logic; -signal LVDS_CLK_200N_i : std_logic; -signal SERDES_200N_i : std_logic; -signal SERDES_200P_i : std_logic; -signal ADO_TTL_i : std_logic_vector(46 downto 0); -signal DBAD_i : std_logic; -signal DGOOD_i : std_logic; -signal DINT_i : std_logic; -signal DWAIT_i : std_logic; -signal LOK_i : std_logic_vector(16 downto 1); -signal RT_i : std_logic_vector(16 downto 1); -signal TX_DIS_i : std_logic_vector(16 downto 1); -signal IPLL_i : std_logic; -signal OPLL_i : std_logic; -signal SFP_INP_N_i : std_logic_vector(15 downto 0); -signal SFP_INP_P_i : std_logic_vector(15 downto 0); -signal SFP_OUT_N_i : std_logic_vector(15 downto 0); -signal SFP_OUT_P_i : std_logic_vector(15 downto 0); - -component hub - port ( - LVDS_CLK_200P : in std_logic; --- LVDS_CLK_200N : in std_logic; --- SERDES_200N : in std_logic; --- SERDES_200P : in std_logic; - ADO_TTL : inout std_logic_vector(46 downto 0); - DBAD : out std_logic; - DGOOD : out std_logic; - DINT : out std_logic; - DWAIT : out std_logic; - LOK : out std_logic_vector(16 downto 1); - RT : out std_logic_vector(16 downto 1); - TX_DIS : out std_logic_vector(16 downto 1); - IPLL : out std_logic; - OPLL : out std_logic; - SFP_INP_N : in std_logic_vector(15 downto 0); - SFP_INP_P : in std_logic_vector(15 downto 0); - SFP_OUT_N : out std_logic_vector(15 downto 0); - SFP_OUT_P : out std_logic_vector(15 downto 0); - FS_PE_11 : inout std_logic; - --------------------------------------------------------------------------- - -- sim - --------------------------------------------------------------------------- - OPT_DATA_IN : in std_logic_vector(16*HOW_MANY_CHANNELS-1 downto 0); - OPT_DATA_OUT : out std_logic_vector(16*HOW_MANY_CHANNELS-1 downto 0); - OPT_DATA_VALID_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0); - OPT_DATA_VALID_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0) - - - ); -end component; - - -begin -- of hub_tb - HUB_SIM: hub - port map ( - LVDS_CLK_200P => LVDS_CLK_200P_i, - ADO_TTL => ADO_TTL_i, - DBAD => DBAD_i, - DGOOD => DGOOD_i, - DINT => DINT_i, - DWAIT => DWAIT_i, - LOK => LOK_i, - RT => RT_i, - TX_DIS => TX_DIS_i, - IPLL => IPLL_i, - OPLL => OPLL_i, - SFP_INP_N => SFP_INP_N_i, - SFP_INP_P => SFP_INP_P_i, - SFP_OUT_N => SFP_OUT_N_i, - SFP_OUT_P => SFP_OUT_P_i - FS_PE_11 => - OPT_DATA_IN => - OPT_DATA_OUT => - OPT_DATA_VALID_IN => - OPT_DATA_VALID_OUT => - - clock_gclk : process - begin - SERDES_200P_i <= '0'; - SERDES_200N_i <= '1'; - wait for 5 ns; - SERDES_200P_i <= '1'; - SERDES_200N_i <= '0'; - wait for 5 ns; - end process; -end hub_tb; diff --git a/optical_link/impact_batch_hub.txt b/optical_link/impact_batch_hub.txt deleted file mode 100644 index 84cf5a7..0000000 --- a/optical_link/impact_batch_hub.txt +++ /dev/null @@ -1,5 +0,0 @@ -setMode -bs -setCable -port stapl -file "hub_chain.stapl" -addDevice -p 1 -file "hub_1.svf" -Play -quit diff --git a/optical_link/pll_ref.vhd b/optical_link/pll_ref.vhd deleted file mode 100644 index 48256f8..0000000 --- a/optical_link/pll_ref.vhd +++ /dev/null @@ -1,167 +0,0 @@ --- VHDL netlist generated by SCUBA ispLever_v70_Prod_Build (55) --- Module Version: 3.6 ---/opt/lattice/isplever7.0/isptools/ispfpga/bin/lin/scuba -w -n pll_ref -lang vhdl -synth synplify -bus_exp 7 -bb -arch or5s00 -type pll -fin 100 -mfreq 200 -nfreq 100 -clkos_fdel 0 -fb 1 -clki_del 0 -clki_fdel 0 -clkfb_del 0 -clkfb_fdel 0 -mtol 0.0 -ntol 0.0 -bw LOW -e - --- Thu Nov 29 18:28:19 2007 - -library IEEE; -use IEEE.std_logic_1164.all; --- synopsys translate_off -library SCM; -use SCM.COMPONENTS.all; --- synopsys translate_on - -entity pll_ref is - generic ( - SMI_OFFSET : in String := "0x410" - ); - port ( - clk: in std_logic; - clkop: out std_logic; - clkos: out std_logic; - lock: out std_logic); - attribute dont_touch : string; - attribute dont_touch of pll_ref : entity is "true"; -end pll_ref; - -architecture Structure of pll_ref is - - -- internal signal declarations - signal scuba_vlo: std_logic; - signal scuba_vhi: std_logic; - signal clkos_t: std_logic; - signal clkop_t: std_logic; - signal clk_t: std_logic; - - attribute module_type : string; - -- local component declarations - component VHI - port (Z: out std_logic); - end component; - component VLO - port (Z: out std_logic); - end component; - component EHXPLLA - generic (SMI_OFFSET : in String - -- synopsys translate_off - ; GSR : in String; CLKOS_DIV : in Integer; - CLKOP_DIV : in Integer; CLKFB_DIV : in Integer; - CLKI_DIV : in Integer; CLKOS_FDEL : in Integer; - CLKFB_FDEL : in Integer; CLKI_FDEL : in Integer; - CLKOS_MODE : in String; CLKOP_MODE : in String; - PHASEADJ : in Integer; CLKOS_VCODEL : in Integer - -- synopsys translate_on - ); - port (SMIADDR9: in std_logic; SMIADDR8: in std_logic; - SMIADDR7: in std_logic; SMIADDR6: in std_logic; - SMIADDR5: in std_logic; SMIADDR4: in std_logic; - SMIADDR3: in std_logic; SMIADDR2: in std_logic; - SMIADDR1: in std_logic; SMIADDR0: in std_logic; - SMIRD: in std_logic; SMIWR: in std_logic; - SMICLK: in std_logic; SMIWDATA: in std_logic; - SMIRSTN: in std_logic; CLKI: in std_logic; - CLKFB: in std_logic; RSTN: in std_logic; - CLKOS: out std_logic; CLKOP: out std_logic; - LOCK: out std_logic; CLKINTFB: out std_logic; - SMIRDATA: out std_logic); - end component; - attribute module_type of EHXPLLA : component is "EHXPLLA"; - attribute ip_type : string; - attribute FREQUENCY_PIN_CLKOS : string; - attribute FREQUENCY_PIN_CLKOP : string; - attribute FREQUENCY_PIN_CLKI : string; - attribute VCO_LOWERFREQ : string; - attribute GMCFREQSEL : string; - attribute GSR : string; - attribute SPREAD_DIV2 : string; - attribute SPREAD_DIV1 : string; - attribute SPREAD_DRIFT : string; - attribute SPREAD : string; - attribute CLKFB_FDEL : string; - attribute CLKI_FDEL : string; - attribute CLKFB_PDEL : string; - attribute CLKI_PDEL : string; - attribute LF_RESISTOR : string; - attribute LF_IX5UA : string; - attribute CLKOS_FDEL : string; - attribute CLKOS_VCODEL : string; - attribute PHASEADJ : string; - attribute CLKOS_MODE : string; - attribute CLKOP_MODE : string; - attribute CLKOS_DIV : string; - attribute CLKOP_DIV : string; - attribute CLKFB_DIV : string; - attribute CLKI_DIV : string; - attribute ip_type of pll_ref_0_0 : label is "EHXPLLA"; - attribute FREQUENCY_PIN_CLKOS of pll_ref_0_0 : label is "100.000000"; - attribute FREQUENCY_PIN_CLKOP of pll_ref_0_0 : label is "200.000000"; - attribute FREQUENCY_PIN_CLKI of pll_ref_0_0 : label is "100.000000"; - attribute VCO_LOWERFREQ of pll_ref_0_0 : label is "DISABLED"; - attribute GMCFREQSEL of pll_ref_0_0 : label is "HIGH"; - attribute GSR of pll_ref_0_0 : label is "DISABLED"; - attribute SPREAD_DIV2 of pll_ref_0_0 : label is "2"; - attribute SPREAD_DIV1 of pll_ref_0_0 : label is "2"; - attribute SPREAD_DRIFT of pll_ref_0_0 : label is "1"; - attribute SPREAD of pll_ref_0_0 : label is "DISABLED"; - attribute CLKFB_FDEL of pll_ref_0_0 : label is "0"; - attribute CLKI_FDEL of pll_ref_0_0 : label is "0"; - attribute CLKFB_PDEL of pll_ref_0_0 : label is "DEL0"; - attribute CLKI_PDEL of pll_ref_0_0 : label is "DEL0"; - attribute LF_RESISTOR of pll_ref_0_0 : label is "0b111010"; - attribute LF_IX5UA of pll_ref_0_0 : label is "31"; - attribute CLKOS_FDEL of pll_ref_0_0 : label is "0"; - attribute CLKOS_VCODEL of pll_ref_0_0 : label is "0"; - attribute PHASEADJ of pll_ref_0_0 : label is "0"; - attribute CLKOS_MODE of pll_ref_0_0 : label is "DIV"; - attribute CLKOP_MODE of pll_ref_0_0 : label is "DIV"; - attribute CLKOS_DIV of pll_ref_0_0 : label is "6"; - attribute CLKOP_DIV of pll_ref_0_0 : label is "3"; - attribute CLKFB_DIV of pll_ref_0_0 : label is "2"; - attribute CLKI_DIV of pll_ref_0_0 : label is "1"; - attribute syn_keep : boolean; - attribute syn_noprune : boolean; - attribute syn_noprune of Structure : architecture is true; - -begin - -- component instantiation statements - scuba_vlo_inst: VLO - port map (Z=>scuba_vlo); - - scuba_vhi_inst: VHI - port map (Z=>scuba_vhi); - - pll_ref_0_0: EHXPLLA - generic map (SMI_OFFSET=> SMI_OFFSET - -- synopsys translate_off - , GSR=> "DISABLED", CLKFB_FDEL=> 0, CLKI_FDEL=> 0, - CLKOS_FDEL=> 0, CLKOS_VCODEL=> 0, PHASEADJ=> 0, CLKOS_MODE=> "DIV", - CLKOP_MODE=> "DIV", CLKOS_DIV=> 6, CLKOP_DIV=> 3, CLKFB_DIV=> 2, - CLKI_DIV=> 1 - -- synopsys translate_on - ) - port map (SMIADDR9=>scuba_vlo, SMIADDR8=>scuba_vlo, - SMIADDR7=>scuba_vlo, SMIADDR6=>scuba_vlo, - SMIADDR5=>scuba_vlo, SMIADDR4=>scuba_vlo, - SMIADDR3=>scuba_vlo, SMIADDR2=>scuba_vlo, - SMIADDR1=>scuba_vlo, SMIADDR0=>scuba_vlo, SMIRD=>scuba_vlo, - SMIWR=>scuba_vlo, SMICLK=>scuba_vlo, SMIWDATA=>scuba_vlo, - SMIRSTN=>scuba_vlo, CLKI=>clk_t, CLKFB=>clkop_t, - RSTN=>scuba_vhi, CLKOS=>clkos_t, CLKOP=>clkop_t, LOCK=>lock, - CLKINTFB=>open, SMIRDATA=>open); - - clkos <= clkos_t; - clkop <= clkop_t; - clk_t <= clk; -end Structure; - --- synopsys translate_off -library SCM; -configuration Structure_CON of pll_ref is - for Structure - for all:VHI use entity SCM.VHI(V); end for; - for all:VLO use entity SCM.VLO(V); end for; - for all:EHXPLLA use entity SCM.EHXPLLA(V); end for; - end for; -end Structure_CON; - --- synopsys translate_on diff --git a/optical_link/readme b/optical_link/readme deleted file mode 100644 index 463360a..0000000 --- a/optical_link/readme +++ /dev/null @@ -1,14 +0,0 @@ -to run all: - -mkdir workdir; -cd workdir; -ln -s ../serdes_fpga_ref_clk.txt serdes_fpga_ref_clk.txt #configuration file for serdes in LATTICE -ln -s ../hub.lpf hub.lpf #user constraints -cd .. -. /your/xilinx/patch/settings.sh #set xilinx enviroment -. setup_env #check paths for LATTICE -#change in hub_1.xcf to correct path of out .bit file -# /your/project/path/workdir/hub.bit or produce it in isp - this for chain -#FPGA - LATTICE, in future there will be no FPGA on trbv2 for hub -./compile_hub.pl #run main script - diff --git a/optical_link/serdes_fpga_ref_clk.txt b/optical_link/serdes_fpga_ref_clk.txt deleted file mode 100644 index 05b6dec..0000000 --- a/optical_link/serdes_fpga_ref_clk.txt +++ /dev/null @@ -1,62 +0,0 @@ - - -# This file is used by the simulation model as well as the ispLEVER bitstream -# generation process to automatically initialize the PCS quad to the mode -# selected in the IPexpress. This file is expected to be modified by the -# end user to adjust the PCS quad to the final design requirements. -# channel_0 is in "8b10b" mode -# channel_1 is in "8b10b" mode -# channel_2 is in "8b10b" mode -# channel_3 is in "8b10b" mode - -ch0 13 03 # Powerup Channel -ch0 00 00 -ch1 13 03 # Powerup Channel -ch1 00 00 -ch2 13 03 # Powerup Channel -ch2 00 00 -ch3 13 03 # Powerup Channel -ch3 00 00 -quad 00 00 -quad 01 E4 -quad 28 40 # Reference clock multiplier -quad 29 11 # FPGA sourced refclk -quad 02 00 # ref_pclk source is ch0 -quad 04 00 # MCA enable 4 channels - -quad 18 10 # 8b10b Mode -quad 14 FF # Word Alignment Mask -quad 15 7c # +ve K -quad 16 b6 # -ve K -#quad 16 83 # -ve K -quad 17 36 - -quad 19 8C # Enable word_align_en port, FPGA bus width is 16-bit/20-bit - -#quad 1e 01 #SOP EOP only 1 word 24.04.2008 -#quad 1f ff -#quad 20 7c -#quad 21 7c -#quad 22 5 -#quad 23 7c -#quad 24 7c -#quad 25 5 - - -ch0 14 90 # 16% pre-emphasis -ch0 15 10 # +6dB equalization -ch1 14 90 # 16% pre-emphasis -ch1 15 10 # +6dB equalization -ch2 14 90 # 16% pre-emphasis -ch2 15 10 # +6dB equalization -ch3 14 90 # 16% pre-emphasis -ch3 15 10 # +6dB equalization - -# These lines must appear last in the autoconfig file. These lines apply the correct -# reset sequence to the PCS block upon bitstream configuration -quad 41 00 # de-assert serdes_rst -quad 40 ff # assert datapath reset for all channels -quad 40 00 # de-assert datapath reset for all channels - - - diff --git a/optical_link/serdes_fpga_ref_clk.vhd b/optical_link/serdes_fpga_ref_clk.vhd deleted file mode 100644 index 36d920f..0000000 --- a/optical_link/serdes_fpga_ref_clk.vhd +++ /dev/null @@ -1,2437 +0,0 @@ - - --- channel_0 is in "8b10b" mode --- channel_1 is in "8b10b" mode --- channel_2 is in "8b10b" mode --- channel_3 is in "8b10b" mode - ---synopsys translate_off - -library pcsa_mti_work; -use pcsa_mti_work.all; -library IEEE; -use IEEE.std_logic_1164.all; - -entity PCSA is -GENERIC( - CONFIG_FILE : String := "serdes_fpga_ref_clk.txt" - ); -port ( - HDINP0 : in std_logic; - HDINN0 : in std_logic; - HDINP1 : in std_logic; - HDINN1 : in std_logic; - HDINP2 : in std_logic; - HDINN2 : in std_logic; - HDINP3 : in std_logic; - HDINN3 : in std_logic; - HDOUTP0 : out std_logic; - HDOUTN0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTP3 : out std_logic; - HDOUTN3 : out std_logic; - REFCLKP : in std_logic; - REFCLKN : in std_logic; - RXREFCLKP : in std_logic; - RXREFCLKN : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_MACRO_RST : in std_logic; - - FFC_LANE_TX_RST0 : in std_logic; - FFC_LANE_TX_RST1 : in std_logic; - FFC_LANE_TX_RST2 : in std_logic; - FFC_LANE_TX_RST3 : in std_logic; - - FFC_LANE_RX_RST0 : in std_logic; - FFC_LANE_RX_RST1 : in std_logic; - FFC_LANE_RX_RST2 : in std_logic; - FFC_LANE_RX_RST3 : in std_logic; - - FFC_PCIE_EI_EN_0 : in std_logic; - FFC_PCIE_EI_EN_1 : in std_logic; - FFC_PCIE_EI_EN_2 : in std_logic; - FFC_PCIE_EI_EN_3 : in std_logic; - - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - - FFC_PCIE_TX_0 : in std_logic; - FFC_PCIE_TX_1 : in std_logic; - FFC_PCIE_TX_2 : in std_logic; - FFC_PCIE_TX_3 : in std_logic; - - FFC_PCIE_RX_0 : in std_logic; - FFC_PCIE_RX_1 : in std_logic; - FFC_PCIE_RX_2 : in std_logic; - FFC_PCIE_RX_3 : in std_logic; - - FFC_SD_0 : in std_logic; - FFC_SD_1 : in std_logic; - FFC_SD_2 : in std_logic; - FFC_SD_3 : in std_logic; - - FFC_EN_CGA_0 : in std_logic; - FFC_EN_CGA_1 : in std_logic; - FFC_EN_CGA_2 : in std_logic; - FFC_EN_CGA_3 : in std_logic; - - FFC_ALIGN_EN_0 : in std_logic; - FFC_ALIGN_EN_1 : in std_logic; - FFC_ALIGN_EN_2 : in std_logic; - FFC_ALIGN_EN_3 : in std_logic; - - FFC_AB_RESET : in std_logic; - FFC_CD_RESET : in std_logic; - - FFS_LS_STATUS_0 : out std_logic; - FFS_LS_STATUS_1 : out std_logic; - FFS_LS_STATUS_2 : out std_logic; - FFS_LS_STATUS_3 : out std_logic; - - FFS_AB_STATUS : out std_logic; - FFS_CD_STATUS : out std_logic; - - FFS_AB_ALIGNED : out std_logic; - FFS_CD_ALIGNED : out std_logic; - - FFS_RLOS_LO0 : out std_logic; - FFS_RLOS_LO1 : out std_logic; - FFS_RLOS_LO2 : out std_logic; - FFS_RLOS_LO3 : out std_logic; - - FFS_AB_FAILED : out std_logic; - FFS_CD_FAILED : out std_logic; - - FFC_FB_LB_0 : in std_logic; - FFC_FB_LB_1 : in std_logic; - FFC_FB_LB_2 : in std_logic; - FFC_FB_LB_3 : in std_logic; - - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - - FFS_CC_ORUN_0 : out std_logic; - FFS_CC_ORUN_1 : out std_logic; - FFS_CC_ORUN_2 : out std_logic; - FFS_CC_ORUN_3 : out std_logic; - - FFS_CC_URUN_0 : out std_logic; - FFS_CC_URUN_1 : out std_logic; - FFS_CC_URUN_2 : out std_logic; - FFS_CC_URUN_3 : out std_logic; - - FFC_CK_CORE_TX : in std_logic; - FFC_CK_CORE_RX : in std_logic; - RDATAO_7 : out std_logic; - RDATAO_6 : out std_logic; - RDATAO_5 : out std_logic; - RDATAO_4 : out std_logic; - RDATAO_3 : out std_logic; - RDATAO_2 : out std_logic; - RDATAO_1 : out std_logic; - RDATAO_0 : out std_logic; - INTO : out std_logic; - - ADDRI_7 : in std_logic; - ADDRI_6 : in std_logic; - ADDRI_5 : in std_logic; - ADDRI_4 : in std_logic; - ADDRI_3 : in std_logic; - ADDRI_2 : in std_logic; - ADDRI_1 : in std_logic; - ADDRI_0 : in std_logic; - WDATAI_7 : in std_logic; - WDATAI_6 : in std_logic; - WDATAI_5 : in std_logic; - WDATAI_4 : in std_logic; - WDATAI_3 : in std_logic; - WDATAI_2 : in std_logic; - WDATAI_1 : in std_logic; - WDATAI_0 : in std_logic; - RDI : in std_logic; - WSTBI : in std_logic; - - CS_CHIF_0 : in std_logic; - CS_CHIF_1 : in std_logic; - CS_CHIF_2 : in std_logic; - CS_CHIF_3 : in std_logic; - CS_QIF : in std_logic; - - QUAD_ID_1 : in std_logic; - QUAD_ID_0 : in std_logic; - - FF_SYSCLK_P1 : out std_logic; - - FF_SYSCLK0 : out std_logic; - FF_SYSCLK1 : out std_logic; - FF_SYSCLK2 : out std_logic; - FF_SYSCLK3 : out std_logic; - - FF_RXCLK_P1 : out std_logic; - FF_RXCLK_P2 : out std_logic; - - FF_RXCLK0 : out std_logic; - FF_RXCLK1 : out std_logic; - FF_RXCLK2 : out std_logic; - FF_RXCLK3 : out std_logic; - - QUAD_CLK : out std_logic; - - GRP_CLK_P1_3 : in std_logic; - GRP_CLK_P1_2 : in std_logic; - GRP_CLK_P1_1 : in std_logic; - GRP_CLK_P1_0 : in std_logic; - - GRP_CLK_P2_3 : in std_logic; - GRP_CLK_P2_2 : in std_logic; - GRP_CLK_P2_1 : in std_logic; - GRP_CLK_P2_0 : in std_logic; - - GRP_START_3 : in std_logic; - GRP_START_2 : in std_logic; - GRP_START_1 : in std_logic; - GRP_START_0 : in std_logic; - - GRP_DONE_3 : in std_logic; - GRP_DONE_2 : in std_logic; - GRP_DONE_1 : in std_logic; - GRP_DONE_0 : in std_logic; - - GRP_DESKEW_ERROR_3 : in std_logic; - GRP_DESKEW_ERROR_2 : in std_logic; - GRP_DESKEW_ERROR_1 : in std_logic; - GRP_DESKEW_ERROR_0 : in std_logic; - - IQA_START_LS : out std_logic; - IQA_DONE_LS : out std_logic; - IQA_AND_FP1_LS : out std_logic; - IQA_AND_FP0_LS : out std_logic; - IQA_OR_FP1_LS : out std_logic; - IQA_OR_FP0_LS : out std_logic; - IQA_RST_N : out std_logic; - - FF_TCLK0 : in std_logic; - FF_TCLK1 : in std_logic; - FF_TCLK2 : in std_logic; - FF_TCLK3 : in std_logic; - - FF_RCLK0 : in std_logic; - FF_RCLK1 : in std_logic; - FF_RCLK2 : in std_logic; - FF_RCLK3 : in std_logic; - TCK_FMACP : in std_logic; - - FF_TXD_0_23 : in std_logic; - FF_TXD_0_22 : in std_logic; - FF_TXD_0_21 : in std_logic; - FF_TXD_0_20 : in std_logic; - FF_TXD_0_19 : in std_logic; - FF_TXD_0_18 : in std_logic; - FF_TXD_0_17 : in std_logic; - FF_TXD_0_16 : in std_logic; - FF_TXD_0_15 : in std_logic; - FF_TXD_0_14 : in std_logic; - FF_TXD_0_13 : in std_logic; - FF_TXD_0_12 : in std_logic; - FF_TXD_0_11 : in std_logic; - FF_TXD_0_10 : in std_logic; - FF_TXD_0_9 : in std_logic; - FF_TXD_0_8 : in std_logic; - FF_TXD_0_7 : in std_logic; - FF_TXD_0_6 : in std_logic; - FF_TXD_0_5 : in std_logic; - FF_TXD_0_4 : in std_logic; - FF_TXD_0_3 : in std_logic; - FF_TXD_0_2 : in std_logic; - FF_TXD_0_1 : in std_logic; - FF_TXD_0_0 : in std_logic; - FB_RXD_0_23 : out std_logic; - FB_RXD_0_22 : out std_logic; - FB_RXD_0_21 : out std_logic; - FB_RXD_0_20 : out std_logic; - FB_RXD_0_19 : out std_logic; - FB_RXD_0_18 : out std_logic; - FB_RXD_0_17 : out std_logic; - FB_RXD_0_16 : out std_logic; - FB_RXD_0_15 : out std_logic; - FB_RXD_0_14 : out std_logic; - FB_RXD_0_13 : out std_logic; - FB_RXD_0_12 : out std_logic; - FB_RXD_0_11 : out std_logic; - FB_RXD_0_10 : out std_logic; - FB_RXD_0_9 : out std_logic; - FB_RXD_0_8 : out std_logic; - FB_RXD_0_7 : out std_logic; - FB_RXD_0_6 : out std_logic; - FB_RXD_0_5 : out std_logic; - FB_RXD_0_4 : out std_logic; - FB_RXD_0_3 : out std_logic; - FB_RXD_0_2 : out std_logic; - FB_RXD_0_1 : out std_logic; - FB_RXD_0_0 : out std_logic; - FF_TXD_1_23 : in std_logic; - FF_TXD_1_22 : in std_logic; - FF_TXD_1_21 : in std_logic; - FF_TXD_1_20 : in std_logic; - FF_TXD_1_19 : in std_logic; - FF_TXD_1_18 : in std_logic; - FF_TXD_1_17 : in std_logic; - FF_TXD_1_16 : in std_logic; - FF_TXD_1_15 : in std_logic; - FF_TXD_1_14 : in std_logic; - FF_TXD_1_13 : in std_logic; - FF_TXD_1_12 : in std_logic; - FF_TXD_1_11 : in std_logic; - FF_TXD_1_10 : in std_logic; - FF_TXD_1_9 : in std_logic; - FF_TXD_1_8 : in std_logic; - FF_TXD_1_7 : in std_logic; - FF_TXD_1_6 : in std_logic; - FF_TXD_1_5 : in std_logic; - FF_TXD_1_4 : in std_logic; - FF_TXD_1_3 : in std_logic; - FF_TXD_1_2 : in std_logic; - FF_TXD_1_1 : in std_logic; - FF_TXD_1_0 : in std_logic; - FB_RXD_1_23 : out std_logic; - FB_RXD_1_22 : out std_logic; - FB_RXD_1_21 : out std_logic; - FB_RXD_1_20 : out std_logic; - FB_RXD_1_19 : out std_logic; - FB_RXD_1_18 : out std_logic; - FB_RXD_1_17 : out std_logic; - FB_RXD_1_16 : out std_logic; - FB_RXD_1_15 : out std_logic; - FB_RXD_1_14 : out std_logic; - FB_RXD_1_13 : out std_logic; - FB_RXD_1_12 : out std_logic; - FB_RXD_1_11 : out std_logic; - FB_RXD_1_10 : out std_logic; - FB_RXD_1_9 : out std_logic; - FB_RXD_1_8 : out std_logic; - FB_RXD_1_7 : out std_logic; - FB_RXD_1_6 : out std_logic; - FB_RXD_1_5 : out std_logic; - FB_RXD_1_4 : out std_logic; - FB_RXD_1_3 : out std_logic; - FB_RXD_1_2 : out std_logic; - FB_RXD_1_1 : out std_logic; - FB_RXD_1_0 : out std_logic; - FF_TXD_2_23 : in std_logic; - FF_TXD_2_22 : in std_logic; - FF_TXD_2_21 : in std_logic; - FF_TXD_2_20 : in std_logic; - FF_TXD_2_19 : in std_logic; - FF_TXD_2_18 : in std_logic; - FF_TXD_2_17 : in std_logic; - FF_TXD_2_16 : in std_logic; - FF_TXD_2_15 : in std_logic; - FF_TXD_2_14 : in std_logic; - FF_TXD_2_13 : in std_logic; - FF_TXD_2_12 : in std_logic; - FF_TXD_2_11 : in std_logic; - FF_TXD_2_10 : in std_logic; - FF_TXD_2_9 : in std_logic; - FF_TXD_2_8 : in std_logic; - FF_TXD_2_7 : in std_logic; - FF_TXD_2_6 : in std_logic; - FF_TXD_2_5 : in std_logic; - FF_TXD_2_4 : in std_logic; - FF_TXD_2_3 : in std_logic; - FF_TXD_2_2 : in std_logic; - FF_TXD_2_1 : in std_logic; - FF_TXD_2_0 : in std_logic; - FB_RXD_2_23 : out std_logic; - FB_RXD_2_22 : out std_logic; - FB_RXD_2_21 : out std_logic; - FB_RXD_2_20 : out std_logic; - FB_RXD_2_19 : out std_logic; - FB_RXD_2_18 : out std_logic; - FB_RXD_2_17 : out std_logic; - FB_RXD_2_16 : out std_logic; - FB_RXD_2_15 : out std_logic; - FB_RXD_2_14 : out std_logic; - FB_RXD_2_13 : out std_logic; - FB_RXD_2_12 : out std_logic; - FB_RXD_2_11 : out std_logic; - FB_RXD_2_10 : out std_logic; - FB_RXD_2_9 : out std_logic; - FB_RXD_2_8 : out std_logic; - FB_RXD_2_7 : out std_logic; - FB_RXD_2_6 : out std_logic; - FB_RXD_2_5 : out std_logic; - FB_RXD_2_4 : out std_logic; - FB_RXD_2_3 : out std_logic; - FB_RXD_2_2 : out std_logic; - FB_RXD_2_1 : out std_logic; - FB_RXD_2_0 : out std_logic; - FF_TXD_3_23 : in std_logic; - FF_TXD_3_22 : in std_logic; - FF_TXD_3_21 : in std_logic; - FF_TXD_3_20 : in std_logic; - FF_TXD_3_19 : in std_logic; - FF_TXD_3_18 : in std_logic; - FF_TXD_3_17 : in std_logic; - FF_TXD_3_16 : in std_logic; - FF_TXD_3_15 : in std_logic; - FF_TXD_3_14 : in std_logic; - FF_TXD_3_13 : in std_logic; - FF_TXD_3_12 : in std_logic; - FF_TXD_3_11 : in std_logic; - FF_TXD_3_10 : in std_logic; - FF_TXD_3_9 : in std_logic; - FF_TXD_3_8 : in std_logic; - FF_TXD_3_7 : in std_logic; - FF_TXD_3_6 : in std_logic; - FF_TXD_3_5 : in std_logic; - FF_TXD_3_4 : in std_logic; - FF_TXD_3_3 : in std_logic; - FF_TXD_3_2 : in std_logic; - FF_TXD_3_1 : in std_logic; - FF_TXD_3_0 : in std_logic; - FB_RXD_3_23 : out std_logic; - FB_RXD_3_22 : out std_logic; - FB_RXD_3_21 : out std_logic; - FB_RXD_3_20 : out std_logic; - FB_RXD_3_19 : out std_logic; - FB_RXD_3_18 : out std_logic; - FB_RXD_3_17 : out std_logic; - FB_RXD_3_16 : out std_logic; - FB_RXD_3_15 : out std_logic; - FB_RXD_3_14 : out std_logic; - FB_RXD_3_13 : out std_logic; - FB_RXD_3_12 : out std_logic; - FB_RXD_3_11 : out std_logic; - FB_RXD_3_10 : out std_logic; - FB_RXD_3_9 : out std_logic; - FB_RXD_3_8 : out std_logic; - FB_RXD_3_7 : out std_logic; - FB_RXD_3_6 : out std_logic; - FB_RXD_3_5 : out std_logic; - FB_RXD_3_4 : out std_logic; - FB_RXD_3_3 : out std_logic; - FB_RXD_3_2 : out std_logic; - FB_RXD_3_1 : out std_logic; - FB_RXD_3_0 : out std_logic; - TCK_FMAC : out std_logic; - BS4PAD_0 : out std_logic; - BS4PAD_1 : out std_logic; - BS4PAD_2 : out std_logic; - BS4PAD_3 : out std_logic; - COUT_21 : out std_logic; - COUT_20 : out std_logic; - COUT_19 : out std_logic; - COUT_18 : out std_logic; - COUT_17 : out std_logic; - COUT_16 : out std_logic; - COUT_15 : out std_logic; - COUT_14 : out std_logic; - COUT_13 : out std_logic; - COUT_12 : out std_logic; - COUT_11 : out std_logic; - COUT_10 : out std_logic; - COUT_9 : out std_logic; - COUT_8 : out std_logic; - COUT_7 : out std_logic; - COUT_6 : out std_logic; - COUT_5 : out std_logic; - COUT_4 : out std_logic; - COUT_3 : out std_logic; - COUT_2 : out std_logic; - COUT_1 : out std_logic; - COUT_0 : out std_logic; - CIN_12 : in std_logic; - CIN_11 : in std_logic; - CIN_10 : in std_logic; - CIN_9 : in std_logic; - CIN_8 : in std_logic; - CIN_7 : in std_logic; - CIN_6 : in std_logic; - CIN_5 : in std_logic; - CIN_4 : in std_logic; - CIN_3 : in std_logic; - CIN_2 : in std_logic; - CIN_1 : in std_logic; - CIN_0 : in std_logic; - TESTCLK_MACO : in std_logic -); - -end PCSA; - -architecture PCSA_arch of PCSA is - -component PCSA_sim -GENERIC( - CONFIG_FILE : String - ); -port ( - HDINP0 : in std_logic; - HDINN0 : in std_logic; - HDINP1 : in std_logic; - HDINN1 : in std_logic; - HDINP2 : in std_logic; - HDINN2 : in std_logic; - HDINP3 : in std_logic; - HDINN3 : in std_logic; - HDOUTP0 : out std_logic; - HDOUTN0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTP3 : out std_logic; - HDOUTN3 : out std_logic; - REFCLKP : in std_logic; - REFCLKN : in std_logic; - RXREFCLKP : in std_logic; - RXREFCLKN : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_MACRO_RST : in std_logic; - - FFC_LANE_TX_RST0 : in std_logic; - FFC_LANE_TX_RST1 : in std_logic; - FFC_LANE_TX_RST2 : in std_logic; - FFC_LANE_TX_RST3 : in std_logic; - - FFC_LANE_RX_RST0 : in std_logic; - FFC_LANE_RX_RST1 : in std_logic; - FFC_LANE_RX_RST2 : in std_logic; - FFC_LANE_RX_RST3 : in std_logic; - - FFC_PCIE_EI_EN_0 : in std_logic; - FFC_PCIE_EI_EN_1 : in std_logic; - FFC_PCIE_EI_EN_2 : in std_logic; - FFC_PCIE_EI_EN_3 : in std_logic; - - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - - FFC_PCIE_TX_0 : in std_logic; - FFC_PCIE_TX_1 : in std_logic; - FFC_PCIE_TX_2 : in std_logic; - FFC_PCIE_TX_3 : in std_logic; - - FFC_PCIE_RX_0 : in std_logic; - FFC_PCIE_RX_1 : in std_logic; - FFC_PCIE_RX_2 : in std_logic; - FFC_PCIE_RX_3 : in std_logic; - - FFC_SD_0 : in std_logic; - FFC_SD_1 : in std_logic; - FFC_SD_2 : in std_logic; - FFC_SD_3 : in std_logic; - - FFC_EN_CGA_0 : in std_logic; - FFC_EN_CGA_1 : in std_logic; - FFC_EN_CGA_2 : in std_logic; - FFC_EN_CGA_3 : in std_logic; - - FFC_ALIGN_EN_0 : in std_logic; - FFC_ALIGN_EN_1 : in std_logic; - FFC_ALIGN_EN_2 : in std_logic; - FFC_ALIGN_EN_3 : in std_logic; - - FFC_AB_RESET : in std_logic; - FFC_CD_RESET : in std_logic; - - FFS_LS_STATUS_0 : out std_logic; - FFS_LS_STATUS_1 : out std_logic; - FFS_LS_STATUS_2 : out std_logic; - FFS_LS_STATUS_3 : out std_logic; - - FFS_AB_STATUS : out std_logic; - FFS_CD_STATUS : out std_logic; - - FFS_AB_ALIGNED : out std_logic; - FFS_CD_ALIGNED : out std_logic; - - FFS_AB_FAILED : out std_logic; - FFS_CD_FAILED : out std_logic; - - FFS_RLOS_LO0 : out std_logic; - FFS_RLOS_LO1 : out std_logic; - FFS_RLOS_LO2 : out std_logic; - FFS_RLOS_LO3 : out std_logic; - - FFC_FB_LB_0 : in std_logic; - FFC_FB_LB_1 : in std_logic; - FFC_FB_LB_2 : in std_logic; - FFC_FB_LB_3 : in std_logic; - - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - - FFS_CC_ORUN_0 : out std_logic; - FFS_CC_ORUN_1 : out std_logic; - FFS_CC_ORUN_2 : out std_logic; - FFS_CC_ORUN_3 : out std_logic; - - FFS_CC_URUN_0 : out std_logic; - FFS_CC_URUN_1 : out std_logic; - FFS_CC_URUN_2 : out std_logic; - FFS_CC_URUN_3 : out std_logic; - - FFC_CK_CORE_TX : in std_logic; - FFC_CK_CORE_RX : in std_logic; - RDATAO_7 : out std_logic; - RDATAO_6 : out std_logic; - RDATAO_5 : out std_logic; - RDATAO_4 : out std_logic; - RDATAO_3 : out std_logic; - RDATAO_2 : out std_logic; - RDATAO_1 : out std_logic; - RDATAO_0 : out std_logic; - INTO : out std_logic; - - ADDRI_7 : in std_logic; - ADDRI_6 : in std_logic; - ADDRI_5 : in std_logic; - ADDRI_4 : in std_logic; - ADDRI_3 : in std_logic; - ADDRI_2 : in std_logic; - ADDRI_1 : in std_logic; - ADDRI_0 : in std_logic; - WDATAI_7 : in std_logic; - WDATAI_6 : in std_logic; - WDATAI_5 : in std_logic; - WDATAI_4 : in std_logic; - WDATAI_3 : in std_logic; - WDATAI_2 : in std_logic; - WDATAI_1 : in std_logic; - WDATAI_0 : in std_logic; - RDI : in std_logic; - WSTBI : in std_logic; - - CS_CHIF_0 : in std_logic; - CS_CHIF_1 : in std_logic; - CS_CHIF_2 : in std_logic; - CS_CHIF_3 : in std_logic; - CS_QIF : in std_logic; - - QUAD_ID_1 : in std_logic; - QUAD_ID_0 : in std_logic; - - FF_SYSCLK_P1 : out std_logic; - - FF_SYSCLK0 : out std_logic; - FF_SYSCLK1 : out std_logic; - FF_SYSCLK2 : out std_logic; - FF_SYSCLK3 : out std_logic; - - FF_RXCLK_P1 : out std_logic; - FF_RXCLK_P2 : out std_logic; - - FF_RXCLK0 : out std_logic; - FF_RXCLK1 : out std_logic; - FF_RXCLK2 : out std_logic; - FF_RXCLK3 : out std_logic; - - QUAD_CLK : out std_logic; - - GRP_CLK_P1_3 : in std_logic; - GRP_CLK_P1_2 : in std_logic; - GRP_CLK_P1_1 : in std_logic; - GRP_CLK_P1_0 : in std_logic; - - GRP_CLK_P2_3 : in std_logic; - GRP_CLK_P2_2 : in std_logic; - GRP_CLK_P2_1 : in std_logic; - GRP_CLK_P2_0 : in std_logic; - - GRP_START_3 : in std_logic; - GRP_START_2 : in std_logic; - GRP_START_1 : in std_logic; - GRP_START_0 : in std_logic; - - GRP_DONE_3 : in std_logic; - GRP_DONE_2 : in std_logic; - GRP_DONE_1 : in std_logic; - GRP_DONE_0 : in std_logic; - - GRP_DESKEW_ERROR_3 : in std_logic; - GRP_DESKEW_ERROR_2 : in std_logic; - GRP_DESKEW_ERROR_1 : in std_logic; - GRP_DESKEW_ERROR_0 : in std_logic; - - IQA_START_LS : out std_logic; - IQA_DONE_LS : out std_logic; - IQA_AND_FP1_LS : out std_logic; - IQA_AND_FP0_LS : out std_logic; - IQA_OR_FP1_LS : out std_logic; - IQA_OR_FP0_LS : out std_logic; - IQA_RST_N : out std_logic; - - FF_TCLK0 : in std_logic; - FF_TCLK1 : in std_logic; - FF_TCLK2 : in std_logic; - FF_TCLK3 : in std_logic; - - FF_RCLK0 : in std_logic; - FF_RCLK1 : in std_logic; - FF_RCLK2 : in std_logic; - FF_RCLK3 : in std_logic; - TCK_FMACP : in std_logic; - - FF_TXD_0_23 : in std_logic; - FF_TXD_0_22 : in std_logic; - FF_TXD_0_21 : in std_logic; - FF_TXD_0_20 : in std_logic; - FF_TXD_0_19 : in std_logic; - FF_TXD_0_18 : in std_logic; - FF_TXD_0_17 : in std_logic; - FF_TXD_0_16 : in std_logic; - FF_TXD_0_15 : in std_logic; - FF_TXD_0_14 : in std_logic; - FF_TXD_0_13 : in std_logic; - FF_TXD_0_12 : in std_logic; - FF_TXD_0_11 : in std_logic; - FF_TXD_0_10 : in std_logic; - FF_TXD_0_9 : in std_logic; - FF_TXD_0_8 : in std_logic; - FF_TXD_0_7 : in std_logic; - FF_TXD_0_6 : in std_logic; - FF_TXD_0_5 : in std_logic; - FF_TXD_0_4 : in std_logic; - FF_TXD_0_3 : in std_logic; - FF_TXD_0_2 : in std_logic; - FF_TXD_0_1 : in std_logic; - FF_TXD_0_0 : in std_logic; - FB_RXD_0_23 : out std_logic; - FB_RXD_0_22 : out std_logic; - FB_RXD_0_21 : out std_logic; - FB_RXD_0_20 : out std_logic; - FB_RXD_0_19 : out std_logic; - FB_RXD_0_18 : out std_logic; - FB_RXD_0_17 : out std_logic; - FB_RXD_0_16 : out std_logic; - FB_RXD_0_15 : out std_logic; - FB_RXD_0_14 : out std_logic; - FB_RXD_0_13 : out std_logic; - FB_RXD_0_12 : out std_logic; - FB_RXD_0_11 : out std_logic; - FB_RXD_0_10 : out std_logic; - FB_RXD_0_9 : out std_logic; - FB_RXD_0_8 : out std_logic; - FB_RXD_0_7 : out std_logic; - FB_RXD_0_6 : out std_logic; - FB_RXD_0_5 : out std_logic; - FB_RXD_0_4 : out std_logic; - FB_RXD_0_3 : out std_logic; - FB_RXD_0_2 : out std_logic; - FB_RXD_0_1 : out std_logic; - FB_RXD_0_0 : out std_logic; - FF_TXD_1_23 : in std_logic; - FF_TXD_1_22 : in std_logic; - FF_TXD_1_21 : in std_logic; - FF_TXD_1_20 : in std_logic; - FF_TXD_1_19 : in std_logic; - FF_TXD_1_18 : in std_logic; - FF_TXD_1_17 : in std_logic; - FF_TXD_1_16 : in std_logic; - FF_TXD_1_15 : in std_logic; - FF_TXD_1_14 : in std_logic; - FF_TXD_1_13 : in std_logic; - FF_TXD_1_12 : in std_logic; - FF_TXD_1_11 : in std_logic; - FF_TXD_1_10 : in std_logic; - FF_TXD_1_9 : in std_logic; - FF_TXD_1_8 : in std_logic; - FF_TXD_1_7 : in std_logic; - FF_TXD_1_6 : in std_logic; - FF_TXD_1_5 : in std_logic; - FF_TXD_1_4 : in std_logic; - FF_TXD_1_3 : in std_logic; - FF_TXD_1_2 : in std_logic; - FF_TXD_1_1 : in std_logic; - FF_TXD_1_0 : in std_logic; - FB_RXD_1_23 : out std_logic; - FB_RXD_1_22 : out std_logic; - FB_RXD_1_21 : out std_logic; - FB_RXD_1_20 : out std_logic; - FB_RXD_1_19 : out std_logic; - FB_RXD_1_18 : out std_logic; - FB_RXD_1_17 : out std_logic; - FB_RXD_1_16 : out std_logic; - FB_RXD_1_15 : out std_logic; - FB_RXD_1_14 : out std_logic; - FB_RXD_1_13 : out std_logic; - FB_RXD_1_12 : out std_logic; - FB_RXD_1_11 : out std_logic; - FB_RXD_1_10 : out std_logic; - FB_RXD_1_9 : out std_logic; - FB_RXD_1_8 : out std_logic; - FB_RXD_1_7 : out std_logic; - FB_RXD_1_6 : out std_logic; - FB_RXD_1_5 : out std_logic; - FB_RXD_1_4 : out std_logic; - FB_RXD_1_3 : out std_logic; - FB_RXD_1_2 : out std_logic; - FB_RXD_1_1 : out std_logic; - FB_RXD_1_0 : out std_logic; - FF_TXD_2_23 : in std_logic; - FF_TXD_2_22 : in std_logic; - FF_TXD_2_21 : in std_logic; - FF_TXD_2_20 : in std_logic; - FF_TXD_2_19 : in std_logic; - FF_TXD_2_18 : in std_logic; - FF_TXD_2_17 : in std_logic; - FF_TXD_2_16 : in std_logic; - FF_TXD_2_15 : in std_logic; - FF_TXD_2_14 : in std_logic; - FF_TXD_2_13 : in std_logic; - FF_TXD_2_12 : in std_logic; - FF_TXD_2_11 : in std_logic; - FF_TXD_2_10 : in std_logic; - FF_TXD_2_9 : in std_logic; - FF_TXD_2_8 : in std_logic; - FF_TXD_2_7 : in std_logic; - FF_TXD_2_6 : in std_logic; - FF_TXD_2_5 : in std_logic; - FF_TXD_2_4 : in std_logic; - FF_TXD_2_3 : in std_logic; - FF_TXD_2_2 : in std_logic; - FF_TXD_2_1 : in std_logic; - FF_TXD_2_0 : in std_logic; - FB_RXD_2_23 : out std_logic; - FB_RXD_2_22 : out std_logic; - FB_RXD_2_21 : out std_logic; - FB_RXD_2_20 : out std_logic; - FB_RXD_2_19 : out std_logic; - FB_RXD_2_18 : out std_logic; - FB_RXD_2_17 : out std_logic; - FB_RXD_2_16 : out std_logic; - FB_RXD_2_15 : out std_logic; - FB_RXD_2_14 : out std_logic; - FB_RXD_2_13 : out std_logic; - FB_RXD_2_12 : out std_logic; - FB_RXD_2_11 : out std_logic; - FB_RXD_2_10 : out std_logic; - FB_RXD_2_9 : out std_logic; - FB_RXD_2_8 : out std_logic; - FB_RXD_2_7 : out std_logic; - FB_RXD_2_6 : out std_logic; - FB_RXD_2_5 : out std_logic; - FB_RXD_2_4 : out std_logic; - FB_RXD_2_3 : out std_logic; - FB_RXD_2_2 : out std_logic; - FB_RXD_2_1 : out std_logic; - FB_RXD_2_0 : out std_logic; - FF_TXD_3_23 : in std_logic; - FF_TXD_3_22 : in std_logic; - FF_TXD_3_21 : in std_logic; - FF_TXD_3_20 : in std_logic; - FF_TXD_3_19 : in std_logic; - FF_TXD_3_18 : in std_logic; - FF_TXD_3_17 : in std_logic; - FF_TXD_3_16 : in std_logic; - FF_TXD_3_15 : in std_logic; - FF_TXD_3_14 : in std_logic; - FF_TXD_3_13 : in std_logic; - FF_TXD_3_12 : in std_logic; - FF_TXD_3_11 : in std_logic; - FF_TXD_3_10 : in std_logic; - FF_TXD_3_9 : in std_logic; - FF_TXD_3_8 : in std_logic; - FF_TXD_3_7 : in std_logic; - FF_TXD_3_6 : in std_logic; - FF_TXD_3_5 : in std_logic; - FF_TXD_3_4 : in std_logic; - FF_TXD_3_3 : in std_logic; - FF_TXD_3_2 : in std_logic; - FF_TXD_3_1 : in std_logic; - FF_TXD_3_0 : in std_logic; - FB_RXD_3_23 : out std_logic; - FB_RXD_3_22 : out std_logic; - FB_RXD_3_21 : out std_logic; - FB_RXD_3_20 : out std_logic; - FB_RXD_3_19 : out std_logic; - FB_RXD_3_18 : out std_logic; - FB_RXD_3_17 : out std_logic; - FB_RXD_3_16 : out std_logic; - FB_RXD_3_15 : out std_logic; - FB_RXD_3_14 : out std_logic; - FB_RXD_3_13 : out std_logic; - FB_RXD_3_12 : out std_logic; - FB_RXD_3_11 : out std_logic; - FB_RXD_3_10 : out std_logic; - FB_RXD_3_9 : out std_logic; - FB_RXD_3_8 : out std_logic; - FB_RXD_3_7 : out std_logic; - FB_RXD_3_6 : out std_logic; - FB_RXD_3_5 : out std_logic; - FB_RXD_3_4 : out std_logic; - FB_RXD_3_3 : out std_logic; - FB_RXD_3_2 : out std_logic; - FB_RXD_3_1 : out std_logic; - FB_RXD_3_0 : out std_logic; - TCK_FMAC : out std_logic; - BS4PAD_0 : out std_logic; - BS4PAD_1 : out std_logic; - BS4PAD_2 : out std_logic; - BS4PAD_3 : out std_logic; - COUT_21 : out std_logic; - COUT_20 : out std_logic; - COUT_19 : out std_logic; - COUT_18 : out std_logic; - COUT_17 : out std_logic; - COUT_16 : out std_logic; - COUT_15 : out std_logic; - COUT_14 : out std_logic; - COUT_13 : out std_logic; - COUT_12 : out std_logic; - COUT_11 : out std_logic; - COUT_10 : out std_logic; - COUT_9 : out std_logic; - COUT_8 : out std_logic; - COUT_7 : out std_logic; - COUT_6 : out std_logic; - COUT_5 : out std_logic; - COUT_4 : out std_logic; - COUT_3 : out std_logic; - COUT_2 : out std_logic; - COUT_1 : out std_logic; - COUT_0 : out std_logic; - CIN_12 : in std_logic; - CIN_11 : in std_logic; - CIN_10 : in std_logic; - CIN_9 : in std_logic; - CIN_8 : in std_logic; - CIN_7 : in std_logic; - CIN_6 : in std_logic; - CIN_5 : in std_logic; - CIN_4 : in std_logic; - CIN_3 : in std_logic; - CIN_2 : in std_logic; - CIN_1 : in std_logic; - CIN_0 : in std_logic; - TESTCLK_MACO : in std_logic -); -end component; - -begin - -PCSA_sim_inst : PCSA_sim -generic map ( - CONFIG_FILE => CONFIG_FILE) -port map ( - HDINP0 => HDINP0, - HDINN0 => HDINN0, - HDINP1 => HDINP1, - HDINN1 => HDINN1, - HDINP2 => HDINP2, - HDINN2 => HDINN2, - HDINP3 => HDINP3, - HDINN3 => HDINN3, - HDOUTP0 => HDOUTP0, - HDOUTN0 => HDOUTN0, - HDOUTP1 => HDOUTP1, - HDOUTN1 => HDOUTN1, - HDOUTP2 => HDOUTP2, - HDOUTN2 => HDOUTN2, - HDOUTP3 => HDOUTP3, - HDOUTN3 => HDOUTN3, - REFCLKP => REFCLKP, - REFCLKN => REFCLKN, - RXREFCLKP => RXREFCLKP, - RXREFCLKN => RXREFCLKN, - FFC_QUAD_RST => FFC_QUAD_RST, - FFC_MACRO_RST => FFC_MACRO_RST, - FFC_LANE_TX_RST0 => FFC_LANE_TX_RST0, - FFC_LANE_TX_RST1 => FFC_LANE_TX_RST1, - FFC_LANE_TX_RST2 => FFC_LANE_TX_RST2, - FFC_LANE_TX_RST3 => FFC_LANE_TX_RST3, - FFC_LANE_RX_RST0 => FFC_LANE_RX_RST0, - FFC_LANE_RX_RST1 => FFC_LANE_RX_RST1, - FFC_LANE_RX_RST2 => FFC_LANE_RX_RST2, - FFC_LANE_RX_RST3 => FFC_LANE_RX_RST3, - FFC_PCIE_EI_EN_0 => FFC_PCIE_EI_EN_0, - FFC_PCIE_EI_EN_1 => FFC_PCIE_EI_EN_1, - FFC_PCIE_EI_EN_2 => FFC_PCIE_EI_EN_2, - FFC_PCIE_EI_EN_3 => FFC_PCIE_EI_EN_3, - FFC_PCIE_CT_0 => FFC_PCIE_CT_0, - FFC_PCIE_CT_1 => FFC_PCIE_CT_1, - FFC_PCIE_CT_2 => FFC_PCIE_CT_2, - FFC_PCIE_CT_3 => FFC_PCIE_CT_3, - FFS_PCIE_CON_0 => FFS_PCIE_CON_0, - FFS_PCIE_CON_1 => FFS_PCIE_CON_1, - FFS_PCIE_CON_2 => FFS_PCIE_CON_2, - FFS_PCIE_CON_3 => FFS_PCIE_CON_3, - FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0, - FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1, - FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2, - FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3, - FFC_PCIE_TX_0 => FFC_PCIE_TX_0, - FFC_PCIE_TX_1 => FFC_PCIE_TX_1, - FFC_PCIE_TX_2 => FFC_PCIE_TX_2, - FFC_PCIE_TX_3 => FFC_PCIE_TX_3, - FFC_PCIE_RX_0 => FFC_PCIE_RX_0, - FFC_PCIE_RX_1 => FFC_PCIE_RX_1, - FFC_PCIE_RX_2 => FFC_PCIE_RX_2, - FFC_PCIE_RX_3 => FFC_PCIE_RX_3, - FFC_SD_0 => FFC_SD_0, - FFC_SD_1 => FFC_SD_1, - FFC_SD_2 => FFC_SD_2, - FFC_SD_3 => FFC_SD_3, - FFC_EN_CGA_0 => FFC_EN_CGA_0, - FFC_EN_CGA_1 => FFC_EN_CGA_1, - FFC_EN_CGA_2 => FFC_EN_CGA_2, - FFC_EN_CGA_3 => FFC_EN_CGA_3, - FFC_ALIGN_EN_0 => FFC_ALIGN_EN_0, - FFC_ALIGN_EN_1 => FFC_ALIGN_EN_1, - FFC_ALIGN_EN_2 => FFC_ALIGN_EN_2, - FFC_ALIGN_EN_3 => FFC_ALIGN_EN_3, - FFC_AB_RESET => FFC_AB_RESET, - FFC_CD_RESET => FFC_CD_RESET, - FFS_LS_STATUS_0 => FFS_LS_STATUS_0, - FFS_LS_STATUS_1 => FFS_LS_STATUS_1, - FFS_LS_STATUS_2 => FFS_LS_STATUS_2, - FFS_LS_STATUS_3 => FFS_LS_STATUS_3, - FFS_AB_STATUS => FFS_AB_STATUS, - FFS_CD_STATUS => FFS_CD_STATUS, - FFS_AB_ALIGNED => FFS_AB_ALIGNED, - FFS_CD_ALIGNED => FFS_CD_ALIGNED, - FFS_AB_FAILED => FFS_AB_FAILED, - FFS_CD_FAILED => FFS_CD_FAILED, - FFS_RLOS_LO0 => FFS_RLOS_LO0, - FFS_RLOS_LO1 => FFS_RLOS_LO1, - FFS_RLOS_LO2 => FFS_RLOS_LO2, - FFS_RLOS_LO3 => FFS_RLOS_LO3, - FFC_FB_LB_0 => FFC_FB_LB_0, - FFC_FB_LB_1 => FFC_FB_LB_1, - FFC_FB_LB_2 => FFC_FB_LB_2, - FFC_FB_LB_3 => FFC_FB_LB_3, - FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0, - FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1, - FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2, - FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3, - FFS_CC_ORUN_0 => FFS_CC_ORUN_0, - FFS_CC_ORUN_1 => FFS_CC_ORUN_1, - FFS_CC_ORUN_2 => FFS_CC_ORUN_2, - FFS_CC_ORUN_3 => FFS_CC_ORUN_3, - FFS_CC_URUN_0 => FFS_CC_URUN_0, - FFS_CC_URUN_1 => FFS_CC_URUN_1, - FFS_CC_URUN_2 => FFS_CC_URUN_2, - FFS_CC_URUN_3 => FFS_CC_URUN_3, - FFC_CK_CORE_TX => FFC_CK_CORE_TX, - FFC_CK_CORE_RX => FFC_CK_CORE_RX, - BS4PAD_0 => BS4PAD_0, - BS4PAD_1 => BS4PAD_1, - BS4PAD_2 => BS4PAD_2, - BS4PAD_3 => BS4PAD_3, - RDATAO_7 => RDATAO_7, - RDATAO_6 => RDATAO_6, - RDATAO_5 => RDATAO_5, - RDATAO_4 => RDATAO_4, - RDATAO_3 => RDATAO_3, - RDATAO_2 => RDATAO_2, - RDATAO_1 => RDATAO_1, - RDATAO_0 => RDATAO_0, - INTO => INTO, - ADDRI_7 => ADDRI_7, - ADDRI_6 => ADDRI_6, - ADDRI_5 => ADDRI_5, - ADDRI_4 => ADDRI_4, - ADDRI_3 => ADDRI_3, - ADDRI_2 => ADDRI_2, - ADDRI_1 => ADDRI_1, - ADDRI_0 => ADDRI_0, - WDATAI_7 => WDATAI_7, - WDATAI_6 => WDATAI_6, - WDATAI_5 => WDATAI_5, - WDATAI_4 => WDATAI_4, - WDATAI_3 => WDATAI_3, - WDATAI_2 => WDATAI_2, - WDATAI_1 => WDATAI_1, - WDATAI_0 => WDATAI_0, - RDI => RDI, - WSTBI => WSTBI, - CS_CHIF_0 => CS_CHIF_0, - CS_CHIF_1 => CS_CHIF_1, - CS_CHIF_2 => CS_CHIF_2, - CS_CHIF_3 => CS_CHIF_3, - CS_QIF => CS_QIF, - QUAD_ID_1 => QUAD_ID_1, - QUAD_ID_0 => QUAD_ID_0, - FF_SYSCLK_P1 => FF_SYSCLK_P1, - FF_SYSCLK0 => FF_SYSCLK0, - FF_SYSCLK1 => FF_SYSCLK1, - FF_SYSCLK2 => FF_SYSCLK2, - FF_SYSCLK3 => FF_SYSCLK3, - FF_RXCLK_P1 => FF_RXCLK_P1, - FF_RXCLK_P2 => FF_RXCLK_P2, - FF_RXCLK0 => FF_RXCLK0, - FF_RXCLK1 => FF_RXCLK1, - FF_RXCLK2 => FF_RXCLK2, - FF_RXCLK3 => FF_RXCLK3, - QUAD_CLK => QUAD_CLK, - GRP_CLK_P1_3 => GRP_CLK_P1_3, - GRP_CLK_P1_2 => GRP_CLK_P1_2, - GRP_CLK_P1_1 => GRP_CLK_P1_1, - GRP_CLK_P1_0 => GRP_CLK_P1_0, - GRP_CLK_P2_3 => GRP_CLK_P2_3, - GRP_CLK_P2_2 => GRP_CLK_P2_2, - GRP_CLK_P2_1 => GRP_CLK_P2_1, - GRP_CLK_P2_0 => GRP_CLK_P2_0, - GRP_START_3 => GRP_START_3, - GRP_START_2 => GRP_START_2, - GRP_START_1 => GRP_START_1, - GRP_START_0 => GRP_START_0, - GRP_DONE_3 => GRP_DONE_3, - GRP_DONE_2 => GRP_DONE_2, - GRP_DONE_1 => GRP_DONE_1, - GRP_DONE_0 => GRP_DONE_0, - GRP_DESKEW_ERROR_3 => GRP_DESKEW_ERROR_3, - GRP_DESKEW_ERROR_2 => GRP_DESKEW_ERROR_2, - GRP_DESKEW_ERROR_1 => GRP_DESKEW_ERROR_1, - GRP_DESKEW_ERROR_0 => GRP_DESKEW_ERROR_0, - IQA_START_LS => IQA_START_LS, - IQA_DONE_LS => IQA_DONE_LS, - IQA_AND_FP1_LS => IQA_AND_FP1_LS, - IQA_AND_FP0_LS => IQA_AND_FP0_LS, - IQA_OR_FP1_LS => IQA_OR_FP1_LS, - IQA_OR_FP0_LS => IQA_OR_FP0_LS, - IQA_RST_N => IQA_RST_N, - FF_TCLK0 => FF_TCLK0, - FF_TCLK1 => FF_TCLK1, - FF_TCLK2 => FF_TCLK2, - FF_TCLK3 => FF_TCLK3, - FF_RCLK0 => FF_RCLK0, - FF_RCLK1 => FF_RCLK1, - FF_RCLK2 => FF_RCLK2, - FF_RCLK3 => FF_RCLK3, - TCK_FMACP => TCK_FMACP, - FF_TXD_0_23 => FF_TXD_0_23, - FF_TXD_0_22 => FF_TXD_0_22, - FF_TXD_0_21 => FF_TXD_0_21, - FF_TXD_0_20 => FF_TXD_0_20, - FF_TXD_0_19 => FF_TXD_0_19, - FF_TXD_0_18 => FF_TXD_0_18, - FF_TXD_0_17 => FF_TXD_0_17, - FF_TXD_0_16 => FF_TXD_0_16, - FF_TXD_0_15 => FF_TXD_0_15, - FF_TXD_0_14 => FF_TXD_0_14, - FF_TXD_0_13 => FF_TXD_0_13, - FF_TXD_0_12 => FF_TXD_0_12, - FF_TXD_0_11 => FF_TXD_0_11, - FF_TXD_0_10 => FF_TXD_0_10, - FF_TXD_0_9 => FF_TXD_0_9, - FF_TXD_0_8 => FF_TXD_0_8, - FF_TXD_0_7 => FF_TXD_0_7, - FF_TXD_0_6 => FF_TXD_0_6, - FF_TXD_0_5 => FF_TXD_0_5, - FF_TXD_0_4 => FF_TXD_0_4, - FF_TXD_0_3 => FF_TXD_0_3, - FF_TXD_0_2 => FF_TXD_0_2, - FF_TXD_0_1 => FF_TXD_0_1, - FF_TXD_0_0 => FF_TXD_0_0, - FB_RXD_0_23 => FB_RXD_0_23, - FB_RXD_0_22 => FB_RXD_0_22, - FB_RXD_0_21 => FB_RXD_0_21, - FB_RXD_0_20 => FB_RXD_0_20, - FB_RXD_0_19 => FB_RXD_0_19, - FB_RXD_0_18 => FB_RXD_0_18, - FB_RXD_0_17 => FB_RXD_0_17, - FB_RXD_0_16 => FB_RXD_0_16, - FB_RXD_0_15 => FB_RXD_0_15, - FB_RXD_0_14 => FB_RXD_0_14, - FB_RXD_0_13 => FB_RXD_0_13, - FB_RXD_0_12 => FB_RXD_0_12, - FB_RXD_0_11 => FB_RXD_0_11, - FB_RXD_0_10 => FB_RXD_0_10, - FB_RXD_0_9 => FB_RXD_0_9, - FB_RXD_0_8 => FB_RXD_0_8, - FB_RXD_0_7 => FB_RXD_0_7, - FB_RXD_0_6 => FB_RXD_0_6, - FB_RXD_0_5 => FB_RXD_0_5, - FB_RXD_0_4 => FB_RXD_0_4, - FB_RXD_0_3 => FB_RXD_0_3, - FB_RXD_0_2 => FB_RXD_0_2, - FB_RXD_0_1 => FB_RXD_0_1, - FB_RXD_0_0 => FB_RXD_0_0, - FF_TXD_1_23 => FF_TXD_1_23, - FF_TXD_1_22 => FF_TXD_1_22, - FF_TXD_1_21 => FF_TXD_1_21, - FF_TXD_1_20 => FF_TXD_1_20, - FF_TXD_1_19 => FF_TXD_1_19, - FF_TXD_1_18 => FF_TXD_1_18, - FF_TXD_1_17 => FF_TXD_1_17, - FF_TXD_1_16 => FF_TXD_1_16, - FF_TXD_1_15 => FF_TXD_1_15, - FF_TXD_1_14 => FF_TXD_1_14, - FF_TXD_1_13 => FF_TXD_1_13, - FF_TXD_1_12 => FF_TXD_1_12, - FF_TXD_1_11 => FF_TXD_1_11, - FF_TXD_1_10 => FF_TXD_1_10, - FF_TXD_1_9 => FF_TXD_1_9, - FF_TXD_1_8 => FF_TXD_1_8, - FF_TXD_1_7 => FF_TXD_1_7, - FF_TXD_1_6 => FF_TXD_1_6, - FF_TXD_1_5 => FF_TXD_1_5, - FF_TXD_1_4 => FF_TXD_1_4, - FF_TXD_1_3 => FF_TXD_1_3, - FF_TXD_1_2 => FF_TXD_1_2, - FF_TXD_1_1 => FF_TXD_1_1, - FF_TXD_1_0 => FF_TXD_1_0, - FB_RXD_1_23 => FB_RXD_1_23, - FB_RXD_1_22 => FB_RXD_1_22, - FB_RXD_1_21 => FB_RXD_1_21, - FB_RXD_1_20 => FB_RXD_1_20, - FB_RXD_1_19 => FB_RXD_1_19, - FB_RXD_1_18 => FB_RXD_1_18, - FB_RXD_1_17 => FB_RXD_1_17, - FB_RXD_1_16 => FB_RXD_1_16, - FB_RXD_1_15 => FB_RXD_1_15, - FB_RXD_1_14 => FB_RXD_1_14, - FB_RXD_1_13 => FB_RXD_1_13, - FB_RXD_1_12 => FB_RXD_1_12, - FB_RXD_1_11 => FB_RXD_1_11, - FB_RXD_1_10 => FB_RXD_1_10, - FB_RXD_1_9 => FB_RXD_1_9, - FB_RXD_1_8 => FB_RXD_1_8, - FB_RXD_1_7 => FB_RXD_1_7, - FB_RXD_1_6 => FB_RXD_1_6, - FB_RXD_1_5 => FB_RXD_1_5, - FB_RXD_1_4 => FB_RXD_1_4, - FB_RXD_1_3 => FB_RXD_1_3, - FB_RXD_1_2 => FB_RXD_1_2, - FB_RXD_1_1 => FB_RXD_1_1, - FB_RXD_1_0 => FB_RXD_1_0, - FF_TXD_2_23 => FF_TXD_2_23, - FF_TXD_2_22 => FF_TXD_2_22, - FF_TXD_2_21 => FF_TXD_2_21, - FF_TXD_2_20 => FF_TXD_2_20, - FF_TXD_2_19 => FF_TXD_2_19, - FF_TXD_2_18 => FF_TXD_2_18, - FF_TXD_2_17 => FF_TXD_2_17, - FF_TXD_2_16 => FF_TXD_2_16, - FF_TXD_2_15 => FF_TXD_2_15, - FF_TXD_2_14 => FF_TXD_2_14, - FF_TXD_2_13 => FF_TXD_2_13, - FF_TXD_2_12 => FF_TXD_2_12, - FF_TXD_2_11 => FF_TXD_2_11, - FF_TXD_2_10 => FF_TXD_2_10, - FF_TXD_2_9 => FF_TXD_2_9, - FF_TXD_2_8 => FF_TXD_2_8, - FF_TXD_2_7 => FF_TXD_2_7, - FF_TXD_2_6 => FF_TXD_2_6, - FF_TXD_2_5 => FF_TXD_2_5, - FF_TXD_2_4 => FF_TXD_2_4, - FF_TXD_2_3 => FF_TXD_2_3, - FF_TXD_2_2 => FF_TXD_2_2, - FF_TXD_2_1 => FF_TXD_2_1, - FF_TXD_2_0 => FF_TXD_2_0, - FB_RXD_2_23 => FB_RXD_2_23, - FB_RXD_2_22 => FB_RXD_2_22, - FB_RXD_2_21 => FB_RXD_2_21, - FB_RXD_2_20 => FB_RXD_2_20, - FB_RXD_2_19 => FB_RXD_2_19, - FB_RXD_2_18 => FB_RXD_2_18, - FB_RXD_2_17 => FB_RXD_2_17, - FB_RXD_2_16 => FB_RXD_2_16, - FB_RXD_2_15 => FB_RXD_2_15, - FB_RXD_2_14 => FB_RXD_2_14, - FB_RXD_2_13 => FB_RXD_2_13, - FB_RXD_2_12 => FB_RXD_2_12, - FB_RXD_2_11 => FB_RXD_2_11, - FB_RXD_2_10 => FB_RXD_2_10, - FB_RXD_2_9 => FB_RXD_2_9, - FB_RXD_2_8 => FB_RXD_2_8, - FB_RXD_2_7 => FB_RXD_2_7, - FB_RXD_2_6 => FB_RXD_2_6, - FB_RXD_2_5 => FB_RXD_2_5, - FB_RXD_2_4 => FB_RXD_2_4, - FB_RXD_2_3 => FB_RXD_2_3, - FB_RXD_2_2 => FB_RXD_2_2, - FB_RXD_2_1 => FB_RXD_2_1, - FB_RXD_2_0 => FB_RXD_2_0, - FF_TXD_3_23 => FF_TXD_3_23, - FF_TXD_3_22 => FF_TXD_3_22, - FF_TXD_3_21 => FF_TXD_3_21, - FF_TXD_3_20 => FF_TXD_3_20, - FF_TXD_3_19 => FF_TXD_3_19, - FF_TXD_3_18 => FF_TXD_3_18, - FF_TXD_3_17 => FF_TXD_3_17, - FF_TXD_3_16 => FF_TXD_3_16, - FF_TXD_3_15 => FF_TXD_3_15, - FF_TXD_3_14 => FF_TXD_3_14, - FF_TXD_3_13 => FF_TXD_3_13, - FF_TXD_3_12 => FF_TXD_3_12, - FF_TXD_3_11 => FF_TXD_3_11, - FF_TXD_3_10 => FF_TXD_3_10, - FF_TXD_3_9 => FF_TXD_3_9, - FF_TXD_3_8 => FF_TXD_3_8, - FF_TXD_3_7 => FF_TXD_3_7, - FF_TXD_3_6 => FF_TXD_3_6, - FF_TXD_3_5 => FF_TXD_3_5, - FF_TXD_3_4 => FF_TXD_3_4, - FF_TXD_3_3 => FF_TXD_3_3, - FF_TXD_3_2 => FF_TXD_3_2, - FF_TXD_3_1 => FF_TXD_3_1, - FF_TXD_3_0 => FF_TXD_3_0, - FB_RXD_3_23 => FB_RXD_3_23, - FB_RXD_3_22 => FB_RXD_3_22, - FB_RXD_3_21 => FB_RXD_3_21, - FB_RXD_3_20 => FB_RXD_3_20, - FB_RXD_3_19 => FB_RXD_3_19, - FB_RXD_3_18 => FB_RXD_3_18, - FB_RXD_3_17 => FB_RXD_3_17, - FB_RXD_3_16 => FB_RXD_3_16, - FB_RXD_3_15 => FB_RXD_3_15, - FB_RXD_3_14 => FB_RXD_3_14, - FB_RXD_3_13 => FB_RXD_3_13, - FB_RXD_3_12 => FB_RXD_3_12, - FB_RXD_3_11 => FB_RXD_3_11, - FB_RXD_3_10 => FB_RXD_3_10, - FB_RXD_3_9 => FB_RXD_3_9, - FB_RXD_3_8 => FB_RXD_3_8, - FB_RXD_3_7 => FB_RXD_3_7, - FB_RXD_3_6 => FB_RXD_3_6, - FB_RXD_3_5 => FB_RXD_3_5, - FB_RXD_3_4 => FB_RXD_3_4, - FB_RXD_3_3 => FB_RXD_3_3, - FB_RXD_3_2 => FB_RXD_3_2, - FB_RXD_3_1 => FB_RXD_3_1, - FB_RXD_3_0 => FB_RXD_3_0, - TCK_FMAC => TCK_FMAC, - COUT_21 => COUT_21, - COUT_20 => COUT_20, - COUT_19 => COUT_19, - COUT_18 => COUT_18, - COUT_17 => COUT_17, - COUT_16 => COUT_16, - COUT_15 => COUT_15, - COUT_14 => COUT_14, - COUT_13 => COUT_13, - COUT_12 => COUT_12, - COUT_11 => COUT_11, - COUT_10 => COUT_10, - COUT_9 => COUT_9, - COUT_8 => COUT_8, - COUT_7 => COUT_7, - COUT_6 => COUT_6, - COUT_5 => COUT_5, - COUT_4 => COUT_4, - COUT_3 => COUT_3, - COUT_2 => COUT_2, - COUT_1 => COUT_1, - COUT_0 => COUT_0, - CIN_12 => CIN_12, - CIN_11 => CIN_11, - CIN_10 => CIN_10, - CIN_9 => CIN_9, - CIN_8 => CIN_8, - CIN_7 => CIN_7, - CIN_6 => CIN_6, - CIN_5 => CIN_5, - CIN_4 => CIN_4, - CIN_3 => CIN_3, - CIN_2 => CIN_2, - CIN_1 => CIN_1, - CIN_0 => CIN_0, - TESTCLK_MACO => TESTCLK_MACO -); - -end PCSA_arch; - ---synopsys translate_on - ---synopsys translate_off -library SC; -use SC.components.all; ---synopsys translate_on - -library IEEE, STD; -use IEEE.std_logic_1164.all; -use STD.TEXTIO.all; - - -entity serdes_fpga_ref_clk is - GENERIC (USER_CONFIG_FILE : String := "serdes_fpga_ref_clk.txt"); - port ( --- serdes clk pins -- - rxrefclk, refclk : in std_logic; - rxa_pclk, rxb_pclk : out std_logic; - hdinp_0, hdinn_0 : in std_logic; - hdoutp_0, hdoutn_0 : out std_logic; - tclk_0, rclk_0 : in std_logic; - tx_rst_0, rx_rst_0 : in std_logic; - ref_0_sclk, rx_0_sclk : out std_logic; - txd_0 : in std_logic_vector (15 downto 0); - tx_k_0, tx_force_disp_0, tx_disp_sel_0 : in std_logic_vector (1 downto 0); - rxd_0 : out std_logic_vector (15 downto 0); - rx_k_0, rx_disp_err_detect_0, rx_cv_detect_0 : out std_logic_vector (1 downto 0); - tx_crc_init_0 : in std_logic_vector (1 downto 0); - rx_crc_eop_0 : out std_logic_vector (1 downto 0); - word_align_en_0, mca_align_en_0, felb_0 : in std_logic; - lsm_en_0 : in std_logic; - lsm_status_0 : out std_logic; - - hdinp_1, hdinn_1 : in std_logic; - hdoutp_1, hdoutn_1 : out std_logic; - tclk_1, rclk_1 : in std_logic; - tx_rst_1, rx_rst_1 : in std_logic; - ref_1_sclk, rx_1_sclk : out std_logic; - txd_1 : in std_logic_vector (15 downto 0); - tx_k_1, tx_force_disp_1, tx_disp_sel_1 : in std_logic_vector (1 downto 0); - rxd_1 : out std_logic_vector (15 downto 0); - rx_k_1, rx_disp_err_detect_1, rx_cv_detect_1 : out std_logic_vector (1 downto 0); - tx_crc_init_1 : in std_logic_vector (1 downto 0); - rx_crc_eop_1 : out std_logic_vector (1 downto 0); - word_align_en_1, mca_align_en_1, felb_1 : in std_logic; - lsm_en_1 : in std_logic; - lsm_status_1 : out std_logic; - - hdinp_2, hdinn_2 : in std_logic; - hdoutp_2, hdoutn_2 : out std_logic; - tclk_2, rclk_2 : in std_logic; - tx_rst_2, rx_rst_2 : in std_logic; - ref_2_sclk, rx_2_sclk : out std_logic; - txd_2 : in std_logic_vector (15 downto 0); - tx_k_2, tx_force_disp_2, tx_disp_sel_2 : in std_logic_vector (1 downto 0); - rxd_2 : out std_logic_vector (15 downto 0); - rx_k_2, rx_disp_err_detect_2, rx_cv_detect_2 : out std_logic_vector (1 downto 0); - tx_crc_init_2 : in std_logic_vector (1 downto 0); - rx_crc_eop_2 : out std_logic_vector (1 downto 0); - word_align_en_2, mca_align_en_2, felb_2 : in std_logic; - lsm_en_2 : in std_logic; - lsm_status_2 : out std_logic; - - hdinp_3, hdinn_3 : in std_logic; - hdoutp_3, hdoutn_3 : out std_logic; - tclk_3, rclk_3 : in std_logic; - tx_rst_3, rx_rst_3 : in std_logic; - ref_3_sclk, rx_3_sclk : out std_logic; - txd_3 : in std_logic_vector (15 downto 0); - tx_k_3, tx_force_disp_3, tx_disp_sel_3 : in std_logic_vector (1 downto 0); - rxd_3 : out std_logic_vector (15 downto 0); - rx_k_3, rx_disp_err_detect_3, rx_cv_detect_3 : out std_logic_vector (1 downto 0); - tx_crc_init_3 : in std_logic_vector (1 downto 0); - rx_crc_eop_3 : out std_logic_vector (1 downto 0); - word_align_en_3, mca_align_en_3, felb_3 : in std_logic; - lsm_en_3 : in std_logic; - lsm_status_3 : out std_logic; - mca_resync_01 : in std_logic; - mca_aligned_01, mca_inskew_01, mca_outskew_01 : out std_logic; - mca_resync_23 : in std_logic; - mca_aligned_23, mca_inskew_23, mca_outskew_23 : out std_logic; - quad_rst, serdes_rst : in std_logic; - ref_pclk : out std_logic); - -end serdes_fpga_ref_clk; - -architecture serdes_fpga_ref_clk_arch of serdes_fpga_ref_clk is - -component VLO -port ( - Z : out std_logic); -end component; - -component VHI -port ( - Z : out std_logic); -end component; - -component PCSA ---synopsys translate_off -GENERIC( - CONFIG_FILE : String - ); ---synopsys translate_on -port ( - HDINP0 : in std_logic; - HDINN0 : in std_logic; - HDINP1 : in std_logic; - HDINN1 : in std_logic; - HDINP2 : in std_logic; - HDINN2 : in std_logic; - HDINP3 : in std_logic; - HDINN3 : in std_logic; - HDOUTP0 : out std_logic; - HDOUTN0 : out std_logic; - HDOUTP1 : out std_logic; - HDOUTN1 : out std_logic; - HDOUTP2 : out std_logic; - HDOUTN2 : out std_logic; - HDOUTP3 : out std_logic; - HDOUTN3 : out std_logic; - REFCLKP : in std_logic; - REFCLKN : in std_logic; - RXREFCLKP : in std_logic; - RXREFCLKN : in std_logic; - FFC_QUAD_RST : in std_logic; - FFC_MACRO_RST : in std_logic; - - FFC_LANE_TX_RST0 : in std_logic; - FFC_LANE_TX_RST1 : in std_logic; - FFC_LANE_TX_RST2 : in std_logic; - FFC_LANE_TX_RST3 : in std_logic; - - FFC_LANE_RX_RST0 : in std_logic; - FFC_LANE_RX_RST1 : in std_logic; - FFC_LANE_RX_RST2 : in std_logic; - FFC_LANE_RX_RST3 : in std_logic; - - FFC_PCIE_EI_EN_0 : in std_logic; - FFC_PCIE_EI_EN_1 : in std_logic; - FFC_PCIE_EI_EN_2 : in std_logic; - FFC_PCIE_EI_EN_3 : in std_logic; - - FFC_PCIE_CT_0 : in std_logic; - FFC_PCIE_CT_1 : in std_logic; - FFC_PCIE_CT_2 : in std_logic; - FFC_PCIE_CT_3 : in std_logic; - - FFS_PCIE_CON_0 : out std_logic; - FFS_PCIE_CON_1 : out std_logic; - FFS_PCIE_CON_2 : out std_logic; - FFS_PCIE_CON_3 : out std_logic; - - FFS_PCIE_DONE_0 : out std_logic; - FFS_PCIE_DONE_1 : out std_logic; - FFS_PCIE_DONE_2 : out std_logic; - FFS_PCIE_DONE_3 : out std_logic; - - FFC_PCIE_TX_0 : in std_logic; - FFC_PCIE_TX_1 : in std_logic; - FFC_PCIE_TX_2 : in std_logic; - FFC_PCIE_TX_3 : in std_logic; - - FFC_PCIE_RX_0 : in std_logic; - FFC_PCIE_RX_1 : in std_logic; - FFC_PCIE_RX_2 : in std_logic; - FFC_PCIE_RX_3 : in std_logic; - - FFC_SD_0 : in std_logic; - FFC_SD_1 : in std_logic; - FFC_SD_2 : in std_logic; - FFC_SD_3 : in std_logic; - - FFC_EN_CGA_0 : in std_logic; - FFC_EN_CGA_1 : in std_logic; - FFC_EN_CGA_2 : in std_logic; - FFC_EN_CGA_3 : in std_logic; - - FFC_ALIGN_EN_0 : in std_logic; - FFC_ALIGN_EN_1 : in std_logic; - FFC_ALIGN_EN_2 : in std_logic; - FFC_ALIGN_EN_3 : in std_logic; - - FFC_AB_RESET : in std_logic; - FFC_CD_RESET : in std_logic; - - FFS_LS_STATUS_0 : out std_logic; - FFS_LS_STATUS_1 : out std_logic; - FFS_LS_STATUS_2 : out std_logic; - FFS_LS_STATUS_3 : out std_logic; - - FFS_AB_STATUS : out std_logic; - FFS_CD_STATUS : out std_logic; - - FFS_AB_ALIGNED : out std_logic; - FFS_CD_ALIGNED : out std_logic; - - FFS_AB_FAILED : out std_logic; - FFS_CD_FAILED : out std_logic; - - FFS_RLOS_LO0 : out std_logic; - FFS_RLOS_LO1 : out std_logic; - FFS_RLOS_LO2 : out std_logic; - FFS_RLOS_LO3 : out std_logic; - - FFC_FB_LB_0 : in std_logic; - FFC_FB_LB_1 : in std_logic; - FFC_FB_LB_2 : in std_logic; - FFC_FB_LB_3 : in std_logic; - - FFC_SB_INV_RX_0 : in std_logic; - FFC_SB_INV_RX_1 : in std_logic; - FFC_SB_INV_RX_2 : in std_logic; - FFC_SB_INV_RX_3 : in std_logic; - - FFS_CC_ORUN_0 : out std_logic; - FFS_CC_ORUN_1 : out std_logic; - FFS_CC_ORUN_2 : out std_logic; - FFS_CC_ORUN_3 : out std_logic; - - FFS_CC_URUN_0 : out std_logic; - FFS_CC_URUN_1 : out std_logic; - FFS_CC_URUN_2 : out std_logic; - FFS_CC_URUN_3 : out std_logic; - - FFC_CK_CORE_TX : in std_logic; - FFC_CK_CORE_RX : in std_logic; - RDATAO_7 : out std_logic; - RDATAO_6 : out std_logic; - RDATAO_5 : out std_logic; - RDATAO_4 : out std_logic; - RDATAO_3 : out std_logic; - RDATAO_2 : out std_logic; - RDATAO_1 : out std_logic; - RDATAO_0 : out std_logic; - INTO : out std_logic; - - ADDRI_7 : in std_logic; - ADDRI_6 : in std_logic; - ADDRI_5 : in std_logic; - ADDRI_4 : in std_logic; - ADDRI_3 : in std_logic; - ADDRI_2 : in std_logic; - ADDRI_1 : in std_logic; - ADDRI_0 : in std_logic; - WDATAI_7 : in std_logic; - WDATAI_6 : in std_logic; - WDATAI_5 : in std_logic; - WDATAI_4 : in std_logic; - WDATAI_3 : in std_logic; - WDATAI_2 : in std_logic; - WDATAI_1 : in std_logic; - WDATAI_0 : in std_logic; - RDI : in std_logic; - WSTBI : in std_logic; - - CS_CHIF_0 : in std_logic; - CS_CHIF_1 : in std_logic; - CS_CHIF_2 : in std_logic; - CS_CHIF_3 : in std_logic; - CS_QIF : in std_logic; - - QUAD_ID_1 : in std_logic; - QUAD_ID_0 : in std_logic; - - FF_SYSCLK_P1 : out std_logic; - - FF_SYSCLK0 : out std_logic; - FF_SYSCLK1 : out std_logic; - FF_SYSCLK2 : out std_logic; - FF_SYSCLK3 : out std_logic; - - FF_RXCLK_P1 : out std_logic; - FF_RXCLK_P2 : out std_logic; - - FF_RXCLK0 : out std_logic; - FF_RXCLK1 : out std_logic; - FF_RXCLK2 : out std_logic; - FF_RXCLK3 : out std_logic; - - QUAD_CLK : out std_logic; - - GRP_CLK_P1_3 : in std_logic; - GRP_CLK_P1_2 : in std_logic; - GRP_CLK_P1_1 : in std_logic; - GRP_CLK_P1_0 : in std_logic; - - GRP_CLK_P2_3 : in std_logic; - GRP_CLK_P2_2 : in std_logic; - GRP_CLK_P2_1 : in std_logic; - GRP_CLK_P2_0 : in std_logic; - - GRP_START_3 : in std_logic; - GRP_START_2 : in std_logic; - GRP_START_1 : in std_logic; - GRP_START_0 : in std_logic; - - GRP_DONE_3 : in std_logic; - GRP_DONE_2 : in std_logic; - GRP_DONE_1 : in std_logic; - GRP_DONE_0 : in std_logic; - - GRP_DESKEW_ERROR_3 : in std_logic; - GRP_DESKEW_ERROR_2 : in std_logic; - GRP_DESKEW_ERROR_1 : in std_logic; - GRP_DESKEW_ERROR_0 : in std_logic; - - IQA_START_LS : out std_logic; - IQA_DONE_LS : out std_logic; - IQA_AND_FP1_LS : out std_logic; - IQA_AND_FP0_LS : out std_logic; - IQA_OR_FP1_LS : out std_logic; - IQA_OR_FP0_LS : out std_logic; - IQA_RST_N : out std_logic; - - FF_TCLK0 : in std_logic; - FF_TCLK1 : in std_logic; - FF_TCLK2 : in std_logic; - FF_TCLK3 : in std_logic; - - FF_RCLK0 : in std_logic; - FF_RCLK1 : in std_logic; - FF_RCLK2 : in std_logic; - FF_RCLK3 : in std_logic; - TCK_FMACP : in std_logic; - - FF_TXD_0_23 : in std_logic; - FF_TXD_0_22 : in std_logic; - FF_TXD_0_21 : in std_logic; - FF_TXD_0_20 : in std_logic; - FF_TXD_0_19 : in std_logic; - FF_TXD_0_18 : in std_logic; - FF_TXD_0_17 : in std_logic; - FF_TXD_0_16 : in std_logic; - FF_TXD_0_15 : in std_logic; - FF_TXD_0_14 : in std_logic; - FF_TXD_0_13 : in std_logic; - FF_TXD_0_12 : in std_logic; - FF_TXD_0_11 : in std_logic; - FF_TXD_0_10 : in std_logic; - FF_TXD_0_9 : in std_logic; - FF_TXD_0_8 : in std_logic; - FF_TXD_0_7 : in std_logic; - FF_TXD_0_6 : in std_logic; - FF_TXD_0_5 : in std_logic; - FF_TXD_0_4 : in std_logic; - FF_TXD_0_3 : in std_logic; - FF_TXD_0_2 : in std_logic; - FF_TXD_0_1 : in std_logic; - FF_TXD_0_0 : in std_logic; - FB_RXD_0_23 : out std_logic; - FB_RXD_0_22 : out std_logic; - FB_RXD_0_21 : out std_logic; - FB_RXD_0_20 : out std_logic; - FB_RXD_0_19 : out std_logic; - FB_RXD_0_18 : out std_logic; - FB_RXD_0_17 : out std_logic; - FB_RXD_0_16 : out std_logic; - FB_RXD_0_15 : out std_logic; - FB_RXD_0_14 : out std_logic; - FB_RXD_0_13 : out std_logic; - FB_RXD_0_12 : out std_logic; - FB_RXD_0_11 : out std_logic; - FB_RXD_0_10 : out std_logic; - FB_RXD_0_9 : out std_logic; - FB_RXD_0_8 : out std_logic; - FB_RXD_0_7 : out std_logic; - FB_RXD_0_6 : out std_logic; - FB_RXD_0_5 : out std_logic; - FB_RXD_0_4 : out std_logic; - FB_RXD_0_3 : out std_logic; - FB_RXD_0_2 : out std_logic; - FB_RXD_0_1 : out std_logic; - FB_RXD_0_0 : out std_logic; - FF_TXD_1_23 : in std_logic; - FF_TXD_1_22 : in std_logic; - FF_TXD_1_21 : in std_logic; - FF_TXD_1_20 : in std_logic; - FF_TXD_1_19 : in std_logic; - FF_TXD_1_18 : in std_logic; - FF_TXD_1_17 : in std_logic; - FF_TXD_1_16 : in std_logic; - FF_TXD_1_15 : in std_logic; - FF_TXD_1_14 : in std_logic; - FF_TXD_1_13 : in std_logic; - FF_TXD_1_12 : in std_logic; - FF_TXD_1_11 : in std_logic; - FF_TXD_1_10 : in std_logic; - FF_TXD_1_9 : in std_logic; - FF_TXD_1_8 : in std_logic; - FF_TXD_1_7 : in std_logic; - FF_TXD_1_6 : in std_logic; - FF_TXD_1_5 : in std_logic; - FF_TXD_1_4 : in std_logic; - FF_TXD_1_3 : in std_logic; - FF_TXD_1_2 : in std_logic; - FF_TXD_1_1 : in std_logic; - FF_TXD_1_0 : in std_logic; - FB_RXD_1_23 : out std_logic; - FB_RXD_1_22 : out std_logic; - FB_RXD_1_21 : out std_logic; - FB_RXD_1_20 : out std_logic; - FB_RXD_1_19 : out std_logic; - FB_RXD_1_18 : out std_logic; - FB_RXD_1_17 : out std_logic; - FB_RXD_1_16 : out std_logic; - FB_RXD_1_15 : out std_logic; - FB_RXD_1_14 : out std_logic; - FB_RXD_1_13 : out std_logic; - FB_RXD_1_12 : out std_logic; - FB_RXD_1_11 : out std_logic; - FB_RXD_1_10 : out std_logic; - FB_RXD_1_9 : out std_logic; - FB_RXD_1_8 : out std_logic; - FB_RXD_1_7 : out std_logic; - FB_RXD_1_6 : out std_logic; - FB_RXD_1_5 : out std_logic; - FB_RXD_1_4 : out std_logic; - FB_RXD_1_3 : out std_logic; - FB_RXD_1_2 : out std_logic; - FB_RXD_1_1 : out std_logic; - FB_RXD_1_0 : out std_logic; - FF_TXD_2_23 : in std_logic; - FF_TXD_2_22 : in std_logic; - FF_TXD_2_21 : in std_logic; - FF_TXD_2_20 : in std_logic; - FF_TXD_2_19 : in std_logic; - FF_TXD_2_18 : in std_logic; - FF_TXD_2_17 : in std_logic; - FF_TXD_2_16 : in std_logic; - FF_TXD_2_15 : in std_logic; - FF_TXD_2_14 : in std_logic; - FF_TXD_2_13 : in std_logic; - FF_TXD_2_12 : in std_logic; - FF_TXD_2_11 : in std_logic; - FF_TXD_2_10 : in std_logic; - FF_TXD_2_9 : in std_logic; - FF_TXD_2_8 : in std_logic; - FF_TXD_2_7 : in std_logic; - FF_TXD_2_6 : in std_logic; - FF_TXD_2_5 : in std_logic; - FF_TXD_2_4 : in std_logic; - FF_TXD_2_3 : in std_logic; - FF_TXD_2_2 : in std_logic; - FF_TXD_2_1 : in std_logic; - FF_TXD_2_0 : in std_logic; - FB_RXD_2_23 : out std_logic; - FB_RXD_2_22 : out std_logic; - FB_RXD_2_21 : out std_logic; - FB_RXD_2_20 : out std_logic; - FB_RXD_2_19 : out std_logic; - FB_RXD_2_18 : out std_logic; - FB_RXD_2_17 : out std_logic; - FB_RXD_2_16 : out std_logic; - FB_RXD_2_15 : out std_logic; - FB_RXD_2_14 : out std_logic; - FB_RXD_2_13 : out std_logic; - FB_RXD_2_12 : out std_logic; - FB_RXD_2_11 : out std_logic; - FB_RXD_2_10 : out std_logic; - FB_RXD_2_9 : out std_logic; - FB_RXD_2_8 : out std_logic; - FB_RXD_2_7 : out std_logic; - FB_RXD_2_6 : out std_logic; - FB_RXD_2_5 : out std_logic; - FB_RXD_2_4 : out std_logic; - FB_RXD_2_3 : out std_logic; - FB_RXD_2_2 : out std_logic; - FB_RXD_2_1 : out std_logic; - FB_RXD_2_0 : out std_logic; - FF_TXD_3_23 : in std_logic; - FF_TXD_3_22 : in std_logic; - FF_TXD_3_21 : in std_logic; - FF_TXD_3_20 : in std_logic; - FF_TXD_3_19 : in std_logic; - FF_TXD_3_18 : in std_logic; - FF_TXD_3_17 : in std_logic; - FF_TXD_3_16 : in std_logic; - FF_TXD_3_15 : in std_logic; - FF_TXD_3_14 : in std_logic; - FF_TXD_3_13 : in std_logic; - FF_TXD_3_12 : in std_logic; - FF_TXD_3_11 : in std_logic; - FF_TXD_3_10 : in std_logic; - FF_TXD_3_9 : in std_logic; - FF_TXD_3_8 : in std_logic; - FF_TXD_3_7 : in std_logic; - FF_TXD_3_6 : in std_logic; - FF_TXD_3_5 : in std_logic; - FF_TXD_3_4 : in std_logic; - FF_TXD_3_3 : in std_logic; - FF_TXD_3_2 : in std_logic; - FF_TXD_3_1 : in std_logic; - FF_TXD_3_0 : in std_logic; - FB_RXD_3_23 : out std_logic; - FB_RXD_3_22 : out std_logic; - FB_RXD_3_21 : out std_logic; - FB_RXD_3_20 : out std_logic; - FB_RXD_3_19 : out std_logic; - FB_RXD_3_18 : out std_logic; - FB_RXD_3_17 : out std_logic; - FB_RXD_3_16 : out std_logic; - FB_RXD_3_15 : out std_logic; - FB_RXD_3_14 : out std_logic; - FB_RXD_3_13 : out std_logic; - FB_RXD_3_12 : out std_logic; - FB_RXD_3_11 : out std_logic; - FB_RXD_3_10 : out std_logic; - FB_RXD_3_9 : out std_logic; - FB_RXD_3_8 : out std_logic; - FB_RXD_3_7 : out std_logic; - FB_RXD_3_6 : out std_logic; - FB_RXD_3_5 : out std_logic; - FB_RXD_3_4 : out std_logic; - FB_RXD_3_3 : out std_logic; - FB_RXD_3_2 : out std_logic; - FB_RXD_3_1 : out std_logic; - FB_RXD_3_0 : out std_logic; - TCK_FMAC : out std_logic; - BS4PAD_0 : out std_logic; - BS4PAD_1 : out std_logic; - BS4PAD_2 : out std_logic; - BS4PAD_3 : out std_logic; - COUT_21 : out std_logic; - COUT_20 : out std_logic; - COUT_19 : out std_logic; - COUT_18 : out std_logic; - COUT_17 : out std_logic; - COUT_16 : out std_logic; - COUT_15 : out std_logic; - COUT_14 : out std_logic; - COUT_13 : out std_logic; - COUT_12 : out std_logic; - COUT_11 : out std_logic; - COUT_10 : out std_logic; - COUT_9 : out std_logic; - COUT_8 : out std_logic; - COUT_7 : out std_logic; - COUT_6 : out std_logic; - COUT_5 : out std_logic; - COUT_4 : out std_logic; - COUT_3 : out std_logic; - COUT_2 : out std_logic; - COUT_1 : out std_logic; - COUT_0 : out std_logic; - CIN_12 : in std_logic; - CIN_11 : in std_logic; - CIN_10 : in std_logic; - CIN_9 : in std_logic; - CIN_8 : in std_logic; - CIN_7 : in std_logic; - CIN_6 : in std_logic; - CIN_5 : in std_logic; - CIN_4 : in std_logic; - CIN_3 : in std_logic; - CIN_2 : in std_logic; - CIN_1 : in std_logic; - CIN_0 : in std_logic; - TESTCLK_MACO : in std_logic -); -end component; - attribute IS_ASB: string; - attribute IS_ASB of PCSA_INST : label is "or5s00/data/or5s00.acd"; - attribute CONFIG_FILE: string; - attribute CONFIG_FILE of PCSA_INST : label is USER_CONFIG_FILE; - attribute CH0_RX_MAXRATE: string; - attribute CH0_RX_MAXRATE of PCSA_INST : label is "RXF3"; - attribute CH1_RX_MAXRATE: string; - attribute CH1_RX_MAXRATE of PCSA_INST : label is "RXF3"; - attribute CH2_RX_MAXRATE: string; - attribute CH2_RX_MAXRATE of PCSA_INST : label is "RXF3"; - attribute CH3_RX_MAXRATE: string; - attribute CH3_RX_MAXRATE of PCSA_INST : label is "RXF3"; - attribute CH0_TX_MAXRATE: string; - attribute CH0_TX_MAXRATE of PCSA_INST : label is "TXF2"; - attribute CH1_TX_MAXRATE: string; - attribute CH1_TX_MAXRATE of PCSA_INST : label is "TXF2"; - attribute CH2_TX_MAXRATE: string; - attribute CH2_TX_MAXRATE of PCSA_INST : label is "TXF2"; - attribute CH3_TX_MAXRATE: string; - attribute CH3_TX_MAXRATE of PCSA_INST : label is "TXF2"; - attribute AMP_BOOST: string; - attribute AMP_BOOST of PCSA_INST : label is "DISABLED"; - attribute black_box_pad_pin: string; - attribute black_box_pad_pin of PCSA : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN, RXREFCLKP, RXREFCLKN"; - -signal fpsc_vlo : std_logic := '0'; - -begin - -vlo_inst : VLO port map(Z => fpsc_vlo); - --- pcs_quad instance -PCSA_INST : PCSA ---synopsys translate_off - generic map (CONFIG_FILE => USER_CONFIG_FILE) ---synopsys translate_on -port map ( - REFCLKP => fpsc_vlo, - REFCLKN => fpsc_vlo, - RXREFCLKP => fpsc_vlo, - RXREFCLKN => fpsc_vlo, - FFC_CK_CORE_RX => rxrefclk, - FFC_CK_CORE_TX => refclk, - CS_CHIF_0 => fpsc_vlo, - CS_CHIF_1 => fpsc_vlo, - CS_CHIF_2 => fpsc_vlo, - CS_CHIF_3 => fpsc_vlo, - CS_QIF => fpsc_vlo, - QUAD_ID_0 => fpsc_vlo, - QUAD_ID_1 => fpsc_vlo, - ADDRI_0 => fpsc_vlo, - ADDRI_1 => fpsc_vlo, - ADDRI_2 => fpsc_vlo, - ADDRI_3 => fpsc_vlo, - ADDRI_4 => fpsc_vlo, - ADDRI_5 => fpsc_vlo, - ADDRI_6 => fpsc_vlo, - ADDRI_7 => fpsc_vlo, - WDATAI_0 => fpsc_vlo, - WDATAI_1 => fpsc_vlo, - WDATAI_2 => fpsc_vlo, - WDATAI_3 => fpsc_vlo, - WDATAI_4 => fpsc_vlo, - WDATAI_5 => fpsc_vlo, - WDATAI_6 => fpsc_vlo, - WDATAI_7 => fpsc_vlo, - RDI => fpsc_vlo, - WSTBI => fpsc_vlo, - GRP_CLK_P1_0 => fpsc_vlo, - GRP_CLK_P1_1 => fpsc_vlo, - GRP_CLK_P1_2 => fpsc_vlo, - GRP_CLK_P1_3 => fpsc_vlo, - GRP_CLK_P2_0 => fpsc_vlo, - GRP_CLK_P2_1 => fpsc_vlo, - GRP_CLK_P2_2 => fpsc_vlo, - GRP_CLK_P2_3 => fpsc_vlo, - GRP_START_0 => fpsc_vlo, - GRP_START_1 => fpsc_vlo, - GRP_START_2 => fpsc_vlo, - GRP_START_3 => fpsc_vlo, - GRP_DONE_0 => fpsc_vlo, - GRP_DONE_1 => fpsc_vlo, - GRP_DONE_2 => fpsc_vlo, - GRP_DONE_3 => fpsc_vlo, - GRP_DESKEW_ERROR_0 => fpsc_vlo, - GRP_DESKEW_ERROR_1 => fpsc_vlo, - GRP_DESKEW_ERROR_2 => fpsc_vlo, - GRP_DESKEW_ERROR_3 => fpsc_vlo, --- to sysbusa - RDATAO_0 => open, - RDATAO_1 => open, - RDATAO_2 => open, - RDATAO_3 => open, - RDATAO_4 => open, - RDATAO_5 => open, - RDATAO_6 => open, - RDATAO_7 => open, - INTO => open, - QUAD_CLK => open, - IQA_START_LS => open, - IQA_DONE_LS => open, - IQA_AND_FP1_LS => open, - IQA_AND_FP0_LS => open, - IQA_OR_FP1_LS => open, - IQA_OR_FP0_LS => open, - IQA_RST_N => open, - - FF_TXD_0_19 => txd_0(15), - FF_TXD_0_18 => txd_0(14), - FF_TXD_0_17 => txd_0(13), - FF_TXD_0_16 => txd_0(12), - FF_TXD_0_15 => txd_0(11), - FF_TXD_0_14 => txd_0(10), - FF_TXD_0_13 => txd_0(9), - FF_TXD_0_12 => txd_0(8), - FF_TXD_0_7 => txd_0(7), - FF_TXD_0_6 => txd_0(6), - FF_TXD_0_5 => txd_0(5), - FF_TXD_0_4 => txd_0(4), - FF_TXD_0_3 => txd_0(3), - FF_TXD_0_2 => txd_0(2), - FF_TXD_0_1 => txd_0(1), - FF_TXD_0_0 => txd_0(0), - FB_RXD_0_19 => rxd_0(15), - FB_RXD_0_18 => rxd_0(14), - FB_RXD_0_17 => rxd_0(13), - FB_RXD_0_16 => rxd_0(12), - FB_RXD_0_15 => rxd_0(11), - FB_RXD_0_14 => rxd_0(10), - FB_RXD_0_13 => rxd_0(9), - FB_RXD_0_12 => rxd_0(8), - FB_RXD_0_7 => rxd_0(7), - FB_RXD_0_6 => rxd_0(6), - FB_RXD_0_5 => rxd_0(5), - FB_RXD_0_4 => rxd_0(4), - FB_RXD_0_3 => rxd_0(3), - FB_RXD_0_2 => rxd_0(2), - FB_RXD_0_1 => rxd_0(1), - FB_RXD_0_0 => rxd_0(0), - - FF_TXD_0_20 => tx_k_0(1), - FF_TXD_0_8 => tx_k_0(0), - FB_RXD_0_20 => rx_k_0(1), - FB_RXD_0_8 => rx_k_0(0), - - FF_TXD_0_21 => tx_force_disp_0(1), - FF_TXD_0_9 => tx_force_disp_0(0), - - FF_TXD_0_22 => tx_disp_sel_0(1), - FF_TXD_0_10 => tx_disp_sel_0(0), - - FF_TXD_0_23 => tx_crc_init_0(1), - FF_TXD_0_11 => tx_crc_init_0(0), - - FB_RXD_0_21 => rx_disp_err_detect_0(1), - FB_RXD_0_9 => rx_disp_err_detect_0(0), - - FB_RXD_0_22 => rx_cv_detect_0(1), - FB_RXD_0_10 => rx_cv_detect_0(0), - - FB_RXD_0_23 => rx_crc_eop_0(1), - FB_RXD_0_11 => rx_crc_eop_0(0), - - FF_TXD_1_19 => txd_1(15), - FF_TXD_1_18 => txd_1(14), - FF_TXD_1_17 => txd_1(13), - FF_TXD_1_16 => txd_1(12), - FF_TXD_1_15 => txd_1(11), - FF_TXD_1_14 => txd_1(10), - FF_TXD_1_13 => txd_1(9), - FF_TXD_1_12 => txd_1(8), - FF_TXD_1_7 => txd_1(7), - FF_TXD_1_6 => txd_1(6), - FF_TXD_1_5 => txd_1(5), - FF_TXD_1_4 => txd_1(4), - FF_TXD_1_3 => txd_1(3), - FF_TXD_1_2 => txd_1(2), - FF_TXD_1_1 => txd_1(1), - FF_TXD_1_0 => txd_1(0), - FB_RXD_1_19 => rxd_1(15), - FB_RXD_1_18 => rxd_1(14), - FB_RXD_1_17 => rxd_1(13), - FB_RXD_1_16 => rxd_1(12), - FB_RXD_1_15 => rxd_1(11), - FB_RXD_1_14 => rxd_1(10), - FB_RXD_1_13 => rxd_1(9), - FB_RXD_1_12 => rxd_1(8), - FB_RXD_1_7 => rxd_1(7), - FB_RXD_1_6 => rxd_1(6), - FB_RXD_1_5 => rxd_1(5), - FB_RXD_1_4 => rxd_1(4), - FB_RXD_1_3 => rxd_1(3), - FB_RXD_1_2 => rxd_1(2), - FB_RXD_1_1 => rxd_1(1), - FB_RXD_1_0 => rxd_1(0), - - FF_TXD_1_20 => tx_k_1(1), - FF_TXD_1_8 => tx_k_1(0), - FB_RXD_1_20 => rx_k_1(1), - FB_RXD_1_8 => rx_k_1(0), - - FF_TXD_1_21 => tx_force_disp_1(1), - FF_TXD_1_9 => tx_force_disp_1(0), - - FF_TXD_1_22 => tx_disp_sel_1(1), - FF_TXD_1_10 => tx_disp_sel_1(0), - FF_TXD_1_23 => tx_crc_init_1(1), - FF_TXD_1_11 => tx_crc_init_1(0), - - FB_RXD_1_21 => rx_disp_err_detect_1(1), - FB_RXD_1_9 => rx_disp_err_detect_1(0), - - FB_RXD_1_22 => rx_cv_detect_1(1), - FB_RXD_1_10 => rx_cv_detect_1(0), - - FB_RXD_1_23 => rx_crc_eop_1(1), - FB_RXD_1_11 => rx_crc_eop_1(0), - - FF_TXD_2_19 => txd_2(15), - FF_TXD_2_18 => txd_2(14), - FF_TXD_2_17 => txd_2(13), - FF_TXD_2_16 => txd_2(12), - FF_TXD_2_15 => txd_2(11), - FF_TXD_2_14 => txd_2(10), - FF_TXD_2_13 => txd_2(9), - FF_TXD_2_12 => txd_2(8), - FF_TXD_2_7 => txd_2(7), - FF_TXD_2_6 => txd_2(6), - FF_TXD_2_5 => txd_2(5), - FF_TXD_2_4 => txd_2(4), - FF_TXD_2_3 => txd_2(3), - FF_TXD_2_2 => txd_2(2), - FF_TXD_2_1 => txd_2(1), - FF_TXD_2_0 => txd_2(0), - FB_RXD_2_19 => rxd_2(15), - FB_RXD_2_18 => rxd_2(14), - FB_RXD_2_17 => rxd_2(13), - FB_RXD_2_16 => rxd_2(12), - FB_RXD_2_15 => rxd_2(11), - FB_RXD_2_14 => rxd_2(10), - FB_RXD_2_13 => rxd_2(9), - FB_RXD_2_12 => rxd_2(8), - FB_RXD_2_7 => rxd_2(7), - FB_RXD_2_6 => rxd_2(6), - FB_RXD_2_5 => rxd_2(5), - FB_RXD_2_4 => rxd_2(4), - FB_RXD_2_3 => rxd_2(3), - FB_RXD_2_2 => rxd_2(2), - FB_RXD_2_1 => rxd_2(1), - FB_RXD_2_0 => rxd_2(0), - - FF_TXD_2_20 => tx_k_2(1), - FF_TXD_2_8 => tx_k_2(0), - FB_RXD_2_20 => rx_k_2(1), - FB_RXD_2_8 => rx_k_2(0), - - FF_TXD_2_21 => tx_force_disp_2(1), - FF_TXD_2_9 => tx_force_disp_2(0), - - FF_TXD_2_22 => tx_disp_sel_2(1), - FF_TXD_2_10 => tx_disp_sel_2(0), - FF_TXD_2_23 => tx_crc_init_2(1), - FF_TXD_2_11 => tx_crc_init_2(0), - - FB_RXD_2_21 => rx_disp_err_detect_2(1), - FB_RXD_2_9 => rx_disp_err_detect_2(0), - - FB_RXD_2_22 => rx_cv_detect_2(1), - FB_RXD_2_10 => rx_cv_detect_2(0), - - FB_RXD_2_23 => rx_crc_eop_2(1), - FB_RXD_2_11 => rx_crc_eop_2(0), - - FF_TXD_3_19 => txd_3(15), - FF_TXD_3_18 => txd_3(14), - FF_TXD_3_17 => txd_3(13), - FF_TXD_3_16 => txd_3(12), - FF_TXD_3_15 => txd_3(11), - FF_TXD_3_14 => txd_3(10), - FF_TXD_3_13 => txd_3(9), - FF_TXD_3_12 => txd_3(8), - FF_TXD_3_7 => txd_3(7), - FF_TXD_3_6 => txd_3(6), - FF_TXD_3_5 => txd_3(5), - FF_TXD_3_4 => txd_3(4), - FF_TXD_3_3 => txd_3(3), - FF_TXD_3_2 => txd_3(2), - FF_TXD_3_1 => txd_3(1), - FF_TXD_3_0 => txd_3(0), - FB_RXD_3_19 => rxd_3(15), - FB_RXD_3_18 => rxd_3(14), - FB_RXD_3_17 => rxd_3(13), - FB_RXD_3_16 => rxd_3(12), - FB_RXD_3_15 => rxd_3(11), - FB_RXD_3_14 => rxd_3(10), - FB_RXD_3_13 => rxd_3(9), - FB_RXD_3_12 => rxd_3(8), - FB_RXD_3_7 => rxd_3(7), - FB_RXD_3_6 => rxd_3(6), - FB_RXD_3_5 => rxd_3(5), - FB_RXD_3_4 => rxd_3(4), - FB_RXD_3_3 => rxd_3(3), - FB_RXD_3_2 => rxd_3(2), - FB_RXD_3_1 => rxd_3(1), - FB_RXD_3_0 => rxd_3(0), - - FF_TXD_3_20 => tx_k_3(1), - FF_TXD_3_8 => tx_k_3(0), - FB_RXD_3_20 => rx_k_3(1), - FB_RXD_3_8 => rx_k_3(0), - - FF_TXD_3_21 => tx_force_disp_3(1), - FF_TXD_3_9 => tx_force_disp_3(0), - - FF_TXD_3_22 => tx_disp_sel_3(1), - FF_TXD_3_10 => tx_disp_sel_3(0), - FF_TXD_3_23 => tx_crc_init_3(1), - FF_TXD_3_11 => tx_crc_init_3(0), - - FB_RXD_3_21 => rx_disp_err_detect_3(1), - FB_RXD_3_9 => rx_disp_err_detect_3(0), - - FB_RXD_3_22 => rx_cv_detect_3(1), - FB_RXD_3_10 => rx_cv_detect_3(0), - - FB_RXD_3_23 => rx_crc_eop_3(1), - FB_RXD_3_11 => rx_crc_eop_3(0), - - HDINP0 => hdinp_0, - HDINN0 => hdinn_0, - HDOUTP0 => hdoutp_0, - HDOUTN0 => hdoutn_0, - FF_SYSCLK0 => ref_0_sclk, - FF_RXCLK0 => rx_0_sclk, - FFC_LANE_TX_RST0 => tx_rst_0, - FFC_LANE_RX_RST0 => rx_rst_0, - FF_TCLK0 => tclk_0, - FF_RCLK0 => rclk_0, - HDINP1 => hdinp_1, - HDINN1 => hdinn_1, - HDOUTP1 => hdoutp_1, - HDOUTN1 => hdoutn_1, - FF_SYSCLK1 => ref_1_sclk, - FF_RXCLK1 => rx_1_sclk, - FFC_LANE_TX_RST1 => tx_rst_1, - FFC_LANE_RX_RST1 => rx_rst_1, - FF_TCLK1 => tclk_1, - FF_RCLK1 => rclk_1, - HDINP2 => hdinp_2, - HDINN2 => hdinn_2, - HDOUTP2 => hdoutp_2, - HDOUTN2 => hdoutn_2, - FF_SYSCLK2 => ref_2_sclk, - FF_RXCLK2 => rx_2_sclk, - FFC_LANE_TX_RST2 => tx_rst_2, - FFC_LANE_RX_RST2 => rx_rst_2, - FF_TCLK2 => tclk_2, - FF_RCLK2 => rclk_2, - HDINP3 => hdinp_3, - HDINN3 => hdinn_3, - HDOUTP3 => hdoutp_3, - HDOUTN3 => hdoutn_3, - FF_SYSCLK3 => ref_3_sclk, - FF_RXCLK3 => rx_3_sclk, - FFC_LANE_TX_RST3 => tx_rst_3, - FFC_LANE_RX_RST3 => rx_rst_3, - FF_TCLK3 => tclk_3, - FF_RCLK3 => rclk_3, - - FFC_PCIE_EI_EN_0 => fpsc_vlo, - FFC_PCIE_CT_0 => fpsc_vlo, - FFC_PCIE_TX_0 => fpsc_vlo, - FFC_PCIE_RX_0 => fpsc_vlo, - FFS_PCIE_CON_0 => open, - FFS_PCIE_DONE_0 => open, - FFC_PCIE_EI_EN_1 => fpsc_vlo, - FFC_PCIE_CT_1 => fpsc_vlo, - FFC_PCIE_TX_1 => fpsc_vlo, - FFC_PCIE_RX_1 => fpsc_vlo, - FFS_PCIE_CON_1 => open, - FFS_PCIE_DONE_1 => open, - FFC_PCIE_EI_EN_2 => fpsc_vlo, - FFC_PCIE_CT_2 => fpsc_vlo, - FFC_PCIE_TX_2 => fpsc_vlo, - FFC_PCIE_RX_2 => fpsc_vlo, - FFS_PCIE_CON_2 => open, - FFS_PCIE_DONE_2 => open, - FFC_PCIE_EI_EN_3 => fpsc_vlo, - FFC_PCIE_CT_3 => fpsc_vlo, - FFC_PCIE_TX_3 => fpsc_vlo, - FFC_PCIE_RX_3 => fpsc_vlo, - FFS_PCIE_CON_3 => open, - FFS_PCIE_DONE_3 => open, - - FFC_SD_0 => lsm_en_0, - FFC_SD_1 => lsm_en_1, - FFC_SD_2 => lsm_en_2, - FFC_SD_3 => lsm_en_3, - - FFC_EN_CGA_0 => word_align_en_0, - FFC_EN_CGA_1 => word_align_en_1, - FFC_EN_CGA_2 => word_align_en_2, - FFC_EN_CGA_3 => word_align_en_3, - - FFC_ALIGN_EN_0 => mca_align_en_0, - FFC_ALIGN_EN_1 => mca_align_en_1, - FFC_ALIGN_EN_2 => mca_align_en_2, - FFC_ALIGN_EN_3 => mca_align_en_3, - - FFC_FB_LB_0 => felb_0, - FFC_FB_LB_1 => felb_1, - FFC_FB_LB_2 => felb_2, - FFC_FB_LB_3 => felb_3, - - FFS_LS_STATUS_0 => lsm_status_0, - FFS_LS_STATUS_1 => lsm_status_1, - FFS_LS_STATUS_2 => lsm_status_2, - FFS_LS_STATUS_3 => lsm_status_3, - - FFS_CC_ORUN_0 => open, - FFS_CC_URUN_0 => open, - FFS_CC_ORUN_1 => open, - FFS_CC_URUN_1 => open, - FFS_CC_ORUN_2 => open, - FFS_CC_URUN_2 => open, - FFS_CC_ORUN_3 => open, - FFS_CC_URUN_3 => open, - - FFC_AB_RESET => mca_resync_01, - - FFS_AB_STATUS => mca_aligned_01, - FFS_AB_ALIGNED => mca_inskew_01, - FFS_AB_FAILED => mca_outskew_01, - - FFC_CD_RESET => mca_resync_23, - FFS_CD_STATUS => mca_aligned_23, - - FFS_CD_ALIGNED => mca_inskew_23, - FFS_CD_FAILED => mca_outskew_23, - BS4PAD_0 => open, - BS4PAD_1 => open, - BS4PAD_2 => open, - BS4PAD_3 => open, - FFC_SB_INV_RX_0 => fpsc_vlo, - FFC_SB_INV_RX_1 => fpsc_vlo, - FFC_SB_INV_RX_2 => fpsc_vlo, - FFC_SB_INV_RX_3 => fpsc_vlo, - TCK_FMAC => open, - TCK_FMACP => fpsc_vlo, - FF_SYSCLK_P1 => ref_pclk, - FF_RXCLK_P1 => rxa_pclk, - FF_RXCLK_P2 => rxb_pclk, - FFC_QUAD_RST => quad_rst, - FFS_RLOS_LO0 => open, - FFS_RLOS_LO1 => open, - FFS_RLOS_LO2 => open, - FFS_RLOS_LO3 => open, - COUT_21 => open, - COUT_20 => open, - COUT_19 => open, - COUT_18 => open, - COUT_17 => open, - COUT_16 => open, - COUT_15 => open, - COUT_14 => open, - COUT_13 => open, - COUT_12 => open, - COUT_11 => open, - COUT_10 => open, - COUT_9 => open, - COUT_8 => open, - COUT_7 => open, - COUT_6 => open, - COUT_5 => open, - COUT_4 => open, - COUT_3 => open, - COUT_2 => open, - COUT_1 => open, - COUT_0 => open, - CIN_12 => fpsc_vlo, - CIN_11 => fpsc_vlo, - CIN_10 => fpsc_vlo, - CIN_9 => fpsc_vlo, - CIN_8 => fpsc_vlo, - CIN_7 => fpsc_vlo, - CIN_6 => fpsc_vlo, - CIN_5 => fpsc_vlo, - CIN_4 => fpsc_vlo, - CIN_3 => fpsc_vlo, - CIN_2 => fpsc_vlo, - CIN_1 => fpsc_vlo, - CIN_0 => fpsc_vlo, - TESTCLK_MACO => fpsc_vlo, - FFC_MACRO_RST => serdes_rst); - ---synopsys translate_off -file_read : PROCESS -VARIABLE open_status : file_open_status; -FILE config : text; -BEGIN - file_open (open_status, config, USER_CONFIG_FILE, read_mode); - IF (open_status = name_error) THEN - report "Auto configuration file for PCS module not found. PCS internal configuration registers will not be initialized correctly during simulation!" - severity ERROR; - END IF; - wait; -END PROCESS; ---synopsys translate_on - -end serdes_fpga_ref_clk_arch ; diff --git a/optical_link/setup_env b/optical_link/setup_env deleted file mode 100755 index 8b7b31e..0000000 --- a/optical_link/setup_env +++ /dev/null @@ -1,28 +0,0 @@ -export ISPLEVER_PATH=/opt/lattice/isplever7.0/isptools - -export ISPCPLD=$ISPLEVER_PATH/ispcpld -export ISPJTOOLS=$ISPLEVER_PATH/ispjtools -export PDSPLUS=$ISPLEVER_PATH/ispcomp -export ISPFPGA=$ISPLEVER_PATH/ispfpga -export ISPVM_DIR=$ISPLEVER_PATH/ispvmsystem -export INI_FILE=lsc_7_0.ini -export MWHOME=$ISPCPLD/mw -export MWUSER_DIRECTORY=$HOME/isplever_lin_window -export MWREGISTRY=:$MWUSER_DIRECTORY/hklm_linux.bin -#unexport LD_LIBRARY_PATH -#source $MWHOME/setmwruntime.csh -export COMSPEC=/bin/csh -export PATH=$PATH:$ISPCPLD/bin:$PDSPLUS/bin:$ISPVM_DIR -export LD_LIBRARY_PATH=$ISPCPLD/bin:$PDSPLUS/bin:$ISPCPLD/../ispvmsystem/lib:$ISPFPGA/bin/lin:$ISPJTOOLS/vm15/lib/i386:$ISPJTOOLS/vm15/lib/i386/client:$ISPCPLD/tcltk/linux-ix86/lib:$LD_LIBRARY_PATH -export WINHELPDIR=$ISPCPLD/bin -export WINHELPPATH=$ISPCPLD/bin -export ABEL5DEV=$ISPCPLD/lib5 -#export LD_ASSUME_KERNEL 2.4.0 -export MWRT_MODE=professional - -export LM_LICENSE_FILE=$ISPCPLD/../license/license.dat:$LM_LICENSE_FILE - -sed -e "s?home_dir?$HOME/isplever_lin_window?" -e "s?bin_dir?$ISPLEVER_PATH/ispcpld/bin?" -e "s?isptool_dir?$ISPLEVER_PATH?" $ISPCPLD/config/$INI_FILE > $ISPLEVER_PATH/$INI_FILE -export LSC_INI_PATH=$ISPLEVER_PATH -export LSC_INI_FILE=$LSC_INI_PATH/$INI_FILE - diff --git a/optical_link/simpleupcounter_16bit.vhd b/optical_link/simpleupcounter_16bit.vhd deleted file mode 100644 index 16e14af..0000000 --- a/optical_link/simpleupcounter_16bit.vhd +++ /dev/null @@ -1,37 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - - - -entity simpleupcounter_16bit is - Port ( QOUT : out std_logic_vector(15 downto 0); - UP : in std_logic; - CLK : in std_logic; - CLR : in std_logic); -end simpleupcounter_16bit; - -architecture simpleupcounter_16bit of simpleupcounter_16bit is - -signal counter: std_logic_vector (15 downto 0); - -begin - - process (CLR, UP, CLK) - - begin - if CLR = '1' then - counter <= "0000000000000000"; - elsif clk'event and clk = '1' then - if UP = '1' then - counter <= counter + 1; - else - counter <= counter; - end if; -end if; -end process; - -QOUT <= counter; - -end simpleupcounter_16bit; diff --git a/optical_link/simpleupcounter_32bit.vhd b/optical_link/simpleupcounter_32bit.vhd deleted file mode 100644 index 7bf16a9..0000000 --- a/optical_link/simpleupcounter_32bit.vhd +++ /dev/null @@ -1,37 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - - - -entity simpleupcounter_32bit is - Port ( QOUT : out std_logic_vector(31 downto 0); - UP : in std_logic; - CLK : in std_logic; - CLR : in std_logic); -end simpleupcounter_32bit; - -architecture simpleupcounter_32bit of simpleupcounter_32bit is - -signal counter: std_logic_vector (31 downto 0); - -begin - - process (CLR, UP, CLK) - - begin - if CLR = '1' then - counter <= "00000000000000000000000000000000"; - elsif clk'event and clk = '1' then - if UP = '1' then - counter <= counter + 1; - else - counter <= counter; - end if; -end if; -end process; - -QOUT <= counter; - -end simpleupcounter_32bit; diff --git a/optical_link/simpleupcounter_8bit.vhd b/optical_link/simpleupcounter_8bit.vhd deleted file mode 100644 index e5fa035..0000000 --- a/optical_link/simpleupcounter_8bit.vhd +++ /dev/null @@ -1,37 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - - - -entity simpleupcounter_8bit is - Port ( QOUT : out std_logic_vector(7 downto 0); - UP : in std_logic; - CLK : in std_logic; - CLR : in std_logic); -end simpleupcounter_8bit; - -architecture Behavioral of simpleupcounter_8bit is - -signal counter: std_logic_vector (7 downto 0); - -begin - - process (CLR, UP, CLK) - - begin - if CLR = '1' then - counter <= ( others => '0'); - elsif clk'event and clk = '1' then - if UP = '1' then - counter <= counter + 1; - else - counter <= counter; - end if; -end if; -end process; - -QOUT <= counter; - -end Behavioral; diff --git a/optical_link/trb_hub_interface.vhd b/optical_link/trb_hub_interface.vhd deleted file mode 100644 index 6d7c59b..0000000 --- a/optical_link/trb_hub_interface.vhd +++ /dev/null @@ -1,197 +0,0 @@ -library IEEE; - -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; -use IEEE.NUMERIC_STD.all; ---use work.support.all; - - -entity trb_hub_interface is - port ( - CLK : in std_logic; - RESET : in std_logic; - STROBE : in std_logic; - INTERNAL_DATA_IN : in std_logic_vector(7 downto 0); - INTERNAL_DATA_OUT : out std_logic_vector(7 downto 0); - INTERNAL_ADDRESS : in std_logic_vector(15 downto 0); - INTERNAL_MODE : in std_logic; - VALID_DATA_SENT : out std_logic; - HUB_REGISTER_00 : in std_logic_vector(7 downto 0); - HUB_REGISTER_01 : in std_logic_vector(7 downto 0); - HUB_REGISTER_02 : in std_logic_vector(7 downto 0); - HUB_REGISTER_03 : in std_logic_vector(7 downto 0); - HUB_REGISTER_04 : in std_logic_vector(7 downto 0); - HUB_REGISTER_05 : in std_logic_vector(7 downto 0); - HUB_REGISTER_06 : in std_logic_vector(7 downto 0); - HUB_REGISTER_07 : in std_logic_vector(7 downto 0); - HUB_REGISTER_08 : in std_logic_vector(7 downto 0); - HUB_REGISTER_09 : in std_logic_vector(7 downto 0); - HUB_REGISTER_0a : out std_logic_vector(7 downto 0); - HUB_REGISTER_0b : out std_logic_vector(7 downto 0); - HUB_REGISTER_0c : out std_logic_vector(7 downto 0); - HUB_REGISTER_0d : out std_logic_vector(7 downto 0); - HUB_REGISTER_0e : out std_logic_vector(7 downto 0); - HUB_REGISTER_0f : out std_logic_vector(7 downto 0); - HUB_REGISTER_10 : in std_logic_vector(7 downto 0); - HUB_REGISTER_11 : in std_logic_vector(7 downto 0); - HUB_REGISTER_12 : in std_logic_vector(7 downto 0); - HUB_REGISTER_13 : in std_logic_vector(7 downto 0); - HUB_REGISTER_14 : in std_logic_vector(7 downto 0); - HUB_REGISTER_15 : in std_logic_vector(7 downto 0); - HUB_REGISTER_16 : in std_logic_vector(7 downto 0) - ); -end trb_hub_interface; -architecture trb_hub_interface of trb_hub_interface is - component edge_to_pulse - port ( - clock : in std_logic; - en_clk : in std_logic; - signal_in : in std_logic; - pulse : out std_logic); - end component; - signal hub_register_08_i : std_logic_vector(7 downto 0); - signal hub_register_09_i : std_logic_vector(7 downto 0); - signal hub_register_0a_i : std_logic_vector(7 downto 0); - signal hub_register_0b_i : std_logic_vector(7 downto 0); - signal hub_register_0c_i : std_logic_vector(7 downto 0); - signal hub_register_0d_i : std_logic_vector(7 downto 0); - signal hub_register_0e_i : std_logic_vector(7 downto 0); - signal hub_register_0f_i : std_logic_vector(7 downto 0); - signal saved_address : std_logic_vector(15 downto 0); - signal saved_mod : std_logic; - signal saved_data_in : std_logic_vector(7 downto 0); - signal saved_data_out : std_logic_vector(7 downto 0); - signal strobe_pulse : std_logic; - signal data_ready : std_logic; - type SEND_VALID is - (IDLE ,VALID_1,VALID_2,VALID_3,VALID_4,VALID_5); - signal VALID_current, VALID_next: SEND_VALID; -begin - - STROBE_PULSER: edge_to_pulse - port map ( - clock => CLK, - en_clk => '1', - signal_in => STROBE, - pulse => strobe_pulse); - SAVE_MOD_ADD_DATA : process (CLK, RESET, strobe_pulse) - begin - if rising_edge(CLK) then - if RESET = '1' then - saved_address <= (others => '0'); - saved_mod <= '0'; - saved_data_in <= (others => '0'); - elsif strobe_pulse = '1' then - saved_address <= INTERNAL_ADDRESS; - saved_mod <= INTERNAL_MODE; - saved_data_in <= INTERNAL_DATA_IN; - end if; - end if; - end process SAVE_MOD_ADD_DATA; - - DATA_SOURCE_SELECT : process (CLK,RESET,saved_mod,saved_address) - begin - if rising_edge(CLK) then - if RESET = '1' then - hub_register_0a_i <= x"00"; - hub_register_0b_i <= x"00"; - hub_register_0c_i <= x"00"; - hub_register_0d_i <= x"00"; - else - if saved_mod = '1' then - case saved_address(15 downto 0) is - when x"0000" => saved_data_out <= HUB_REGISTER_00; - when x"0001" => saved_data_out <= HUB_REGISTER_01; - when x"0002" => saved_data_out <= HUB_REGISTER_02; - when x"0003" => saved_data_out <= HUB_REGISTER_03; - when x"0004" => saved_data_out <= HUB_REGISTER_04; - when x"0005" => saved_data_out <= HUB_REGISTER_05; - when x"0006" => saved_data_out <= HUB_REGISTER_06; - when x"0007" => saved_data_out <= HUB_REGISTER_07; - when x"0008" => saved_data_out <= HUB_REGISTER_08; - when x"0009" => saved_data_out <= HUB_REGISTER_09; - when x"000a" => saved_data_out <= hub_register_0a_i; - when x"000b" => saved_data_out <= hub_register_0b_i; - when x"000c" => saved_data_out <= hub_register_0c_i; - when x"000d" => saved_data_out <= hub_register_0d_i; - when x"000e" => saved_data_out <= hub_register_0e_i; - when x"000f" => saved_data_out <= hub_register_0f_i; - when x"0010" => saved_data_out <= HUB_REGISTER_10; - when x"0011" => saved_data_out <= HUB_REGISTER_11; - when x"0012" => saved_data_out <= HUB_REGISTER_12; - when x"0013" => saved_data_out <= HUB_REGISTER_13; - when x"0014" => saved_data_out <= HUB_REGISTER_14; - when x"0015" => saved_data_out <= HUB_REGISTER_15; - when x"0016" => saved_data_out <= HUB_REGISTER_16; - - when others => saved_data_out <= x"ff"; - end case; - elsif saved_mod = '0' then - case saved_address(15 downto 0) is - when x"000a" => hub_register_0a_i <= saved_data_in; - when x"000b" => hub_register_0b_i <= saved_data_in; - when x"000c" => hub_register_0c_i <= saved_data_in; - when x"000d" => hub_register_0d_i <= saved_data_in; - when x"000e" => hub_register_0e_i <= saved_data_in; - when x"000f" => hub_register_0f_i <= saved_data_in; - when others => null; - end case; - end if; - end if; - end if; - end process DATA_SOURCE_SELECT; - HUB_REGISTER_0a <= hub_register_0a_i; - HUB_REGISTER_0b <= hub_register_0b_i; - HUB_REGISTER_0c <= hub_register_0c_i; - HUB_REGISTER_0d <= hub_register_0d_i; - HUB_REGISTER_0e <= hub_register_0e_i; - HUB_REGISTER_0f <= hub_register_0f_i; - INTERNAL_DATA_OUT <= saved_data_out; - data_ready <= '1'; - VALID_CLOCKED : process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' then - VALID_current <= IDLE; - else - VALID_current <= VALID_next; - end if; - end if; - end process VALID_CLOCKED; - SEND_VALID_FSM: process (VALID_current,data_ready,strobe_pulse) - begin - case (VALID_current) is - when IDLE => - VALID_DATA_SENT <= '0'; - if strobe_pulse = '1' then - VALID_next <= VALID_1; - else - VALID_next <= IDLE; - end if; - when VALID_1 => - VALID_DATA_SENT <= '0'; - -- if data_ready = '1' then - VALID_next <= VALID_2; - -- else - -- VALID_next <= VALID_1; - -- end if; - when VALID_2 => - VALID_DATA_SENT <= '1'; - VALID_next <= VALID_3; - when VALID_3 => - VALID_DATA_SENT <= '1'; - VALID_next <= VALID_4; - when VALID_4 => - VALID_DATA_SENT <= '1'; - VALID_next <= VALID_5; - when VALID_5 => - VALID_DATA_SENT <= '1'; - VALID_next <= IDLE; - when others => - VALID_DATA_SENT <= '0'; - VALID_next <= IDLE; - end case; - end process SEND_VALID_FSM; - -end trb_hub_interface; diff --git a/optical_link/trbv2_tlk_api.vhd b/optical_link/trbv2_tlk_api.vhd deleted file mode 100644 index 4bdce44..0000000 --- a/optical_link/trbv2_tlk_api.vhd +++ /dev/null @@ -1,142 +0,0 @@ -library IEEE; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - -library ieee; -library work; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.all; - -entity trbv2_tlk_api is - - port ( - RESET : in std_logic; - CLK : in std_logic; - TLK_CLK : in std_logic; - TLK_ENABLE : out std_logic; - TLK_LCKREFN : out std_logic; - TLK_LOOPEN : out std_logic; - TLK_PRBSEN : out std_logic; - TLK_RXD : in std_logic_vector(15 downto 0); - TLK_RX_CLK : in std_logic; - TLK_RX_DV : in std_logic; - TLK_RX_ER : in std_logic; - TLK_TXD : out std_logic_vector(15 downto 0); - TLK_TX_EN : out std_logic; - TLK_TX_ER : out std_logic; - DATA_OUT : out std_logic_vector(15 downto 0); - DATA_IN : in std_logic_vector(15 downto 0); - DATA_VALID_IN : in std_logic; - DATA_VALID_OUT : out std_logic; - TLK_API_REGISTER_00 : out std_logic_vector(31 downto 0) - ); -end trbv2_tlk_api; -architecture trbv2_tlk_api of trbv2_tlk_api is - component trbv2_tlk_api_fifo - port ( - din : IN std_logic_VECTOR(17 downto 0); - rd_clk : IN std_logic; - rd_en : IN std_logic; - rst : IN std_logic; - wr_clk : IN std_logic; - wr_en : IN std_logic; - dout : OUT std_logic_VECTOR(17 downto 0); - empty : OUT std_logic; - full : OUT std_logic; - rd_data_count : OUT std_logic_VECTOR(9 downto 0); - wr_data_count : OUT std_logic_VECTOR(9 downto 0)); - end component; - signal fifo_din_a : std_logic_vector(17 downto 0); - signal fifo_dout_a : std_logic_vector(17 downto 0); - signal fifo_rst_a : std_logic; - signal fifo_rd_en_a : std_logic; - signal fifo_rd_data_count_a : std_logic_vector(9 downto 0); - signal fifo_wr_data_count_a : std_logic_vector(9 downto 0); - signal fifo_empty_a : std_logic; - signal fifo_full_a : std_logic; - signal fifo_din_m : std_logic_vector(17 downto 0); - signal fifo_dout_m : std_logic_vector(17 downto 0); - signal fifo_rst_m : std_logic; - signal fifo_rd_en_m : std_logic; - signal fifo_rd_data_count_m : std_logic_vector(9 downto 0); - signal fifo_wr_data_count_m : std_logic_vector(9 downto 0); - signal fifo_empty_m : std_logic; - signal fifo_full_m : std_logic; - signal reset_fifo_counter : std_logic_vector(7 downto 0); -begin - ----------------------------------------------------------------------------- - -- api to media - ----------------------------------------------------------------------------- - fifo_din_a <= TLK_RX_ER & TLK_RX_DV & TLK_RXD; - - OPTICAL_TO_FIFO_TO_API: trbv2_tlk_api_fifo - port map ( - din => fifo_din_a, - rd_clk => CLK, - rd_en => fifo_rd_en_a , - rst => fifo_rst_a , - wr_clk => TLK_RX_CLK, - wr_en => '1', - dout => fifo_dout_a, - empty => fifo_empty_a, - full => fifo_full_a, - rd_data_count => fifo_rd_data_count_a, - wr_data_count => fifo_wr_data_count_a); - SYNCH_DATA_OUT: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' then - DATA_VALID_OUT <= '0'; - DATA_OUT <= x"0000"; - else - DATA_VALID_OUT <= not(fifo_dout_a(17)) and fifo_dout_a(16); - DATA_OUT <= fifo_dout_a(15 downto 0); - end if; - end if; - end process SYNCH_DATA_OUT; - - ----------------------------------------------------------------------------- - -- media to api - ----------------------------------------------------------------------------- - fifo_din_m <= '0' & DATA_VALID_IN & DATA_IN; - - API_TO_FIFO_TO_OPTICAL: trbv2_tlk_api_fifo - port map ( - din => fifo_din_m, - rd_clk => TLK_CLK, - rd_en => fifo_rd_en_m , - rst => fifo_rst_m , - wr_clk => CLK, - wr_en => '1', - dout => fifo_dout_m, - empty => fifo_empty_m, - full => fifo_full_m, - rd_data_count => fifo_rd_data_count_m, - wr_data_count => fifo_wr_data_count_m); - - TLK_TXD <= fifo_dout_m (15 downto 0); - TLK_TX_EN <= fifo_dout_m(16); - TLK_TX_ER <= '0'; - TLK_LOOPEN <= '0'; - TLK_LCKREFN <= '1'; - TLK_ENABLE <= '1'; - TLK_PRBSEN <= '0'; - - ----------------------------------------------------------------------------- - -- all - ----------------------------------------------------------------------------- - RESET_FIFO_COUNTER_PROC: process (CLK, RESET) - begin - if rising_edge(CLK) then - if RESET = '1' or fifo_dout_a(17) = '1' then - reset_fifo_counter <= x"00"; - elsif reset_fifo_counter < x"f0" then - reset_fifo_counter <= reset_fifo_counter + 1; - end if; - end if; - end process RESET_FIFO_COUNTER_PROC; - fifo_rst_m <= '1' when reset_fifo_counter < x"40" else '0'; - fifo_rst_a <= '1' when reset_fifo_counter < x"40" else '0'; - fifo_rd_en_m <= '1' when reset_fifo_counter > x"46" else '0'; - fifo_rd_en_a <= '1' when reset_fifo_counter > x"46" else '0'; -end trbv2_tlk_api; diff --git a/optical_link/trbv2_tlk_api_fifo.ngc b/optical_link/trbv2_tlk_api_fifo.ngc deleted file mode 100644 index d0694d3..0000000 --- a/optical_link/trbv2_tlk_api_fifo.ngc +++ /dev/null @@ -1,3 +0,0 @@ -XILINX-XDB 0.1 STUB 0.1 ASCII -XILINX-XDM V1.4e -$7gf41<,[o}e~g`n;"2*447&;:%>-*>;1;8456789:;<9>40123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?1:30?4(79o1:<7GAPTV9TWI@WLG[XTQ[HSGPL9?=878=7<>5IORVP?VUGNUNA]ZV_UJQAVNXIZYN^Y26:1<12>772@D[YY4_RNE\AHVSQV^C^H]G_OGDEQC;13:5=h5>0;KMTPR=X[ELSK[CL^VKV@UO400;2?;4118JJUSS2YXDKRHZLM]WLWCT@VKX_H\[<883:73<990BB][[:QPLCZ@RDEU_D_K\H^LFCDRB400;2LHW]]0{~biPelrw}ZrozlycSl}|esv?=?69:?1:<7GAPTV9twi`Wlg{xtQ{hsgplZhboh~n044?>0g8557<>5IORVP?vugnUmyabPtipfwmYimnki1750?3`?46=G\^[YY4KECWD[WBXXG^Y044?>0a85511b924?IR\Y__6_JPD@VB[FIRF]626=0>c:33>JSSX\^1[_QKAUC\GJSI\531<3?6;029KPRW]]0omyoPcnwmp9?=878?7<>5OTVSQQ0g855772F__\XZ5dd`vcZquWyd~R~cur3\s9?=878?7<>5OTVSQQ0g855772F__\XZ5re]geqgXkfex1750?3`?46=G\^[YY4xr^fbpdYdg|d044?>0685020?699=1:97GAPTV9EABUJ5;?6=0>2:3;>LHW]]0OEC2>7;2=57=603CE\XZ5dhl?52<768>0=54@UURVP?BH]]6:;7>115925863;;97><5IORVP?BNI59:6=0>2:11>LHW]]0OEO2<1;2=56=4:3E^X][[:EMB867=87;87><5OTVSQQ11:625>2=AGZ^X7JFP@>0>58692>1EC^ZT;FJTG:4294:<6:5IORVP?QBI591<3??;58JJUSS2^OI0>4?>0080?IR\Y__6IA_A=194;753=0DYY^ZT;FLTG:4294m79xcx52eb4730$;;=68=;7;7?3?>>812867?0808=32<1?<246OKDSC?4;?89B@ATF48;556OKDSC?578>3HNO^L2>3?`8EABUI5;?6=06;@FGVD:6<720MIJ]A=3=<>GCL[K7>364AEFQE95902KOH_O34?:8EABUI5?546OKDSC?2;>GCL[H7<374AEFQF977601JHI\M<03==>GCL[H7=?06;@FGVG:6;7h0MIJ]B=37>58>3HNO^O2>4?:8EABUJ5;546OKDS@?6;>GCL[H7:364AEFQF91902KOH_L38?:8EABUJ535o6OCMNQW[@KW\Ph0MAC@SU]EQIJ>3HYRBNQ]EF18FP4?3K_XSD@IO09@e>EF[JKOID@Na:ABWFGCM@DIn6MNSBCGAJSSIk1HM^MNDDMVPG4EKCK90OA\6;BMNILRSMM=0O_KNTDF2?A`0:FFFPAXZMU[BY\32?33?ACE]NUYHR^ATS>0:46028@@DROVXOS]@[R=:=57=CMK_LS_JPPOVQ8<<768:0HHLZG^PG[UHSZ535==5KECWD[RTXXG^Y0=0>0:FFFPAX_[U[BY\31?33?ACE]NU\^R^ATS>1:46028@@DROV]YS]@[R=5=55=CMK_LSZ\PPOVQ8=86:2NNNXIPWS]SJQT;13:5==5KECWD[RTXXG^Y040=;EK5?AOF494<7IGN<02=3>BNI5;:2:5KI@>26;108;EKB8429?2NBM1?:>69GMD:6>7=0HDO316<4?AOF4825;6JFA=3::3=CAH6:2:5KI@>14;1<08;EKB8749?2NBM1<<>69GMD:5<7=0HDO324<4?AOF4;<5;6JFA=04:2=CAH694394DHC?6<813MCJ0?08;EKB866912NBM1=>:1<4?AOF4:;5:6JFA=1=2>BNI5>5:6JFA=7=2>BNI5<5:6JFA=5=2>BNI525:6JFA=;=2>BNJ5:5;6JFB=33:2=CAK6:=394DH@?57803MCI0<=17:FJF9736>1OEO2>5?58@LD;9?4<7IGM<05=3>BNJ5;32:5KIC>2=;01OEO2=3?58@LD;:=4<7IGM<37=3>BNJ58=2:5KIC>13;1508;EKA87?9>2NBN1<17:FJF957601OEO2<1;2=3>BNJ59:2;5KIC>0:3=CAK6?2;5KIC>6:3=CAK6=2;5KIC>4:3=CAK632;5KIC>::3=CAG6;2:5KIO>24;169GMK:6<7=0HD@314<4?AOI48<556JFN=34>5803MCE0<916:FJJ979>2NBB1<16:FJJ959>2NBB1:16:FJJ939>2NBB1816:FJJ919>2NBB1616:FJJ9?9?2NB\L2?>69GMUG;97=0HD^N<3<:?AOWI591<394DHRB86803MC[N1>17:FJTG:66>1OE]L32?;8@LVE4:0;2:5KIQ@?7;01OCL2>3?58@JG;9=4<7IAN<07=3>BHI5;=2:5KO@>23;12NDM1?17:FLE9476>1OCL2=1?58@JG;:;4<7IAN<31=3>BHI58?2:5KO@>11;1;08;EMB8719?2NDM1<7>69GKD:517<0HBO32?58@JG;;9427IAN<2394;169GKG:697=0HBL313<4?AIE4895;6J@B=37:2=CGK6:9394DN@?53803MEI0<917:FLF97?6>1OCO2>9?48@JD;97=0HBL321<4?AIE4;;5;6J@B=01:2=CGK69?394DN@?61803MEI0?;17:FLF9416>1OCO2=7?58@JD;:14<7IAM<3;=2>BHJ585;6J@B=13:<=CGK68=7>17:FLF9566?1OCO2<>79GKG:36?1OCO2:>79GKG:16?1OCO28>79GKG:?6?1OCO26>69GKGYUMN=0HB^N<1<4?AIWI5;5;6J@P@>1:<=CGYK7?7>17:FLTD:46>1OC]L30?58@JVE484<7IA_B=0==>BHXK686=08;EMSF959?2NDYY2?>99GKPR;99437IAZT=32:==CG\^7=?07;EMVP974611OCXZ315<;?AIR\5;>255KOTV?538f3ME^X1?8:1<;?AIR\5;<2:5KOTV?5;169GKPR;=7=0HB[[<7<4?AIR\5=5;6J@UU>;:2=CG\^753;4ELRW]6=BFH90ICL=;G06?CGK[L90JIM;;GF@A6=ALY>0JI^J4:DE65264IOKWTZ6702CEEY^P00:8MKOSXV:946GAIUR\46>;8:KMMQVX8<20ECG[P^25<>OIA]ZT<:74IOKWWQGSM>1BBDZP0158MKOSW9;<7D@FT^213>OIA]U;?:5FNHV\411J7:KMMQY7N>1BBDZP1158MKOSW8;<7D@FT^313>OIA]U:?:5FNHV\511769JJLRX91=0ECG[_0;4?LHN\V;J;6GAIU]2F2=NF@^T=N94IOKW[4B03@DBXR?J7:KMMQY6N>1BBDZP2158MKOSW;;<7D@FT^013>OIA]U9?:5FNHV\611N94IOKW[7B03@DBXR1BBDZP3158MKOSW:;<7D@FT^113>OIA]U8?:5FNHV\711;8;HLJPZ51?2CEEYQ<769JJLRX;1=0ECG[_2;4?LHN\V9J;6GAIU]0F2=NF@^T?N94IOKW[6B03@DBXR=J7:KMMQY4N?1BBDZPA79JJLRXJ01BBDZPFHNF7>OI^880ECXJRU]@HNYCGHUYIJ?=;HLUAWRXKEATHBLPRDE0?LIE:2FB:6B@AEGG3>JHO@IJ@95CUU37?ISS:=1GYY=;;MWW00=J]QIRo6CnjnpUawunggi0Ad``rWgqwlii:2D:?6@>059M55533G;;895A1177?K77>=1E==9;;O33<1=I99387C?>4:L25521368J474<2D:=9:4N0360>H69?>0B259M57633G;9=95A1307?K75?=1E=?6;;O31=6=I9:>0B<=?4:L27423268J453<2D:?8:4N0150>H6;090B<:;;O3741=I9=;?7C?;259M51533G;?895A1577?K73>=1E=99;;O37<6=I9<90B<8<;O347>H60:1E=4<4N318J7643G8:?6@=239M17=I>;1E;?5A829M<6587C6:3:L;26=I0>90B56<;O::6>H>;2D2=>5A9218J<3a3GHTNX]_IO]SVJVT?2DNXZA]K59MKKC63F80CF64OWGQBIIP92Z?7]O]T`9SMKYE]ZCOTo5_IO]AQVHFEL90\_Kn;QPLCZCJX]S:86^]OF]FIUR^W]BYI^F30?37?UTHOVOF\YWPTIPFWM:668>0\_AH_DOSP\YS@[OXD1<1159SVJAXMDZ_URZGRDQK8686<2ZYCJQJMQVZ[QNUMZB783?;;QPLCZCJX]STXE\JSI>6:42VUGNUNA]ZV_UJQAVN;07;=7]\@G^GNTQ_X\AXN_E26:1<20>VUGNUNA]ZV_UJQAVN;17;i7]\@G^GNTQ_X\AXN_EQNSRGQP9699k1[^BIPELRW]ZROZLYCSL]\ESV?5;7e3YXDKRKBPU[\PMTB[AUJ_^K]T=0=5g=WZFMTI@^[Y^VKV@UOWHYXI_Z33?3a?UTHOVOF\YWPTIPFWMYF[ZOYX1:11c9SVJAXMDZ_URZGRDQK[DUTM[^793?m;QPLCZCJX]STXE\JSI]BWVCU\5<5=o5_RNE\AHVSQV^C^H]G_@QPAWR;?7;i7]\@G^GNTQ_X\AXN_EQNSRGQP9>99m1[^BIPELRW]ZROZLYCSL]\ESV?=?699k1[^BIPELRW]ZROZLYCSL]\ESV?=;7e3YXDKRKBPU[\PMTB[AUEIJO[E=2=5g=WZFMTI@^[Y^VKV@UOWGOLMYK31?3a?UTHOVOF\YWPTIPFWMYIMNK_I1<11c9SVJAXMDZ_URZGRDQK[KC@I]O7?3?m;QPLCZCJX]STXE\JSI]MABGSM5>5=o5_RNE\AHVSQV^C^H]G_OGDEQC;=7;i7]\@G^GNTQ_X\AXN_EQAEFCWA9099k1[^BIPELRW]ZROZLYCSCKHAUG?3;7e3YXDKRKBPU[\PMTB[AUEIJO[E=:=5a=WZFMTI@^[Y^VKV@UOWGOLMYK39;2=5g=WZFMTI@^[Y^VKV@UOWGOLMYK39?;8TWI@WO_G@<=4PSMD[CSKDV^C^H]G<1<27>VUGNUMYABPTIPFWM:66890\_AH_GWOHZROZLYC0?0>3:RQKBYA]EFTXE\JSI>0:45018TWI@WO_G@RZGRDQK8386;2ZYCJQIUMN\PMTB[A6<2<=4PSMD[CSKDV^C^H]G<9<21>VUGNUMYABPTIPFWM:>294:?6^]OF]EQIJX\AXN_E26>0c8TWI@WO_G@RZGRDQK[DUTM[^7<3?n;QPLCZ@RDEU_D_K\H^CPW@TS484:m6^]OF]EQIJX\AXN_EQNSRGQP9499h1[^BIPFTNO[QNUMZBTM^]JRU>0:4ga:RQKBYA]EFTXE\JSI]BWVCU\5<5=l5_RNE\BPJKW]BYI^FPARQFVQ:068k0\_AH_GWOHZROZLYCSL]\ESV?<;7d3YXDKRHZLM]WLWCT@VKX_H\[<883:4ga:RQKBYA]EFTXE\JSI]MABGSM5;5=l5_RNE\BPJKW]BYI^FPNDEBP@:568k0\_AH_GWOHZROZLYCSCKHAUG?7;7f3YXDKRHZLM]WLWCT@VDNKLZJ<5<2e>VUGNUMYABPTIPFWMYIMNK_I1;11`9SVJAXN\FGSYF]ERJ\J@AF\L6=2028VAYCI]KTOB[AT=1=55=ULVNJXLQLOTLW818682XOSIO[A^ALQKR;=7;;7_JPD@VB[FIRF]6=2<>4RE]GEQGXKF_EX191119Q@ZBF\HUHCX@[<9<26>TCWMK_MRM@UOV?=?69991YHRJNT@]@KPHS404>7_JPEOa8V@GCW^COXEQNc:PFEAYPAM^CSO84RDE@AD0<[H\NHLZN129PMHYDGEFB_DAA_BJFGN0<[F_YOH94SSTBHZG03ZX]MAQM4:QPVD2<[ZXI86ZVPDg8Q5)`mgUj#hhar;8QKBBZOFD[l5ZSDP\EIOF[j1^_H\PVHQJFIC23_KGEI=4VBA:?SOB_V^R\H84WDC?4;0<_LK7=384WDC?6;><_LK7?7>16:UFE959>2]NN1>16:UFF979>2]NN1<18:UFF95=87<0[HL33?`8SWOSMVLB^^Zl;VPJP@YJGMOTMn5XRHVF[HICMVHo7Z\FTD]TMAROWHn0[_G[E^UJ@QNXJ?1\^ROLK79TVZEKC8:0[_QKAUC\GJSI\5:5==5XR^FBPDYDG\D_0<0>0:UQ[AGSIVIDYCZ32?33?RTXLH^JSNAZNU>0:46<_[UOMYOPCNWMP929991\^RJNT@]@KPHS4<4:<6Y]_ECWEZEH]G^7:3??;VP\@DRFWJE^BY28>028SWYCI]KTOB[AT=:=57=PZVNJXLQLOTLW8<<768:0[_QKAUC\GJSI\53596Y]_DL2`>^ND@DS!UJM 1,2$VRRJ):%=-O\CHK6?]IUKP<0T^ZCIC58\VRXOGN<7U][_WA@f>^XKFXNSD@IO028\ZEHZLUBBKAPLHQW2>^cjVCoj6Vkh^RqmhPbzzcdb<>4Xeo\Idlhz_oydaa119[`hYJageyZh||inl`?djjgz~Ti`~{yc9bhhit|Vl~`a84b`ahqub)e9geqgXkfex%<&d:fbpdYdg|d$>'k;ecweZeh}g~#8$j4d`vb[firf}">%i5kauc\gjsi|!<"h6jnt`]`kphs >#o7io{a^alqkr/0 n0hlzn_bmvjq.>!m1omyoPcnwmp969n2njxlQlotlw8<<76>1ondzjrs3;?ace}nUyhR~ats]shpu6W{6;2<64dd`vcZtcWyd~R~cur3\v979911oio{h_sf\tkruWyf~bbj|mT~iQnup\tist9Vx7?3?7;egaqbYulVzexQltq2[w:36820hhlzg^pg[uhszVzgy~?Pr=7=5==cmklSjPpovq[ujr{8Uy0;0>8:fffpaXzmU{by|Ppmwp5Zt;?7;37ikmuf]q`Zvi|{U{`x}>_s>;:4g008``droVxoS}`{r^p?0;753moiyjQ}d^rmpwYu4<4:>6jjbte\vaYwf}xT~181139gags`W{nT|cz}_s>4:44008``droVxoS}`{r^p?=;753moiyjQ}d^rmpwYp494:>6jjbte\vaYwf}xT{1?1139gags`W{nT|cz}_v>1:442:fffpaXzmU{by|Pw=7=57=cmklSjPpovq[r:16880hhlzg^pg[uhszV}7;3?=;egaqbYulVzexQx<9<20>bbj|mT~iQnup\s9?=87;97ikmuf]q`Zvi|{U|040>8:fffpaX{U{by|Ppmwp5Zq;87;37ikmuf]tvZvi|{U{`x}>_v>2:4>0:8``droV}yS}`{r^roqv7X5<5=55kecwd[rtXxg~yS}bzs0]t828602nnnxiPws]sjqtXxex=Ry38?3b?ace}nU|~R~ats]shpu6W~626=0>8:fffpaX{U{by|Ppmwp5Zq;17;37ikmuf]tvZvi|{U{`x}=_v>3:4>0:8``droV}yS}`{r^roqv4X5?5=55kecwd[rtXxg~yS}bzs3]t838602nnnxiPws]sjqtXxex>Ry37?3;?ace}nU|~R~ats]shpu5W~632::442:fffpaX{U{by|Pr=0=57=cmklSz|Ppovq[w:46880hhlzg^uq[uhszVx783?=;egaqbYpzVzexQ}<4<26>bbj|mT{Qnup\v9099;1oio{h_vp\tkruW{6<2<<4dd`vcZquWyd~R|38?37?ace}nU|~R~ats]q8<<76880hhlzg^uq[uhszVx753?=;egaqbYpzVzexQx<1<26>bbj|mT{Qnup\s9799;1oio{h_vp\tkruW~692<<4dd`vcZquWyd~Ry33?31?ace}nU|~R~ats]t8186:2nnnxiPws]sjqtX5?5=?5kecwd[rtXxg~ySz29>008``droV}yS}`{r^u?3;753moiyjQxr^rmpwYp414:86jjbte\swYwf}xT{1750?31?ace}nU|~R~ats]t8<813mce$='9;ekm,4/03mce$<>&7:fjj-76!>1oec&>2(58`lh/9:#<7iga(06*3>bnf!;>%:5kio*22,1'9;ekm,1/13mce$8'9;ekm,3/13mce$:'9;ekm,=/13mce$4'9;ekm85803mce0<>17:fjj9766>1oec2>2?58`lh;9:4<7iga<06=3>bnf5;>2:5kio>22;?69gmk:6?7<0hd`31?48`lh;:7<0hd`33?48`lh;<7<0hd`35?48`lh;>7<0hd`37?48`lh;07<0hd`39?58`jss 9#<7iazt)3*<>bh}}":<$64dnww,47.02ndyy&>2(:8`jss 89"46j`uu*20,> 20hb{{(05*3>bh}}"9%:5kotv+7,13:==cg|~7==07;emvp976611ocxz313<;?air|5;8255kotv?518?3me~x1?:>99gkpr;9?4j7iazt=34>58?3me~x1?8>69gkpr;97=0hb{{<3<4?air|595;6j`uu>7:2=cg|~79394dnww83803me~x1917:flqq:?6>1ocxz39?:8aaoa:gmo96kbpu{15>`nnfUlick}aumq[s5X;%*Hckheo":*7o6>2lbjbQheogqeqiuW9T?Ro|4:dvhi>7g8jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqt(oldTnd`Pcov\pjv)j`dToczPtnr,c`hXjziTnd`Pcov-fibXj`dTocz MbmvjqYdg|dSnw31?52?kiuenoe"n`{bmi,c`hXkg~y"jka_sf\gkru'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/LalqkrXkfexRmv<0<\vq0b3geyajka.blwfim(oldTocz}.fgm[wbXkg~y#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+Heh}g~Tob{at^az878092dd~`ijn/ampgjl'noeSn`{r/efjZtcWjd~"ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]`}949W{~=i6``rlefj+ei|kf`#jka_blwv+abfVxoSn`{r.efjZdnfViexRz`p/`jjZei|V~d|"ijn^`pgZdnfViex#lcd^`jjZei|&Ghcx`{_bmvjqYdq595;<5aosodak(df}hgg"ijn^ampw(`mgUyhRmats-dakYeagUhbyQ{oq,amkYdf}Uc}!heo]awfYeagUhby mle]amkYdf}%Fob{at^alqkrXkp682R|{6d9mkwk`mg$hbylck.efjZei|{$licQ}d^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!BcnwmpZeh}g~Tot2;>638jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqt(oldTnd`Pcov\pjv)j`dToczPtnr,c`hXjziTnd`Pcov-fibXj`dTocz MbmvjqYdg|dSnw34?]qp3c^pw2`=ig{glic lnu`oo*abfViex heo]q`Zei|{%licQmio]`jqYsgy$iecQlnu]wku)`mgUinQmio]`jq(edmUiecQlnu-Ngjsi|VidyczPcx>;:27?0bb|bgdl-gkredb%licQlnup-c`hXzmUhby| gdl\flhXkg~Txb~!bhl\gkrX|fz$kh`Pbra\flhXkg~%najPbhl\gkr(Eje~byQlotlw[iss494TECXP07d8jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqt(oldTnd`Pcov\pjv)j`dToczPtnr,c`hXjziTnd`Pcov-fibXj`dTocz MbmvjqYdg|dSua}<0<5b>hhzdmnb#matcnh+bciWjd~#ijn^pg[fhsz&mnbRlfn^ampZrhx'hbbRmat^vlt*abfVhxoRlfn^amp+dklVhbbRmat.O`kphsWje~byQwos>1:3`7d8jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqt(oldTnd`Pcov\pjv)j`dToczPtnr,c`hXjziTnd`Pcov-fibXj`dTocz MbmvjqYdg|dSua}<8<46>hhzdmnb#matcnh+bciWjd~#ijn^pg[fhsz&mnbRlfn^ampZrhx'hbbRmat^vlt*abfVhxoRlfn^amp+dklVhbbRmat.O`kphsWje~byQwos>::Zts><1eccheo,`jqdkc&mnbRmats,dakYulViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx1>1649mkwk`mg$hbylck.efjZei|{$licQ}d^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop979><1eccheo,`jqdkc&mnbRmats,dakYulViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx1<1649mkwk`mg$hbylck.efjZei|{$licQ}d^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop959><1eccheo,`jqdkc&mnbRmats,dakYulViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx1:1649mkwk`mg$hbylck.efjZei|{$licQ}d^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop939><1eccheo,`jqdkc&mnbRmats,dakYulViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx181649mkwk`mg$hbylck.efjZei|{$licQ}d^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop919><1eccheo,`jqdkc&mnbRmats,dakYulViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx161649mkwk`mg$hbylck.efjZei|{$licQ}d^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop9?9>:1eccheo,`jqdkc&mnbRmats,dakYulViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)dg|dS=8<;omqibci&jdnae gdl\gkru&noeSjPcovq+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]226=ig{glic lnu`oo*abfViex heo]q`Zei|{%licQmio]`jqYsgy$iecQlnu]wku)`mgUinQmio]`jq(edmUiecQlnu-`kphsW;<87ca}mfgm*fhsjea$kh`Pcovq*bciW{nTocz}/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'je~byQ<629mkwk`mg$hbylck.efjZei|{$licQ}d^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!lotlw[1043geyajka.blwfim(oldTocz}.fgm[wbXkg~y#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+firf}U>:>5aosodak(df}hgg"ijn^ampw(`mgUyhRmats-dakYeagUhbyQ{oq,amkYdf}Uc}!heo]awfYeagUhby mle]amkYdf}%hcx`{_740?kiuenoe"n`{bmi,c`hXkg~y"jka_sf\gkru'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/bmvjqY0>:1eccheo,`jqdkc&mnbRmats,dakYulViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)dg|dS58<;omqibci&jdnae gdl\gkru&noeSjPcovq+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]:31=ig{glic lnu`oo*abfViex heo]q`Zei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'DidyczPcnwmpZe~494<86``rlefj+ei|kf`#jka_blwv+abfVxoSn`{r^roqv7(oldTnd`Pcov\pjv)j`dToczPtnr,c`hXjziTnd`Pcov-fibXj`dTocz MbmvjqYdg|dSnw31?54?kiuenoe"n`{bmi,c`hXkg~y"jka_sf\gkruWyf~hhzdmnb#matcnh+bciWjd~#ijn^pg[fhszVzgy~? gdl\flhXkg~Txb~!bhl\gkrX|fz$kh`Pbra\flhXkg~%najPbhl\gkr(Eje~byQlotlw[f;:7Uyx::4nnpnc`h)kg~i`f!heo]`jqt)oldT~iQlnup\tist9&mnbRlfn^ampZrhx'hbbRmat^vlt*abfVhxoRlfn^amp+dklVhbbRmat.O`kphsWje~byQly=1=32=ig{glic lnu`oo*abfViex heo]q`Zei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'DidyczPcnwmpZe~4:4T~y9;;omqibci&jdnae gdl\gkru&noeSjPcovq[ujr{8%licQmio]`jqYsgy$iecQlnu]wku)`mgUinQmio]`jq(edmUiecQlnu-Ngjsi|VidyczPcx>7:215Sz84:llvhabf'iexobd/fgm[fhsz'mnbR|k_blwvZvk}z;$kh`Pbhl\gkrX|fz%nd`Pcov\pjv(oldTn~mPbhl\gkr)jenTnd`Pcov,Ifirf}Uhcx`{_b{?1;103geyajka.blwfim(oldTocz}.fgm[wbXkg~yS}bzs0-dakYeagUhbyQ{oq,amkYdf}Uc}!heo]awfYeagUhby mle]amkYdf}%Fob{at^alqkrXkp6>2R|{759mkwk`mg$hbylck.efjZei|{$licQ}d^ampwYwd|y:#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+Heh}g~Tob{at^az8380?2dd~`ijn/ampgjl'noeSn`{r/efjZtcWjd~R~cur3,c`hXj`dToczPtnr-flhXkg~Txb~ gdl\fveXj`dTocz!bmf\flhXkg~$Anaznu]`kphsWjs7:3Q}t668jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]`}919?>1eccheo,`jqdkc&mnbRmats,dakYulViexQltq2+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#@m`uov\gjsi|Vir0:0Pru57?kiuenoe"n`{bmi,c`hXkg~y"jka_sf\gkruWyf~=0bb|bgdl-gkredb%licQlnup-c`hXzmUhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Uhu161_sv4f>hhzdmnb#matcnh+bciWjd~#ijn^pg[fhszVzgy~? gdl\flhXkg~Txb~!bhl\gkrX|fz$kh`Pbra\flhXkg~%najPbhl\gkr(Eje~byQlotlw[iss494TECXP0678jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:66>?0bb|bgdl-gkredb%licQlnup-c`hXzmUhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc2=>678jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:46>?0bb|bgdl-gkredb%licQlnup-c`hXzmUhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc2;>678jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:26>?0bb|bgdl-gkredb%licQlnup-c`hXzmUhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc29>678jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:06>?0bb|bgdl-gkredb%licQlnup-c`hXzmUhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc27>678jjtjold%oczmlj-dakYdf}x%kh`Pre]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:>6>20bb|bgdl-gkredb%licQlnup-c`hXzmUhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc26>^pw2g=ig{glic lnu`oo*abfViex heo]q`Zei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'[oxyaz30?4a?kiuenoe"n`{bmi,c`hXkg~y"jka_sf\gkruWyf~38m;omqibci&jdnae gdl\gkru&noeSjPcovq[ujr{8%licQmio]`jqYsgy$iecQlnu]wku)`mgUinQmio]`jq(edmUiecQlnu-Qavsk|595:o5aosodak(df}hgg"ijn^ampw(`mgUyhRmats]shpu6'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/Sgpqir;<7k1eccheo,`jqdkc&mnbRmats,dakYulViexQltq2+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#_k|umv?2;0e3geyajka.blwfim(oldTocz}.fgm[wbXkg~yS}bzs0-dakYeagUhbyQ{oq,amkYdf}Uc}!heo]awfYeagUhby mle]amkYdf}%Yi~{ct=5=2g=ig{glic lnu`oo*abfViex heo]q`Zei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'[oxyaz38?4a?kiuenoe"n`{bmi,c`hXkg~y"jka_sf\gkruWyf~01eccheo,`jqdkc&mnbRmats,dakYulViexQltq2+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]12<=ig{glic lnu`oo*abfViex heo]q`Zei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'je~byQ<689mkwk`mg$hbylck.efjZei|{$licQ}d^ampwYwd|y:#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+firf}U?:45aosodak(df}hgg"ijn^ampw(`mgUyhRmats]shpu6'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/bmvjqY2>01eccheo,`jqdkc&mnbRmats,dakYulViexQltq2+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]52<=ig{glic lnu`oo*abfViex heo]q`Zei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'je~byQ8689mkwk`mg$hbylck.efjZei|{$licQ}d^ampwYwd|y:#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+firf}U3:45aosodak(df}hgg"ijn^ampw(`mgUyhRmats]shpu6'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/bmvjqY>>l1eccheo,`jqdkc&mnbRmats,dakYpzViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)JkfexRm`uov\g|:76?o0bb|bgdl-gkredb%licQlnup-c`hX{Uhby| gdl\flhXkg~Txb~!bhl\gkrX|fz$kh`Pbra\flhXkg~%najPbhl\gkr(Eje~byQlotlw[f;97=:7ca}mfgm*fhsjea$kh`Pcovq*bciW~xTocz}/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'DidyczPcnwmpZe~484T~y8j;omqibci&jdnae gdl\gkru&noeSz|Pcovq+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#@m`uov\gjsi|Vir0?081:llvhabf'iexobd/fgm[fhsz'mnbRy}_blwv*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Uhu1<1_sv5a>hhzdmnb#matcnh+bciWjd~#ijn^uq[fhsz&mnbRlfn^ampZrhx'hbbRmat^vlt*abfVhxoRlfn^amp+dklVhbbRmat.O`kphsWje~byQly=1=34=ig{glic lnu`oo*abfViex heo]tvZei|{%licQmio]`jqYsgy$iecQlnu]wku)`mgUinQmio]`jq(edmUiecQlnu-Ngjsi|VidyczPcx>0:Zts>l1eccheo,`jqdkc&mnbRmats,dakYpzViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)JkfexRm`uov\g|:36>;0bb|bgdl-gkredb%licQlnup-c`hX{Uhby| gdl\flhXkg~Txb~!bhl\gkrX|fz$kh`Pbra\flhXkg~%najPbhl\gkr(Eje~byQlotlw[f;<7Uyx;k4nnpnc`h)kg~i`f!heo]`jqt)oldT{Qlnup,c`hXj`dToczPtnr-flhXkg~Txb~ gdl\fveXj`dTocz!bmf\flhXkg~$Anaznu]`kphsWjs7939>;omqibci&jdnae gdl\gkru&noeSz|Pcovq+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#@m`uov\gjsi|Vir080Pru4f?kiuenoe"n`{bmi,c`hXkg~y"jka_vp\gkru'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/LalqkrXkfexRmv<7<45>hhzdmnb#matcnh+bciWjd~#ijn^uq[fhsz&mnbRlfn^ampZrhx'hbbRmat^vlt*abfVhxoRlfn^amp+dklVhbbRmat.O`kphsWje~byQly=4=[wr1m2dd~`ijn/ampgjl'noeSn`{r/efjZquWjd~"ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]`}919?81eccheo,`jqdkc&mnbRmats,dakYpzViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)JkfexRm`uov\g|:06Vx:h5aosodak(df}hgg"ijn^ampw(`mgU|~Rmats-dakYeagUhbyQ{oq,amkYdf}Uc}!heo]awfYeagUhby mle]amkYdf}%Fob{at^alqkrXkp632:?4nnpnc`h)kg~i`f!heo]`jqt)oldT{Qlnup,c`hXj`dToczPtnr-flhXkg~Txb~ gdl\fveXj`dTocz!bmf\flhXkg~$Anaznu]`kphsWjs743Q}t678jjtjold%oczmlj-dakYdf}x%kh`Pws]`jqt(oldTnd`Pcov\pjv)j`dToczPtnr,c`hXjziTnd`Pcov-fibXj`dTocz MbmvjqYdg|dSa{{<1<\MKPX8?l0bb|bgdl-gkredb%licQlnup-c`hX{Uhby| gdl\flhXkg~Txb~!bhl\gkrX|fz$kh`Pbra\flhXkg~%najPbhl\gkr(Eje~byQlotlw[}iu484=j6``rlefj+ei|kf`#jka_blwv+abfV}ySn`{r.efjZdnfViexRz`p/`jjZei|V~d|"ijn^`pgZdnfViex#lcd^`jjZei|&Ghcx`{_bmvjqYg{692;h4nnpnc`h)kg~i`f!heo]`jqt)oldT{Qlnup,c`hXj`dToczPtnr-flhXkg~Txb~ gdl\fveXj`dTocz!bmf\flhXkg~$Anaznu]`kphsWqey0>09f:llvhabf'iexobd/fgm[fhsz'mnbRy}_blwv*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc2;>7d8jjtjold%oczmlj-dakYdf}x%kh`Pws]`jqt(oldTnd`Pcov\pjv)j`dToczPtnr,c`hXjziTnd`Pcov-fibXj`dTocz MbmvjqYdg|dSua}<4<5b>hhzdmnb#matcnh+bciWjd~#ijn^uq[fhsz&mnbRlfn^ampZrhx'hbbRmat^vlt*abfVhxoRlfn^amp+dklVhbbRmat.O`kphsWje~byQwos>5:3`6``rlefj+ei|kf`#jka_blwv+abfV}ySn`{r.efjZdnfViexRz`p/`jjZei|V~d|"ijn^`pgZdnfViex#lcd^`jjZei|&Ghcx`{_bmvjqYg{622R|{649mkwk`mg$hbylck.efjZei|{$licQxr^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop969><1eccheo,`jqdkc&mnbRmats,dakYpzViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx1?1649mkwk`mg$hbylck.efjZei|{$licQxr^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop949><1eccheo,`jqdkc&mnbRmats,dakYpzViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx1=1649mkwk`mg$hbylck.efjZei|{$licQxr^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop929><1eccheo,`jqdkc&mnbRmats,dakYpzViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx1;1649mkwk`mg$hbylck.efjZei|{$licQxr^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop909><1eccheo,`jqdkc&mnbRmats,dakYpzViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx191649mkwk`mg$hbylck.efjZei|{$licQxr^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!]erwop9>9><1eccheo,`jqdkc&mnbRmats,dakYpzViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx171629mkwk`mg$hbylck.efjZei|{$licQxr^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!lotlw[5043geyajka.blwfim(oldTocz}.fgm[rtXkg~y#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+firf}U::>5aosodak(df}hgg"ijn^ampw(`mgU|~Rmats-dakYeagUhbyQ{oq,amkYdf}Uc}!heo]awfYeagUhby mle]amkYdf}%hcx`{_340?kiuenoe"n`{bmi,c`hXkg~y"jka_vp\gkru'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/bmvjqY4>:1eccheo,`jqdkc&mnbRmats,dakYpzViex!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)dg|dS98<;omqibci&jdnae gdl\gkru&noeSz|Pcovq+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]626=ig{glic lnu`oo*abfViex heo]tvZei|{%licQmio]`jqYsgy$iecQlnu]wku)`mgUinQmio]`jq(edmUiecQlnu-`kphsW?<87ca}mfgm*fhsjea$kh`Pcovq*bciW~xTocz}/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'je~byQ8629mkwk`mg$hbylck.efjZei|{$licQxr^ampw)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!lotlw[=043geyajka.blwfim(oldTocz}.fgm[rtXkg~y#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+firf}U2;95aosodak(df}hgg"ijn^ampw(`mgU|~Rmats]shpu6'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/LalqkrXkfexRmv<1<40>hhzdmnb#matcnh+bciWjd~#ijn^uq[fhszVzgy~? gdl\flhXkg~Txb~!bhl\gkrX|fz$kh`Pbra\flhXkg~%najPbhl\gkr(Eje~byQlotlw[f;97=<7ca}mfgm*fhsjea$kh`Pcovq*bciW~xTocz}_qnvw4)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!BcnwmpZeh}g~Tot2>>^pw31=ig{glic lnu`oo*abfViex heo]tvZei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'DidyczPcnwmpZe~4;4<;6``rlefj+ei|kf`#jka_blwv+abfV}ySn`{r^roqv7(oldTnd`Pcov\pjv)j`dToczPtnr,c`hXjziTnd`Pcov-fibXj`dTocz MbmvjqYdg|dSnw32?]qp226:Zts?=1eccheo,`jqdkc&mnbRmats,dakYpzViexQltq2+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#@m`uov\gjsi|Vir0;087:llvhabf'iexobd/fgm[fhsz'mnbRy}_blwvZvk}z;$kh`Pbhl\gkrX|fz%nd`Pcov\pjv(oldTn~mPbhl\gkr)jenTnd`Pcov,Ifirf}Uhcx`{_b{?2;Yu|>>0bb|bgdl-gkredb%licQlnup-c`hX{Uhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Uhu191769mkwk`mg$hbylck.efjZei|{$licQxr^ampwYwd|y:#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+Heh}g~Tob{at^az828Xz}=?7ca}mfgm*fhsjea$kh`Pcovq*bciW~xTocz}_qnvw4)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!BcnwmpZeh}g~Tot27>658jjtjold%oczmlj-dakYdf}x%kh`Pws]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]`}9>9W{~?0bb|bgdl-gkredb%licQlnup-c`hX{Uhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc2>>678jjtjold%oczmlj-dakYdf}x%kh`Pws]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:56>?0bb|bgdl-gkredb%licQlnup-c`hX{Uhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc2<>678jjtjold%oczmlj-dakYdf}x%kh`Pws]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:36>?0bb|bgdl-gkredb%licQlnup-c`hX{Uhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc2:>678jjtjold%oczmlj-dakYdf}x%kh`Pws]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:16>?0bb|bgdl-gkredb%licQlnup-c`hX{Uhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc28>678jjtjold%oczmlj-dakYdf}x%kh`Pws]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:?6>?0bb|bgdl-gkredb%licQlnup-c`hX{Uhby|Ppmwp5*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Usc26>6:8jjtjold%oczmlj-dakYdf}x%kh`Pws]`jqtXxex="ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]{kw:>6Vx:o5aosodak(df}hgg"ijn^ampw(`mgU|~Rmats]shpu6'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/Sgpqir;87k1eccheo,`jqdkc&mnbRmats,dakYpzViexQltq2+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#_k|umv?6;0e3geyajka.blwfim(oldTocz}.fgm[rtXkg~yS}bzs0-dakYeagUhbyQ{oq,amkYdf}Uc}!heo]awfYeagUhby mle]amkYdf}%Yi~{ct=1=2g=ig{glic lnu`oo*abfViex heo]tvZei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'[oxyaz34?4a?kiuenoe"n`{bmi,c`hXkg~y"jka_vp\gkruWyf~01eccheo,`jqdkc&mnbRmats,dakYpzViexQltq2+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]32<=ig{glic lnu`oo*abfViex heo]tvZei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'je~byQ>689mkwk`mg$hbylck.efjZei|{$licQxr^ampwYwd|y:#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+firf}U9:45aosodak(df}hgg"ijn^ampw(`mgU|~Rmats]shpu6'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/bmvjqY4>01eccheo,`jqdkc&mnbRmats,dakYpzViexQltq2+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]72<=ig{glic lnu`oo*abfViex heo]tvZei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'je~byQ:689mkwk`mg$hbylck.efjZei|{$licQxr^ampwYwd|y:#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+firf}U=:45aosodak(df}hgg"ijn^ampw(`mgU|~Rmats]shpu6'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/bmvjqY0>01eccheo,`jqdkc&mnbRmats,dakYpzViexQltq2+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu];2<=ig{glic lnu`oo*abfViex heo]tvZei|{U{`x}>/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'je~byQ6759mkwk`mg$hbylck.efjZei|{$licQxr^ampwYwd|y9#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+Heh}g~Tob{at^az8580<2dd~`ijn/ampgjl'noeSn`{r/efjZquWjd~R~cur0,c`hXj`dToczPtnr-flhXkg~Txb~ gdl\fveXj`dTocz!bmf\flhXkg~$Anaznu]`kphsWjs7=398;omqibci&jdnae gdl\gkru&noeSz|Pcovq[ujr{;%licQmio]`jqYsgy$iecQlnu]wku)`mgUinQmio]`jq(edmUiecQlnu-Ngjsi|VidyczPcx>2:Zts?=1eccheo,`jqdkc&mnbRmats,dakYpzViexQltq1+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#@m`uov\gjsi|Vir0?087:llvhabf'iexobd/fgm[fhsz'mnbRy}_blwvZvk}z8$kh`Pbhl\gkrX|fz%nd`Pcov\pjv(oldTn~mPbhl\gkr)jenTnd`Pcov,Ifirf}Uhcx`{_b{?6;Yu|>>0bb|bgdl-gkredb%licQlnup-c`hX{Uhby|Ppmwp6*abfVhbbRmat^vlt+dnfViexRz`p.efjZdtkVhbbRmat/`o`ZdnfViex"Clotlw[firf}Uhu1=1769mkwk`mg$hbylck.efjZei|{$licQxr^ampwYwd|y9#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+Heh}g~Tob{at^az868Xz}=?7ca}mfgm*fhsjea$kh`Pcovq*bciW~xTocz}_qnvw7)`mgUiecQlnu]wku(eagUhbyQ{oq-dakYe{jUiecQlnu,ahaYeagUhby!BcnwmpZeh}g~Tot2;>658jjtjold%oczmlj-dakYdf}x%kh`Pws]`jqtXxex>"ijn^`jjZei|V~d|#lfn^ampZrhx&mnbRl|c^`jjZei|'hghRlfn^amp*Kdg|dSnaznu]`}929W{~<86``rlefj+ei|kf`#jka_blwv+abfV}ySn`{r^roqv4(oldTnd`Pcov\pjv)j`dToczPtnr,c`hXjziTnd`Pcov-fibXj`dTocz MbmvjqYdg|dSnw35?54?kiuenoe"n`{bmi,c`hXkg~y"jka_vp\gkruWyf~?!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)JkfexRm`uov\g|:26Vx;95aosodak(df}hgg"ijn^ampw(`mgU|~Rmats]shpu5'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/LalqkrXkfexRmv<7<43>hhzdmnb#matcnh+bciWjd~#ijn^uq[fhszVzgy~< gdl\flhXkg~Txb~!bhl\gkrX|fz$kh`Pbra\flhXkg~%najPbhl\gkr(Eje~byQlotlw[f;>7Uyx::4nnpnc`h)kg~i`f!heo]`jqt)oldT{Qlnup\tist:&mnbRlfn^ampZrhx'hbbRmat^vlt*abfVhxoRlfn^amp+dklVhbbRmat.O`kphsWje~byQly=5=32=ig{glic lnu`oo*abfViex heo]tvZei|{U{`x}=/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'DidyczPcnwmpZe~4>4T~y9;;omqibci&jdnae gdl\gkru&noeSz|Pcovq[ujr{;%licQmio]`jqYsgy$iecQlnu]wku)`mgUinQmio]`jq(edmUiecQlnu-Ngjsi|VidyczPcx>;:212:230:236:234:23::2>k1eccheo,`jqdkc&mnbRmats,dakYpzViexQltq1+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#_k|umv?0;0e3geyajka.blwfim(oldTocz}.fgm[rtXkg~yS}bzs3-dakYeagUhbyQ{oq,amkYdf}Uc}!heo]awfYeagUhby mle]amkYdf}%Yi~{ct=7=2g=ig{glic lnu`oo*abfViex heo]tvZei|{U{`x}=/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'[oxyaz36?4a?kiuenoe"n`{bmi,c`hXkg~y"jka_vp\gkruWyf~?!heo]amkYdf}Uc} mio]`jqYsgy%licQmsb]amkYdf}$i`iQmio]`jq)Umzgx1916c9mkwk`mg$hbylck.efjZei|{$licQxr^ampwYwd|y9#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+Wct}e~7438m;omqibci&jdnae gdl\gkru&noeSz|Pcovq[ujr{;%licQmio]`jqYsgy$iecQlnu]wku)`mgUinQmio]`jq(edmUiecQlnu-Qavsk|535:45aosodak(df}hgg"ijn^ampw(`mgU|~Rmats]shpu5'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/bmvjqY7>01eccheo,`jqdkc&mnbRmats,dakYpzViexQltq1+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]22<=ig{glic lnu`oo*abfViex heo]tvZei|{U{`x}=/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'je~byQ=689mkwk`mg$hbylck.efjZei|{$licQxr^ampwYwd|y9#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+firf}U8:45aosodak(df}hgg"ijn^ampw(`mgU|~Rmats]shpu5'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/bmvjqY3>01eccheo,`jqdkc&mnbRmats,dakYpzViexQltq1+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]62<=ig{glic lnu`oo*abfViex heo]tvZei|{U{`x}=/fgm[goiWjdSya.ckm[fhsW}e{#jka_cq`[goiWjd"obk_ckm[fhs'je~byQ9689mkwk`mg$hbylck.efjZei|{$licQxr^ampwYwd|y9#jka_ckm[fhsW}e{"oga_blw[qiw'noeSo}l_ckm[fhs&kfoSoga_blw+firf}U<:45aosodak(df}hgg"ijn^ampw(`mgU|~Rmats]shpu5'noeSoga_blw[qiw&kceSn`{_ums+bciWkyhSoga_blw*gjcWkceSn`{/bmvjqY?>01eccheo,`jqdkc&mnbRmats,dakYpzViexQltq1+bciWkceSn`{_ums*goiWjdSya/fgm[gudWkceSn`{.cng[goiWjd#naznu]:76=ig{glic ilcnh+HgclVkgxR|k_ecweZeh}g~TeRokdrwa456799987ca}mfgm*cjedb%FmijPamv\vaYci}kTob{at^k\eabt}k:;<=?=329mkwk`mg$m`obd/Lcg`Zgk|VxoSio{a^alqkrXaVkoh~{m012351543geyajka.gnahn)JimnTmazPre]geqgXkfexRgPaefpqg6789;=??5aosodak(adkf`#@okd^copZtcWmkmRm`uov\mZgclzi<=>?2208jjtjold%jalck.Ob`aYfd}UyhRjnt`]`kphsW`Ujhi}zb12341553geyajka.gnahn)JimnTmazPre]geqgXkfexRgPaefpqg6789<8>6``rlefj+`kjea$Aljk_`nw[wbXlh~jSnaznu]j[dbc{|h;<=>7369mkwk`mg$m`obd/Lcg`Zgk|VxoSio{a^alqkrXaVkoh~{m0123[f;979;7ca}mfgm*cjedb%FmijPamv\swYci}kTob{at^k\eab789::<>>4nnpnc`h)nehgg"Cnde]bhqYpzVnjxlQlotlw[lYflm:;<=?=319mkwk`mg$m`obd/Lcg`Zgk|V}ySio{a^alqkrXaVkoh=>?00604>hhzdmnb#hcbmi,IdbcWhfSz|Pd`vb[firf}UbSljk0123534a3geyajka.gnahn)JimnTmazPws]geqgXkfexRgPaef34565:o1eccheo,ehgjl'DkohRoct^uq[agsiVidyczPi^cg`5678=8m7ca}mfgm*cjedb%FmijPamv\swYci}kTob{at^k\eab789:=>k5aosodak(adkf`#@okd^copZquWmkmRm`uov\mZgcl9:;<5=;;omqibci&ofi`f!Baef\eirX{UomyoPcnwmpZoXimn;<=>Pcx>2:7>1299mkwk`mg$m`obd/LqvfZrjxVzexQ}_ekebZe~484946``rlefj+`kjea$A~{m_uos[uhszVxThdhi_b{?6;4?3geyajka.gnahn)J{|hTx`~Ppovq[wYcaolTot2<>3:8jjtjold%jalck.OpqgYseyU{by|Pr^fjbcYdq5>5>55aosodak(adkf`#@}zb^vntZvi|{UySigif^az808502dd~`ijn/dofim(EziSyc_qlwvZtXl`lmSnw36?0;?kiuenoe"kbmlj-NwpdX|dzT|cz}_s]gmc`Xkp6<2?64nnpnc`h)nehgg"C|uc]wiuYwf}xT~Rjffg]`}9>9:01eccheo,ehgjl'Dy~nRzbp^rmpwYuWmcmjRbzt=2=6<=ig{glic ilcnh+HurjV~f|R~ats]q[aoanVf~x1?1289mkwk`mg$m`obd/LqvfZrjxVzexQ}_ekebZjr|585>45aosodak(adkf`#@}zb^vntZvi|{UySigif^nvp959:01eccheo,ehgjl'Dy~nRzbp^rmpwYuWmcmjRbzt=6=6<=ig{glic ilcnh+HurjV~f|R~ats]q[aoanVf~x1;1289mkwk`mg$m`obd/LqvfZrjxVzexQ}_ekebZjr|5<5>45aosodak(adkf`#@}zb^vntZvi|{UySigif^nvp919:01eccheo,ehgjl'Dy~nRzbp^rmpwYuWmcmjRbzt=:=6<=ig{glic ilcnh+HurjV~f|R~ats]q[aoanVf~x171289mkwk`mg$m`obd/LqvfZrjxVzexQ}_ekebZ~hz5:5>45aosodak(adkf`#@}zb^vntZvi|{UySigif^zlv979:01eccheo,ehgjl'Dy~nRzbp^rmpwYuWmcmjRv`r=0=6<=ig{glic ilcnh+HurjV~f|R~ats]q[aoanVrd~1=1289mkwk`mg$m`obd/LqvfZrjxVzexQ}_ekebZ~hz5>5>45aosodak(adkf`#@}zb^vntZvi|{UySigif^zlv939:01eccheo,ehgjl'Dy~nRzbp^rmpwYuWmcmjRv`r=4=6<=ig{glic ilcnh+HurjV~f|R~ats]q[aoanVrd~191289mkwk`mg$m`obd/LqvfZrjxVzexQ}_ekebZ~hz525>45aosodak(adkf`#@}zb^vntZvi|{UySigif^zlv9?9:11eccheo,ehgjl'Dy~nRzbp^rmpwYpWmcmjRmv<1<1<>hhzdmnb#hcbmi,IvseW}g{S}`{r^u\`l`aWjs7=3<7;omqibci&ofi`f!Bst`\phvXxg~ySzQkigd\g|:56;20bb|bgdl-bidkc&GxyoQ{mq]sjqtXVnbjkQly=1=6==ig{glic ilcnh+HurjV~f|R~ats]t[aoanVir090=8:llvhabf'lgnae Mrwa[qkwWyd~RyPdhde[f;=7837ca}mfgm*cjedb%FxlPtlr\tkruW~UoekhPcx>5:7>hhzdmnb#hcbmi,IvseW}g{S}`{r^u\`l`aWe0?0=9:llvhabf'lgnae Mrwa[qkwWyd~RyPdhde[iss4:4956``rlefj+`kjea$A~{m_uos[uhszV}Thdhi_mww818512dd~`ijn/dofim(EziSyc_qlwvZqXl`lmSa{{<4<1=>hhzdmnb#hcbmi,IvseW}g{S}`{r^u\`l`aWe0;0=9:llvhabf'lgnae Mrwa[qkwWyd~RyPdhde[iss4>4956``rlefj+`kjea$A~{m_uos[uhszV}Thdhi_mww8=8512dd~`ijn/dofim(EziSyc_qlwvZqXl`lmSa{{<8<1=>hhzdmnb#hcbmi,IvseW}g{S}`{r^u\`l`aWqey0=0=9:llvhabf'lgnae Mrwa[qkwWyd~RyPdhde[}iu484956``rlefj+`kjea$A~{m_uos[uhszV}Thdhi_ymq878512dd~`ijn/dofim(EziSyc_qlwvZqXl`lmSua}<2<1=>hhzdmnb#hcbmi,IvseW}g{S}`{r^u\`l`aWqey090=9:llvhabf'lgnae Mrwa[qkwWyd~RyPdhde[}iu4<4956``rlefj+`kjea$A~{m_uos[uhszV}Thdhi_ymq838512dd~`ijn/dofim(EziSyc_qlwvZqXl`lmSua}<6<1=>hhzdmnb#hcbmi,IvseW}g{S}`{r^u\`l`aWqey050=9:llvhabf'lgnae Mrwa[qkwWyd~RyPdhde[}iu404:=6``rlefj+`kjea$B<>>1:llvhabf'lgnae N0325>hhzdmnb#hcbmi,J44692dd~`ijn/dofim(F89:=6``rlefj+`kjea$B<:>1:llvhabf'lgnae N0725>hhzdmnb#hcbmi,J40692dd~`ijn/dofim(F8=:=6``rlefj+`kjea$B<6>1:llvhabf'lgnae N0;25>hhzdmnb#hcbmi,J76692dd~`ijn/dofim(F;;:=6``rlefj+`kjea$B?<>1:llvhabf'lgnae N3125>hhzdmnb#hcbmi,J72692dd~`ijn/dofim(F;?:<6``rlefj+`kjea$B;??;omqibci&ofi`f!A7028jjtjold%jalck.L;55=ig{glic ilcnh+K?402dd~`ijn/dofim(keafci!lx/pg|*Kg{U{by|Pgb]{kw6789UYi~{ct01;?kiuenoe"kbmlj-`hnkhl&is"jw/LzlvZvi|{UloRv`r1235ZTb{|f=>64nnpnc`h)nehgg"mcklmg+f~)zmr$Aua}_qlwvZadWqey<=>=_Sgpqir6;11eccheo,ehgjl'jf`abj cy,q`})JpfxT|cz}_fa\|jt7899T^h}zlu30<>hhzdmnb#hcbmi,gimjgm%ht#|kx.O{kwYwf}xTknQwos2341YUmzgx<=7;omqibci&ofi`f!lljol`*e&{ns#@v`r^rmpwY`kVrd~=>?5^Pfwpjs9:20bb|bgdl-bidkc&igg`ak/bz-va~(EqeyS}`{r^e`[}iu89:=S_k|umv27==ig{glic ilcnh+fjlefn$ou }dy-N|jtXxg~ySjmPxnp3451XZly~`y?<8:llvhabf'lgnae cminka)dp'xot"Cwos]sjqtXojUsc>?09]Qavsk|88?7ca}mfgm*cjedb%h`fc`d.a{*wb'YD_^RLP0368jjtjold%jalck.aoohic'jr%~iv POVQ[GY6:=1eccheo,ehgjl'jf`abj cy,q`})WF]XTNR<=4:llvhabf'lgnae cminka)dp'xot"^ATS]A[6433geyajka.gnahn)ddbgdh"mw.sf{+UHSZVHT8?:4nnpnc`h)nehgg"mcklmg+f~)zmr$\CZ]_C]661=ig{glic ilcnh+fjlefn$ou }dy-SJQTXJV<986``rlefj+`kjea$oaeboe-`|+tcp&ZEX_QM_607?kiuenoe"kbmlj-`hnkhl&is"jw/QLWVZDX0;>0bb|bgdl-bidkc&igg`ak/bz-va~(XG^YSOQ62`9mkwk`mg$m`obd/bnhijb(kq$yhu!_NUP\FZ~hz9:;hhzdmnb#hcbmi,gimjgm%ht#|kx.RMPWYEWqey<=>=13c8jjtjold%jalck.aoohic'jr%~iv POVQ[GYg{:;<>l5aosodak(adkf`#nbdmnf,g}(ulq%[BY\PB^zlv567<;h0bb|bgdl-bidkc&igg`ak/bz-va~(XG^YSOQwos234175i2dd~`ijn/dofim(keafci!lx/pg|*VI\[UISua}01266g=ig{glic ilcnh+fjlefn$ou }dy-SJQTXJVrd~=>?500b?kiuenoe"kbmlj-`hnkhl&is"jw/QLWVZDXpfx;<=8<0:llvhabf'lgnae cminka)dp'xot"^ATS]A[}iu89:==1^QT566?0732[VQ5:k1eccheo,ehgjl'jf`abj cy,q`})WF]XTNRv`r123274f3geyajka.gnahn)ddbgdh"mw.sf{+UHSZVHTtb|?0151f>hhzdmnb#hcbmi,gimjgm%ht#|kx.RMPWYEWqey<=>813c8jjtjold%jalck.aoohic'jr%~iv POVQ[GYg{:;<5;5aosodak(adkf`#nbdmnf,g}(ulq%{by|Pgb>3:702dd~`ijn/dofim(keafci!lx/pg|*vi|{Ulo1=1279mkwk`mg$m`obd/bnhijb(kq$yhu!nup\cf:36;<0bb|bgdl-bidkc&igg`ak/bz-va~(xg~ySjm35?05?kiuenoe"kbmlj-`hnkhl&is"jw/qlwvZad4?49:6``rlefj+`kjea$oaeboe-`|+tcp&zexQhc=5=63=ig{glic ilcnh+fjlefn$ou }dy-sjqtXoj632?84nnpnc`h)nehgg"mcklmg+f~)zmr$|cz}_fa?=;423geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhS=<:;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[4423geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhS?<:;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[6423geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhS9<:;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[0423geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhS;<:;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[2423geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhS5<:;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[<4>3geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhSu<30?0:?kiuenoe"kbmlj-`hnkhl&is"jw/qlwvZadWq87=3<6;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[}4;:7827ca}mfgm*cjedb%h`fc`d.a{*wb'yd~Ril_y0?7;4>3geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhSu<34?0:?kiuenoe"kbmlj-`hnkhl&is"jw/qlwvZadWq8793<6;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[}4;>7827ca}mfgm*cjedb%h`fc`d.a{*wb'yd~Ril_y0?3;4>3geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhSu<38?0:?kiuenoe"kbmlj-`hnkhl&is"jw/qlwvZadWq8753<7;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[}4X8;20bb|bgdl-bidkc&igg`ak/bz-va~(xg~ySjmPx3]26==ig{glic ilcnh+fjlefn$ou }dy-sjqtXojUs>R<=8:llvhabf'lgnae cminka)dp'xot"~ats]dgZ~5W:837ca}mfgm*cjedb%h`fc`d.a{*wb'yd~Ril_y0\07>55aosodak(adkf`#nbdmnf,g}(ulq%{by|Pgb]{858502dd~`ijn/dofim(keafci!lx/pg|*vi|{UloRv31?0;?kiuenoe"kbmlj-`hnkhl&is"jw/qlwvZadWq692?64nnpnc`h)nehgg"mcklmg+f~)zmr$|cz}_fa\|959:11eccheo,ehgjl'jf`abj cy,q`})wf}xTknQw<5<1<>hhzdmnb#hcbmi,gimjgm%ht#|kx.rmpwY`kVr793<7;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[}:16;20bb|bgdl-bidkc&igg`ak/bz-va~(xg~ySjmPx=5=6==ig{glic ilcnh+fjlefn$ou }dy-sjqtXojUs050=8:llvhabf'lgnae cminka)dp'xot"~ats]dgZ~;178<7ca}mfgm*cjedb%h`fc`d.a{*wb'yd~Ril_y]362=ig{glic ilcnh+fjlefn$ou }dy-sjqtXojUsS<<8;omqibci&ofi`f!lljol`*e&{ns#}`{r^e`[}Y5:>1eccheo,ehgjl'jf`abj cy,q`})wf}xTknQw_204?kiuenoe"kbmlj-`hnkhl&is"jw/qlwvZadWqU?>:5aosodak(adkf`#nbdmnf,g}(ulq%{by|Pgb]{[0403geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhSuQ9269mkwk`mg$m`obd/bnhijb(kq$yhu!nup\cfYW>8<7ca}mfgm*cjedb%h`fc`d.a{*wb'yd~Ril_y];62=ig{glic ilcnh+fjlefn$ou }dy-sjqtXojUsS4o5aosodak(adkf`#nbdmnf,g}(ulq%{by|Pgb]{kw67888i7ca}mfgm*cjedb%h`fc`d.a{*wb'yd~Ril_ymq4565:k1eccheo,ehgjl'jf`abj cy,q`})wf}xTknQwos23464e3geyajka.gnahn)ddbgdh"mw.sf{+uhszVmhSua}01276g=ig{glic ilcnh+fjlefn$ou }dy-sjqtXojUsc>?040a?kiuenoe"kbmlj-`hnkhl&is"jw/qlwvZadWqey<=>92c9mkwk`mg$m`obd/bnhijb(kq$yhu!nup\cfYg{:;<:PRdqvhq7402dd~`ijn/dofim(keafci!lx/uq|*Kg{U{by|Pgb]{kw6788UYi~{ct01;?kiuenoe"kbmlj-`hnkhl&is"z|w/LzlvZvi|{UloRv`r1236ZTb{|f=>64nnpnc`h)nehgg"mcklmg+f~){r$Aua}_qlwvZadWqey<=><_Sgpqir6;11eccheo,ehgjl'jf`abj cy,tv})JpfxT|cz}_fa\|jt789>T^h}zlu30<>hhzdmnb#hcbmi,gimjgm%ht#y}x.O{kwYwf}xTknQwos2340YUmzgx<=7;omqibci&ofi`f!lljol`*e&~xs#@v`r^rmpwY`kVrd~=>?6^Pfwpjs9:20bb|bgdl-bidkc&igg`ak/bz-sw~(EqeyS}`{r^e`[}iu89:XZly~`y?=4:llvhabf'lgnae cminka)dp'}yt"^ATS]A[5433geyajka.gnahn)ddbgdh"mw.vp{+UHSZVHT=?:4nnpnc`h)nehgg"mcklmg+f~){r$\CZ]_C]161=ig{glic ilcnh+fjlefn$ou xry-SJQTXJV9986``rlefj+`kjea$oaeboe-`|+qup&ZEX_QM_507?kiuenoe"kbmlj-`hnkhl&is"z|w/QLWVZDX=;>0bb|bgdl-bidkc&igg`ak/bz-sw~(XG^YSOQ9259mkwk`mg$m`obd/bnhijb(kq$|~u!_NUP\FZ15<2dd~`ijn/dofim(keafci!lx/uq|*VI\[UIS5<;;omqibci&ofi`f!lljol`*e&~xs#]@[R^@\=7g?010a?kiuenoe"kbmlj-`hnkhl&is"z|w/QLWVZDXpfx;<=>>2`9mkwk`mg$m`obd/bnhijb(kq$|~u!_NUP\FZ~hz9:;=?l4nnpnc`h)nehgg"mcklmg+f~){r$\CZ]_C]{kw6788;9m6``rlefj+`kjea$oaeboe-`|+qup&ZEX_QM_ymq4565:k1eccheo,ehgjl'jf`abj cy,tv})WF]XTNRv`r123644f3geyajka.gnahn)ddbgdh"mw.vp{+UHSZVHTtb|?0111f>hhzdmnb#hcbmi,gimjgm%ht#y}x.RMPWYEWqey<=><23c8jjtjold%jalck.aoohic'jr%{v POVQ[GYg{:;<9:>l5aosodak(adkf`#nbdmnf,g}(pzq%[BY\PB^zlv567=;h0bb|bgdl-bidkc&igg`ak/bz-sw~(XG^YSOQwos234075i2dd~`ijn/dofim(keafci!lx/uq|*VI\[UISua}012575=ig{glic ilcnh+fjlefn$ou xry-SJQTXJVrd~=>?603\WR6482dd~`ijn/dofim(keafci!lx/uq|*VI\[UISua}012554YT_89;7ca}mfgm*cjedb%h`fc`d.a{*rt'YD_^RLPxnp345069VY\>?l4nnpnc`h)nehgg"mcklmg+f~){r$\CZ]_C]{kw678?89m6``rlefj+`kjea$oaeboe-`|+qup&ZEX_QM_ymq4560:k1eccheo,ehgjl'jf`abj cy,tv})WF]XTNRv`r123344f3geyajka.gnahn)ddbgdh"mw.vp{+UHSZVHTtb|?01:1f>hhzdmnb#hcbmi,gimjgm%ht#y}x.RMPWYEWqey<=>71348jjtjold%jalck.aoohic'jr%{v povq[be;878=7ca}mfgm*cjedb%h`fc`d.a{*rt'yd~Ril<0<12>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`k585>;5aosodak(adkf`#nbdmnf,g}(pzq%{by|Pgb>0:702dd~`ijn/dofim(keafci!lx/uq|*vi|{Ulo181279mkwk`mg$m`obd/bnhijb(kq$|~u!nup\cf:06;<0bb|bgdl-bidkc&igg`ak/bz-sw~(xg~ySjm38?05?kiuenoe"kbmlj-`hnkhl&is"z|w/qlwvZad404996``rlefj+`kjea$oaeboe-`|+qup&zexQhc^211>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kV;996``rlefj+`kjea$oaeboe-`|+qup&zexQhc^011>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kV9996``rlefj+`kjea$oaeboe-`|+qup&zexQhc^611>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kV?996``rlefj+`kjea$oaeboe-`|+qup&zexQhc^411>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kV=996``rlefj+`kjea$oaeboe-`|+qup&zexQhc^:11>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kV3956``rlefj+`kjea$oaeboe-`|+qup&zexQhc^z1858512dd~`ijn/dofim(keafci!lx/uq|*vi|{UloRv=<0<1=>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kVr90?0=9:llvhabf'lgnae cminka)dp'}yt"~ats]dgZ~54:4956``rlefj+`kjea$oaeboe-`|+qup&zexQhc^z1818512dd~`ijn/dofim(keafci!lx/uq|*vi|{UloRv=<4<1=>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kVr90;0=9:llvhabf'lgnae cminka)dp'}yt"~ats]dgZ~54>4956``rlefj+`kjea$oaeboe-`|+qup&zexQhc^z18=8512dd~`ijn/dofim(keafci!lx/uq|*vi|{UloRv=<8<1<>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kVr9S=<7;omqibci&ofi`f!lljol`*e&~xs#}`{r^e`[}4X9;20bb|bgdl-bidkc&igg`ak/bz-sw~(xg~ySjmPx3]16==ig{glic ilcnh+fjlefn$ou xry-sjqtXojUs>R==8:llvhabf'lgnae cminka)dp'}yt"~ats]dgZ~5W=837ca}mfgm*cjedb%h`fc`d.a{*rt'yd~Ril_y0\17>55aosodak(adkf`#nbdmnf,g}(pzq%{by|Pgb]{848502dd~`ijn/dofim(keafci!lx/uq|*vi|{UloRv32?0;?kiuenoe"kbmlj-`hnkhl&is"z|w/qlwvZadWq682?64nnpnc`h)nehgg"mcklmg+f~){r$|cz}_fa\|929:11eccheo,ehgjl'jf`abj cy,tv})wf}xTknQw<4<1<>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kVr7:3<7;omqibci&ofi`f!lljol`*e&~xs#}`{r^e`[}:06;20bb|bgdl-bidkc&igg`ak/bz-sw~(xg~ySjmPx=:=6==ig{glic ilcnh+fjlefn$ou xry-sjqtXojUs040=7:llvhabf'lgnae cminka)dp'}yt"~ats]dgZ~X8;=0bb|bgdl-bidkc&igg`ak/bz-sw~(xg~ySjmPx^313>hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kVrT>?94nnpnc`h)nehgg"mcklmg+f~){r$|cz}_fa\|Z55?2dd~`ijn/dofim(keafci!lx/uq|*vi|{UloRvP4358jjtjold%jalck.aoohic'jr%{v povq[beXpV?9;6``rlefj+`kjea$oaeboe-`|+qup&zexQhc^z\271hhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kVrd~=>?03`8jjtjold%jalck.aoohic'jr%{v povq[beXpfx;<=?=b:llvhabf'lgnae cminka)dp'}yt"~ats]dgZ~hz9:;>?l4nnpnc`h)nehgg"mcklmg+f~){r$|cz}_fa\|jt78999n6``rlefj+`kjea$oaeboe-`|+qup&zexQhc^zlv567<;h0bb|bgdl-bidkc&igg`ak/bz-sw~(xg~ySjmPxnp34535j2dd~`ijn/dofim(keafci!lx/uq|*vi|{UloRv`r12327dhhzdmnb#hcbmi,gimjgm%ht#y}x.rmpwY`kVrd~=>?80d8jjtjold%jalck.pg[agsiVidyczPi^22b>hhzdmnb#hcbmi,vaYci}kTob{at^k\54`:j6``rlefj+`kjea$~iQkauc\gjsi|VcT9f:llvhabf'lgnae re]geqgXkfexRgP70d8jjtjold%jalck.pg[agsiVidyczPi^:2b>hhzdmnb#hcbmi,vaYci}kTob{at^k\=76<5<1b>hhzdmnb#hcbmi,pmtjgm%jiaahib-`e`7(~8U;Sl`k012357`_2]bja6789;9j6``rlefj+`kjea$xe|boe-baii`aj%hmh? v0]7[dhc89:;=?j4nnpnc`h)nehgg"zgrlmg+dckgnch#noj2.abvwim}6;2?j4nnpnc`h)nehgg"zgrlmg+dckgnch#noj2.abvwim}6:2?j4nnpnc`h)nehgg"zgrlmg+dckgnch#noj2.abvwim}692?j4nnpnc`h)nehgg"zgrlmg+dckgnch#noj2.abvwim}682>k4nnpnc`h)nehgg"zgrlmg+dckgnch#noj2.grgdub&kcl"`b[1_-bvr)eocyy=m;omqibci&ofi`f!{hsol`*gbdfmbo"mne3-fufgtm'hbk#ccpZ3^*hoc&dir?o5aosodak(adkf`#yf}mnf,e`jho`i$olk=/ds`evc)j`m%aa~T2\,nma(jkp9i7ca}mfgm*cjedb%dc`d.cfhjank&iji?!jqbcpa+dno'gg|V=R.lkg*he~;k1eccheo,ehgjl'}byabj adnlcle(kho9#hlarg-fla)eezP8P bie,ng|403geyajka.gnahn)s`{gdh"ojlnejg*efm;%}=1>1269mkwk`mg$m`obd/ujqijb(ilfdkdm c`g1+s7;978<7ca}mfgm*cjedb%dc`d.cfhjank&iji?!y1=0=62=ig{glic ilcnh+qnuefn$mhb`gha,gdc5';7?3<8;omqibci&ofi`f!{hsol`*gbdfmbo"mne3-u5929:o1eccheo,ehgjl'}byabj adnlcle(kho9#{?P0^cm`567888m7ca}mfgm*cjedb%dc`d.cfhjank&iji?!y1^3\ekb789::>k5aosodak(adkf`#yf}mnf,e`jho`i$olk=/w3\6Zgil9:;<<>2g9mkwk`mg$m`obd/ujqijb(ilfdkdm c`g1+s7X?000g?kiuenoe"kbmlj-wlwkhl&km`bifc.abb4)di{xrbhz30?0g?kiuenoe"kbmlj-wlwkhl&km`bifc.abb4)di{xrbhz31?0g?kiuenoe"kbmlj-wlwkhl&km`bifc.abb4)di{xrbhz32?0g?kiuenoe"kbmlj-wlwkhl&km`bifc.abb4)di{xrbhz33?1f?kiuenoe"kbmlj-wlwkhl&km`bifc.abb4)byjkxi#lfg/oot^6Z&oy"`hfrrv0f>hhzdmnb#hcbmi,pmtjgm%jjaahib-`ec7(mxijh mif,nhu]6U'gbh#cly2`8jjtjold%jalck.vkvhic'hlgcjgl/bce5*cvkhyn"ogh.lns_7[)e`n%anwl4nnpnc`h)nehgg"zgrlmg+d`kgnch#noi1.grgdub&kcl"`b[5_-ilb)ejs9;6``rlefj+`kjea$xe|boe-bbii`aj%hmk? v0>3:71<2<13>hhzdmnb#hcbmi,pmtjgm%jjaahib-`ec7(~86?2?h4nnpnc`h)nehgg"zgrlmg+d`kgnch#noi1.t2[5Yffm:;<=?=f:llvhabf'lgnae tipnka)fneelen!lag3,r4Y6Whdo<=>?13d8jjtjold%jalck.vkvhic'hlgcjgl/bce5*p6W;Ujbi>?0131b>hhzdmnb#hcbmi,pmtjgm%jjaahib-`ec7(~8U8Sl`k012357`3<8;omqibci&ofi`f!{hsol`*gadfmbo"mnf3-u5959:>1eccheo,ehgjl'}byabj agnlcle(khl9#{?34?0e?kiuenoe"kbmlj-wlwkhl&km`bifc.abb7)q9V:Tmcj?01226c=ig{glic ilcnh+qnuefn$mkb`gha,gd`5';T=Road123444a3geyajka.gnahn)s`{gdh"oilnejg*efn;%}=R55aosodak(adkf`#yf}mnf,aii`aj%NA]ZV_OMMV@A5j2dd~`ijn/dofim(|axfci!jlnejg*CJX]STBB@]EF]j571/bcqv|hb|5:5>l5aosodak(adkf`#yf}mnf,aii`aj%h="mnrs{maq:66;k0bb|bgdl-bidkc&~c~`ak/dnlcle(k8%hm|vndv?6;4f3geyajka.gnahn)s`{gdh"kcofk`+f7(khxyuck{<2<0f>hhzdmnb#hcbmi,pmtjgm%n`bifc.a2+`wdizo%ndi!mmrX4X(a{}$fjd||t2:8jjtjold%jalck.vkvhic'lfdkdm c0-fufgtm'hbk#ccpZ3^*hoc&dir?55aosodak(adkf`#yf}mnf,aii`aj%h="k~c`qf*go`&df{W?S!mhf-if402dd~`ijn/dofim(|axfci!jlnejg*e6'l{hm~k!bhe-iiv\;T$fei bcx1;?kiuenoe"kbmlj-wlwkhl&ogcjgl/b3,atef{l$iej blqY7Y+knl'ghu?:4nnpnc`h)nehgg"zgrlmg+`jho`i$o0bb|bgdl-bidkc&~c~`ak/dnlcle(k8%}=1:12b9mkwk`mg$m`obd/ujqijb(meelen!l1.t2[5Yffm:;<=?=c:llvhabf'lgnae tipnka)bdfmbo"m>/w3\5Zgil9:;<<n5aosodak(adkf`#yf}mnf,aii`aj%h="x>_5]bja6789;9m6``rlefj+`kjea$xe|boe-fhjank&i9#no}rxlfp969:h1eccheo,ehgjl'}byabj emmdmf)d:&ij~waeu>2:7g064nnpnc`h)nehgg"zgrlmg+`jho`i$o?!jqbcpa+dno'gg|V?R.lkg*he~;11eccheo,ehgjl'}byabj emmdmf)d:&ozol}j.ckd*hjwS;W%adj!mb{0<>hhzdmnb#hcbmi,pmtjgm%n`bifc.a1+`wdizo%ndi!mmrX7X(jam$fot=7;omqibci&ofi`f!{hsol`*ckgnch#n< epabw`(ean$f`}U;]/oj`+kdq;>0bb|bgdl-bidkc&~c~`ak/dnlcle(k;%}=1>1259mkwk`mg$m`obd/ujqijb(meelen!l2.t28485<2dd~`ijn/dofim(|axfci!jlnejg*e5';7>3<;;omqibci&ofi`f!{hsol`*ckgnch#n< v0>0:725>n5aosodak(adkf`#yf}mnf,aii`aj%h>"x>_1]bja6789;9o6``rlefj+`kjea$xe|boe-fhjank&i9#{?P1^cm`567888h7ca}mfgm*cjedb%dc`d.gokbod'j8$z;5aosodak(adkf`#yf}mnf,bii`aj%YM@QIUMN\m7b3:7b2:7b1:7b0:6c1eccheo,ehgjl'}byabj fmmdmf)dgdz:#{?31?04?kiuenoe"kbmlj-wlwkhl&lgcjgl/bmnt4)q9585>:5aosodak(adkf`#yf}mnf,bii`aj%hc`~>/w3?7;403geyajka.gnahn)s`{gdh"hcofk`+fijx8%}=1:12g9mkwk`mg$m`obd/ujqijb(neelen!lolr2+s7X8Vkeh=>?000e?kiuenoe"kbmlj-wlwkhl&lgcjgl/bmnt4)q9V;Tmcj?01226c=ig{glic ilcnh+qnuefn$jaahib-`khv6';T>Road123444a3geyajka.gnahn)s`{gdh"hcofk`+fijx8%}=R=Paof34566:o1eccheo,ehgjl'}byabj fmmdmf)dgdz:#{?P4^cm`567888o7ca}mfgm*cjedb%dc`d.dokbod'jef|?!laspzj`r;878o7ca}mfgm*cjedb%dc`d.dokbod'jef|?!laspzj`r;978o7ca}mfgm*cjedb%dc`d.dokbod'jef|?!laspzj`r;:78o7ca}mfgm*cjedb%dc`d.dokbod'jef|?!laspzj`r;;79n7ca}mfgm*cjedb%dc`d.dokbod'jef|?!jqbcpa+dno'gg|V>R.gqw*h`nzz~8n6``rlefj+`kjea$xe|boe-ehjank&ida}< epabw`(ean$f`}U>]/oj`+kdq:h0bb|bgdl-bidkc&~c~`ak/gnlcle(kfg{>"k~c`qf*go`&df{W?S!mhf-if4j2dd~`ijn/dofim(|axfci!ilnejg*ehey8$i|mnsd,amb(jdyQ8Q#cfd/o`}6dhhzdmnb#hcbmi,pmtjgm%m`bifc.aliu4(~86;2?94nnpnc`h)nehgg"zgrlmg+cjho`i$obc2.t28485?2dd~`ijn/dofim(|axfci!ilnejg*ehey8$z<2=>358jjtjold%jalck.vkvhic'ofdkdm cnos6*p64:49;6``rlefj+`kjea$xe|boe-ehjank&ida}< v0>7:7`_`lg45679;l0bb|bgdl-bidkc&~c~`ak/gnlcle(kfg{>"x>_3]bja6789;9j6``rlefj+`kjea$xe|boe-ehjank&ida}< v0]0[dhc89:;=?h4nnpnc`h)nehgg"zgrlmg+cjho`i$obc2.t2[1Yffm:;<=?=6:llvhabf'lgnae tipnka)adfmbo"m`mq]eqij6:?1eccheo,ehgjl'}byabj fmmdmf)dgdzTjxbc2328jjtjold%jalck.vntZvi|{UySigif=2=65=ig{glic ilcnh+qkwWyd~RyPdhde858582dd~`ijn/dofim(yxnabj R@O\SWYBF8;m7ca}mfgm*cjedb%|~Rjnt`]`kphsW`U;=k5aosodak(adkf`#z|Pd`vb[firf}UbS;m7ca}mfgm*cjedb%|~Rjnt`]`kphsW`U3=k5aosodak(adkf`#z|Pd`vb[firf}UbS4?8;omqibci&`di`f!}d^pppZ`e9h1eccheo,jjgjl'{nT~~zPiov\44>R.scn*w)q<'xja"]KP/QJJBJBWYXBA#]KP0a8jjtjold%ahcmlj-wiuYuidUyhRka1e9mkwk`mg$fi`lck.vntZtfeVxoSh`>8:muaw`kg~k0|ah_dosp|733yxdkRkbpu{\pmtb{a";%<:4psmd[`kw|pUdk|h)3*51=wzfmTi`~{y^vkv`uo ;#:86~}of]fiur~W}byi~f'3(37?uthoVof|ywPtipfwm.3!8>0|ah_dosp|Ys`{oxd%;&159svjaXmdzuRzgrdqk,3/6<2zycjQjmqvz[qnumzb#;$?;;qplcZcjx}sTxe|jsi*;-42vugnUna}zv_ujqavn;97;?7}|`g^gntqX|axne2=>068twi`Wlg{xtQ{hsgpl9599=1{~biPelrw}Zrozlyc090>4:rqkbYbey~rSyf}erj?1;733yxdkRkbpu{\pmtb{a6=2<:4psmd[`kw|pUdk|h=5=51=wzfmTi`~{y^vkv`uo414::6~}of]fiur~W}byi~f39;2=51=wzfmTi`~{y^vkv`uo404:n6~}of]fiur~W}byi~fParqfvq.7!8h0|ah_dosp|Ys`{oxdRo|sdpw,4/6j2zycjQjmqvz[qnumzbTm~}jru*1-4dvugnUna}zv_ujqavnXizyn~y&;)0`8twi`Wlg{xtQ{hsgplZgt{lx$8'>b:rqkbYbey~rSyf}erj\evubz}"=%#:n6~}of]fiur~W}byi~fParqfvq.?!8h0|ah_dosp|Ys`{oxdRo|sdpw,3:4dvugnUna}zv_ujqavnXizyn~y2=>0`8twi`Wlg{xtQ{hsgplZgt{lx0>0>b:rqkbYbey~rSyf}erj\evubz}6?2;:4bvugnUna}zv_ujqavnXflmjxh&?)0`8twi`Wlg{xtQ{hsgplZhboh~n$<'>b:rqkbYbey~rSyf}erj\j`af|l"9%vugnUna}zv_ujqavnXflmjxh&7)0`8twi`Wlg{xtQ{hsgplZhboh~n$4'>b:rqkbYbey~rSyf}erj\j`af|l6;27:4dvugnUna}zv_ujqavnXflmjxh29>0`8twi`Wlg{xtQ{hsgplZhboh~n0:0>b:rqkbYbey~rSyf}erj\j`af|l6325rne\bpjkW}byi~f'1(30?uthoVl~`aQ{hsgpl-4.9:1{~biPftno[qnumzb#?$?<;qplcZ`rdeUdk|h)6*56=wzfmTjxbc_ujqavn/= ;87}|`g^dvhiYs`{oxd%8&129svjaXn|fgSyf}erj+3,743yxdkRhzlm]wlwct`!2"=>5rne\bpjkW}byi~f'9(30?uthoVl~`aQ{hsgpl9699:1{~biPftno[qnumzb7=3?<;qplcZ`rdeUdk|h=0=56=wzfmTjxbc_ujqavn;;7;87}|`g^dvhiYs`{oxd1:1129svjaXn|fgSyf}erj?1;743yxdkRhzlm]wlwct`5<5=>5rne\bpjkW}byi~f37?30?uthoVl~`aQ{hsgpl9>99<1{~biPftno[qnumzb757>1129svjaXn|fgSyf}erj?=;7f3yxdkRhzlm]wlwct`Vkxh|{(1+2e>vugnUmyabPtipfwmYf{zoyx%?&1`9svjaXn|fgSyf}erj\evubz}"9%3:4ga:rqkbYa}efTxe|jsi]bwvcu|595=l5rne\bpjkW}byi~fParqfvq:368k0|ah_gwohZrozlycSl}|esv?1;7f3yxdkRhzlm]wlwct`Vkxh|{<7<2e>vugnUmyabPtipfwmYf{zoyx1911`9svjaXn|fgSyf}erj\evubz}63268k0|ah_gwohZrozlycSckhaug+4,7f3yxdkRhzlm]wlwct`Vdnklzj(0+2e>vugnUmyabPtipfwmYimnki%<&1`9svjaXn|fgSyf}erj\j`af|l"8%2:4g0>a:rqkbYa}efTxe|jsi]mabgsm5>5=l5rne\bpjkW}byi~fPndebp`:268k0|ah_gwohZrozlycSckhaug?2;7f3yxdkRhzlm]wlwct`Vdnklzj<6<2e>vugnUmyabPtipfwmYimnki1611b9svjaXn|fgSyf}erj\j`af|l626=0>a:rqkbYa}efTxe|jsi]mabgsm535:6|k_bnh55=ulVnjxlQlotlw,5/682xoSio{a^alqkr/9 ;;7jPd`vb[firf}"9%<>4re]geqgXkfex%=&119q`Zbf|hUhcx`{(5+24>tcWmkmRm`uov+1,773{nThlzn_bmvjq.1!8:0~iQkauc\gjsi|!="==5}d^fbpdYdg|d$5'>0:pg[agsiVidycz'9(33?wbXlh~jSnaznu>3:46028vaYci}kTob{at=7=55=ulVnjxlQlotlw838682xoSio{a^alqkr;?7;;7jPd`vb[firf}632<<4re]geqgXkfex1750?33?wbXlh~jSnaznu>::0=ulVoe:6|k_sqw7>tt|>1xndzjrs68wwus9;1~ox=_unh[dvnWocmc?m4ts`u6ZrkcVk{eRhffn]emciXoldn~lz`r^t0[6Y{}U:56{addpehjq23kgei84ws]bgn0<{Uh`f??;vp\`drfWje~by&?)028swYci}kTob{at)3*55=pzVnjxlQlotlw,7/682}ySio{a^alqkr/; ;;7z|Pd`vb[firf}"?%<>4ws]geqgXkfex%;&119tvZbf|hUhcx`{(7+24>quWmkmRm`uov+3,773~xThlzn_bmvjq.?!8:0{Qkauc\gjsi|!3"==5xr^fbpdYdg|d0=0>0:uq[agsiVidycz31?33?rtXlh~jSnaznu>1:46<{UomyoPcnwmp959991|~Rjnt`]`kphs4=4:<6y}_ecweZeh}g~793??;vp\`drfWje~by29>028swYci}kTob{at=5=55=pzVnjxlQlotlw8=86:2}ySio{a^alqkr;13:5==5xr^fbpdYdg|d040:;vp\ak0<{Uyy?>;Âɾ¹Ã¸ÐÄʹ̰²Þ·³»g8Õǹ×Ä·ÝηÄγÅÄCDu770k1KLu<6c;D90?7|[?k1?9?55;306155;3;2mk7tn3;6>4=i:0<186*=9281621290:??:<2282=d`f3Z<26>:9:1827724::0:5lhj;e4`b?6=93;p_;o535391?74:=99?7?6ag;8 7?62:>87{Z=6383>4<62;>=w^8n:262>0<6;;>8>>4>9`d:?!41m3;jo6X=9581p7e:3;0y;l4Z4g90~7b28l1>84=3;'631=>jl0(?7>:260?_4>:38p?9=53519yl0di3:17b8me;29 7642?i37c<:7a;?k47:3;07b8mc;29 7642?i37c<:7a;?k47:3907b8ma;29 7642?i37c<:7a;?k47:3?07b8m8;29 7642?i37c<:7a;?k47:3=07b8m6;29 7642?i37c<:7a;?k47:3307d8ja;29?j0cm3:1(?><:7g;?k47:3:07b8kd;29 7642?o37c<:7g;?k47:3807b8kb;29 7642?o37c<:7g;?k47:3>07b8k9;29 7642?o37c<:7g;?k47:3<07b8k7;29 7642?o37c3:1(?><:7g;?k47:3207b8k5;29 7642?o37c<:215?k47:3:07b==4;29 7642:9=7c<:215?k47:3807b==2;29 7642:9=7c<:215?k47:3>07b==0;29 7642:9=7c<:215?k47:3<07b=>e;29 7642:9=7c<:215?k47:3207b==c;29 7642:9=7c<:215?k47:3k07b==a;29 7642:9=7c<:215?k47:3i07b==8;29 7642:9=7c<:215?k47:3o07b==6;29 7642:9=7c<:215?k47:3;;76a<1b83>!47;398:6`=03825>=n;9:1<7*=028054=i:981<65f2gd94?"58:08=<5a21095>=n:oo1<7*=028054=i:981>65f2gf94?"58:08=<5a21097>=n:oi1<7*=028054=i:981865f2g`94?"58:08=<5a21091>=n:ok1<7*=028054=i:981:65f2g;94?"58:08=<5a21093>=n;921<7*=028054=i:981465f31594?"58:08=<5a2109=>=n;9<1<7*=028054=i:981m65f31794?"58:08=<5a2109f>=n;9>1<7*=028054=i:981o65f31194?"58:08=<5a2109`>=n;981<7*=028054=i:981i65f31394?"58:08=<5a2109b>=n:o21<7*=028054=i:981==54i3d4>5<#:991?47<3`5;c05`?6=93:1?:188yg72<3:1=7>50zJ12g=#:?=1=8:4o070>5<46=9l0o675=980::7k51782b?4228o1h7<<:039556243-;mm7?ie:m1=2<722c=oo4?::k57`<72-8;?78;8:l147<732c=?i4?:%037?0302d9;:k57f<72-8;?78;8:l147<532c=?o4?:%037?0302d94?:%037?0>l2d9l2d9l2d9l2d9l2d932c=ol4?::m571<722e=?>4?::k1=d<722e=nh4?:%037?0d02d932c=9>4?:%037?02l2d932c=il4?::m5``<72-8;?78j8:l147<732e=hi4?:%037?0b02d9;:m5`f<72-8;?78j8:l147<532e=ho4?:%037?0b02d932c95o4?::k5ag<722e=oi4?::m5`6<722e=h<4?::k5gf<722e8>84?:%037?54>2d9>4?:%037?54>2d9<4?:%037?54>2d92d9i4?:%037?54>2d932e8>o4?:%037?54>2d944?:%037?54>2d9:4?:%037?54>2d92d90:9l74e=83.9<>4<379m654=9810e>>?:18'655=;8;0b?>=:198m7`a290/>==53038j7652810e?hj:18'655=;8;0b?>=:398m7`c290/>==53038j7652:10e?hl:18'655=;8;0b?>=:598m7`e290/>==53038j7652<10e?hn:18'655=;8;0b?>=:798m7`>290/>==53038j7652>10e>>7:18'655=;8;0b?>=:998m660290/>==53038j7652010e>>9:18'655=;8;0b?>=:`98m662290/>==53038j7652k10e>>;:18'655=;8;0b?>=:b98m664290/>==53038j7652m10e>>=:18'655=;8;0b?>=:d98m666290/>==53038j7652o10e?h7:18'655=;8;0b?>=:028?l4a?3:1(?><:232?k47:3;:76a=9983>>o5100;66g9a983>!47;36`=0383?>o1i>0;6)h58;0:76g9a783>!47;36`=0381?>o1i<0;6)h58;0876g9a583>!47;36`=0387?>o1i:0;6)h58;0>76g9a383>!47;36`=0385?>o1i80;6)h58;0<76g9a183>!47;36`=038;?>o11o0;6)h58;0276a=a783>!47;38j46`=0383?>i5i<0;6)h58;0:76a=a583>!47;38j46`=0381?>i5i:0;6)h58;0876a=a383>!47;38j46`=0387?>i5i80;6)h58;0>76a=a183>!47;38j46`=0385?>i51o0;6)h58;0<76a=9d83>!47;38j46`=038;?>i51m0;6)h58;0276a=a883>>o1>10;6)h58;0;76g96683>!47;3<<>6`=0382?>o1>?0;6)h58;0976g96483>!47;3<<>6`=0380?>o1>=0;6)h58;0?76g96283>!47;3<<>6`=0386?>o1>;0;6)h58;0=76g96083>!47;3<<>6`=0384?>o1>90;6)h58;0376g95g83>!47;3<<>6`=038:?>o1j=0;66l=8g83>4<729q/>;951468L7>b3A8=n6a>5283>>{e:?21<7k>:0g7>76?sA8=n6*=668001=]=l0:?v?l:0f952<603;26<=51482e?7528h1>94>4;596757>5;n7a>5<o0;66a=7d83>>i6<>0;66g=8c83>>i5>00;66a:a;29?l43l3:17b?if;29?j41k3:17b?:1;29?j47=3:17d<8f;29?j45?3:17b<:3gb?k47:3;07b<:3gb?k47:3907b<:3gb?k47:3?07b<:3gb?k47:3=07b<:3gb?k47:3307b7c<:3d6?k47:3;07b7c<:3d6?k47:3907b7c<:3d6?k47:3?07b7c<:3d6?k47:3=07b7c<:3d6?k47:3307b<:3`0?k47:3;07b<:3`0?k47:3907b<:3`0?k47:3?07b<:3`0?k47:3=07b<:3`0?k47:3307b<:3`f?k47:3;07b<:3`f?k47:3907b<:3`f?k47:3?07b<:3`f?k47:3=07b<:3`f?k47:3307b<:3a:?k47:3;07b3:1(?><:3a:?k47:3907b<:3a:?k47:3?07b<:3a:?k47:3=07b<:3a:?k47:3307b6::18'655=0=1e>=<50:9l<6<72-8;?76;;o036?7<3f296=4+2119<1=i:981>65`8083>!47;32?7c7290/>==5859m654=<21d;k4?:%037?>33g8;>7;4;n5f>5<#:991495a21092>=h?m0;6)=<58:9l3g<72-8;?76;;o036??<3f83m7>5$320>7>>3g8;>7>4;n0;5$320>7>>3g8;>7<4;n0;2?6=,;:86?66;o036?5<3f8397>5$320>7>>3g8;>7:4;n0;0?6=,;:86?66;o036?3<3f83?7>5$320>7>>3g8;>784;n0;6?6=,;:86?66;o036?1<3f83=7>5$320>7>>3g8;>764;n0;4?6=,;:86?66;o036??<3f8o97>5$320>7b33g8;>7>4;n0g7?6=,;:86?j;;o036?7<3f8o>7>5$320>7b33g8;>7<4;n0g5?6=,;:86?j;;o036?5<3f8o<7>5$320>7b33g8;>7:4;n0`b?6=,;:86?j;;o036?3<3f8hi7>5$320>7b33g8;>784;n0``?6=,;:86?j;;o036?1<3f8ho7>5$320>7b33g8;>764;n0`f?6=,;:86?j;;o036??<3f=j6=4+21193<=i:981<65`7983>!47;3=27c==5789m654=:21d;;4?:%037?1>3g8;>7=4;n56>5<#:991;45a21090>=h?=0;6)=<56:9l37<72-8;?796;o036?1<3f=:6=4+21193<=i:981465`7183>!47;3=27c<:3fe?k47:3:07b<:3fe?k47:3807b<:3fe?k47:3>07b<:3fe?k47:3<07b<:3fe?k47:3207b<:01`?k47:3:07b?<:01`?k47:3807b?<9;29 764289h7c<:01`?k47:3>07b?<7;29 764289h7c3:1(?><:01`?k47:3<07b?<5;29 764289h7c3:1(?><:01`?k47:3207b?;5;29 764289h7c<:01`?k47:3k07b?;3;29 764289h7c<:01`?k47:3i07b?;1;29 764289h7c<:01`?k47:3o07b?<:01`?k47:3;;76a>3583>!47;3;8o6`=03825>=h:<21<7*=028112=i:981<65`24494?"58:099:5a21095>=h:65`24694?"58:099:5a21097>=h:<91<7*=028112=i:981865`24094?"58:099:5a21091>=h:<;1<7*=028112=i:981:65`24294?"58:099:5a21093>=h:=l1<7*=028112=i:981465`25g94?"58:099:5a2109=>=n:8h1<7*=02815d=i:981<65f20;94?"58:09=l5a21095>=n:821<7*=02815d=i:981>65f20594?"58:09=l5a21097>=n:8<1<7*=02815d=i:981865f20794?"58:09=l5a21091>=n:8>1<7*=02815d=i:981:65f20194?"58:09=l5a21093>=n:881<7*=02815d=i:981465f20394?"58:09=l5a2109=>=nl;0;6)=<51:9jgc<72-8;?7j>;o036?4<3`in6=4+2119`4=i:981?65fce83>!47;3n:7c==5d09m654==21boo4?:%037?b63g8;>784;hab>5<#:991h<5a21093>=nlk0;6)=<59:9j`<<72-8;?7j>;o036?g<3`n36=4+2119`4=i:981n65fd683>!47;3n:7c==5d09m654=l21bh84?:%037?b63g8;>7k4;hf7>5<#:991h<5a2109b>=nl:0;6)=:038?l4303:1(?><:364?k47:3:07d<;6;29 7642;><7c<:364?k47:3807d<;4;29 7642;><7c<:364?k47:3>07d<;2;29 7642;><7c<:364?k47:3<07d<;0;29 7642;><7c<:364?k47:3207d<<7c<:31`?k47:3:07d<<:31`?k47:3807d<<9;29 7642;9h7c<:31`?k47:3>07d<<7;29 7642;9h7c3:1(?><:31`?k47:3<07d<<5;29 7642;9h7c<:31`?k47:3207d<<3;29 7642;9h7c<:312?k47:3:07d<<0;29 7642;9:7c<:312?k47:3807d<=e;29 7642;9:7c<:312?k47:3>07d<=c;29 7642;9:7c<:312?k47:3<07d<=a;29 7642;9:7c<:312?k47:3207d<=8;29 7642;9:7c3:1(?><:306?k47:3:07d<=4;29 7642;8>7c<:306?k47:3807d<=2;29 7642;8>7c<:306?k47:3>07d<=0;29 7642;8>7c<:306?k47:3<07d<>e;29 7642;8>7c<:306?k47:3207d<>c;29 7642;8>7c<:32e?k47:3:07d<:32e?k47:3807d<:32e?k47:3>07d<:32e?k47:3<07d<:32e?k47:3207d50z&122<6==1C>5k4H34a?j72;3:17pl=9183>4<729q/>;9527f8L7>b3A8=n6a=0183>>{e>;i1<7:50;2x 70028>n7E<7e:J12g=O=j1/=;<51:k6b?6=3`5<26=44}c41b?6==3:15;h030?6=3f8?57>5;|`56`<72=0;6=u+275951c<@;2n7E<9b:J6g>"6>;0:7d;i:188m3d=831b>=:50;9l61?=831vn;5<7s-8=;7?;f:J1<`=O:?h0D8m4$041>4=n=o0;66g94;29?l0e2900e?>;:188k72>2900qo:=e;291?6=8r.9::4>4g9K6=c<@;5;n07=?6=3th?>i4?:483>5}#:?=1=9j4H3:f?M41j2.::?4>;h7e>5<1<75f6983>>o1j3:17b<;9;29?xd3;80;684?:1y'631=9=n0D?6j;I05f>"6>;0:7d;i:188m32=831b:54?::k5f?6=3f8?57>5;|`76c<72<0;6=u+275951b<@;2n7E<9b:&227<63`?m6=44i7694?=n>10;66g9b;29?j4313:17pl;3183>0<729q/>;9515f8L7>b3A8=n6*>6382?l3a2900e;:50;9j2=<722c=n7>5;n07=?6=3th??94?:483>5}#:?=1=9j4H3:f?M41j2.::?4>;h7e>5<1<75f6983>>o1j3:17b<;9;29?xd3;;0;684?:1y'631=9=n0D?6j;I05f>"6>;0:7d;i:188m32=831b:54?::k5f?6=3f8?57>5;|`776<72<0;6=u+275951b<@;2n7E<9b:&227<63`?m6=44i7694?=n>10;66g9b;29?j4313:17pl;3483>0<729q/>;9515f8L7>b3A8=n6*>6382?l3a2900e;:50;9j2=<722c=n7>5;n07=?6=3th??;4?:483>5}#:?=1=9j4H3:f?M41j2.::?4>;h7e>5<1<75f6983>>o1j3:17b<;9;29?xd38>0;694?:1y'631=9k;0D?6j;I05f>o1=3:17d69:188m73a2900c50z&122<6j81C>5k4H34a?l022900e5850;9j60`=831d=kj50;9~f17>29086=4?{%053?4?l2B94h5G27`8m33=831b=lo50;9l5cb=831vn9>n:187>5<7s-8=;7?m1:J1<`=O:?h0e;;50;9j<3<722c99k4?::m2ba<722wi8N5>k1b:84?::k2ed<722e:ji4?::a05e=83>1<7>t$344>4d63A83i6F=6c9j20<722c3:7>5;h06b?6=3f;mh7>5;|`75g<72:0;6=u+27596=b<@;2n7E<9b:k51?6=3`;jm7>5;n3e`?6=3th?5}#:?=1=o?4H3:f?M41j2c=97>5;h:5>5<5<:o7>53;294~"5>>094i5G29g8L70e3`<>6=44i0cb>5<5<5<4290;w)<97;0;`>N50l1C>;l4i7794?=n9hk1<75`1gf94?=zj=;96=4;:183!41?3;i=6F=8d9K63d>o5=o0;66a>fe83>>{e<8o1<7=50;2x 7002;2o7E<7e:J12g=n><0;66g>a`83>>i6nm0;66sm40694?2=83:p(?88:0`2?M4?m2B9:o5f6483>>o?>3:17d<:f;29?j7al3:17pl;1g83>6<729q/>;9529f8L7>b3A8=n6g95;29?l7fi3:17b?id;29?xd39?0;694?:1y'631=9k;0D?6j;I05f>o1=3:17d69:188m73a2900c50z&122<50m1C>5k4H34a?l022900e50z&122<65k4H34a?!71:3;0e8h50;9j21<722c=47>5;h4a>5<26=44}c1e`?6==3:1>o1j3:17d0<729q/>;9515f8L7>b3A8=n6*>6382?l3a2900e;:50;9j2=<722c=n7>5;n07=?6=3th8jk4?:483>5}#:?=1=9j4H3:f?M41j2.::?4>;h7e>5<1<75f6983>>o1j3:17b<;9;29?xd3890;684?:1y'631=9=n0D?6j;I05f>"6>;0:7d;i:188m32=831b:54?::k5f?6=3f8?57>5;|`741<72<0;6=u+275951b<@;2n7E<9b:&227<63`?m6=44i7694?=n>10;66g9b;29?j4313:17pl;0383>0<729q/>;9515f8L7>b3A8=n6*>6382?l3a2900e;:50;9j2=<722c=n7>5;n07=?6=3th?<>4?:483>5}#:?=1=9j4H3:f?M41j2.::?4>;h7e>5<1<75f6983>>o1j3:17b<;9;29?xd38<0;684?:1y'631=9=n0D?6j;I05f>"6>;0:7d;i:188m32=831b:54?::k5f?6=3f8?57>5;|`743<72<0;6=u+275951b<@;2n7E<9b:&227<63`?m6=44i7694?=n>10;66g9b;29?j4313:17pl1<729q/>;951c38L7>b3A8=n6g95;29?l>12900e?;i:188k4`c2900qo=k8;290?6=8r.9::4>b09K6=c<@;8h50;9l5cb=831vn>k6:180>5<7s-8=;7<7d:J1<`=O:?h0e;;50;9j5dg=831d=kj50;9~f6bf290?6=4?{%053?7e92B94h5G27`8m33=831b4;4?::k11c<722e:ji4?::a7`g=8391<7>t$344>7>c3A83i6F=6c9j20<722c:ml4?::m2ba<722wi?im50;694?6|,;<<6;I0;a>N5>k1b:84?::k;2?6=3`8>j7>5;n3e`?6=3th8io4?:283>5}#:?=1>5j4H3:f?M41j2c=97>5;h3be?6=3f;mh7>5;|`0``<72=0;6=u+27595g7<@;2n7E<9b:k51?6=3`2=6=44i37e>5<5<5<54;294~"5>>0:n<5G29g8L70e3`<>6=44i9494?=n:5<3290;w)<97;3a5>N50l1C>;l4i7794?=n0?0;66g=5g83>>i6nm0;66sm3dg94?5=83:p(?88:3:g?M4?m2B9:o5f6483>>o6ih0;66a>fe83>>{e;l>1<7:50;2x 70028h:7E<7e:J12g=n><0;66g76;29?l42n3:17b?id;29?xd4mo0;6>4?:1y'631=:1n0D?6j;I05f>o1=3:17d?na;29?j7al3:17pl1<729q/>;951c38L7>b3A8=n6g95;29?l>12900e?;i:188k4`c2900qo=i0;297?6=8r.9::4=8e9K6=c<@;50z&122<50m1C>5k4H34a?l022900e4e9K6=c<@;5<55;294~"5>>0:8k5G29g8L70e3-;=>7:4i4d94?=n>=0;66g9b;29?l47<3:17b<;9;29?xd4i80;684?:1y'631=9=n0D?6j;I05f>"6>;0:7d;i:188m32=831b:54?::k5f?6=3f8?57>5;|`0=c<72<0;6=u+275951b<@;2n7E<9b:&227<63`?m6=44i7694?=n>10;66g9b;29?j4313:17pl0<729q/>;9515f8L7>b3A8=n6*>6382?l3a2900e;:50;9j2=<722c=n7>5;n07=?6=3th8m94?:483>5}#:?=1=9j4H3:f?M41j2.::?4>;h7e>5<1<75f6983>>o1j3:17b<;9;29?xd4i;0;684?:1y'631=9=n0D?6j;I05f>"6>;0:7d;i:188m32=831b:54?::k5f?6=3f8?57>5;|`0e6<72<0;6=u+275951b<@;2n7E<9b:&227<63`?m6=44i7694?=n>10;66g9b;29?j4313:17pl0<729q/>;9515f8L7>b3A8=n6*>6382?l3a2900e;:50;9j2=<722c=n7>5;n07=?6=3th8m;4?:483>5}#:?=1=9j4H3:f?M41j2.::?4>;h7e>5<1<75f6983>>o1j3:17b<;9;29?xd4?>0;694?:1y'631=9k;0D?6j;I05f>o1=3:17d69:188m73a2900c50z&122<6j81C>5k4H34a?l022900e5850;9j60`=831d=kj50;9~f6>>29086=4?{%053?4?l2B94h5G27`8m33=831b=lo50;9l5cb=831vn>9n:187>5<7s-8=;7?m1:J1<`=O:?h0e;;50;9j<3<722c99k4?::m2ba<722wi?5o50;194?6|,;<<6?6k;I0;a>N5>k1b:84?::k2ed<722e:ji4?::a72e=83>1<7>t$344>4d63A83i6F=6c9j20<722c3:7>5;h06b?6=3f;mh7>5;|`05;n3e`?6=3th8;h4?:583>5}#:?=1=o?4H3:f?M41j2c=97>5;h:5>5<5<53;294~"5>>094i5G29g8L70e3`<>6=44i0cb>5<5<5<4290;w)<97;0;`>N50l1C>;l4i7794?=n9hk1<75`1gf94?=zj:296=4;:183!41?3;i=6F=8d9K63d>o5=o0;66a>fe83>>{e;1o1<7=50;2x 7002;2o7E<7e:J12g=n><0;66g>a`83>>i6nm0;66sm39694?2=83:p(?88:0`2?M4?m2B9:o5f6483>>o?>3:17d<:f;29?j7al3:17pl<8g83>6<729q/>;9529f8L7>b3A8=n6g95;29?l7fi3:17b?id;29?xd40?0;694?:1y'631=9k;0D?6j;I05f>o1=3:17d69:188m73a2900c83:1?7>50z&122<50m1C>5k4H34a?l022900e50z&122<65k4H34a?!71:3;0e8h50;9j21<722c=47>5;h4a>5<26=44}c1`a?6==3:1>o103:17d8m:188k72>2900qo=lf;291?6=8r.9::4>4e9K6=c<@;5<55;294~"5>>0:8i5G29g8L70e3-;=>7?4i4d94?=n>=0;66g98;29?l0e2900c?:6:188yg5c93:197>50z&122<65k4H34a?!71:3;0e8h50;9j21<722c=47>5;h4a>5<26=44}c1g6?6==3:1>o103:17d8m:188k72>2900qo=k3;291?6=8r.9::4>4e9K6=c<@;5<55;294~"5>>0:8i5G29g8L70e3-;=>7?4i4d94?=n>=0;66g98;29?l0e2900c?:6:188yg5c=3:197>50z&122<65k4H34a?!71:3;0e8h50;9j21<722c=47>5;h4a>5<26=44}c1g2?6==3:1>o103:17d8m:188k72>2900qo=n7;290?6=8r.9::4>b09K6=c<@;8h50;9l5cb=831vn>o7:187>5<7s-8=;7?m1:J1<`=O:?h0e;;50;9j<3<722c99k4?::m2ba<722wi?o750;194?6|,;<<6?6k;I0;a>N5>k1b:84?::k2ed<722e:ji4?::a7dg=83>1<7>t$344>4d63A83i6F=6c9j20<722c3:7>5;h06b?6=3f;mh7>5;|`0fd<72:0;6=u+27596=b<@;2n7E<9b:k51?6=3`;jm7>5;n3e`?6=3th8mn4?:583>5}#:?=1=o?4H3:f?M41j2c=97>5;h:5>5<5<53;294~"5>>094i5G29g8L70e3`<>6=44i0cb>5<5<5<4290;w)<97;0;`>N50l1C>;l4i7794?=n9hk1<75`1gf94?=zj:h;6=4;:183!41?3;i=6F=8d9K63d>o5=o0;66a>fe83>>{e;kn1<7=50;2x 7002;2o7E<7e:J12g=n><0;66g>a`83>>i6nm0;66sm3c094?2=83:p(?88:0`2?M4?m2B9:o5f6483>>o?>3:17d<:f;29?j7al3:17pl6<729q/>;9529f8L7>b3A8=n6g95;29?l7fi3:17b?id;29?xd4j=0;694?:1y'631=9k;0D?6j;I05f>o1=3:17d69:188m73a2900c50z&122<50m1C>5k4H34a?l022900eb09K6=c<@;8h50;9l5cb=831vn>m?:180>5<7s-8=;7<7d:J1<`=O:?h0e;;50;9j5dg=831d=kj50;9~f6e629086=4?{%053?4?l2B94h5G27`8m33=831b=lo50;9l5cb=831vn>8k:186>5<7s-8=;7?;d:J1<`=O:?h0(<8=:09j1c<722c=87>5;h4;>5<>o1<3:17d87:188m3d=831d>9750;9~f60a290>6=4?{%053?73l2B94h5G27`8 405281b9k4?::k50?6=3`<36=44i7`94?=h:=31<75rb253>5<2290;w)<97;37`>N50l1C>;l4$041>4=n=o0;66g94;29?l0?2900e;l50;9l61?=831vn>9>:186>5<7s-8=;7?;d:J1<`=O:?h0(<8=:09j1c<722c=87>5;h4;>5<>o1<3:17d87:188m3d=831d>9750;9~f614290>6=4?{%053?73l2B94h5G27`8 405281b9k4?::k50?6=3`<36=44i7`94?=h:=31<75rb257>5<2290;w)<97;37`>N50l1C>;l4$041>4=n=o0;66g94;29?l0?2900e;l50;9l61?=831vn>9::186>5<7s-8=;7?;d:J1<`=O:?h0(<8=:09j1c<722c=87>5;h4;>5<>o1<3:17d87:188m3d=831d>9750;9~f620290?6=4?{%053?7e92B94h5G27`8m33=831b4;4?::k11c<722e:ji4?::a71>=83>1<7>t$344>4d63A83i6F=6c9j20<722c3:7>5;h06b?6=3f;mh7>5;|`01<<72:0;6=u+27596=b<@;2n7E<9b:k51?6=3`;jm7>5;n3e`?6=3th88l4?:583>5}#:?=1=o?4H3:f?M41j2c=97>5;h:5>5<5<m7>53;294~"5>>094i5G29g8L70e3`<>6=44i0cb>5<5<5<4290;w)<97;0;`>N50l1C>;l4i7794?=n9hk1<75`1gf94?=zj:>n6=4;:183!41?3;i=6F=8d9K63d>o5=o0;66a>fe83>>{e;<0;66g>a`83>>i6nm0;66sm34294?2=83:p(?88:0`2?M4?m2B9:o5f6483>>o?>3:17d<:f;29?j7al3:17pl<5e83>6<729q/>;9529f8L7>b3A8=n6g95;29?l7fi3:17b?id;29?xd4=;0;694?:1y'631=9k;0D?6j;I05f>o1=3:17d69:188m73a2900c50z&122<50m1C>5k4H34a?l022900eb09K6=c<@;8h50;9l5cb=831vn>;i:180>5<7s-8=;7<7d:J1<`=O:?h0e;;50;9j5dg=831d=kj50;9~f631290?6=4?{%053?7e92B94h5G27`8m33=831b4;4?::k11c<722e:ji4?::a736=8391<7>t$344>7>c3A83i6F=6c9j20<722c:ml4?::m2ba<722wi?;?50;194?6|,;<<6?6k;I0;a>N5>k1b:84?::k2ed<722e:ji4?::a1f`=83>1<7>t$344>4d63A83i6F=6c9j20<722c3:7>5;h06b?6=3f;mh7>5;|`6`5<72=0;6=u+27595g7<@;2n7E<9b:k51?6=3`2=6=44i37e>5<5<5<3290;w)<97;3a5>N50l1C>;l4i7794?=n0?0;66g=5g83>>i6nm0;66sm5e194?2=83:p(?88:0`2?M4?m2B9:o5f6483>>o?>3:17d<:f;29?j7al3:17pl:e383>1<729q/>;951c38L7>b3A8=n6g95;29?l>12900e?;i:188k4`c2900qo;j3;290?6=8r.9::4>b09K6=c<@;8h50;9l5cb=831vn8k;:187>5<7s-8=;7?m1:J1<`=O:?h0e;;50;9j<3<722c99k4?::m2ba<722wi9h;50;694?6|,;<<6;I0;a>N5>k1b:84?::k;2?6=3`8>j7>5;n3e`?6=3th>i;4?:583>5}#:?=1=o?4H3:f?M41j2c=97>5;h:5>5<5<54;294~"5>>0:8h5G29g8L70e3-;=>7:4i4d94?=n>k0;66g=0583>>i5<00;66sm5gc94?2=83:p(?88:0`2?M4?m2B9:o5f6483>>o?>3:17d<:f;29?j7al3:17pl:fc83>1<729q/>;951c38L7>b3A8=n6g95;29?l>12900e?;i:188k4`c2900qo;ic;290?6=8r.9::4>b09K6=c<@;8h50;9l5cb=831vn8hk:187>5<7s-8=;7?m1:J1<`=O:?h0e;;50;9j<3<722c99k4?::m2ba<722wi9kk50;694?6|,;<<6;I0;a>N5>k1b:84?::k;2?6=3`8>j7>5;n3e`?6=3th=5}#:?=1=o?4H3:f?M41j2c=97>5;h:5>5<5<54;294~"5>>0:n<5G29g8L70e3`<>6=44i9494?=n:>o5=o0;66a>fe83>>{e>8:1<7:50;2x 70028h:7E<7e:J12g=n><0;66g76;29?l42n3:17b?id;29?xd1980;694?:1y'631=9k;0D?6j;I05f>o1=3:17d69:188m73a2900c50z&122<65k4H34a?!71:3;0e8h50;9j2g<722c9<94?::m10<<722wi95>50;694?6|,;<<6;I0;a>N5>k1b:84?::k;2?6=3`8>j7>5;n3e`?6=3th>4<4?:583>5}#:?=1=o?4H3:f?M41j2c=97>5;h:5>5<5<7>54;294~"5>>0:n<5G29g8L70e3`<>6=44i9494?=n:>o5=o0;66a>fe83>>{e=1>1<7:50;2x 70028h:7E<7e:J12g=n><0;66g76;29?l42n3:17b?id;29?xd21:0;694?:1y'631=9k;0D?6j;I05f>o1=3:17d69:188m73a2900c<3:187>50z&122<6j81C>5k4H34a?l022900e5850;9j60`=831d=kj50;9~f0?2290?6=4?{%053?7e92B94h5G27`8m33=831b4;4?::k11c<722e:ji4?::a1<0=83>1<7>t$344>4d63A83i6F=6c9j20<722c3:7>5;h06b?6=3f;mh7>5;|`6=2<72=0;6=u+27595g7<@;2n7E<9b:k51?6=3`2=6=44i37e>5<5<5<3290;w)<97;3a5>N50l1C>;l4i7794?=n0?0;66g=5g83>>i6nm0;66sm5`:94?2=83:p(?88:0`2?M4?m2B9:o5f6483>>o?>3:17d<:f;29?j7al3:17pl:a883>1<729q/>;951c38L7>b3A8=n6g95;29?l>12900e?;i:188k4`c2900qo;na;290?6=8r.9::4>b09K6=c<@;8h50;9l5cb=831vn8l6:187>5<7s-8=;7?m1:J1<`=O:?h0e;;50;9j<3<722c99k4?::m2ba<722wi9oo50;694?6|,;<<6;I0;a>N5>k1b:84?::k;2?6=3`8>j7>5;n3e`?6=3th>no4?:583>5}#:?=1=o?4H3:f?M41j2c=97>5;h:5>5<5<54;294~"5>>0:n<5G29g8L70e3`<>6=44i9494?=n:>o5=o0;66a>fe83>>{eh7E<7e:J12g=#9?81=6g:f;29?l0?2900e;l50;9l61?=831vn9o7:187>5<7s-8=;7?;c:J1<`=O:?h0(<8=:09j1c<722c=47>5;h4a>5<26=44}c6b3?6=<3:1>o1j3:17b<;9;29?xd3i?0;694?:1y'631=9=i0D?6j;I05f>"6>;0:7d;i:188m3>=831b:o4?::m10<<722wi8l;50;694?6|,;<<6<:l;I0;a>N5>k1/=;<51:k6b?6=3`<36=44i7`94?=h:=31<75rb5c7>5<3290;w)<97;37g>N50l1C>;l4$041>4=n=o0;66g98;29?l0e2900c?:6:188yg2f;3:187>50z&122<65k4H34a?!71:3;0e8h50;9j2=<722c=n7>5;n07=?6=3th?m?4?:583>5}#:?=1=9m4H3:f?M41j2.::?4>;h7e>5<>i5<00;66sm4`394?2=83:p(?88:06`?M4?m2B9:o5+17095>o2n3:17d87:188m3d=831d>9750;9~f1g7290?6=4?{%053?73k2B94h5G27`8 405281b9k4?::k55<n:7>54;294~"5>>0:8n5G29g8L70e3-;=>7?4i4d94?=n>10;66g9b;29?j4313:17pl;e483>1<729q/>;9515a8L7>b3A8=n6*>6382?l3a2900e;650;9j2g<722e9844?::a0`2=83>1<7>t$344>42d3A83i6F=6c9'534=92c>j7>5;h4;>5<>o103:17d8m:188k72>2900qo:j2;290?6=8r.9::4>4b9K6=c<@;5;|`7a4<72=0;6=u+275951e<@;2n7E<9b:&227<63`?m6=44i7:94?=n>k0;66a=4883>>{eh7E<7e:J12g=#9?81=6g:f;29?l0?2900e;l50;9l61?=831vn9ji:187>5<7s-8=;7?;c:J1<`=O:?h0(<8=:09j1c<722c=47>5;h4a>5<26=44}c6ga?6=<3:1>o1j3:17b<;9;29?xd3lm0;694?:1y'631=9=i0D?6j;I05f>"6>;0:7d;i:188m3>=831b:o4?::m10<<722wi8ko50;694?6|,;<<6<:l;I0;a>N5>k1C9n5+17095>o2n3:17d87:188m3d=831d>9750;9~f1`>290?6=4?{%053?73k2B94h5G27`8L0e<,8<96<5f5g83>>o103:17d8m:188k72>2900qo:i8;290?6=8r.9::4>4b9K6=c<@;>o1j3:17b<;9;29?xd3n>0;694?:1y'631=9=i0D?6j;I05f>N2k2.::?4>;h7e>5<>i5<00;66sm4g494?2=83:p(?88:06`?M4?m2B9:o5G5b9'534=92c>j7>5;h4;>5<6=4;:183!41?3;?o6F=8d9K63d<@5;h4a>5<26=44}c6e0?6=<3:15;n07=?6=3th?j>4?:583>5}#:?=1=9m4H3:f?M41j2B>o6*>6382?l3a2900e;650;9j2g<722e9844?::a0c4=83>1<7>t$344>42d3A83i6F=6c9K1f=#9?81=6g:f;29?l0?2900e;l50;9l61?=831vn9h>:187>5<7s-8=;7?;c:J1<`=O:?h0D8m4$041>4=n=o0;66g98;29?l0e2900c?:6:188yg2c:3:187>50z&122<65k4H34a?!71:3;0e8h50;9j2=<722c=n7>5;n07=?6=3th?h<4?:583>5}#:?=1=9m4H3:f?M41j2.::?4>;h7e>5<>i5<00;66sm4e294?2=83:p(?88:06`?M4?m2B9:o5+17095>o2n3:17d87:188m3d=831d>9750;9~f1ea290?6=4?{%053?73k2B94h5G27`8 405281b9k4?::k55<hi7>54;294~"5>>0:8n5G29g8L70e3-;=>7?4i4d94?=n>10;66g9b;29?j4313:17pl;ce83>1<729q/>;9515a8L7>b3A8=n6*>6382?l3a2900e;650;9j2g<722e9844?::a0fe=83>1<7>t$344>42d3A83i6F=6c9'534=92c>j7>5;h4;>5<>o103:17d8m:188k72>2900qo:la;290?6=8r.9::4>4b9K6=c<@;5;|`7g<<72=0;6=u+275951e<@;2n7E<9b:&227<63`?m6=44i7:94?=n>k0;66a=4883>>{e=8<1<7:50;2x 70028>h7E<7e:J12g=#9?81=6g:f;29?l0?2900e;l50;9l61?=831vn8?::187>5<7s-8=;7?;c:J1<`=O:?h0(<8=:09j1c<722c=47>5;h4a>5<26=44}c720?6=<3:1>o1j3:17b<;9;29?xd29:0;694?:1y'631=9=i0D?6j;I05f>"6>;0:7d;i:188m3>=831b:o4?::m10<<722wi9<<50;694?6|,;<<6<:l;I0;a>N5>k1/=;<51:k6b?6=3`<36=44i7`94?=h:=31<75rb432>5<3290;w)<97;37g>N50l1C>;l4$041>4=n=o0;66g98;29?l0e2900c?:6:188yg3683:187>50z&122<65k4H34a?!71:3;0e8h50;9j2=<722c=n7>5;n07=?6=3th>5}#:?=1=9m4H3:f?M41j2.::?4>;h7e>5<>i5<00;66sm51g94?2=83:p(?88:06`?M4?m2B9:o5+17095>o2n3:17d87:188m3d=831d>9750;9~f06c290?6=4?{%053?73k2B94h5G27`8 405281b9k4?::k55<?7>54;294~"5>>0:8n5G29g8L70e3-;=>7?4i4d94?=n>10;66g9b;29?j4313:17pl:5383>1<729q/>;9515a8L7>b3A8=n6*>6382?l3a2900e;650;9j2g<722e9844?::a107=83>1<7>t$344>42d3A83i6F=6c9'534=92c>j7>5;h4;>5<>o103:17d8m:188k72>2900qo;;f;290?6=8r.9::4>4b9K6=c<@;5;|`60`<72=0;6=u+275951e<@;2n7E<9b:&227<63`?m6=44i7:94?=n>k0;66a=4883>>{e==n1<7:50;2x 70028>h7E<7e:J12g=#9?81=6g:f;29?l0?2900e;l50;9l61?=831vn8:l:187>5<7s-8=;7?;c:J1<`=O:?h0(<8=:09j1c<722c=47>5;h4a>5<26=44}c77f?6=<3:1>o1j3:17b<;9;29?xd2"6>;0:7d;i:188m3>=831b:o4?::m10<<722wi9;950;694?6|,;<<6<:l;I0;a>N5>k1C9n5+17095>o2n3:17d87:188m3d=831d>9750;9~f001290?6=4?{%053?73k2B94h5G27`8L0e<,8<96<5f5g83>>o103:17d8m:188k72>2900qo;95;290?6=8r.9::4>4b9K6=c<@;>o1j3:17b<;9;29?xd2>=0;694?:1y'631=9=i0D?6j;I05f>N2k2.::?4>;h7e>5<>i5<00;66sm57194?2=83:p(?88:06`?M4?m2B9:o5G5b9'534=92c>j7>5;h4;>5<5;h4a>5<26=44}c755?6=<3:15;n07=?6=3th>:=4?:583>5}#:?=1=9m4H3:f?M41j2B>o6*>6382?l3a2900e;650;9j2g<722e9844?::a10`=83>1<7>t$344>42d3A83i6F=6c9K1f=#9?81=6g:f;29?l0?2900e;l50;9l61?=831vn8;j:187>5<7s-8=;7?;c:J1<`=O:?h0D8m4$041>4=n=o0;66g98;29?l0e2900c?:6:188yg34n3:187>50z&122<65k4H34a?!71:3;0e8h50;9j2=<722c=n7>5;n07=?6=3th>?h4?:583>5}#:?=1=9m4H3:f?M41j2.::?4>;h7e>5<>i5<00;66sm52f94?2=83:p(?88:06`?M4?m2B9:o5+17095>o2n3:17d87:188m3d=831d>9750;9~f05d290?6=4?{%053?73k2B94h5G27`8 405281b9k4?::k55<54;294~"5>>0:8n5G29g8L70e3-;=>7?4i4d94?=n>10;66g9b;29?j4313:17pl:3`83>1<729q/>;9515a8L7>b3A8=n6*>6382?l3a2900e;650;9j2g<722e9844?::a16?=83>1<7>t$344>42d3A83i6F=6c9'534=92c>j7>5;h4;>5<>o103:17d8m:188k72>2900qo;<7;290?6=8r.9::4>4b9K6=c<@;5;|`673<72=0;6=u+275951e<@;2n7E<9b:&227<63`?m6=44i7:94?=n>k0;66a=4883>>{e<0;66g>a`83>>i6nm0;66sm44`94?5=83:p(?88:0cf?M4?m2B9:o5+170973=n9<<1<75f14594?=h9on1<75rb547>5<4290;w)<97;0;`>N50l1C>;l4i7794?=n9hk1<75`1gf94?=zj=?:6=4;:183!41?3;i=6F=8d9K63d>o5=o0;66a>fe83>>{e<5<3290;w)<97;3a5>N50l1C>;l4i7794?=n0?0;66g=5g83>>i6nm0;66sm44;94?5=83:p(?88:0cf?M4?m2B9:o5+170973=n9<<1<75f14594?=h9on1<75rb541>5<4290;w)<97;0;`>N50l1C>;l4i7794?=n9hk1<75`1gf94?=zj=>m6=4;:183!41?3;i=6F=8d9K63d>o5=o0;66a>fe83>>{e<<21<7=50;2x 70028kn7E<7e:J12g=#9?81?;5f14494?=n9<=1<75`1gf94?=zj=<:6=4<:183!41?383h6F=8d9K63d5<3290;w)<97;3a5>N50l1C>;l4i7794?=n0?0;66g=5g83>>i6nm0;66sm44594?5=83:p(?88:0cf?M4?m2B9:o5+170973=n9<<1<75f14594?=h9on1<75rb543>5<4290;w)<97;0;`>N50l1C>;l4i7794?=n9hk1<75`1gf94?=zj=>o6=4;:183!41?3;i=6F=8d9K63d>o5=o0;66a>fe83>>{e<<<1<7=50;2x 70028kn7E<7e:J12g=#9?81?;5f14494?=n9<=1<75`1gf94?=zj=?m6=4<:183!41?383h6F=8d9K63d5<3290;w)<97;3a5>N50l1C>;l4i7794?=n0?0;66g=5g83>>i6nm0;66sm44794?5=83:p(?88:0cf?M4?m2B9:o5+170973=n9<<1<75f14594?=h9on1<75rb57f>5<4290;w)<97;0;`>N50l1C>;l4i7794?=n9hk1<75`1gf94?=zj=>i6=4;:183!41?3;i=6F=8d9K63d>o5=o0;66a>fe83>>{e<<>1<7=50;2x 70028kn7E<7e:J12g=#9?81?;5f14494?=n9<=1<75`1gf94?=zj=?o6=4<:183!41?383h6F=8d9K63d5<3290;w)<97;3a5>N50l1C>;l4i7794?=n0?0;66g=5g83>>i6nm0;66sm44194?5=83:p(?88:0cf?M4?m2B9:o5+170973=n9<<1<75f14594?=h9on1<75rb57`>5<4290;w)<97;0;`>N50l1C>;l4i7794?=n9hk1<75`1gf94?=zj=>26=4;:183!41?3;i=6F=8d9K63d>o5=o0;66a>fe83>>{e<<81<7=50;2x 70028kn7E<7e:J12g=#9?81?;5f14494?=n9<=1<75`1gf94?=zj=296=4<:183!41?383h6F=8d9K63d5<4290;w)<97;3ba>N50l1C>;l4$041>605<5<5<=i7>54;294~"5>>0:n<5G29g8L70e3`<>6=44i9494?=n:84i075>5<5<3<7>53;294~"5>>094i5G29g8L70e3`<>6=44i0cb>5<5<5<4290;w)<97;3ba>N50l1C>;l4$041>605<5<5<=o7>54;294~"5>>0:n<5G29g8L70e3`<>6=44i9494?=n:6=4<:183!41?3;ji6F=8d9K63d<,8<96>84i075>5<5<53;294~"5>>094i5G29g8L70e3`<>6=44i0cb>5<5<5<4290;w)<97;3ba>N50l1C>;l4$041>605<5<5<=m7>54;294~"5>>0:n<5G29g8L70e3`<>6=44i9494?=n:84i075>5<5<53;294~"5>>094i5G29g8L70e3`<>6=44i0cb>5<5<5<4290;w)<97;3ba>N50l1C>;l4$041>605<5<5<=47>54;294~"5>>0:n<5G29g8L70e3`<>6=44i9494?=n:84i075>5<5<53;294~"5>>094i5G29g8L70e3`<>6=44i0cb>5<5<5<4290;w)<97;3ba>N50l1C>;l4$041>605<5<5<=:7>54;294~"5>>0:n<5G29g8L70e3`<>6=44i9494?=n:84i075>5<5<54;294~"5>>0:8n5G29g8L70e3-;=>7?4i4d94?=n>10;66g9b;29?j4313:17pl:7883>1<729q/>;9515a8L7>b3A8=n6*>6382?l3a2900e;650;9j2g<722e9844?::a12>=83>1<7>t$344>42d3A83i6F=6c9'534=92c>j7>5;h4;>5<>o103:17d8m:188k72>2900qo;86;290?6=8r.9::4>4b9K6=c<@;5;|`630<72=0;6=u+275951e<@;2n7E<9b:&227<63`?m6=44i7:94?=n>k0;66a=4883>>{e=>>1<7:50;2x 70028>h7E<7e:J12g=#9?81=6g:f;29?l0?2900e;l50;9l61?=831vn89<:187>5<7s-8=;7?;c:J1<`=O:?h0(<8=:09j1c<722c=47>5;h4a>5<26=44}c746?6=<3:1>o1j3:17b<;9;29?xd2?80;694?:1y'631=9=i0D?6j;I05f>"6>;0:7d;i:188m3>=831b:o4?::m10<<722wi:?o50;694?6|,;<<6<:l;I0;a>N5>k1/=;<51:k6b?6=3`<36=44i7`94?=h:=31<75rb70:>5<3290;w)<97;37g>N50l1C>;l4$041>4=n=o0;66g98;29?l0e2900c?:6:188yg0503:187>50z&122<65k4H34a?!71:3;0e8h50;9j2=<722c=n7>5;n07=?6=3th=>:4?:583>5}#:?=1=9m4H3:f?M41j2.::?4>;h7e>5<>i5<00;66sm63494?2=83:p(?88:06`?M4?m2B9:o5+17095>o2n3:17d87:188m3d=831d>9750;9~f342290?6=4?{%053?73k2B94h5G27`8 405281b9k4?::k55<54;294~"5>>0:8n5G29g8L70e3-;=>7?4i4d94?=n>10;66g9b;29?j4313:17pl92283>1<729q/>;9515a8L7>b3A8=n6*>6382?l3a2900e;650;9j2g<722e9844?::a274=83>1<7>t$344>42d3A83i6F=6c9'534=92c>j7>5;h4;>5<>o103:17d8m:188k72>2900qo;l7;297?6=8r.9::4>ad9K6=c<@;ad9K6=c<@;ad9K6=c<@;ad9K6=c<@;ad9K6=c<@;ad9K6=c<@;ad9K6=c<@;ad9K6=c<@;ad9K6=c<@;ad9K6=c<@;b19K6=c<@;3:17d?:7;29?l7203:17d?:9;29?j7al3:17pl:b283>0<729q/>;951c28L7>b3A8=n6*>63803>o6=?0;66g>5683>>o6=10;66g>5883>>i6nm0;66sm5c094?3=83:p(?88:0`3?M4?m2B9:o5+170972=n9<<1<75f14594?=n9<21<75f14;94?=h9on1<75rb4`2>5<2290;w)<97;3a4>N50l1C>;l4$041>615<5<:7>5;h363?6=3`;>47>5;h36=?6=3f;mh7>5;|`6<`<72<0;6=u+27595g6<@;2n7E<9b:&227<4?2c:9;4?::k212<722c:954?::k21<<722e:ji4?::a1=b=83?1<7>t$344>4d73A83i6F=6c9'534=;>1b=8850;9j501=831b=8650;9j50?=831d=kj50;9~f0>d290>6=4?{%053?7e82B94h5G27`8 4052:=0e<;9:188m4302900e<;7:188m43>2900c50z&122<6j91C>5k4H34a?!71:39<7d?:6;29?l72?3:17d?:8;29?l7213:17b?id;29?xd20h0;684?:1y'631=9k:0D?6j;I05f>"6>;08;6g>5783>>o6=>0;66g>5983>>o6=00;66a>fe83>>{e=821<7=50;2x 70028kn7E<7e:J12g=#9?81?>5f14494?=n9<=1<75`1gf94?=zj=ki6=4<:183!41?3;ji6F=8d9K63d<,8<96>=4i075>5<5<53;294~"5>>0:mh5G29g8L70e3-;=>7=<;h362?6=3`;>;7>5;n3e`?6=3th>5}#:?=1=lk4H3:f?M41j2.::?4<3:k213<722c:9:4?::m2ba<722wi9=o50;194?6|,;<<6N5>k1/=;<5329j500=831b=8950;9l5cb=831vn8>6:180>5<7s-8=;7?ne:J1<`=O:?h0(<8=:218m4312900e<;8:188k4`c2900qo;?8;297?6=8r.9::4>ad9K6=c<@;3:17d?:7;29?j7al3:17pl:0683>6<729q/>;951`g8L7>b3A8=n6*>63807>o6=?0;66g>5683>>i6nm0;66sm51494?5=83:p(?88:0cf?M4?m2B9:o5+170976=n9<<1<75f14594?=h9on1<75rb426>5<4290;w)<97;3ba>N50l1C>;l4$041>655<:7>5;h363?6=3f;mh7>5;|`7=c<72:0;6=u+27595dc<@;2n7E<9b:&227<4;2c:9;4?::k212<722e:ji4?::a0t$344>4gb3A83i6F=6c9'534=;:1b=8850;9j501=831d=kj50;9~f1?c29086=4?{%053?7fm2B94h5G27`8 4052:90e<;9:188m4302900ck3:1?7>50z&122<6il1C>5k4H34a?!71:3987d?:6;29?l72?3:17b?id;29?xd31k0;6>4?:1y'631=9ho0D?6j;I05f>"6>;08?6g>5783>>o6=>0;66a>fe83>>{e<0k1<7=50;2x 70028kn7E<7e:J12g=#9?81?>5f14494?=n9<=1<75`1gf94?=zj=326=4<:183!41?3;ji6F=8d9K63d<,8<96>=4i075>5<5<247>53;294~"5>>0:mh5G29g8L70e3-;=>7=<;h362?6=3`;>;7>5;n3e`?6=3th?5:4?:283>5}#:?=1=lk4H3:f?M41j2.::?4<3:k213<722c:9:4?::m2ba<722wi9N5>k1/=;<5399j500=831b=8950;9j50>=831d=kj50;9~f1gc290?6=4?{%053?7fn2B94h5G27`8 4052:20e<;9:188m4302900e<;7:188k4`c2900qo;>c;291?6=8r.9::4>b19K6=c<@;3:17d?:7;29?l7203:17d?:9;29?j7al3:17pl;ag83>0<729q/>;951c28L7>b3A8=n6*>63801>o6=?0;66g>5683>>o6=10;66g>5883>>i6nm0;66sm50g94?5=83:p(?88:0cf?M4?m2B9:o5+170976=n9<<1<75f14594?=h9on1<75rb5`2>5<4290;w)<97;3ba>N50l1C>;l4$041>655<:7>5;h363?6=3`;>47>5;n3e`?6=3th?n>4?:583>5}#:?=1=lh4H3:f?M41j2.::?4<8:k213<722c:9:4?::k21=<722e:ji4?::a174=83?1<7>t$344>4d73A83i6F=6c9'534=;<1b=8850;9j501=831b=8650;9j50?=831d=kj50;9~f1d2290>6=4?{%053?7e82B94h5G27`8 4052:?0e<;9:188m4302900e<;7:188m43>2900c50z&122<6il1C>5k4H34a?!71:38i7d?:6;29?l72?3:17b?id;29?xd19k0;684?:1y'631=9k:0D?6j;I05f>"6>;08;6g>5783>>o6=>0;66g>5983>>o6=00;66a>fe83>>{e>921<7;50;2x 70028h;7E<7e:J12g=#9?81?:5f14494?=n9<=1<75f14:94?=n9<31<75`1gf94?=zj94i075>5<5<5<55;294~"5>>0:n=5G29g8L70e3-;=>7=8;h362?6=3`;>;7>5;h3657>5;n3e`?6=3th==l4?:483>5}#:?=1=o>4H3:f?M41j2.::?4<7:k213<722c:9:4?::k21=<722c:944?::m2ba<722wi:=950;794?6|,;<<6N5>k1/=;<5369j500=831b=8950;9j50>=831b=8750;9l5cb=831vn8ki:186>5<7s-8=;7?m0:J1<`=O:?h0(<8=:258m4312900e<;8:188m43?2900e<;6:188k4`c2900qo;kc;291?6=8r.9::4>b19K6=c<@;3:17d?:7;29?l7203:17d?:9;29?j7al3:17pl91883>0<729q/>;951c28L7>b3A8=n6*>63803>o6=?0;66g>5683>>o6=10;66g>5883>>i6nm0;66sm61494?3=83:p(?88:0`3?M4?m2B9:o5+170972=n9<<1<75f14594?=n9<21<75f14;94?=h9on1<75rb4gf>5<2290;w)<97;3a4>N50l1C>;l4$041>615<5<:7>5;h363?6=3`;>47>5;h36=?6=3f;mh7>5;|`55=<72<0;6=u+27595g6<@;2n7E<9b:&227<4?2c:9;4?::k212<722c:954?::k21<<722e:ji4?::a253=83?1<7>t$344>4d73A83i6F=6c9'534=;>1b=8850;9j501=831b=8650;9j50?=831d=kj50;9~f0cc290>6=4?{%053?7e82B94h5G27`8 4052:=0e<;9:188m4302900e<;7:188m43>2900c50z&122<6j91C>5k4H34a?!71:39<7d?:6;29?l72?3:17d?:8;29?l7213:17b?id;29?xd2?k0;6>4?:1y'631=9ho0D?6j;I05f>"6>;09n6g>5783>>o6=>0;66a>fe83>>{e>8=1<7;50;2x 70028h;7E<7e:J12g=#9?81?:5f14494?=n9<=1<75f14:94?=n9<31<75`1gf94?=zj?:?6=4::183!41?3;i<6F=8d9K63d<,8<96>94i075>5<5<5<55;294~"5>>0:n=5G29g8L70e3-;=>7=8;h362?6=3`;>;7>5;h3657>5;n3e`?6=3th>h44?:483>5}#:?=1=o>4H3:f?M41j2.::?4<7:k213<722c:9:4?::k21=<722c:944?::m2ba<722wi8=750;094?6|,;<<6N5>k1/=;<5279j500=831d=kj50;9~f16e29096=4?{%053?7fl2B94h5G27`8 4052;<0e<;9:188k4`c2900qo:?d;296?6=8r.9::4>ae9K6=c<@;3:17b?id;29?xd38o0;6?4?:1y'631=9hn0D?6j;I05f>"6>;09:6g>5783>>i6nm0;66sm40394?4=83:p(?88:0cg?M4?m2B9:o5+170963=n9<<1<75`1gf94?=zj=;86=4=:183!41?3;jh6F=8d9K63d<,8<96?84i075>5<:7>5;n3e`?6=3th?=:4?:383>5}#:?=1=lj4H3:f?M41j2.::?4=6:k213<722e:ji4?::a7a?=8381<7>t$344>4gc3A83i6F=6c9'534=:?1b=8850;9l5cb=831vn>jm:181>5<7s-8=;7?nd:J1<`=O:?h0(<8=:348m4312900c7>50z&122<6im1C>5k4H34a?!71:38=7d?:6;29?j7al3:17pl7<729q/>;951`f8L7>b3A8=n6*>63812>o6=?0;66a>fe83>>{e;l;1<7<50;2x 70028ko7E<7e:J12g=#9?81>;5f14494?=h9on1<75rb2g0>5<5290;w)<97;3b`>N50l1C>;l4$041>705<52;294~"5>>0:mi5G29g8L70e3-;=>7<9;h362?6=3f;mh7>5;|`0a2<72;0;6=u+27595db<@;2n7E<9b:&227<5>2c:9;4?::m2ba<722wi?:750;094?6|,;<<6N5>k1/=;<5279j500=831d=kj50;9~f61e29096=4?{%053?7fl2B94h5G27`8 4052;<0e<;9:188k4`c2900qo=8d;296?6=8r.9::4>ae9K6=c<@;3:17b?id;29?xd4?o0;6?4?:1y'631=9hn0D?6j;I05f>"6>;09:6g>5783>>i6nm0;66sm39394?4=83:p(?88:0cg?M4?m2B9:o5+170963=n9<<1<75`1gf94?=zj:286=4=:183!41?3;jh6F=8d9K63d<,8<96?84i075>5<:7>5;n3e`?6=3th84:4?:383>5}#:?=1=lj4H3:f?M41j2.::?4=6:k213<722e:ji4?::a7d?=8381<7>t$344>4gc3A83i6F=6c9'534=:?1b=8850;9l5cb=831vn>om:181>5<7s-8=;7?nd:J1<`=O:?h0(<8=:348m4312900c7>50z&122<6im1C>5k4H34a?!71:38=7d?:6;29?j7al3:17pl7<729q/>;951`f8L7>b3A8=n6*>63812>o6=?0;66a>fe83>>{e;k;1<7<50;2x 70028ko7E<7e:J12g=#9?81>;5f14494?=h9on1<75rb2`0>5<5290;w)<97;3b`>N50l1C>;l4$041>705<52;294~"5>>0:mi5G29g8L70e3-;=>7<9;h362?6=3f;mh7>5;|`0f2<72;0;6=u+27595db<@;2n7E<9b:&227<5>2c:9;4?::m2ba<722wi?9750;094?6|,;<<6N5>k1/=;<5279j500=831d=kj50;9~f62e29096=4?{%053?7fl2B94h5G27`8 4052;<0e<;9:188k4`c2900qo=;d;296?6=8r.9::4>ae9K6=c<@;3:17b?id;29?xd4"6>;09:6g>5783>>i6nm0;66sm34394?4=83:p(?88:0cg?M4?m2B9:o5+170963=n9<<1<75`1gf94?=zj:?86=4=:183!41?3;jh6F=8d9K63d<,8<96?84i075>5<:7>5;n3e`?6=3th89:4?:383>5}#:?=1=lj4H3:f?M41j2.::?4=6:k213<722e:ji4?::a074=8381<7>t$344>4gc3A83i6F=6c9'534=:?1b=8850;9l5cb=831vn>h=:181>5<7s-8=;7?nd:J1<`=O:?h0(<8=:348m4312900c:3:1>7>50z&122<6im1C>5k4H34a?!71:38=7d?:6;29?j7al3:17pl7<729q/>;951`f8L7>b3A8=n6*>63812>o6=?0;66a>fe83>>{e;?81<7<50;2x 70028ko7E<7e:J12g=#9?81>;5f14494?=h9on1<75rb711>5<3290;w)<97;3bb>N50l1C>;l4$041>42f3`;>:7>5;h363?6=3`;>47>5;n3e`?6=3th?n:4?:283>5}#:?=1=lk4H3:f?M41j2.::?4<3:k213<722c:9:4?::m2ba<722wi8oo50;794?6|,;<<6N5>k1/=;<5349j500=831b=8950;9j50>=831b=8750;9l5cb=831vn9l7:187>5<7s-8=;7?nf:J1<`=O:?h0(<8=:268m4312900e<;8:188m43?2900c50z&122<6j91C>5k4H34a?!71:3927d?:6;29?l72?3:17d?:8;29?l7213:17b?id;29?xd3j00;684?:1y'631=9k:0D?6j;I05f>"6>;0896g>5783>>o6=>0;66g>5983>>o6=00;66a>fe83>>{e=4i075>5<5<55;294~"5>>0:n=5G29g8L70e3-;=>7=:;h362?6=3`;>;7>5;h3657>5;n3e`?6=3th>>84?:583>5}#:?=1=lh4H3:f?M41j2.::?4<4:k213<722c:9:4?::k21=<722e:ji4?::a17?=83?1<7>t$344>4d73A83i6F=6c9'534=;01b=8850;9j501=831b=8650;9j50?=831d=kj50;9~f041290>6=4?{%053?7e82B94h5G27`8 4052:?0e<;9:188m4302900e<;7:188m43>2900c50z&122<6j91C>5k4H34a?!71:39>7d?:6;29?l72?3:17d?:8;29?l7213:17b?id;29?xd2n=0;684?:1y'631=9k:0D?6j;I05f>"6>;0:9=5f14494?=n9<=1<75f14:94?=n9<31<75`1gf94?=zj;7>5;h3657>5;n3e`?6=3th?=54?:383>5}#:?=1=l84H3:f?M41j2c:984?::m2ba<722wi?h650;094?6|,;<<6N5>k1b=8;50;9l5cb=831vn>67:181>5<7s-8=;7?n6:J1<`=O:?h0e<;::188k4`c2900qo=m8;296?6=8r.9::4>a79K6=c<@;7<729q/>;951`48L7>b3A8=n6g>5483>>i6nm0;66sm62294?e5290;w)<97;07e>N50l1C>;l4Z4g9g~472;;1>:4=8;0`>7b=:l09j7<6:3c975<493w/=;o53:&22g<43-;=o7=4$04g>6=#9?o1?6*>6g80?!708390(<9>:29'524=;2.:;>4<;%340?5<,8=>6>5+16497>"6?>087)?88;18 41>2:1/=:o53:&23g<43-;6=#9>o1?6*>7g80?!7?8390(<6>:29'5=4=;2.:4>4<;%3;0?5<,82>6>5+19497>"60>087)?78;18 4>>2:1/=5o53:&26=#91o1?6*>8g80?!7>8390(<7>:29'5<4=;2.:5>4<;%3:0?5<,83>6>5+18497>"61>087)?68;18 4?>2:1/=4o53:&2=g<43-;2o7=4$0;g>6=#90o1?6*>9g80?!7f8390(:29'5d4=;2.:m84>fb9'5d5=:2.:m94=;%36e?5<,8?i6>5+14a97>"6=m087)?:e;18 43a2:1/=l9515`8 4g?28>i7)<;b;3eg>"55+17397>"5?h09;45+26`962?44"5>90:8o5+27196>"6>:087)?94;18 4022:1/=;853:&222<43-;=47=4$04:>6=#:?>1>6g90;29?l062900e;850;9j22<722c:854?::k11f<722c99i4?::k20<<722c9:84?::k123<722e=>7>5;n40>5<h58;0;76g=:098m6b=83.9<>45$320>6`54i2`94?"58:08j6`=0387?>o313:1(?><:2d8j7652<10e9650;&146<4n2d9h4n321>2=h58;0376g;5;29 7642:l0b?>=:898m12=83.9<>45$320>6`o393:1(?><:2d8j7652m10e>o50;&146<4n2d95=h58;0:76g;d;29 7642=l0b?>=:398m1e=83.9<>4;f:l147<432c?n7>5$320>1`o203:1(?><:5d8j7652?10e8950;&146<3n2d9==h58;0276g:4;29 7642=l0b?>=:`98m05=83.9<>4;f:l147>7>5$320>1`o3i3:1(?><:5d8j7652l10el>50;&146<>n2d94=h58;0976g6b;29 76420l0b?>=:298m46f:l147<332c257>5$320><`o>?3:1(?><:8d8j7652>10e4850;&146<>n2d9<=1<7*=028:b>h58;0j76g63;29 76420l0b?>=:c98m<7=83.9<>46f:l1475$320><`o?m3:1(?><:8d8j7652o10e5j50;&146<>n2d90:9j5$320><`5<#:9915k5a210956=h58;0:865f8983>!47;33m7cof?3:1(?><:8d8j76528<07do9:18'655=1o1e>=<51698md3=83.9<>46f:l147<6021bm94?:%037??a3g8;>7?6;:kb7?6=,;:864h4n321>4g<3`k96=4+2119=c=i:981=o54i`394?"58:02j6`=0382g>=n1m0;6)=:0g8?l>0290/>==59g9m654=9o10en?50;&1464n321>4=h58;0976gmc;29 7642j:0b?>=:298mgd=83.9<>4l0:l147<332cim7>5$320>f6oe03:1(?><:b28j7652>10eo950;&1464n321><=h58;0j76gm4;29 7642j:0b?>=:c98mg4=83.9<>4l0:l1475$320>f6ofn3:1(?><:b28j7652o10elk50;&1460:9jea<72-8;?7m?;o036?7632cjo7>5$320>f65<#:991o=5a210956=h58;0:865fa883>!47;3i;7cod03:1(?><:b28j76528<07dm8:18'655=k91e>=<51698mf0=83.9<>4l0:l147<6021bo84?:%037?e73g8;>7?6;:k`0?6=,;:86n>4n321>4g<3`i86=4+2119g5=i:981=o54ib094?"58:0h<6`=0382g>=njl0;6)=:0g8?lg?290/>==5c19m654=9o10eh>50;&1464=h58;0976gkc;29 7642ml0b?>=:298m`3=83.9<>4j4:l147<732cn?7>5$320>`2ob93:1(?><:d68j7652:10e?9<:18'655=:>80b?>=:198m716290/>==52608j7652810e?9?:18'655=:>80b?>=:398m70a290/>==52608j7652:10e?97:18'655=:>=0b?>=:198m711290/>==52658j7652810e?9::18'655=:>=0b?>=:398m713290/>==52658j7652:10ckh50;&1464=h58;0976aia;29 7642oo0b?>=:298kc?=83.9<>4ie:l147<332em47>5$320>ccia>3:1(?><:gg8j7652>10ck;50;&146<=h58;0j76ai2;29 7642oo0b?>=:c98kc6=83.9<>4ie:l1475$320>ccibl3:1(?><:gg8j7652o10chm50;&1460:9lag<72-8;?7hj;o036?7632enm7>5$320>cc5<#:991jh5a210956=h58;0:865`e683>!47;3ln7ci68?0;6)0483>!47;3ln7ci68=0;6)0283>!47;3ln7ci68;0;6)0083>!47;3ln7ci6890;6)=:0f8?j`6290/>==5fd9m654=9l10ch850;&146f:9l577=83.9<>4>219m654=821d==<51:9l54b=83.9<>4>219m654=:21d==<53:9l54d=83.9<>4>219m654=<21d==<55:9l54?=83.9<>4>219m654=>21d=<650;&146<6:91e>=<57:9l541=83.9<>4>219m654=021d=<850;&146<6:91e>=<59:9l543=83.9<>4>219m654=i21d=<:50;&146<6:91e>=<5b:9l544=83.9<>4>219m654=k21d==<5d:9l546=83.9<>4>219m654=m21d==h50;&146<6:91e>=<5f:9l55c=83.9<>4>219m654=9910c<>k:18'655=9;:0b?>=:038?j77k3:1(?><:003?k47:3;976a>0c83>!47;3;9<6`=03827>=h99k1<7*=028265=i:981=954o02:>5<#:991=?>4n321>43<3f;947>5$320>4473g8;>7?9;:m262<72-8;?7?=0:l147<6?21d=?850;&146<6:91e>=<51998k442290/>==51328j76528307b?=4;29 764288;7ci6::0;6)h58;0:n65`13094?"58:0:>=5a21095f=f:9l57c=83.9<>4>2e9m654=821d=?m50;&146<6:m1e>=<51:9l57d=83.9<>4>2e9m654=:21d=?o50;&146<6:m1e>=<53:9l565=83.9<>4>339m654=821d=>?50;&146<6;;1e>=<51:9l566=83.9<>4>339m654=:21d=?h50;&146<6;;1e>=<53:9~w3c=83;=wS8j;<1:a?033492h78;;<1b5?033492j78;;<1b4?03349j878;;<1b6?03349j?78;;<1b1?03349j:78;;<15`?03349=i78;;<15b?03349<<78;;<145?03349<>78;;<147?03349<878;;<141?03349<:78;;<74f?7al2wx=8?50;7xZ3b;1:90:9;525g6950157>54z\11<=:=>h1=894=711>43134?h57?:6:p671=83k3wS;m;_04a>X5>01U9l5Q1gd8Z70d3W8;96P=269>6=`=9<901;8:778916?21<019>n:948916d21<019>j:948917721<019?=:948917321<019?9:94896b02??01>j7:94896bf21<01>jl:94896bb21<01>k?:94896c521<01>k;:94896c121<01>98:778961?21<01>9n:948961d21<01>9j:94896>721<01>6=:94896>321<01>69:94896g02??01>o7:94896gf21<01>ol:94896gb21<01>l?:94896d521<01>l;:94896d121<01>:8:778962?21<01>:n:948962d21<01>:j:948963721<01>;=:948963321<01>;9:94890ea21<018j?:94890b621<018j=:94890b421<018k=:94890c421<018k;:94890c221<018k9:94890`f21<018hm:94890`d21<018hk:94890`b21<01;>k:948936b21<01;>i:948937721<01;?>:94890>721<0186>:94890>521<0186<:94890>321<0187<:94890?321<0187::94890?121<01878:94890g121<018o8:94890g?21<018o6:94890gf21<018l6:94890df21<018lm:94890dd21<018lk:94893572?:01;=?:73893572;?h708<0;06`>;1;90?<63931877>;1;90?>63931875>;1;908m63931864>;1;90>?63931866>;1;90>=6393187e>;1;90j<639318:a>;1;902o639318:f>;1;902m639318:=>;1;9024639318:3>;1;902:639318:1>;1;9028639318:7>;1;902=639318:4>;1;903j639318;a>;1;90h=639318ab>;1;90ih639318ag>;1;90in639318ae>;1;90i5639318a<>;1;90i;639318a2>;1;90i9639318a0>;1;90i>639318a5>;1;90i<639318bb>;1;90ji639318b`>;1;90jo639318bf>;1;90jm639318b=>;1;90h4639318`3>;1;90h:639318`1>;1;90h8639318`7>;1;90h>639318aa>;1;90i?639318b<>;1;90n<639318ga>;1;90n9639318f7>;1;90n>639318f5>;1;909;5526229620<5?9;6?9:;<404?40<2wx>8k50;7xZ73b34<9o74683>3}Y>j1U=994=4ab>72>34?169n751458yv0a29098vP9f:?76`<1<27?>i494:?774<1<27?>k494:?775<1<27??9494:?777<1<27??>494:?770<1<27??;494:?0b`<1<278ji494:?744<1<278jk494:?745<1<27?<9494:?747<1<27?<>494:?740<1<27?<;494:?0ga<1<278oh494:?0gc<1<278h=494:?0`4<1<278h?494:?0`6<1<278h9494:?0`0<1<278h;494:?565<6nm16:>>5261893572;=:708<0;044>;1;909:k5rs3:a>5<4sW83n639218212=:=o>1=884}r07`?6=9j4=70`>0`<5?8o68h4=2;f>0`<5:3o68h4=2c2>0`<5:3m68h4=2c3>0`<5:k?68h4=2c1>0`<5:k868h4=2c6>0`<5:k=68h4=24g>0`<5:0`<5:=;68h4=252>0`<5:=968h4=250>0`<5:=?68h4=256>0`<5:==68h4=4ab>0`<5=n968h4=5f2>0`<5=n;68h4=5ae>0`<5=in68h4=5ag>0`<5=ih68h4=5aa>0`<5=ij68h4=5a:>0`<5<;=68h4=436>0`<5<;?68h4=430>0`<5<;968h4=432>0`<5<;;68h4=42e>0`<5<:n68h4=42g>0`<50`<50`<5<>m68h4=46f>0`<5<>o68h4=46`>0`<5<>i68h4=46b>0`<5<<<68h4=445>0`<5<<>68h4=447>0`<5<<868h4=441>0`<5<<:68h4=443>0`<50`<5<=j68h4=45:>0`<5<=368h4=454>0`<5<==68h4=456>0`<5<=?68h4=450>0`<5<=968h4=452>0`<5?9;6;94}r04b?6==:h4=70e>0`<5?8n68h4=50f>0`<5=8o68h4=512>0`<5=8m68h4=513>0`<5=9?68h4=511>0`<5=9868h4=516>0`<5=9=68h4=2df>0`<5:lo68h4=522>0`<5:lm68h4=523>0`<5=:?68h4=521>0`<5=:868h4=526>0`<5=:=68h4=2ag>0`<5:in68h4=2ae>0`<5:n;68h4=2f2>0`<5:n968h4=2f0>0`<5:n?68h4=2f6>0`<5:n=68h4=4d6>0`<5=k268h4=5c;>0`<5=k<68h4=5c5>0`<5=k>68h4=5c7>0`<5=k868h4=5c1>0`<5=k:68h4=5c3>0`<5=o=68h4=5g6>0`<5=o?68h4=5g0>0`<5=o968h4=5g2>0`<5=o;68h4=5fe>0`<5=nn68h4=5fg>0`<5=lj68h4=5d:>0`<5=l368h4=5d4>0`<5=l=68h4=5d6>0`<5=l?68h4=5d0>0`<5=l968h4=5d2>0`<5<9m68h4=41f>0`<5<9o68h4=41`>0`<5<9i68h4=41b>0`<5<9268h4=41;>0`<5<9<68h4=415>0`<5?8j68h4=70:>0`<5?8368h4=704>0`<5?8=68h4=706>0`<5?8?68h4=700>0`<5?8968h4=702>0`<5?9;6;84}r0ff?6=?rT9io52504961?<5=?i6<;9;<7b5?72?27>4h4>589>1c6=9<2018jk:07;?xu5m00;65uQ2d;890722;>270::1;:5?822i3;>:63:a08213=:=1o1=894=4d3>43134?oh7?:6:p6`>=832pR?k7;<720?43127?9=476:?71<<6=?169l>5145890>c28?270;jf;36<>;2lj0:955rs3g4>5ik4>579>1ae=9<<0q~n3;>;63:8b821<=:=lo1=864=4fa>43?3ty9i84?:9y]6`3<5<;:6?:6;<67`?>134>>:7?:6:?6=c<6=?1695m5145890cb28?=70;kb;362>{t:l>1<76t^3g7?836838?563;4b8;2>;3=<0:9;5258g9501<5<2i6<;6;<7f`?72027>hl4>599~w7c42903wS002=9<<0187j:075?83?j3;>;63:ee8213=:=mk1=884}r0f6?6=0rT9i?5251g961?<5=>j6584=570>43134?2h7?:7:?628?37p}=e083>=}Y:l;018>k:36:?823132=70::2;362>;21m0:9;5259c9501<52wx484?:9y]6c0j9:36:?834n3;28=0:9;523b09500<5?9;6>k4}r:0>5<>sW8m86P73:?0`0<5<0168;k5879>021=9<<018>::075?837<3;>;63::1?i5rs9094??|V;l87S6=;<1g0?43127?:i476:?733<6=?169=851448906228?<70=m5;362>;1;908o6s|8083><}Y:o80R5?4=2f0>72>34>=o769;<641?72>27><:4>579>150=9<=01>l<:075?804839i7p}70;29=~X5n81U4=523e0961?<5=43134?;47?:6:?642<6=>16?o?5144893572=30q~9i:18:[4a82T579>266=<11v:k50;;xZ7ca3W=n70=k0;07=>;3>003:63;738213=:=9k1=884=42:>430349jh7?:6:?575<3?2wx;i4?:8y]6`cn01>mi:36:?821032=70:81;362>;28k0:9;5251c9501<5:ki6<;9;<404?213ty59z\1aa=Y?j16?nk525;8910021<0199?:075?837k3;>:63:0c8212=:;h31=884=713>13X0j278oi4=489>030=0?168;h51448906d28?<70=m8;361>;1;90?86s|2c694?3|V;h?70=n6;07=>;20l0:95525g2950?<5:396<;9;|q1f7<72o<4=2c6>72>34?3i7?:6:?6b5<6=>16?5951448yv4e93:19vP=b09>7d2=:=30186k:07;?83bn3;>563<848213=z{;h;6=4:{_0a4>;4i:09845259f9500<52wx>lh50;7xZ7ga349j>7<;9:?6628?=7p}=ad83>0}Y:ho01>o>:36:?83?k3;>:63:ed8212=:;>l1=884}r0b`?6==rT9mi523`2961?<5<2i6<;7;<7f`?721278;i4>579~w7gd290>wS{t:hh1<7;t^3ca?85>m38?563:8`821==:=li1=874=25:>4313ty9ml4?:4y]6dg<5:3o6?:6;<7;e?72>27>in4>569>7=>=9579>266=;3=h0:9:5248:9500<5=3<6<;8;<7g`?72?2789:4>579>266=;3=00:9:5248;9500<5=336<;8;<7gg?721278984>579>266=;3=10:9:5248c9500<5=326<;8;<7gg?72?2789>4>579>266=70=82;07=>;3=>0:9:5248`9500<5=3j6<;8;<7gf?7212789<4>579>266==01v::50;;xZ7d>3W=?70=81;07=>;3=?0:9:5248a9500<5=3i6<;8;<7gf?72?2788k4>579>266==11v:=50;;xZ7d?3W=870=80;07=>;3=<0:9:5248f9500<5=3h6<;8;<7ge?7212788i4>579>266==>1v:<50;;xZ7d03W=970=9f;07=>;3==0:9:5248g9500<5=3o6<;8;<7ge?72?2788o4>579>266==?1v:?50;;xZ7d13W=:70=9e;07=>;3=:0:9:5248d9500<5=3n6<;8;<7g=?721278844>579>266==<1v:>50;:xZ7d23W=;70=9d;07=>;3=;0:9:5248d9501<5569>1f1=9<=018l;:07:?806j3;>563909821<=z{;i36=48{_0`<>;3i10984524659501<5569>25>=9<=0q~168l9525;8911128?<70;l6;363>;2j:0:945260c950?<5?:<6<;6;|q1g3<72>qU>n84=5c5>72>34><97?:7:?6g3<6=?169o=51458937f28?<708?7;363>{t:j?1<79t^3a6?82f=38?563;758212=:=j?1=894=4`1>43>34<:57?:9:?543<6=01v?m;:184[4d<27?m94=489>025=9<=018m::075?83e:3;>;639188212=:>9<1=894}r0`7?6=?rT9o>524`1961?<5==96<;8;<7`0?72?27>n<4>589>24>=9<301;>::07:?xu5k;0;6:uQ2b0891g52;>270:81;363>;2k=0:9;525c39501<5?;36<;8;<431?72?2wx>n?50;5xZ7e634>j=7<;9:?735<6=>169n=5145890d728?2708>7;36=>;18=0:945rs3a3>5<0sW8h<63;a1810<=:43134?i<7?:7:?552<6=>16:=:51458yv4?i3:1>vP=8`9>27g=:=30q~<78;296~X50116:?7525;8yv4??3:1>vP=869>27>=:=30q~<76;296~X50?16:?9525;8yv4?=3:1>vP=849>270=:=30q~<74;296~X50=16:?;525;8yv4?;3:1>vP=829>272=:=30q~<72;296~X50;16:?=525;8yv4?93:1>vP=809>274=:=30q~<70;296~X50916:??525;8yv4c=3:18vP=d49>050=:=301;>7:07;?85a:3;>:6s|2e194?2|V;n870:?5;07=>;1810:9;523d595007>54z\1`7=:<9>1>974=724>43?349n97?:6:p6a7=83>pR?j>;<637?43127=<:4>579>7`5=9<<0q~{t:jl1<7:t^3ae?827938?5639078213=:;ml1=884}r0`a?6=6<;7;<1g`?72>2wx>nj50;6xZ7ec349mj7<;9:?540<6=?16?il51448yv4dk3:18vP=cb9>7cc=:=301;>;:07;?85c13;>:6s|2b`94?2|V;ii70=id;07=>;18=0:9;523d:950355z\1a5=:<:<1>974=4`7>43?34<:n7?:8:?767<6=?1v?jj:186[4cm27??84=489>1g2=9<<01;?m:075?826?3;>:6s|2ef94?3|V;no70:<4;07=>;2j:0:955260c950><5=;>6<;9;|q1`f<72im4=510>72>34?i?7?:6:?55d<6=?168<=51448yv4cj3:19vP=dc9>064=:=3018l=:07;?80613;>463;108213=z{;nj6=4:{_0ge>;3;80984525c09500<5?;26<;9;<63b?72>2wx>i750;7xZ7b>34>8<7<;9:?6f4<6=116:<6514:8916c28?=7p}=d983>0}Y:m2019:639198213=:<9h1=884}r0g3?6==rT9h:5243g961?<5579~w7b1290>wS51448937028?=70:>8;361>{t9:n1<7{t9:k1<7{t9:21<7{t9:<1<7708<0;31<>{t9=<1<7>708<0;31b>{t9=>1<78708<0;311>{t9=81<7:708<0;317>{t9=:1<76s|12d94?4|V89m708<0;32a>{t9:o1<7{t:<21<7{t:{t:<91<738?56s|24094?4|V;?970;85;07=>{t:<;1<7{t:=l1<7n70;81;07=>{tl;0;6?uQd39>266=lm1vi>50;0xZa6<5?9;65j4}rae>5<5sWim708<0;:`?xudm3:1>vPle:?575::14l5rsba94?4|Vji01;=?:9;8yvee2909wSmm;<404?>?3tyhm7>52z\`e>;1;90j;6s|dc83>7}Ylk16:>>5a79~wag=838pRio4=713>ae7p}k8;296~Xc027=?=4n4:p`2<72;qUh:526229e6=z{m<1<7;|qg0?6=:rTo8639318:`>{tl:0;6?uQd29>266=1;1vn750;0xZf?<5?9;6594}r3a0?6=9:q6>4>52128916021<01>j8:948961021<01>o8:948962021<018mi:77890c52??018hn:778936c2??0186?:77890?42??018o9:77890d>2??019;l:778912>2??01996:77891012??01;=?:06;?xu1:m0;6?u263a92g=:>;n1>974}r41f?6=01>7j:7:896?c2;:?70=n1;4;?85>n3<370=n0;4;?85f<3<370=n2;4;?85f;3<370=n5;4;?85f>3<370=9d;4;?851m3<370=9f;4;?85083<370=81;4;?850:3<370=83;4;?850<3<370=85;4;?850>3<370;la;030>;3l;0=463;d085<>;3l90=463;cg85<>;3kl0=463;ce85<>;3kj0=463;cc85<>;3kh0=463;c885<>;29?0=463:1485<>;29=0=463:1285<>;29;0=463:1085<>;2990=463:0g85<>;28l0=463:0e85<>;2=:0=463:5385<>;2=80=463:5185<>;2;2;2;2>>0=463:6785<>;2><0=463:6585<>;2>:0=463:6385<>;2>80=463:6185<>;2=o0=463:5d85<>;2?h0=463:7885<>;2?10=463:7685<>;2??0=463:7485<>;2?=0=463:7285<>;2?;0=463:7085<>;1;;0:95526229630555y>27`=>=16:?k525;8914b2;:?70:=d;4;?82493<370:=f;4;?82483<370:<4;4;?824:3<370:<3;4;?824=3<370:<6;4;?85am3<370=id;030>;3880=463;3890=463;0585<>;38;0=463;0285<>;38<0=463;0785<>;4km0=463;4ko0=463;4l80=463;4l:0=463;4l<0=463;2n<09<9524`;92==:1:5524`192==:;31:55263:92==:>;=1:55263492==:>;?1:55263692==:>;91:55263092==:>;;1:552622963352z?56c<5<016:?k56c9~w1432909w0:=e;4a?82613;mh6s|43194?5|5=8o6;l4=524>73a34>:47?id:p071=838p19=>:7`8917d28lo7p};2483>7}:<;l1:o5240c95cb9:7>52z?775<1j27?=o4>fe9~w14f2909w0:<4;4a?826n3;mh6s|43:94?4|5=996;l4=53g>4`c3ty?>44?:3y>065=>k168v3;3485f>;3:90:ji5rs50`>5<5s4>8:78m;<615?7al2wx8=950;1x916028lo70:?8;46?82613<>7p};0883>6}:<921>8h4=53:>4gf34>;57?id:p05>=839p19>7:0dg?827i3<>70:>a;46?xu38k0;6>u241c960`<5=;j67p};0e83>6}:<9i1>8h4=53a>4gf34>;h7?id:p05e=839p19>l:0dg?827m3<>70:>c;46?xu38o0;6>u241g960`<5=;h60;46?826l3<>7p};1083>6}:<8:1>8h4=53g>4gf34>:=7?id:p046=839p19??:0dg?826:3<>70:>e;46?xu39:0;6>u2400960`<5=;n64;46?826n3<>7p};1483>6}:<8>1>8h4=53e>4gf34>:97?id:p042=839p19?;:0dg?826>3<>70:=0;46?xu39>0;6>u2404960`<5=8;67`?=9on0q~=i3;297~;4nm0=n63h::18185an3{t;o<1<73d<5:oi67``=9on0q~=i8;296~;38;0=n63::7`896`728lo7p}7}:<9<1:o523g395cb53z?0`2<6nm16?i65649>7`?=><1v>j6:18085c038>j63fe9>7ag=><16?ho5649~w6be2908w0=ka;06b>;4mh0:ml523e`95cb53z?0`d<6nm16?im5649>7`d=><1v>jk:18085ck38>j63fe9>7ac=><16?hm5649~w6ba2908w0=ke;06b>;4mj0:ml523ed95cb53z?0``<6nm16?h>5649>7`b=><1v>k>:18085b838>j63fe9>7`4=><16?hk5649~w6c42908w0=j2;06b>;4ml0:ml523d195cb7>53z?0a7<6nm16?h:5649>7``=><1v>k::18085b<38>j63fe9>7`0=><16?k>5649~w6c02908w0=j6;06b>;4n90:ml523d595cb52z?0a3<6nm16?k?5649~w6`52909w0=i1;3be>;4n;0:ji5rs2;7>5<5s492i78m;<1;=?7al2wx?4=50;1x96?c2?h01>98:37e?85?03;mh6s|38594?4|5:k:6;l4=2:`>4`c3ty8584?:3y>7<`=>k16?5o51gf8yv5>>3:1>v3;40k0:ji5rs2;b>5<5s49j878m;<1;b?7al2wx?4650;0x96g52?h01>6k:0dg?xu4100;6?u23`192g=:;1o1=kj4}r1:f?6=:r78m849b:?0=5<6nm1v>7l:18185f>3{t;>=1<7=t=254>4`c349<478:;<1;=?023ty8;44?:2y>72>=:66:0cb?85013;mh6s|36:94?5|5:=36f28kj70=8b;3e`>{t;>k1<7=t=25b>4`c34972e=:6m:0cb?850l3;mh6s|36a94?5|5:=h6d28kj70=8f;3e`>{t;>o1<7=t=25f>4`c3493<78:;<1;`?023ty84<4?:2y>7=6=:6k:0cb?85?93;mh6s|39294?5|5:2;6b28kj70=73;3e`>{t;181<7=t=2:1>4`c3493878:;<1;b?023ty8484?:2y>7=2=:6i:0cb?85?=3;mh6s|39694?5|5:2?6{t;1<1<74`c3492=78:;|q0=7<72;q6?4?51`c896?528lo7p}6}:;jn1:o523`5960`<5:h367g?=9on0q~=l5;296~;4ko0=n63j>:7`896dd28lo7p}7}:;m81:o523cf95cb52z?0`6<1j278nh4>fe9~w6ef2909w0=k4;4a?85en3;mh6s|3b`94?4|5:n>6;l4=2a3>4`c3ty8on4?:3y>7a0=>k16?n?51gf8yv5f?3:1?v3a`9>7d?=9on0q~=n8;297~;4i10:ji523`c920=:;kk1:85rs2ca>5<4s49jm7<:f:?0fd<6ih16?ll51gf8yv5fi3:1?v3a`9>7db=9on0q~=nc;297~;4ij0:ji523`g920=:;ki1:85rs2ce>5<4s49ji7<:f:?0ff<6ih16?lh51gf8yv5fm3:1?v3a`9>7g7=9on0q~=m0;297~;4j90:ji523c0920=:;ko1:85rs2`0>5<4s49i>7<:f:?0f`<6ih16?o=51gf8yv5e:3:1?v31:8523cd920=z{:h>6=4<{<1a0?42n278nk4>a`9>7g3=9on0q~=m4;297~;4j=0:ji523c4920=:;j:1:85rs2`4>5<4s49i:7<:f:?0g5<6ih16?o951gf8yv5e>3:1>v35<5s49h=7?na:?0g7<6nm1v>8<:180851l3;4=10:ji5rs247>5<5s49=i78m;<16=?7al2wx?;;50;0x960a2?h01>;n:0dg?xu4>?0;6?u236292g=:;87:181850:3{t;?31<73d<5:?n670`=9on0q~=9b;296~;4?<0=n63<6182ba=z{::8:0dg?85303<>70=:9;46?xu4<00;6>u235:960`<5:?267p}<4c83>6}:;=k1>8h4=27b>4gf349?n7?id:p71g=839p1>:n:0dg?853k3<>70=:b;46?xu4u235a960`<5:?i67p}<4g83>6}:;=o1>8h4=27`>4gf349?j7?id:p71c=839p1>:j:0dg?85283<>70=:d;46?xu4=80;6>u2342960`<5:?o650;1x963728lo70=:2;46?852m3<>7p}<5283>6}:;<81>8h4=27f>4gf349>?7?id:p704=839p1>;=:0dg?852<3<>70=:f;46?xu4=<0;6>u2346960`<5:?m67p}<5683>6}:;<<1>8h4=243>4gf349>;7?id:p700=838p1>;9:0dg?85193<>7p}<6383>7}:;?;1=lo4=241>4`c3ty>h94?:3y>1f`=:h=4=5g9>1ag=9on0q~;lc;296~;2l90:ji525e3920=z{ho4>fe9~w0ec2909w0;k1;3e`>;2l;0=96s|5e594?4|528?27p}:e683>7}:=l81>8h4=4g`>4`c3ty>hh4?:3y>1`4=9on018k<:778yv3b03:1>v3:e2811c=:=ln1=kj4}r7gb?6=:r7>i>4>fe9>1`2=><1v8k6:18183b<38>j63:ed82ba=z{i8495:p1`g=838p18k::37e?83bn3;mh6s|5d394?4|56io4?:3y>1`0=:1f?=9on0q~;if;296~;2nh099k5261695cb52z?6bd<6nm169kl5649~w3672909w0;ib;06b>;18<0:ji5rs4d4>5<5s4?mn7?id:?6bf<1=2wx:=?50;0x90`d2;?m708?6;3e`>{t=o21<74`c34?mh78:;|q547<72;q69kj524d8936028lo7p}:f883>7}:=on1=kj4=4df>3352z?6b`<5=o16:=651gf8yv06k3:1>v3:fd82ba=:=o>1=874}r426?6=:r7=241=9on0q~8?9;296~;18m0:ji5261g920=z{?;86=4={<43a?42n27==54>fe9~w36f2909w08?e;3e`>;18o0=96s|60694?4|5?:m6?;i;<42=?7al2wx:=l50;0x936a28lo708>0;46?xu19<0;6?u2602960`<5?;j651gf893762??0q~8>6;296~;198099k5260`95cb52z?554<6nm169k:514:8yv3a;3:1>v3:f485f>;2n=0:ji5rs4:6>5<5s4?3<7<:f:?6{t=1<1<773a34?3n7?id:p12b=838p186>:0dg?83?:3<>7p}:8683>7}:=181>8h4=4:`>4`c3ty>;h4?:3y>1=4=9on0186<:778yv3?03:1>v3:82811c=:=1n1=kj4}r74b?6=:r7>4>4>fe9>1=2=><1v866:18183?<38>j63:8d82ba=z{<336=4={<7:7?42n27>5i4>fe9~w0>a2909w0;63;3e`>;21=0=96s|58;94?4|5<3?6?;i;<7:a?7al2wx94>50;0x90?328lo70;65;46?xu21h0;6?u2587960`<5<3m67>52z?6=3<6nm169495649~w0?d2909w0;67;06b>;2i80:ji5rs4ca>5<5s4?j:7<:f:?6f5<6nm1v8o=:18183f>3;mh63:a6851>{t=hi1<773a34?i=7?id:p1d5=838p18o8:0dg?83f03<>7p}:ae83>7}:=h21>8h4=4`1>4`c3ty>m94?:3y>1d>=9on018o6:778yv3fm3:1>v3:a8811c=:=k91=kj4}r7b1?6=:r7>m44>fe9>1dg=><1v8oi:18183fi38>j63:b582ba=z{o>4>fe9~w0d22909w0;m9;3e`>;2jh0=96s|5cd94?4|5652z?6ff<6nm169oj5649~w0e52909w0;md;06b>;2k>0:ji5rs5f`>5<2s4>j578m;<6f2?43127?mo4>569>0db=9<<019oi:07:?xu3ih0;6?u24`:92g=:3;3j80:9:524c1950><5=h>6<;6;<6ae?72127?nn4>589>0gc=9<30q~:m0;296~;3i<0=n63;b082ba=z{=h96=4={<6b0?0e34>i?7?id:p0g2=838p19o<:7`891d228lo7p};b783>7}:in7>52z?7e4<1j27?nn4>fe9~w1dc2909w0:n0;4a?82em3;mh6s|4g294?4|5=o=6;l4=5db>72>3ty?ik4?:3y>0`3=>k168k7525;8yv2cj3:18v3;e4810<=:43034>jj7?:8:p0`c=838p19k;:7`891`?2;>27p};d`83>6}:1>974=5cg>43?34>jj7?:7:p0`b=838p19k<:7`891`02;>27p};d883>7}:974=5ce>4313ty?in4?:3y>0`4=>k168k8525;8yv2c03:1;v3;e3810<=:43034>i97?:8:?7fd<6=>168om5145891db28?<7p};ec83>7}:o;7>56z?7a4<5<0168o=5144891d228?<70:ma;362>;3jj0:9;524cg9500nm7>52z?7a5<1j27?j94=489~w1b1290>w0:j0;07=>;3j<0:9;524c59500<5=h36<;9;<6a=?72>2wx8h750;0x91ba2?h019h<:36:?xu3l<0;69u24ed961?<5=h<6<;8;<6a569~w1c?2909w0:ke;4a?82a:38?56s|4e694?5|5=nn6?:6;<6a599~w1c02909w0:kd;4a?82a938?56s|4e194?4|5=no6?:6;<6a=?7212wx8n650;0x91`f2?h019j=:36:?xu3k>0;6?u24g;92g=:974}r6`2?6=:r7?j549b:?7`5<5<01v9m::18182a?3{t1<73d<5=in6?:6;|q7g6<72;q68k;56c9>0fb=:=30q~:l2;296~;3n=0=n63;cb810<=z{=i:6=4={<6e7?0e34>hn7<;9:p0f6=838p19h=:7`891ef2;>27p};bg83>7}:mn7>52z?7`4<1j27?5:4>fe9~w1`d2909w0:k0;4a?82>03;mh6s|4gf94?4|5=im6;l4=5;:>4`c3ty?jh4?:3y>0fc=>k1684o51gf8yv2an3:1>v3;ce85f>;31k0:ji5rs423>5<5s4>ho78m;<6:g?7al2wx9=?50;0x91ee2?h0197k:0dg?xu28;0;6?u24bc92g=:<0o1=kj4}r737?6=:r7?o449b:?7=c<6nm1v8:6:186836>3;2910:9:5250c9500<5<;h6<;6;|q652<72;q69<;56c9>14>=9on0q~;>9;296~;29=0=n63:1`82ba=z{<;i6=47{<727?0e34?:o7?id:?65`<6=>169?>514:8904528?270;=7;36=>;2:00:945253`950?52z?657<1j27>=h4>fe9~w07a2909w0;>1;4a?83583;mh6s|53394?4|5<;;6;l4=401>4`c3ty>>>4?:3y>15`=>k169?951gf8yv3503:1>v3:0d85f>;2:00:ji5rs40b>5<5s4?;h78m;<71f?7al2wx98j50;0x90342?h01888:36:?xu2=j0;6?u254092g=:=?<1>974}r779?4=489>14>=9<<018?n:074?836k3;>46s|54`94?4|572>3ty>8:4?:2y>107=:=3018?n:07;?836k3;>;6s|54c94?4|572>3ty>8;4?:3y>106=:=3018?l:075?xu2=00;6?u255d92g=:=?91>974}r771?6=?r7>8k4=489>14c=9<<018463:268212=:=;31=894=40a>4303ty>954?:3y>11c=>k169;<525;8yv33<3:1:v3:4d810<=:=;:1=884=401>43034?9;7?:6:?66<<6=?169?l51448yv32?3:1>v3:4e85f>;2>809845rs460>5<2s4??h7<;9:?667<6=?169?:51448904228?=70;=6;362>{t=<<1<73d<5<<;6?:6;|q607<72=q699m525;8904328?<70;=5;363>;2:?0:9:5rs476>5<5s4??n78m;<76b?4312wx99?50;1x902e2;>270;=5;36<>;2:?0:955rs477>5<5s4??m78m;<76a?4312wx99>50;0x902f2;>270;=6;36=>{t=:?1<73d<5<9m6?:6;|q671<72;q69;856c9>16c=:=30q~;<3;296~;2><0=n63:3e810<=z{<996=4={<750?0e34?8o7<;9:p167=838p188<:7`8905e2;>27p}:3183>7}:=?81:o5252c961?52z?624<1j27>?44=489~w04b2909w0;90;4a?834038?56s|53f94?4|572>3ty>>n4?:3y>10c=>k169>8525;8yv3103:1>v3:3d85f>;28=0:ji5rs44:>5<5s4?8h78m;<731?7al2wx9;o50;0x905d2?h018>9:0dg?xu2>k0;6?u252`92g=:=9=1=kj4}r75g?6=:r7>?l49b:?64=<6nm1v88k:18183413{t=?o1<73d<5<:j6956c9>15d=9on0q~;80;296~;2;?0=n63:0b82ba=z{=?:6=4={<651?0234>>=7?id:p0<4=838p198::0cb?822j3;mh6s|42c94?4|5=<>6032=><1688?5649>006=9on0q~:61;297~;3>=0:ml52443960`<5=?j62?h0q~:;f;297~;3>:0=963;51851>;35<4s4>=?7?na:?715<5=o1688751gf8yv2403:1>v3;6282ba=:=>21:o5rs56f>5<4s4>=>78:;<67b?0234>?i7?id:p0=`=839p198=:0cb?823n38>j63;5982ba=z{=9<6=4={<656?7al27>;:49b:p01b=839p198>:778912b2??019:k:0dg?xu30l0;6>u247395dg<5=>n6?;i;<663?7al2wx8>k50;0x910628lo70;86;4a?xu3u2472920=:<=n1:85245a95cb3h7>53z?725<6ih1689j524d8913128lo7p};3e83>7}:3d?n7>53z?71c<1=27?8n495:?70g<6nm1v96l:180822n3;jm63;4b811c=:<fe9>122=>k1v9:n:180822m3<>70:;b;46?823i3;mh6s|49`94?5|5=?n6fe9~w15e2909w0::e;3e`>;2?:0=n6s|45;94?5|5=?o6;;4=56b>33<5=>26{t<:l1<74`c34?<>78m;|q7<<<72:q688m51`c8912>2;?m70::2;3e`>{t>8o1<74`c34?<=78m;|q72`<72;q685<5649>03c=9on0q~:78;296~;30;0:ml5246:95cb??7>52z?7<7<6nm16:?o56c9~w10c2908w0:71;46?821m3<>70:9d;3e`>{t<1=1<7=t=5:2>4gf34>=i7<:f:?732<6nm1v9:=:18182?93;mh6392885f>{t33<5=4`c3ty?4;4?:2y>0=6=9hk0198k:37e?820>3;mh6s|45394?4|5=2;602`=><168;m5649>03d=9on0q~:75;297~;3?o0:ml5247a960`<5==>6;3>h0:ji5rs5:7>5<4s4>v3;7d82ba=:>;<1:o5rs54:>5<4s4>=57?id:p0=5=839p199k:0cb?821i38>j63;7282ba=z{=>=6=4={<64`?7al27=>849b:p03>=839p199l:778910>2??01987:0dg?xu31?0;6>u246a95dg<5=<26?;i;<646?7al2wx89;50;0x911d28lo708=4;4a?xu3>>0;6>u246`920=:297>53z?73g<6ih168;6524d8911628lo7p};4583>7}:<>h1=kj4=700>3d=:7>53z?73d<1=27?::495:?723<6nm1v97;:180820i3;jm63;66811c=:<>:1=kj4}r67fe9>274=>k1v97<:18082013;jm63;67811c=:fe9>277=>k1v;=>:181804:3;mh63931820<=z{8l:6=4={<6a3?7al27?nl4>599~w4`42909w0:m8;3e`>;3jj0:955rs0d6>5<5s4>i57?id:?7f`<6=11v>44>599~w4`>2909w0;=6;3e`>;2:k0:955r}c0:4?6=93:1l74^7ag?[4f>2T9m85Q2`68Z7g43W8j>6P=a09]6d6;5>1099h5rs7f0>5<5sW96=4={_176>;5>10:8:5rs7gb>5<5sW;5>109:45rs3;4>5<5sW82;63=6986e>{t>k>1<7{t>m81<7>70<98;365>{t>:>1<7{t>>>1<7{t>l=1<7{t>l?1<7{t>l91<7{t>l;1<76s|6d294?4|V?n=70<98;0;5>{t>ml1<770<98;30`>{t;:?1<7{t;:91<7{t;:;1<7{t;;l1<7{t;:l1<7{t;:n1<7{t;:h1<7{t;:31<7{t;;o1<7{t>j=1<7:6s|6b494?4|V?hh70<98;061>{t>j?1<786s|6b694?4|V?hj70<98;067>{t>j91<7>6s|6b094?4|V?h370<98;065>{t>j;1<7<6s|6b294?4|V?h=70<98;07b>{t>kl1<7{t>{t>m70<98;022>{t><21<7o70<98;020>{t><<1<7i70<98;026>{t><>1<7;65cg9~w66b2909wSkl4=34;>fe52z\1bd=::?21oo5rs22b>5<5sW8m563=698`e>{t;8h1<77}Y;9=01?87:ec8yv5613:1>vP<079>63>=l01v>?7:181[57=279:54k8:p741=838pR>>;;<05;5>10o86s|30194?4|V;l370<98;f0?xu4800;6?uQ2g58970?2j30q~8m3;296~X1i116>;6525:8yv0e93:1>vP9a69>63>=:=<0q~8m0;296~X1i?16>;652578yv0fn3:1>vP9a49>63>=:=>0q~8ne;296~X1i=16>;652518yv0fl3:1>vP9a29>63>=:=80q~8nc;296~X1i;16>;652538yv0fj3:1>vP9a09>63>=:=:0q~8na;296~X1i916>;6522d8yv0f13:1>vP99g9>63>=::o0q~86e;296~X11:16>;6522f8yv0>k3:1>vP9939>63>=::h0q~86b;296~X11816>;6522c8yv0>i3:1>vP9919>63>=::30q~869;296~X10o16>;6522:8yv0>03:1>vP98d9>63>=::=0q~867;296~X10m16>;652248yv0>>3:1>vP98b9>63>=::?0q~865;296~X10k16>;652268yv0><3:1>vP98`9>63>=::90q~879;296~X1?l16>;652208yv0??3:1>vP97e9>63>=:::0q~876;296~X1?j16>;6523d8yv0?=3:1>vP97c9>63>=:;o0q~874;296~X1?h16>;6523f8yv0?;3:1>vP9789>63>=:;i0q~872;296~X1?116>;6523`8yv0?93:1>vP9769>63>=:;k0q~870;296~X1??16>;6523;8yv00n3:1>vP9749>63>=:;20q~883;296~X1>116>;652348yv0093:1>vP9669>63>=:;>0q~880;296~X1>?16>;652318yv01n3:1>vP9649>63>=:;80q~89e;296~X1>=16>;652338yv01l3:1>vP9629>63>=:;:0q~89c;296~X1>;16>;6520d8yv01j3:1>vP9609>63>=:8o0q~89a;296~X1>916>;6520f8yv0113:1>vP95g9>63>=:8i0q~8;9;296~X1;l16>;652028yv03?3:1>vP93e9>63>=:9o0q~8;6;296~X1;j16>;6521f8yv03=3:1>vP93c9>63>=:9i0q~8;4;296~X1;h16>;6521`8yv03;3:1>vP9389>63>=:9k0q~8;2;296~X1;116>;6521;8yv0393:1>vP9369>63>=:920q~8;0;296~X1;?16>;652158yv04n3:1>vP9349>63>=:9<0q~?j7;295~;51909<=5r}r126?6=:rT8<=525e8045=#:?k1=hl4}r124?6=:rT9jk525e81bc=#:?k1=hm4}r13b?6=:rT9jh525e81b`=#:?k1=hj4}r13a?6=:rT9ji525e81ba=#:?k1=hk4}r13`?6=:rT9jn525e81bf=#:?k1=k84}r13g?6=:rT9jo525e81bg=#:?k1=o;4}r13f?6=:rT9jl525e81bd=#:?k1=oj4}r13e?6=:rT9j4525e81b<=#:?k1=n64}r12f?6=:rT8<5525e804==#:?k1=nh4}r12e?6=:rT8<:525e8042=#:?k1=i64}r12=?6=:rT8<;525e8043=#:?k1=h<4}r12525e8046=#:?k1=h;4}r121?6=:rT84}r4`g?6=:rT=on525e85gf=#:?k1=k<4}r4g0?6=:rT=h9525e85`1=#:?k1=k:4}r4fe?6=:rT=il525e85ad=#:?k1=k;4}r103?6=:rT8>8525e8060=#:?k1=o84}r101?6=:rT8>9525e8061=#:?k1=o94}r100?6=:rT8>>525e8066=#:?k1=o64}r107?6=:rT8>?525e8067=#:?k1=o74}r106?6=:rT8><525e8064=#:?k1=oo4}r105?6=:rT8>=525e8065=#:?k1=ol4}r104?6=:rT8=k525e805c=#:?k1=om4}r11b?6=:rT8=h525e805`=#:?k1=ok4}r174?6=:rT8>i525e806a=#:?k1=oh4}r10b?6=:rT8>n525e806f=#:?k1=n>4}r10a?6=:rT8>o525e806g=#:?k1=n?4}r10`?6=:rT8>l525e806d=#:?k1=n<4}r10g?6=:rT8>4525e806<=#:?k1=n=4}r10f?6=:rT8>5525e806==#:?k1=n:4}r10e?6=:rT8>:525e8062=#:?k1=n;4}r10=?6=:rT8>;525e8063=#:?k1=n84}r104}r4`0?6=:rT=nl525e85fd=#:?k1=i?4}r4`7?6=:rT=n4525e85f<=#:?k1=i<4}r4`6?6=:rT=n5525e85f==#:?k1=i=4}r4`5?6=:rT=n:525e85f2=#:?k1=i:4}r4`4?6=:rT=n;525e85f3=#:?k1=i;4}r4ab?6=:rT=n8525e85f0=#:?k1=i84}r4f=?6=:rT=hh525e85``=#:?k1=i94}r4f3?6=:rT=hi525e85`a=#:?k1=i74}r4f2?6=:rT=hn525e85`f=#:?k1=io4}r4f1?6=:rT=ho525e85`g=#:?k1=il4}r4f0?6=:rT=hl525e85`d=#:?k1=im4}r4f7?6=:rT=h4525e85`<=#:?k1=ij4}r4f6?6=:rT=h5525e85`==#:?k1=ik4}r4f5?6=:rT=h:525e85`2=#:?k1=ih4}r4f4?6=:rT=h;525e85`3=#:?k1=h>4}r4gb?6=:rT=h8525e85`0=#:?k1=h?4}|lf43<72:qC>;l4}og33?6=;rB9:o5rnd2;>5<4sA8=n6sae1;94?5|@;6}O:?h0qck?b;297~N5>k1vbh>l:180M41j2wei=j50;1xL70e3tdn53zJ12g=zfl;;6=4<{I05f>{im8;1<7=tH34a?xhb9;0;6>uG27`8ykc6;3:1?vF=6c9~j`732908wE<9b:ma43=839pD?8m;|lf53<72:qC>;l4}og23?6=;rB9:o5rnd3;>5<4sA8=n6sae0;94?5|@;6}O:?h0qck>b;297~N5>k1vbh?l:180M41j2wei53zJ12g=zfl8;6=4<{I05f>{im;;1<7=tH34a?xhb:;0;6>uG27`8ykc5;3:1?vF=6c9~j`432908wE<9b:ma73=839pD?8m;|lf63<72:qC>;l4}og13?6=;rB9:o5rnd0;>5<4sA8=n6sae3;94?5|@;6}O:?h0qck=b;297~N5>k1vbhh4?:2yK63d53zJ12g=zfl9;6=4<{I05f>{im:;1<7=tH34a?xhb;;0;6>uG27`8ykc4;3:1?vF=6c9~j`532908wE<9b:ma63=839pD?8m;|lf73<72:qC>;l4}og03?6=;rB9:o5rnd1;>5<4sA8=n6sae2;94?5|@;6}O:?h0qckk1vbh=l:180M41j2wei>j50;1xL70e3tdn?h4?:2yK63d53zJ12g=zfl>;6=4<{I05f>{im=;1<7=tH34a?xhb<;0;6>uG27`8ykc3;3:1?vF=6c9~j`232908wE<9b:m`=4=83;pD?8m;|lg<<<720qC>;l4}ofa3?6=9rB9:o5rne`;>5<6sA8=n6sadc;94?7|@;4}O:?h0qcjmb;295~N5>k1vbill:182M41j2wehoj50;3xL70e3tdonh4?:0yK63d51zJ12g=zfmi;6=4>{I05f>{ilm91<7?tH34a?xhcl=0;6;l4}ofg=?6=9rB9:o5rnefb>5<6sA8=n6sade`94?7|@;4}O:?h0qcjkd;295~N5>k1vbijj:182M41j2wehih50;3xL70e3tdoi=4?:0yK63d51zJ12g=zfmo96=4>{I05f>{ill91<7?tH34a?xhcm=0;6;l4}off=?6=9rB9:o5rnegb>5<6sA8=n6sadd`94?7|@;4}O:?h0qcjjd;295~N5>k1vbikj:182M41j2wehhh50;3xL70e3tdoj=4?:0yK63d51zJ12g=zfml96=4>{I05f>{ilo91<7?tH34a?xhcn=0;6;l4}ofe=?6=9rB9:o5rnedb>5<6sA8=n6sadg`94?7|@;4}O:?h0qcjid;295~N5>k1vbihj:182M41j2wehkh50;3xL70e3tdn<=4?:0yK63d51zJ12g=zfl:96=4>{I05f>{im991<7?tH34a?xhb8=0;6;l4}o`;7?6=9rB9:o5rnc:7>5<6sA8=n6sab9794?7|@;4}O:?h0qcl77;295~N5>k1vbo67:182M41j2wen5750;3xL70e3tdi4l4?:0yK63d51zJ12g=zfk2h6=4>{I05f>{ij1n1<7?tH34a?xhe0l0;6;l4}o`:7?6=9rB9:o5rnc;7>5<6sA8=n6sab8794?7|@;4}O:?h0qcl67;295~N5>k1vbo77:182M41j2wen4750;3xL70e3tdi5l4?:0yK63d51zJ12g=zfk3h6=4>{I05f>{ij0n1<7?tH34a?xhe1l0;6n3:1=vF=6c9~jgg7290:wE<9b:mfd7=83;pD?8m;|lae7<728qC>;l4}o`b7?6=9rB9:o5rncc7>5<6sA8=n6sab`794?7|@;4}O:?h0qcln7;295~N5>k1vboo7:182M41j2wenl750;3xL70e3tdiml4?:0yK63d51zJ12g=zfkkh6=4>{I05f>{ijhn1<7?tH34a?xheil0;6;l4}o`a`?6=9rB9:o5rnc`f>5<6sA8=n6sabcd94?7|@;4}O:?h0qcll1;295~N5>k1vbom=:182M41j2wenn=50;3xL70e3tdio94?:0yK63d51zJ12g=zfki=6=4>{I05f>{ijj=1<7?tH34a?xhek10;6;l4}o```?6=9rB9:o5rncaf>5<6sA8=n6sabbd94?7|@;4}O:?h0qclif;295~N5>k1vbn>?:182M41j2weo=?50;3xL70e3tdh51zJ12g=zfj:?6=4>{I05f>{ik9?1<7?tH34a?xhd8?0;6;l4}oa3f?6=9rB9:o5rnb2`>5<6sA8=n6sac1f94?7|@;4}O:?h0qcm?f;295~N5>k1vbn??:182M41j2weo51zJ12g=zfj;?6=4>{I05f>{ik8?1<7?tH34a?xhd9?0;6;l4}oa2f?6=9rB9:o5rnb3`>5<6sA8=n6sac0f94?7|@;4}O:?h0qcm>f;295~N5>k1vbn?4?:0yK63d51zJ12g=zfj8?6=4>{I05f>{ik;?1<7?tH34a?xhd:?0;6;l4}oa1f?6=9rB9:o5rnb0`>5<6sA8=n6sac3f94?7|@;4}O:?h0qcm=f;295~N5>k1vbn=?:182M41j2weo>?50;3xL70e3tdh??4?:0yK63d51zJ12g=zfj9?6=4>{I05f>{ik:?1<7?tH34a?xhd;?0;6;l4}oa0f?6=9rB9:o5rnb1`>5<6sA8=n6sac2f94?7|@;4}O:?h0qcmk1vbn:?:182M41j2weo9?50;3xL70e3tdh8?4?:0yK63d51zJ12g=zfj>?6=4>{I05f>{ik=?1<7?tH34a?xhd;l4}oa7f?6=9rB9:o5rnb6`>5<6sA8=n6sac5f94?7|@;4}O:?h0qcm;f;295~N5>k1vbn;?:182M41j2weo8?50;3xL70e3tdh9?4?:0yK63d?7>51zJ12g=zfj??6=4>{I05f>{ik;l4}oa6f?6=9rB9:o5rnb7`>5<6sA8=n6sac4f94?7|@;4}O:?h0qcm:f;295~N5>k1vbn8?:182M41j2weo;?50;3xL70e3tdh:?4?:0yK63d51zJ12g=zfj{I05f>{ik??1<7?tH34a?xhd>?0;6;l4}oa5f?6=9rB9:o5rnb4`>5<6sA8=n6sac7f94?7|@;4}O:?h0qcm9f;295~N5>k1vbn9?:182M41j2weo:?50;3xL70e3tdh;?4?:0yK63d51zJ12g=zfj=?6=4>{I05f>{ik>?1<7?tH34a?xhd??0;6;l4}oa4f?6=9rB9:o5rnb5`>5<6sA8=n6sac6f94?7|@;4}O:?h0qcm8f;295~N5>k1vbn6?:182M41j2weo5?50;3xL70e3tdh4?4?:0yK63d51zJ12g=zfj2?6=4>{I05f>{ik1?1<7?tH34a?xhd0?0;6?290:wE<9b:mg=?=83;pD?8m;|l`;l4}oa;f?6=9rB9:o5rnb:`>5<6sA8=n6sac9f94?7|@;4}O:?h0qcm7f;295~N5>k1vbn7?:182M41j2weo4?50;3xL70e3tdh5?4?:0yK63d51zJ12g=zfj3?6=4>{I05f>{ik0?1<7?tH34a?xhd1?0;6?3:1=vF=6c9~jf??290:wE<9b:mg;l4}oa:f?6=9rB9:o5rnb;`>5<6sA8=n6sac8f94?7|@;4}O:?h0qcm6f;295~N5>k1vbno?:182M41j2weol?50;3xL70e3tdhm?4?:0yK63d51zJ12g=zfjk?6=4>{I05f>{ikh?1<7?tH34a?xhdi?0;6;l4}oabf?6=9rB9:o5rnbc`>5<6sA8=n6sac`f94?7|@;4}O:?h0qcmnf;295~N5>k1vbnl?:182M41j2weoo?50;3xL70e3tdhn?4?:0yK63d51zJ12g=zfjh?6=4>{I05f>{ikk?1<7?tH34a?xhdj?0;6;l4}oaaf?6=9rB9:o5rnb``>5<6sA8=n6saccf94?7|@;4}O:?h0qcmmf;295~N5>k1vbnm?:182M41j2weon?50;3xL70e3tdho?4?:0yK63d51zJ12g=zfji?6=4>{I05f>{ikj?1<7?tH34a?xhdk?0;6;l4}oa`f?6=9rB9:o5rnba`>5<6sA8=n6sacbf94?7|@;4}O:?h0qcmlf;295~N5>k1vbnj?:182M41j2weoi?50;3xL70e3tdhh?4?:0yK63d51zJ12g=zfjn?6=4>{I05f>{ikm?1<7?tH34a?xhdl?0;6;l4}oagf?6=9rB9:o5rnbf`>5<6sA8=n6sacef94?7|@;4}O:?h0qcmkf;295~N5>k1vbnk?:182M41j2weoh?50;3xL70e3tdhi?4?:0yK63d51zJ12g=zfjo?6=4>{I05f>{ikl?1<7?tH34a?xhdm?0;6;l4}oaff?6=9rB9:o5rnbg`>5<6sA8=n6sacdf94?7|@;4}O:?h0qcmjf;295~N5>k1vbnh?:182M41j2weok?50;3xL70e3tdhj?4?:0yK63d51zJ12g=zfjl?6=4>{I05f>{iko?1<7?tH34a?xhdn?0;6;l4}oaef?6=9rB9:o5rnbd`>5<6sA8=n6sacgf94?7|@;4}O:?h0qcmif;295~N5>k1vbi>?:182M41j2weh=?50;3xL70e3tdo51zJ12g=zfm:?6=4>{I05f>{il9?1<7?tH34a?xhc8?0;6;l4}of3f?6=9rB9:o5rne2`>5<6sA8=n6sad1f94?7|@;4}O:?h0qcj?f;295~N5>k1vbi??:182M41j2weh51zJ12g=zfm;?6=4>{I05f>{il8?1<7?tH34a?xhc9?0;6;l4}of2f?6=9rB9:o5rne3`>5<6sA8=n6sad0f94?7|@;4}O:?h0qcj>f;295~N5>k1vbi?4?:0yK63d51zJ12g=zfm8?6=4>{I05f>{il;?1<7?tH34a?xhc:?0;6;l4}of1f?6=9rB9:o5rne0`>5<6sA8=n6sad3f94?7|@;4}O:?h0qcj=f;295~N5>k1vbi=?:182M41j2weh>?50;3xL70e3tdo??4?:0yK63d51zJ12g=zfm9?6=4>{I05f>{il:?1<7?tH34a?xhc;?0;6;l4}of0f?6=9rB9:o5rne1`>5<6sA8=n6sad2f94?7|@;4}O:?h0qcjk1vbi:?:182M41j2weh9?50;3xL70e3tdo8?4?:0yK63d51zJ12g=zfm>?6=4>{I05f>{il=?1<7?tH34a?xhc;l4}of7f?6=9rB9:o5rne6`>5<6sA8=n6sad5f94?7|@;4}O:?h0qcj;f;295~N5>k1vbi;?:182M41j2weh8?50;3xL70e3tdo9?4?:0yK63d?7>51zJ12g=zfm??6=4>{I05f>{il;l4}of6f?6=9rB9:o5rne7`>5<6sA8=n6sad4f94?7|@;4}O:?h0qcj:f;295~N5>k1vbi8?:182M41j2weh;?50;3xL70e3tdo:?4?:0yK63d51zJ12g=zfm{I05f>{il??1<7?tH34a?xhc>?0;6;l4}of5f?6=9rB9:o5rne4`>5<6sA8=n6sad7f94?7|@;4}O:?h0qcj9f;295~N5>k1vbi9?:182M41j2weh:?50;3xL70e3tdo;?4?:0yK63d51zJ12g=zfm=?6=4>{I05f>{il>?1<7?tH34a?xhc??0;6;l4}of4f?6=9rB9:o5rne5`>5<6sA8=n6sad6f94?7|@;4}O:?h0qck?5;295~N5>k1vqpsO@By24=d=;0>25;;r@A@x4xFGXrwKL \ No newline at end of file diff --git a/optical_link/trbv2_tlk_api_fifo.vhd b/optical_link/trbv2_tlk_api_fifo.vhd deleted file mode 100644 index 5faa056..0000000 --- a/optical_link/trbv2_tlk_api_fifo.vhd +++ /dev/null @@ -1,150 +0,0 @@ --------------------------------------------------------------------------------- --- This file is owned and controlled by Xilinx and must be used -- --- solely for design, simulation, implementation and creation of -- --- design files limited to Xilinx devices or technologies. Use -- --- with non-Xilinx devices or technologies is expressly prohibited -- --- and immediately terminates your license. -- --- -- --- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" -- --- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR -- --- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION -- --- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION -- --- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS -- --- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, -- --- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE -- --- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY -- --- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE -- --- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR -- --- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF -- --- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -- --- FOR A PARTICULAR PURPOSE. -- --- -- --- Xilinx products are not intended for use in life support -- --- appliances, devices, or systems. Use in such applications are -- --- expressly prohibited. -- --- -- --- (c) Copyright 1995-2007 Xilinx, Inc. -- --- All rights reserved. -- --------------------------------------------------------------------------------- --- You must compile the wrapper file trbv2_tlk_api_fifo.vhd when simulating --- the core, trbv2_tlk_api_fifo. When compiling the wrapper file, be sure to --- reference the XilinxCoreLib VHDL simulation library. For detailed --- instructions, please refer to the "CORE Generator Help". - --- The synthesis directives "translate_off/translate_on" specified --- below are supported by Xilinx, Mentor Graphics and Synplicity --- synthesis tools. Ensure they are correct for your synthesis tool(s). - -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; --- synthesis translate_off -Library XilinxCoreLib; --- synthesis translate_on -ENTITY trbv2_tlk_api_fifo IS - port ( - din: IN std_logic_VECTOR(17 downto 0); - rd_clk: IN std_logic; - rd_en: IN std_logic; - rst: IN std_logic; - wr_clk: IN std_logic; - wr_en: IN std_logic; - dout: OUT std_logic_VECTOR(17 downto 0); - empty: OUT std_logic; - full: OUT std_logic; - rd_data_count: OUT std_logic_VECTOR(9 downto 0); - wr_data_count: OUT std_logic_VECTOR(9 downto 0)); -END trbv2_tlk_api_fifo; - -ARCHITECTURE trbv2_tlk_api_fifo_a OF trbv2_tlk_api_fifo IS --- synthesis translate_off -component wrapped_trbv2_tlk_api_fifo - port ( - din: IN std_logic_VECTOR(17 downto 0); - rd_clk: IN std_logic; - rd_en: IN std_logic; - rst: IN std_logic; - wr_clk: IN std_logic; - wr_en: IN std_logic; - dout: OUT std_logic_VECTOR(17 downto 0); - empty: OUT std_logic; - full: OUT std_logic; - rd_data_count: OUT std_logic_VECTOR(9 downto 0); - wr_data_count: OUT std_logic_VECTOR(9 downto 0)); -end component; - --- Configuration specification - for all : wrapped_trbv2_tlk_api_fifo use entity XilinxCoreLib.fifo_generator_v3_3(behavioral) - generic map( - c_rd_freq => 100, - c_wr_response_latency => 1, - c_has_srst => 0, - c_has_rd_data_count => 1, - c_din_width => 18, - c_has_wr_data_count => 1, - c_implementation_type => 2, - c_family => "virtex4", - c_has_wr_rst => 0, - c_wr_freq => 100, - c_underflow_low => 0, - c_has_meminit_file => 0, - c_has_overflow => 0, - c_preload_latency => 1, - c_dout_width => 18, - c_rd_depth => 1024, - c_default_value => "BlankString", - c_mif_file_name => "BlankString", - c_has_underflow => 0, - c_has_rd_rst => 0, - c_has_almost_full => 0, - c_has_rst => 1, - c_data_count_width => 10, - c_has_wr_ack => 0, - c_use_ecc => 0, - c_wr_ack_low => 0, - c_common_clock => 0, - c_rd_pntr_width => 10, - c_has_almost_empty => 0, - c_rd_data_count_width => 10, - c_enable_rlocs => 0, - c_wr_pntr_width => 10, - c_overflow_low => 0, - c_prog_empty_type => 0, - c_optimization_mode => 0, - c_wr_data_count_width => 10, - c_preload_regs => 0, - c_dout_rst_val => "0", - c_has_data_count => 0, - c_prog_full_thresh_negate_val => 1021, - c_wr_depth => 1024, - c_prog_empty_thresh_negate_val => 3, - c_prog_empty_thresh_assert_val => 2, - c_has_valid => 0, - c_init_wr_pntr_val => 0, - c_prog_full_thresh_assert_val => 1022, - c_use_fifo16_flags => 0, - c_has_backup => 0, - c_valid_low => 0, - c_prim_fifo_type => "1kx18", - c_count_type => 0, - c_prog_full_type => 0, - c_memory_type => 1); --- synthesis translate_on -BEGIN --- synthesis translate_off -U0 : wrapped_trbv2_tlk_api_fifo - port map ( - din => din, - rd_clk => rd_clk, - rd_en => rd_en, - rst => rst, - wr_clk => wr_clk, - wr_en => wr_en, - dout => dout, - empty => empty, - full => full, - rd_data_count => rd_data_count, - wr_data_count => wr_data_count); --- synthesis translate_on - -END trbv2_tlk_api_fifo_a; - -- 2.43.0

    7*#=B0rv)H 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 z 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%0DQ;)XHQj=mXe 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%0Dk4 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